diff --git a/.eslintignore b/.eslintignore
index ed7af0301b..b7a6ad79cd 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -18,12 +18,3 @@ logs/
 .eslintrc
 test/files
 *.min.js
-
-/public/src/app.js
-/public/src/client.js
-/public/src/admin/admin.js
-/public/src/modules/translator.common.js
-/public/src/modules/pictureCropper.js
-/public/src/modules/ace-editor.js
-/public/src/client/account/header.js
-/public/src/client/test.js
\ No newline at end of file
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 5cf00383ef..476c80778f 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -48,7 +48,7 @@ jobs:
             type=raw,value=latest
 
       - name: Build and push Docker images
-        uses: docker/build-push-action@v3
+        uses: docker/build-push-action@v4
         with:
           context: .
           file: ./Dockerfile
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index 4594517869..6cea98c786 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -29,19 +29,19 @@ jobs:
       fail-fast: false
       matrix:
         os: [ubuntu-latest]
-        node: [14, 16, 18]
+        node: [16, 18]
         database: [mongo-dev, mongo, redis, postgres]
         include:
           # only run coverage once
           - os: ubuntu-latest
-            node: 14
+            node: 16
             coverage: true
           # test under development once
           - database: mongo-dev
             test_env: development
           # only run eslint once
           - os: ubuntu-latest
-            node: 14
+            node: 16
             database: mongo-dev
             lint: true
     runs-on: ${{ matrix.os }}
@@ -50,7 +50,7 @@ jobs:
 
     services:
       postgres:
-        image: 'postgres:14-alpine'
+        image: 'postgres:15-alpine'
         env:
           POSTGRES_USER: postgres
           POSTGRES_PASSWORD: postgres
@@ -194,7 +194,7 @@ jobs:
         run: npm run coverage
 
       - name: Test coverage
-        uses: coverallsapp/github-action@1.1.3
+        uses: coverallsapp/github-action@v2.1.2
         if: matrix.coverage
         with:
           github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -208,7 +208,7 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - name: Coveralls Finished
-        uses: coverallsapp/github-action@1.1.3
+        uses: coverallsapp/github-action@v2.1.2
         with:
           github-token: ${{ secrets.GITHUB_TOKEN }}
           parallel-finished: true
diff --git a/.tx/config b/.tx/config
index c988effda2..59c7f74acc 100644
--- a/.tx/config
+++ b/.tx/config
@@ -3328,6 +3328,58 @@ trans.et        = public/language/et/search.json
 trans.hy        = public/language/hy/search.json
 trans.lt        = public/language/lt/search.json
 
+[o:nodebb:p:nodebb:r:social]
+file_filter     = public/language/<lang>/social.json
+source_file     = public/language/en-GB/social.json
+source_lang     = en_GB
+type            = KEYVALUEJSON
+trans.da        = public/language/da/social.json
+trans.en_US     = public/language/en-US/social.json
+trans.ms        = public/language/ms/social.json
+trans.hr        = public/language/hr/social.json
+trans.hu        = public/language/hu/social.json
+trans.id        = public/language/id/social.json
+trans.bg        = public/language/bg/social.json
+trans.de        = public/language/de/social.json
+trans.en@pirate = public/language/en-x-pirate/social.json
+trans.fa_IR     = public/language/fa-IR/social.json
+trans.fi        = public/language/fi/social.json
+trans.sc        = public/language/sc/social.json
+trans.sk        = public/language/sk/social.json
+trans.sl        = public/language/sl/social.json
+trans.sq_AL     = public/language/sq-AL/social.json
+trans.sr        = public/language/sr/social.json
+trans.bn        = public/language/bn/social.json
+trans.ja        = public/language/ja/social.json
+trans.ko        = public/language/ko/social.json
+trans.pl        = public/language/pl/social.json
+trans.ro        = public/language/ro/social.json
+trans.zh_TW     = public/language/zh-TW/social.json
+trans.cs        = public/language/cs/social.json
+trans.he        = public/language/he/social.json
+trans.nb        = public/language/nb/social.json
+trans.zh_CN     = public/language/zh-CN/social.json
+trans.lv        = public/language/lv/social.json
+trans.rw        = public/language/rw/social.json
+trans.sv        = public/language/sv/social.json
+trans.ru        = public/language/ru/social.json
+trans.tr        = public/language/tr/social.json
+trans.uk        = public/language/uk/social.json
+trans.el        = public/language/el/social.json
+trans.fr        = public/language/fr/social.json
+trans.gl        = public/language/gl/social.json
+trans.it        = public/language/it/social.json
+trans.pt_BR     = public/language/pt-BR/social.json
+trans.nl        = public/language/nl/social.json
+trans.pt_PT     = public/language/pt-PT/social.json
+trans.th        = public/language/th/social.json
+trans.vi        = public/language/vi/social.json
+trans.ar        = public/language/ar/social.json
+trans.es        = public/language/es/social.json
+trans.et        = public/language/et/social.json
+trans.hy        = public/language/hy/social.json
+trans.lt        = public/language/lt/social.json
+
 [o:nodebb:p:nodebb:r:success]
 file_filter     = public/language/<lang>/success.json
 source_file     = public/language/en-GB/success.json
diff --git a/Gruntfile.js b/Gruntfile.js
index 3f635ac9a0..f3fbe5f21c 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -54,14 +54,9 @@ module.exports = function (grunt) {
 			}
 		}
 
-		const styleUpdated_Client = pluginList.map(p => `node_modules/${p}/*.less`)
+		const styleUpdated_Client = pluginList.map(p => `node_modules/${p}/*.scss`)
 			.concat(pluginList.map(p => `node_modules/${p}/*.css`))
-			.concat(pluginList.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
-			.concat(pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
-
-		const styleUpdated_Admin = pluginList.map(p => `node_modules/${p}/*.less`)
-			.concat(pluginList.map(p => `node_modules/${p}/*.css`))
-			.concat(pluginList.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
+			.concat(pluginList.map(p => `node_modules/${p}/+(public|static|scss)/**/*.scss`))
 			.concat(pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
 
 		const clientUpdated = pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.js`);
@@ -72,24 +67,15 @@ module.exports = function (grunt) {
 		const langUpdated = pluginList.map(p => `node_modules/${p}/+(public|static|languages)/**/*.json`);
 
 		grunt.config(['watch'], {
-			styleUpdated_Client: {
+			styleUpdated: {
 				files: [
-					'public/less/**/*.less',
+					'public/scss/**/*.scss',
 					...styleUpdated_Client,
 				],
 				options: {
 					interval: 1000,
 				},
 			},
-			styleUpdated_Admin: {
-				files: [
-					'public/less/**/*.less',
-					...styleUpdated_Admin,
-				],
-				options: {
-					interval: 1000,
-				},
-			},
 			clientUpdated: {
 				files: [
 					'public/src/**/*.js',
@@ -167,16 +153,14 @@ module.exports = function (grunt) {
 	grunt.event.removeAllListeners('watch');
 	grunt.event.on('watch', (action, filepath, target) => {
 		let compiling;
-		if (target === 'styleUpdated_Client') {
-			compiling = 'clientCSS';
-		} else if (target === 'styleUpdated_Admin') {
-			compiling = 'acpCSS';
+		if (target === 'styleUpdated') {
+			compiling = ['clientCSS', 'acpCSS'];
 		} else if (target === 'clientUpdated') {
-			compiling = 'js';
+			compiling = ['js'];
 		} else if (target === 'templatesUpdated') {
-			compiling = 'tpl';
+			compiling = ['tpl'];
 		} else if (target === 'langUpdated') {
-			compiling = 'lang';
+			compiling = ['lang'];
 		} else if (target === 'serverUpdated') {
 			// empty require cache
 			const paths = ['./src/meta/build.js', './src/meta/index.js'];
@@ -184,7 +168,7 @@ module.exports = function (grunt) {
 			return run();
 		}
 
-		require('./src/meta/build').build([compiling], { webpack: false }, (err) => {
+		require('./src/meta/build').build(compiling, { webpack: false }, (err) => {
 			if (err) {
 				winston.error(err.stack);
 			}
diff --git a/README.md b/README.md
index d06bc0362a..a45ba24ab8 100644
--- a/README.md
+++ b/README.md
@@ -24,17 +24,14 @@ NodeBB's theming engine is highly flexible and does not restrict your design cho
 [![](http://i.imgur.com/LmHtPhob.png)](http://i.imgur.com/LmHtPho.png)
 [![](http://i.imgur.com/paiJPJkb.jpg)](http://i.imgur.com/paiJPJk.jpg)
 
-Our minimalist "Persona" theme gets you going right away, no coding experience required.
-
-[![](http://i.imgur.com/HwNEXGu.png)](http://i.imgur.com/HwNEXGu.png)
-[![](http://i.imgur.com/II1byYs.png)](http://i.imgur.com/II1byYs.png)
-
+Our minimalist "Harmony" theme gets you going right away, no coding experience required.
 
+![Rendering of a NodeBB install on desktop and mobile devices](https://user-images.githubusercontent.com/923011/228570420-2a4db745-b20d-474a-a571-1b59259508ef.png)
 
 ## How can I follow along/contribute?
 
 * If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase.
-* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
+* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via SCSS or CSS. NodeBB's base theme utilizes [Bootstrap 5](http://getbootstrap.com/) as a frontend toolkit.
 * If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://explore.transifex.com/nodebb/nodebb/) for internationalization.
 * Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
 
@@ -42,7 +39,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
 
 NodeBB requires the following software to be installed:
 
-* A version of Node.js at least 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
+* A version of Node.js at least 16 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
 * MongoDB, version 3.6 or greater **or** Redis, version 2.8.9 or greater
 * If you are using [clustering](https://docs.nodebb.org/configuring/scaling/) you need Redis installed and configured.
 * nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
@@ -76,10 +73,10 @@ Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive
 
 * [Demo](https://try.nodebb.org)
 * [Developer Community](http://community.nodebb.org)
-* [Documentation & Installation Instructions](http://docs.nodebb.org)
+* [Documentation & Installation Instructions](https://docs.nodebb.org)
 * [Help translate NodeBB](https://explore.transifex.com/nodebb/nodebb/)
-* [NodeBB Blog](http://blog.nodebb.org)
-* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB")
+* [NodeBB Blog](https://nodebb.org/blog)
+* [Premium Hosting for NodeBB](https://www.nodebb.org/ "NodeBB")
 * Unofficial IRC community &ndash; channel `#nodebb` on Libera.chat
 * [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
 * [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
diff --git a/install/data/defaults.json b/install/data/defaults.json
index e7bf3f65f4..f5317337e3 100644
--- a/install/data/defaults.json
+++ b/install/data/defaults.json
@@ -4,6 +4,7 @@
     "defaultLang": "en-GB",
     "loginDays": 14,
     "loginSeconds": 0,
+    "sessionDuration": 0,
     "loginAttempts": 5,
     "lockoutDuration": 60,
     "adminReloginDuration": 60,
@@ -15,7 +16,7 @@
     "postDeleteDuration": 0,
     "enablePostHistory": 1,
     "topicBacklinks": 1,
-    "postCacheSize": 10485760,
+    "postCacheSize": 20971520,
     "disableChat": 0,
     "chatEditDuration": 0,
     "chatDeleteDuration": 0,
@@ -181,5 +182,6 @@
     "composer:showHelpTab": 1,
     "composer:allowPluginHelp": 1,
     "maxReconnectionAttempts": 5,
-    "reconnectionDelay": 1500
+    "reconnectionDelay": 1500,
+    "disableCustomUserSkins": 0
 }
\ No newline at end of file
diff --git a/install/data/footer.json b/install/data/footer.json
index 53b2176ade..c428e1eae2 100644
--- a/install/data/footer.json
+++ b/install/data/footer.json
@@ -2,7 +2,7 @@
 	{
 		"widget": "html",
 		"data" : {
-			"html": "<footer id=\"footer\" class=\"container footer\">\r\n\t<div>\r\n\t\tPowered by <a target=\"_blank\" href=\"https://nodebb.org\">NodeBB</a> | <a target=\"_blank\" href=\"//github.com/NodeBB/NodeBB/graphs/contributors\">Contributors</a>\r\n\t</div>\r\n</footer>",
+			"html": "<footer id=\"footer\" class=\"container footer d-flex flex-column align-items-center gap-1 mb-2\">\n\t<span>Powered by <a class=\"link-secondary text-decoration-underline\" target=\"_blank\" href=\"https://nodebb.org\">NodeBB</a></span>\n\t<span><a class=\"link-secondary\" target=\"_blank\" href=\"//github.com/NodeBB/NodeBB/graphs/contributors\"><i class=\"fa fa-users\"></i> <span class=\"text-decoration-underline\">Contributors<span></a></span>\n</footer>",
 			"title":"",
 			"container":""
 		}
diff --git a/install/data/navigation.json b/install/data/navigation.json
index 5df3bda95a..5a744dbdf7 100644
--- a/install/data/navigation.json
+++ b/install/data/navigation.json
@@ -4,7 +4,7 @@
 		"title": "[[global:header.categories]]",
 		"enabled": true,
 		"iconClass": "fa-list",
-		"textClass": "visible-xs-inline",
+		"textClass": "d-lg-none",
 		"text": "[[global:header.categories]]"
 	},
 	{
@@ -13,7 +13,7 @@
 		"title": "[[global:header.unread]]",
 		"enabled": true,
 		"iconClass": "fa-inbox",
-		"textClass": "visible-xs-inline",
+		"textClass": "d-lg-none",
 		"text": "[[global:header.unread]]",
 		"groups": ["registered-users"]
 	},
@@ -22,7 +22,7 @@
 		"title": "[[global:header.recent]]",
 		"enabled": true,
 		"iconClass": "fa-clock-o",
-		"textClass": "visible-xs-inline",
+		"textClass": "d-lg-none",
 		"text": "[[global:header.recent]]"
 	},
 	{
@@ -30,7 +30,7 @@
 		"title": "[[global:header.tags]]",
 		"enabled": true,
 		"iconClass": "fa-tags",
-		"textClass": "visible-xs-inline",
+		"textClass": "d-lg-none",
 		"text": "[[global:header.tags]]"
 	},
 	{
@@ -38,7 +38,7 @@
 		"title": "[[global:header.popular]]",
 		"enabled": true,
 		"iconClass": "fa-fire",
-		"textClass": "visible-xs-inline",
+		"textClass": "d-lg-none",
 		"text": "[[global:header.popular]]"
 	},
 	{
@@ -46,7 +46,7 @@
 		"title": "[[global:header.users]]",
 		"enabled": true,
 		"iconClass": "fa-user",
-		"textClass": "visible-xs-inline",
+		"textClass": "d-lg-none",
 		"text": "[[global:header.users]]"
 	},
 	{
@@ -54,7 +54,7 @@
 		"title": "[[global:header.groups]]",
 		"enabled": true,
 		"iconClass": "fa-group",
-		"textClass": "visible-xs-inline",
+		"textClass": "d-lg-none",
 		"text": "[[global:header.groups]]"
 	},
 	{
@@ -62,7 +62,7 @@
 		"title": "[[global:header.admin]]",
 		"enabled": true,
 		"iconClass": "fa-cogs",
-		"textClass": "visible-xs-inline",
+		"textClass": "d-lg-none",
 		"text": "[[global:header.admin]]",
 		"groups": ["administrators"]
 	}
diff --git a/install/package.json b/install/package.json
index e52e17df3f..6181902144 100644
--- a/install/package.json
+++ b/install/package.json
@@ -2,8 +2,8 @@
     "name": "nodebb",
     "license": "GPL-3.0",
     "description": "NodeBB Forum",
-    "version": "2.8.12",
-    "homepage": "http://www.nodebb.org",
+    "version": "3.0.0-rc.2",
+    "homepage": "https://www.nodebb.org",
     "repository": {
         "type": "git",
         "url": "https://github.com/NodeBB/NodeBB/"
@@ -29,145 +29,151 @@
     },
     "dependencies": {
         "@adactive/bootstrap-tagsinput": "0.8.2",
-        "@isaacs/ttlcache": "1.2.1",
-        "ace-builds": "1.14.0",
+        "@isaacs/ttlcache": "1.2.2",
+        "@popperjs/core": "2.11.7",
+        "ace-builds": "1.18.0",
         "archiver": "5.3.1",
         "async": "3.2.4",
-        "autoprefixer": "10.4.13",
+        "autoprefixer": "10.4.14",
         "bcryptjs": "2.4.3",
-        "benchpressjs": "2.4.3",
-        "body-parser": "1.20.1",
-        "bootbox": "5.5.3",
-        "bootstrap": "3.4.1",
+        "benchpressjs": "2.5.1",
+        "body-parser": "1.20.2",
+        "bootbox": "6.0.0",
+        "bootstrap": "5.2.3",
+        "bootswatch": "5.2.3",
         "chalk": "4.1.2",
         "chart.js": "2.9.4",
         "cli-graph": "3.2.2",
         "clipboard": "2.0.11",
         "colors": "1.4.0",
-        "commander": "9.4.1",
+        "commander": "10.0.1",
         "compare-versions": "5.0.3",
         "compression": "1.7.4",
         "connect-flash": "0.1.1",
-        "connect-mongo": "4.6.0",
+        "connect-mongo": "5.0.0",
         "connect-multiparty": "2.2.0",
         "connect-pg-simple": "8.0.0",
-        "connect-redis": "6.1.3",
+        "connect-redis": "7.0.1",
         "cookie-parser": "1.4.6",
         "cron": "2.3.0",
         "cropperjs": "1.5.13",
-        "csurf": "1.11.0",
+        "csrf-sync": "4.0.1",
         "daemon": "1.1.0",
         "diff": "5.1.0",
-        "esbuild": "0.16.10",
+        "esbuild": "0.17.18",
         "express": "4.18.2",
         "express-session": "1.17.3",
         "express-useragent": "1.0.15",
         "file-loader": "6.2.0",
-        "fs-extra": "11.1.0",
-        "graceful-fs": "4.2.10",
-        "helmet": "5.1.1",
-        "html-to-text": "9.0.3",
+        "fs-extra": "11.1.1",
+        "graceful-fs": "4.2.11",
+        "helmet": "6.1.5",
+        "html-to-text": "9.0.5",
         "ipaddr.js": "2.0.1",
-        "jquery": "3.6.3",
+        "jquery": "3.6.4",
         "jquery-deserialize": "2.0.0",
         "jquery-form": "4.3.0",
         "jquery-serializeobject": "1.0.0",
         "jquery-ui": "1.13.2",
         "jsesc": "3.0.2",
         "json2csv": "5.0.7",
-        "jsonwebtoken": "8.5.1",
+        "jsonwebtoken": "9.0.0",
         "less": "4.1.3",
         "lodash": "4.17.21",
-        "logrotate-stream": "0.2.8",
-        "lru-cache": "7.14.1",
+        "logrotate-stream": "0.2.9",
+        "lru-cache": "9.0.3",
         "material-design-lite": "1.3.0",
         "mime": "3.0.0",
-        "mkdirp": "1.0.4",
-        "mongodb": "4.13.0",
+        "mkdirp": "3.0.1",
+        "mongodb": "5.2.0",
         "morgan": "1.10.0",
         "mousetrap": "1.6.5",
         "multiparty": "4.2.3",
-        "@nodebb/bootswatch": "3.4.2",
         "nconf": "0.12.0",
-        "nodebb-plugin-2factor": "5.1.2",
-        "nodebb-plugin-composer-default": "9.2.5",
-        "nodebb-plugin-dbsearch": "5.1.5",
-        "nodebb-plugin-emoji": "4.0.6",
-        "nodebb-plugin-emoji-android": "3.0.0",
-        "nodebb-plugin-markdown": "10.1.1",
-        "nodebb-plugin-mentions": "3.0.12",
-        "nodebb-plugin-spam-be-gone": "1.0.2",
-        "nodebb-rewards-essentials": "0.2.1",
-        "nodebb-theme-lavender": "6.0.1",
-        "nodebb-theme-persona": "12.1.12",
-        "nodebb-theme-slick": "2.0.2",
-        "nodebb-theme-vanilla": "12.1.19",
-        "nodebb-widget-essentials": "6.0.1",
-        "nodemailer": "6.8.0",
+        "nodebb-plugin-2factor": "7.0.5",
+        "nodebb-plugin-composer-default": "10.0.48",
+        "nodebb-plugin-dbsearch": "6.0.0",
+        "nodebb-plugin-emoji": "5.0.6",
+        "nodebb-plugin-emoji-android": "4.0.0",
+        "nodebb-plugin-markdown": "12.0.2",
+        "nodebb-plugin-mentions": "4.1.0",
+        "nodebb-plugin-ntfy": "1.0.15",
+        "nodebb-plugin-spam-be-gone": "2.0.6",
+        "nodebb-rewards-essentials": "0.2.3",
+        "nodebb-theme-harmony": "1.0.1",
+        "nodebb-theme-lavender": "7.0.9",
+        "nodebb-theme-peace": "2.0.19",
+        "nodebb-theme-persona": "13.0.56",
+        "nodebb-widget-essentials": "7.0.9",
+        "nodemailer": "6.9.1",
         "nprogress": "0.2.0",
         "passport": "0.6.0",
         "passport-http-bearer": "1.0.1",
         "passport-local": "1.0.0",
-        "pg": "8.8.0",
-        "pg-cursor": "2.7.4",
-        "postcss": "8.4.20",
+        "pg": "8.10.0",
+        "pg-cursor": "2.9.0",
+        "postcss": "8.4.23",
         "postcss-clean": "1.2.0",
         "progress-webpack-plugin": "1.0.16",
         "prompt": "1.3.0",
-        "ioredis": "5.2.4",
+        "ioredis": "5.3.2",
         "request": "2.88.2",
         "request-promise-native": "1.0.9",
-        "rimraf": "3.0.2",
+        "rimraf": "5.0.0",
         "rss": "1.2.2",
-        "sanitize-html": "2.8.1",
-        "semver": "7.3.8",
+        "rtlcss": "4.1.0",
+        "sanitize-html": "2.10.0",
+        "sass": "1.62.0",
+        "semver": "7.5.0",
         "serve-favicon": "2.5.0",
-        "sharp": "0.31.3",
+        "sharp": "0.32.0",
         "sitemap": "7.1.1",
         "slideout": "1.0.1",
-        "socket.io": "4.5.4",
-        "socket.io-client": "4.5.4",
-        "@socket.io/redis-adapter": "8.0.0",
+        "socket.io": "4.6.1",
+        "socket.io-client": "4.6.1",
+        "@socket.io/redis-adapter": "8.1.0",
         "sortablejs": "1.15.0",
         "spdx-license-list": "6.6.0",
         "spider-detector": "2.0.0",
-        "terser-webpack-plugin": "5.3.6",
+        "terser-webpack-plugin": "5.3.7",
         "textcomplete": "0.18.2",
         "textcomplete.contenteditable": "0.1.1",
         "timeago": "1.6.7",
         "tinycon": "0.6.8",
         "toobusy-js": "0.5.1",
-        "uglify-es": "3.3.9",
-        "validator": "13.7.0",
-        "webpack": "5.75.0",
+        "validator": "13.9.0",
+        "webpack": "5.79.0",
         "webpack-merge": "5.8.0",
         "winston": "3.8.2",
         "xml": "1.0.1",
         "xregexp": "5.1.1",
-        "yargs": "17.6.2",
+        "yargs": "17.7.1",
         "zxcvbn": "4.4.2"
     },
     "devDependencies": {
-        "@apidevtools/swagger-parser": "9.0.0",
-        "@commitlint/cli": "17.3.0",
-        "@commitlint/config-angular": "17.3.0",
+        "@apidevtools/swagger-parser": "10.1.0",
+        "@commitlint/cli": "17.5.1",
+        "@commitlint/config-angular": "17.4.4",
         "coveralls": "3.1.1",
-        "eslint": "8.30.0",
+        "eslint": "8.39.0",
         "eslint-config-nodebb": "0.2.1",
-        "eslint-plugin-import": "2.26.0",
-        "grunt": "1.5.3",
+        "eslint-plugin-import": "2.27.5",
+        "grunt": "1.6.1",
         "grunt-contrib-watch": "1.1.0",
-        "husky": "8.0.2",
-        "jsdom": "20.0.3",
-        "lint-staged": "13.1.0",
+        "husky": "8.0.3",
+        "jsdom": "21.1.1",
+        "lint-staged": "13.2.1",
         "mocha": "10.2.0",
         "mocha-lcov-reporter": "1.3.0",
         "mockdate": "3.0.5",
         "nyc": "15.1.0",
         "smtp-server": "3.11.0"
     },
+    "optionalDependencies": {
+        "sass-embedded": "1.62.0"
+    },
     "resolutions": {
-        "*/jquery": "3.6.3"
+        "*/jquery": "3.6.4"
     },
     "bugs": {
         "url": "https://github.com/NodeBB/NodeBB/issues"
@@ -176,11 +182,6 @@
         "node": ">=12"
     },
     "maintainers": [
-        {
-            "name": "Andrew Rodrigues",
-            "email": "andrew@nodebb.org",
-            "url": "https://github.com/psychobunny"
-        },
         {
             "name": "Julian Lam",
             "email": "julian@nodebb.org",
@@ -192,4 +193,4 @@
             "url": "https://github.com/barisusakli"
         }
     ]
-}
\ No newline at end of file
+}
diff --git a/install/web.js b/install/web.js
index 0072d15003..dd908679cf 100644
--- a/install/web.js
+++ b/install/web.js
@@ -6,14 +6,14 @@ const bodyParser = require('body-parser');
 const fs = require('fs');
 const path = require('path');
 const childProcess = require('child_process');
-const less = require('less');
 
 const webpack = require('webpack');
 const nconf = require('nconf');
 
 const Benchpress = require('benchpressjs');
-const mkdirp = require('mkdirp');
+const { mkdirp } = require('mkdirp');
 const { paths } = require('../src/constants');
+const sass = require('../src/utils').getSass();
 
 const app = express();
 let server;
@@ -73,7 +73,7 @@ web.install = async function (port) {
 	try {
 		await Promise.all([
 			compileTemplate(),
-			compileLess(),
+			compileSass(),
 			runWebpack(),
 			copyCSS(),
 			loadDefaults(),
@@ -247,23 +247,28 @@ async function compileTemplate() {
 	]);
 }
 
-async function compileLess() {
+async function compileSass() {
 	try {
-		const installSrc = path.join(__dirname, '../public/less/install.less');
+		const installSrc = path.join(__dirname, '../public/scss/install.scss');
 		const style = await fs.promises.readFile(installSrc);
-		const css = await less.render(String(style), { filename: path.resolve(installSrc) });
-		await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), css.css);
+		const scssOutput = sass.compileString(String(style), {
+			loadPaths: [
+				path.join(__dirname, '../public/scss'),
+			],
+		});
+
+		await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), scssOutput.css.toString());
 	} catch (err) {
-		winston.error(`Unable to compile LESS: \n${err.stack}`);
+		winston.error(`Unable to compile SASS: \n${err.stack}`);
 		throw err;
 	}
 }
 
 async function copyCSS() {
-	const src = await fs.promises.readFile(
-		path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'), 'utf8'
+	await fs.promises.copyFile(
+		path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'),
+		path.join(__dirname, '../public/bootstrap.min.css'),
 	);
-	await fs.promises.writeFile(path.join(__dirname, '../public/bootstrap.min.css'), src);
 }
 
 async function loadDefaults() {
diff --git a/loader.js b/loader.js
index 9a1f0cdbad..a960327208 100644
--- a/loader.js
+++ b/loader.js
@@ -6,7 +6,7 @@ const url = require('url');
 const path = require('path');
 const { fork } = require('child_process');
 const logrotate = require('logrotate-stream');
-const mkdirp = require('mkdirp');
+const { mkdirp } = require('mkdirp');
 
 const file = require('./src/file');
 const pkg = require('./package.json');
diff --git a/public/language/ar/admin/admin.json b/public/language/ar/admin/admin.json
index d4bac4e476..75f9917610 100644
--- a/public/language/ar/admin/admin.json
+++ b/public/language/ar/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "لوحة تحكم إدارة NodeBB | %1",
 	"settings-header-contents": "محتويات",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
-	"changes-not-saved": "Changes Not Saved",
-	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
+	"changes-not-saved": "لم يتم حفظ التغييرات",
+	"changes-not-saved-message": "حدثت مشكلة أثناء حفظ التغييرات في NodeBB. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/ar/admin/advanced/cache.json b/public/language/ar/admin/advanced/cache.json
index 77ff9a4387..2fcd7d3567 100644
--- a/public/language/ar/admin/advanced/cache.json
+++ b/public/language/ar/admin/advanced/cache.json
@@ -1,8 +1,8 @@
 {
 	"post-cache": "التخزين المؤقت للمشاركات",
-	"group-cache": "Group Cache",
-	"local-cache": "Local Cache",
-	"object-cache": "Object Cache",
+	"group-cache": "التخزين المؤقت للمجموعات",
+	"local-cache": "تخزين مؤقت محلي",
+	"object-cache": "تخزين مؤقت للأشياء",
 	"percent-full": "1% كاملة",
 	"post-cache-size": "حجم التخزين المؤقت للمشاركات",
 	"items-in-cache": "العناصر في التخزين المؤقت"
diff --git a/public/language/ar/admin/advanced/database.json b/public/language/ar/admin/advanced/database.json
index cb68e704a0..2a0b778125 100644
--- a/public/language/ar/admin/advanced/database.json
+++ b/public/language/ar/admin/advanced/database.json
@@ -1,52 +1,52 @@
 {
-	"x-b": "%1 b",
-	"x-mb": "%1 mb",
-	"x-gb": "%1 gb",
-	"uptime-seconds": "Uptime in Seconds",
-	"uptime-days": "Uptime in Days",
+	"x-b": "٪1 بايت",
+	"x-mb": "٪1 ميقا بايت",
+	"x-gb": "٪1 قيقا بايت",
+	"uptime-seconds": "مدة التشغيل بالثواني",
+	"uptime-days": "مدة التشغيل بالأيام",
 
 	"mongo": "Mongo",
-	"mongo.version": "MongoDB Version",
-	"mongo.storage-engine": "Storage Engine",
-	"mongo.collections": "Collections",
-	"mongo.objects": "Objects",
-	"mongo.avg-object-size": "Avg. Object Size",
-	"mongo.data-size": "Data Size",
-	"mongo.storage-size": "Storage Size",
-	"mongo.index-size": "Index Size",
-	"mongo.file-size": "File Size",
-	"mongo.resident-memory": "Resident Memory",
+	"mongo.version": "اصدار MongoDB",
+	"mongo.storage-engine": "محرك التخزين",
+	"mongo.collections": "التجميعات",
+	"mongo.objects": "العناصر",
+	"mongo.avg-object-size": "معدل حجم العناصر",
+	"mongo.data-size": "حجم البيانات",
+	"mongo.storage-size": "حجم التخرين",
+	"mongo.index-size": "حجم الفهرس",
+	"mongo.file-size": "حجم الملف",
+	"mongo.resident-memory": "الذاكرة الساكنة",
 	"mongo.virtual-memory": "الذاكرة الإفتراضية",
-	"mongo.mapped-memory": "Mapped Memory",
-	"mongo.bytes-in": "Bytes In",
-	"mongo.bytes-out": "Bytes Out",
-	"mongo.num-requests": "Number of Requests",
-	"mongo.raw-info": "MongoDB Raw Info",
-	"mongo.unauthorized": "NodeBB was unable to query the MongoDB database for relevant statistics. Please ensure that the user in use by NodeBB contains the &quot;clusterMonitor&quot; role for the &quot;admin&quot; database.",
+	"mongo.mapped-memory": "الذاكرة المعينة",
+	"mongo.bytes-in": "البايتات الواردة",
+	"mongo.bytes-out": "البايتات الصادرة",
+	"mongo.num-requests": "عدد الطلبات",
+	"mongo.raw-info": "معلومات MongoDB الأولية",
+	"mongo.unauthorized": "لم يستطع NodeBB من الاستعلام عن احصاءات قواعد البيانات ل MongoDB. الرجاء التأكد من أن المستخدم في NodeBB يحتوي على دور &quot;clusterMonitor&quot; ال &quot;admin&quot; لقواعد البيانات.",
 
 	"redis": "Redis",
-	"redis.version": "Redis Version",
-	"redis.keys": "Keys",
-	"redis.expires": "Expires",
-	"redis.avg-ttl": "Average TTL",
-	"redis.connected-clients": "Connected Clients",
-	"redis.connected-slaves": "Connected Slaves",
-	"redis.blocked-clients": "Blocked Clients",
+	"redis.version": "إصدار Redis",
+	"redis.keys": "المفاتيح",
+	"redis.expires": "ينتهي ",
+	"redis.avg-ttl": "متوسط وقت الانعاش",
+	"redis.connected-clients": "العميل المتصل",
+	"redis.connected-slaves": "البدلاء المتصلين",
+	"redis.blocked-clients": "العملاء المحظورون",
 	"redis.used-memory": "الذاكرة المستخدمة",
-	"redis.memory-frag-ratio": "Memory Fragmentation Ratio",
+	"redis.memory-frag-ratio": "نسبة تجزئة الذاكرة",
 	"redis.total-connections-recieved": "إجمالي الاتصالات المستلمة",
 	"redis.total-commands-processed": "إجمالي الأوامر التي تمت معالجتها",
-	"redis.iops": "Instantaneous Ops. Per Second",
-	"redis.iinput": "Instantaneous Input Per Second",
-	"redis.ioutput": "Instantaneous Output Per Second",
-	"redis.total-input": "Total Input",
-	"redis.total-output": "Total Ouput",
+	"redis.iops": "العمليات اللحظية في الثانية",
+	"redis.iinput": "الإدخال الفوري في الثانية",
+	"redis.ioutput": "المخرجات الفورية في الثانية",
+	"redis.total-input": "مجموع المدخلات",
+	"redis.total-output": "مجموع المخرجات",
 
-	"redis.keyspace-hits": "Keyspace Hits",
-	"redis.keyspace-misses": "Keyspace Misses",
-	"redis.raw-info": "Redis Raw Info",
+	"redis.keyspace-hits": "المفاتيح المضغوطة",
+	"redis.keyspace-misses": "المفاتيح المخفقة",
+	"redis.raw-info": "معلومات Redis الأولية",
 
 	"postgres": "Postgres",
-	"postgres.version": "PostgreSQL Version",
-	"postgres.raw-info": "Postgres Raw Info"
+	"postgres.version": "إصدار PostgreSQL",
+	"postgres.raw-info": "معلومات Postgres الأولية"
 }
diff --git a/public/language/ar/admin/advanced/events.json b/public/language/ar/admin/advanced/events.json
index 218d088830..263dd0e062 100644
--- a/public/language/ar/admin/advanced/events.json
+++ b/public/language/ar/admin/advanced/events.json
@@ -3,7 +3,7 @@
 	"no-events": "لا توجد أحداث",
 	"control-panel": "لوحة تحكم الأحداث",
 	"delete-events": "حذف الاحداث",
-	"confirm-delete-all-events": "Are you sure you want to delete all logged events?",
+	"confirm-delete-all-events": "هل أنت متاكد أنك تريد حذف كل سجل اﻻحداث؟",
 	"filters": "تصفية",
 	"filters-apply": "تطبيق التصفية",
 	"filter-type": "نوع الحدث",
diff --git a/public/language/ar/admin/appearance/customise.json b/public/language/ar/admin/appearance/customise.json
index 036fa67df2..1077df0c90 100644
--- a/public/language/ar/admin/appearance/customise.json
+++ b/public/language/ar/admin/appearance/customise.json
@@ -1,14 +1,14 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Javascript مخصصة",
 	"custom-js.description": "أدخل Javascript الخاص بك هنا. سيتم تنفيذها بعد تحميل الصفحة بالكامل.",
 	"custom-js.enable": "تفعيل Javascript المخصصة",
 
 	"custom-header": "ترويسة مخصصة",
-	"custom-header.description": "Enter custom HTML here (ex. Meta Tags, etc.), which will be appended to the <code>&lt;head&gt;</code> section of your forum's markup. Script tags are allowed, but are discouraged, as the <a href=\"#custom-js\" data-toggle=\"tab\">Custom Javascript</a> tab is available.",
+	"custom-header.description": "أدخل وسوم HTML المخصصة هنا (مثل: Meta Tags, وغيرها)، والتي سيتم تضمينها لجزئية <code>&lt;head&gt;</code> من ترميز المنتدى. يُسمح بعلامات البرمجة النصية، ولكن لا يُنصح بها ، نظرًا لأن علامة التبويب <a href=\"#custom-js\" data-toggle=\"tab\"> Custom Javascript </a> متاحة.",
 	"custom-header.enable": "تفعيل الترويسة المخصصة",
 
 	"custom-css.livereload": "تفعيل إعادة التحميل المباشرة",
diff --git a/public/language/ar/admin/appearance/themes.json b/public/language/ar/admin/appearance/themes.json
index 87dcc31000..f410317c25 100644
--- a/public/language/ar/admin/appearance/themes.json
+++ b/public/language/ar/admin/appearance/themes.json
@@ -7,5 +7,5 @@
     "revert-confirm": "هل أنت متأكد من أنك ترغب في استعادة قااب NodeBB الافتراضي؟",
     "theme-changed": "تم تغيير القالب",
     "revert-success": "لقد قمت بنجاح بإستعادة القالب الأساسي لـNodeBB",
-    "restart-to-activate": "Please rebuild and restart your NodeBB to fully activate this theme."
+    "restart-to-activate": "يرجى إعادة بناء وإعادة تشغيل NodeBB لتنشيط هذا الثيم."
 }
\ No newline at end of file
diff --git a/public/language/ar/admin/dashboard.json b/public/language/ar/admin/dashboard.json
index a54c39d931..5673e9598a 100644
--- a/public/language/ar/admin/dashboard.json
+++ b/public/language/ar/admin/dashboard.json
@@ -1,9 +1,9 @@
 {
-	"forum-traffic": "Forum Traffic",
+	"forum-traffic": "حركة المنتدى",
 	"page-views": "مشاهدات الصفحات",
 	"unique-visitors": "زائرين فريدين",
-	"logins": "Logins",
-	"new-users": "New Users",
+	"logins": "عمليات تسجيل الدخول",
+	"new-users": "مستخدم جديد",
 	"posts": "مشاركات",
 	"topics": "مواضيع",
 	"page-views-seven": "آخر 7 ايام",
@@ -15,24 +15,24 @@
 	"page-views-custom-help": "أدخل نطاقا زمنيا لمرات مشاهدة الصفحات التي ترغب في عرضها. إذا لم يظهر منتقي التاريخ، فإن التنسيق المقبول هو <code>YYYY-MM-DD</code>",
 	"page-views-custom-error": "الرجاء إدخال نطاق تاريخ صالح بالتنسيق <code>YYYY-MM-DD</code>",
 
-	"stats.yesterday": "Yesterday",
-	"stats.today": "Today",
-	"stats.last-week": "Last Week",
-	"stats.this-week": "This Week",
-	"stats.last-month": "Last Month",
-	"stats.this-month": "This Month",
+	"stats.yesterday": "الأمس",
+	"stats.today": "اليوم",
+	"stats.last-week": "الاسبوع الماضي",
+	"stats.this-week": "هذا الاسبوع",
+	"stats.last-month": "الشهر الماضي",
+	"stats.this-month": "هذا الشهر",
 	"stats.all": "كل الوقت",
 
 	"updates": "تحديثات",
 	"running-version": "المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.",
 	"keep-updated": "تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.",
 	"up-to-date": "<p>المنتدى <strong>يعمل على أحدث إصدار</strong> <i class=\"fa fa-check\"></i></p>",
-	"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
-	"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
+	"upgrade-available": "<p> هناك إصدار جديد برقم (v%1). خذ بعين الاعتبار <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\"> ترقية NodeBB </a>.</p>",
+	"prerelease-upgrade-available": "<p>هذا إصدار منتهي من الاصدارات المسبقة من NodeBB. هناك إصدار جديد برقم (v٪ 1). ضع في اعتبارك <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">ترقية NodeBB إليه</a>.</p>",
 	"prerelease-warning": "<p>هذه نسخة <strong>ماقبل الإصدار</strong> من NodeBB. قد تحدث أخطاء غير مقصودة. <i class=\"fa fa-exclamation-triangle\"></i></p>",
-	"fallback-emailer-not-found": "Fallback emailer not found!",
+	"fallback-emailer-not-found": "مرسل البريد الإلكتروني الاحتياطي غير موجود!",
 	"running-in-development": "المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.",
-	"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>",
+	"latest-lookup-failed": "<p>فشل البحث عن أحدث إصدار متوفر من NodeBB</p>",
 
 	"notices": "إشعارات",
 	"restart-not-required": "إعادة التشغيل غير مطلوب",
@@ -42,10 +42,10 @@
 	"search-plugin-tooltip": "نصب إضافة البحث من صفحة الإضافات البرمجية لتنشيط وظيفة البحث",
 
 	"control-panel": "التحكم بالنظام",
-	"rebuild-and-restart": "Rebuild &amp; Restart",
-	"restart": "Restart",
-	"restart-warning": "Rebuilding or Restarting your NodeBB will drop all existing connections for a few seconds.",
-	"restart-disabled": "Rebuilding and Restarting your NodeBB has been disabled as you do not seem to be running it via the appropriate daemon.",
+	"rebuild-and-restart": "أعد البناء &amp; وأعد التشغيل",
+	"restart": "أعد التشغيل",
+	"restart-warning": "ستؤدي إعادة بناء أو إعادة تشغيل NodeBB إلى إنقطاع الاتصال بالمنتدى لبضع ثوان.",
+	"restart-disabled": "تم تعطيل إعادة بناء NodeBB وإعادة تشغيله حيث لا يبدو أنك تقوم بتشغيله عبر البرنامج الخفي المناسب.",
 	"maintenance-mode": "وضع الصيانة",
 	"maintenance-mode-title": "انقر هنا لإعداد وضع الصيانة لـNodeBB",
 	"realtime-chart-updates": "التحديث الفوري للرسم البياني",
@@ -54,10 +54,10 @@
 	"active-users.users": "الأعضاء",
 	"active-users.guests": "الزوار",
 	"active-users.total": "المجموع",
-	"active-users.connections": "Connections",
+	"active-users.connections": "روابط الاتصال",
 
-	"guest-registered-users": "Guest vs Registered Users",
-	"guest": "Guest",
+	"guest-registered-users": "الزائر مقابل المستخدمين المسجلين",
+	"guest": "الزائر",
 	"registered": "مسجل",
 
 	"user-presence": "تواجد المستخدمين",
@@ -68,23 +68,26 @@
 	"unread": "غير مقروء",
 
 	"high-presence-topics": "مواضيع ذات حضور قوي",
-	"popular-searches": "Popular Searches",
+	"popular-searches": "عمليات البحث الشائعة",
 
 	"graphs.page-views": "مشاهدات الصفحة",
-	"graphs.page-views-registered": "Page Views Registered",
-	"graphs.page-views-guest": "Page Views Guest",
-	"graphs.page-views-bot": "Page Views Bot",
+	"graphs.page-views-registered": "زيارات الصفحات المسجلة",
+	"graphs.page-views-guest": "زيارات الصفحات للزوار",
+	"graphs.page-views-bot": "زيارات الصفحات الآلية",
 	"graphs.unique-visitors": "زوار فريدين",
 	"graphs.registered-users": "مستخدمين مسجلين",
-	"graphs.guest-users": "Guest Users",
-	"last-restarted-by": "Last restarted by",
-	"no-users-browsing": "No users browsing",
+	"graphs.guest-users": "المستخدمين الزوار",
+	"last-restarted-by": "آخر إعادة تشغيل بواسطة",
+	"no-users-browsing": "لا يوجد مستخدمين يتصفحون",
 
-	"back-to-dashboard": "Back to Dashboard",
-	"details.no-users": "No users have joined within the selected timeframe",
-	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
-	"details.no-logins": "No logins have been recorded within the selected timeframe",
-	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"back-to-dashboard": "العودة للوحة التحكم",
+	"details.no-users": "لم ينضم أي مستخدم خلال الإطار الزمني المحدد",
+	"details.no-topics": "لم يتم نشر أي مواضيع خلال الإطار الزمني المحدد",
+	"details.no-searches": "لم يتم إجراء أي بحث خلال الإطار الزمني المحدد",
+	"details.no-logins": "لم يوثق أي تسجيل دخول خلال الإطار الزمني المحدد",
+	"details.logins-static": "يقوم NodeBB بحفظ بيانات الجلسة لمدة ٪1 يوم/أيام فقط، ولذا فإن هذا الجدول أدناه سيعرض فقط أحدث الجلسات النشطة",
+	"details.logins-login-time": "وقت تسجيل الدخول",
+	"start": "بدء",
+	"end": "إنهاء",
+	"filter": "تصفية"
 }
diff --git a/public/language/ar/admin/development/info.json b/public/language/ar/admin/development/info.json
index 11202d9c3a..7948d86494 100644
--- a/public/language/ar/admin/development/info.json
+++ b/public/language/ar/admin/development/info.json
@@ -1,8 +1,8 @@
 {
-	"you-are-on": "You are on <strong>%1:%2</strong>",
-	"ip": "IP <strong>%1</strong>",
-	"nodes-responded": "%1 nodes responded within %2ms!",
-	"host": "host",
+	"you-are-on": "أنت في <strong> %1:%2 </strong>",
+	"ip": "رقم الآي بي <strong> %1 </strong>",
+	"nodes-responded": "عدد %1 نقطة/نقاط استجابوا خلال %2 جزء من الثانية.",
+	"host": "المضيف",
 	"primary": "primary / run jobs",
 	"pid": "pid",
 	"nodejs": "nodejs",
diff --git a/public/language/ar/admin/development/logger.json b/public/language/ar/admin/development/logger.json
index 6ab9558149..3a1fcbd0a5 100644
--- a/public/language/ar/admin/development/logger.json
+++ b/public/language/ar/admin/development/logger.json
@@ -1,12 +1,12 @@
 {
-	"logger-settings": "Logger Settings",
-	"description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.",
-	"explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.",
-	"enable-http": "Enable HTTP logging",
-	"enable-socket": "Enable socket.io event logging",
-	"file-path": "Path to log file",
-	"file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal",
+	"logger-settings": "إعدادات المسجِّل",
+	"description": "من خلال تمكين مربعات الاختيار ، ستتلقى سجلات إلى جهازك الطرفي. إذا حددت مسارًا ، فسيتم بعد ذلك حفظ السجلات في ملف بدلاً من ذلك. يعد تسجيل HTTP مفيدًا لجمع الإحصائيات حول من ومتى وماذا يصل الأشخاص في المنتدى. بالإضافة إلى تسجيل طلبات HTTP ، يمكننا أيضًا تسجيل أحداث socket.io. يمكن أن يكون تسجيل Socket.io ، جنبًا إلى جنب مع شاشة redis-cli ، مفيدًا جدًا في تعلم العناصر الداخلية لـ NodeBB.",
+	"explanation": "ما عليك سوى تحديدأو/ إلغاء تحديد إعدادات التسجيل لتمكين أو تعطيل التسجيل أثناء التنقل. لا حاجة لإعادة التشغيل.",
+	"enable-http": "تمكين سجلات HTTP",
+	"enable-socket": "تفعيل تسجيل أحداث socket.io",
+	"file-path": "مسار ملف السجل",
+	"file-path-placeholder": "/path/to/log/file.log ::: اتركه فارغا لاظهار السجلات لنافذة الطرفية",
 
-	"control-panel": "Logger Control Panel",
-	"update-settings": "Update Logger Settings"
+	"control-panel": "لوحة تحكم المسجل",
+	"update-settings": "تحديث إعدادات المسجل"
 }
\ No newline at end of file
diff --git a/public/language/ar/admin/extend/rewards.json b/public/language/ar/admin/extend/rewards.json
index df89d441a7..6e99c53dbe 100644
--- a/public/language/ar/admin/extend/rewards.json
+++ b/public/language/ar/admin/extend/rewards.json
@@ -1,15 +1,15 @@
 {
-	"rewards": "Rewards",
-	"condition-if-users": "If User's",
-	"condition-is": "Is:",
-	"condition-then": "Then:",
-	"max-claims": "Amount of times reward is claimable",
-	"zero-infinite": "Enter 0 for infinite",
-	"delete": "Delete",
-	"enable": "Enable",
-	"disable": "Disable",
+	"rewards": "المكافآت",
+	"condition-if-users": "إذا كان للمستخدم",
+	"condition-is": "يكون: ",
+	"condition-then": "عندئذ:",
+	"max-claims": "عدد المرات التي يمكن فيها المطالبة بالمكافأة",
+	"zero-infinite": "أدخل 0 للقيمة اللانهائية",
+	"delete": "احذف",
+	"enable": "مكّن",
+	"disable": "عطّل",
 
-	"alert.delete-success": "Successfully deleted reward",
-	"alert.no-inputs-found": "Illegal reward - no inputs found!",
-	"alert.save-success": "Successfully saved rewards"
+	"alert.delete-success": "المكافآت المحذوفة بنجاح",
+	"alert.no-inputs-found": "مكافأة غير قانونية - لم يتم العثور على مدخلات!",
+	"alert.save-success": "المكافآت المحفوظة بنجاح"
 }
\ No newline at end of file
diff --git a/public/language/ar/admin/extend/widgets.json b/public/language/ar/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/ar/admin/extend/widgets.json
+++ b/public/language/ar/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/ar/admin/manage/groups.json b/public/language/ar/admin/manage/groups.json
index 61f3bc8087..e6151624a2 100644
--- a/public/language/ar/admin/manage/groups.json
+++ b/public/language/ar/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/ar/admin/manage/privileges.json b/public/language/ar/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/ar/admin/manage/privileges.json
+++ b/public/language/ar/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/ar/admin/manage/registration.json b/public/language/ar/admin/manage/registration.json
index f51b4d56e6..0dc019b066 100644
--- a/public/language/ar/admin/manage/registration.json
+++ b/public/language/ar/admin/manage/registration.json
@@ -1,20 +1,20 @@
 {
-	"queue": "Queue",
+	"queue": "الطابور",
 	"description": "There are no users in the registration queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; User &rarr; User Registration</a> and set <strong>Registration Type</strong> to \"Admin Approval\".",
 
-	"list.name": "Name",
-	"list.email": "Email",
+	"list.name": "اﻹسم",
+	"list.email": "البريد الإلكتروني",
 	"list.ip": "IP",
-	"list.time": "Time",
+	"list.time": "التوقيت",
 	"list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3",
 	"list.email-spam": "Frequency: %1 Appears: %2",
 	"list.ip-spam": "Frequency: %1 Appears: %2",
 
-	"invitations": "Invitations",
+	"invitations": "الدعوات",
 	"invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username. <br><br>The username will be displayed to the right of the emails for users who have redeemed their invitations.",
-	"invitations.inviter-username": "Inviter Username",
-	"invitations.invitee-email": "Invitee Email",
-	"invitations.invitee-username": "Invitee Username (if registered)",
+	"invitations.inviter-username": "أسم المستخدم الداعي",
+	"invitations.invitee-email": "البريد اﻻلكتروني للمدعو",
+	"invitations.invitee-username": "اسم المستخم للمدعو (اذا كان مسجل)",
 
-	"invitations.confirm-delete": "Are you sure you wish to delete this invitation?"
+	"invitations.confirm-delete": "هل أنت متأكد من أنك تريد حذف هذه الدعوة؟"
 } 
\ No newline at end of file
diff --git a/public/language/ar/admin/settings/api.json b/public/language/ar/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/ar/admin/settings/api.json
+++ b/public/language/ar/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/ar/admin/settings/navigation.json b/public/language/ar/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/ar/admin/settings/navigation.json
+++ b/public/language/ar/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/ar/admin/settings/user.json b/public/language/ar/admin/settings/user.json
index 56f835492a..6fa1337000 100644
--- a/public/language/ar/admin/settings/user.json
+++ b/public/language/ar/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "تسجيل المستخدم",
diff --git a/public/language/ar/error.json b/public/language/ar/error.json
index f71e48bfeb..3856600b0b 100644
--- a/public/language/ar/error.json
+++ b/public/language/ar/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "خاصية رفع الملفات غير مفعلة للزوار.",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "سبق وتم تسجيل طلب العضوية",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "سبق وتم حذف هذا الرد",
     "post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
     "topic-already-deleted": "سبق وتم حذف هذا الموضوع",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/ar/flags.json b/public/language/ar/flags.json
index c7bc55119e..1611570340 100644
--- a/public/language/ar/flags.json
+++ b/public/language/ar/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "المحال إليه",
 	"update": "تحديث",
 	"updated": "تم التحديث",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "ازالة الفلاتر",
 	"filters": "خيارات الفلتر",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "عنوان العلامة",
 	"filter-type-all": "كل المحتوي",
 	"filter-type-post": "مشاركة",
 	"filter-type-user": "مستخدم",
 	"filter-state": "الحالة",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "اضافة ملاحظة",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/ar/global.json b/public/language/ar/global.json
index 7f93ee0e24..c8e13d0ef5 100644
--- a/public/language/ar/global.json
+++ b/public/language/ar/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "أغلق",
     "403.title": "غير مسموح بالدخول",
     "403.message": "يبدو أنك قد تعثرت على صفحة لا تمتلك الصلاحية للدخول إليها",
-    "403.login": "ربما يجب عليك  <a href='%1/login'>تسجل دخولك</a>.",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "لم يتم العثور",
-    "404.message": "الصفحة غير موجودة. العودة لـ <a href='%1/'>الرئيسية</a>",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "خطأ داخلي",
     "500.message": "عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!",
     "400.title": "طلب سيئ",
-    "400.message": "الرابط غير صحيح. رجاءًا تأكد من الرابط أو ارجع لـ <a href='%1/'>الرئيسية</a>",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "تسجيل",
     "login": "دخول",
     "please_log_in": "الرجاء تسجيل الدخول",
@@ -37,9 +37,13 @@
     "header.notifications": "التنبيهات",
     "header.search": "بحث",
     "header.profile": "ملف",
+    "header.account": "Account",
     "header.navigation": "الاستكشاف",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "تحميل التنبيهات",
     "chats.loading": "تحميل الدردشات",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "مرحبا بكم في NodeBB، منصة المناقشة المستقبلية.",
     "previouspage": "الصفحة السابقة",
     "nextpage": "الصفحة التالية",
@@ -54,7 +58,8 @@
     "users": "الأعضاء",
     "topics": "المواضيع",
     "posts": "المشاركات",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "الأفضل",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "السمعة",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "اقرأ المزيد",
     "more": "المزيد",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 كتب %2",
     "guest_posted_ago": "كتب زائر %1",
     "last_edited_by": "اخر تحرير بواسطة 1%",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "لاوجود لمشاركات جديدة",
     "norecenttopics": "لاوجود لمواضيع جديدة",
     "recentposts": "آخر المشاركات",
     "recentips": "آخر عناوين ال IP التي سجلت الدخول",
     "moderator_tools": "أدوات المشرف",
+    "status": "Status",
     "online": "المتواجدون حاليًّا",
     "away": "غير متواجد",
     "dnd": "عدم الإزعاج",
@@ -122,5 +130,7 @@
     "edited": "حُرِر",
     "disabled": "معطل",
     "select": "تحديد",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/ar/groups.json b/public/language/ar/groups.json
index 73095455ce..c16569c2fc 100644
--- a/public/language/ar/groups.json
+++ b/public/language/ar/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "المجموعات",
+    "members": "Members",
     "view_group": "معاينة المجموعة",
     "owner": "مالك المجموعة",
     "new_group": "أنشئ مجموعة جديدة",
diff --git a/public/language/ar/modules.json b/public/language/ar/modules.json
index ad1616060a..30f4741012 100644
--- a/public/language/ar/modules.json
+++ b/public/language/ar/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "أرسل",
     "chat.no_active": "لا يوجد لديك دردشات نشطة.",
     "chat.user_typing": "%1 يكتب رسالة...",
@@ -42,6 +46,7 @@
     "composer.compose": "اكتب",
     "composer.show_preview": "عرض المعاينة",
     "composer.hide_preview": "إخفاء المعاينة",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 كتب في  %2",
     "composer.user_said": "%1 كتب:",
     "composer.discard": "هل أنت متأكد أنك تريد التخلي عن التغييرات؟",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "إلغاء",
     "bootbox.confirm": "تأكيد",
diff --git a/public/language/ar/pages.json b/public/language/ar/pages.json
index 0810992571..90174cb6d9 100644
--- a/public/language/ar/pages.json
+++ b/public/language/ar/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "خيارات المستخدم",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Topics watched by %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Posts upvoted by %1",
diff --git a/public/language/ar/post-queue.json b/public/language/ar/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/ar/post-queue.json
+++ b/public/language/ar/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/ar/recent.json b/public/language/ar/recent.json
index fcbc6949be..b6ff5506e6 100644
--- a/public/language/ar/recent.json
+++ b/public/language/ar/recent.json
@@ -7,13 +7,5 @@
     "alltime": "دائمًا",
     "no_recent_topics": "لايوجد مواضيع جديدة",
     "no_popular_topics": "لا يوجد مواضيع شائعة",
-    "there-is-a-new-topic": "يوجد موضوع جديد",
-    "there-is-a-new-topic-and-a-new-post": "يوجد موضوع جديد و رد جديد",
-    "there-is-a-new-topic-and-new-posts": "يوجد موضوع جديد و %1 ردود جديدة ",
-    "there-are-new-topics": "يوجد %1 مواضيع جديدة",
-    "there-are-new-topics-and-a-new-post": "يوجد %1 مواضيع جديدة و رد جديد",
-    "there-are-new-topics-and-new-posts": "يوجد %1 مواضيع جديدة و %2 مشاركات جديدة",
-    "there-is-a-new-post": "يوجد مشاركة جديدة",
-    "there-are-new-posts": "يوجد %1 مشاركات جديدة",
-    "click-here-to-reload": "إضغط هنا لإعادة التحميل"
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/ar/register.json b/public/language/ar/register.json
index ce3b35e526..2421cbc46b 100644
--- a/public/language/ar/register.json
+++ b/public/language/ar/register.json
@@ -1,5 +1,6 @@
 {
     "register": "تسجيل",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "إلغاء التسجيل",
     "help.email": "افتراضيا، سيتم إخفاء بريدك الإلكتروني من العامة.",
     "help.username_restrictions": "اسم مستخدم فريدة من نوعها بين 1% و 2% حرفا. بإمكان الآخرين مناداتك بـ @<span id='yourUsername'>اسم المستخدم</span>.",
diff --git a/public/language/ar/search.json b/public/language/ar/search.json
index b2c7a32bbc..bcb297763d 100644
--- a/public/language/ar/search.json
+++ b/public/language/ar/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 نتيجة (نتائج) موافقة لـ \"%2\", (%3 ثواني)",
     "no-matches": "لم يتم العثور على نتائج.",
     "advanced-search": "بحث متقدم",
     "in": "في",
-    "titles": "العناوين",
-    "titles-posts": "العناوين والمشاركات",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "مشاركة من طرف",
-    "in-categories": "في الفئات",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "بحث في الفئات الفرعية",
     "has-tags": "Has tags",
     "reply-count": "عدد المشاركات",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "على اﻷقل",
     "at-most": "على اﻷكثر",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "تاريخ المشاركة",
     "votes": "Votes",
     "newer-than": "أحدث من",
@@ -28,7 +48,22 @@
     "three-months": "ثلاثة أشهر",
     "six-months": "ستة أشهر",
     "one-year": "عام",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "عرض حسب",
+    "sort": "Sort",
     "last-reply-time": "تاريخ آخر رد",
     "topic-title": "عنوان الموضوع",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "فئة",
     "descending": "في ترتيب تنازلي",
     "ascending": "في ترتيب تصاعدي",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "حفظ التفضيلات",
     "clear-preferences": "ازالة التفضيلات",
     "search-preferences-saved": "تم حفظ تفضيلات البحث",
     "search-preferences-cleared": "تم ازالة تفضيلات البحث",
     "show-results-as": "عرض النتائج كـ",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/ar/social.json b/public/language/ar/social.json
new file mode 100644
index 0000000000..bc6916716a
--- /dev/null
+++ b/public/language/ar/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "تسجيل الدخول باستخدام تويتر",
+	"sign-up-with-twitter": "التسجيل باستخدام تويتر",
+	"sign-in-with-github": "تسجيل الدخول باستخدام جيت هب",
+	"sign-up-with-github": "التسجيل باستخدام جيت هب",
+	"sign-in-with-google": "تسجيل الدخول باستخدام قوقل",
+	"sign-up-with-google": "التسجيل باستخدام قوقل",
+	"log-in-with-facebook": "تسجيل الدخول باستخدام فيسبوك",
+	"continue-with-facebook": "التسجيل باستخدام فيسبوك"
+}
\ No newline at end of file
diff --git a/public/language/ar/tags.json b/public/language/ar/tags.json
index 34addbaec4..ed9b42d0c0 100644
--- a/public/language/ar/tags.json
+++ b/public/language/ar/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "لا يوجد مواضيع بهذه الكلمة الدلالية.",
+    "no-tags-found": "No tags found",
     "tags": "الكلمات الدلالية",
     "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
     "enter_tags_here_short": "أدخل الكلمات الدلالية...",
diff --git a/public/language/ar/topic.json b/public/language/ar/topic.json
index c5ec5278dc..ffddcd11b0 100644
--- a/public/language/ar/topic.json
+++ b/public/language/ar/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "تطهير الموضوع",
     "thread_tools.purge_confirm": "هل أنت متأكد أنك تريد تطهير هذا الموضوع؟",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "تم نقل المشاركة",
     "fork_topic": "فرع الموضوع",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "لم تختر أي مشاركة",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "نبذ التغييرات",
     "composer.submit": "حفظ",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "الرد على %1",
     "composer.new_topic": "موضوع جديد",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/ar/user.json b/public/language/ar/user.json
index 6edb9b3752..17b7ea8b18 100644
--- a/public/language/ar/user.json
+++ b/public/language/ar/user.json
@@ -1,6 +1,6 @@
 {
     "banned": "محظور",
-    "muted": "Muted",
+    "muted": "كتم ",
     "offline": "غير متصل",
     "deleted": "محذوف",
     "username": "إسم المستخدم",
@@ -9,7 +9,7 @@
     "email": "البريد الإلكتروني",
     "confirm_email": "تأكيد عنوان البريد الإلكتروني",
     "account_info": "معلومات الحساب",
-    "admin_actions_label": "Administrative Actions",
+    "admin_actions_label": "الإجراءات الإدارية",
     "ban_account": "حظر الحساب",
     "ban_account_confirm": "هل تريد حقاً حظر هاذا العضو؟",
     "unban_account": "إزالة حظر الحساب",
@@ -24,7 +24,7 @@
     "delete_account_content_confirm": "Are you sure you want to delete this account's content (posts/topics/uploads)? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
     "delete_all_confirm": "Are you sure you want to delete this account and all of its content (posts/topics/uploads)? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
     "account-deleted": "تم حذف الحساب",
-    "account-content-deleted": "Account content deleted",
+    "account-content-deleted": "تم حذف محتوى حساب",
     "fullname": "الاسم الكامل",
     "website": "الموقع الإلكتروني",
     "location": "الموقع",
@@ -34,25 +34,26 @@
     "profile": "الملف الشخصي",
     "profile_views": "عدد المشاهدات",
     "reputation": "السمعة",
-    "bookmarks": "Bookmarks",
-    "watched_categories": "Watched categories",
-    "change_all": "Change All",
+    "bookmarks": "المفضلات",
+    "watched_categories": "الأقسام المُتابعة",
+    "change_all": "غير الكل",
     "watched": "متابع",
     "ignored": "تم تجاهله",
-    "default-category-watch-state": "Default category watch state",
+    "default-category-watch-state": "حالة مشاهدة اﻻقسام الافتراضية",
     "followers": "المتابعون",
     "following": "يتابع",
-    "blocks": "Blocks",
-    "block_toggle": "Toggle Block",
-    "block_user": "Block User",
-    "unblock_user": "Unblock User",
+    "blocks": "الكتل",
+    "blocked-users": "Blocked users",
+    "block_toggle": "تبديل الكتلة",
+    "block_user": "أحظر المستخدم",
+    "unblock_user": "ألغ حظر المستخدم",
     "aboutme": "معلومة عنك او السيرة الذاتية",
     "signature": "توقيع",
     "birthday": "عيد ميلاد",
     "chat": "محادثة",
     "chat_with": "متابعة الدردشة مع %1",
     "new_chat_with": "بدء دردشة جديدة مع %1",
-    "flag-profile": "Flag Profile",
+    "flag-profile": "ضع علامة على الملف الشخصي",
     "follow": "تابع",
     "unfollow": "إلغاء المتابعة",
     "more": "المزيد",
@@ -68,6 +69,7 @@
     "upload_new_picture": "رفع صورة جديدة",
     "upload_new_picture_from_url": "رفع صورة جديدة من رابط",
     "current_password": "كلمة السر الحالية",
+    "new_password": "New Password",
     "change_password": "تغيير كلمة السر",
     "change_password_error": "كلمة سر غير صحيحة",
     "change_password_error_wrong_current": "كلمة السر الحالية ليست صحيحة",
@@ -87,7 +89,7 @@
     "remove_cover_picture_confirm": "هل تريد بالتأكيد إزالة صورة الغلاف؟",
     "crop_picture": "إقتصاص الصورة",
     "upload_cropped_picture": "إقتصاص ورفع",
-    "avatar-background-colour": "Avatar background colour",
+    "avatar-background-colour": "لون الخلفية للصورة الرمزية",
     "settings": "خيارات",
     "show_email": "أظهر بريدي الإلكتروني",
     "show_fullname": "أظهر اسمي الكامل",
@@ -108,16 +110,18 @@
     "has_no_ignored_topics": "هذا المستخدم لم يقم بتجاهل اية مواضيع حتى الآن.",
     "has_no_upvoted_posts": "هذا المستخدم لم يقم بالتصويت للأعلى لأي مشاركة حتى الآن.",
     "has_no_downvoted_posts": "هذا المستخدم لم يقم بالتصويت للأسفل لأي مشاركة حتى الآن.",
-    "has_no_controversial_posts": "This user does not have any downvoted posts yet.",
-    "has_no_blocks": "You have blocked no users.",
+    "has_no_controversial_posts": "هذا المستخدم ﻻيمتلك تصويت للأسفل لأي مشاركة حتى الآن.",
+    "has_no_blocks": "أنت لم تحظر اي مستخدم",
     "email_hidden": "البريد الإلكتروني مخفي",
     "hidden": "مخفي",
     "paginate_description": "عرض المواضيع والردود موزعة على صفحات عوضاً عن التمرير اللانهائي.",
     "topics_per_page": "المواضيع في كل صفحة",
     "posts_per_page": "الردود في كل صفحة",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "أقصى %1",
-    "acp_language": "Admin Page Language",
-    "notifications": "Notifications",
+    "acp_language": "لغة صفحة اﻻدارة",
+    "notifications": "التنبيهات",
     "upvote-notif-freq": "معدل تكرار تنبيهات التصويت للأعلى",
     "upvote-notif-freq.all": "كل التصويتات للأعلى",
     "upvote-notif-freq.first": "First Per Post",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "تم حفظ ملاحظة الإشراف",
     "info.moderation-note.add": "إضافة ملاحظة",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/ar/users.json b/public/language/ar/users.json
index e7e1990e2f..efcd542e4f 100644
--- a/public/language/ar/users.json
+++ b/public/language/ar/users.json
@@ -1,18 +1,19 @@
 {
+    "all-users": "All Users",
     "latest_users": "أحدث الأعضاء",
     "top_posters": "اﻷكثر مشاركة",
     "most_reputation": "أعلى سمعة",
-    "most_flags": "Most Flags",
+    "most_flags": "معظم الأعلام",
     "search": "بحث",
     "enter_username": "أدخل اسم مستخدم للبحث",
-    "search-user-for-chat": "ابحث عن مستخدم لبدء محادثة ",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "حمل المزيد",
     "users-found-search-took": "تم إيجاد %1 مستخدمـ(ين)! استغرق البحث %2 ثانية.",
-    "filter-by": "Filter By",
+    "filter-by": "تصفية بحسب",
     "online-only": "المتصلون فقط",
     "invite": "دعوة",
-    "prompt-email": "Emails:",
-    "groups-to-join": "Groups to be joined when invite is accepted:",
+    "prompt-email": "البريد الإلكتروني:",
+    "groups-to-join": "المجموعات التي سيتم الانضمام إليها عند قبول الدعوة:",
     "invitation-email-sent": "تم إرسال دعوة بالبريد الإلكتروني إلى %1",
     "user_list": "قائمة اﻷعضاء",
     "recent_topics": "أحدث المواضيع",
diff --git a/public/language/bg/admin/admin.json b/public/language/bg/admin/admin.json
index 80401eb919..f77852363e 100644
--- a/public/language/bg/admin/admin.json
+++ b/public/language/bg/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Контролен панел за администратори на NodeBB",
 	"settings-header-contents": "Съдържание",
-	"changes-saved": "Промените са запазени",
-	"changes-saved-message": "Промените Ви в настройките на NodeBB  бяха запазени.",
 	"changes-not-saved": "Промените не са запазени",
 	"changes-not-saved-message": "Възникна проблем при запазването на промените Ви по NodeBB. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/bg/admin/appearance/customise.json b/public/language/bg/admin/appearance/customise.json
index 4f3ed970ec..7c1956c57c 100644
--- a/public/language/bg/admin/appearance/customise.json
+++ b/public/language/bg/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Персонализиран CSS/LESS",
-	"custom-css.description": "Въведете своите собствени декларации на CSS/LESS, те ще бъдат приложени след всички останали стилове.",
-	"custom-css.enable": "Включване на персонализиран CSS/LESS",
+	"custom-css": "Персонализиран CSS/SASS",
+	"custom-css.description": "Въведете своите собствени декларации на CSS/SASS. Те ще бъдат приложени след всички останали стилове.",
+	"custom-css.enable": "Включване на персонализиран CSS/SASS",
 
 	"custom-js": "Персонализиран код на Javascript",
 	"custom-js.description": "Въведете свой собствен код на javascript тук. Той ще бъде изпълнен след като страницата се зареди напълно.",
diff --git a/public/language/bg/admin/dashboard.json b/public/language/bg/admin/dashboard.json
index 7a9cc4416c..42f8c16d07 100644
--- a/public/language/bg/admin/dashboard.json
+++ b/public/language/bg/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Назад към таблото",
 	"details.no-users": "В избрания период не са се регистрирали нови потребители",
 	"details.no-topics": "В избрания период не са публикувани нови теми",
-	"details.no-searches": "Все още не са правени търсения",
+	"details.no-searches": "В избрания период не са правени търсения",
 	"details.no-logins": "В избрания период не са отчетени вписвания",
 	"details.logins-static": "NodeBB запазва данни за сесията в продължение на %1 дни, така че в следната таблица могат да се видят само последните активни сесии",
-	"details.logins-login-time": "Време на вписване"
+	"details.logins-login-time": "Време на вписване",
+	"start": "Начало",
+	"end": "Край",
+	"filter": "Филтриране"
 }
diff --git a/public/language/bg/admin/extend/widgets.json b/public/language/bg/admin/extend/widgets.json
index 7582a90490..3e5e9667ec 100644
--- a/public/language/bg/admin/extend/widgets.json
+++ b/public/language/bg/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Няма",
 	"container.well": "Кладенец",
 	"container.jumbotron": "Джъмботрон",
-	"container.panel": "Панел",
-	"container.panel-header": "Заглавна част на панел",
-	"container.panel-body": "Основна част на панел",
+	"container.card": "Карта",
+	"container.card-header": "Заглавна част на карта",
+	"container.card-body": "Основна част на карта",
 	"container.alert": "Предупреждение",
 
 	"alert.confirm-delete": "Наистина ли искате да изтриете джаджата?",
diff --git a/public/language/bg/admin/manage/groups.json b/public/language/bg/admin/manage/groups.json
index 9cf6f42ff8..0e6bac8a82 100644
--- a/public/language/bg/admin/manage/groups.json
+++ b/public/language/bg/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Отмяна",
 
 	"edit.no-users-found": "Няма намерени потребители",
-	"edit.confirm-remove-user": "Наистина ли искате да премахнете този потребител?",
-	"edit.save-success": "Промените са запазени!"
+	"edit.confirm-remove-user": "Наистина ли искате да премахнете този потребител?"
 }
\ No newline at end of file
diff --git a/public/language/bg/admin/manage/privileges.json b/public/language/bg/admin/manage/privileges.json
index 9ca0014432..bdebd7aab5 100644
--- a/public/language/bg/admin/manage/privileges.json
+++ b/public/language/bg/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Наистина ли искате да дадете правомощието за модериране на тази потребителска група?</strong> Тази група е публична и всеки може свободно да се присъедини към нея.",
 	"alert.confirm-admins-mods": "<strong>Наистина ли искате да дадете правото „Администратори и модератори“ на този потребител/група?</strong> Потребителите с това право могат да променят правомощията на други групи, <em>включително да им дават правото на супер администратори</em>",
 	"alert.confirm-save": "Моля, потвърдете желанието си да запазите тези правомощия",
-	"alert.saved": "Промените по правомощията са запазени и приложени",
 	"alert.confirm-discard": "Наистина ли искате да отхвърлите промените по правомощията?",
 	"alert.discarded": "Промените по правомощията са отхвърлени",
 	"alert.confirm-copyToAll": "Наистина ли искате да приложите този набор от <strong>%1</strong> към <strong>всички категории</strong>?",
diff --git a/public/language/bg/admin/settings/api.json b/public/language/bg/admin/settings/api.json
index 0e153563ba..18a8783df4 100644
--- a/public/language/bg/admin/settings/api.json
+++ b/public/language/bg/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "Потребителски ИД",
 	"uid-help-text": "Посочете потребителски ИД, който да бъде свързан с този код. Ако ИД е <code>0</code>, това ще се счита за <em>главен</em> код, който може да приема идентичността на всеки от другите потребители чрез параметъра <code>_uid</code>",
 	"description": "Описание",
+	"last-seen-ago": "Последно използван <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Последно използван на <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "Този ключ не е използван никога.",
 	"no-description": "Няма описание.",
 	"token-on-save": "Кодът ще бъде създаден след като данните бъдат запазени"
 }
\ No newline at end of file
diff --git a/public/language/bg/admin/settings/navigation.json b/public/language/bg/admin/settings/navigation.json
index 34dc2112d8..c95647a92c 100644
--- a/public/language/bg/admin/settings/navigation.json
+++ b/public/language/bg/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Групи:",
 	"open-new-window": "Отваряне в нов прозорец",
 	"dropdown": "Падащо меню",
-	"dropdown-placeholder": "Въведете елементите на падащото меню по-долу. Пример: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Връзка 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Въведете елементите на падащото меню по-долу. Пример: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Връзка 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Изтриване",
 	"btn.disable": "Изключване",
diff --git a/public/language/bg/admin/settings/user.json b/public/language/bg/admin/settings/user.json
index 618e3c7361..9c868b99bb 100644
--- a/public/language/bg/admin/settings/user.json
+++ b/public/language/bg/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Дни",
 	"session-time-seconds": "Секунди",
 	"session-time-help": "Тези стойности се използват за определяне на дължината на периода, през който потребителите ще останат вписани в системата, ако поставят отметка в полето „Запомнете ме“ при вписването. Имайте предвид, че ще се използва само една от тези стойности. Ако няма стойност за <i>секунди</i>, ще се използва стойността за <i>дни</i>. Ако няма и стойност за <i>дни</i>, то ще се използва стандартната стойност от <i>14 дни</i>.",
+	"session-duration": "Продължителност на сесията, ако „Запомнете ме“ не е отбелязано (в секунди)",
+	"session-duration-help": "По подразбиране (или ако стойността е <code>0</code>) потребителят ще остане вписан докато не изтече сесията му (обикновено докато браузърът или разделът не бъде затворен). Използвайте тази настройка, ако искате да определите точно време (в секунди), след което сесията на потребителя да бъде прекратена.",
 	"online-cutoff": "Брой минути, след които потребителят ще бъде смятан за неактивен",
 	"online-cutoff-help": "Ако потребителят не извършва никакви действия през този период, ще бъде смятан за неактивен и няма да получава известия в реално време.",
 	"registration": "Регистриране на потребителите",
diff --git a/public/language/bg/error.json b/public/language/bg/error.json
index 3334416c45..526fa4e1d4 100644
--- a/public/language/bg/error.json
+++ b/public/language/bg/error.json
@@ -62,7 +62,7 @@
     "no-user": "Потребителят не съществува",
     "no-teaser": "Резюмето не съществува",
     "no-flag": "Докладът не съществува",
-    "no-chat-room": "Chat room does not exist",
+    "no-chat-room": "Стаята за разговори не съществува",
     "no-privileges": "Нямате достатъчно права за това действие.",
     "category-disabled": "Категорията е изключена",
     "topic-locked": "Темата е заключена",
@@ -89,7 +89,7 @@
     "category-not-selected": "Не е избрана категория.",
     "too-many-posts": "Можете да публикувате веднъж на %1 секунда/и – моля, изчакайте малко, преди да опитате да публикувате отново",
     "too-many-posts-newbie": "Като нов потребител, Вие можете да публикувате веднъж на %1 секунда/и, докато не натрупате %2 репутация – моля, изчакайте малко, преди да опитате да публикувате отново",
-    "already-posting": "You are already posting",
+    "already-posting": "В момента публикувате",
     "tag-too-short": "Моля, въведете по-дълъг етикет. Етикетите трябва да съдържат поне %1 символ(а)",
     "tag-too-long": "Моля, въведете по-кратък етикет. Етикетите трябва да съдържат не повече от %1 символ(а)",
     "not-enough-tags": "Недостатъчно етикети. Темите трябва да имат поне %1 етикет(а)",
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Качването не е разрешено за гости",
     "cors-error": "Изображението не може да бъде качено поради неправилни настройки на CORS",
     "upload-ratelimit-reached": "Качили сте твърде много файлове наведнъж. Моля, опитайте отново по-късно.",
+    "upload-error-fallback": "Изображението не може да бъде качено – %1",
     "scheduling-to-past": "Изберете дата в бъдещето.",
     "invalid-schedule-date": "Въведете правилна дата и час.",
     "cant-pin-scheduled": "Насрочените теми не могат да бъдат закачени или разкачени.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Вашата заявка за членство вече е била изпратена",
     "group-join-disabled": "В момента не можете да се присъедините към тази група",
     "group-leave-disabled": "В момента не можете да напуснете тази група",
+    "group-user-not-pending": "Потребителят няма изчакваща заявка за присъединяване към тази група.",
+    "gorup-user-not-invited": "Потребителят не е бил поканен да се присъедини към тази група.",
     "post-already-deleted": "Тази публикация вече е изтрита",
     "post-already-restored": "Тази публикация вече е възстановена",
     "topic-already-deleted": "Тази тема вече е изтрита",
@@ -157,9 +160,9 @@
     "chat-deleted-already": "Това съобщение вече е изтрито.",
     "chat-restored-already": "Това съобщение вече е възстановено.",
     "chat-room-does-not-exist": "Стаята за разговори не съществува.",
-    "cant-add-users-to-chat-room": "Can't add users to chat room.",
-    "cant-remove-users-from-chat-room": "Can't remove users from chat room.",
-    "chat-room-name-too-long": "Chat room name too long.",
+    "cant-add-users-to-chat-room": "Към стаята за разговори не могат да бъдат добавяни потребители.",
+    "cant-remove-users-from-chat-room": "От стаята за разговори не могат да бъдат премахвани потребители.",
+    "chat-room-name-too-long": "Името на стаята за разговори е твърде дълго.",
     "already-voting-for-this-post": "Вече сте дали глас за тази публикация.",
     "reputation-system-disabled": "Системата за репутация е изключена.",
     "downvoting-disabled": "Отрицателното гласуване е изключено",
@@ -224,5 +227,6 @@
     "api.429": "Направили сте твърде много заявки. Моля, опитайте отново по-късно.",
     "api.500": "При обработката на заявката Ви възникна неочаквана грешка.",
     "api.501": "Пътят, който се опитвате да извикате, все още не съществува. Моля, опитайте отново утре.",
-    "api.503": "Пътят, който се опитвате да извикате, в момента не е достъпен, поради настройките на сървъра."
+    "api.503": "Пътят, който се опитвате да извикате, в момента не е достъпен, поради настройките на сървъра.",
+    "api.reauth-required": "Ресурсът, който се опитвате да достъпите, изисква (повторно) удостоверяване."
 }
\ No newline at end of file
diff --git a/public/language/bg/flags.json b/public/language/bg/flags.json
index 14b4766cbc..ad6b4573a1 100644
--- a/public/language/bg/flags.json
+++ b/public/language/bg/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Доклади",
 	"first-reported": "Първо докладване",
 	"no-flags": "Ура! Няма намерени доклади.",
+	"x-flags-found": "Намерени доклади: %1.",
 	"assignee": "Назначен",
 	"update": "Обновяване",
 	"updated": "Обновено",
 	"resolved": "Разрешен",
 	"target-purged": "Съдържанието, за което се отнася този доклад, е било изтрито и вече не е налично.",
+	"target-aboutme-empty": "Този потребител не е попълнил нищо в секцията за себе си.",
 
 	"graph-label": "Дневни етикети",
 	"quick-filters": "Бързи филтри",
 	"filter-active": "В този списък с доклади има един или повече филтри",
 	"filter-reset": "Премахване на филтрите",
 	"filters": "Настройки на филтрите",
-	"filter-reporterId": "Потр. ид. на докладвалия",
-	"filter-targetUid": "Потр. ид. на докладвания",
+	"filter-reporterId": "Докладвал",
+	"filter-targetUid": "Докладван",
 	"filter-type": "Вид на доклада",
 	"filter-type-all": "Всичко",
 	"filter-type-post": "Публикация",
 	"filter-type-user": "Потребител",
 	"filter-state": "Състояние",
-	"filter-assignee": "Потр. ид. на назначения",
+	"filter-assignee": "Назначен",
 	"filter-cid": "Категория",
 	"filter-quick-mine": "Назначени на мен",
 	"filter-cid-all": "Всички категории",
@@ -45,6 +47,7 @@
 
 	"notes": "Бележки към доклада",
 	"add-note": "Добавяне на бележка",
+	"edit-note": "Редактиране на бележката",
 	"no-notes": "Няма споделени бележки.",
 	"delete-note-confirm": "Наистина ли искате да изтриете тази бележка към доклада?",
 	"delete-flag-confirm": "Наистина ли искате да изтриете този доклад?",
diff --git a/public/language/bg/global.json b/public/language/bg/global.json
index 545e1eaa9b..e3fb074f00 100644
--- a/public/language/bg/global.json
+++ b/public/language/bg/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Затваряне",
     "403.title": "Достъпът е отказан",
     "403.message": "Изглежда сте посетили страница, до която нямате достъп.",
-    "403.login": "Може би трябва да <a href='%1/login'>опитате да се впишете</a>?",
+    "403.login": "Може би трябва да <a class=\"alert-link\" href='%1/login'>опитате да се впишете</a>?",
     "404.title": "Не е намерена",
-    "404.message": "Изглежда сте се опитали да посетите страница, която не съществува. Върнете се към <a href='%1/'>началната страница</a>.",
+    "404.message": "Изглежда сте се опитали да посетите страница, която не съществува. Върнете се към <a class=\"alert-link\" href='%1/'>началната страница</a>.",
     "500.title": "Вътрешна грешка.",
     "500.message": "Опа! Изглежда нещо се обърка!",
     "400.title": "Грешна заявка.",
-    "400.message": "Тази връзка изглежда повредена. Моля, проверете я и опитайте отново. В противен случай се върнете на <a href='%1/'>началната страница</a>.",
+    "400.message": "Тази връзка изглежда повредена. Моля, проверете я и опитайте отново. В противен случай се върнете на <a class=\"alert-link\" href='%1/'>началната страница</a>.",
     "register": "Регистрация",
     "login": "Вписване",
     "please_log_in": "Моля, впишете се",
@@ -37,9 +37,13 @@
     "header.notifications": "Известия",
     "header.search": "Търсене",
     "header.profile": "Профил",
+    "header.account": "Акаунт",
     "header.navigation": "Навигация",
+    "header.manage": "Управление",
+    "header.drafts": "Чернови",
     "notifications.loading": "Зареждане на известията",
     "chats.loading": "Зареждане на разговорите",
+    "drafts.loading": "Зареждане на черновите",
     "motd.welcome": "Добре дошли в NodeBB, системата за дискусии на бъдещето.",
     "previouspage": "Предишна страница",
     "nextpage": "Следваща страница",
@@ -54,7 +58,8 @@
     "users": "Потребители",
     "topics": "Теми",
     "posts": "Публ.",
-    "x-posts": "%1 публикации",
+    "x-posts": "<span class=\"formatted-number\">%1</span> публикации",
+    "x-topics": "<span class=\"formatted-number\">%1</span> теми",
     "best": "Най-добри",
     "controversial": "Противоречиви",
     "votes": "Гласове",
@@ -69,6 +74,7 @@
     "reputation": "Репутация",
     "lastpost": "Последна публикация",
     "firstpost": "Първа публикация",
+    "about": "Относно",
     "read_more": "още",
     "more": "Още",
     "none": "Нищо",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 публикува %2",
     "guest_posted_ago": "гост публикува %1",
     "last_edited_by": "последно редактирано от %1",
+    "edited-timestamp": "Редактирано %1",
     "norecentposts": "Няма скорошни публикации",
     "norecenttopics": "Няма скорошни теми",
     "recentposts": "Скорошни публикации",
     "recentips": "Наскоро ползвани IP адреси",
     "moderator_tools": "Модераторски инструменти",
+    "status": "Състояние",
     "online": "На линия",
     "away": "Отсъстващ",
     "dnd": "Отпочиващ",
@@ -122,5 +130,7 @@
     "edited": "Редактирано",
     "disabled": "Изключено",
     "select": "Избиране",
-    "user-search-prompt": "Започнете да пишете, за да потърсите потребител…"
+    "user-search-prompt": "Започнете да пишете, за да потърсите потребител…",
+    "hidden": "Скрито",
+    "sort": "Подреждане"
 }
\ No newline at end of file
diff --git a/public/language/bg/groups.json b/public/language/bg/groups.json
index 6b2c8bb74b..e9a44c421f 100644
--- a/public/language/bg/groups.json
+++ b/public/language/bg/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Групи",
+    "members": "Членове",
     "view_group": "Преглед на групата",
     "owner": "Собственик на групата",
     "new_group": "Създаване на нова група",
diff --git a/public/language/bg/modules.json b/public/language/bg/modules.json
index bfad149874..c94b62f4af 100644
--- a/public/language/bg/modules.json
+++ b/public/language/bg/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Разговор с",
     "chat.placeholder": "Въведете съобщение тук или пуснете снимки и натиснете Ентер за изпращане",
+    "chat.placeholder.mobile": "Въведете съобщение тук",
     "chat.scroll-up-alert": "В момента разглеждате по-стари съобщения. Щракнете тук, за да се прехвърлите към най-новото съобщение.",
+    "chat.usernames-and-x-others": "%1 и %2 други",
+    "chat.chat-with-usernames": "Разговор с %1",
+    "chat.chat-with-usernames-and-x-others": "Разговор с %1 и %2 други",
     "chat.send": "Изпращане",
     "chat.no_active": "Нямате текущи разговори.",
     "chat.user_typing": "%1 пише...",
@@ -42,6 +46,7 @@
     "composer.compose": "Писане",
     "composer.show_preview": "Показване на прегледа",
     "composer.hide_preview": "Скриване на прегледа",
+    "composer.help": "Помощ",
     "composer.user_said_in": "%1 каза в %2:",
     "composer.user_said": "%1 каза:",
     "composer.discard": "Наистина ли искате да отхвърлите тази публикация?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Час",
     "composer.cancel-scheduling": "Отмяна на насрочването",
     "composer.set-schedule-date": "Задаване на дата",
+    "composer.discard-all-drafts": "Изтриване на всички чернови",
+    "composer.no-drafts": "Нямате никакви чернови",
+    "composer.discard-draft-confirm": "Искате ли да изтриете тази чернова?",
     "bootbox.ok": "Добре",
     "bootbox.cancel": "Отказ",
     "bootbox.confirm": "Потвърждаване",
diff --git a/public/language/bg/pages.json b/public/language/bg/pages.json
index cf22a19cdb..73147462d0 100644
--- a/public/language/bg/pages.json
+++ b/public/language/bg/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Следените категории на %1",
     "account/bookmarks": "Отметнатите публикации на %1",
     "account/settings": "Потребителски настройки",
+    "account/settings-of": "Променят се настройките на %1",
     "account/watched": "Теми, следени от %1",
     "account/ignored": "Теми, пренебрегвани от %1",
     "account/upvoted": "Публикации, получили положителен глас от %1",
diff --git a/public/language/bg/post-queue.json b/public/language/bg/post-queue.json
index 2a2114f1bc..f688cddcdd 100644
--- a/public/language/bg/post-queue.json
+++ b/public/language/bg/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Опашка за публикации",
-	"description": "Няма публикации в опашката. <br> За да включите тази функционалност, идете в <a href=\"%1\">Настройки &rarr; Публикуване &rarr; Опашка за публикации</a> и включете <strong>Опашката за публикации</strong>.",
+	"no-queued-posts": "В опашката за публикации няма нищо.",
+	"no-single-post": "Темата или публикацията, която търсите, вече не се намира в опашката. Вероятно или е била одобрена, или изтрита.",
+	"enabling-help": "За да включите тази функционалност, идете в <a href=\"%1\">Настройки &rarr; Публикуване &rarr; Опашка за публикации</a> и включете <strong>Опашката за публикации</strong>.",
+	"back-to-list": "Назад към Опашката за публикации",
 	"user": "Потребител",
+	"when": "Кога",
 	"category": "Категория",
 	"title": "Заглавие",
 	"content": "Съдържание",
@@ -19,6 +23,7 @@
 	"notify": "Известяване",
 	"notify-user": "Известяване на потребителя",
 	"confirm-reject": "Искате ли да отхвърлите тази публикация?",
+	"confirm-remove": "Искате ли да премахнете тази публикация?",
 	"bulk-actions": "Групови действия",
 	"accept-all": "Приемане на всички",
 	"accept-selected": "Приемане на избраните",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Наистина ли искате да отхвърлите всички публикации?",
 	"reject-selected": "Отхвърляне на избраните",
 	"reject-selected-confirm": "Наистина ли искате да отхвърлите %1 избрани публикации?",
+	"remove-all": "Премахване на всички",
+	"remove-all-confirm": "Наистина ли искате да премахнете всички публикации?",
+	"remove-selected": "Премахване на избраните",
+	"remove-selected-confirm": "Наистина ли искате да премахнете избраните %1 публикации?",
 	"bulk-accept-success": "Одобрени публикации: %1",
 	"bulk-reject-success": "Отхвърлени публикации: %1"
 }
\ No newline at end of file
diff --git a/public/language/bg/recent.json b/public/language/bg/recent.json
index a3029868b0..568c7a14e2 100644
--- a/public/language/bg/recent.json
+++ b/public/language/bg/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Цялото време",
     "no_recent_topics": "Няма скорошни теми.",
     "no_popular_topics": "Няма популярни теми.",
-    "there-is-a-new-topic": "Има нова тема.",
-    "there-is-a-new-topic-and-a-new-post": "Има нова тема и нова публикация.",
-    "there-is-a-new-topic-and-new-posts": "Има нова тема и %1 нови публикации.",
-    "there-are-new-topics": "Има %1 нови теми.",
-    "there-are-new-topics-and-a-new-post": "Има %1 нови теми и нова публикация.",
-    "there-are-new-topics-and-new-posts": "Има %1 нови теми и %2 нови публикации.",
-    "there-is-a-new-post": "Има нова публикация",
-    "there-are-new-posts": "Има %1 нови публикации.",
-    "click-here-to-reload": "Натиснете тук, за да презаредите."
+    "load-new-posts": "Зареждане на новите публикации"
 }
\ No newline at end of file
diff --git a/public/language/bg/register.json b/public/language/bg/register.json
index d8eb4b6004..20647751d7 100644
--- a/public/language/bg/register.json
+++ b/public/language/bg/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Регистрация",
+    "already-have-account": "Вече имате акаунт?",
     "cancel_registration": "Отказ от регистриране",
     "help.email": "По подразбиране, Вашата е-поща ще бъде скрита за останалите.",
     "help.username_restrictions": "Уникално потребителско име с дължина между %1 и %2 символа. Другите ще могат да Ви споменават чрез @<span id='yourUsername'>потребител</span>.",
diff --git a/public/language/bg/search.json b/public/language/bg/search.json
index c1542c0bd9..8cee80531d 100644
--- a/public/language/bg/search.json
+++ b/public/language/bg/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Пишете тук за търсене",
     "results_matching": "%1 резултат(а), отговарящи на „%2“, (%3 секунди)",
     "no-matches": "Няма съвпадения",
     "advanced-search": "Разширено търсене",
     "in": "В",
-    "titles": "Заглавия",
-    "titles-posts": "Заглавия и публикации",
-    "match-words": "Съвпадащи думи",
+    "in-titles": "В заглавията",
+    "in-titles-posts": "В заглавията и публикациите",
+    "in-posts": "В публикациите",
+    "in-categories": "В категориите",
+    "in-users": "В потребителите",
+    "in-tags": "В етикетите",
+    "categories": "Категории",
+    "all-categories": "Всички категории",
+    "categories-x": "Категории: %1",
+    "categories-watched-categories": "Категории: Следени категории",
+    "type-a-category": "Въведете категория",
+    "tags": "Етикети",
+    "tags-x": "Етикети: %1",
+    "type-a-tag": "Въведете етикет",
+    "match-words": "Съвпадение на думите",
+    "match-all-words": "Съвпадение на всички думи",
+    "match-any-word": "Съвпадение на някоя дума",
     "all": "Всички",
     "any": "Която и да е",
     "posted-by": "Публикувано от",
-    "in-categories": "В категории",
+    "posted-by-usernames": "Публикувано от: %1",
+    "type-a-username": "Въведете потребителско име",
     "search-child-categories": "Претърсване на подкатегориите",
     "has-tags": "Има етикети",
     "reply-count": "Брой на отговорите",
+    "replies": "Отговори",
+    "replies-atleast-count": "Отговори: Поне %1",
+    "replies-atmost-count": "Отговори: Не повече от %1",
     "at-least": "Поне",
     "at-most": "Най-много",
     "relevance": "Уместност",
+    "time": "Време",
     "post-time": "Време на публикуване",
     "votes": "Гласове",
     "newer-than": "По-нови от",
@@ -28,7 +48,22 @@
     "three-months": "Три месеца",
     "six-months": "Шест месеца",
     "one-year": "Една година",
+    "time-newer-than-86400": "Време: От вчера досега",
+    "time-older-than-86400": "Време: Преди вчера",
+    "time-newer-than-604800": "Време: По-нови от една седмица",
+    "time-older-than-604800": "Време: По-стари от една седмица",
+    "time-newer-than-1209600": "Време: По-нови от две седмици",
+    "time-older-than-1209600": "Време: По-стари от две седмици",
+    "time-newer-than-2592000": "Време: По-нови от един месец",
+    "time-older-than-2592000": "Време: По-стари от един месец",
+    "time-newer-than-7776000": "Време: По-нови от три месеца",
+    "time-older-than-7776000": "Време: По-стари от три месеца",
+    "time-newer-than-15552000": "Време: По-нови от шест месеца",
+    "time-older-than-15552000": "Време: По-стари от шест месеца",
+    "time-newer-than-31104000": "Време: По-нови от една година",
+    "time-older-than-31104000": "Време: По-стари от една година",
     "sort-by": "Подреждане по",
+    "sort": "Подреждане",
     "last-reply-time": "Време на последния отговор",
     "topic-title": "Заглавие на темата",
     "topic-votes": "Гласувания за темата",
@@ -39,11 +74,36 @@
     "category": "Категория",
     "descending": "В низходящ ред",
     "ascending": "Във възходящ ред",
+    "sort-by-relevance-desc": "Подреждане по: Съответствие, в низходящ ред",
+    "sort-by-relevance-asc": "Подреждане по: Съответствие, във възходящ ред",
+    "sort-by-timestamp-desc": "Подреждане по: Време на публикуване, в низходящ ред",
+    "sort-by-timestamp-asc": "Подреждане по: Време на публикуване, във възходящ ред",
+    "sort-by-votes-desc": "Подреждане по: Брой гласове, в низходящ ред",
+    "sort-by-votes-asc": "Подреждане по: Брой гласове, във възходящ ред",
+    "sort-by-topic.lastposttime-desc": "Подреждане по: Време на последния отговор, в низходящ ред",
+    "sort-by-topic.lastposttime-asc": "Подреждане по: Време на последния отговор, във възходящ ред",
+    "sort-by-topic.title-desc": "Подреждане по: Заглавие на темата, в низходящ ред",
+    "sort-by-topic.title-asc": "Подреждане по: Заглавие на темата, във възходящ ред",
+    "sort-by-topic.postcount-desc": "Подреждане по: Брой отговори, в низходящ ред",
+    "sort-by-topic.postcount-asc": "Подреждане по: Брой отговори, във възходящ ред",
+    "sort-by-topic.viewcount-desc": "Подреждане по: Брой преглеждания, в низходящ ред",
+    "sort-by-topic.viewcount-asc": "Подреждане по: Брой преглеждания, във възходящ ред",
+    "sort-by-topic.votes-desc": "Подреждане по: Брой гласове за темата, в низходящ ред",
+    "sort-by-topic.votes-asc": "Подреждане по: Брой гласове за темата, във възходящ ред",
+    "sort-by-topic.timestamp-desc": "Подреждане по: Начална дата на темата, в низходящ ред",
+    "sort-by-topic.timestamp-asc": "Подреждане по: Начална дата на темата, във възходящ ред",
+    "sort-by-user.username-desc": "Подреждане по: Потребителско име, в низходящ ред",
+    "sort-by-user.username-asc": "Подреждане по: Потребителско име, във възходящ ред",
+    "sort-by-category.name-desc": "Подреждане по: Категория, в низходящ ред",
+    "sort-by-category.name-asc": "Подреждане по: Категория, във възходящ ред",
+    "save": "Запазване",
     "save-preferences": "Запазване на предпочитанията",
     "clear-preferences": "Изчистване на предпочитанията",
     "search-preferences-saved": "Предпочитанията за търсене бяха запазени",
     "search-preferences-cleared": "Предпочитанията за търсене бяха изчистени",
     "show-results-as": "Показване на резултатите като",
+    "show-results-as-topics": "Показване на резултатите като теми",
+    "show-results-as-posts": "Показване на резултатите като публикации",
     "see-more-results": "Показване на още резултати (%1)",
     "search-in-category": "Търсене в „%1“"
 }
\ No newline at end of file
diff --git a/public/language/bg/social.json b/public/language/bg/social.json
new file mode 100644
index 0000000000..cb91c35a8b
--- /dev/null
+++ b/public/language/bg/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Вписване с Twitter",
+	"sign-up-with-twitter": "Регистриране с Twitter",
+	"sign-in-with-github": "Вписване с Github",
+	"sign-up-with-github": "Регистриране с Github",
+	"sign-in-with-google": "Вписване с Google",
+	"sign-up-with-google": "Регистриране с Google",
+	"log-in-with-facebook": "Вписване с Facebook",
+	"continue-with-facebook": "Продължаване с Facebook"
+}
\ No newline at end of file
diff --git a/public/language/bg/tags.json b/public/language/bg/tags.json
index 78fde63479..51caa0b6f7 100644
--- a/public/language/bg/tags.json
+++ b/public/language/bg/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "Всички етикети",
     "no_tag_topics": "Няма теми с този етикет.",
+    "no-tags-found": "Няма намерени етикети",
     "tags": "Етикети",
     "enter_tags_here": "Тук въведете етикети, всеки между %1 и %2 знака.",
     "enter_tags_here_short": "Въведете етикети...",
diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json
index 7cf87f252d..325d119139 100644
--- a/public/language/bg/topic.json
+++ b/public/language/bg/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Копиране на IP адреса",
     "ban-ip": "Блокиране на IP адреса",
     "view-history": "История на редакциите",
-    "locked-by": "Заключена от",
-    "unlocked-by": "Отключена от",
-    "pinned-by": "Закачена от",
-    "unpinned-by": "Откачена от",
-    "deleted-by": "Изтрита от",
-    "restored-by": "Възстановена от",
-    "moved-from-by": "Преместена от %1 от",
-    "queued-by": "Публикацията е добавена в опашката за одобрение &rarr;",
-    "backlink": "Спомената от",
-    "forked-by": "Разделена от",
+    "wrote-ago": "писа <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "писа на <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "отговори на <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "отговори на <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> на <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 заключи тази тема %2",
+    "user-locked-topic-on": "%1 заключи тази тема на %2",
+    "user-unlocked-topic-ago": "%1 отключи тази тема %2",
+    "user-unlocked-topic-on": "%1 отключи тази тема на %2",
+    "user-pinned-topic-ago": "%1 закачи тази тема %2",
+    "user-pinned-topic-on": "%1 закачи тази тема на %2",
+    "user-unpinned-topic-ago": "%1 откачи тази тема %2",
+    "user-unpinned-topic-on": "%1 откачи тази тема на %2",
+    "user-deleted-topic-ago": "%1 изтри тази тема %2",
+    "user-deleted-topic-on": "%1 изтри тази тема на %2",
+    "user-restored-topic-ago": "%1 възстанови тази тема %2",
+    "user-restored-topic-on": "%1 възстанови тази тема на %2",
+    "user-moved-topic-from-ago": "%1 премести тази тема от %2 %3",
+    "user-moved-topic-from-on": "%1 премести тази тема от %2 на %3",
+    "user-queued-post-ago": "%1 добави тази публикация в <a href=\"%2\">опашката за одобрение</a> %3",
+    "user-queued-post-on": "%1 добави тази публикация в <a href=\"%2\">опашката</a> за одобрение на %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">направи препратка</a> към тази тема %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">направи препратка</a> към тази тема на %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">раздели</a> тази тема %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">раздели</a> тази тема на %3",
     "bookmark_instructions": "Щракнете тук, за да се върнете към последно прочетената публикация в тази тема.",
     "flag-post": "Докладване на тази публикация",
     "flag-user": "Докладване на този потребител",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Изчистване на темата",
     "thread_tools.purge_confirm": "Наистина ли искате да изчистите тази тема?",
     "thread_tools.merge_topics": "Сливане на темите",
-    "thread_tools.merge": "Сливане",
+    "thread_tools.merge": "Сливане на темата",
     "topic_move_success": "Темата ще бъде преместена в „%1“ след малко. Натиснете тук, за да отмените преместването.",
     "topic_move_multiple_success": "Темите ще бъдат преместени в „%1“ след малко. Натиснете тук, за да отмените преместването.",
     "topic_move_all_success": "Всички теми ще бъдат преместени в „%1“ след малко. Натиснете тук, за да отмените преместването.",
@@ -121,7 +135,7 @@
     "post_moved": "Публикацията беше преместена!",
     "fork_topic": "Разделяне на темата",
     "enter-new-topic-title": "Въведете заглавието на новата тема",
-    "fork_topic_instruction": "Натиснете публикациите, които искате да отделите",
+    "fork_topic_instruction": "Щракнете върху публикациите, които искате да разделите, въведете име за новата тема, и натиснете „Разделяне на темата“",
     "fork_no_pids": "Няма избрани публикации!",
     "no-posts-selected": "Няма избрани публикации!",
     "x-posts-selected": "Избрани публикации: %1",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Ново заглавие за темата",
     "topic-id": "Ид. на темата",
     "move_posts_instruction": "Щракнете върху публикациите, които искате да преместите, а след това въведете ид. на тема или отидете в целевата тема",
+    "move_topic_instruction": "Изберете целевата категория и натиснете „Преместване“",
     "change_owner_instruction": "Натиснете публикациите, които искате да прехвърлите на друг потребител",
     "composer.title_placeholder": "Въведете заглавието на темата си тук...",
     "composer.handle_placeholder": "Въведете името тук",
+    "composer.hide": "Скриване",
     "composer.discard": "Отхвърляне",
     "composer.submit": "Публикуване",
     "composer.additional-options": "Допълнителни настройки",
+    "composer.post-later": "Публикуване по-късно",
     "composer.schedule": "Насрочване",
     "composer.replying_to": "Отговор на %1",
     "composer.new_topic": "Нова тема",
@@ -184,5 +201,7 @@
     "last-post": "Последна публикация",
     "go-to-my-next-post": "Към следващата ми публикация",
     "no-more-next-post": "Нямате повече публикации в тази тема",
-    "post-quick-reply": "Пускане на бърза публикация"
+    "post-quick-reply": "Бърз отговор",
+    "navigator.index": "Публикация %1 от %2",
+    "navigator.unread": "%1 непрочетени"
 }
\ No newline at end of file
diff --git a/public/language/bg/user.json b/public/language/bg/user.json
index 04fdf98b62..a5330617e3 100644
--- a/public/language/bg/user.json
+++ b/public/language/bg/user.json
@@ -43,6 +43,7 @@
     "followers": "Последователи",
     "following": "Следва",
     "blocks": "Блокира",
+    "blocked-users": "Блокирани потребители",
     "block_toggle": "Превключване на блокирането",
     "block_user": "Блокиране на потребителя",
     "unblock_user": "Отблокиране на потребителя",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Качване на нова снимка",
     "upload_new_picture_from_url": "Качване на нова снимка от адрес",
     "current_password": "Текуща парола",
+    "new_password": "Нова парола",
     "change_password": "Промяна на паролата",
     "change_password_error": "Грешна парола!",
     "change_password_error_wrong_current": "Текущата Ви парола е грешна!",
@@ -115,6 +117,8 @@
     "paginate_description": "Разделяне на темите и публикациите на страници, вместо да се превърта безкрайно",
     "topics_per_page": "Теми на страница",
     "posts_per_page": "Публикации на страница",
+    "category-topic-sort": "Подреждане на темите в категория",
+    "topic-post-sort": "Подреждане на публикациите в тема",
     "max_items_per_page": "Най-много %1",
     "acp_language": "Език на администраторската страница",
     "notifications": "Известия",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Модераторската бележка е запазена",
     "info.moderation-note.add": "Добавяне на бележка",
     "sessions.description": "На тази страница можете да видите активните си сесии на този форум и да ги анулирате, ако желаете. Можете да анулирате текущата си сесия, като се отпишете от акаунта си.",
+    "revoke-session": "Анулиране на сесията",
+    "browser-version-on-platform": "%1 %2 на %3",
     "consent.title": "Вашите права и съгласие",
     "consent.lead": "Този обществен форум събира и обработва лична информация.",
     "consent.intro": "Използваме тази информация, само за да персонализираме взаимодействието Ви с форума, както и за да свържем публикациите Ви с Вашия потребителски акаунт. По време на регистрацията ще трябва да въведете потребителско име и е-поща, но ако искате, можете да предоставите и допълнителна информация, за да завършите потребителския си профил в уеб сайта.<br /><br />Ние съхраняваме тази информация докато съществува потребителският Ви акаунт. Във всеки един момент можете да оттеглите съгласието си за това, като изтриете акаунта си. Във всеки един момент можете да изискате копие на въведеното от Вас в уеб сайт, чрез страницата за „Права и съгласие“.<br /><br />Ако имате въпроси или притеснения, можете да се свържете с екипа от администратори на форума.",
diff --git a/public/language/bg/users.json b/public/language/bg/users.json
index 9cd2dbb5ed..5702b2a657 100644
--- a/public/language/bg/users.json
+++ b/public/language/bg/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "Всички потребители",
     "latest_users": "Последни потребители",
     "top_posters": "С най-много публикации",
     "most_reputation": "С най-много репутация",
     "most_flags": "С най-много доклади",
     "search": "Търсене",
     "enter_username": "Въведете потребителско име, което да потърсите",
-    "search-user-for-chat": "Потърсете потребител, с когото да започнете разговор",
+    "search-user-for-chat": "Потърсете потребител, с когото да започнете разговор:",
     "load_more": "Зареждане на още",
     "users-found-search-took": "Намерени са %1 потребител(и)! Търсенето отне %2 секунди.",
     "filter-by": "Филтриране",
diff --git a/public/language/bn/admin/admin.json b/public/language/bn/admin/admin.json
index ec4e9b7013..a090599e79 100644
--- a/public/language/bn/admin/admin.json
+++ b/public/language/bn/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 |  NodeBB  এডমিন কন্ট্রোল প্যানেল",
 	"settings-header-contents": "কনটেন্টস",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/bn/admin/appearance/customise.json b/public/language/bn/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/bn/admin/appearance/customise.json
+++ b/public/language/bn/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/bn/admin/dashboard.json b/public/language/bn/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/bn/admin/dashboard.json
+++ b/public/language/bn/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/bn/admin/extend/widgets.json b/public/language/bn/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/bn/admin/extend/widgets.json
+++ b/public/language/bn/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/bn/admin/manage/groups.json b/public/language/bn/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/bn/admin/manage/groups.json
+++ b/public/language/bn/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/bn/admin/manage/privileges.json b/public/language/bn/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/bn/admin/manage/privileges.json
+++ b/public/language/bn/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/bn/admin/settings/api.json b/public/language/bn/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/bn/admin/settings/api.json
+++ b/public/language/bn/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/bn/admin/settings/navigation.json b/public/language/bn/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/bn/admin/settings/navigation.json
+++ b/public/language/bn/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/bn/admin/settings/user.json b/public/language/bn/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/bn/admin/settings/user.json
+++ b/public/language/bn/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/bn/error.json b/public/language/bn/error.json
index 0facb14642..c79898df70 100644
--- a/public/language/bn/error.json
+++ b/public/language/bn/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Guest uploading has been disabled",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Your membership request has already been submitted",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "এই পোস্টটি ইতিমধ্যে ডিলিট করা হয়ে গিয়েছে",
     "post-already-restored": "এই পোষ্টটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
     "topic-already-deleted": "এই টপিকটি ইতিমধ্যে ডিলিট করা হয়েছে",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/bn/flags.json b/public/language/bn/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/bn/flags.json
+++ b/public/language/bn/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/bn/global.json b/public/language/bn/global.json
index a38ab65901..17d6ea3423 100644
--- a/public/language/bn/global.json
+++ b/public/language/bn/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "বন্ধ",
     "403.title": "প্রবেশাধিকার প্রত্যাখ্যাত",
     "403.message": "আপনি এমন জায়গাতে যেতে চাচ্ছেন যেখানে আপনার প্রবেশাধিকার নেই।",
-    "403.login": "সম্ভবত আপনার <a href='%1/login'>লগইন করা</a> উচিত",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "পাওয়া যায়নি",
-    "404.message": "আপনি এমন জায়গাতে যেতে চাচ্ছেন যার কোন অস্তিত্ব নাই। <a href='%1/'>প্রথম পাতায়</a> ফিরে যান ।",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Internal Error.",
     "500.message": "ওহো! কিছু ভুল হয়েছে মনে হচ্ছে!",
     "400.title": "ভুল ঠিকানা",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "নিবন্ধন",
     "login": "প্রবেশ",
     "please_log_in": "অনুগ্রহ করে প্রবেশ করুন",
@@ -37,9 +37,13 @@
     "header.notifications": "বিজ্ঞপ্তি",
     "header.search": "অনুসন্ধান",
     "header.profile": "প্রোফাইল",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "বিজ্ঞপ্তিগুলি লোড হচ্ছে",
     "chats.loading": "কথোপকথনগুলি লোড হচ্ছে ",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "ভবিষ্যতের আলোচনার প্লাটফর্ম, NodeBB তে স্বাগতম।",
     "previouspage": "আগের পাতা",
     "nextpage": "পরের পাতা",
@@ -54,7 +58,8 @@
     "users": "ব্যবহারকারীগণ",
     "topics": "টপিক",
     "posts": "পোস্টগুলি",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Best",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "সন্মাননা",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "আরো পড়ুন",
     "more": "আরো...",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 পোস্ট করেছেন %2",
     "guest_posted_ago": "অতিথি পোস্ট করেছেন %1",
     "last_edited_by": "last edited by %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "কোনও সাম্প্রতিক পোস্ট নেই",
     "norecenttopics": "কোনও সাম্প্রতিক টপিক নেই",
     "recentposts": "সাম্প্রতিক পোস্ট",
     "recentips": "সাম্প্রতিক প্রবেশকৃত আইপি সমুহ",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "অনলাইন",
     "away": "দূরে",
     "dnd": "Do not disturb",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/bn/groups.json b/public/language/bn/groups.json
index 4fcb269410..3a566346b7 100644
--- a/public/language/bn/groups.json
+++ b/public/language/bn/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "গ্রুপসমূহ",
+    "members": "Members",
     "view_group": "গ্রুপ দেখুন",
     "owner": "Group Owner",
     "new_group": "Create New Group",
diff --git a/public/language/bn/modules.json b/public/language/bn/modules.json
index 199ce63048..e8243e5156 100644
--- a/public/language/bn/modules.json
+++ b/public/language/bn/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "প্রেরন করুন",
     "chat.no_active": "আপনার কোন সচল কথোপকথন নেই",
     "chat.user_typing": "%1 লিখছেন",
@@ -42,6 +46,7 @@
     "composer.compose": "Compose",
     "composer.show_preview": "Show Preview",
     "composer.hide_preview": "Hide Preview",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 বলেছেন %2:",
     "composer.user_said": "%1 বলেছেনঃ",
     "composer.discard": "আপনি কি নিশ্চিত যে আপনি এই পোস্ট বাতিল করতে ইচ্ছুক?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancel",
     "bootbox.confirm": "Confirm",
diff --git a/public/language/bn/pages.json b/public/language/bn/pages.json
index bb4887abc8..f6f981fd76 100644
--- a/public/language/bn/pages.json
+++ b/public/language/bn/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "User Settings",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Topics watched by %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Posts upvoted by %1",
diff --git a/public/language/bn/post-queue.json b/public/language/bn/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/bn/post-queue.json
+++ b/public/language/bn/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/bn/recent.json b/public/language/bn/recent.json
index 720bab2407..7df8276012 100644
--- a/public/language/bn/recent.json
+++ b/public/language/bn/recent.json
@@ -7,13 +7,5 @@
     "alltime": "সবসময় ",
     "no_recent_topics": "কোন সাম্প্রতিক টপিক নেই। ",
     "no_popular_topics": "There are no popular topics.",
-    "there-is-a-new-topic": "There is a new topic.",
-    "there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
-    "there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
-    "there-are-new-topics": "There are %1 new topics.",
-    "there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
-    "there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
-    "there-is-a-new-post": "There is a new post.",
-    "there-are-new-posts": "There are %1 new posts.",
-    "click-here-to-reload": "Click here to reload."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/bn/register.json b/public/language/bn/register.json
index a4216376a1..39d4e7fff4 100644
--- a/public/language/bn/register.json
+++ b/public/language/bn/register.json
@@ -1,5 +1,6 @@
 {
     "register": "নিবন্ধন",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "নিবন্ধন বাতিল",
     "help.email": "ডিফল্টভাবে, আপনার ইমেইল সর্বসাধারণ থেকে লুকানো থাকবে।",
     "help.username_restrictions": "%1 এবং %2 অক্ষরের মাঝে একটি অনন্য সদস্য নাম। বাকিরা আপনাকে @<span id='yourUsername'>নাম</span> দিয়ে উল্লেখ করতে পারবেন।",
diff --git a/public/language/bn/search.json b/public/language/bn/search.json
index 3aa5575299..e75eafe6e3 100644
--- a/public/language/bn/search.json
+++ b/public/language/bn/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "\"%2\" এর সাথে মিলিয়ে %1 ফলাফল পাওয়া গেছে,  ( %3 seconds সময় লেগেছে )",
     "no-matches": "কোন মিল খুঁজে পাওয়া যায় নি",
     "advanced-search": "এডভান্সড সার্চ",
     "in": "এর মধ্যে",
-    "titles": "টাইটেলস",
-    "titles-posts": "টাইটেল এবং পোস্ট সমূহ",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "পোষ্ট করেছেন",
-    "in-categories": "বিভাগের ভিতরে",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "উপবিভাগের ভিতরে",
     "has-tags": "Has tags",
     "reply-count": "রিপ্লাই কাউন্ট",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "কমপক্ষে",
     "at-most": "সর্বোচ্চ",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "পোস্টের সময়",
     "votes": "Votes",
     "newer-than": "Newer than",
@@ -28,7 +48,22 @@
     "three-months": "তিন মাস",
     "six-months": "ছয় মাস",
     "one-year": "এক বছর",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "সাজানোর ভিত্তি",
+    "sort": "Sort",
     "last-reply-time": "সর্বশেষ রিপ্লাইয়ের সময়",
     "topic-title": "টপিকের টাইটেল",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "বিভাগ",
     "descending": "বড় থেকে ছোট অর্ডারে",
     "ascending": "ছোট থেকে বড় অর্ডারে",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "প্রেফারেন্স সেভ",
     "clear-preferences": "Clear preferences",
     "search-preferences-saved": "Search preferences saved",
     "search-preferences-cleared": "Search preferences cleared",
     "show-results-as": "ফলাফল দেখানো হোক : ",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/bn/social.json b/public/language/bn/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/bn/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/bn/tags.json b/public/language/bn/tags.json
index 0813383049..d8bf39ce14 100644
--- a/public/language/bn/tags.json
+++ b/public/language/bn/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "এই ট্যাগ সম্বলিত কোন টপিক নেই",
+    "no-tags-found": "No tags found",
     "tags": "ট্যাগসমূহ",
     "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
     "enter_tags_here_short": "ট্যাগ বসান",
diff --git a/public/language/bn/topic.json b/public/language/bn/topic.json
index 504cebca23..6d1767fc2e 100644
--- a/public/language/bn/topic.json
+++ b/public/language/bn/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Click here to return to the last read post in this thread.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "টপিক পার্জ করুন",
     "thread_tools.purge_confirm": "আপনি নিশ্চিত যে আপনি টপিকটি পার্জ করতে চাচ্ছেন ? ",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "পোষ্ট সরানো হয়েছে",
     "fork_topic": "টপিক ফর্ক করুন",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "যে পোষ্টটি ফর্ক করতে চান সেটি ক্লিক করুন",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "কোন পোষ্ট সিলেক্ট করা হয় নি",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "আপনার টপিকের শিরোনাম দিন",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "বাতিল",
     "composer.submit": "সাবমিট",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "%1 এর উত্তরে:",
     "composer.new_topic": "নতুন টপিক",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/bn/user.json b/public/language/bn/user.json
index 3e07785645..df37d13fff 100644
--- a/public/language/bn/user.json
+++ b/public/language/bn/user.json
@@ -43,6 +43,7 @@
     "followers": "যাদের অনুসরণ করছেন",
     "following": "যারা আপনাকে অনুসরণ করছে",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "নতুন ছবি আপলোড করুন",
     "upload_new_picture_from_url": "URL থেকে নতুন ছবি আপলোড করুন",
     "current_password": "বর্তমান পাসওয়ার্ড",
+    "new_password": "New Password",
     "change_password": "পাসওয়ার্ড পরিবর্তন",
     "change_password_error": "অগ্রহনযোগ্য পাসওয়ার্ড",
     "change_password_error_wrong_current": "আপনার পাসওয়ার্ড সঠিক নয়",
@@ -115,6 +117,8 @@
     "paginate_description": "ইনফাইনাইট স্ক্রলের বদলে টপিক ও পোস্টের জন্য পেজিনেশন ব্যাবহার করা হোক",
     "topics_per_page": "প্রতি পেজে কতগুলো টপিক থাকবে",
     "posts_per_page": "প্রতি পেইজে কতগুলো পোষ্ট থাকবে",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/bn/users.json b/public/language/bn/users.json
index 98fe38b601..dadd6b94bc 100644
--- a/public/language/bn/users.json
+++ b/public/language/bn/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "সর্বশেষ নিবন্ধিত সদস্যরা:",
     "top_posters": "সর্বোচ্চ পোষ্টকারী",
     "most_reputation": "সর্বোচ্চ সম্মাননাধারী",
     "most_flags": "সর্বোচ্চ অভিযোগ",
     "search": "খুঁজুন",
     "enter_username": "ইউজারনেম এর ভিত্তিতে সার্চ করুন",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "আরো লোড করুন",
     "users-found-search-took": "%1 জন সদস্য(দের)  খুঁজে পাওয়া গেছে। খুঁজতে সময় লেগেছে %2 সেকেন্ড ",
     "filter-by": "ফিল্টার করার ধরন",
diff --git a/public/language/cs/admin/admin.json b/public/language/cs/admin/admin.json
index bea7eb5dcc..5c1796bc7c 100644
--- a/public/language/cs/admin/admin.json
+++ b/public/language/cs/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "Ovládací panel správce NodeBB | %1",
 	"settings-header-contents": "Obsah",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/cs/admin/appearance/customise.json b/public/language/cs/admin/appearance/customise.json
index 9f8ac1ede3..f27b4e164b 100644
--- a/public/language/cs/admin/appearance/customise.json
+++ b/public/language/cs/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Uživatelský CSS/LESS",
-	"custom-css.description": "Zadejte vlastní definici CSS/LESS, která bude nadřazená ostatním stylům.",
-	"custom-css.enable": "Povolit uživatelský CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Uživatelský Javascript",
 	"custom-js.description": "Zadejte zde váš javascriptový kód. Bude spuštěn, jakmile se stránka plně načte.",
diff --git a/public/language/cs/admin/dashboard.json b/public/language/cs/admin/dashboard.json
index 2ca82e2cce..e4747f72f3 100644
--- a/public/language/cs/admin/dashboard.json
+++ b/public/language/cs/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/cs/admin/extend/widgets.json b/public/language/cs/admin/extend/widgets.json
index 4e3424696d..69d5be5a73 100644
--- a/public/language/cs/admin/extend/widgets.json
+++ b/public/language/cs/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Nic",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Hlavička panelu",
-	"container.panel-body": "Tělo panelu",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Upozornění",
 
 	"alert.confirm-delete": "Jste si jist/a, že chcete smazat tuto miniaplikaci?",
diff --git a/public/language/cs/admin/manage/groups.json b/public/language/cs/admin/manage/groups.json
index 2abf7f36e9..fe9b0754c6 100644
--- a/public/language/cs/admin/manage/groups.json
+++ b/public/language/cs/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Zpět",
 
 	"edit.no-users-found": "Nenalezen žádný uživatel",
-	"edit.confirm-remove-user": "Jste si jist/a, že chcete vyřadit tohoto uživatele?",
-	"edit.save-success": "Změny byly uloženy."
+	"edit.confirm-remove-user": "Jste si jist/a, že chcete vyřadit tohoto uživatele?"
 }
\ No newline at end of file
diff --git a/public/language/cs/admin/manage/privileges.json b/public/language/cs/admin/manage/privileges.json
index b65e9f8f3d..96102c7ffa 100644
--- a/public/language/cs/admin/manage/privileges.json
+++ b/public/language/cs/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/cs/admin/settings/api.json b/public/language/cs/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/cs/admin/settings/api.json
+++ b/public/language/cs/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/cs/admin/settings/navigation.json b/public/language/cs/admin/settings/navigation.json
index 5811c99768..b9861091a5 100644
--- a/public/language/cs/admin/settings/navigation.json
+++ b/public/language/cs/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Skupiny:",
 	"open-new-window": "Otevřít v novém okně",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Odstranit",
 	"btn.disable": "Zakázat",
diff --git a/public/language/cs/admin/settings/user.json b/public/language/cs/admin/settings/user.json
index da3647a63f..cfda7dfdd0 100644
--- a/public/language/cs/admin/settings/user.json
+++ b/public/language/cs/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Dny",
 	"session-time-seconds": "Sekundy",
 	"session-time-help": "Tyto hodnoty jsou využity v rozhodujícím procesu, jak dlouho zůstane uživatel přihlášen při zaškrtnutí „Zapamatovat si mě”. Nezapomeňte, že bude použita jen jedna hodnota. Jestli není nastavena hodnota v <i>sekundách</i>, budou brány v potaz <i>dny</i>. Nebudou-li nastaveny <i>dny</i>, hodnota bude standardně <i>14 dní</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Počet minut, kdy je uživatel považován za neaktivního",
 	"online-cutoff-help": "Nebude-li uživatel vykonávat žádnou akci v tomto časovém rozpětí, bude považován za neaktivního a nebude docházet k automatickým aktualizacím.",
 	"registration": "Registrace uživatele",
diff --git a/public/language/cs/category.json b/public/language/cs/category.json
index bb53e67664..4952cd6b1f 100644
--- a/public/language/cs/category.json
+++ b/public/language/cs/category.json
@@ -19,5 +19,5 @@
     "notwatching.message": "Nyní nesledujete aktualizace z této kategorie a všech podkategorií",
     "ignoring.message": "Nyní ignorujete aktualizace této kategorie a všech jejich kategorii",
     "watched-categories": "Sledované kategorie",
-    "x-more-categories": "%1 more categories"
+    "x-more-categories": "%1 dalších kategorií"
 }
\ No newline at end of file
diff --git a/public/language/cs/email.json b/public/language/cs/email.json
index 470ba7eca8..fada8d0597 100644
--- a/public/language/cs/email.json
+++ b/public/language/cs/email.json
@@ -6,9 +6,9 @@
     "greeting_no_name": "Dobrý den",
     "greeting_with_name": "Dobrý den %1",
     "email.verify-your-email.subject": "Ověřte prosím vaší e-mailovou adresu",
-    "email.verify.text1": "You've requested that we change or confirm your email address",
-    "email.verify.text2": "For security purposes, we only change or confirm the email address on file once its ownership has been confirmed via email. <strong>If you did not request this, no action is required on your part.</strong>",
-    "email.verify.text3": "Once you confirm this email address, we will replace your current email address with this one (%1).",
+    "email.verify.text1": "Požádali jste o změnu nebo potvrzení Vaší emailové adresy",
+    "email.verify.text2": "Z bezpečnostních důvodů potvrzujeme emailové adresy až ve chvíli, kdy potvrdíte jejich vlastnictví. <strong>Pokud jste toto nevyžádali, není třeba na Vaší straně žádné další akce.</strong>",
+    "email.verify.text3": "Jakmile adresu potvrdíte, nahradíme vaši současnou emailovou adresu touto (%1).",
     "welcome.text1": "Děkujeme vám za registraci na %1!",
     "welcome.text2": "Pro úplnou aktivaci vašeho účtu potřebujeme ověřit vaši e-mailovou adresu.",
     "welcome.text3": "Administrátor právě potvrdil vaší registraci. Nyní se můžete přihlásit jménem a heslem.",
@@ -23,8 +23,8 @@
     "reset.notify.text1": "Informujeme Vás, že na %1 vaše heslo bylo úspěšně změněno.",
     "reset.notify.text2": "Pokud jste to neschválil, prosíme neprodleně kontaktujte správce.",
     "digest.latest_topics": "Nejnovější témata od %1",
-    "digest.top-topics": "Top topics from %1",
-    "digest.popular-topics": "Popular topics from %1",
+    "digest.top-topics": "Nejlepší témata od %1",
+    "digest.popular-topics": "Oblíbená témata od %1",
     "digest.cta": "Kliknutím zde navštívíte %1",
     "digest.unsub.info": "Tento výtah vám byl odeslán, protože jste si to nastavili ve vašich odběrech.",
     "digest.day": "den",
@@ -48,8 +48,8 @@
     "unsub.cta": "Chcete-li změnit tyto nastavení, klikněte zde.",
     "unsubscribe": "odhlásit",
     "unsub.success": "Již nebudete nadále dostávat e-maily z <strong>%1</strong>",
-    "unsub.failure.title": "Unable to unsubscribe",
-    "unsub.failure.message": "Unfortunately, we were not able to unsubscribe you from the mailing list, as there was an issue with the link. However, you can alter your email preferences by going to <a href=\"%2\">your user settings</a>.<br /><br />(error: <code>%1</code>)",
+    "unsub.failure.title": "Zrušení odběru selhalo",
+    "unsub.failure.message": "Bohužel jsme nebyli schopni Vás odebrat z emailové korespondence, jelikož nastal problém s odkazem. Nicméně je možné upravit emailové předvolby ve Vašich <a href=\"%2\">uživatelských nastaveních</a>. <br /> <br /> (chyba: <code>%1</code>)",
     "banned.subject": "Byl jste zablokován od %1",
     "banned.text1": "Uživatel %1 byl zablokován od %2",
     "banned.text2": "Blokace bude trvat do %1",
diff --git a/public/language/cs/error.json b/public/language/cs/error.json
index 35e9974725..0bc850e901 100644
--- a/public/language/cs/error.json
+++ b/public/language/cs/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Nahrávání od hostů nebylo povoleno",
     "cors-error": "Není možné nahrát obrázek díky špatně nakonfigurovanému „Cross-Origin Resource Sharing (CORS)”",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Váš požadavek o členství již byl odeslán",
     "group-join-disabled": "V tuto chvíli se nemůžete připojit k této skupině",
     "group-leave-disabled": "V tuto chvíli nemůžete opustit tuto skupinu",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Tento příspěvek byl již odstraněn",
     "post-already-restored": "Tento příspěvek byl již obnoven",
     "topic-already-deleted": "Toto téma bylo již odstraněno",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/cs/flags.json b/public/language/cs/flags.json
index d20bbdf652..f518a282d5 100644
--- a/public/language/cs/flags.json
+++ b/public/language/cs/flags.json
@@ -3,33 +3,35 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hurá, žádné označení.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Nabyvatel",
 	"update": "Aktualizovat",
 	"updated": "Aktualizováno",
 	"resolved": "Resolved",
 	"target-purged": "Obsah, na který se toto označení vztahuje, byl vymazán a již není k dispozici.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Denní označení",
 	"quick-filters": "Rychlé filtry",
 	"filter-active": "V tomto seznamu označení je jeden nebo více aktivních filtrů",
 	"filter-reset": "Vyjmout filtry",
 	"filters": "Možnosti filtru",
-	"filter-reporterId": "UID ohlašovatele",
-	"filter-targetUid": "UID označení",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Typ označení",
 	"filter-type-all": "Všechen obsah",
 	"filter-type-post": "Příspěvek",
 	"filter-type-user": "Uživatel",
 	"filter-state": "Stav",
-	"filter-assignee": "UID nabyvatele",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategorie",
 	"filter-quick-mine": "Přiřazeno mě",
 	"filter-cid-all": "Všechny kategorie",
 	"apply-filters": "Použít filtry",
-	"more-filters": "More Filters",
-	"fewer-filters": "Fewer Filters",
+	"more-filters": "Další filtry",
+	"fewer-filters": "Méně filtrů",
 
-	"quick-actions": "Quick Actions",
+	"quick-actions": "Rychlé akce",
 	"flagged-user": "Označený uživatel",
 	"view-profile": "Zobrazit profil",
 	"start-new-chat": "Začít novou konverzaci",
@@ -45,6 +47,7 @@
 
 	"notes": "Poznámky označení",
 	"add-note": "Přidat poznámku",
+	"edit-note": "Edit Note",
 	"no-notes": "Žádné sdílené poznámky.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
@@ -62,7 +65,7 @@
 	"state-rejected": "Zamítnuto",
 	"no-assignee": "Nepřiřazeno",
 
-	"sort": "Sort by",
+	"sort": "Seřadit dle",
 	"sort-newest": "Newest first",
 	"sort-oldest": "Oldest first",
 	"sort-reports": "Most reports",
diff --git a/public/language/cs/global.json b/public/language/cs/global.json
index 73dfef6204..17c97bef2c 100644
--- a/public/language/cs/global.json
+++ b/public/language/cs/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Zavřít",
     "403.title": "Přístup odepřen",
     "403.message": "Zdá se, že jste narazil/a na stránky na které nemáte přístup.",
-    "403.login": "Možná byste měli se <a href='%1/login'>zkusit přihlásit</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Stránka nenalezena",
-    "404.message": "Zdá se, že jste narazil/a na stránku která neexistuje. Vrátit se zpět na <a href='%1/'>domovskou stránku</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Interní chyba",
     "500.message": "Jejda, vypadá to, že se něco pokazilo.",
     "400.title": "Špatný požadavek.",
-    "400.message": "Zdá se, že tento odkaz není správny, prosím zkontrolujte ho a zkuste to znovu. Jinak, vraťte se na <a href='%1/'>Domácí stránku</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registrovat",
     "login": "Přihlásit se",
     "please_log_in": "Přihlašte se, prosím",
@@ -23,23 +23,27 @@
     "close": "Zrušit",
     "pagination": "Stránkování",
     "pagination.out_of": "%1 z %2",
-    "pagination.enter_index": "Go to post index",
+    "pagination.enter_index": "Přejít na n-tý příspěvek",
     "header.admin": "Administrace",
     "header.categories": "Kategorie",
     "header.recent": "Nejnovější",
     "header.unread": "Nepřečtené",
     "header.tags": "Značky",
     "header.popular": "Populární",
-    "header.top": "Top",
+    "header.top": "Nejlepší",
     "header.users": "Uživatelé",
     "header.groups": "Skupiny",
     "header.chats": "Chaty",
     "header.notifications": "Upozornění",
     "header.search": "Hledat",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigace",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Načítání upozornění",
     "chats.loading": "Načítání chatů",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Vítejte na NodeBB, diskusní platforma buducnosti.",
     "previouspage": "Předchozí stránka",
     "nextpage": "Další stránka",
@@ -54,24 +58,26 @@
     "users": "Uživatelé",
     "topics": "Témata",
     "posts": "Příspěvky",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Nejlepší",
-    "controversial": "Controversial",
+    "controversial": "Kontroverzní",
     "votes": "Počet hlasů",
-    "x-votes": "%1 votes",
-    "voters": "Voters",
+    "x-votes": "%1 hlasů",
+    "voters": "Hlasující",
     "upvoters": "Souhlasník",
     "upvoted": "Souhlasů",
     "downvoters": "Nesouhlasník",
     "downvoted": "Nesouhlasů",
     "views": "Zobrazení",
-    "posters": "Posters",
+    "posters": "Přispěvatelé",
     "reputation": "Reputace",
     "lastpost": "Poslední příspěvek",
     "firstpost": "První příspěvek",
+    "about": "About",
     "read_more": "čtěte více",
     "more": "Více",
-    "none": "None",
+    "none": "Žádné",
     "posted_ago_by_guest": "přispěl %1 host",
     "posted_ago_by": "přispěl %1 od %2",
     "posted_ago": "přispěl %1",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 přispěl %2",
     "guest_posted_ago": "Host přispěl %1",
     "last_edited_by": "naposledy upravil %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Žádné nedávné příspěvky",
     "norecenttopics": "Žádné nedávné témata",
     "recentposts": "Nedávné příspěvky",
     "recentips": "Naposledy zaznamenané IP adresy",
     "moderator_tools": "Nástroje moderátora",
+    "status": "Status",
     "online": "Online",
     "away": "Pryč",
     "dnd": "Nevyrušovat",
@@ -97,8 +105,8 @@
     "guest": "Host",
     "guests": "Hosté",
     "former_user": "Bývalý uživatel",
-    "system-user": "System",
-    "unknown-user": "Unknown user",
+    "system-user": "Systém",
+    "unknown-user": "Neznámý uživatel",
     "updated.title": "Fórum bylo zaktualizováno",
     "updated.message": "Toto fórum bylo právě aktualizováno na poslední verzi. Klikněte zde a obnovte tuto stránku.",
     "privacy": "Soukromí",
@@ -122,5 +130,7 @@
     "edited": "Upraveno",
     "disabled": "Nepovoleno",
     "select": "Vyberte",
-    "user-search-prompt": "Pro hledání uživatelů, zde pište..."
+    "user-search-prompt": "Pro hledání uživatelů, zde pište...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/cs/groups.json b/public/language/cs/groups.json
index 92af62ce0b..74db551ff1 100644
--- a/public/language/cs/groups.json
+++ b/public/language/cs/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Skupiny",
+    "members": "Members",
     "view_group": "Zobrazit skupinu",
     "owner": "Vlastník skupiny",
     "new_group": "Vytvořit novou skupinu",
diff --git a/public/language/cs/language.json b/public/language/cs/language.json
index d2a404b6f7..4ebf3b1471 100644
--- a/public/language/cs/language.json
+++ b/public/language/cs/language.json
@@ -1,5 +1,5 @@
 {
-    "name": "Czech",
+    "name": "Čeština (Česká Republika)",
     "code": "cs",
     "dir": "ltr"
 }
\ No newline at end of file
diff --git a/public/language/cs/login.json b/public/language/cs/login.json
index 49463eae9d..dabe2b9412 100644
--- a/public/language/cs/login.json
+++ b/public/language/cs/login.json
@@ -8,5 +8,5 @@
     "login_successful": "Přihlášení proběhlo úspěšně!",
     "dont_have_account": "Nemáte účet?",
     "logged-out-due-to-inactivity": "Z důvodu nečinnosti jste byl odhlášen z ovládacího panelu administrátora",
-    "caps-lock-enabled": "Caps Lock is enabled"
+    "caps-lock-enabled": "Máte zapnutý Caps Lock"
 }
\ No newline at end of file
diff --git a/public/language/cs/modules.json b/public/language/cs/modules.json
index f48d1d165a..848c65c4a6 100644
--- a/public/language/cs/modules.json
+++ b/public/language/cs/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Konverzace s",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Odeslat",
     "chat.no_active": "Nemáte žádné aktivní konverzace.",
     "chat.user_typing": "%1 píše…",
@@ -42,6 +46,7 @@
     "composer.compose": "Napsat",
     "composer.show_preview": "Ukázat náhled",
     "composer.hide_preview": "Skrýt náhled",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 řekl v %2:",
     "composer.user_said": "%1 řekl:",
     "composer.discard": "Jste si jisti, že chcete zrušit tento příspěvek?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Zrušit",
     "bootbox.confirm": "Potvrdit",
diff --git a/public/language/cs/notifications.json b/public/language/cs/notifications.json
index 11af95b03f..085659c2e9 100644
--- a/public/language/cs/notifications.json
+++ b/public/language/cs/notifications.json
@@ -1,8 +1,8 @@
 {
     "title": "Upozornění",
     "no_notifs": "Nemáte žádná nová upozornění.",
-    "see_all": "All notifications",
-    "mark_all_read": "Mark all read",
+    "see_all": "Všechna upozornění",
+    "mark_all_read": "Označit vše jako přečtené",
     "back_to_home": "Zpět na %1",
     "outgoing_link": "Odkaz mimo fórum",
     "outgoing_link_message": "Opouštíte %1",
@@ -14,7 +14,7 @@
     "topics": "Témata",
     "replies": "Odpovědi",
     "chat": "Konverzace",
-    "group-chat": "Group Chats",
+    "group-chat": "Skupinová konverzace",
     "follows": "Sledování",
     "upvote": "Souhlasy",
     "new-flags": "Nové označení",
@@ -36,7 +36,7 @@
     "user_posted_to_dual": "<strong>%1</strong> a <strong>%2</strong> odpověděli na: <strong>%3</strong>",
     "user_posted_to_multiple": "<strong>%1</strong> a %2 další/ch odpověděli na <strong>%3</strong>",
     "user_posted_topic": "<strong>%1</strong> založil nové téma: <strong>%2</strong>",
-    "user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
+    "user_edited_post": "Příspěvek <strong>%2</strong> byl upraven uživatelem <strong>%1</strong> ",
     "user_started_following_you": "<strong>%1</strong> vás začal sledovat.",
     "user_started_following_you_dual": "<strong>%1</strong> a <strong>%2</strong> vás začali sledovat.",
     "user_started_following_you_multiple": "<strong>%1</strong> a %2 další/ch vás začali sledovat.",
@@ -44,12 +44,12 @@
     "new_register_multiple": "Je zde <strong>%1</strong> registračních požadavků čeká na vyřízení.",
     "flag_assigned_to_you": "<strong>Označení %1</strong>  vám bylo přiřazeno",
     "post_awaiting_review": "Příspěvek na schválení",
-    "profile-exported": "<strong>%1</strong> profile exported, click to download",
-    "posts-exported": "<strong>%1</strong> posts exported, click to download",
-    "uploads-exported": "<strong>%1</strong> uploads exported, click to download",
-    "users-csv-exported": "Users csv exported, click to download",
-    "post-queue-accepted": "Your queued post has been accepted. Click here to see your post.",
-    "post-queue-rejected": "Your queued post has been rejected.",
+    "profile-exported": "<strong>%1</strong> profil byl exportován, klikněte pro jeho stažení",
+    "posts-exported": "<strong>%1</strong> příspěvků bylo exportováno, klikněte pro jejich stažení",
+    "uploads-exported": "<strong>%1</strong> nahraných souborů bylo exportováno, klikněte pro jejich stažení",
+    "users-csv-exported": "Seznam uživatelů v csv byl exportován, klikněte pro stažení",
+    "post-queue-accepted": "Váš příspěvek byl akceptován. Klikněte zde pro jeho zobrazení.",
+    "post-queue-rejected": "Váš příspěvek byl odmítnut.",
     "post-queue-notify": "Queued post received a notification:<br/>\"%1\"",
     "email-confirmed": "E-mail potvrzen",
     "email-confirmed-message": "Děkujeme za ověření vaší e-mailové adresy. Váš účet je nyní aktivní.",
@@ -59,17 +59,17 @@
     "notification_only": "Jen oznámení",
     "email_only": "Jen e-mail",
     "notification_and_email": "Oznámení a e-mail",
-    "notificationType_upvote": "Vyjádří-li někdo souhlas s vaším příspěvkem",
-    "notificationType_new-topic": "Začne-li někdo sledovat příspěvky a téma",
-    "notificationType_new-reply": "Bude-li přidán nový příspěvek v tématu, které sledujete",
-    "notificationType_post-edit": "When a post is edited in a topic you are watching",
-    "notificationType_follow": "Začne-li vás někdo sledovat",
+    "notificationType_upvote": "Jakmile někdo vyjádří souhlas s vaším příspěvkem",
+    "notificationType_new-topic": "Jakmile někdo koho sledujete vytvoří nové téma",
+    "notificationType_new-reply": "Jakmile je přidán nový příspěvek v tématu, které sledujete",
+    "notificationType_post-edit": "Jakmile je upraven příspěvek v tématu, které sledujete",
+    "notificationType_follow": "Jakmile vás někdo začne sledovat",
     "notificationType_new-chat": "Obdržíte-li novou konverzační zprávu",
-    "notificationType_new-group-chat": "When you receive a group chat message",
+    "notificationType_new-group-chat": "Když obdržíte zprávu ve skupinové konverzaci",
     "notificationType_group-invite": "Obdržíte-li pozvání ke skupině",
-    "notificationType_group-leave": "When a user leaves your group",
-    "notificationType_group-request-membership": "Pokud někdo požaduje připojení se do vaší skupiny",
-    "notificationType_new-register": "Bude-li někdo přidán do registrační fronty",
+    "notificationType_group-leave": "Když uživatel opustí Vaši skupinu",
+    "notificationType_group-request-membership": "Jakmile někdo pošle žádost o připojení se do vaší skupiny",
+    "notificationType_new-register": "Jakmile je někdo přidán do registrační fronty",
     "notificationType_post-queue": "Bude-li přidán nový příspěvek do fronty",
     "notificationType_new-post-flag": "Bude-li příspěvek označen",
     "notificationType_new-user-flag": "Bude-li uživatel označen"
diff --git a/public/language/cs/pages.json b/public/language/cs/pages.json
index 8b3e38baa0..207babc277 100644
--- a/public/language/cs/pages.json
+++ b/public/language/cs/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's sledovaných kategorii",
     "account/bookmarks": "%1's zazáložkované příspěvky",
     "account/settings": "Uživatelské nastavení",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Témata sledovaná uživatelem %1",
     "account/ignored": "Témata ignorovaná uživatelem %1",
     "account/upvoted": "Souhlasí s příspěvkem %1",
diff --git a/public/language/cs/post-queue.json b/public/language/cs/post-queue.json
index 32f542129d..2485f7768e 100644
--- a/public/language/cs/post-queue.json
+++ b/public/language/cs/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Fronta příspěvků",
-	"description": "Nejsou žádné příspěvky ve frontě. Pro povolení této funkčnosti, přejděte do <a href=\"%1\">Nastavení – Příspěvky – Fronta příspěvků</a> a povolte <strong>Fronta příspěvků</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Uživatel",
+	"when": "When",
 	"category": "Kategorie",
 	"title": "Název",
 	"content": "Obsah",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/cs/recent.json b/public/language/cs/recent.json
index 34c0235f91..a0005c381a 100644
--- a/public/language/cs/recent.json
+++ b/public/language/cs/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Pořád",
     "no_recent_topics": "Nebyly nalezeny žádné nové téma.",
     "no_popular_topics": "Žádná oblíbená téma.",
-    "there-is-a-new-topic": "K dispozici je nové téma.",
-    "there-is-a-new-topic-and-a-new-post": "K dispozici je nové téma a nový příspěvěk.",
-    "there-is-a-new-topic-and-new-posts": "K dispozici je nové téma a %1 nových příspěvků.",
-    "there-are-new-topics": "K dispozici je %1 nových témat.",
-    "there-are-new-topics-and-a-new-post": "K dispozici je %1 nových témat a jeden nový příspěvek.",
-    "there-are-new-topics-and-new-posts": "K dispozici je %1 nových témat a %2 nových příspěvků.",
-    "there-is-a-new-post": "K dispozici je nový příspěvek.",
-    "there-are-new-posts": "K dispozici je %1 nových příspěvků.",
-    "click-here-to-reload": "Kliknutím sem znovu načtete stránku."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/cs/register.json b/public/language/cs/register.json
index 365e4c1a48..a9d59692ac 100644
--- a/public/language/cs/register.json
+++ b/public/language/cs/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registrace",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Zrušit registraci",
     "help.email": "Ve výchozím nastavení bude váš e-mail skrytý.",
     "help.username_restrictions": "Jedinečné uživatelské jméno dlouhé %1 až %2 znaků. Ostatní uživatelé Vás mohou zmínit jako @<span id='yourUsername'>uživatelské jméno</span>.",
diff --git a/public/language/cs/search.json b/public/language/cs/search.json
index 8c64002155..4fba4f629e 100644
--- a/public/language/cs/search.json
+++ b/public/language/cs/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "Počet výsledků pro „%2“: %1, (%3 sekund)",
     "no-matches": "Nic nebylo nalezeno",
     "advanced-search": "Pokročilé hledání",
     "in": "v",
-    "titles": "Název",
-    "titles-posts": "Název a příspěvky",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Shodná slova",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Vše",
     "any": "Jakékoliv",
     "posted-by": "Napsal",
-    "in-categories": "V kategoriích",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Hledat podružné kategorie",
     "has-tags": "Obsahuje značky",
     "reply-count": "Počet odpovědí",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Nejméně",
     "at-most": "Nejvíce",
     "relevance": "Relevantnost",
+    "time": "Time",
     "post-time": "Čas příspěvku",
     "votes": "Hlasů",
     "newer-than": "Novější než",
@@ -28,7 +48,22 @@
     "three-months": "Tři měsíce",
     "six-months": "Šest měsíců",
     "one-year": "Jeden rok",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Řadit dle",
+    "sort": "Sort",
     "last-reply-time": "Čas poslední odpovědi",
     "topic-title": "Název tématu",
     "topic-votes": "Hlasy tématu",
@@ -39,11 +74,36 @@
     "category": "Kategorie",
     "descending": "Sestupně",
     "ascending": "Vzestupně",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Uložit nastavení",
     "clear-preferences": "Smazat nastavení",
     "search-preferences-saved": "Hledat dle uložených nastavení",
     "search-preferences-cleared": "Hledat dle smazaných nastavení",
     "show-results-as": "Zobrazit výsledek jako",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Zobrazit více výsledků (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/cs/social.json b/public/language/cs/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/cs/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/cs/tags.json b/public/language/cs/tags.json
index 459d59b17c..2633161f8f 100644
--- a/public/language/cs/tags.json
+++ b/public/language/cs/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Není zde žádné téma s tímto označením.",
+    "no-tags-found": "No tags found",
     "tags": "Označení",
     "enter_tags_here": "Zde vložte označení, každé o délce %1 až %2 znaků.",
     "enter_tags_here_short": "Zadejte označení…",
diff --git a/public/language/cs/topic.json b/public/language/cs/topic.json
index 1631714e90..dcfb25431a 100644
--- a/public/language/cs/topic.json
+++ b/public/language/cs/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Kopírovat IP",
     "ban-ip": "Zakázat IP",
     "view-history": "Upravit historii",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Pro návrat k poslednímu čtenému příspěvku v tématu, klikněte zde.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Vyčistit téma",
     "thread_tools.purge_confirm": "Jste si jist/a, že chcete vyčistit toto téma?",
     "thread_tools.merge_topics": "Sloučit témata",
-    "thread_tools.merge": "Sloučit",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Příspěvek přesunut.",
     "fork_topic": "Rozdělit příspěvek",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Vyberte příspěvky, které chcete oddělit",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Nebyly vybrány žádné příspěvky.",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Klikněte na příspěvek u kterého chcete změnit vlastníka",
     "composer.title_placeholder": "Zadejte název tématu…",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Zrušit",
     "composer.submit": "Odeslat",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Odpovídání na %1",
     "composer.new_topic": "Nové téma",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/cs/user.json b/public/language/cs/user.json
index 8eac8be334..9023bf8e7e 100644
--- a/public/language/cs/user.json
+++ b/public/language/cs/user.json
@@ -1,6 +1,6 @@
 {
     "banned": "Zablokován",
-    "muted": "Muted",
+    "muted": "Ztlumen",
     "offline": "Nepřipojen",
     "deleted": "Odstraněno",
     "username": "Uživatelské jméno",
@@ -13,8 +13,8 @@
     "ban_account": "Zablokovat účet",
     "ban_account_confirm": "Opravdu chcete zablokovat tohoto uživatele?",
     "unban_account": "Odblokovat účet",
-    "mute_account": "Mute Account",
-    "unmute_account": "Unmute Account",
+    "mute_account": "Ztlumit účet",
+    "unmute_account": "Zrušit ztlumení účtu",
     "delete_account": "Odstranit účet",
     "delete_account_as_admin": "Delete <strong>Account</strong>",
     "delete_content": "Delete Account <strong>Content</strong>",
@@ -43,6 +43,7 @@
     "followers": "Sledují ho",
     "following": "Sleduje",
     "blocks": "Zablokováni",
+    "blocked-users": "Blocked users",
     "block_toggle": "Přepnout zablokování",
     "block_user": "Zablokovat uživatele",
     "unblock_user": "Odblokovat uživatele",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Nahrát nový obrázek",
     "upload_new_picture_from_url": "Nahrát nový obrázek z URL",
     "current_password": "Aktuální heslo",
+    "new_password": "New Password",
     "change_password": "Změnit heslo",
     "change_password_error": "Neplatné heslo.",
     "change_password_error_wrong_current": "Aktuální heslo není správně.",
@@ -97,7 +99,7 @@
     "digest_off": "Vypnuto",
     "digest_daily": "Denně",
     "digest_weekly": "Týdně",
-    "digest_biweekly": "Bi-Weekly",
+    "digest_biweekly": "Každý druhý týden",
     "digest_monthly": "Měsíčně",
     "has_no_follower": "Tohoto uživatele nikdo nesleduje :(",
     "follows_no_one": "Tento uživatel nikoho nesleduje :(",
@@ -115,9 +117,11 @@
     "paginate_description": "Stránkovat témata a příspěvky místo použití nekonečného posunování",
     "topics_per_page": "Témat na stránce",
     "posts_per_page": "Příspěvků na stránce",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Jazyk stránky správce",
-    "notifications": "Notifications",
+    "notifications": "Oznámení",
     "upvote-notif-freq": "Frekvence upozornění na souhlasy",
     "upvote-notif-freq.all": "Všechny souhlasy",
     "upvote-notif-freq.first": "První podle příspěvku",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Poznámka moderace byla uložena",
     "info.moderation-note.add": "Přidat poznámku",
     "sessions.description": "Tato stránka vám zobrazuje aktivní relace na tomto fóru a umožňuje vám je zrušit. Můžete tak i zrušit vlastní relaci svým odhlášením. ",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Váš právní souhlas",
     "consent.lead": "Toto komunitní fórum sbírá zpracovává vaše osobní údaje.",
     "consent.intro": "Tyto informace používáme pouze pro peronizaci vašich zkušeností v této komunitě, stejně tak k rozpoznání příspěvků, které jste pod uživatelským účtem vytvořil. Během jednotlivých registračních kroků budete požádán/a o zadání Vašeho uživatelského jména a e-mailové adresy. Můžete také dobrovolně poskytnout některé dodatečné informace do vašeho profilu na webové stránce.Tyto informace uchováváme po dobu životnosti vašeho uživatelského účtu a Vy můžete kdykoliv zrušit tento svůj souhlas smazáním vašeho účtu. Kdykoli můžete požadovat kopii svých příspěvků na této webové stránce pomocí stránky „Práva a souhlas”<br /><br />Máte-li nějaké otázky nebo obavy, obraťte se na tým správců fóra.",
@@ -191,9 +197,9 @@
     "consent.export-uploads-success": "Exporting uploads, you will get a notification when it is complete.",
     "consent.export_posts": "Exportovat příspěvky (*.csv)",
     "consent.export-posts-success": "Exporting posts, you will get a notification when it is complete.",
-    "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
+    "emailUpdate.intro": "Prosíme vložte svou emailovou adresu. Toto fórum používá Vaši emailovou adresu pro zasílání pravidelných přehledů a oznámení. Emailová adresa je také použita pro obnovení přístupu v případě ztráty hesla.",
     "emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
     "emailUpdate.required": "<strong>This field is required</strong>.",
-    "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
+    "emailUpdate.change-instructions": "Potvrzovací email s unikátním odkazem bude odeslán na poskytnutou emailovou adresu. Rozkliknutím tohoto odkazu potvrdíte vlastnictví emailové adresy a ta se stane aktivní na Vašem účtě. Kdykoliv můžete emailovou adresu změnit z vašeho profilu.",
     "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
 }
\ No newline at end of file
diff --git a/public/language/cs/users.json b/public/language/cs/users.json
index 3ef1b712cf..e95e14ccfe 100644
--- a/public/language/cs/users.json
+++ b/public/language/cs/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Nejnovější uživatelé",
     "top_posters": "Nejaktivnější",
     "most_reputation": "Nejváženější",
     "most_flags": "Nejoznačovanější",
     "search": "Hledat",
     "enter_username": "Zadej uživatelské jméno k hledání",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Načíst další",
     "users-found-search-took": "Nalezeno %1 uživatel(ů) za %2 vteřiny.",
     "filter-by": "Filtrovat dle",
diff --git a/public/language/da/admin/admin.json b/public/language/da/admin/admin.json
index 45c0121aad..e6be4780aa 100644
--- a/public/language/da/admin/admin.json
+++ b/public/language/da/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Kontrol Panel",
 	"settings-header-contents": "Indhold",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/da/admin/appearance/customise.json b/public/language/da/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/da/admin/appearance/customise.json
+++ b/public/language/da/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/da/admin/dashboard.json b/public/language/da/admin/dashboard.json
index 1d7c3df85d..483e1df266 100644
--- a/public/language/da/admin/dashboard.json
+++ b/public/language/da/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/da/admin/extend/widgets.json b/public/language/da/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/da/admin/extend/widgets.json
+++ b/public/language/da/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/da/admin/manage/groups.json b/public/language/da/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/da/admin/manage/groups.json
+++ b/public/language/da/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/da/admin/manage/privileges.json b/public/language/da/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/da/admin/manage/privileges.json
+++ b/public/language/da/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/da/admin/settings/api.json b/public/language/da/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/da/admin/settings/api.json
+++ b/public/language/da/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/da/admin/settings/navigation.json b/public/language/da/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/da/admin/settings/navigation.json
+++ b/public/language/da/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/da/admin/settings/user.json b/public/language/da/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/da/admin/settings/user.json
+++ b/public/language/da/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/da/error.json b/public/language/da/error.json
index 587585ac00..85983de47a 100644
--- a/public/language/da/error.json
+++ b/public/language/da/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Gæsteupload er deaktiveret",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Din medlemskabs anmodning er allerede blevet afsendt",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Dette indlæg er allerede blevet slettet",
     "post-already-restored": "Dette indlæg er allerede blevet genskabt",
     "topic-already-deleted": "Denne tråd er allerede blevet slettet",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/da/flags.json b/public/language/da/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/da/flags.json
+++ b/public/language/da/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/da/global.json b/public/language/da/global.json
index b3815b94f2..2d54e5512d 100644
--- a/public/language/da/global.json
+++ b/public/language/da/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Luk",
     "403.title": "Adgang nægtet",
     "403.message": "Det ser ud til du er stødt på en side du ikke har adgang til.",
-    "403.login": "Måske du skulle <a href='%1/login'>prøve og logge ind</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Ikke fundet",
-    "404.message": "Det ser ud til du er stødt på en side der ikke finder. Retuner til <a href='%1/'> forsiden</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Internal Error.",
     "500.message": "Ups! Ser ud til at noget gik galt!",
     "400.title": "Bad Request.",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Tilmeld",
     "login": "Log ind",
     "please_log_in": "Venligst log ind",
@@ -37,9 +37,13 @@
     "header.notifications": "Notifikationer",
     "header.search": "Søg",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Indlæser notifikationer",
     "chats.loading": "Indlæser chats",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Velkommen til NodeBB, fremtidens diskussion platform. ",
     "previouspage": "Forrige side",
     "nextpage": "Næste side",
@@ -54,7 +58,8 @@
     "users": "Bruger",
     "topics": "Emner",
     "posts": "Indlæg",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Bedste",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Omdømme",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "læs mere",
     "more": "Mere",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 skrev for %2",
     "guest_posted_ago": "Gæst skrev for %1",
     "last_edited_by": "sidst redigeret af %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Ingen seneste indlæg",
     "norecenttopics": "Ingen seneste tråde",
     "recentposts": "Seneste indlæg",
     "recentips": "Seneste loggede ind IPer",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Online",
     "away": "Væk",
     "dnd": "Vil ikke forstyres",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/da/groups.json b/public/language/da/groups.json
index b9f2c13d4c..0ea88c3e45 100644
--- a/public/language/da/groups.json
+++ b/public/language/da/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "grupper",
+    "members": "Members",
     "view_group": "se gruppe",
     "owner": "Gruppe ejer",
     "new_group": "Opret ny gruppe",
diff --git a/public/language/da/modules.json b/public/language/da/modules.json
index 970b44bbf4..7336fa8a1a 100644
--- a/public/language/da/modules.json
+++ b/public/language/da/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Send",
     "chat.no_active": "Du har ingen aktive chats.",
     "chat.user_typing": "%1 skriver ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Skriv",
     "composer.show_preview": "Vis forhåndsvisning",
     "composer.hide_preview": "Fjern forhåndsvisning",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 sagde i %2:",
     "composer.user_said": "%1 sagde:",
     "composer.discard": "Er du sikker på at du vil kassere dette indlæg?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Annuller",
     "bootbox.confirm": "Bekræft",
diff --git a/public/language/da/pages.json b/public/language/da/pages.json
index 70d679b9e7..97098e5989 100644
--- a/public/language/da/pages.json
+++ b/public/language/da/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "Bruger instillinger",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Tråde fulgt af %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Indlæg syntes godt om af %1",
diff --git a/public/language/da/post-queue.json b/public/language/da/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/da/post-queue.json
+++ b/public/language/da/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/da/recent.json b/public/language/da/recent.json
index 102e609bdc..4d05391442 100644
--- a/public/language/da/recent.json
+++ b/public/language/da/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Al tid",
     "no_recent_topics": "Der er ingen seneste tråde",
     "no_popular_topics": "Der er ingen populære tråde.",
-    "there-is-a-new-topic": "Der er en ny tråd.",
-    "there-is-a-new-topic-and-a-new-post": "Der er en ny tråd og et nyt indlæg.",
-    "there-is-a-new-topic-and-new-posts": "Der er en tråd og %1 nye indlæg",
-    "there-are-new-topics": "Der er %1 nye indlæg.",
-    "there-are-new-topics-and-a-new-post": "Der er %1 nye indlæg og et nyt indlæg.",
-    "there-are-new-topics-and-new-posts": "Der er %1 nye tråde og %2 nye indlæg.",
-    "there-is-a-new-post": "Der er et nyt indlæg.",
-    "there-are-new-posts": "Der er %1 nye indlæg.",
-    "click-here-to-reload": "Klik her for at genindlæse."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/da/register.json b/public/language/da/register.json
index 49e5041f8d..7874d4bf04 100644
--- a/public/language/da/register.json
+++ b/public/language/da/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Tilmeld",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "Den email er skjult som standard.",
     "help.username_restrictions": "Et unikt brugernavn mellem %1 og %2 karakterer. Andre kan nævne dig med @<span id='yourUsername'>brugernavn</span>.",
diff --git a/public/language/da/search.json b/public/language/da/search.json
index d2a9f8fc4e..34ea5ae016 100644
--- a/public/language/da/search.json
+++ b/public/language/da/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 resultat(er) matcher \"%2\", (%3 sekunder)",
     "no-matches": "Ingen resultatet fundet",
     "advanced-search": "Advanceret søgning",
     "in": "I",
-    "titles": "Titler",
-    "titles-posts": "Titler og indlæg",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Skrevet af",
-    "in-categories": "I katagorierne",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Søg underkategorier",
     "has-tags": "Has tags",
     "reply-count": "Svar antal",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Mindst",
     "at-most": "Højst",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Skrevet",
     "votes": "Votes",
     "newer-than": "Nyere end",
@@ -28,7 +48,22 @@
     "three-months": "Tre måneder",
     "six-months": "Seks måneder",
     "one-year": "Et år",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sorter efter",
+    "sort": "Sort",
     "last-reply-time": "Sidste svar tid",
     "topic-title": "Tråd titel",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Kategori",
     "descending": "I faldende rækkefølge",
     "ascending": "I stigende rækkefølge",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Gem præferencer",
     "clear-preferences": "Slet præferencer",
     "search-preferences-saved": "Søgnings præferencer gemt",
     "search-preferences-cleared": "Søgnings præferencer slettet",
     "show-results-as": "Vis resultater som",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/da/social.json b/public/language/da/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/da/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/da/tags.json b/public/language/da/tags.json
index 5a37670409..f8721eb5e9 100644
--- a/public/language/da/tags.json
+++ b/public/language/da/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Der er ikke indlæg med dette tag.",
+    "no-tags-found": "No tags found",
     "tags": "Tags",
     "enter_tags_here": "Indsæt tags her, hver på mellem %1 og %2 karakterer.",
     "enter_tags_here_short": "Skriv tags",
diff --git a/public/language/da/topic.json b/public/language/da/topic.json
index c09722cfa2..425f042f14 100644
--- a/public/language/da/topic.json
+++ b/public/language/da/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Klik her for at vende tilbage til den sidst læste indlæg i denne tråd.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Udrader tråd",
     "thread_tools.purge_confirm": "Er du sikker på at du vil udrense denne tråd?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Indlæg flyttet!",
     "fork_topic": "Fraskil tråd",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Klik på indlæg du ønsker at fraskille",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Ingen indlæg valgt",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Angiv din trådtittel her ...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Fortryd",
     "composer.submit": "Send",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Svare til %1",
     "composer.new_topic": "Ny tråd",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/da/user.json b/public/language/da/user.json
index 6f0f367d81..3bdc20da6f 100644
--- a/public/language/da/user.json
+++ b/public/language/da/user.json
@@ -43,6 +43,7 @@
     "followers": "Followers",
     "following": "Følger",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Upload nyt billede",
     "upload_new_picture_from_url": "Upload nyt billede fra URL",
     "current_password": "Nuværende kodeord",
+    "new_password": "New Password",
     "change_password": "Skift kodeord",
     "change_password_error": "Ukorrekt kodeord",
     "change_password_error_wrong_current": "Nuværende kodeord er ikke korrekt",
@@ -115,6 +117,8 @@
     "paginate_description": "Sideinddel emner og indlæg istedet for uendeligt rul",
     "topics_per_page": "Emner per side",
     "posts_per_page": "Indlæg per side",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/da/users.json b/public/language/da/users.json
index 3f1781572f..c1d502f879 100644
--- a/public/language/da/users.json
+++ b/public/language/da/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Seneste brugere",
     "top_posters": "Top Postere",
     "most_reputation": "Mest Omdømme",
     "most_flags": "Most Flags",
     "search": "Søg",
     "enter_username": "Indtast brugernavn for at søge",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Indlæs mere",
     "users-found-search-took": "%1 bruger(e) fundet! Søgning tog %2 sekunder.",
     "filter-by": "Filtre Efter",
diff --git a/public/language/de/admin/admin.json b/public/language/de/admin/admin.json
index 5e153b0727..1d2313a874 100644
--- a/public/language/de/admin/admin.json
+++ b/public/language/de/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Systemsteuerung",
 	"settings-header-contents": "Inhalte",
-	"changes-saved": "Änderungen gespeichert",
-	"changes-saved-message": "Deine Änderungen an der NodeBB Konfiguration wurden gespeichert.",
 	"changes-not-saved": "Änderungen verworfen",
 	"changes-not-saved-message": "Beim Speichern der Änderungen ist ein Problem aufgetreten. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/de/admin/appearance/customise.json b/public/language/de/admin/appearance/customise.json
index 6424bc3dfb..827ebdae72 100644
--- a/public/language/de/admin/appearance/customise.json
+++ b/public/language/de/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Benutzerdefiniertes CSS/LESS",
-	"custom-css.description": "Füge deine eigenen CSS/LESS deklarationen hier ein, die nach allen anderen Styles angewandt werden.",
-	"custom-css.enable": "Benutzerdefiniertes CSS/LESS aktivieren",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Benutzerdefiniertes Javascript",
 	"custom-js.description": "Füge dein eigenes Javascipt hier ein.\nEs wird ausgeführt nachdem die Seite komplett geladen wurde.",
diff --git a/public/language/de/admin/dashboard.json b/public/language/de/admin/dashboard.json
index aa25120bae..a130d5516c 100644
--- a/public/language/de/admin/dashboard.json
+++ b/public/language/de/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Zurück zur Übersicht",
 	"details.no-users": "Keine Benutzer sind im gewählten Zeitraum beigetreten",
 	"details.no-topics": "Keine Themen wurden im gewählten Zeitraum beigetreten",
-	"details.no-searches": "Es wurden noch keine Suchen durchgeführt",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "Keine Logins wurden im gewählten Zeitraum festgestellt",
 	"details.logins-static": "NodeBB speichert Sitzungsdaten nur für %1 Tage, deshalb zeigt die untere Tabelle nur die neuesten, aktiven Sitzungen",
-	"details.logins-login-time": "Anmelde Zeit"
+	"details.logins-login-time": "Anmelde Zeit",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/de/admin/extend/widgets.json b/public/language/de/admin/extend/widgets.json
index 9497575e33..4bcbc0b094 100644
--- a/public/language/de/admin/extend/widgets.json
+++ b/public/language/de/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Nichts",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel-Kopfzeile",
-	"container.panel-body": "Panel-Körper",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alarm",
 
 	"alert.confirm-delete": "Möchtest Du dieses Widget wirklich löschen?",
diff --git a/public/language/de/admin/manage/groups.json b/public/language/de/admin/manage/groups.json
index c9cf421577..1d4cc09432 100644
--- a/public/language/de/admin/manage/groups.json
+++ b/public/language/de/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Rückgängig machen",
 
 	"edit.no-users-found": "Keine Benutzer gefunden",
-	"edit.confirm-remove-user": "Sind Sie sicher, dass Sie diesen Benutzer entfernen wollen?",
-	"edit.save-success": "Änderungen gespeichert!"
+	"edit.confirm-remove-user": "Sind Sie sicher, dass Sie diesen Benutzer entfernen wollen?"
 }
\ No newline at end of file
diff --git a/public/language/de/admin/manage/privileges.json b/public/language/de/admin/manage/privileges.json
index a90cc6265e..76fec38898 100644
--- a/public/language/de/admin/manage/privileges.json
+++ b/public/language/de/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Bist Du sicher, dass du dieser Gruppe das Moderationsrecht gewähren möchtest?</strong> Diese Gruppe ist öffentlich, und alle Benutzer können nach Belieben beitreten.",
 	"alert.confirm-admins-mods": "<strong>Bist Du sicher, dass du  \"Administrator & Moderator\" Rechte zu dieser Gruppe hinzufügen willst?</strong>Benutzer mit diesen Rechten können andere Benutzer in privilegierte Positionen heraufstufen und herabstufen, <em>super Administrator eingeschlossen!</em>",
 	"alert.confirm-save": "Bitte bestätige Deine Absicht, diese Rechte zu speichern",
-	"alert.saved": "Änderungen an Rechten gespeichert und angewendet",
 	"alert.confirm-discard": "Bist du sicher, dass du die Änderungen an den Rechten verwerfen möchtest?",
 	"alert.discarded": "Änderungen an Rechten verworfen",
 	"alert.confirm-copyToAll": "Bist Du dir sicher, dass Du die Rechte von <strong>%1</strong> auf <strong>alle Kategorien</strong> anwenden möchtest?",
diff --git a/public/language/de/admin/settings/api.json b/public/language/de/admin/settings/api.json
index d718623639..6295bfc6e4 100644
--- a/public/language/de/admin/settings/api.json
+++ b/public/language/de/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "Nutzer–ID",
 	"uid-help-text": "Gebe eine Benutzer-ID an, die diesem Token zugeordnet werden soll. Wenn die Benutzer-ID <code>0</code> ist, wird sie als <em>Master</em>-Token betrachtet, das basierend auf dem <code>_uid</code>-Parameter die Identität anderer Benutzer annehmen kann",
 	"description": "Beschreibung",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "Keine Beschreibung angegeben.",
 	"token-on-save": "Token wird generiert, sobald das Formular gespeichert wird"
 }
\ No newline at end of file
diff --git a/public/language/de/admin/settings/navigation.json b/public/language/de/admin/settings/navigation.json
index fb54380fd3..e268715347 100644
--- a/public/language/de/admin/settings/navigation.json
+++ b/public/language/de/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Gruppen:",
 	"open-new-window": "In neuem Fenster öffnen",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Platziere deine Dropdown-Menüpunkte unten, dh:<br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Löschen",
 	"btn.disable": "Deaktivieren",
diff --git a/public/language/de/admin/settings/user.json b/public/language/de/admin/settings/user.json
index 2af71b2cc6..b032894126 100644
--- a/public/language/de/admin/settings/user.json
+++ b/public/language/de/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Tage",
 	"session-time-seconds": "Sekunden",
 	"session-time-help": "Diese Werte legen fest, wie lange ein Benutzer angemeldet bleibt, wenn er die Option &quot;Eingeloggt bleiben&quot; beim Login aktiviert. Beachte, dass nur einer dieser Werte verwendet wird. Wenn <i>Sekunden</i> nicht festgelegt wurden, greifen wir auf <i>Tage</i> zurück. Wenn <i>Tage</i> nicht festlegt wurden, werden standardmäßig <i>14 Tage</i> verwendet.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minuten nachdem der Benutzer als inaktiv betrachtet wird",
 	"online-cutoff-help": "Wenn der Benutzer für diese Dauer keine Aktionen ausführt, wird er als inaktiv betrachtet und erhält keine Echtzeit-Updates.",
 	"registration": "Benutzer Registrierung",
diff --git a/public/language/de/error.json b/public/language/de/error.json
index 656056290e..74a38ba1b9 100644
--- a/public/language/de/error.json
+++ b/public/language/de/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Uploads für Gäste wurden deaktiviert.",
     "cors-error": "Das Hochladen von Bildern ist aufgrund von falsch konfigurierten CORS nicht möglich.",
     "upload-ratelimit-reached": "Sie haben zu viele Dateien auf einmal hochgeladen. Bitte versuchen Sie es später noch einmal.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Wählen Sie bitte ein Datum in der Zukunft.",
     "invalid-schedule-date": "Geben Sie bitte ein gültiges Datum und eine Uhrzeit ein.",
     "cant-pin-scheduled": "Geplante Themen können nicht (un)angeheftet werden.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Deine Mitgliedsanfrage wurde bereits eingereicht",
     "group-join-disabled": "Du kannst dieser Gruppe zur Zeit nicht beitreten",
     "group-leave-disabled": "Du kannst diese Gruppe zur Zeit nicht verlassen",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Dieser Beitrag ist bereits gelöscht worden",
     "post-already-restored": "Dieser Beitrag ist bereits wiederhergestellt worden",
     "topic-already-deleted": "Dieses Thema ist bereits gelöscht worden",
@@ -224,5 +227,6 @@
     "api.429": "Sie haben zu viele Anfragen gestellt, bitte versuchen Sie es später erneut",
     "api.500": "Beim Versuch, Ihre Anfrage zu bearbeiten, ist ein unerwarteter Fehler aufgetreten.",
     "api.501": "Die Route, die Sie anrufen möchten, ist noch nicht implementiert. Bitte versuchen Sie es morgen erneut",
-    "api.503": "Die Route, die Sie anrufen möchten, ist derzeit aufgrund einer Serverkonfiguration nicht verfügbar"
+    "api.503": "Die Route, die Sie anrufen möchten, ist derzeit aufgrund einer Serverkonfiguration nicht verfügbar",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/de/flags.json b/public/language/de/flags.json
index 12ab0a85d4..7fb7563221 100644
--- a/public/language/de/flags.json
+++ b/public/language/de/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "Zuerst gemeldet",
 	"no-flags": "Hurra! Keine Meldungen gefunden.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Zugeordneter Benutzer",
 	"update": "Aktualisieren",
 	"updated": "Aktualisiert",
 	"resolved": "Gelöst",
 	"target-purged": "Der Inhalt auf den diese Meldung hingewiesen hat, wurde gelöscht und ist nicht mehr verfügbar.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Tägliche Meldungen",
 	"quick-filters": "Schnell-Filter",
 	"filter-active": "Ein oder mehrere Filter sind in dieser Meldungs-Liste aktiv",
 	"filter-reset": "Filter Entfernen",
 	"filters": "Filter Optionen",
-	"filter-reporterId": "Melder UID",
-	"filter-targetUid": "Gemeldete UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Meldungstyp",
 	"filter-type-all": "Gesamter Inhalt",
 	"filter-type-post": "Beitrag",
 	"filter-type-user": "Benutzer",
 	"filter-state": "Status",
-	"filter-assignee": "UID des Zugewiesenen",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategorie",
 	"filter-quick-mine": "Mir zugewiesen",
 	"filter-cid-all": "Alle Kategorien",
@@ -45,6 +47,7 @@
 
 	"notes": "Meldungsnotizen",
 	"add-note": "Notiz hinzufügen",
+	"edit-note": "Edit Note",
 	"no-notes": "Keine geteilten Notizen",
 	"delete-note-confirm": "Bist du sicher, dass du diese Notiz löschen möchtest?",
 	"delete-flag-confirm": "Möchtest Du diese Markierung wirklich löschen?",
diff --git a/public/language/de/global.json b/public/language/de/global.json
index fa6d78dcdf..493bc5cdcd 100644
--- a/public/language/de/global.json
+++ b/public/language/de/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Schließen",
     "403.title": "Zugriff verweigert",
     "403.message": "Du hast keine Zugriffsberechtigung für diese Seite.",
-    "403.login": "Du solltest Dich <a href='%1/login'>anmelden</a>.",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": " Nicht Gefunden",
-    "404.message": "Diese Seite existiert nicht. Zur <a href='%1/'>Homepage</a> zurückkehren.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Interner Fehler.",
     "500.message": "Ups! Scheint als wäre etwas schief gelaufen!",
     "400.title": "Ungültige Anforderung",
-    "400.message": "Es scheint als wäre dieser Link fehlerhaft, bitte überprüfe ihn und versuche es erneut oder gehe zurück zur <a href='%1/'>Startseite</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registrieren",
     "login": "Anmelden",
     "please_log_in": "Bitte anmelden",
@@ -37,9 +37,13 @@
     "header.notifications": "Benachrichtigungen",
     "header.search": "Suche",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Benachrichtigungen werden geladen",
     "chats.loading": "Nachrichten werden geladen",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Willkommen auf NodeBB, der Diskussionsplattform der Zukunft.",
     "previouspage": "Vorherige Seite",
     "nextpage": "Nächste Seite",
@@ -54,7 +58,8 @@
     "users": "Benutzer",
     "topics": "Themen",
     "posts": "Beiträge",
-    "x-posts": "%1 Beiträge",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Bestbewertet",
     "controversial": "Umstritten",
     "votes": "Stimmen",
@@ -69,6 +74,7 @@
     "reputation": "Ansehen",
     "lastpost": "Letzter Beitrag",
     "firstpost": "Erster Beitrag",
+    "about": "About",
     "read_more": "weiterlesen",
     "more": "Mehr",
     "none": "Nichts",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 schrieb %2",
     "guest_posted_ago": "Gast schrieb %1",
     "last_edited_by": "zuletzt editiert von %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Keine aktuellen Beiträge",
     "norecenttopics": "Keine aktuellen Themen",
     "recentposts": "Aktuelle Beiträge",
     "recentips": "Zuletzt angemeldete IPs",
     "moderator_tools": "Moderatorenwerkzeuge",
+    "status": "Status",
     "online": "Online",
     "away": "Abwesend",
     "dnd": "Nicht stören",
@@ -122,5 +130,7 @@
     "edited": "Bearbeitet",
     "disabled": "Deaktiviert",
     "select": "Auswählen",
-    "user-search-prompt": "Gib hier etwas ein um Benutzer zu finden..."
+    "user-search-prompt": "Gib hier etwas ein um Benutzer zu finden...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/de/groups.json b/public/language/de/groups.json
index 96804ec235..75b7cf487f 100644
--- a/public/language/de/groups.json
+++ b/public/language/de/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Gruppen",
+    "members": "Members",
     "view_group": "Gruppe zeigen",
     "owner": "Gruppenbesitzer",
     "new_group": "Neue Gruppe erstellen",
diff --git a/public/language/de/modules.json b/public/language/de/modules.json
index f5ba9f93d7..d141ec1dd2 100644
--- a/public/language/de/modules.json
+++ b/public/language/de/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chatte mit",
     "chat.placeholder": "Gebe hier eine Chatnachricht ein, ziehe Bilder per Drag & Drop und drücke die Eingabetaste, um sie zu senden",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "Diese Nachrichten sind möglicherweise veraltet, klicke hier um neuere Nachrichten anzuzeigen.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Senden",
     "chat.no_active": "Du hast keine aktiven Chats.",
     "chat.user_typing": "%1 tippt gerade ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Verfassen",
     "composer.show_preview": "Vorschau zeigen",
     "composer.hide_preview": "Vorschau ausblenden",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 sagte in %2:",
     "composer.user_said": "%1 sagte:",
     "composer.discard": "Bist du sicher, dass du diesen Beitrag verwerfen möchtest?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Zeit",
     "composer.cancel-scheduling": "Planung abbrechen",
     "composer.set-schedule-date": "Datum einstellen",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Abbrechen",
     "bootbox.confirm": "Bestätigen",
diff --git a/public/language/de/pages.json b/public/language/de/pages.json
index 2dcaed1670..0ed2786f38 100644
--- a/public/language/de/pages.json
+++ b/public/language/de/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Beobachtete Kategorien von %1",
     "account/bookmarks": "Lesezeichen von %1",
     "account/settings": "Benutzer-Einstellungen",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Von %1 beobachtete Themen",
     "account/ignored": "Ignorierte Themen von %1",
     "account/upvoted": "Von %1 positiv bewertete Beiträge",
diff --git a/public/language/de/post-queue.json b/public/language/de/post-queue.json
index 3c25e7fefb..babd93f44a 100644
--- a/public/language/de/post-queue.json
+++ b/public/language/de/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Beitragswarteschlange",
-	"description": "Es gibt keine Beiträge in der Warteschlange. <br> Um dieses Feature zu aktivieren, gehe auf <a href=\"%1\">Einstellungen &rarr; Posts &rarr; Beitragswarteschlange</a> und aktiviere <strong>Beitragswarteschlange</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Benutzer",
+	"when": "When",
 	"category": "Kategorie",
 	"title": "Titel",
 	"content": "Inhalt",
@@ -19,6 +23,7 @@
 	"notify": "Benachrichtigen",
 	"notify-user": "Benutzer benachrichtigen",
 	"confirm-reject": "Möchtest Du diesen Beitrag ablehnen?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Massenaktionen",
 	"accept-all": "Alle akzeptieren",
 	"accept-selected": "Ausgewählte akzeptieren",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Möchtest Du alle Beiträge ablehnen?",
 	"reject-selected": "Ausgewählte ablehnen",
 	"reject-selected-confirm": "Möchtest Du %1 ausgewählte Beiträge ablehnen?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 Beiträge akzeptiert",
 	"bulk-reject-success": "%1 Beiträge abgelehnt"
 }
\ No newline at end of file
diff --git a/public/language/de/recent.json b/public/language/de/recent.json
index d9fa50b996..7f007472c0 100644
--- a/public/language/de/recent.json
+++ b/public/language/de/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Gesamter Zeitraum",
     "no_recent_topics": "Es gibt keine aktuellen Themen.",
     "no_popular_topics": "Es gibt keine beliebten Themen.",
-    "there-is-a-new-topic": "Es gibt ein neues Thema.",
-    "there-is-a-new-topic-and-a-new-post": "Es gibt ein neues Thema und einen neuen Beitrag.",
-    "there-is-a-new-topic-and-new-posts": "Es gibt ein neues Thema und %1 neue Beiträge.",
-    "there-are-new-topics": "Es gibt %1 neue Themen.",
-    "there-are-new-topics-and-a-new-post": "Es gibt %1 neue Themen und einen neuen Beitrag.",
-    "there-are-new-topics-and-new-posts": "Es gibt %1 neue Themen und %2 neue Beiträge.",
-    "there-is-a-new-post": "Es gibt einen neuen Beitrag.",
-    "there-are-new-posts": "Es gibt %1 neue Beiträge.",
-    "click-here-to-reload": "Zum aktualisieren hier klicken."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/de/register.json b/public/language/de/register.json
index f38e2031ce..eb2f6f335b 100644
--- a/public/language/de/register.json
+++ b/public/language/de/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registrieren",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Registrierungsvorgang abbrechen",
     "help.email": "Deine E-Mail Adresse ist standardmäßig nicht öffentlich sichtbar.",
     "help.username_restrictions": "Einen einmaligen Benutzernamen. %1-%2 Zeichen. Andere Benutzer können dich mit @<span id='yourUsername'>Benutzername</span> anschreiben.",
diff --git a/public/language/de/search.json b/public/language/de/search.json
index 3b9ae90b56..146eadba90 100644
--- a/public/language/de/search.json
+++ b/public/language/de/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 Ergebnis(se) stimmen mit \"%2\" überein, (%3 Sekunden)",
     "no-matches": "Keine Ergebnisse gefunden",
     "advanced-search": "Erweiterte Suche",
     "in": "In",
-    "titles": "Titel",
-    "titles-posts": "Titel und Beiträge",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Übereinstimmende Worte",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Alle",
     "any": "Alles",
     "posted-by": "Geschrieben von",
-    "in-categories": "In Kategorien",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Suche in Unterkategorien",
     "has-tags": "Hat Markierungen",
     "reply-count": "Anzahl Antworten",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Mindestens",
     "at-most": "Höchstens",
     "relevance": "Relevanz",
+    "time": "Time",
     "post-time": "Verfaßt am",
     "votes": "Stimmen",
     "newer-than": "Neuer als",
@@ -28,7 +48,22 @@
     "three-months": "Drei Monate",
     "six-months": "Sechs Monate",
     "one-year": "Ein Jahr",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sortieren nach",
+    "sort": "Sort",
     "last-reply-time": "Zeitpunkt der letzten Antwort",
     "topic-title": "Thementitel",
     "topic-votes": "Themenstimmen",
@@ -39,11 +74,36 @@
     "category": "Kategorie",
     "descending": "In absteigender Reihenfolge",
     "ascending": "In aufsteigender Reihenfolge",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Einstellungen speichern",
     "clear-preferences": "Einstellungen löschen",
     "search-preferences-saved": "Sucheinstellungen gespeichert",
     "search-preferences-cleared": "Sucheinstellungen gelöscht",
     "show-results-as": "Ergebnisse anzeigen als",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Weitere Ergebnisse anzeigen (%1)",
     "search-in-category": "Suche in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/de/social.json b/public/language/de/social.json
new file mode 100644
index 0000000000..01e3cc0a49
--- /dev/null
+++ b/public/language/de/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Mit Twitter anmelden",
+	"sign-up-with-twitter": "Mit Twitter registrieren",
+	"sign-in-with-github": "Mit Github anmelden",
+	"sign-up-with-github": "Mit Github registrieren",
+	"sign-in-with-google": "Mit Google anmelden",
+	"sign-up-with-google": "Mit Google registrieren",
+	"log-in-with-facebook": "Mit Facebook anmelden",
+	"continue-with-facebook": "Mit Facebook fortsetzen"
+}
\ No newline at end of file
diff --git a/public/language/de/tags.json b/public/language/de/tags.json
index b4f3f56d71..7a2e8a43c8 100644
--- a/public/language/de/tags.json
+++ b/public/language/de/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Es gibt keine Themen mit diesem Schlagwort.",
+    "no-tags-found": "No tags found",
     "tags": "Schlagworte",
     "enter_tags_here": "Hier Schlagworte eingeben. Jeweils %1 bis %2 Zeichen.",
     "enter_tags_here_short": "Schlagworte eingeben...",
diff --git a/public/language/de/topic.json b/public/language/de/topic.json
index 3702f62317..f56f2c66bd 100644
--- a/public/language/de/topic.json
+++ b/public/language/de/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "IP-Adresse Kopieren",
     "ban-ip": "IP-Adresse bannen",
     "view-history": "Verlauf bearbeiten",
-    "locked-by": "Gesperrt von",
-    "unlocked-by": "Entsperrt von",
-    "pinned-by": "Angeheftet von",
-    "unpinned-by": "Losgelöst von",
-    "deleted-by": "Gelöscht von",
-    "restored-by": "Wiederhergestellt von",
-    "moved-from-by": "Von %1 verschoben durch",
-    "queued-by": "Beitrag zur Genehmigung in die Warteschlange eingereiht &rarr;",
-    "backlink": "Referenziert von",
-    "forked-by": "Geteilt von",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Klicke hier, um zum letzten gelesenen Beitrag des Themas zurückzukehren.",
     "flag-post": "Diesen Post melden",
     "flag-user": "Diesen Benutzer melden",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Thema endgültig löschen",
     "thread_tools.purge_confirm": "Bist du sicher, dass du dieses Thema endgültig löschen möchtest?",
     "thread_tools.merge_topics": "Themen vereinen",
-    "thread_tools.merge": "Vereinen",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "Dieses Thema wird in Kürze nach \"%1\" verschoben. Klicken Sie hier, um den Vorgang rückgängig zu machen.",
     "topic_move_multiple_success": "Diese Themen werden in Kürze nach \"%1\" verschoben. Klicken Sie hier, um den Vorgang rückgängig zu machen.",
     "topic_move_all_success": "Alle Themen werden in Kürze nach \"%1\" verschoben. Klicken Sie hier, um den Vorgang rückgängig zu machen.",
@@ -121,7 +135,7 @@
     "post_moved": "Beitrag wurde verschoben!",
     "fork_topic": "Thema aufspalten",
     "enter-new-topic-title": "Neuen Thementitel eingeben",
-    "fork_topic_instruction": "Klicke auf die Beiträge, die abgespalten werden sollen",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Keine Beiträge ausgewählt!",
     "no-posts-selected": "Keine Beiträge ausgewählt!",
     "x-posts-selected": "%1 Beitrag(Beiträge) ausgewählt",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Neuer Titel für das Thema",
     "topic-id": "Themen-ID",
     "move_posts_instruction": "Klicken Sie auf die Beiträge, die Sie verschieben möchten, und geben Sie dann eine Themen-ID ein oder gehen Sie zum Zielthema",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Klicke auf die Beiträge, die einem anderen Benutzer zugeordnet werden sollen",
     "composer.title_placeholder": "Hier den Titel des Themas eingeben...",
     "composer.handle_placeholder": "Gib deinen Namen/Nick hier ein",
+    "composer.hide": "Hide",
     "composer.discard": "Verwerfen",
     "composer.submit": "Absenden",
     "composer.additional-options": "Zusätzliche Optionen",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Zeitplan",
     "composer.replying_to": "Antworte auf %1",
     "composer.new_topic": "Neues Thema",
@@ -184,5 +201,7 @@
     "last-post": "Letzter Beitrag",
     "go-to-my-next-post": "Zu meinem nächsten Beitrag gehen",
     "no-more-next-post": "Du hast keine weiteren Beiträge zu diesem Thema",
-    "post-quick-reply": "Beitrag schnell Beantworten"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/de/user.json b/public/language/de/user.json
index ae3f62dd99..eec5b5f916 100644
--- a/public/language/de/user.json
+++ b/public/language/de/user.json
@@ -43,6 +43,7 @@
     "followers": "Follower",
     "following": "Folge ich",
     "blocks": "Blockiert",
+    "blocked-users": "Blocked users",
     "block_toggle": "Ent-/Blocken",
     "block_user": "User blockieren",
     "unblock_user": "User entblocken",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Neues Bild hochladen",
     "upload_new_picture_from_url": "Neues Bild von URL hochladen",
     "current_password": "Aktuelles Passwort",
+    "new_password": "New Password",
     "change_password": "Passwort ändern",
     "change_password_error": "Ungültiges Passwort!",
     "change_password_error_wrong_current": "Ihr derzeitiges Passwort ist ungültig!",
@@ -115,6 +117,8 @@
     "paginate_description": "Themen und Beiträge in Seiten aufteilen, anstatt unendlich zu scrollen",
     "topics_per_page": "Themen pro Seite",
     "posts_per_page": "Beiträge pro Seite",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximal %1",
     "acp_language": "Sprache der Admin Seiten",
     "notifications": "Benachrichtigungen",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderationsnotiz gespeichert",
     "info.moderation-note.add": "Notitz hinzufügen",
     "sessions.description": "Auf dieser Seite kannst du alle aktiven Sitzungen in diesem Forum einsehen und bei Bedarf widerrufen. Du kannst deine eigene Sitzung widerrufen, indem du dich von deinem Konto abmeldest.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Deine Rechte &amp; Zustimmungen",
     "consent.lead": "Dieses Community-Forum sammelt und verarbeitet deine persönlichen Daten.",
     "consent.intro": "Wir verwenden diese Informationen ausschließlich, um Deine Erfahrungen in dieser Community zu personalisieren und Deine Beiträge dem Benutzerkonto zuzuordnen.<br /><br />Wir bewahren diese Informationen für die Dauer Deines Benutzerkontos auf. Du kannst die Einwilligung jederzeit widerrufen, indem Du Dein Konto löschst.<br /><br />Wenn Du Fragen oder Bedenken hast, empfehlen wir, dich an das Adminteam dieses Forums zu wenden.",
diff --git a/public/language/de/users.json b/public/language/de/users.json
index 974094b8fc..42501032b7 100644
--- a/public/language/de/users.json
+++ b/public/language/de/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Neuste Benutzer",
     "top_posters": "Meiste Beiträge",
     "most_reputation": "Höchstes Ansehen",
     "most_flags": "Meiste Meldungen",
     "search": "Suchen",
     "enter_username": "Benutzer durchsuchen",
-    "search-user-for-chat": "Einen Benutzer suchen, um den Chat zu starten",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Mehr laden",
     "users-found-search-took": "%1 Benutzer gefunden! Die Suche dauerte %2 s.",
     "filter-by": "Filtern nach",
diff --git a/public/language/el/admin/admin.json b/public/language/el/admin/admin.json
index 7ad3089636..4e7f7deb8f 100644
--- a/public/language/el/admin/admin.json
+++ b/public/language/el/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Πίνακας Ελέγχου",
 	"settings-header-contents": "Περιεχόμενα",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/el/admin/appearance/customise.json b/public/language/el/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/el/admin/appearance/customise.json
+++ b/public/language/el/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/el/admin/dashboard.json b/public/language/el/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/el/admin/dashboard.json
+++ b/public/language/el/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/el/admin/extend/widgets.json b/public/language/el/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/el/admin/extend/widgets.json
+++ b/public/language/el/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/el/admin/manage/groups.json b/public/language/el/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/el/admin/manage/groups.json
+++ b/public/language/el/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/el/admin/manage/privileges.json b/public/language/el/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/el/admin/manage/privileges.json
+++ b/public/language/el/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/el/admin/settings/api.json b/public/language/el/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/el/admin/settings/api.json
+++ b/public/language/el/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/el/admin/settings/navigation.json b/public/language/el/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/el/admin/settings/navigation.json
+++ b/public/language/el/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/el/admin/settings/user.json b/public/language/el/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/el/admin/settings/user.json
+++ b/public/language/el/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/el/error.json b/public/language/el/error.json
index c6c3f83e0d..9c13bc5291 100644
--- a/public/language/el/error.json
+++ b/public/language/el/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Guest uploading has been disabled",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Your membership request has already been submitted",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "This post has already been deleted",
     "post-already-restored": "This post has already been restored",
     "topic-already-deleted": "This topic has already been deleted",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/el/flags.json b/public/language/el/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/el/flags.json
+++ b/public/language/el/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/el/global.json b/public/language/el/global.json
index 5d5797c1bf..a030d136a0 100644
--- a/public/language/el/global.json
+++ b/public/language/el/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Κλείσιμο",
     "403.title": "Δεν επιτρέπεται η πρόσβαση",
     "403.message": "Φαίνεται πως βρέθηκες σε κάποια σελίδα στην οποία δεν έχεις πρόσβαση.",
-    "403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Δεν βρέθηκε",
-    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Εσωτερικό Σφάλμα.",
     "500.message": "Ουπς! Φαίνεται πως κάτι πήγε στραβά!",
     "400.title": "Bad Request.",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Εγγραφή",
     "login": "Σύνδεση",
     "please_log_in": "Παρακαλώ Συνδέσου",
@@ -37,9 +37,13 @@
     "header.notifications": "Ειδοποιήσεις",
     "header.search": "Αναζήτηση",
     "header.profile": "Προφίλ",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Φόρτωση Ειδοποιήσεων",
     "chats.loading": "Φόρτωση Συνομιλιών",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Καλωσόρισες στο NodeBB, την πλατφόρμα συζητήσεων του μέλλοντος.",
     "previouspage": "Προηγούμενη Σελίδα",
     "nextpage": "Επόμενη Σελίδα",
@@ -54,7 +58,8 @@
     "users": "Χρήστες",
     "topics": "Θέματα",
     "posts": "Δημοσιεύσεις",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Best",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Φήμη",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "διάβασε περισσότερα",
     "more": "Περισσότερα",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "Ο/Η %1 δημοσίευσε πριν από %2",
     "guest_posted_ago": "Επισκέπτης δημοσίευσε πριν από %1",
     "last_edited_by": "last edited by %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Δεν υπάρχουν πρόσφατες δημοσιεύσεις",
     "norecenttopics": "Δεν υπάρχουν πρόσφατα θέματα",
     "recentposts": "Πρόσφατες Δημοσιεύσεις",
     "recentips": "Πρόσφατη IP Σύνδεσης",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Συνδεδεμένος",
     "away": "Απών/ούσα",
     "dnd": "Μην ενοχλείτε",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/el/groups.json b/public/language/el/groups.json
index 8e6431a0f9..e374554715 100644
--- a/public/language/el/groups.json
+++ b/public/language/el/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Ομάδες",
+    "members": "Members",
     "view_group": "Προβολή Ομάδας",
     "owner": "Κάτοχος Ομάδας",
     "new_group": "Δημιουργία Νέας Ομάδας",
diff --git a/public/language/el/modules.json b/public/language/el/modules.json
index 1e58a4e2ef..c66ec7ed21 100644
--- a/public/language/el/modules.json
+++ b/public/language/el/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Send",
     "chat.no_active": "You have no active chats.",
     "chat.user_typing": "%1 is typing ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Compose",
     "composer.show_preview": "Show Preview",
     "composer.hide_preview": "Hide Preview",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 said in %2:",
     "composer.user_said": "%1 said:",
     "composer.discard": "Are you sure you wish to discard this post?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancel",
     "bootbox.confirm": "Confirm",
diff --git a/public/language/el/pages.json b/public/language/el/pages.json
index 1f878dc456..b1c4ae9de4 100644
--- a/public/language/el/pages.json
+++ b/public/language/el/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "Επιλογές Χρήστη",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Topics watched by %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Posts upvoted by %1",
diff --git a/public/language/el/post-queue.json b/public/language/el/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/el/post-queue.json
+++ b/public/language/el/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/el/recent.json b/public/language/el/recent.json
index 85f948e9c8..32321d5110 100644
--- a/public/language/el/recent.json
+++ b/public/language/el/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Όλο το Ιστορικό",
     "no_recent_topics": "Δεν υπάρχουν πρόσφατα θέματα.",
     "no_popular_topics": "Δεν υπάρχουν δημοφιλή θέματα.",
-    "there-is-a-new-topic": "Υπάρχει ένα νέο θέμα.",
-    "there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
-    "there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
-    "there-are-new-topics": "There are %1 new topics.",
-    "there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
-    "there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
-    "there-is-a-new-post": "There is a new post.",
-    "there-are-new-posts": "There are %1 new posts.",
-    "click-here-to-reload": "Click here to reload."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/el/register.json b/public/language/el/register.json
index 31f5bff688..47b1404f9d 100644
--- a/public/language/el/register.json
+++ b/public/language/el/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Εγγραφή",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "Από προεπιλογή, το email σου θα είναι κρυμμένο από την κοινή θέα.",
     "help.username_restrictions": "Ένα μοναδικό όνομα χρήστη μεταξύ %1 και %2 χαρακτήρων. Άλλα άτομα μπορούν να σε αναφέρουν με το @<span id='yourUsername'>username</span> σου.",
diff --git a/public/language/el/search.json b/public/language/el/search.json
index a2be38263b..01579af7d0 100644
--- a/public/language/el/search.json
+++ b/public/language/el/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 αποτελεσμα(τα) για \"%2\", (%3 δευτερόλεπτα)",
     "no-matches": "No matches found",
     "advanced-search": "Advanced Search",
     "in": "In",
-    "titles": "Titles",
-    "titles-posts": "Titles and Posts",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Posted by",
-    "in-categories": "In Categories",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Search child categories",
     "has-tags": "Has tags",
     "reply-count": "Αριθμός Απαντήσεων",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Τουλάχιστον",
     "at-most": "At most",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Post time",
     "votes": "Votes",
     "newer-than": "Νεότερο από",
@@ -28,7 +48,22 @@
     "three-months": "Τρεις μήνες",
     "six-months": "Six months",
     "one-year": "Ένας χρόνος",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sort by",
+    "sort": "Sort",
     "last-reply-time": "Last reply time",
     "topic-title": "Topic title",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Κατηγορία",
     "descending": "In descending order",
     "ascending": "In ascending order",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Save preferences",
     "clear-preferences": "Clear preferences",
     "search-preferences-saved": "Search preferences saved",
     "search-preferences-cleared": "Search preferences cleared",
     "show-results-as": "Show results as",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/el/social.json b/public/language/el/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/el/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/el/tags.json b/public/language/el/tags.json
index 045d4ca62d..36f908f894 100644
--- a/public/language/el/tags.json
+++ b/public/language/el/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Δεν υπάρχουν θέματα με αυτή την ετικέτα.",
+    "no-tags-found": "No tags found",
     "tags": "Ετικέτες",
     "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
     "enter_tags_here_short": "Εισαγωγή ετικετών...",
diff --git a/public/language/el/topic.json b/public/language/el/topic.json
index 1669d43478..9a63f18f8a 100644
--- a/public/language/el/topic.json
+++ b/public/language/el/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Click here to return to the last read post in this thread.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Εκκαθάριση Θέματος",
     "thread_tools.purge_confirm": "Είσαι σίγουρος/η πως θέλεις να εκκαθαρίσεις αυτό το θέμα;",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Η δημοσίευση μετακινήθηκε!",
     "fork_topic": "Διαχωρισμός Θέματος",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Κάνε κλικ στις δημοσιεύσεις που θέλεις να διαχωρίσεις",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Δεν έχουν επιλεχθεί δημοσιεύσεις!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Εισαγωγή του τίτλου του θέματος εδώ...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Πέταγμα",
     "composer.submit": "Υποβολή",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Απάντηση στο %1",
     "composer.new_topic": "Νέο Θέμα",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/el/user.json b/public/language/el/user.json
index 1294042aac..dfee994ad3 100644
--- a/public/language/el/user.json
+++ b/public/language/el/user.json
@@ -43,6 +43,7 @@
     "followers": "Ακόλουθοι",
     "following": "Ακολουθά",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Ανέβασμα Νέας Φωτογραφίας",
     "upload_new_picture_from_url": "Ανέβασμα Νέας Φωτογραφίας από URL",
     "current_password": "Τωρινός Κωδικός",
+    "new_password": "New Password",
     "change_password": "Αλλαγή Κωδικού",
     "change_password_error": "Άκυρος Κωδικός!",
     "change_password_error_wrong_current": "Ο τωρινός σου κωδικός δεν είναι σωστός!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paginate topics and posts instead of using infinite scroll",
     "topics_per_page": "Θέματα ανά σελίδα",
     "posts_per_page": "Δημοσιεύσεις ανά σελίδα",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/el/users.json b/public/language/el/users.json
index cef10bde03..5b92745352 100644
--- a/public/language/el/users.json
+++ b/public/language/el/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Πρόσφατοι Χρήστες",
     "top_posters": "Top Δημοσιεύοντες",
     "most_reputation": "Υψηλότερη Φήμη",
     "most_flags": "Most Flags",
     "search": "Αναζήτηση",
     "enter_username": "Γράψε ένα όνομα χρήστη προς αναζήτηση",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Φόρτωση περισσότερων",
     "users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
     "filter-by": "Filter By",
diff --git a/public/language/en-GB/admin/admin.json b/public/language/en-GB/admin/admin.json
index 39edffb66f..dcf9696ca2 100644
--- a/public/language/en-GB/admin/admin.json
+++ b/public/language/en-GB/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Control Panel",
 	"settings-header-contents": "Contents",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/en-GB/admin/appearance/customise.json b/public/language/en-GB/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/en-GB/admin/appearance/customise.json
+++ b/public/language/en-GB/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/en-GB/admin/dashboard.json b/public/language/en-GB/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/en-GB/admin/dashboard.json
+++ b/public/language/en-GB/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/en-GB/admin/extend/widgets.json b/public/language/en-GB/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/en-GB/admin/extend/widgets.json
+++ b/public/language/en-GB/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/en-GB/admin/manage/groups.json b/public/language/en-GB/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/en-GB/admin/manage/groups.json
+++ b/public/language/en-GB/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/en-GB/admin/manage/privileges.json b/public/language/en-GB/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/en-GB/admin/manage/privileges.json
+++ b/public/language/en-GB/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/en-GB/admin/settings/api.json b/public/language/en-GB/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/en-GB/admin/settings/api.json
+++ b/public/language/en-GB/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/en-GB/admin/settings/navigation.json b/public/language/en-GB/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/en-GB/admin/settings/navigation.json
+++ b/public/language/en-GB/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/en-GB/admin/settings/user.json b/public/language/en-GB/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/en-GB/admin/settings/user.json
+++ b/public/language/en-GB/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/en-GB/error.json b/public/language/en-GB/error.json
index cd79886c34..eb7dfd4b33 100644
--- a/public/language/en-GB/error.json
+++ b/public/language/en-GB/error.json
@@ -115,6 +115,7 @@
 	"guest-upload-disabled": "Guest uploading has been disabled",
 	"cors-error": "Unable to upload image due to misconfigured CORS",
 	"upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+	"upload-error-fallback": "Unable to upload image — %1",
 
   	"scheduling-to-past": "Please select a date in the future.",
   	"invalid-schedule-date": "Please enter a valid date and time.",
@@ -154,6 +155,8 @@
 	"group-already-requested": "Your membership request has already been submitted",
 	"group-join-disabled": "You are not able to join this group at this time",
 	"group-leave-disabled": "You are not able to leave this group at this time",
+	"group-user-not-pending": "User does not have a pending request to join this group.",
+	"gorup-user-not-invited": "User has not been invited to join this group.",
 
 	"post-already-deleted": "This post has already been deleted",
 	"post-already-restored": "This post has already been restored",
@@ -263,5 +266,6 @@
 	"api.429": "You have made too many requests, please try again later",
 	"api.500": "An unexpected error was encountered while attempting to service your request.",
 	"api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-	"api.503": "The route you are trying to call is not currently available due to a server configuration"
+	"api.503": "The route you are trying to call is not currently available due to a server configuration",
+	"api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
diff --git a/public/language/en-GB/flags.json b/public/language/en-GB/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/en-GB/flags.json
+++ b/public/language/en-GB/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/en-GB/global.json b/public/language/en-GB/global.json
index f1ee75200e..aa448cc4e3 100644
--- a/public/language/en-GB/global.json
+++ b/public/language/en-GB/global.json
@@ -4,13 +4,13 @@
 	"buttons.close": "Close",
 	"403.title": "Access Denied",
 	"403.message": "You seem to have stumbled upon a page that you do not have access to.",
-	"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
+	"403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
 	"404.title": "Not Found",
-	"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
+	"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
 	"500.title": "Internal Error.",
 	"500.message": "Oops! Looks like something went wrong!",
 	"400.title": "Bad Request.",
-	"400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+	"400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
 
 	"register": "Register",
 	"login": "Login",
@@ -43,10 +43,14 @@
 	"header.notifications": "Notifications",
 	"header.search": "Search",
 	"header.profile": "Profile",
+	"header.account": "Account",
 	"header.navigation": "Navigation",
+	"header.manage": "Manage",
+	"header.drafts": "Drafts",
 
 	"notifications.loading": "Loading Notifications",
 	"chats.loading": "Loading Chats",
+	"drafts.loading": "Loading Drafts",
 
 	"motd.welcome": "Welcome to NodeBB, the discussion platform of the future.",
 
@@ -68,7 +72,8 @@
 	"users": "Users",
 	"topics": "Topics",
 	"posts": "Posts",
-	"x-posts": "%1 posts",
+	"x-posts": "<span class=\"formatted-number\">%1</span> posts",
+	"x-topics": "<span class=\"formatted-number\">%1</span> topics",
 	"best": "Best",
 	"controversial": "Controversial",
 	"votes": "Votes",
@@ -83,6 +88,7 @@
 	"reputation": "Reputation",
 	"lastpost": "Last post",
 	"firstpost": "First post",
+	"about": "About",
 
 	"read_more": "read more",
 	"more": "More",
@@ -100,6 +106,7 @@
 	"user_posted_ago": "%1 posted %2",
 	"guest_posted_ago": "Guest posted %1",
 	"last_edited_by": "last edited by %1",
+	"edited-timestamp": "Edited %1",
 
 	"norecentposts": "No Recent Posts",
 	"norecenttopics": "No Recent Topics",
@@ -108,6 +115,7 @@
 
 	"moderator_tools": "Moderator Tools",
 
+	"status": "Status",
 	"online": "Online",
 	"away": "Away",
 	"dnd": "Do not disturb",
@@ -151,5 +159,7 @@
 	"disabled": "Disabled",
 	"select": "Select",
 
-	"user-search-prompt": "Type something here to find users..."
+	"user-search-prompt": "Type something here to find users...",
+	"hidden": "Hidden",
+	"sort": "Sort"
 }
diff --git a/public/language/en-GB/groups.json b/public/language/en-GB/groups.json
index 7e6b5ca759..0ae14255f5 100644
--- a/public/language/en-GB/groups.json
+++ b/public/language/en-GB/groups.json
@@ -1,5 +1,6 @@
 {
 	"groups": "Groups",
+	"members": "Members",
 	"view_group": "View Group",
 	"owner": "Group Owner",
 	"new_group": "Create New Group",
diff --git a/public/language/en-GB/modules.json b/public/language/en-GB/modules.json
index 7abfb54d39..0ed339723a 100644
--- a/public/language/en-GB/modules.json
+++ b/public/language/en-GB/modules.json
@@ -1,7 +1,11 @@
 {
 	"chat.chatting_with": "Chat with",
 	"chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+	"chat.placeholder.mobile": "Type chat message here",
 	"chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+	"chat.usernames-and-x-others": "%1 & %2 others",
+	"chat.chat-with-usernames": "Chat with %1",
+	"chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
 	"chat.send": "Send",
 	"chat.no_active": "You have no active chats.",
 	"chat.user_typing": "%1 is typing ...",
@@ -44,6 +48,7 @@
 	"composer.compose": "Compose",
 	"composer.show_preview": "Show Preview",
 	"composer.hide_preview": "Hide Preview",
+	"composer.help": "Help",
 	"composer.user_said_in": "%1 said in %2:",
 	"composer.user_said": "%1 said:",
 	"composer.discard": "Are you sure you wish to discard this post?",
@@ -67,7 +72,9 @@
 	"composer.schedule-time": "Time",
 	"composer.cancel-scheduling": "Cancel Scheduling",
 	"composer.set-schedule-date": "Set Date",
-
+	"composer.discard-all-drafts": "Discard all drafts",
+	"composer.no-drafts": "You have no drafts",
+	"composer.discard-draft-confirm": "Do you want to discard this draft?",
 
 	"bootbox.ok": "OK",
 	"bootbox.cancel": "Cancel",
diff --git a/public/language/en-GB/pages.json b/public/language/en-GB/pages.json
index 6586bf499c..060156a76b 100644
--- a/public/language/en-GB/pages.json
+++ b/public/language/en-GB/pages.json
@@ -55,6 +55,7 @@
 	"account/watched_categories": "%1's Watched Categories",
 	"account/bookmarks": "%1's Bookmarked Posts",
 	"account/settings": "User Settings",
+	"account/settings-of": "Changing settings of %1",
 	"account/watched": "Topics watched by %1",
 	"account/ignored": "Topics ignored by %1",
 	"account/upvoted": "Posts upvoted by %1",
diff --git a/public/language/en-GB/post-queue.json b/public/language/en-GB/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/en-GB/post-queue.json
+++ b/public/language/en-GB/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/en-GB/recent.json b/public/language/en-GB/recent.json
index 835dfce296..c7642ab40b 100644
--- a/public/language/en-GB/recent.json
+++ b/public/language/en-GB/recent.json
@@ -7,18 +7,5 @@
 	"alltime": "All Time",
 	"no_recent_topics": "There are no recent topics.",
 	"no_popular_topics": "There are no popular topics.",
-
-	"there-is-a-new-topic": "There is a new topic.",
-	"there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
-	"there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
-
-	"there-are-new-topics": "There are %1 new topics.",
-	"there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
-	"there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
-
-	"there-is-a-new-post": "There is a new post.",
-	"there-are-new-posts": "There are %1 new posts.",
-
-	"click-here-to-reload": "Click here to reload."
-
+	"load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/en-GB/register.json b/public/language/en-GB/register.json
index 58cba536f0..3faeaf408b 100644
--- a/public/language/en-GB/register.json
+++ b/public/language/en-GB/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Register",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "By default, your email will be hidden from the public.",
     "help.username_restrictions": "A unique username between %1 and %2 characters. Others can mention you with @<span id='yourUsername'>username</span>.",
diff --git a/public/language/en-GB/search.json b/public/language/en-GB/search.json
index ab710be4d1..b0cd49ef5d 100644
--- a/public/language/en-GB/search.json
+++ b/public/language/en-GB/search.json
@@ -1,21 +1,41 @@
 {
+	"type-to-search": "Type to search",
 	"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
 	"no-matches": "No matches found",
 	"advanced-search": "Advanced Search",
 	"in": "In",
-	"titles": "Titles",
-	"titles-posts": "Titles and Posts",
+	"in-titles": "In titles",
+	"in-titles-posts": "In titles and posts",
+	"in-posts": "In posts",
+	"in-categories": "In categories",
+	"in-users": "In users",
+	"in-tags": "In tags",
+	"categories": "Categories",
+	"all-categories": "All categories",
+	"categories-x": "Categories: %1",
+	"categories-watched-categories": "Categories: Watched categories",
+	"type-a-category": "Type a category",
+	"tags": "Tags",
+	"tags-x": "Tags: %1",
+	"type-a-tag": "Type a tag",
 	"match-words": "Match words",
+	"match-all-words": "Match all words",
+	"match-any-word": "Match any word",
 	"all": "All",
 	"any": "Any",
 	"posted-by": "Posted by",
-	"in-categories": "In Categories",
+	"posted-by-usernames": "Posted by: %1",
+	"type-a-username": "Type a username",
 	"search-child-categories": "Search child categories",
 	"has-tags": "Has tags",
 	"reply-count": "Reply Count",
+	"replies": "Replies",
+	"replies-atleast-count": "Replies: At least %1",
+	"replies-atmost-count": "Replies: At most %1",
 	"at-least": "At least",
 	"at-most": "At most",
 	"relevance": "Relevance",
+	"time": "Time",
 	"post-time": "Post time",
 	"votes": "Votes",
 	"newer-than": "Newer than",
@@ -28,7 +48,22 @@
 	"three-months": "Three months",
 	"six-months": "Six months",
 	"one-year": "One year",
+	"time-newer-than-86400": "Time: Newer than yesterday",
+	"time-older-than-86400": "Time: Older than yesterday",
+	"time-newer-than-604800": "Time: Newer than one week",
+	"time-older-than-604800": "Time: Older than one week",
+	"time-newer-than-1209600": "Time: Newer than two weeks",
+	"time-older-than-1209600": "Time: Older than two weeks",
+	"time-newer-than-2592000": "Time: Newer than one month",
+	"time-older-than-2592000": "Time: Older than one month",
+	"time-newer-than-7776000": "Time: Newer than three months",
+	"time-older-than-7776000": "Time: Older than three months",
+	"time-newer-than-15552000": "Time: Newer than six months",
+	"time-older-than-15552000": "Time: Older than six months",
+	"time-newer-than-31104000": "Time: Newer than one year",
+	"time-older-than-31104000": "Time: Older than one year",
 	"sort-by": "Sort by",
+	"sort": "Sort",
 	"last-reply-time": "Last reply time",
 	"topic-title": "Topic title",
 	"topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
 	"category": "Category",
 	"descending": "In descending order",
 	"ascending": "In ascending order",
+	"sort-by-relevance-desc": "Sort by: Relevance in descending order",
+	"sort-by-relevance-asc": "Sort by: Relevance in ascending order ",
+	"sort-by-timestamp-desc": "Sort by: Post time in descending order",
+	"sort-by-timestamp-asc": "Sort by: Post time in ascending order ",
+	"sort-by-votes-desc": "Sort by: Votes in descending order",
+	"sort-by-votes-asc": "Sort by: Votes in ascending order ",
+	"sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+	"sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order ",
+	"sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+	"sort-by-topic.title-asc": "Sort by: Topic title in ascending order ",
+	"sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+	"sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order ",
+	"sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+	"sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order ",
+	"sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+	"sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order ",
+	"sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+	"sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order ",
+	"sort-by-user.username-desc": "Sort by: Username in descending order",
+	"sort-by-user.username-asc": "Sort by: Username in ascending order ",
+	"sort-by-category.name-desc": "Sort by: Category in descending order",
+	"sort-by-category.name-asc": "Sort by: Category in ascending order ",
+	"save": "Save",
 	"save-preferences": "Save preferences",
 	"clear-preferences": "Clear preferences",
 	"search-preferences-saved": "Search preferences saved",
 	"search-preferences-cleared": "Search preferences cleared",
 	"show-results-as": "Show results as",
+	"show-results-as-topics": "Show results as topics",
+	"show-results-as-posts": "Show results as posts",
 	"see-more-results": "See more results (%1)",
 	"search-in-category": "Search in \"%1\""
 }
diff --git a/public/language/en-GB/social.json b/public/language/en-GB/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/en-GB/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/en-GB/tags.json b/public/language/en-GB/tags.json
index 48516af490..f126a70e6b 100644
--- a/public/language/en-GB/tags.json
+++ b/public/language/en-GB/tags.json
@@ -1,5 +1,7 @@
 {
+	"all-tags": "All tags",
 	"no_tag_topics": "There are no topics with this tag.",
+	"no-tags-found": "No tags found",
 	"tags": "Tags",
 	"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
 	"enter_tags_here_short": "Enter tags...",
diff --git a/public/language/en-GB/topic.json b/public/language/en-GB/topic.json
index 7d0a2aae2d..a3191cfdfd 100644
--- a/public/language/en-GB/topic.json
+++ b/public/language/en-GB/topic.json
@@ -43,16 +43,31 @@
 	"ban-ip": "Ban IP",
 	"view-history": "Edit History",
 
-	"locked-by": "Locked by",
-	"unlocked-by": "Unlocked by",
-	"pinned-by": "Pinned by",
-	"unpinned-by": "Unpinned by",
-	"deleted-by": "Deleted by",
-	"restored-by": "Restored by",
-	"moved-from-by": "Moved from %1 by",
-	"queued-by": "Post queued for approval &rarr;",
-	"backlink": "Referenced by",
-	"forked-by": "Forked by",
+	"wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+	"wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+	"replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+	"replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+
+	"user-locked-topic-ago": "%1 locked this topic %2",
+	"user-locked-topic-on": "%1 locked this topic on %2",
+	"user-unlocked-topic-ago": "%1 unlocked this topic %2",
+	"user-unlocked-topic-on": "%1 unlocked this topic on %2",
+	"user-pinned-topic-ago": "%1 pinned this topic %2",
+	"user-pinned-topic-on": "%1 pinned this topic on %2",
+	"user-unpinned-topic-ago": "%1 unpinned this topic %2",
+	"user-unpinned-topic-on": "%1 unpinned this topic on %2",
+	"user-deleted-topic-ago": "%1 deleted this topic %2",
+	"user-deleted-topic-on": "%1 deleted this topic on %2",
+	"user-restored-topic-ago": "%1 restored this topic %2",
+	"user-restored-topic-on": "%1 restored this topic on %2",
+	"user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+	"user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+	"user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+	"user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+	"user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+	"user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+	"user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+	"user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
 
 	"bookmark_instructions" : "Click here to return to the last read post in this thread.",
 
@@ -107,7 +122,7 @@
 	"thread_tools.purge": "Purge Topic",
 	"thread_tools.purge_confirm" : "Are you sure you want to purge this topic?",
 	"thread_tools.merge_topics": "Merge Topics",
-	"thread_tools.merge": "Merge",
+	"thread_tools.merge": "Merge Topic",
 
 	"topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
 	"topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -140,7 +155,7 @@
 	"post_moved": "Post moved!",
 	"fork_topic": "Fork Topic",
 	"enter-new-topic-title": "Enter new topic title",
-	"fork_topic_instruction": "Click the posts you want to fork",
+	"fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
 	"fork_no_pids": "No posts selected!",
 	"no-posts-selected": "No posts selected!",
 	"x-posts-selected": "%1 post(s) selected",
@@ -155,13 +170,16 @@
 	"merge-new-title-for-topic": "New title for topic",
 	"topic-id": "Topic ID",
 	"move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+	"move_topic_instruction": "Select the target category and then click move",
 	"change_owner_instruction": "Click the posts you want to assign to another user",
 
 	"composer.title_placeholder": "Enter your topic title here...",
 	"composer.handle_placeholder": "Enter your name/handle here",
+	"composer.hide": "Hide",
 	"composer.discard": "Discard",
 	"composer.submit": "Submit",
 	"composer.additional-options": "Additional Options",
+	"composer.post-later": "Post Later",
 	"composer.schedule": "Schedule",
 	"composer.replying_to": "Replying to %1",
 	"composer.new_topic": "New Topic",
@@ -211,5 +229,8 @@
 	"last-post": "Last post",
 	"go-to-my-next-post": "Go to my next post",
 	"no-more-next-post": "You don't have more posts in this topic",
-	"post-quick-reply": "Post quick reply"
+	"post-quick-reply": "Quick reply",
+
+	"navigator.index": "Post %1 of %2",
+	"navigator.unread": "%1 unread"
 }
diff --git a/public/language/en-GB/user.json b/public/language/en-GB/user.json
index c5bebf4b37..31df96fb8c 100644
--- a/public/language/en-GB/user.json
+++ b/public/language/en-GB/user.json
@@ -45,6 +45,7 @@
 	"followers": "Followers",
 	"following": "Following",
 	"blocks": "Blocks",
+	"blocked-users": "Blocked users",
 	"block_toggle": "Toggle Block",
 	"block_user": "Block User",
 	"unblock_user": "Unblock User",
@@ -71,6 +72,7 @@
 	"upload_new_picture": "Upload New Picture",
 	"upload_new_picture_from_url": "Upload New Picture From URL",
 	"current_password": "Current Password",
+	"new_password": "New Password",
 	"change_password": "Change Password",
 	"change_password_error": "Invalid Password!",
 	"change_password_error_wrong_current": "Your current password is not correct!",
@@ -124,6 +126,8 @@
 	"paginate_description" : "Paginate topics and posts instead of using infinite scroll",
 	"topics_per_page": "Topics per Page",
 	"posts_per_page": "Posts per Page",
+	"category-topic-sort": "Category topic sort",
+	"topic-post-sort": "Topic post sort",
 	"max_items_per_page": "Maximum %1",
 	"acp_language": "Admin Page Language",
 	"notifications": "Notifications",
@@ -186,6 +190,8 @@
 	"info.moderation-note.add": "Add note",
 
 	"sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+	"revoke-session": "Revoke Session",
+	"browser-version-on-platform": "%1 %2 on %3",
 
 	"consent.title": "Your Rights &amp; Consent",
 	"consent.lead": "This community forum collects and processes your personal information.",
diff --git a/public/language/en-GB/users.json b/public/language/en-GB/users.json
index 0da5fb8e49..bd3e1682ee 100644
--- a/public/language/en-GB/users.json
+++ b/public/language/en-GB/users.json
@@ -1,11 +1,12 @@
 {
+	"all-users": "All Users",
 	"latest_users": "Latest Users",
 	"top_posters": "Top Posters",
 	"most_reputation": "Most Reputation",
 	"most_flags": "Most Flags",
 	"search": "Search",
 	"enter_username": "Enter a username to search",
-	"search-user-for-chat": "Search a user to start chat",
+	"search-user-for-chat": "Search for a user to start chat:",
 	"load_more": "Load More",
 	"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
 	"filter-by": "Filter By",
diff --git a/public/language/en-US/admin/admin.json b/public/language/en-US/admin/admin.json
index 39edffb66f..dcf9696ca2 100644
--- a/public/language/en-US/admin/admin.json
+++ b/public/language/en-US/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Control Panel",
 	"settings-header-contents": "Contents",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/en-US/admin/appearance/customise.json b/public/language/en-US/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/en-US/admin/appearance/customise.json
+++ b/public/language/en-US/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/en-US/admin/dashboard.json b/public/language/en-US/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/en-US/admin/dashboard.json
+++ b/public/language/en-US/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/en-US/admin/extend/widgets.json b/public/language/en-US/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/en-US/admin/extend/widgets.json
+++ b/public/language/en-US/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/en-US/admin/manage/groups.json b/public/language/en-US/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/en-US/admin/manage/groups.json
+++ b/public/language/en-US/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/en-US/admin/manage/privileges.json b/public/language/en-US/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/en-US/admin/manage/privileges.json
+++ b/public/language/en-US/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/en-US/admin/settings/api.json b/public/language/en-US/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/en-US/admin/settings/api.json
+++ b/public/language/en-US/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/en-US/admin/settings/navigation.json b/public/language/en-US/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/en-US/admin/settings/navigation.json
+++ b/public/language/en-US/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/en-US/admin/settings/user.json b/public/language/en-US/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/en-US/admin/settings/user.json
+++ b/public/language/en-US/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/en-US/error.json b/public/language/en-US/error.json
index 77316bf37b..268aa0a786 100644
--- a/public/language/en-US/error.json
+++ b/public/language/en-US/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Guest uploading has been disabled",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Your membership request has already been submitted",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "This post has already been deleted",
     "post-already-restored": "This post has already been restored",
     "topic-already-deleted": "This topic has already been deleted",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/en-US/flags.json b/public/language/en-US/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/en-US/flags.json
+++ b/public/language/en-US/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/en-US/global.json b/public/language/en-US/global.json
index 9cb37d6e1a..629311b495 100644
--- a/public/language/en-US/global.json
+++ b/public/language/en-US/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Close",
     "403.title": "Access Denied",
     "403.message": "You seem to have stumbled upon a page that you do not have access to.",
-    "403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Not Found",
-    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Internal Error.",
     "500.message": "Oops! Looks like something went wrong!",
     "400.title": "Bad Request.",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Register",
     "login": "Login",
     "please_log_in": "Please Log In",
@@ -37,9 +37,13 @@
     "header.notifications": "Notifications",
     "header.search": "Search",
     "header.profile": "Profile",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Loading Notifications",
     "chats.loading": "Loading Chats",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Welcome to NodeBB, the discussion platform of the future.",
     "previouspage": "Previous Page",
     "nextpage": "Next Page",
@@ -54,7 +58,8 @@
     "users": "Users",
     "topics": "Topics",
     "posts": "Posts",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Best",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Reputation",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "read more",
     "more": "More",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 posted %2",
     "guest_posted_ago": "Guest posted %1",
     "last_edited_by": "last edited by %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "No Recent Posts",
     "norecenttopics": "No Recent Topics",
     "recentposts": "Recent Posts",
     "recentips": "Recently Logged In IPs",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Online",
     "away": "Away",
     "dnd": "Do not disturb",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/en-US/groups.json b/public/language/en-US/groups.json
index 2072d52894..f6160d20c9 100644
--- a/public/language/en-US/groups.json
+++ b/public/language/en-US/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Groups",
+    "members": "Members",
     "view_group": "View Group",
     "owner": "Group Owner",
     "new_group": "Create New Group",
diff --git a/public/language/en-US/modules.json b/public/language/en-US/modules.json
index 1e58a4e2ef..c66ec7ed21 100644
--- a/public/language/en-US/modules.json
+++ b/public/language/en-US/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Send",
     "chat.no_active": "You have no active chats.",
     "chat.user_typing": "%1 is typing ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Compose",
     "composer.show_preview": "Show Preview",
     "composer.hide_preview": "Hide Preview",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 said in %2:",
     "composer.user_said": "%1 said:",
     "composer.discard": "Are you sure you wish to discard this post?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancel",
     "bootbox.confirm": "Confirm",
diff --git a/public/language/en-US/pages.json b/public/language/en-US/pages.json
index a885434c71..03da2d7610 100644
--- a/public/language/en-US/pages.json
+++ b/public/language/en-US/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "User Settings",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Topics watched by %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Posts upvoted by %1",
diff --git a/public/language/en-US/post-queue.json b/public/language/en-US/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/en-US/post-queue.json
+++ b/public/language/en-US/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/en-US/recent.json b/public/language/en-US/recent.json
index f638d2f8ac..247055c38d 100644
--- a/public/language/en-US/recent.json
+++ b/public/language/en-US/recent.json
@@ -7,13 +7,5 @@
     "alltime": "All Time",
     "no_recent_topics": "There are no recent topics.",
     "no_popular_topics": "There are no popular topics.",
-    "there-is-a-new-topic": "There is a new topic.",
-    "there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
-    "there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
-    "there-are-new-topics": "There are %1 new topics.",
-    "there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
-    "there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
-    "there-is-a-new-post": "There is a new post.",
-    "there-are-new-posts": "There are %1 new posts.",
-    "click-here-to-reload": "Click here to reload."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/en-US/register.json b/public/language/en-US/register.json
index 57fd61b645..2faf1d4806 100644
--- a/public/language/en-US/register.json
+++ b/public/language/en-US/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Register",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "By default, your email will be hidden from the public.",
     "help.username_restrictions": "A unique username between %1 and %2 characters. Others can mention you with @<span id='yourUsername'>username</span>.",
diff --git a/public/language/en-US/search.json b/public/language/en-US/search.json
index 639cc0b653..158a2d8d4c 100644
--- a/public/language/en-US/search.json
+++ b/public/language/en-US/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
     "no-matches": "No matches found",
     "advanced-search": "Advanced Search",
     "in": "In",
-    "titles": "Titles",
-    "titles-posts": "Titles and Posts",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Posted by",
-    "in-categories": "In Categories",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Search child categories",
     "has-tags": "Has tags",
     "reply-count": "Reply Count",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "At least",
     "at-most": "At most",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Post time",
     "votes": "Votes",
     "newer-than": "Newer than",
@@ -28,7 +48,22 @@
     "three-months": "Three months",
     "six-months": "Six months",
     "one-year": "One year",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sort by",
+    "sort": "Sort",
     "last-reply-time": "Last reply time",
     "topic-title": "Topic title",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Category",
     "descending": "In descending order",
     "ascending": "In ascending order",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Save preferences",
     "clear-preferences": "Clear preferences",
     "search-preferences-saved": "Search preferences saved",
     "search-preferences-cleared": "Search preferences cleared",
     "show-results-as": "Show results as",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/en-US/social.json b/public/language/en-US/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/en-US/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/en-US/tags.json b/public/language/en-US/tags.json
index 24ca6f8a39..4aace7f79f 100644
--- a/public/language/en-US/tags.json
+++ b/public/language/en-US/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "There are no topics with this tag.",
+    "no-tags-found": "No tags found",
     "tags": "Tags",
     "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
     "enter_tags_here_short": "Enter tags...",
diff --git a/public/language/en-US/topic.json b/public/language/en-US/topic.json
index a275204aa2..92455af015 100644
--- a/public/language/en-US/topic.json
+++ b/public/language/en-US/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Click here to return to the last read post in this thread.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Purge Topic",
     "thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Post moved!",
     "fork_topic": "Fork Topic",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Click the posts you want to fork",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "No posts selected!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Enter your topic title here...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Discard",
     "composer.submit": "Submit",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Replying to %1",
     "composer.new_topic": "New Topic",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/en-US/user.json b/public/language/en-US/user.json
index ec5f3bd60e..ac50881e42 100644
--- a/public/language/en-US/user.json
+++ b/public/language/en-US/user.json
@@ -43,6 +43,7 @@
     "followers": "Followers",
     "following": "Following",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Upload New Picture",
     "upload_new_picture_from_url": "Upload New Picture From URL",
     "current_password": "Current Password",
+    "new_password": "New Password",
     "change_password": "Change Password",
     "change_password_error": "Invalid Password!",
     "change_password_error_wrong_current": "Your current password is not correct!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paginate topics and posts instead of using infinite scroll",
     "topics_per_page": "Topics per Page",
     "posts_per_page": "Posts per Page",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/en-US/users.json b/public/language/en-US/users.json
index 8ddd34e5d7..9bb40e8bc9 100644
--- a/public/language/en-US/users.json
+++ b/public/language/en-US/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Latest Users",
     "top_posters": "Top Posters",
     "most_reputation": "Most Reputation",
     "most_flags": "Most Flags",
     "search": "Search",
     "enter_username": "Enter a username to search",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Load More",
     "users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
     "filter-by": "Filter By",
diff --git a/public/language/en-x-pirate/admin/admin.json b/public/language/en-x-pirate/admin/admin.json
index 39edffb66f..dcf9696ca2 100644
--- a/public/language/en-x-pirate/admin/admin.json
+++ b/public/language/en-x-pirate/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Control Panel",
 	"settings-header-contents": "Contents",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/en-x-pirate/admin/appearance/customise.json b/public/language/en-x-pirate/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/en-x-pirate/admin/appearance/customise.json
+++ b/public/language/en-x-pirate/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/en-x-pirate/admin/dashboard.json b/public/language/en-x-pirate/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/en-x-pirate/admin/dashboard.json
+++ b/public/language/en-x-pirate/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/en-x-pirate/admin/extend/widgets.json b/public/language/en-x-pirate/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/en-x-pirate/admin/extend/widgets.json
+++ b/public/language/en-x-pirate/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/en-x-pirate/admin/manage/groups.json b/public/language/en-x-pirate/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/en-x-pirate/admin/manage/groups.json
+++ b/public/language/en-x-pirate/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/en-x-pirate/admin/manage/privileges.json b/public/language/en-x-pirate/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/en-x-pirate/admin/manage/privileges.json
+++ b/public/language/en-x-pirate/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/en-x-pirate/admin/settings/api.json b/public/language/en-x-pirate/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/en-x-pirate/admin/settings/api.json
+++ b/public/language/en-x-pirate/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/en-x-pirate/admin/settings/navigation.json b/public/language/en-x-pirate/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/en-x-pirate/admin/settings/navigation.json
+++ b/public/language/en-x-pirate/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/en-x-pirate/admin/settings/user.json b/public/language/en-x-pirate/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/en-x-pirate/admin/settings/user.json
+++ b/public/language/en-x-pirate/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/en-x-pirate/error.json b/public/language/en-x-pirate/error.json
index 77316bf37b..268aa0a786 100644
--- a/public/language/en-x-pirate/error.json
+++ b/public/language/en-x-pirate/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Guest uploading has been disabled",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Your membership request has already been submitted",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "This post has already been deleted",
     "post-already-restored": "This post has already been restored",
     "topic-already-deleted": "This topic has already been deleted",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/en-x-pirate/flags.json b/public/language/en-x-pirate/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/en-x-pirate/flags.json
+++ b/public/language/en-x-pirate/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/en-x-pirate/global.json b/public/language/en-x-pirate/global.json
index eaec53c49a..cd31d32e95 100644
--- a/public/language/en-x-pirate/global.json
+++ b/public/language/en-x-pirate/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Shoot down",
     "403.title": "Not Enough Booty Power",
     "403.message": "You seem to have stumbled upon a page that you do not have access to.",
-    "403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "T'ere be nut'in 'ere",
-    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Internal Error.",
     "500.message": "Looks like we've got somethin' in th' sails.",
     "400.title": "Bad Request.",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Register",
     "login": "Login",
     "please_log_in": "Please Log In",
@@ -37,9 +37,13 @@
     "header.notifications": "Parrot Calls",
     "header.search": "Finderer",
     "header.profile": "Bunk",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Fetching yer Parrot Calls",
     "chats.loading": "Loading Yik-Yaks",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Welcome to NodeBB, th' discussion platform 'o th' future.",
     "previouspage": "Previous Page",
     "nextpage": "Next Page",
@@ -54,7 +58,8 @@
     "users": "Users",
     "topics": "Topics",
     "posts": "Messages",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Best",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Reputation",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "read more",
     "more": "More",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 posted %2",
     "guest_posted_ago": "Guest posted %1",
     "last_edited_by": "last edited by %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "No Recent Posts",
     "norecenttopics": "No Recent Topics",
     "recentposts": "Recent Messages",
     "recentips": "Recently Logged In IPs",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Available",
     "away": "Out to sea",
     "dnd": "Do not disturb",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/en-x-pirate/groups.json b/public/language/en-x-pirate/groups.json
index 2072d52894..f6160d20c9 100644
--- a/public/language/en-x-pirate/groups.json
+++ b/public/language/en-x-pirate/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Groups",
+    "members": "Members",
     "view_group": "View Group",
     "owner": "Group Owner",
     "new_group": "Create New Group",
diff --git a/public/language/en-x-pirate/modules.json b/public/language/en-x-pirate/modules.json
index e5ca23775a..f95b54c21e 100644
--- a/public/language/en-x-pirate/modules.json
+++ b/public/language/en-x-pirate/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Send Parrot",
     "chat.no_active": "Ye be a lonely sailor.",
     "chat.user_typing": "%1 is typing ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Compose",
     "composer.show_preview": "Show Preview",
     "composer.hide_preview": "Hide Preview",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 said in %2:",
     "composer.user_said": "%1 said:",
     "composer.discard": "Are you sure you wish to discard this post?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancel",
     "bootbox.confirm": "Confirm",
diff --git a/public/language/en-x-pirate/pages.json b/public/language/en-x-pirate/pages.json
index a885434c71..03da2d7610 100644
--- a/public/language/en-x-pirate/pages.json
+++ b/public/language/en-x-pirate/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "User Settings",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Topics watched by %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Posts upvoted by %1",
diff --git a/public/language/en-x-pirate/post-queue.json b/public/language/en-x-pirate/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/en-x-pirate/post-queue.json
+++ b/public/language/en-x-pirate/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/en-x-pirate/recent.json b/public/language/en-x-pirate/recent.json
index 791760308e..4f60e125fc 100644
--- a/public/language/en-x-pirate/recent.json
+++ b/public/language/en-x-pirate/recent.json
@@ -7,13 +7,5 @@
     "alltime": "All Time",
     "no_recent_topics": "There be no recent topics.",
     "no_popular_topics": "There are no popular topics.",
-    "there-is-a-new-topic": "There is a new topic.",
-    "there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
-    "there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
-    "there-are-new-topics": "There are %1 new topics.",
-    "there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
-    "there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
-    "there-is-a-new-post": "There is a new post.",
-    "there-are-new-posts": "There are %1 new posts.",
-    "click-here-to-reload": "Click here to reload."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/en-x-pirate/register.json b/public/language/en-x-pirate/register.json
index 8bf995da08..42f892518f 100644
--- a/public/language/en-x-pirate/register.json
+++ b/public/language/en-x-pirate/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Board the ship",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "By default, your email will be hidden from the public.",
     "help.username_restrictions": "A unique username between %1 and %2 characters. Others can mention you with @<span id='yourUsername'>username</span>.",
diff --git a/public/language/en-x-pirate/search.json b/public/language/en-x-pirate/search.json
index 639cc0b653..158a2d8d4c 100644
--- a/public/language/en-x-pirate/search.json
+++ b/public/language/en-x-pirate/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
     "no-matches": "No matches found",
     "advanced-search": "Advanced Search",
     "in": "In",
-    "titles": "Titles",
-    "titles-posts": "Titles and Posts",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Posted by",
-    "in-categories": "In Categories",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Search child categories",
     "has-tags": "Has tags",
     "reply-count": "Reply Count",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "At least",
     "at-most": "At most",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Post time",
     "votes": "Votes",
     "newer-than": "Newer than",
@@ -28,7 +48,22 @@
     "three-months": "Three months",
     "six-months": "Six months",
     "one-year": "One year",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sort by",
+    "sort": "Sort",
     "last-reply-time": "Last reply time",
     "topic-title": "Topic title",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Category",
     "descending": "In descending order",
     "ascending": "In ascending order",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Save preferences",
     "clear-preferences": "Clear preferences",
     "search-preferences-saved": "Search preferences saved",
     "search-preferences-cleared": "Search preferences cleared",
     "show-results-as": "Show results as",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/en-x-pirate/social.json b/public/language/en-x-pirate/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/en-x-pirate/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/en-x-pirate/tags.json b/public/language/en-x-pirate/tags.json
index 24ca6f8a39..4aace7f79f 100644
--- a/public/language/en-x-pirate/tags.json
+++ b/public/language/en-x-pirate/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "There are no topics with this tag.",
+    "no-tags-found": "No tags found",
     "tags": "Tags",
     "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
     "enter_tags_here_short": "Enter tags...",
diff --git a/public/language/en-x-pirate/topic.json b/public/language/en-x-pirate/topic.json
index a275204aa2..92455af015 100644
--- a/public/language/en-x-pirate/topic.json
+++ b/public/language/en-x-pirate/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Click here to return to the last read post in this thread.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Purge Topic",
     "thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Post moved!",
     "fork_topic": "Fork Topic",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Click the posts you want to fork",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "No posts selected!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Enter your topic title here...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Discard",
     "composer.submit": "Submit",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Replying to %1",
     "composer.new_topic": "New Topic",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/en-x-pirate/user.json b/public/language/en-x-pirate/user.json
index f8ff37bb4a..611a06becd 100644
--- a/public/language/en-x-pirate/user.json
+++ b/public/language/en-x-pirate/user.json
@@ -43,6 +43,7 @@
     "followers": "Followers",
     "following": "Following",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Upload New Picture",
     "upload_new_picture_from_url": "Upload New Picture From URL",
     "current_password": "Current Password",
+    "new_password": "New Password",
     "change_password": "Change Password",
     "change_password_error": "Invalid Password!",
     "change_password_error_wrong_current": "Your current password is not correct!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paginate topics and posts instead of using infinite scroll",
     "topics_per_page": "Topics per Page",
     "posts_per_page": "Posts per Page",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/en-x-pirate/users.json b/public/language/en-x-pirate/users.json
index 748f41943a..e956e76950 100644
--- a/public/language/en-x-pirate/users.json
+++ b/public/language/en-x-pirate/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Land lubbers",
     "top_posters": "Top mateys",
     "most_reputation": "Most Reputation",
     "most_flags": "Most Flags",
     "search": "Search",
     "enter_username": "Gimme y'er handle",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Load More",
     "users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
     "filter-by": "Filter By",
diff --git a/public/language/es/admin/admin.json b/public/language/es/admin/admin.json
index 57f5d25554..e8e0397d34 100644
--- a/public/language/es/admin/admin.json
+++ b/public/language/es/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Panel de control de administrador NodeBB",
 	"settings-header-contents": "Contenidos",
-	"changes-saved": "Cambios guardados",
-	"changes-saved-message": "Tus cambios para la configuración de NodeBB han sido guardados.",
 	"changes-not-saved": "Cambios no guardados",
 	"changes-not-saved-message": "NodeBB ha encontrado un problema guardando tus cambios. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/es/admin/advanced/cache.json b/public/language/es/admin/advanced/cache.json
index be68806428..99dff42744 100644
--- a/public/language/es/admin/advanced/cache.json
+++ b/public/language/es/admin/advanced/cache.json
@@ -1,8 +1,8 @@
 {
 	"post-cache": "Publicar Cache",
-	"group-cache": "Group Cache",
-	"local-cache": "Local Cache",
-	"object-cache": "Object Cache",
+	"group-cache": "Agrupar cache",
+	"local-cache": "Cache local",
+	"object-cache": "Cache de objetos",
 	"percent-full": "%1% Completo",
 	"post-cache-size": "Tamaño de cache del post",
 	"items-in-cache": "Artículos en cache"
diff --git a/public/language/es/admin/advanced/events.json b/public/language/es/admin/advanced/events.json
index ec26f7c11c..3ab62431bc 100644
--- a/public/language/es/admin/advanced/events.json
+++ b/public/language/es/admin/advanced/events.json
@@ -2,8 +2,8 @@
 	"events": "Eventos",
 	"no-events": "No hay eventos",
 	"control-panel": "Panel de control de eventos",
-	"delete-events": "Delete Events",
-	"confirm-delete-all-events": "Are you sure you want to delete all logged events?",
+	"delete-events": "Eliminar eventos",
+	"confirm-delete-all-events": "¿Estás seguro que deseas eliminar todos los eventos registrados?",
 	"filters": "Filtros",
 	"filters-apply": "Aplicar filtros",
 	"filter-type": "Tipo de evento",
diff --git a/public/language/es/admin/appearance/customise.json b/public/language/es/admin/appearance/customise.json
index f2eeeb071a..3ccdf5939d 100644
--- a/public/language/es/admin/appearance/customise.json
+++ b/public/language/es/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "CSS/LESS personalizado",
-	"custom-css.description": "Ingrese sus propias declaraciones de CSS/LESS aquí, las cuales serán aplicadas después de todos los demás estilos.",
-	"custom-css.enable": "Activar CSS/LESS personalizado",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Javascript personalizado",
 	"custom-js.description": "Introduzca su propio javascript aquí. Este será ejecutado cuando la página haya cargado por completo.",
diff --git a/public/language/es/admin/dashboard.json b/public/language/es/admin/dashboard.json
index a1d11fab48..e2bf94b664 100644
--- a/public/language/es/admin/dashboard.json
+++ b/public/language/es/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/es/admin/extend/widgets.json b/public/language/es/admin/extend/widgets.json
index 21281e75e2..3dd06fbcef 100644
--- a/public/language/es/admin/extend/widgets.json
+++ b/public/language/es/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Ninguno",
 	"container.well": "Bien",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel - cabecera (Panel header)",
-	"container.panel-body": "Panel - cuerpo (panel body)",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alerta (alert)",
 
 	"alert.confirm-delete": "Estás seguro/a de que deseas borrar este widget?",
diff --git a/public/language/es/admin/manage/groups.json b/public/language/es/admin/manage/groups.json
index 13190afc28..71497fb63b 100644
--- a/public/language/es/admin/manage/groups.json
+++ b/public/language/es/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revertir",
 
 	"edit.no-users-found": "No se Encontraron Usuarios",
-	"edit.confirm-remove-user": "¿Estás seguro/a de que quieres eliminar a este/a usuario/a?",
-	"edit.save-success": "¡Cambios guardados!"
+	"edit.confirm-remove-user": "¿Estás seguro/a de que quieres eliminar a este/a usuario/a?"
 }
\ No newline at end of file
diff --git a/public/language/es/admin/manage/privileges.json b/public/language/es/admin/manage/privileges.json
index c705a7312d..deb1b600d8 100644
--- a/public/language/es/admin/manage/privileges.json
+++ b/public/language/es/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/es/admin/settings/api.json b/public/language/es/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/es/admin/settings/api.json
+++ b/public/language/es/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/es/admin/settings/navigation.json b/public/language/es/admin/settings/navigation.json
index 3b28dd115a..a73b1a4454 100644
--- a/public/language/es/admin/settings/navigation.json
+++ b/public/language/es/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Grupos:",
 	"open-new-window": "Abrir en una ventana nueva",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Borrar",
 	"btn.disable": "Deshabilitar",
diff --git a/public/language/es/admin/settings/user.json b/public/language/es/admin/settings/user.json
index 60eebe04bf..e57c6e6e07 100644
--- a/public/language/es/admin/settings/user.json
+++ b/public/language/es/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Días",
 	"session-time-seconds": "Segundos",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutos después de que el usuario se considere inactivo",
 	"online-cutoff-help": "Si el usuario no realiza acciones durante este tiempo, se considerarán inactivos y no recibirán actualizaciones en tiempo real.",
 	"registration": "Registro de Usuario",
diff --git a/public/language/es/error.json b/public/language/es/error.json
index 354fcc588c..cd58d4ea65 100644
--- a/public/language/es/error.json
+++ b/public/language/es/error.json
@@ -37,7 +37,7 @@
     "email-invited": "Email was already invited",
     "email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.",
     "email-not-confirmed-chat": "No puedes usar el chat hasta que confirmes tu dirección de correo electrónico, por favor haz click aquí para confirmar tu correo.",
-    "email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.",
+    "email-not-confirmed-email-sent": "Tu email todavía no ha sido confirmado, por favor verifica tu buzón de entrada para ver si has recibido el email de confirmación. No te será posible comentar en algunas de las categorías hasta que tú email sea confirmado.",
     "no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.",
     "user-doesnt-have-email": "User \"%1\" does not have an email set.",
     "email-confirm-failed": "No se ha podido confirmar su email, por favor inténtelo de nuevo más tarde.",
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Las subidas están deshabilitadas para los invitados",
     "cors-error": "No se puede subir la imágen debido a CORS mal configurado",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Tu solicitud de miembro ya ha sido enviada",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Este publicación ya ha sido borrada",
     "post-already-restored": "Esta publicación ya ha sido restaurada",
     "topic-already-deleted": "Este tema ya ha sido borrado",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/es/flags.json b/public/language/es/flags.json
index af9aa33ad9..513512cf2c 100644
--- a/public/language/es/flags.json
+++ b/public/language/es/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Yeah! No se encontraron indicadores",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Asignado",
 	"update": "Actualizar",
 	"updated": "Actualizado",
 	"resolved": "Resolved",
 	"target-purged": "El contenido al que se refiere este indicador ha sido purgado y ya no está disponible.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Filtros rapidos",
 	"filter-active": "Hay uno o más filtros activos en esta lista de indicadores.",
 	"filter-reset": "Quitar filtros",
 	"filters": "Opciones de filtros",
-	"filter-reporterId": "UID del reportador",
-	"filter-targetUid": "Indicador UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Tipo de indicador",
 	"filter-type-all": "Todo el contenido",
 	"filter-type-post": "Mensaje",
 	"filter-type-user": "Usuario",
 	"filter-state": "estado",
-	"filter-assignee": "UID asignado",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Categoria",
 	"filter-quick-mine": "Asignado a mí",
 	"filter-cid-all": "Todas las categorias",
@@ -45,6 +47,7 @@
 
 	"notes": "Marcar notas",
 	"add-note": "Añadir nota",
+	"edit-note": "Edit Note",
 	"no-notes": "No hay notas compartidas",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/es/global.json b/public/language/es/global.json
index 7cf340dc3f..b4589b7558 100644
--- a/public/language/es/global.json
+++ b/public/language/es/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Cerrar",
     "403.title": "Acceso denegado",
     "403.message": "Al parecer has llegado a una página a la cual no tienes permisos para acceder.",
-    "403.login": "¿Quizás deberías <a href='%1/login'> intentar acceder</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "No encontrado",
-    "404.message": "Al parecer has llegado a una página a la cual no tienes permisos para acceder. Volver a la <a href='%1/'> página de inicio </a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Error interno.",
     "500.message": "¡Ooops! ¡Parece que algo salió mal! No te preocupes, ¡nuestros simios hiperinteligentes lo solucionarán!",
     "400.title": "Petición incorrecta.",
-    "400.message": "Parece que la dirección es errónea, por favor compruébala y prueba otra vez. En caso contrario vuelve al <a href='%1/'>inicio</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registrarse",
     "login": "Conectarse",
     "please_log_in": "Por favor, identifíquese.",
@@ -37,9 +37,13 @@
     "header.notifications": "Notificaciones",
     "header.search": "Buscar",
     "header.profile": "Perfil",
+    "header.account": "Account",
     "header.navigation": "Navegación",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Cargando notificaciones",
     "chats.loading": "Cargando chats",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Bienvenido a NodeBB, la plataforma de debate del futuro.",
     "previouspage": "Página anterior",
     "nextpage": "Página siguiente",
@@ -54,7 +58,8 @@
     "users": "Usuarios",
     "topics": "Temas",
     "posts": "Mensajes",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Mejor valorados",
     "controversial": "Controversial",
     "votes": "Votos",
@@ -69,6 +74,7 @@
     "reputation": "Reputación",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "leer más",
     "more": "Más",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 publicó %2",
     "guest_posted_ago": "Invitado publicó %1",
     "last_edited_by": "Última edición por %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "No hay publicaciones recientes",
     "norecenttopics": "No hay temas recientes",
     "recentposts": "Publicaciones recientes",
     "recentips": "IP's conectadas recientemente",
     "moderator_tools": "Herramientas de Moderación",
+    "status": "Status",
     "online": "Conectado",
     "away": "Ausente",
     "dnd": "No molestar",
@@ -122,5 +130,7 @@
     "edited": "Editado",
     "disabled": "Desahabilitado",
     "select": "Seleccionar",
-    "user-search-prompt": "Escriba algo aquí para encontrar usuarios..."
+    "user-search-prompt": "Escriba algo aquí para encontrar usuarios...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/es/groups.json b/public/language/es/groups.json
index a00c4035e4..941c448732 100644
--- a/public/language/es/groups.json
+++ b/public/language/es/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupos",
+    "members": "Members",
     "view_group": "Ver Grupo",
     "owner": "Propietario del Grupo",
     "new_group": "Crear Nuevo Grupo",
diff --git a/public/language/es/modules.json b/public/language/es/modules.json
index d089f3213f..23f4d5c73d 100644
--- a/public/language/es/modules.json
+++ b/public/language/es/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chatear con",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Enviar",
     "chat.no_active": "No tiene conversaciones activas.",
     "chat.user_typing": "%1 está escribiendo...",
@@ -42,6 +46,7 @@
     "composer.compose": "Crear",
     "composer.show_preview": "Ver Previsualización",
     "composer.hide_preview": "Ocultar Previsualización",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 dijo en %2:",
     "composer.user_said": "%1 dijo:",
     "composer.discard": "¿Estás seguro de que deseas descartar este mensaje?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancelar",
     "bootbox.confirm": "Confirmar",
diff --git a/public/language/es/pages.json b/public/language/es/pages.json
index a7767236c0..b20394a9c4 100644
--- a/public/language/es/pages.json
+++ b/public/language/es/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1 Categorías seguidas",
     "account/bookmarks": "%1's Mensajes marcados",
     "account/settings": "Preferencias",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Temas seguidos por %1",
     "account/ignored": "Temas ignorados por %1",
     "account/upvoted": "Publicaciones votadas positivamente %1",
diff --git a/public/language/es/post-queue.json b/public/language/es/post-queue.json
index 7ed6275827..f278398a8f 100644
--- a/public/language/es/post-queue.json
+++ b/public/language/es/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Cola de Mensajes",
-	"description": "No hay publicaciones en cola.<br>Para habilitar esta funcionalidad, ir a <a href=\"%1\">Ajustes/Publicar/Cola de Publicaciones</a>y habilitar <strong>Cola de publicaciones</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Usuario",
+	"when": "When",
 	"category": "Categoría",
 	"title": "Título",
 	"content": "Contenido",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/es/recent.json b/public/language/es/recent.json
index 8c959ca0d5..ccf74c3688 100644
--- a/public/language/es/recent.json
+++ b/public/language/es/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Siempre",
     "no_recent_topics": "No hay publicaciones recientes.",
     "no_popular_topics": "No hay publicaciones populares",
-    "there-is-a-new-topic": "Hay una nueva publicación.",
-    "there-is-a-new-topic-and-a-new-post": "hay una nueva publicación y un nuevo mensaje.",
-    "there-is-a-new-topic-and-new-posts": "Hay una nueva publicación y %1 nuevos mensajes.",
-    "there-are-new-topics": "Hay %1 nuevos mensajes.",
-    "there-are-new-topics-and-a-new-post": "Hay %1 nuevas publicaciones y un nuevo mensaje.",
-    "there-are-new-topics-and-new-posts": "Hay %1 nuevas publicaciones y %2 nuevos mensajes.",
-    "there-is-a-new-post": "Hay un nuevo mensaje.",
-    "there-are-new-posts": "Hay %1 nuevos mensajes.",
-    "click-here-to-reload": "Click para recargar."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/es/register.json b/public/language/es/register.json
index e94120861a..7efebd1ba5 100644
--- a/public/language/es/register.json
+++ b/public/language/es/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registrarse",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancelar registro",
     "help.email": "Por defecto, tu cuenta de correo electrónico estará oculta al publico.",
     "help.username_restrictions": "El nombre de usuario debe tener entre %1 y %2 carácteres. Los miembros pueden responderte escribiendo @<span id='yourUsername'>usuario</span>.",
@@ -21,7 +22,7 @@
     "registration-queue-average-time": "Our average time for approving memberships is %1 hours %2 minutes.",
     "registration-queue-auto-approve-time": "Your membership to this forum will be fully activated in up to %1 hours.",
     "interstitial.intro": "We'd like some additional information in order to update your account&hellip;",
-    "interstitial.intro-new": "We'd like some additional information before we can create your account&hellip;",
+    "interstitial.intro-new": "Quisiéramos solicitar alguna información adicional antes de poder crear tu cuenta...",
     "interstitial.errors-found": "Please review the entered information:",
     "gdpr_agree_data": "Consiento la recolección y el procesamiento de mi información personal en este sitio web",
     "gdpr_agree_email": "Consiento en recibir correos de informes y notificaciones de este sitio web.",
diff --git a/public/language/es/search.json b/public/language/es/search.json
index 24220b902a..790878e39d 100644
--- a/public/language/es/search.json
+++ b/public/language/es/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 resuldado(s) coinciden con \"%2\". (%3 segundos)",
     "no-matches": "No se encontraron coincidencias",
     "advanced-search": "Búsqueda Avanzada",
     "in": "En",
-    "titles": "Títulos",
-    "titles-posts": "Títulos y posts",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Que coincidan las palabras",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Todos",
     "any": "Cualquiera",
     "posted-by": "Publicado por",
-    "in-categories": "En categorías",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Buscar categorías hijas",
     "has-tags": "Hay etiquetas",
     "reply-count": "Número de Respuestas",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "De mínimo",
     "at-most": "De máximo",
     "relevance": "Relevancia",
+    "time": "Time",
     "post-time": "Fecha de publicación",
     "votes": "Votos",
     "newer-than": "Más reciente que",
@@ -28,7 +48,22 @@
     "three-months": "Tres meses",
     "six-months": "Seis meses",
     "one-year": "Un año",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Ordenar por",
+    "sort": "Sort",
     "last-reply-time": "Fecha de última respuesta",
     "topic-title": "Título de tema",
     "topic-votes": "Votos de tema",
@@ -39,11 +74,36 @@
     "category": "Categoría",
     "descending": "En orden descendente",
     "ascending": "En orden ascendente",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Guardar preferencias",
     "clear-preferences": "Descartar preferencias",
     "search-preferences-saved": "Preferencias de búsqueda guardadas",
     "search-preferences-cleared": "Preferencias de búsqueda descartadas",
     "show-results-as": "Mostrar resultados como",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Ver mas resultados (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/es/social.json b/public/language/es/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/es/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/es/tags.json b/public/language/es/tags.json
index c61d272cde..7248696672 100644
--- a/public/language/es/tags.json
+++ b/public/language/es/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "No hay temas con esta etiqueta.",
+    "no-tags-found": "No tags found",
     "tags": "Etiquetas",
     "enter_tags_here": "Introduce aquí las etiquetas, entre %1 y %2 caracteres cada una.",
     "enter_tags_here_short": "Introduzca las etiquetas...",
diff --git a/public/language/es/topic.json b/public/language/es/topic.json
index caccbdd761..fa39e28d40 100644
--- a/public/language/es/topic.json
+++ b/public/language/es/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copiar IP",
     "ban-ip": "Banear IP",
     "view-history": "Editar Historial",
-    "locked-by": "Bloqueado por",
-    "unlocked-by": "Desbloqueado por",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Borrado por",
-    "restored-by": "Restaurado por",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Haz click aquí para volver a tu último mensaje leído en este tema",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Purgar tema",
     "thread_tools.purge_confirm": "¿Está seguro que desea eliminar definitivamente (purgar) este tema?",
     "thread_tools.merge_topics": "Fusionar temas",
-    "thread_tools.merge": "Fusionar",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "¡Mensaje movido!",
     "fork_topic": "Dividir tema",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Pulsa en los mensajes que quieres dividir",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "¡No has seleccionado ningún mensaje!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Haz click en los mensajes que quieres asignar a otro usuario",
     "composer.title_placeholder": "Ingresa el título de tu tema...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Descartar",
     "composer.submit": "Enviar",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "En respuesta a %1",
     "composer.new_topic": "Nuevo tema",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/es/user.json b/public/language/es/user.json
index f8363dca1a..2842d0b51a 100644
--- a/public/language/es/user.json
+++ b/public/language/es/user.json
@@ -43,6 +43,7 @@
     "followers": "Seguidores",
     "following": "Siguiendo",
     "blocks": "Bloqueos",
+    "blocked-users": "Blocked users",
     "block_toggle": "Cambiar Bloqueo",
     "block_user": "Bloquear usuario",
     "unblock_user": "Desbloquear usuario",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Subir nueva imagen",
     "upload_new_picture_from_url": "Cargar desde URL",
     "current_password": "Contraseña actual",
+    "new_password": "New Password",
     "change_password": "Cambiar contraseña",
     "change_password_error": "¡Contraseña no válida!",
     "change_password_error_wrong_current": "¡Su contraseña actual no es correcta!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paginar hilos y mensajes en lugar de usar desplazamiento infinito",
     "topics_per_page": "Temas por página",
     "posts_per_page": "Post por página",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Máximo %1",
     "acp_language": "Página de Lenguage del Administrador",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Nota de moderación guardada",
     "info.moderation-note.add": "Añadir nota",
     "sessions.description": "Esta página le permite ver las sesiones activas en este foro y revocarlas si es necesario. Puedes revocar tu propia sesión cerrando sesión en tu cuenta.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Tus derechos &amp; Consentimiento",
     "consent.lead": "Este foro recolecta y procesa su información personal",
     "consent.intro": "Usamos esta información estrictamente para personalizar su experiencia en esta comunidad, así como para asociar los mensajes que haga con su cuenta de usuario. Durante el registro se le pidió que proporcionara un nombre de usuario y dirección de correo electrónico, puede también proveer información adicional para completar su perfil en esta web.<br /><br />Conservamos esta información mientras su cuenta de usuario exista, y podrá retirar su consentimiento en cualquier momento borrando esta cuenta de usuario. A su vez, puede pedir una copia de su contribución a este sitio  través de la página de Derechos &amp; Consentimiento. <br /><br />Si tiene cualquier pregunta o preocupación, le animamos a dirigirse al equipo de administración de este foro.",
@@ -191,9 +197,9 @@
     "consent.export-uploads-success": "Exporting uploads, you will get a notification when it is complete.",
     "consent.export_posts": "Exportar Entradas y Respuestas (.csv)",
     "consent.export-posts-success": "Exporting posts, you will get a notification when it is complete.",
-    "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
+    "emailUpdate.intro": "Por favor ingresa tu dirección de email abajo. Este foro utiliza tu cuenta de email para resúmenes programados y notificaciones, así como para recuperar la cuenta en casa de olvidar tu contraseña.",
     "emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
-    "emailUpdate.required": "<strong>This field is required</strong>.",
-    "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
+    "emailUpdate.required": "<strong>Este campo es requerido</strong>.",
+    "emailUpdate.change-instructions": "Un email de confirmación será enviado a la cuenta de email ingresada con un enlace único. Al acceder a este enlace confirmarás que eres propietario de la dirección de email y será activado en tu cuenta. En cualquier momento, puedes actualizar el email registrado desde la página de tu cuenta.",
     "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
 }
\ No newline at end of file
diff --git a/public/language/es/users.json b/public/language/es/users.json
index f16dcf326e..7a6b023a21 100644
--- a/public/language/es/users.json
+++ b/public/language/es/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Últimos usuarios",
     "top_posters": "Top por mensajes",
     "most_reputation": "Más reputados",
     "most_flags": "Más Reportados",
     "search": "Buscar",
     "enter_username": "Ingresa el nombre de usuario que quieres buscar",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Cargar más",
     "users-found-search-took": "¡%1 usuario(s) encontrado! La búsqueda ha llevado %2 segundos.",
     "filter-by": "Filtrar Por",
diff --git a/public/language/et/admin/admin.json b/public/language/et/admin/admin.json
index 9b57b550c7..5c47726d9c 100644
--- a/public/language/et/admin/admin.json
+++ b/public/language/et/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Administraatori kontrollpaneel",
 	"settings-header-contents": "Sisu",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/et/admin/appearance/customise.json b/public/language/et/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/et/admin/appearance/customise.json
+++ b/public/language/et/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/et/admin/dashboard.json b/public/language/et/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/et/admin/dashboard.json
+++ b/public/language/et/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/et/admin/extend/widgets.json b/public/language/et/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/et/admin/extend/widgets.json
+++ b/public/language/et/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/et/admin/manage/groups.json b/public/language/et/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/et/admin/manage/groups.json
+++ b/public/language/et/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/et/admin/manage/privileges.json b/public/language/et/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/et/admin/manage/privileges.json
+++ b/public/language/et/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/et/admin/settings/api.json b/public/language/et/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/et/admin/settings/api.json
+++ b/public/language/et/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/et/admin/settings/navigation.json b/public/language/et/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/et/admin/settings/navigation.json
+++ b/public/language/et/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/et/admin/settings/user.json b/public/language/et/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/et/admin/settings/user.json
+++ b/public/language/et/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/et/error.json b/public/language/et/error.json
index 2097bc3b46..9776936299 100644
--- a/public/language/et/error.json
+++ b/public/language/et/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Külaliste üleslaadimine on keelatud.",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Teie liikmetaotlus on juba saadetud.",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Postitus on juba kustutatud",
     "post-already-restored": "Postitus on juba taastatud",
     "topic-already-deleted": "Teema on juba kustutatud",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/et/flags.json b/public/language/et/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/et/flags.json
+++ b/public/language/et/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/et/global.json b/public/language/et/global.json
index 3673db366b..60ce72fa37 100644
--- a/public/language/et/global.json
+++ b/public/language/et/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Sulge",
     "403.title": "Ligipääs puudub",
     "403.message": "Tundub, et sul pole piisvalt õigusi selle lehe vaatamiseks. ",
-    "403.login": "Äkki peaksid <a href='%1/login'>sisse logima</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Ei leitud",
-    "404.message": "Tundub, et lehte mida otsid, ei eksisteeri. Mine tagasi <a href='%1/'>avalehele</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Süsteemne error.",
     "500.message": "Oih! Midagi läks valesti!",
     "400.title": "Vigane päring.",
-    "400.message": "Tundub, et see link on vigane, palun kontrolli see üle ja proovi uuesti. Võid ka minna tagasi <a href='%1/'>avalehele</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registreeri",
     "login": "Logi sisse",
     "please_log_in": "Palun logi sisse",
@@ -37,9 +37,13 @@
     "header.notifications": "Teated",
     "header.search": "Otsi",
     "header.profile": "Profiil",
+    "header.account": "Account",
     "header.navigation": "Navigatsioon",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Laen teateid",
     "chats.loading": "Laen vestlusi",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Tere tulemast NodeBB foorumisse.",
     "previouspage": "Eelmine leht",
     "nextpage": "Järgmine leht",
@@ -54,7 +58,8 @@
     "users": "Kasutajad",
     "topics": "Teemat",
     "posts": "Postitust",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Parim",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Reputatsioon",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "loe veel",
     "more": "Veel",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 postitas %2",
     "guest_posted_ago": "Külaline postitas %1",
     "last_edited_by": "viimati muudetud %1 poolt",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Hiljutisi postitusi ei ole",
     "norecenttopics": "Hiljutisi teemasid ei ole",
     "recentposts": "Hiljutised postitused",
     "recentips": "Hiljutised IP'd, millelt sisse logitud",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Sees",
     "away": "Eemal",
     "dnd": "Mitte segada",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/et/groups.json b/public/language/et/groups.json
index d1b5d7d701..30679d9c24 100644
--- a/public/language/et/groups.json
+++ b/public/language/et/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupid",
+    "members": "Members",
     "view_group": "Vaata gruppi",
     "owner": "Grupi omanik",
     "new_group": "Loo uus grupp",
diff --git a/public/language/et/modules.json b/public/language/et/modules.json
index fca9882aef..12dee6a6b9 100644
--- a/public/language/et/modules.json
+++ b/public/language/et/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Saada",
     "chat.no_active": "Sul ei ole hetkel aktiivseid vestlusi.",
     "chat.user_typing": "%1 kirjutab sõnumit...",
@@ -42,6 +46,7 @@
     "composer.compose": "Koosta",
     "composer.show_preview": "Kuva eelvaadet",
     "composer.hide_preview": "Peida eelvaade",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 ütles %2:",
     "composer.user_said": "%1 ütles:",
     "composer.discard": "Oled kindel, et soovid selle postituse tühistada?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "Olgu",
     "bootbox.cancel": "Katkesta",
     "bootbox.confirm": "Kinnita",
diff --git a/public/language/et/pages.json b/public/language/et/pages.json
index 6aa52b6726..268b073b38 100644
--- a/public/language/et/pages.json
+++ b/public/language/et/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "Kasutaja sätted",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Teemasid jälgib %1 kasutajat",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Postitused %1 poolt heaks kiidetud",
diff --git a/public/language/et/post-queue.json b/public/language/et/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/et/post-queue.json
+++ b/public/language/et/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/et/recent.json b/public/language/et/recent.json
index 96882af6a3..6cdeffa87f 100644
--- a/public/language/et/recent.json
+++ b/public/language/et/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Kogu aja vältel",
     "no_recent_topics": "Hetkel ei ole hiljutisi teemasid.",
     "no_popular_topics": "Ühtegi populaarset teemat ei leidu.",
-    "there-is-a-new-topic": "On loodud uus teema.",
-    "there-is-a-new-topic-and-a-new-post": "On loodud uus teema ning postitus.",
-    "there-is-a-new-topic-and-new-posts": "On loodud uus teema ning %1 uut postitust.",
-    "there-are-new-topics": "On loodud %1 uut teemat.",
-    "there-are-new-topics-and-a-new-post": "On loodud %1 uut teemat ning uus postitus.",
-    "there-are-new-topics-and-new-posts": "On loodud %1 uut teemat ning %2 uut postitust.",
-    "there-is-a-new-post": "On loodud uus postitus.",
-    "there-are-new-posts": "On loodud %1 uut postitust.",
-    "click-here-to-reload": "Värskendamiseks vajuta siia."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/et/register.json b/public/language/et/register.json
index 0e7b671d59..d56c60f503 100644
--- a/public/language/et/register.json
+++ b/public/language/et/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registreeri",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Katkesta registreerimine",
     "help.email": "Algsättena peidetakse sinu e-mail avalikuse eest.",
     "help.username_restrictions": "Unikaalne kasutajanimi, mis on  %1 - %2 tähemärki pikk. Teised saavad sind postitustes mainida kasutades @<span id='yourUsername'>kasutajanime</span>.",
diff --git a/public/language/et/search.json b/public/language/et/search.json
index 24de662022..b386a43bbc 100644
--- a/public/language/et/search.json
+++ b/public/language/et/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 tulemus(t) mis vastavad otsingule \"%2\", (%3 sekundit)",
     "no-matches": "Vasteid ei leitud",
     "advanced-search": "Täpsem otsing",
     "in": "Kus kohast",
-    "titles": "Tiitlid",
-    "titles-posts": "Tiitlid ja postitused",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Autor",
-    "in-categories": "Kategooriates",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Otsi vahekategooriatest",
     "has-tags": "Has tags",
     "reply-count": "Vastuste arv",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Rohkemalt",
     "at-most": "Vähemalt",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Postitamise aeg",
     "votes": "Votes",
     "newer-than": "Uuem kui",
@@ -28,7 +48,22 @@
     "three-months": "Kolm kuud",
     "six-months": "Kuus kuud",
     "one-year": "Üks aasta",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sorteeri",
+    "sort": "Sort",
     "last-reply-time": "Viimase vastuse aeg",
     "topic-title": "Teema tiitel",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Kategooria",
     "descending": "Kahanevas järjekorras",
     "ascending": "Kasvavas järjekorras",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Salvesta eelistused",
     "clear-preferences": "Kustuta eelistused",
     "search-preferences-saved": "Otsingueelistused salvestatud",
     "search-preferences-cleared": "Otsingueelistused kustutatud",
     "show-results-as": "Näita tulemusi kui",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/et/social.json b/public/language/et/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/et/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/et/tags.json b/public/language/et/tags.json
index 9ef34f6198..c07f8ad32e 100644
--- a/public/language/et/tags.json
+++ b/public/language/et/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Teemasid, mis sisaldaksid seda märksõna, ei eksisteeri.",
+    "no-tags-found": "No tags found",
     "tags": "Märksõnad",
     "enter_tags_here": "Sisesta märksõnad siia, %1 kuni %2 tähemärki märksõna kohta.",
     "enter_tags_here_short": "Sisesta märksõnu...",
diff --git a/public/language/et/topic.json b/public/language/et/topic.json
index 9c19a15e35..4cbeb3cbe8 100644
--- a/public/language/et/topic.json
+++ b/public/language/et/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Vajuta siia, et tagasi minna viimati loetud postituse juurde siin teemas.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Kustuta teema täielikult",
     "thread_tools.purge_confirm": "Oled kindel, et soovid puhastada selle teema?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Postitus liigutatud!",
     "fork_topic": "Fork Topic",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Vajuta postitustele, mida soovid forkida",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Sa ei ole postitusi valinud!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Sisesta teema pealkiri siia...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Katkesta",
     "composer.submit": "Postita",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Vastad %1'le",
     "composer.new_topic": "Uus teema",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/et/user.json b/public/language/et/user.json
index 4cd4865bea..dc09bd72d9 100644
--- a/public/language/et/user.json
+++ b/public/language/et/user.json
@@ -43,6 +43,7 @@
     "followers": "Jälgijad",
     "following": "Jälgimised",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Laadi uus pilt",
     "upload_new_picture_from_url": "Lae uus pilt üles URL'ilt",
     "current_password": "Praegune parool",
+    "new_password": "New Password",
     "change_password": "Vaheta parooli",
     "change_password_error": "Vigane parool!",
     "change_password_error_wrong_current": "Su praegune parool on vale!",
@@ -115,6 +117,8 @@
     "paginate_description": "Nummerda leheküljed ja postitused ning ära kasuta lõputut kerimist",
     "topics_per_page": "Teemasi ühe lehekülje kohta",
     "posts_per_page": "Postitusi ühe lehekülje kohta",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/et/users.json b/public/language/et/users.json
index 0579549097..6dbe0ecf75 100644
--- a/public/language/et/users.json
+++ b/public/language/et/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Hilised kasutajad",
     "top_posters": "Top postitajad",
     "most_reputation": "Kõige rohkem reputatsiooni",
     "most_flags": "Enim raporteerimisi",
     "search": "Otsi",
     "enter_username": "Sisesta kasutajanimi, keda soovid otsida",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Lae veel",
     "users-found-search-took": "%1 kasutaja(t) leiti! Otsing kestis %2 sekundit.",
     "filter-by": "Filtreeri",
diff --git a/public/language/fa-IR/admin/admin.json b/public/language/fa-IR/admin/admin.json
index adffa124c8..cde7da1de9 100644
--- a/public/language/fa-IR/admin/admin.json
+++ b/public/language/fa-IR/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | کنترل پنل مدیر کل نود‌بی‌بی",
 	"settings-header-contents": "محتوا",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/fa-IR/admin/appearance/customise.json b/public/language/fa-IR/admin/appearance/customise.json
index abd4299b03..5a3b2bfd15 100644
--- a/public/language/fa-IR/admin/appearance/customise.json
+++ b/public/language/fa-IR/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "سفارشی کردن CSS/LESS",
-	"custom-css.description": "کد های CSS/LESS خود را در این قسمت وارد کنید . بعد از همه ی استایل های دیگر اعمال میشود",
-	"custom-css.enable": "به کار گرفتن CSS/LESS سفارشی",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "جائا اسکریپت سفارشی",
 	"custom-js.description": "کد های جاوا اسکریپت خود را در این قسمت وارد کنید بعد از لود شدن تمام صفحه اجرا خواهند شد",
diff --git a/public/language/fa-IR/admin/dashboard.json b/public/language/fa-IR/admin/dashboard.json
index 7952eee216..cbc081c365 100644
--- a/public/language/fa-IR/admin/dashboard.json
+++ b/public/language/fa-IR/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/fa-IR/admin/extend/widgets.json b/public/language/fa-IR/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/fa-IR/admin/extend/widgets.json
+++ b/public/language/fa-IR/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/fa-IR/admin/manage/groups.json b/public/language/fa-IR/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/fa-IR/admin/manage/groups.json
+++ b/public/language/fa-IR/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/fa-IR/admin/manage/privileges.json b/public/language/fa-IR/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/fa-IR/admin/manage/privileges.json
+++ b/public/language/fa-IR/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/fa-IR/admin/settings/api.json b/public/language/fa-IR/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/fa-IR/admin/settings/api.json
+++ b/public/language/fa-IR/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/fa-IR/admin/settings/navigation.json b/public/language/fa-IR/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/fa-IR/admin/settings/navigation.json
+++ b/public/language/fa-IR/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/fa-IR/admin/settings/user.json b/public/language/fa-IR/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/fa-IR/admin/settings/user.json
+++ b/public/language/fa-IR/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/fa-IR/error.json b/public/language/fa-IR/error.json
index 4892cdf955..3bd9c7d6a6 100644
--- a/public/language/fa-IR/error.json
+++ b/public/language/fa-IR/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "بارگذاری برای مهمانان غیر فعال شده است",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "درخواست عضویت شما قبلا تایید شده است",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "این پست قبلا پاک شده است",
     "post-already-restored": "پست قبلا بازگردانی شده است.",
     "topic-already-deleted": "موضوع قبلا حذف شده است",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/fa-IR/flags.json b/public/language/fa-IR/flags.json
index eb51f18c93..0ed04f1140 100644
--- a/public/language/fa-IR/flags.json
+++ b/public/language/fa-IR/flags.json
@@ -3,25 +3,27 @@
 	"reports": "گزارش ها",
 	"first-reported": "اولین گزارش",
 	"no-flags": "هووووورا ! هیچ گزارشی یافت نشد.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "اختصاص دادن ",
 	"update": "به روزرسانی",
 	"updated": "به روز رسانی شد",
 	"resolved": "Resolved",
 	"target-purged": "محتوای این گزارش حذف شده است و در دسترس نیست.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "آمار گزارش های روزانه",
 	"quick-filters": "فیلتر های سریع",
 	"filter-active": "یک یا تعداد بیشتری از فیلتر ها در لیست گزارش ها فعال هستند",
 	"filter-reset": "حذف فیلتر ها",
 	"filters": "گزینه های فیلتر",
-	"filter-reporterId": "UID گزارش دهنده",
-	"filter-targetUid": "UID گزارش",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "نوع گزارش",
 	"filter-type-all": "تمام محتوا",
 	"filter-type-post": "پست",
 	"filter-type-user": "کاربر",
 	"filter-state": "وضعیت",
-	"filter-assignee": "UID رسیدگی کننده",
+	"filter-assignee": "Assignee",
 	"filter-cid": "دسته بندی",
 	"filter-quick-mine": "رسیدگی شده توسط من",
 	"filter-cid-all": "همه دسته بندی ها",
@@ -45,6 +47,7 @@
 
 	"notes": "یادداشت های گزارش",
 	"add-note": "افزودن یادداشت",
+	"edit-note": "Edit Note",
 	"no-notes": "بدون یادداشت",
 	"delete-note-confirm": "آیا مطمئن هستید میخواهید این یادداشت را حذف کنید؟",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/fa-IR/global.json b/public/language/fa-IR/global.json
index 5ccbedb8d5..5b07d8d744 100644
--- a/public/language/fa-IR/global.json
+++ b/public/language/fa-IR/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "بستن",
     "403.title": "دسترسی ندارید",
     "403.message": "به نظر می رسد شما به صفحه ای برخورد کرده اید که دسترسی به آن ندارید.",
-    "403.login": "شاید باید <a href='%1/login'>وارد شوید</a>؟",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "یافت نشد",
-    "404.message": "به نظر می رسد شما به صفحه ای برخورد کرده اید که وجود ندارد. بازگشت به <a href='%1/'>صفحه ی خانه</a>",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "خطای داخلی.",
     "500.message": "اوه! گویا اشتباهی رخ داده!",
     "400.title": "درخواست بد.",
-    "400.message": "به نظر می‌رسد که این پیوند مشکل دارد، لطفا دوباره بررسی کنید که این پیوند صحیح است و دوباره تلاش کنید، در غیر این‌صورت به <a href='%1/'>صفحه اصلی</a> بازگردید.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "نام‌نویسی",
     "login": "درون آمدن",
     "please_log_in": "لطفا به درون بیایید",
@@ -37,9 +37,13 @@
     "header.notifications": "آگاه‌سازی‌ها",
     "header.search": "جستجو",
     "header.profile": "نمایه",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "بارگذاری آگاه‌سازی‌ها",
     "chats.loading": "بارگذاری گفتگوها",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "به NodeBB خوش آمدید،  پلتفرم انجمن‌ساز آینده",
     "previouspage": "برگهٔ پیشین",
     "nextpage": "برگهٔ پسین",
@@ -54,7 +58,8 @@
     "users": "کاربران",
     "topics": "موضوع ها",
     "posts": "دیدگاه‌ها",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "بهترین",
     "controversial": "Controversial",
     "votes": "رای ها",
@@ -69,6 +74,7 @@
     "reputation": "اعتبار",
     "lastpost": "آخرین پست",
     "firstpost": "اولین پست",
+    "about": "About",
     "read_more": "بیشتر بخوانید",
     "more": "بیشتر",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 در %2 ارسال کرده است",
     "guest_posted_ago": "مهمان در %1 ارسال کرده است",
     "last_edited_by": "آخرین ویرایش توسط %1 انجام شده",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "هیچ دیدگاه تازه‌ای نیست",
     "norecenttopics": "هیچ جستار تازه‌ای نیست",
     "recentposts": "دیدگاه‌های تازه",
     "recentips": "آخرین آی‌پی وارد شده",
     "moderator_tools": "ابزار‌های مدیر",
+    "status": "Status",
     "online": "آنلاین",
     "away": "دور از دسترس",
     "dnd": "مزاحم نشوید",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "انتخاب",
-    "user-search-prompt": "برای پیدا کردن کاربر اینجا چیزی بنویسید..."
+    "user-search-prompt": "برای پیدا کردن کاربر اینجا چیزی بنویسید...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/fa-IR/groups.json b/public/language/fa-IR/groups.json
index 34116e987b..5a61601146 100644
--- a/public/language/fa-IR/groups.json
+++ b/public/language/fa-IR/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "گروه‌ها",
+    "members": "Members",
     "view_group": "مشاهده گروه",
     "owner": "مالک گروه",
     "new_group": "ساخت گروه جدید",
diff --git a/public/language/fa-IR/modules.json b/public/language/fa-IR/modules.json
index 63afa4e3f1..c8437026fc 100644
--- a/public/language/fa-IR/modules.json
+++ b/public/language/fa-IR/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "چت با",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "شما در حال مشاهده پیام های قدیمی هستید، برای دیدن پیام های اخیر کلیک کنید.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "ارسال",
     "chat.no_active": "شما هیچ گفتگوی فعالی ندارید.",
     "chat.user_typing": "%1 در حال نوشتن است...",
@@ -42,6 +46,7 @@
     "composer.compose": "ارسال",
     "composer.show_preview": "نمایش پیش‌نمایش",
     "composer.hide_preview": "مخفی کردن پیش‌نمایش",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 در %2 گفته است:",
     "composer.user_said": "%1 گفته است:",
     "composer.discard": "آیا از دور انداختن این پست اطمینان دارید؟",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "باشه",
     "bootbox.cancel": "انصراف",
     "bootbox.confirm": "تایید",
diff --git a/public/language/fa-IR/pages.json b/public/language/fa-IR/pages.json
index 4b7a4f977d..4e31003af3 100644
--- a/public/language/fa-IR/pages.json
+++ b/public/language/fa-IR/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "دسته بندی های پیگیری شده %1",
     "account/bookmarks": "%1 پست نشانک گذاری شده است",
     "account/settings": "تنظیمات کاربر",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "موضوع های دیده شده توسط \"%1\"",
     "account/ignored": "موضوع های نادیده گرفته شده توسط %1",
     "account/upvoted": "رای مثبت داده شده به پست ها توسط  %1",
diff --git a/public/language/fa-IR/post-queue.json b/public/language/fa-IR/post-queue.json
index e029efb278..c7e8609cfd 100644
--- a/public/language/fa-IR/post-queue.json
+++ b/public/language/fa-IR/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "صف پست",
-	"description": "پستی در صف پست وجود ندارد. <br> برای فعال سازی این قابلیت، به <a href=\"%1\"> تنظیمات &rarr; پست &rarr; صف پست </a> بروید و <strong>صف پست</strong> را فعال کنید.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/fa-IR/recent.json b/public/language/fa-IR/recent.json
index 5cf0e71685..0781d00353 100644
--- a/public/language/fa-IR/recent.json
+++ b/public/language/fa-IR/recent.json
@@ -7,13 +7,5 @@
     "alltime": "همه زمانها",
     "no_recent_topics": "هیچ موضوع تازه‌ای نیست.",
     "no_popular_topics": "هیچ موضوع پربازدیدی وجود ندارد",
-    "there-is-a-new-topic": "یک موضوع جدید موجود است.",
-    "there-is-a-new-topic-and-a-new-post": "یک موضوع جدید و یک پست جدید موجود است.",
-    "there-is-a-new-topic-and-new-posts": "یک موضوع جدید و %1 پست جدید موجود است.",
-    "there-are-new-topics": "%1 موضوع جدید موجود است.",
-    "there-are-new-topics-and-a-new-post": "%1 موضوع جدید و یک پست جدید موجود است.",
-    "there-are-new-topics-and-new-posts": "%1 موضوع جدید و %2 پست جدید موجود است.",
-    "there-is-a-new-post": "یک پست جدید موجود است.",
-    "there-are-new-posts": "%1 پست جدید موجود است.",
-    "click-here-to-reload": "برای بارگذاری مجدد کلیک کنید."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/fa-IR/register.json b/public/language/fa-IR/register.json
index d7876aa359..4807dc5ad0 100644
--- a/public/language/fa-IR/register.json
+++ b/public/language/fa-IR/register.json
@@ -1,5 +1,6 @@
 {
     "register": "نام‌نویسی",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "انصراف ثبت نام",
     "help.email": "به طور پیش‌فرض، ایمیل‌ی شما از دید همگان پنهان می‌شود.",
     "help.username_restrictions": "یک نام کاربری یکتا بین %1 و %2 نویسه. دیگران می‌توانند با @<span id='yourUsername'>نام‌کاربری</span> به شما اشاره کنند.",
diff --git a/public/language/fa-IR/search.json b/public/language/fa-IR/search.json
index 9f4d57c17c..5597b131db 100644
--- a/public/language/fa-IR/search.json
+++ b/public/language/fa-IR/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 نتیجهٔ هم‌خوان با \"%2\"، (%3  ثانیه)",
     "no-matches": "هیچ موردی یافت نشد",
     "advanced-search": "جستجوی پیشرفته",
     "in": "در",
-    "titles": "عناوین",
-    "titles-posts": "عناوین و پست ها",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "تطابق کلمات",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "همه",
     "any": "هرکدام",
     "posted-by": "ارسال شده توسط",
-    "in-categories": "در دسته بندی ها",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "جستجوی زیر دسته ها",
     "has-tags": "دارای برچسب های",
     "reply-count": "تعداد پاسخ",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "حداقل",
     "at-most": "حداکثر",
     "relevance": "ارتباط",
+    "time": "Time",
     "post-time": "زمان ارسال",
     "votes": "Votes",
     "newer-than": "جدیدتر از",
@@ -28,7 +48,22 @@
     "three-months": "سه ماه",
     "six-months": "شش ماه",
     "one-year": "یک سال",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "مرتب‌سازی بر اساس",
+    "sort": "Sort",
     "last-reply-time": "زمان آخرین پاسخ",
     "topic-title": "عنوان موضوع",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "دسته بندی",
     "descending": "به ترتیب نزولی",
     "ascending": "به ترتیب صعودی",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "ذخیره تنظیمات",
     "clear-preferences": "پاک کردن تنظیمات",
     "search-preferences-saved": "تنظیمات جستحو ذخیره شد",
     "search-preferences-cleared": "تنظیمات جستجو پاک شد",
     "show-results-as": "نمایش نتایج به عنوان",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/fa-IR/social.json b/public/language/fa-IR/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/fa-IR/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/fa-IR/tags.json b/public/language/fa-IR/tags.json
index b5468b2e92..bcb719efca 100644
--- a/public/language/fa-IR/tags.json
+++ b/public/language/fa-IR/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "جُستاری با این برچسب وجود ندارد.",
+    "no-tags-found": "No tags found",
     "tags": "برچسب‌ها",
     "enter_tags_here": "برچسب‌ها را اینجا وارد کنید، هر کدام بین %1 و %2 کاراکتر.",
     "enter_tags_here_short": "برچسب‌ها را وارد کنید...",
diff --git a/public/language/fa-IR/topic.json b/public/language/fa-IR/topic.json
index 8a6375e5fc..0b831c1cac 100644
--- a/public/language/fa-IR/topic.json
+++ b/public/language/fa-IR/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "کپی IP",
     "ban-ip": "مسدود کردن IP",
     "view-history": "تاریخچه ویرایش",
-    "locked-by": "قفل شده توسط",
-    "unlocked-by": "باز شده توسط",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "برای بازگشت به آخرین پست در این موضوع اینجا را کلیک کنید.",
     "flag-post": "گزارش این پست",
     "flag-user": "گزارش این کاربر",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "پاک کردن موضوع",
     "thread_tools.purge_confirm": "آیا مطمئنید که میمید این موضوع را پاکسازی کنید؟",
     "thread_tools.merge_topics": "ادغام موضوع ها",
-    "thread_tools.merge": "ادغام",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "موضوع به \"%1\" منتقل خواهد شد. برای جلوگیری از انتقال کلیک کنید.",
     "topic_move_multiple_success": "موضوع ها به \"%1\" منتقل خواهد شد. برای جلوگیری از انتقال کلیک کنید.",
     "topic_move_all_success": "تمام موضوع ها به \"%1\" منتقل خواهند شد. برای جلوگیری از انتقال کلیک کنید.",
@@ -121,7 +135,7 @@
     "post_moved": "پست جابه‌جا شد!",
     "fork_topic": "شاخه ساختن از موضوع",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "پست‌هایی را که می‌خواهید به موضوع تازه ببرید، انتخاب کنید",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "هیچ پستی انتخاب نشده!",
     "no-posts-selected": "هیچ پستی انتخاب نشده!",
     "x-posts-selected": "%1 پست انتخاب شده",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "عنوان جدید برای موضوع",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "عنوان موضوعتان را اینجا بنویسید...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "انصراف",
     "composer.submit": "ارسال",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "پاسخ به %1",
     "composer.new_topic": "موضوع تازه",
@@ -184,5 +201,7 @@
     "last-post": "آخرین پست",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/fa-IR/user.json b/public/language/fa-IR/user.json
index 8e7f8c15aa..024689a38b 100644
--- a/public/language/fa-IR/user.json
+++ b/public/language/fa-IR/user.json
@@ -43,6 +43,7 @@
     "followers": "دنبال‌کننده‌ها",
     "following": "دنبال‌شونده‌ها",
     "blocks": "کاربران مسدود شده",
+    "blocked-users": "Blocked users",
     "block_toggle": "مسدود کردن",
     "block_user": "مسدود کردن کاربر",
     "unblock_user": "رفع مسدودی کاربر",
@@ -68,6 +69,7 @@
     "upload_new_picture": "بارگذاری تصویر تازه",
     "upload_new_picture_from_url": "بارگذاری تصویر جدید از نشانی وب",
     "current_password": "کلمه عبور کنونی",
+    "new_password": "New Password",
     "change_password": "تغیر کلمه عبور",
     "change_password_error": "کلمه عبور نامعتبر!",
     "change_password_error_wrong_current": "این کلمه عبورٔ شما نادرست است.",
@@ -115,6 +117,8 @@
     "paginate_description": "صفحه بندی و نمایش موضوع ها و پست‌ها  به جای نمایش بر اساس اسکرول موس",
     "topics_per_page": "شمار موضوع ها در هر برگه",
     "posts_per_page": "شمار پست‌ها در هر برگه",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "حداکثر %1",
     "acp_language": "زبان پنل ادمین",
     "notifications": "آگاه‌سازی‌ها",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "یادداشت مدیر ذخیره شد",
     "info.moderation-note.add": "افزودن یادداشت",
     "sessions.description": "این صفحه به شما امکان می دهد تا همه Session های فعال حساب خود در انجمن را ببینید و در صورت نیاز آن ها را باطل کنید. شما می توانید Session فعلی خود را با خروج از حساب خود باطل کنید.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "این انجمن اطلاعات شخصی شما را جمع‌آوری و پردازش می‌کند",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/fa-IR/users.json b/public/language/fa-IR/users.json
index 165b25b0a9..77187a41e6 100644
--- a/public/language/fa-IR/users.json
+++ b/public/language/fa-IR/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "آخرین کاربران",
     "top_posters": "برترین فرستنده‌ها",
     "most_reputation": "بیشترین اعتبار",
     "most_flags": "بیشترین پرچم‌ها",
     "search": "جستجو",
     "enter_username": "یک نام کاربری برای جستجو وارد کنید",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "بارگذاری بیش‌تر",
     "users-found-search-took": "%1 کاربر(ها) یافت شد! جستجو %2 ثانیه زمان گرفت.",
     "filter-by": "فیلتر با",
diff --git a/public/language/fi/admin/admin.json b/public/language/fi/admin/admin.json
index 73e4153e13..e87cfabb89 100644
--- a/public/language/fi/admin/admin.json
+++ b/public/language/fi/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB admin hallintapaneeli",
 	"settings-header-contents": "Sisältö",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/fi/admin/appearance/customise.json b/public/language/fi/admin/appearance/customise.json
index 799cf87c66..6abfb179f0 100644
--- a/public/language/fi/admin/appearance/customise.json
+++ b/public/language/fi/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Kustomoi CSS/LESS -tiedostoja",
-	"custom-css.description": "Syötä haluamasi CSS/LESS -määritykset tähän. Nämä määritykset menevät kaikkien muiden tyylimäärittelyjen edelle.",
-	"custom-css.enable": "Salli CSS/LESS -kustomoinnit",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Kustomoi Javascriptiä",
 	"custom-js.description": "Syötä Javascript-sisältö tähän. Se suoritetaan, kun sivu on latautunut valmiiksi.",
diff --git a/public/language/fi/admin/dashboard.json b/public/language/fi/admin/dashboard.json
index 2fa46e3a70..a4b404d80d 100644
--- a/public/language/fi/admin/dashboard.json
+++ b/public/language/fi/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Takaisin ohjausnäkymään",
 	"details.no-users": "Ei liittyneitä käyttäjiä valitulla aikavälillä.",
 	"details.no-topics": "Ei luotuja aiheita valitulla aikavälillä.",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "Ei sisäänkirjautumisia valitulla aikavälillä.",
 	"details.logins-static": "NodeBB tallettaa istuntotiedot vain %1 päivän ajaksi, joten tämä kuvaaja näyttää vain viimeisimpänä aktiivisena olleet istunnot.",
-	"details.logins-login-time": "Sisäänkirjautumisaika"
+	"details.logins-login-time": "Sisäänkirjautumisaika",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/fi/admin/extend/widgets.json b/public/language/fi/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/fi/admin/extend/widgets.json
+++ b/public/language/fi/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/fi/admin/manage/groups.json b/public/language/fi/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/fi/admin/manage/groups.json
+++ b/public/language/fi/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/fi/admin/manage/privileges.json b/public/language/fi/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/fi/admin/manage/privileges.json
+++ b/public/language/fi/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/fi/admin/settings/api.json b/public/language/fi/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/fi/admin/settings/api.json
+++ b/public/language/fi/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/fi/admin/settings/navigation.json b/public/language/fi/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/fi/admin/settings/navigation.json
+++ b/public/language/fi/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/fi/admin/settings/user.json b/public/language/fi/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/fi/admin/settings/user.json
+++ b/public/language/fi/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/fi/error.json b/public/language/fi/error.json
index 434322d61e..4388a34bfb 100644
--- a/public/language/fi/error.json
+++ b/public/language/fi/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Guest uploading has been disabled",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Your membership request has already been submitted",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Tämä viesti on jo poistettu",
     "post-already-restored": "Tämä viesti on jo palautettu",
     "topic-already-deleted": "Tämä aihe on jo poistettu",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/fi/flags.json b/public/language/fi/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/fi/flags.json
+++ b/public/language/fi/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/fi/global.json b/public/language/fi/global.json
index f4a9973905..c910608d4f 100644
--- a/public/language/fi/global.json
+++ b/public/language/fi/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Sulje",
     "403.title": "Pääsy kielletty",
     "403.message": "Olet päätynyt sivulle, johon sinulla ei ole tarvittavia oikeuksia.",
-    "403.login": "Sinun pitäisi kai <a href='%1/login'>kirjautua sisään</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Ei löydy",
-    "404.message": "Olet päätynyt sivulle, jota ei ole olemassa. Palaa <a href='%1/'>etusivulle</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Palvelinvirhe",
     "500.message": "Oho! Jotain meni pieleen!",
     "400.title": "Bad Request.",
-    "400.message": "Näyttää siltä, että linkki on virheellinen. Tarkista vielä linkin muoton ja yritä uudestaan. Muusa tapauksessa palaa takaisin <a href='%1/'>kotisivulle</a>",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Rekisteröidy",
     "login": "Kirjaudu",
     "please_log_in": "Kirjaudu, ole hyvä",
@@ -37,9 +37,13 @@
     "header.notifications": "Ilmoitukset",
     "header.search": "Hae",
     "header.profile": "Profiili",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Ladataan ilmoituksia",
     "chats.loading": "Ladataan keskusteluja",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Tervetuloa NodeBB:hen, tulevaisuuden keskustelualustalle.",
     "previouspage": "Edellinen sivu",
     "nextpage": "Seuraava sivu",
@@ -54,7 +58,8 @@
     "users": "Käyttäjät",
     "topics": "Aiheet",
     "posts": "Viestit",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Paras",
     "controversial": "Controversial",
     "votes": "Ääniä",
@@ -69,6 +74,7 @@
     "reputation": "Maine",
     "lastpost": "Viimeisin viesti",
     "firstpost": "Ensimmäinen viesti",
+    "about": "About",
     "read_more": "lue lisää",
     "more": "Lisää",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 lähetti %2",
     "guest_posted_ago": "Vieras kirjoitti %1",
     "last_edited_by": "Viimeksi muokannut %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Ei viimeaikaisia viestejä",
     "norecenttopics": "Ei viimeaikaisia aiheita",
     "recentposts": "Viimeisimmät viestit",
     "recentips": "Äskettäin kirjautuneet IP-osoitteet",
     "moderator_tools": "Ylläpidon työkalut",
+    "status": "Status",
     "online": "Online",
     "away": "Poissa",
     "dnd": "Älä häiritse",
@@ -122,5 +130,7 @@
     "edited": "Muokattu",
     "disabled": "Disabled",
     "select": "Valitse",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/fi/groups.json b/public/language/fi/groups.json
index 0346460360..6e47780955 100644
--- a/public/language/fi/groups.json
+++ b/public/language/fi/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Ryhmät",
+    "members": "Members",
     "view_group": "Tarkaste ryhmää",
     "owner": "Ryhmän omistaja",
     "new_group": "Luo uusi ryhmä",
diff --git a/public/language/fi/modules.json b/public/language/fi/modules.json
index 554a987c0d..66ae1ebbae 100644
--- a/public/language/fi/modules.json
+++ b/public/language/fi/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Lähetä",
     "chat.no_active": "Sinulla ei ole aktiivisia keskusteluita.",
     "chat.user_typing": "%1 kirjoittaa ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Compose",
     "composer.show_preview": "Show Preview",
     "composer.hide_preview": "Hide Preview",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 said in %2:",
     "composer.user_said": "%1 sanoi:",
     "composer.discard": "Oletko varma, että haluat hylätä viestin?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancel",
     "bootbox.confirm": "Confirm",
diff --git a/public/language/fi/pages.json b/public/language/fi/pages.json
index 52c4ac8cf3..08339c5fe3 100644
--- a/public/language/fi/pages.json
+++ b/public/language/fi/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "Käyttäjän asetukset",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "%1 seuraamat aiheet",
     "account/ignored": "%1 sivuuttamat aiheet",
     "account/upvoted": "%1 tykkäämät viestit",
diff --git a/public/language/fi/post-queue.json b/public/language/fi/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/fi/post-queue.json
+++ b/public/language/fi/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/fi/recent.json b/public/language/fi/recent.json
index d7a3dfb5ce..6e19cd0832 100644
--- a/public/language/fi/recent.json
+++ b/public/language/fi/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Alusta lähtien",
     "no_recent_topics": "Ei viimeisimpiä aiheita.",
     "no_popular_topics": "Ei päivityksiä suosituimmissa aiheissa",
-    "there-is-a-new-topic": "Uusi aihe.",
-    "there-is-a-new-topic-and-a-new-post": "Uusi aihe ja uusi viesti.",
-    "there-is-a-new-topic-and-new-posts": "Uusi aihe ja %1 uutta viestiä.",
-    "there-are-new-topics": "%1 uutta aihetta.",
-    "there-are-new-topics-and-a-new-post": "%1 uutta aihetta ja uusi viesti.",
-    "there-are-new-topics-and-new-posts": "%1 uutta aihetta ja %2 uutta viestiä.",
-    "there-is-a-new-post": "Ei uusia viestejä",
-    "there-are-new-posts": "%1 uutta viestiä.",
-    "click-here-to-reload": "Päivitä napsauttamalla tätä."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/fi/register.json b/public/language/fi/register.json
index fb25e15981..0ebe0f8e0f 100644
--- a/public/language/fi/register.json
+++ b/public/language/fi/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Rekisteröidy",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Peruuta rekisteröinti",
     "help.email": "Oletuksena sähköpostiosoitettasi ei näytetä muille.",
     "help.username_restrictions": "Yksilöllisen käyttäjätunnuksen pitää olla %1-%2 merkkiä pitkä. Toiset voivat mainita sinut @<span id='yourUsername'>username</span>.",
diff --git a/public/language/fi/search.json b/public/language/fi/search.json
index 63c9c31768..efc54344c0 100644
--- a/public/language/fi/search.json
+++ b/public/language/fi/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 tulosta löytyi hakusanalla \"%2\" (%3 sekunnissa).",
     "no-matches": "Ei hakuosumia",
     "advanced-search": "Laajennettu haku",
     "in": "In",
-    "titles": "Otsikot",
-    "titles-posts": "Otsikot ja Viestit",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Kaikki",
     "any": "Mikä tahansa",
     "posted-by": "Kirjoittanut",
-    "in-categories": "Kategorioissa",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Hae alikategorioista",
     "has-tags": "Sisältää tagit",
     "reply-count": "Vastausten määrä",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Vähintään",
     "at-most": "Enintään",
     "relevance": "Relevanssi",
+    "time": "Time",
     "post-time": "Julkaisuaika",
     "votes": "Ääniä",
     "newer-than": "Uudemmat kuin",
@@ -28,7 +48,22 @@
     "three-months": "Kolme kuukautta",
     "six-months": "Kuusi kuukautta",
     "one-year": "Yksi vuosi",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Lajitteluperuste",
+    "sort": "Sort",
     "last-reply-time": "Vastattu viimeksi",
     "topic-title": "Aiheen otsikko",
     "topic-votes": "Aiheiden äänet",
@@ -39,11 +74,36 @@
     "category": "Kategoria",
     "descending": "Laskevassa järjestyksessä",
     "ascending": "Nousevassa järjestyksessä",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Tallenna asetukset",
     "clear-preferences": "Tyhjennä asetukset",
     "search-preferences-saved": "Haun asetukset tallennettu",
     "search-preferences-cleared": "Haun asetukset nollattu",
     "show-results-as": "Näytä tulokset",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Näytä lisää tuloksia (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/fi/social.json b/public/language/fi/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/fi/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/fi/tags.json b/public/language/fi/tags.json
index c6e17ae86f..90976a33c3 100644
--- a/public/language/fi/tags.json
+++ b/public/language/fi/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Ei viimeisimpiä aiheita tällä tagilla.",
+    "no-tags-found": "No tags found",
     "tags": "Tagit",
     "enter_tags_here": "Syötä tagit tähän merkkien %1 ja %2 väliin.",
     "enter_tags_here_short": "Syötä tagit...",
diff --git a/public/language/fi/topic.json b/public/language/fi/topic.json
index 4d20b476bc..140ba3d9c0 100644
--- a/public/language/fi/topic.json
+++ b/public/language/fi/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Kopioi IP",
     "ban-ip": "Ban IP",
     "view-history": "Muokkaa historiaa",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Klikkaa tästä palataksesi viimeisimpään luettuun viestiin tässä aiheessa",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Poista aihe pysyvästi",
     "thread_tools.purge_confirm": "Oletko varma, että haluat poistaa pysyvästi tämän aiheen?",
     "thread_tools.merge_topics": "Sulauta aiheet",
-    "thread_tools.merge": "Sulauta",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Viestit siirretty!",
     "fork_topic": "Haaroita keskustelu",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Napsauta viestejä, jotka haluat haaroittaa",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Ei valittuja viestejä!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Valitse viestit jotka haluat siirtää toiselle henkilölle",
     "composer.title_placeholder": "Syötä aiheesi otsikko tähän...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Hylkää",
     "composer.submit": "Lähetä",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Vastaus viestiin %1",
     "composer.new_topic": "Uusi aihe",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/fi/user.json b/public/language/fi/user.json
index 0d423311a4..16eabf1e16 100644
--- a/public/language/fi/user.json
+++ b/public/language/fi/user.json
@@ -43,6 +43,7 @@
     "followers": "Seuraajat",
     "following": "Seuratut",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Lataa uusi kuva",
     "upload_new_picture_from_url": "Lataa uusi kuva URL-osoitteesta",
     "current_password": "Nykyinen salasana",
+    "new_password": "New Password",
     "change_password": "Vaihda salasana",
     "change_password_error": "Virheellinen salasana",
     "change_password_error_wrong_current": "Nykyinen salasanasi ei ole oikein!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paginate topics and posts instead of using infinite scroll",
     "topics_per_page": "Aihetta per sivu",
     "posts_per_page": "Viestiä per sivu",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Lisää muistiinpano",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/fi/users.json b/public/language/fi/users.json
index 13b22e8808..a735704ad5 100644
--- a/public/language/fi/users.json
+++ b/public/language/fi/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "Kaikki käyttäjät",
     "latest_users": "Viimeisimmät käyttäjät",
     "top_posters": "Aktiivisimmat viestittelijät",
     "most_reputation": "Eniten mainetta",
     "most_flags": "Eniten ",
     "search": "Hae",
     "enter_username": "Syötä käyttäjätunnus hakeaksesi",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Lataa lisää",
     "users-found-search-took": "%1 käyttäjä(ä) löytyi! Haku kesti %2 sekuntia.",
     "filter-by": "Suodata",
diff --git a/public/language/fr/admin/admin.json b/public/language/fr/admin/admin.json
index df1a269e87..e8c6d77ef9 100644
--- a/public/language/fr/admin/admin.json
+++ b/public/language/fr/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Panneau d'administration NodeBB",
 	"settings-header-contents": "Contenus",
-	"changes-saved": "Changements sauvegardés !",
-	"changes-saved-message": "Vos modifications de la configuration NodeBB ont été enregistrées.",
 	"changes-not-saved": "Changements non sauvegardés !",
 	"changes-not-saved-message": "NodeBB a rencontré un problème lors de l'enregistrement de vos modifications ! (%1)"
 }
\ No newline at end of file
diff --git a/public/language/fr/admin/appearance/customise.json b/public/language/fr/admin/appearance/customise.json
index f72d2576b8..5e239f3a6c 100644
--- a/public/language/fr/admin/appearance/customise.json
+++ b/public/language/fr/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "CSS/LESS personnalisé",
-	"custom-css.description": "Entrez vos propres déclarations CSS/LESS ici, qui seront appliquées après tous les autres styles.",
-	"custom-css.enable": "Activer le CSS/LESS personnalisé",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Javascript personnalisé",
 	"custom-js.description": "Entrez votre Javascript ici. Celui-ci sera exécuté après le chargement complet de la page.",
diff --git a/public/language/fr/admin/dashboard.json b/public/language/fr/admin/dashboard.json
index 7328224f86..8f9540bb23 100644
--- a/public/language/fr/admin/dashboard.json
+++ b/public/language/fr/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Retour au Tableau de bord",
 	"details.no-users": "Aucun utilisateur ne s'est joint dans le délai sélectionné",
 	"details.no-topics": "Aucun sujet n'a été publié dans la période sélectionnée",
-	"details.no-searches": "Aucune recherche n'a encore été effectuée",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "Aucune connexion n'a été enregistrée dans le délai sélectionné",
 	"details.logins-static": "NodeBB n'enregistre que les données de session pendant %1 jours, et le tableau ci-dessous n'affichera donc que les dernières sessions actives",
-	"details.logins-login-time": "Heure de connexion"
+	"details.logins-login-time": "Heure de connexion",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/fr/admin/extend/widgets.json b/public/language/fr/admin/extend/widgets.json
index ebdff25296..0d46b1e6fe 100644
--- a/public/language/fr/admin/extend/widgets.json
+++ b/public/language/fr/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Aucun",
 	"container.well": "Well",
 	"container.jumbotron": "Jombotron",
-	"container.panel": "Panneau",
-	"container.panel-header": "En-tête de panneau",
-	"container.panel-body": "Corps de panneau",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alerte",
 
 	"alert.confirm-delete": "Êtes-vous sûr de vouloir supprimer ce widget ?",
diff --git a/public/language/fr/admin/manage/groups.json b/public/language/fr/admin/manage/groups.json
index be41ad2d82..5133ffdaf6 100644
--- a/public/language/fr/admin/manage/groups.json
+++ b/public/language/fr/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Retour",
 
 	"edit.no-users-found": "Aucun utilisateur trouvé",
-	"edit.confirm-remove-user": "Êtes-vous sûr de vouloir retirer cet utilisateur ?",
-	"edit.save-success": "Changements sauvegardés !"
+	"edit.confirm-remove-user": "Êtes-vous sûr de vouloir retirer cet utilisateur ?"
 }
\ No newline at end of file
diff --git a/public/language/fr/admin/manage/privileges.json b/public/language/fr/admin/manage/privileges.json
index a7b3eea13a..0df618a3df 100644
--- a/public/language/fr/admin/manage/privileges.json
+++ b/public/language/fr/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Voulez-vous vraiment accorder le privilège de modération à ce groupe d'utilisateurs ?</strong> Ce groupe est public et tous les utilisateurs peuvent le rejoindre à volonté.",
 	"alert.confirm-admins-mods": "<strong>Voulez-vous vraiment attribuer les droits aux & quot; d'Administrations & amp; Modérations & quot;  à cet utilisateur / groupe? </strong>Les utilisateurs disposant de ce privilège peuvent promouvoir et rétrograder d'autres utilisateurs à des postes privilégiés, <em>y compris le super administrateur</em>",
 	"alert.confirm-save": "Veuillez confirmer votre intention de sauvegarder ces privilèges",
-	"alert.saved": "Changements de privilèges enregistrés et appliqués",
 	"alert.confirm-discard": "Êtes-vous sûr de vouloir annuler vos modifications de privilèges ?",
 	"alert.discarded": "Modifications de privilèges annulés",
 	"alert.confirm-copyToAll": "Voulez-vous vraiment appliquer cet ensemble de <strong>%1</strong> à <strong>toutes les catégories</strong>?",
diff --git a/public/language/fr/admin/settings/api.json b/public/language/fr/admin/settings/api.json
index 87ae70eff0..d758798910 100644
--- a/public/language/fr/admin/settings/api.json
+++ b/public/language/fr/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "ID Utilisateur",
 	"uid-help-text": "Spécifiez un ID utilisateur à associer à ce token. Si l'ID utilisateur est 0, il sera considéré comme un token <code>maître<em>, qui peut prendre l'identité d'autres utilisateurs en fonction du paramètre <code>_uid</code>",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "Aucune description spécifiée.",
 	"token-on-save": "Le token sera généré une fois le formulaire enregistré"
 }
\ No newline at end of file
diff --git a/public/language/fr/admin/settings/navigation.json b/public/language/fr/admin/settings/navigation.json
index 1305aed145..0772be7696 100644
--- a/public/language/fr/admin/settings/navigation.json
+++ b/public/language/fr/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groupes:",
 	"open-new-window": "Ouvrir dans une nouvelle fenêtre",
 	"dropdown": "Menu déroulant",
-	"dropdown-placeholder": "Placez vos éléments de menu déroulant ci-dessous, par exemple : <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Supprimer",
 	"btn.disable": "Désactiver",
diff --git a/public/language/fr/admin/settings/user.json b/public/language/fr/admin/settings/user.json
index a6e6c9f25f..680552fff8 100644
--- a/public/language/fr/admin/settings/user.json
+++ b/public/language/fr/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Jours",
 	"session-time-seconds": "Secondes",
 	"session-time-help": "Ces valeurs permettent de définir la durée pendant laquelle un utilisateur reste connecté lorsqu'il consulte le lien \"Se souvenir de moi\". Notez que seulement une de ces valeurs sera utilisée. S'il n'y a pas de valeur en <i>secondes</i>, la valeur sera en <i>jours</i>. S'il n'y a pas de valeur en <i>jours</i>, la valeur sera par défaut est <i>14 jours</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes après que l'utilisateur soit considéré comme inactif",
 	"online-cutoff-help": "Si l'utilisateur n'effectue aucune action pendant cette durée, il est considéré comme inactif et ne reçoit pas de mises à jour en temps réel.",
 	"registration": "Inscription des utilisateurs",
diff --git a/public/language/fr/error.json b/public/language/fr/error.json
index 97590c8ef0..ceb21a3358 100644
--- a/public/language/fr/error.json
+++ b/public/language/fr/error.json
@@ -89,7 +89,7 @@
     "category-not-selected": "Aucune catégorie sélectionnée",
     "too-many-posts": "Vous ne pouvez poster que toutes les %1 seconde(s) - merci de patienter avant de publier à nouveau.",
     "too-many-posts-newbie": "En tant que nouvel utilisateur, vous ne pouvez poster que toutes les %1 seconde(s) jusqu'à ce que vous obteniez une réputation de %2 - patientez avant de publier de nouveau.",
-    "already-posting": "You are already posting",
+    "already-posting": "Vous pouvez poster",
     "tag-too-short": "Veuillez entrer un mot-clé plus long. Les mots-clés doivent contenir au moins %1 caractère(s).",
     "tag-too-long": "Veuillez entrer un mot-clé plus court. Les mot-clés ne peuvent excéder %1 caractère(s).",
     "not-enough-tags": "Pas assez de mots-clés. Les sujets doivent avoir au moins %1 mots-clé(s).",
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "L'envoi de fichiers a été désactivé pour les invités",
     "cors-error": "Impossible d'envoyer l'image en raison d'une erreur de configuration CORS",
     "upload-ratelimit-reached": "Vous avez envoyé trop de fichiers à la fois. Veuillez réessayer plus tard.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Veuillez sélectionner une date ultérieure.",
     "invalid-schedule-date": "Veuillez saisir une date et une heure valide.",
     "cant-pin-scheduled": "Les sujets planifiés ne peuvent pas être (dé)épinglés.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Votre demande d'adhésion a déjà été envoyée.",
     "group-join-disabled": "Vous ne pouvez pas rejoindre ce groupe pour le moment.",
     "group-leave-disabled": "Vous ne pouvez pas quitter ce groupe pour le moment.",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Message déjà supprimé",
     "post-already-restored": "Message déjà restauré",
     "topic-already-deleted": "Sujet déjà supprimé",
@@ -224,5 +227,6 @@
     "api.429": "Vous avez fait trop de demandes, veuillez réessayer plus tard",
     "api.500": "Une erreur inattendue s'est produite lors de la tentative de traitement de votre demande.",
     "api.501": "L'accès n'est pas encore fonctionnel, veuillez réessayer demain",
-    "api.503": "L'accès n'est pas disponible actuellement en raison d'une configuration de serveur"
+    "api.503": "L'accès n'est pas disponible actuellement en raison d'une configuration de serveur",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/fr/flags.json b/public/language/fr/flags.json
index b19944d108..d906b8bac0 100644
--- a/public/language/fr/flags.json
+++ b/public/language/fr/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Rapports",
 	"first-reported": "Premier rapport",
 	"no-flags": "Excellent ! Aucun signalement trouvé.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assigné",
 	"update": "Mettre à jour",
 	"updated": "Mis à jour",
 	"resolved": "Résolu",
 	"target-purged": "Le rapport pour ce signalement a été supprimé et n'est plus accessible",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Signalements du jour",
 	"quick-filters": "Filtres rapides",
 	"filter-active": "Il y a un ou plusieurs filtres actifs dans cette liste de signalements",
 	"filter-reset": "Supprimer les filtres",
 	"filters": "Options de filtre",
-	"filter-reporterId": "UID du reporteur",
-	"filter-targetUid": "UID signalé",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Type de signalement",
 	"filter-type-all": "Tout le contenu",
 	"filter-type-post": "Message",
 	"filter-type-user": "Utilisateur",
 	"filter-state": "Etat",
-	"filter-assignee": "UID assigné",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Catégorie",
 	"filter-quick-mine": "Assigné à moi",
 	"filter-cid-all": "Toutes les catégories",
@@ -45,6 +47,7 @@
 
 	"notes": "Notes de signalement",
 	"add-note": "Ajouter une note",
+	"edit-note": "Edit Note",
 	"no-notes": "aucune note partagée",
 	"delete-note-confirm": "Êtes-vous sûr de bien vouloir supprimer cette note de signalement ?",
 	"delete-flag-confirm": "Êtes-vous sûr de bien vouloir supprimer ce signalement ?",
diff --git a/public/language/fr/global.json b/public/language/fr/global.json
index 6c94b1bd53..bd6d5cd2d8 100644
--- a/public/language/fr/global.json
+++ b/public/language/fr/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Fermer",
     "403.title": "Accès refusé",
     "403.message": "Il semble que vous ayez atteint une page à laquelle vous n'avez pas accès.",
-    "403.login": "Peut-être deviez vous  <a href='%1/login'>essayer de vous connecter</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Introuvable",
-    "404.message": "Il semble que vous ayez atteint une page qui n'existe pas. Retourner à la <a href='%1/'>page d'accueil</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Erreur Interne.",
     "500.message": "Oops ! Il semblerait que quelque chose se soit mal passé !",
     "400.title": "Requête erronée.",
-    "400.message": "Il semble que ce lien ne soit pas correct, merci de le vérifier. Sinon, retournez à la <a href='%1/'>page d'accueil</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "S'inscrire",
     "login": "Se connecter",
     "please_log_in": "Veuillez vous connecter",
@@ -37,9 +37,13 @@
     "header.notifications": "Notifications",
     "header.search": "Recherche",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Chargement des notifications",
     "chats.loading": "Chargement des discussions",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Bienvenue sur NodeBB, la plate-forme de discussion du futur.",
     "previouspage": "Page précédente",
     "nextpage": "Page suivante",
@@ -54,7 +58,8 @@
     "users": "Utilisateurs",
     "topics": "Sujets",
     "posts": "Messages",
-    "x-posts": "%1 messages",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Meilleur sujets",
     "controversial": "Contesté",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Réputation",
     "lastpost": "Dernier message",
     "firstpost": "Premier message",
+    "about": "About",
     "read_more": "En lire plus",
     "more": "Plus",
     "none": "Aucun",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 a posté %2",
     "guest_posted_ago": "Un invité a posté %1",
     "last_edited_by": "dernière édition par %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Aucun message récent",
     "norecenttopics": "Aucun sujet récent",
     "recentposts": "Messages récents",
     "recentips": "Adresses IP récemment enregistées",
     "moderator_tools": "Outils de modération",
+    "status": "Status",
     "online": "En ligne",
     "away": "Absent",
     "dnd": "Occupé",
@@ -122,5 +130,7 @@
     "edited": "Modifié",
     "disabled": "Désactivé",
     "select": "Sélectionner",
-    "user-search-prompt": "Écrivez ici pour rechercher des utilisateurs ..."
+    "user-search-prompt": "Écrivez ici pour rechercher des utilisateurs ...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/fr/groups.json b/public/language/fr/groups.json
index afae347ba1..d780f2b33e 100644
--- a/public/language/fr/groups.json
+++ b/public/language/fr/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Groupes",
+    "members": "Members",
     "view_group": "Voir le groupe",
     "owner": "Propriétaire du groupe",
     "new_group": "Créer un nouveau groupe",
diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json
index 3778a0ec49..35a91c9a28 100644
--- a/public/language/fr/modules.json
+++ b/public/language/fr/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Discuter avec",
     "chat.placeholder": "Écrivez vos message ici, faites glisser / déposez les images, validez sur entrée pour envoyer",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "Vous consultez des messages plus anciens, cliquez ici pour accéder au message le plus récent.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Envoyer",
     "chat.no_active": "Vous n'avez aucune discussion en cours.",
     "chat.user_typing": "%1 est en train d'écrire ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Écrire",
     "composer.show_preview": "Afficher l'aperçu",
     "composer.hide_preview": "Masquer l'aperçu",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 a dit dans %2 :",
     "composer.user_said": "%1 a dit :",
     "composer.discard": "Êtes-vous sûr de bien vouloir supprimer ce message ?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Heure",
     "composer.cancel-scheduling": "Annuler la planification",
     "composer.set-schedule-date": "Régler la date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Annuler",
     "bootbox.confirm": "Confirmer",
diff --git a/public/language/fr/pages.json b/public/language/fr/pages.json
index 35fcbf2367..0fb5e0ec9a 100644
--- a/public/language/fr/pages.json
+++ b/public/language/fr/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Catégories surveillées",
     "account/bookmarks": "Marque-pages de %1",
     "account/settings": "Paramètres d'utilisateur",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Sujets auxquels %1 est abonné",
     "account/ignored": "Sujets ignorés par %1",
     "account/upvoted": "Avis positifs de %1",
diff --git a/public/language/fr/post-queue.json b/public/language/fr/post-queue.json
index 34137f1c0b..680917fe55 100644
--- a/public/language/fr/post-queue.json
+++ b/public/language/fr/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "File d’attente des messages",
-	"description": "Aucun messages dans la file d'attente. <br> Pour activer cette fonctionnalité, accédez aux <a href=\"%1\">Paramètres &rarr; Messages &rarr; File d'attente </a> et activez <strong>la file d'attente.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Utilisateur",
+	"when": "When",
 	"category": "Catégorie",
 	"title": "Titre",
 	"content": "Contenu",
@@ -19,6 +23,7 @@
 	"notify": "Notifier",
 	"notify-user": "Notifier l'utilisateur",
 	"confirm-reject": "Voulez vous réellement rejeter ce message ?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Actions",
 	"accept-all": "Tout accepter",
 	"accept-selected": "Acceptation sélectionné",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Voulez vous réellement rejeter tous ces messages ?",
 	"reject-selected": "Rejets sélectionnés",
 	"reject-selected-confirm": "Voulez vous réellement rejeter ces %1 messages ?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 messages acceptés",
 	"bulk-reject-success": "%1 messages rejetés"
 }
\ No newline at end of file
diff --git a/public/language/fr/recent.json b/public/language/fr/recent.json
index 550a18c559..c1e41f534c 100644
--- a/public/language/fr/recent.json
+++ b/public/language/fr/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Toujours",
     "no_recent_topics": "Il n'y a aucun sujet récent.",
     "no_popular_topics": "Il n'y a pas de sujet populaire.",
-    "there-is-a-new-topic": "Il y a un nouveau sujet.",
-    "there-is-a-new-topic-and-a-new-post": "Il y a un nouveau sujet et un nouveau message.",
-    "there-is-a-new-topic-and-new-posts": "Il y a un nouveau sujet et %1 nouveaux messages.",
-    "there-are-new-topics": "Il y a %1 nouveaux sujets.",
-    "there-are-new-topics-and-a-new-post": "Il y a %1 nouveaux sujets et un nouveau message.",
-    "there-are-new-topics-and-new-posts": "Il y a %1 nouveaux sujets et %2 nouveaux messages.",
-    "there-is-a-new-post": "Il y a un nouveau message.",
-    "there-are-new-posts": "Il y a %1 nouveaux messages.",
-    "click-here-to-reload": "Cliquez ici pour recharger."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/fr/register.json b/public/language/fr/register.json
index 3c7eef960c..107b0811de 100644
--- a/public/language/fr/register.json
+++ b/public/language/fr/register.json
@@ -1,5 +1,6 @@
 {
     "register": "S'inscrire",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Annuler l'inscription",
     "help.email": "Par défaut, votre adresse e-mail est masquée au public.",
     "help.username_restrictions": "Un nom d'utilisateur unique entre %1 et %2 caractères. Les autres utilisateurs peuvent vous mentionner avec @<span id='yourUsername'>nom-d'utilisateur</span>.",
diff --git a/public/language/fr/search.json b/public/language/fr/search.json
index 943e939d57..a93ee5f6e8 100644
--- a/public/language/fr/search.json
+++ b/public/language/fr/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 résultat(s) correspondant(s) à \"%2\", (%3 secondes)",
     "no-matches": "Aucune réponse trouvée",
     "advanced-search": "Recherche avancée",
     "in": "Dans",
-    "titles": "Titres",
-    "titles-posts": "Titres et Messages",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Correspondance",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Tous",
     "any": "Aucun",
     "posted-by": "Posté par",
-    "in-categories": "Dans les catégories",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Rechercher également dans les sous catégories",
     "has-tags": "Contient les mots-clés",
     "reply-count": "Nombre de réponses",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Au moins",
     "at-most": "Au plus",
     "relevance": "Pertinence",
+    "time": "Time",
     "post-time": "Date de message",
     "votes": "Votes",
     "newer-than": "Plus récent que",
@@ -28,7 +48,22 @@
     "three-months": "Trois mois",
     "six-months": "Six mois",
     "one-year": "Un an",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Trier par",
+    "sort": "Sort",
     "last-reply-time": "Date de dernière réponse",
     "topic-title": "Titre de sujet",
     "topic-votes": "Sujets votés",
@@ -39,11 +74,36 @@
     "category": "Catégorie",
     "descending": "Par ordre décroissant",
     "ascending": "Par ordre croissant",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Enregistrer les préférences",
     "clear-preferences": "Réinitialiser les préférences",
     "search-preferences-saved": "Préférences de recherche enregistrées",
     "search-preferences-cleared": "Préférences de recherche réinitialisées",
     "show-results-as": "Affichez les résultats comme",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Voir plus de résultats (%1)",
     "search-in-category": "Rechercher dans \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/fr/social.json b/public/language/fr/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/fr/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/fr/tags.json b/public/language/fr/tags.json
index 438c24c184..e8d5566405 100644
--- a/public/language/fr/tags.json
+++ b/public/language/fr/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Il n'y a aucun sujet ayant ce mot-clé",
+    "no-tags-found": "No tags found",
     "tags": "Mots-clés",
     "enter_tags_here": "Entrez les mots-clés ici. Chaque mot doit faire entre %1 et %2 caractères.",
     "enter_tags_here_short": "Entrez des mots-clés...",
diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json
index a5289be8bc..1252e06ae8 100644
--- a/public/language/fr/topic.json
+++ b/public/language/fr/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copier l'IP",
     "ban-ip": "Bannir l'IP",
     "view-history": "Éditer l'historique",
-    "locked-by": "Verrouillé par",
-    "unlocked-by": "Déverrouiller par",
-    "pinned-by": "Épinglé par",
-    "unpinned-by": "Désépinglé par",
-    "deleted-by": "Effacé par",
-    "restored-by": "Restauré par",
-    "moved-from-by": "Déplacé de %1 par",
-    "queued-by": "Message en attente d'approbation &rarr;",
-    "backlink": "Référencé par",
-    "forked-by": "Dupliqué par",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Cliquez ici pour aller au dernier message lu de ce fil.",
     "flag-post": "Signaler ce message",
     "flag-user": "Signaler cet utilisateur",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Supprimer définitivement le(s) sujet(s)",
     "thread_tools.purge_confirm": "Êtes-vous sûr de bien vouloir supprimer définitivement ce sujet ?",
     "thread_tools.merge_topics": "Fusionner les Sujets",
-    "thread_tools.merge": "Fusionner",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "Ce sujet sera bientôt déplacé vers \"%1\". Cliquez ici pour annuler.",
     "topic_move_multiple_success": "Ces sujets seront bientôt déplacés vers \"%1\". Cliquez ici pour annuler.",
     "topic_move_all_success": "Tous les sujets seront déplacés vers \"%1\". Cliquez ici pour annuler.",
@@ -121,7 +135,7 @@
     "post_moved": "Message déplacé !",
     "fork_topic": "Scinder le sujet",
     "enter-new-topic-title": "Entrez un nouveau titre de sujet",
-    "fork_topic_instruction": "Cliquez sur les postes à scinder",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Aucun post sélectionné !",
     "no-posts-selected": "Aucun(s) message(s) sélectionné(s) !",
     "x-posts-selected": "%1 message(s) sélectionné(s)",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Nouveau titre pour le sujet",
     "topic-id": "Sujet ID",
     "move_posts_instruction": "Cliquez sur les articles que vous souhaitez déplacer, puis entrez un ID de sujet ou accédez au sujet cible",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Cliquez sur les messages que vous souhaitez attribuer à un autre utilisateur.",
     "composer.title_placeholder": "Entrer le titre du sujet ici…",
     "composer.handle_placeholder": "Entrez votre nom/identifiant ici",
+    "composer.hide": "Hide",
     "composer.discard": "Abandonner",
     "composer.submit": "Envoyer",
     "composer.additional-options": "Options additionnelles",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Planification",
     "composer.replying_to": "En réponse à %1",
     "composer.new_topic": "Nouveau sujet",
@@ -184,5 +201,7 @@
     "last-post": "Dernier message",
     "go-to-my-next-post": "Aller à mon prochain message",
     "no-more-next-post": "Vous n'avez plus de messages dans ce sujet",
-    "post-quick-reply": "Réponse rapide"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/fr/user.json b/public/language/fr/user.json
index bdede19408..328f1524c2 100644
--- a/public/language/fr/user.json
+++ b/public/language/fr/user.json
@@ -43,6 +43,7 @@
     "followers": "Abonnés",
     "following": "Abonnements",
     "blocks": "Bloqués",
+    "blocked-users": "Blocked users",
     "block_toggle": "Débloquer",
     "block_user": "Bloquer l'utilisateur",
     "unblock_user": "Débloquer l'utilisateur",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Envoyer une nouvelle image",
     "upload_new_picture_from_url": "Envoyer une nouvelle image depuis un URL",
     "current_password": "Mot de passe actuel",
+    "new_password": "New Password",
     "change_password": "Changer le mot de passe",
     "change_password_error": "Mot de passe invalide !",
     "change_password_error_wrong_current": "Votre mot de passe est incorrect !",
@@ -115,6 +117,8 @@
     "paginate_description": "Utiliser la pagination des sujets et des messages à la place du défilement infini",
     "topics_per_page": "Sujets par page",
     "posts_per_page": "Messages par page",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Page de gestion des langues",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Note de modération enregistrée",
     "info.moderation-note.add": "Ajouter une note",
     "sessions.description": "Cette page vous permet de visualiser et de révoquer si nécessaire, toutes les sessions actives de ce forum. Vous pouvez révoquer votre propre session en vous déconnectant de votre compte.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Vos données personnelles",
     "consent.lead": "Ce forum collecte et traite vos informations personnelles.",
     "consent.intro": "Nous utilisons ces informations strictement pour personnaliser votre expérience dans cette communauté, ainsi que pour associer les messages que vous publiez à votre compte utilisateur. Lors de l'étape d'enregistrement, vous avez été invité à fournir un nom d'utilisateur et une adresse e-mail. Vous pouvez également fournir des informations supplémentaires pour compléter votre profil. <br /><br /> Nous conservons ces informations durant la durée de vie de votre compte utilisateur. À tout moment vous pouvez supprimer votre compte. À tout moment, vous pouvez demander une copie de vos contributions, via la page de vos données personnelles.<br /><br /> Si vous avez des questions ou préoccupations, nous vous encourageons à contacter l'équipe d'administration de ce forum.",
diff --git a/public/language/fr/users.json b/public/language/fr/users.json
index 526f188f75..9e71f3430f 100644
--- a/public/language/fr/users.json
+++ b/public/language/fr/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Derniers inscrits",
     "top_posters": "Utilisateurs les plus actifs",
     "most_reputation": "Meilleur Réputation",
     "most_flags": "Les plus signalés",
     "search": "Rechercher",
     "enter_username": "Entrez le nom d'un utilisateur",
-    "search-user-for-chat": "chercher un utilisateur pour commencer une discussion",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Charger la suite",
     "users-found-search-took": "%1 utilisateur(s) trouvé(s)! La recherche a pris %2 secondes.",
     "filter-by": "Filtrer par",
diff --git a/public/language/gl/admin/admin.json b/public/language/gl/admin/admin.json
index 39edffb66f..dcf9696ca2 100644
--- a/public/language/gl/admin/admin.json
+++ b/public/language/gl/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Control Panel",
 	"settings-header-contents": "Contents",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/gl/admin/appearance/customise.json b/public/language/gl/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/gl/admin/appearance/customise.json
+++ b/public/language/gl/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/gl/admin/dashboard.json b/public/language/gl/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/gl/admin/dashboard.json
+++ b/public/language/gl/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/gl/admin/extend/widgets.json b/public/language/gl/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/gl/admin/extend/widgets.json
+++ b/public/language/gl/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/gl/admin/manage/groups.json b/public/language/gl/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/gl/admin/manage/groups.json
+++ b/public/language/gl/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/gl/admin/manage/privileges.json b/public/language/gl/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/gl/admin/manage/privileges.json
+++ b/public/language/gl/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/gl/admin/settings/api.json b/public/language/gl/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/gl/admin/settings/api.json
+++ b/public/language/gl/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/gl/admin/settings/navigation.json b/public/language/gl/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/gl/admin/settings/navigation.json
+++ b/public/language/gl/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/gl/admin/settings/user.json b/public/language/gl/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/gl/admin/settings/user.json
+++ b/public/language/gl/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/gl/error.json b/public/language/gl/error.json
index 9d0ae5a377..c123148246 100644
--- a/public/language/gl/error.json
+++ b/public/language/gl/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "As subidas están deshabilitadas para os convidados",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "A túa petición de membresía foi enviada",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "A publicación foi eliminada",
     "post-already-restored": "A publicación foi restaurada",
     "topic-already-deleted": "O tema foi borrado",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/gl/flags.json b/public/language/gl/flags.json
index d4a3671ea8..1277ad5095 100644
--- a/public/language/gl/flags.json
+++ b/public/language/gl/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Un licorca, que non hai nada marcado para revisión.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Encargado",
 	"update": "Actualizar",
 	"updated": "Actualizado",
 	"resolved": "Resolved",
 	"target-purged": "O contido marcado foi purgado e xa non está dispoñible",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Filtros rápidos",
 	"filter-active": "Hai un ou máis filtros na lista de avisos",
 	"filter-reset": "Eliminar filtros",
 	"filters": "Filtrar opcións",
-	"filter-reporterId": "UID do reportador",
-	"filter-targetUid": "UID marcada",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Tipo de aviso",
 	"filter-type-all": "Todo o contido",
 	"filter-type-post": "Publicar",
 	"filter-type-user": "User",
 	"filter-state": "Estado",
-	"filter-assignee": "UID do encargado",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Categoría",
 	"filter-quick-mine": "Asignado a min",
 	"filter-cid-all": "Tódalas categorías",
@@ -45,6 +47,7 @@
 
 	"notes": "Notas do aviso",
 	"add-note": "Engadir nota",
+	"edit-note": "Edit Note",
 	"no-notes": "Ningunha nota foi compartida",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/gl/global.json b/public/language/gl/global.json
index 29a24d7cca..1ff8330332 100644
--- a/public/language/gl/global.json
+++ b/public/language/gl/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Pechar",
     "403.title": "Acceso Denegado",
     "403.message": "Ao parecer, non tes permisos para acceder a esta páxina.",
-    "403.login": "Quizais deberías <a href='%1/login'>tentar iniciar sesión</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Non Atopado",
-    "404.message": "Ao parecer, esta páxina non existe. Volver ao <a href='%1/'>Inicio</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Erro interno.",
     "500.message": "Ups! Parece que algo saíu mal!",
     "400.title": "Petición incorrecta",
-    "400.message": "Parece que a dirección é errónea. Por favor, compróbaa e proba de novo. No caso contrario, volve ó <a href='%1/'>inicio</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Rexistrarse",
     "login": "Conectarse",
     "please_log_in": "Por favor, conéctate",
@@ -37,9 +37,13 @@
     "header.notifications": "Notificacións",
     "header.search": "Búsqueda ",
     "header.profile": "Perfil",
+    "header.account": "Account",
     "header.navigation": "Navegación",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Cargando Notificacións",
     "chats.loading": "Cargando Charlas",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Benvido a NodeBB, a plataforma de discusión do futuro.",
     "previouspage": "Páxina Anterior",
     "nextpage": "Páxina Seguinte",
@@ -54,7 +58,8 @@
     "users": "Usuarios ",
     "topics": "Temas",
     "posts": "Publicacións",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Mellor",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Reputación",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "ler máis",
     "more": "Máis",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 publicado %2",
     "guest_posted_ago": "Invitado publicou %1",
     "last_edited_by": "última edición por %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Non hai mensaxes recentes",
     "norecenttopics": "Non hai temas recentes",
     "recentposts": "Mensaxes recentes",
     "recentips": "Conectado recentemente en IPs",
     "moderator_tools": "Ferramentas de Moderación",
+    "status": "Status",
     "online": "En línea",
     "away": "Fóra",
     "dnd": "Non dispoñible",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/gl/groups.json b/public/language/gl/groups.json
index fd1229eb47..81918bc793 100644
--- a/public/language/gl/groups.json
+++ b/public/language/gl/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupos",
+    "members": "Members",
     "view_group": "Ver grupo",
     "owner": "Dono do grupo",
     "new_group": "Crear un novo grupo",
diff --git a/public/language/gl/modules.json b/public/language/gl/modules.json
index b1e71f9472..a6d9f024a5 100644
--- a/public/language/gl/modules.json
+++ b/public/language/gl/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Enviar",
     "chat.no_active": "Non tes charlas activas.",
     "chat.user_typing": "%1 está a escribir...",
@@ -42,6 +46,7 @@
     "composer.compose": "Elaborar",
     "composer.show_preview": "Amosar vista previa",
     "composer.hide_preview": "Agochar vista previa",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 dixo en %2",
     "composer.user_said": "%1 dixo:",
     "composer.discard": "Estás seguro de que queres desfacer esta publicación?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "De acordo",
     "bootbox.cancel": "Cancelar",
     "bootbox.confirm": "Confirmar",
diff --git a/public/language/gl/pages.json b/public/language/gl/pages.json
index b540b26e72..2ee82c35e0 100644
--- a/public/language/gl/pages.json
+++ b/public/language/gl/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Mensaxes marcadas",
     "account/settings": "Opcións de Usuario",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Temas vistos por %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Mensaxes votadas positivamente por %1",
diff --git a/public/language/gl/post-queue.json b/public/language/gl/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/gl/post-queue.json
+++ b/public/language/gl/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/gl/recent.json b/public/language/gl/recent.json
index 433d893498..bacee8ba01 100644
--- a/public/language/gl/recent.json
+++ b/public/language/gl/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Dende o principio",
     "no_recent_topics": "Non hai temas recentes",
     "no_popular_topics": "Non hai temas populares",
-    "there-is-a-new-topic": "Hai un novo tema",
-    "there-is-a-new-topic-and-a-new-post": "Hai un novo tema e unha nova publicación",
-    "there-is-a-new-topic-and-new-posts": "Hai un novo tema e %1 nova publicación",
-    "there-are-new-topics": "Hai %1 novos temas.",
-    "there-are-new-topics-and-a-new-post": "Hay %1 novos temas e unha nova publicación.",
-    "there-are-new-topics-and-new-posts": "Hay %1 novos temas e %2 novas publicacións",
-    "there-is-a-new-post": "Hai unha nova publicación",
-    "there-are-new-posts": "Hay %1 novas publicacións.",
-    "click-here-to-reload": "Pica aquí para recargar."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/gl/register.json b/public/language/gl/register.json
index 8c24a4e487..b0f4a0d90e 100644
--- a/public/language/gl/register.json
+++ b/public/language/gl/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Rexistrarse",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancelar rexistro",
     "help.email": "Por defecto, o teu correo electrónico está oculto ao público.",
     "help.username_restrictions": "O nome de usuario debe ter entre %1 e %2 caracteres. Os outros usuarios poden mencionarte escribindo @<span id='yourUsername'>usuario</span>.",
diff --git a/public/language/gl/search.json b/public/language/gl/search.json
index f5f8f12919..5ffbbb2072 100644
--- a/public/language/gl/search.json
+++ b/public/language/gl/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 resultado(s) coincide(n) con \"%2\", (%3 segundos)",
     "no-matches": "Non se atoparon coincidencias",
     "advanced-search": "Busca Avanzada",
     "in": "En",
-    "titles": "Títulos",
-    "titles-posts": "Títulos e publicacións",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Publicado por",
-    "in-categories": "En categorías",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Buscar categorías fillas",
     "has-tags": "Has tags",
     "reply-count": "Número de Respostas",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Como mínimo",
     "at-most": "Como máximo",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Data de publicación",
     "votes": "Votes",
     "newer-than": "Máis recente que",
@@ -28,7 +48,22 @@
     "three-months": "Tres meses",
     "six-months": "Seis meses",
     "one-year": "Un ano",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Ordenar por",
+    "sort": "Sort",
     "last-reply-time": "Data da última resposta",
     "topic-title": "Título do tema",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Categoría",
     "descending": "En orde descendente",
     "ascending": "En orde ascendente",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Gardar preferencias",
     "clear-preferences": "Desbotar preferencias",
     "search-preferences-saved": "Preferencias de búsqueda gardadas",
     "search-preferences-cleared": "Preferencias de búsqueda desbotadas",
     "show-results-as": "Amosar resultados como",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/gl/social.json b/public/language/gl/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/gl/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/gl/tags.json b/public/language/gl/tags.json
index 35254979db..7af1f30871 100644
--- a/public/language/gl/tags.json
+++ b/public/language/gl/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Non hai temas con esa etiqueta.",
+    "no-tags-found": "No tags found",
     "tags": "Etiquetas",
     "enter_tags_here": "Pon as etiquetas aquí, entre %1 e %2 caracteres cada unha.",
     "enter_tags_here_short": "Introduce as etiquetas",
diff --git a/public/language/gl/topic.json b/public/language/gl/topic.json
index ae09fbae43..5e6f25af2c 100644
--- a/public/language/gl/topic.json
+++ b/public/language/gl/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Pica aquí para volver á última mensaxe lida neste tema ",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Purgar Tema",
     "thread_tools.purge_confirm": "Estás seguro de que desexas eliminar definitivamente (purgar) este tema?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Publicación movida correctamente!",
     "fork_topic": "Dividir Tema",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Fai clic nas publicacións que queiras dividir",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Non seleccionaches ninguna publicación!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Introduce o título do teu tema",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Descartar",
     "composer.submit": "Enviar",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "En resposta a %1",
     "composer.new_topic": "Novo tema",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/gl/user.json b/public/language/gl/user.json
index 95c0f45f50..23ca9ba86b 100644
--- a/public/language/gl/user.json
+++ b/public/language/gl/user.json
@@ -43,6 +43,7 @@
     "followers": "Seguidores",
     "following": "Seguindo",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Subir unha nova foto",
     "upload_new_picture_from_url": "Subir unha nova foto dende un ligazón",
     "current_password": "Contrasinal actual",
+    "new_password": "New Password",
     "change_password": "Cambia-lo contrasinal",
     "change_password_error": "Contrasinal inválido",
     "change_password_error_wrong_current": "O contrasinal actual é incorrecto!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paxinar temas e publicacións no canto de usar scroll infinito",
     "topics_per_page": "Temas por páxina",
     "posts_per_page": "Mensaxes por páxina",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Nota do moderador gardada",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/gl/users.json b/public/language/gl/users.json
index d79d568af9..f8e4c06530 100644
--- a/public/language/gl/users.json
+++ b/public/language/gl/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Últimos usuarios",
     "top_posters": "Maiores Publicadores",
     "most_reputation": "Máis Reputados",
     "most_flags": "Máis reportados",
     "search": "Busca",
     "enter_username": "Introduce o nome de usuario a procurar",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Cargar máis",
     "users-found-search-took": "%1 usuario(s) atopado! A procura tomou %2 segundos.",
     "filter-by": "Filtrar por",
diff --git a/public/language/he/admin/admin.json b/public/language/he/admin/admin.json
index a8b9f1af40..92ecde4e27 100644
--- a/public/language/he/admin/admin.json
+++ b/public/language/he/admin/admin.json
@@ -1,11 +1,9 @@
 {
-	"alert.confirm-rebuild-and-restart": "האם אתה בטוח שאתה רוצה לבנות מחדש ולאתחל את NodeBB?",
-	"alert.confirm-restart": "האם אתה בטוח שאתה רוצה לאתחל מחדש את NodeBB?",
+	"alert.confirm-rebuild-and-restart": "האם אתה בטוח שברצונך לבנות ולהפעיל מחדש את NodeBB?",
+	"alert.confirm-restart": "האם אתה בטוח שברצונך להפעיל מחדש את NodeBB?",
 
-	"acp-title": "%1 | לוח בקרה למנהל NodeBB",
+	"acp-title": "%1 | לוח בקרה למנהל פורום NodeBB",
 	"settings-header-contents": "תוכן",
-	"changes-saved": "שינויים שנשמרו",
-	"changes-saved-message": "השינויים שלך בתצורת NodeBB נשמרו.",
 	"changes-not-saved": "השינויים לא נשמרו",
-	"changes-not-saved-message": "NodeBB נתקל בעיה בשמירת השינויים שלך. (%1)"
+	"changes-not-saved-message": "NodeBB נתקל בבעיה בשמירת השינויים שלך. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/he/admin/appearance/customise.json b/public/language/he/admin/appearance/customise.json
index bd14e03e43..4782ca9efa 100644
--- a/public/language/he/admin/appearance/customise.json
+++ b/public/language/he/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "CSS/LESS מותאם אישית",
-	"custom-css.description": "הכניסו כאן CSS / LESS משלכם, שיבוצע לאחר טעינת כל הסגנונות האחרים.",
-	"custom-css.enable": "הפעלת CSS/LESS מותאם אישית",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Javascript מותאם אישית",
 	"custom-js.description": "הכניסו כאן JavaScript משלכם, שיבוצע לאחר טעינת הדף לחלוטין.",
diff --git a/public/language/he/admin/dashboard.json b/public/language/he/admin/dashboard.json
index 01837acb75..0ced9ad90e 100644
--- a/public/language/he/admin/dashboard.json
+++ b/public/language/he/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "חזרה ללוח מחוונים",
 	"details.no-users": "אין משתמש שהצטרף במסגרת הזמן שנבחרה",
 	"details.no-topics": "לא פורסמו נושאים במסגרת הזמן שנבחרה",
-	"details.no-searches": "עדיין לא בוצעו חיפושים",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "לא נרשמו כניסות במסגרת הזמן שנבחרה",
 	"details.logins-static": "NodeBB שומר נתוני הפעלה עבור %1 ימים בלבד, ולכן טבלה זו תציג רק את הכניסות הפעילות האחרונות",
-	"details.logins-login-time": "זמן כניסה"
+	"details.logins-login-time": "זמן כניסה",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/he/admin/extend/widgets.json b/public/language/he/admin/extend/widgets.json
index eb710c3543..29194a4946 100644
--- a/public/language/he/admin/extend/widgets.json
+++ b/public/language/he/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "פאנל",
-	"container.panel-header": "כותרת פאנל",
-	"container.panel-body": "גוף הפאנל",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "התראה",
 
 	"alert.confirm-delete": "האם אתה בטוח שאתה רוצה למחוק את הוידג'ט?",
diff --git a/public/language/he/admin/manage/groups.json b/public/language/he/admin/manage/groups.json
index 5b66702d33..84aa0f7c68 100644
--- a/public/language/he/admin/manage/groups.json
+++ b/public/language/he/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "בטל שינויים",
 
 	"edit.no-users-found": "לא נמצאו משתמשים",
-	"edit.confirm-remove-user": "האם אתה בטוח שאתה רוצה להסיר משתמש זה?",
-	"edit.save-success": "השינויים נשמרו!"
+	"edit.confirm-remove-user": "האם אתה בטוח שאתה רוצה להסיר משתמש זה?"
 }
\ No newline at end of file
diff --git a/public/language/he/admin/manage/privileges.json b/public/language/he/admin/manage/privileges.json
index 47840a1c11..628e71a87e 100644
--- a/public/language/he/admin/manage/privileges.json
+++ b/public/language/he/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>האם אתה בטוח שברצונך להעניק הרשאות מודרטור לקבוצת משתמשים זו?</strong> הקבוצה היא ציבורית, וכל משתמש יכול להצטרף כרצונו.",
 	"alert.confirm-admins-mods": "<strong>האם אתה בטוח שברצונך להעניק &quot;הרשאות &amp; ניהול&quot; למשתמש/קבוצה זו?</strong> משתמשים עם הרשאה זו יכולים להוסיף ולהסיר הרשאות של של משתמשים אחרים, <em>כולל מנהל ראשי</em>",
 	"alert.confirm-save": "נא אשר את הגדרת ההרשאות",
-	"alert.saved": "שינויי הרשאות נשמרו והוחלו",
 	"alert.confirm-discard": "האם אתה בטוח שברצונך לבטל את שינויי ההרשאות שלך?",
 	"alert.discarded": "שינויי ההרשאות נמחקו",
 	"alert.confirm-copyToAll": "זהירות!! האם אתה בטוח שברצונך להחיל הגדרת הרשאות זו של <strong>%1</strong> ל <strong>כל הקטגוריות</strong>?",
diff --git a/public/language/he/admin/settings/api.json b/public/language/he/admin/settings/api.json
index 3299de86fc..ec4138ca0e 100644
--- a/public/language/he/admin/settings/api.json
+++ b/public/language/he/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "ID משתמש",
 	"uid-help-text": "ציין מזהה משתמש בכדי לשייך לטוקן זה. אם מזהה המשתמש הוא <code>0</code>, זה ייחשב כטוקן<em>ראשי</em>, שיכול לשער את זהותם של משתמשים אחרים על בסיס פרמטר<code>_uid</code> .",
 	"description": "תיאור",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "לא צוין תיאור.",
 	"token-on-save": "טוקן יוצר לאחר שמירת הטופס"
 }
\ No newline at end of file
diff --git a/public/language/he/admin/settings/navigation.json b/public/language/he/admin/settings/navigation.json
index 9d7e256e82..eeaf11bdc5 100644
--- a/public/language/he/admin/settings/navigation.json
+++ b/public/language/he/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "קבוצות:",
 	"open-new-window": "ייפתח בכרטיסייה חדשה",
 	"dropdown": "תפריט נפתח",
-	"dropdown-placeholder": "מקמו את פריטי התפריט הנפתח , באופן הבא: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "מחיקה",
 	"btn.disable": "השבתה",
diff --git a/public/language/he/admin/settings/post.json b/public/language/he/admin/settings/post.json
index 5b39f4250c..d8362aab82 100644
--- a/public/language/he/admin/settings/post.json
+++ b/public/language/he/admin/settings/post.json
@@ -10,7 +10,7 @@
 	"post-queue": "תור פוסטים",
 	"restrictions": "הגבלות רישום",
 	"restrictions-new": "הגבלות משתמש חדש",
-	"restrictions.post-queue": "הפוך תור פוסט לזמין",
+	"restrictions.post-queue": "הפוך תור פוסטים לזמין",
 	"restrictions.post-queue-rep-threshold": "מוניטין נדרש כדי לעקוף תור פוסט",
 	"restrictions.groups-exempt-from-post-queue": "בחר קבוצות פטורות מתור פוסטים",
 	"restrictions-new.post-queue": "הפיכת הגבלות משתמש חדשות לזמינות",
diff --git a/public/language/he/admin/settings/user.json b/public/language/he/admin/settings/user.json
index 6601d20392..3e9e19bb8b 100644
--- a/public/language/he/admin/settings/user.json
+++ b/public/language/he/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "ימים",
 	"session-time-seconds": "שניות",
 	"session-time-help": "ערכים אלו משמשים כדי להגדיר כמה זמן משתמשים יישארו מחוברים כאשר הם סימנו &quot;זכור אותי&quot; בהתחברות. שים לב שייעשה שימוש רק באחד מהערכים האלו. אם אין ערך <i>שניות</i> נשתמש בערך <i>ימים</i>. אם אין ערך <i>ימים</i> הערך יחזור לברירת מחדל <i>14 יום</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "אחרי כמה דקות דקות המשתמש ייחשב ללא פעיל",
 	"online-cutoff-help": "אם משתמש אינו מבצע פעולות במשך זמן זה, הוא נחשב כלא פעיל ואינו מקבל עדכונים בזמן אמת.",
 	"registration": "רישום משתמש",
diff --git a/public/language/he/error.json b/public/language/he/error.json
index 8c2c75783b..6bf8f2c7d0 100644
--- a/public/language/he/error.json
+++ b/public/language/he/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "אורחים אינם מאופשרים להעלות קבצים",
     "cors-error": "לא ניתן להעלות את התמונה עקב שגיאת CORS.",
     "upload-ratelimit-reached": "העלתם יותר מידי קבצים בפעם אחת. אנא נסו שוב במועד מאוחר יותר.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "אנא בחרו תאריך עתידי.",
     "invalid-schedule-date": "אנא הזינו תאריך ושעה תקינים.",
     "cant-pin-scheduled": "נושא מתוזמן אינו יכול להיות (לא-) נעוץ.",
@@ -134,6 +135,8 @@
     "group-already-requested": "בקשת החברות שלכם כבר נשלחה",
     "group-join-disabled": "אינכם רשאים להצטרף לקבוצה כרגע",
     "group-leave-disabled": "אינכם רשאים לעזוב את הקבוצה כרגע",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "פוסט זה נמחק כבר",
     "post-already-restored": "פוסט זה כבר שוחזר",
     "topic-already-deleted": "נושא זה כבר נמחק",
@@ -224,5 +227,6 @@
     "api.429": "יותר מידי בקשות, אנא נסו שוב מאוחר יותר",
     "api.500": "שגיאה בלתי צפויה אירעה בעת ניסיון להגיש את בקשתכם.",
     "api.501": "הנתיב אליו אתם מנסים לתקשר עדיין לא מיושם, אנא נסו שוב מחר",
-    "api.503": "הנתיב אליו אתם מנסים לתקשר אינו זמין כעת עקב תצורת שרת"
+    "api.503": "הנתיב אליו אתם מנסים לתקשר אינו זמין כעת עקב תצורת שרת",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/he/flags.json b/public/language/he/flags.json
index 4633d59fe3..9d11a4ae02 100644
--- a/public/language/he/flags.json
+++ b/public/language/he/flags.json
@@ -3,25 +3,27 @@
 	"reports": "דוחות",
 	"first-reported": "דווח ראשון",
 	"no-flags": "הידד! לא נמצאו סימונים.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "מוקצה",
 	"update": "עדכון",
 	"updated": "עודכן",
 	"resolved": "הושלם",
 	"target-purged": "התוכן שסומן נוקה ולא קיים יותר.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "דיווחים יומיים",
 	"quick-filters": "סינון מהיר",
 	"filter-active": "קיים סנן אחד או יותר ברשימת הסימונים הזו",
 	"filter-reset": "הסר סינון",
 	"filters": "אפשרויות סינון",
-	"filter-reporterId": "UID של מדווח",
-	"filter-targetUid": "UID של סימונים",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "סוג סימון",
 	"filter-type-all": "כל התוכן",
 	"filter-type-post": "פרסום",
 	"filter-type-user": "משתמש",
 	"filter-state": "מצב",
-	"filter-assignee": "UID של הממונה",
+	"filter-assignee": "Assignee",
 	"filter-cid": "קטגוריה",
 	"filter-quick-mine": "הוקצה עבורי",
 	"filter-cid-all": "כל הקטגוריות",
@@ -45,6 +47,7 @@
 
 	"notes": "הערות הסימון",
 	"add-note": "הוסף הערה",
+	"edit-note": "Edit Note",
 	"no-notes": "אין הערות",
 	"delete-note-confirm": "האם אתה בטוח שאתה רוצה למחוק הערה זו?",
 	"delete-flag-confirm": "האם אתה בטוח שברצונך למחוק את הדיווח הזה?",
diff --git a/public/language/he/global.json b/public/language/he/global.json
index e9f3feca1a..6f6d8a7aad 100644
--- a/public/language/he/global.json
+++ b/public/language/he/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "סגור",
     "403.title": "גישה נדחתה",
     "403.message": "הגעתם לעמוד שאין לכם הרשאת צפייה בו",
-    "403.login": "נסו <a href='%1/login'>להתחבר</a>.",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "לא נמצא",
-    "404.message": "הגעתם לעמוד שאינו קיים. חזרו <a href=\"%1/\">לעמוד הבית</a>",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "שגיאה פנימית.",
     "500.message": "אופס! נראה שמשהו השתבש!",
     "400.title": "בקשה שגויה",
-    "400.message": "לינק לא תקין, בדקו ונסו שוב. או, חזרו ל<a href='%1/'>עמוד הבית</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "הרשמה",
     "login": "התחברות",
     "please_log_in": "נא להתחבר",
@@ -37,9 +37,13 @@
     "header.notifications": "התראות",
     "header.search": "חיפוש",
     "header.profile": "פרופיל",
+    "header.account": "Account",
     "header.navigation": "ניווט",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "טוען התראות",
     "chats.loading": "טוען צ'אטים",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "ברוכים הבאים ל-NodeBB, פלטפורמות הדיון העתידני",
     "previouspage": "העמוד הקודם",
     "nextpage": "העמוד הבא",
@@ -54,7 +58,8 @@
     "users": "משתמשים",
     "topics": "נושאים",
     "posts": "פוסטים",
-    "x-posts": "%1 פוסטים",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "הגבוה ביותר",
     "controversial": "שנוי במחלוקת",
     "votes": "הצבעות",
@@ -69,6 +74,7 @@
     "reputation": "מוניטין",
     "lastpost": "פוסט אחרון",
     "firstpost": "פוסט ראשון",
+    "about": "About",
     "read_more": "קרא עוד",
     "more": "עוד",
     "none": "ללא",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 העלה פוסט %2",
     "guest_posted_ago": "אורח העלה פוסט %1",
     "last_edited_by": "נערך לאחרונה על ידי %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "אין פוסטים מהזמן האחרון",
     "norecenttopics": "אין נושאים מהזמן החרון",
     "recentposts": "פוסטים אחרונים",
     "recentips": "כתובות IP שהתחברו למערכת לאחרונה",
     "moderator_tools": "כלי מודרטור",
+    "status": "Status",
     "online": "מחובר",
     "away": "לא נמצא",
     "dnd": "נא לא להפריע",
@@ -122,5 +130,7 @@
     "edited": "נערך",
     "disabled": "מושבת",
     "select": "בחר",
-    "user-search-prompt": "הקלד כאן משהו על מנת למצוא משתמשים..."
+    "user-search-prompt": "הקלד כאן משהו על מנת למצוא משתמשים...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/he/groups.json b/public/language/he/groups.json
index 7148ca56f2..d21daa7751 100644
--- a/public/language/he/groups.json
+++ b/public/language/he/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "קבוצות",
+    "members": "Members",
     "view_group": "הצג קבוצה",
     "owner": "מנהל קבוצה",
     "new_group": "צור קבוצה חדשה",
diff --git a/public/language/he/modules.json b/public/language/he/modules.json
index fefaec201a..1c81f82ce4 100644
--- a/public/language/he/modules.json
+++ b/public/language/he/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "שוחחו בצ'אט עם",
     "chat.placeholder": "כתבו תוכן הודעת הצ'אט כאן, ניתן לגרור ולשחרר כאן תמונות, הקישו אנטר לשליחה.",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "הנכם צופים כעת בהודעות ישנות. לחצו כאן למעבר להודעה האחרונה.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "שליחה",
     "chat.no_active": "אין לכם צ'אטים פעילים.",
     "chat.user_typing": "%1 מקליד...",
@@ -42,6 +46,7 @@
     "composer.compose": "יצירה",
     "composer.show_preview": "הצגת תצוגה מקדימה",
     "composer.hide_preview": "הסתרת תצוגה מקדימה",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 כתב ב%2:",
     "composer.user_said": "%1 כתב:",
     "composer.discard": "האם לבטל את השינויים שנעשו בפוסט זה?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "שעה",
     "composer.cancel-scheduling": "ביטול תיזמון",
     "composer.set-schedule-date": "הגדרת תאריך",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "אישור",
     "bootbox.cancel": "ביטול",
     "bootbox.confirm": "אישור",
diff --git a/public/language/he/notifications.json b/public/language/he/notifications.json
index 27ce74af7c..b6ca1b0f69 100644
--- a/public/language/he/notifications.json
+++ b/public/language/he/notifications.json
@@ -70,7 +70,7 @@
     "notificationType_group-leave": "כאשר משתמש עוזב את הקבוצה שלך",
     "notificationType_group-request-membership": "כשמישהו מבקש להירשם לקבוצה שאתה מנהל",
     "notificationType_new-register": "כאשר מישהו מתווסף לתור הרישום",
-    "notificationType_post-queue": "כשהודעה חדשה נכנסת לתור",
+    "notificationType_post-queue": "כאשר פוסט חדש נכנס לתור",
     "notificationType_new-post-flag": "כאשר פוסט מסומן",
     "notificationType_new-user-flag": "כאשר משתמש מסומן"
 }
\ No newline at end of file
diff --git a/public/language/he/pages.json b/public/language/he/pages.json
index 0e5aefc608..3672ef584e 100644
--- a/public/language/he/pages.json
+++ b/public/language/he/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "הקטגוריות ש-%1 עוקב אחריהם",
     "account/bookmarks": "הפוסטים המועדפים של %1",
     "account/settings": "הגדרות משתמש",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "נושאים שנצפו על ידי %1",
     "account/ignored": "נושאים ש%1 התעלמו מהם",
     "account/upvoted": "פוסטים שהוצבעו לטובה על ידי %1",
diff --git a/public/language/he/post-queue.json b/public/language/he/post-queue.json
index 6246fe3244..706d9385ac 100644
--- a/public/language/he/post-queue.json
+++ b/public/language/he/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "פוסטים ממתינים",
-	"description": "אין פוסטים בתור. <br> כדי לאפשר את תור ההרשמה, גשו ל<a href=\"%1\">הגדרות &rarr; פוסט &rarr; תור פוסטים</a> ואפשרו את <strong>תור פוסט</strong>.",
+	"no-queued-posts": "אין פוסטים ממתינים בתור הפוסטים.",
+	"no-single-post": "הנושא או הפוסט שאתה מחפש כבר לא בתור. כנראה שהוא כבר אושר או נמחק.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "משתמש",
+	"when": "When",
 	"category": "קטגוריה",
 	"title": "כותרת",
 	"content": "תוכן",
@@ -19,6 +23,7 @@
 	"notify": "שלח הודעה",
 	"notify-user": "שלח התראה למשתמש",
 	"confirm-reject": "האם אתה בטוח שברצונך לדחות את הפוסט הזה?",
+	"confirm-remove": "האם אתה בטוח שברצונך להסיר את הפוסט הזה?",
 	"bulk-actions": "פעולות כמותיות",
 	"accept-all": "אשר הכל",
 	"accept-selected": "אשר פוסטים נבחרים",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "האם אתה בטוח שברצונך לדחות את כל הפוסטים?",
 	"reject-selected": "דחה פוסטים נבחרים",
 	"reject-selected-confirm": "האם אתה בטוח שברצונך לדחות את %1 הפוסטים שנבחרו?",
+	"remove-all": "הסר הכל",
+	"remove-all-confirm": "האם אתה בטוח שברצונך להסיר את כל הפוסטים?",
+	"remove-selected": "הסר נבחרים",
+	"remove-selected-confirm": "האם אתה בטוח שברצונך להסיר %1 פוסטים שנבחרו?",
 	"bulk-accept-success": "%1 פוסטים אושרו",
 	"bulk-reject-success": "%1 פוסטים נדחו"
 }
\ No newline at end of file
diff --git a/public/language/he/recent.json b/public/language/he/recent.json
index 913388686a..8e42a666c4 100644
--- a/public/language/he/recent.json
+++ b/public/language/he/recent.json
@@ -7,13 +7,5 @@
     "alltime": "כל הזמן",
     "no_recent_topics": "אין נושאים חדשים",
     "no_popular_topics": "אין נושאים פופולריים.",
-    "there-is-a-new-topic": "יש נושא חדש.",
-    "there-is-a-new-topic-and-a-new-post": "יש נושא ופוסט חדש.",
-    "there-is-a-new-topic-and-new-posts": "יש נושא ו%1 פוסטים חדשים.",
-    "there-are-new-topics": "יש %1 נושאים חדשים.",
-    "there-are-new-topics-and-a-new-post": "יש %1 נושאים ופוסט חדש.",
-    "there-are-new-topics-and-new-posts": "יש %1 נושאים ו %2 פוסטים חדשים.",
-    "there-is-a-new-post": "יש פוסט חדש.",
-    "there-are-new-posts": "יש %1 פוסטים חדשים.",
-    "click-here-to-reload": "לחץ כאן על מנת לטעון מחדש."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/he/register.json b/public/language/he/register.json
index c1ee9e3bf3..82ee054a76 100644
--- a/public/language/he/register.json
+++ b/public/language/he/register.json
@@ -1,5 +1,6 @@
 {
     "register": "הרשמה",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "בטל רישום",
     "help.email": "כברירת מחדל, כתובת האימייל שלך לא גלויה למשתמשים אחרים",
     "help.username_restrictions": "שם משתמש ייחודי בין %1 ל %2 תווים. משתמשים אחרים יכולים לציין את שמך באמצעות @<span id='yourUsername'>שם המשתמש שלך</span>.",
@@ -17,7 +18,7 @@
     "terms_of_use": "תנאי שימוש",
     "agree_to_terms_of_use": "אני מסכים לתנאי השימוש",
     "terms_of_use_error": "אתה מוכרח להסכים לתנאי השימוש",
-    "registration-added-to-queue": "בקשתך להרשמה נשלחה. במידה ובקשתך יאושר, ישלח אישור לכתובת האימייל שהכנסת.",
+    "registration-added-to-queue": "בקשתך להרשמה נשלחה. במידה ובקשתך יאושר, יישלח אישור לכתובת האימייל שהכנסת.",
     "registration-queue-average-time": "הזמן הממוצע לאישור משתמשים הוא %1 שעות ו-%2 דקות.",
     "registration-queue-auto-approve-time": "חשבונך יאושר תוך %1 שעות.",
     "interstitial.intro": "אנו מבקשים עוד מידע כדי לעדכן את חשבונך&hellip;",
diff --git a/public/language/he/search.json b/public/language/he/search.json
index fcad1a9ea0..048717c5e2 100644
--- a/public/language/he/search.json
+++ b/public/language/he/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "נמצאו %1 תוצאות עבור החיפוש \"%2\", (%3 שניות)",
     "no-matches": "לא נמצאו תוצאות",
     "advanced-search": "חיפוש מתקדם",
     "in": "ב",
-    "titles": "כותרות",
-    "titles-posts": "כותרות ופוסטים",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "התאם מילים",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "הכל",
     "any": "כל",
     "posted-by": "פורסם על-ידי",
-    "in-categories": "בקטגוריות",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "חפש בתת קטגוריות",
     "has-tags": "עם תגיות",
     "reply-count": "כמות תגובות",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "לפחות",
     "at-most": "לכל היותר",
     "relevance": "רלוונטיות",
+    "time": "Time",
     "post-time": "זמן הפוסט",
     "votes": "הצבעות",
     "newer-than": "חדש מ",
@@ -28,7 +48,22 @@
     "three-months": "שלושה חודשים",
     "six-months": "שישה חודשים",
     "one-year": "שנה אחת",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "סדר על-פי",
+    "sort": "Sort",
     "last-reply-time": "תאריך תגובה אחרון",
     "topic-title": "כותרת הנושא",
     "topic-votes": "הצבעות בנושא",
@@ -39,11 +74,36 @@
     "category": "קטגוריה",
     "descending": "בסדר יורד",
     "ascending": "בסדר עולה",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "שמור העדפות",
     "clear-preferences": "נקה העדפות",
     "search-preferences-saved": "חפש העדפות שנשמרו",
     "search-preferences-cleared": "חפש העדפות שנוקו",
     "show-results-as": "צפה בתוצאות בתור",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "צפה בתוצאות נוספות (%1)",
     "search-in-category": "חפש ב-\"%1\""
 }
\ No newline at end of file
diff --git a/public/language/he/social.json b/public/language/he/social.json
new file mode 100644
index 0000000000..c57a9b2e23
--- /dev/null
+++ b/public/language/he/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "היכנס באמצעות Twitter",
+	"sign-up-with-twitter": "הירשם באמצעות Twitter",
+	"sign-in-with-github": "היכנס באמצעות Github",
+	"sign-up-with-github": "הירשם באמצעות Github",
+	"sign-in-with-google": "היכנס באמצעות Google",
+	"sign-up-with-google": "הירשם באמצעות Google",
+	"log-in-with-facebook": "היכנס באמצעות Facebook",
+	"continue-with-facebook": "המשך בFacebook"
+}
\ No newline at end of file
diff --git a/public/language/he/success.json b/public/language/he/success.json
index 325b80afd6..e0329b44fe 100644
--- a/public/language/he/success.json
+++ b/public/language/he/success.json
@@ -1,7 +1,7 @@
 {
     "success": "הצלחה",
     "topic-post": "שלחת את הפוסט בהצלחה.",
-    "post-queued": "הפוסט שלך נשלח. תקבל התראה הוא יתקבל או ידחה.",
+    "post-queued": "הפוסט שלך ממתין לאישור. תקבל התראה כאשר הוא יתקבל או ידחה.",
     "authentication-successful": "הנתונים אומתו בהצלחה",
     "settings-saved": "הנתונים נשמרו!"
 }
\ No newline at end of file
diff --git a/public/language/he/tags.json b/public/language/he/tags.json
index 6604da7815..b460afe247 100644
--- a/public/language/he/tags.json
+++ b/public/language/he/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "כל התגים",
     "no_tag_topics": "אין פוסטים עם תגית זו.",
+    "no-tags-found": "לא נמצאו תגים",
     "tags": "תגיות",
     "enter_tags_here": "הכנס תגים כאן, כאשר כל אחד בין %1 ל%2 תווים.",
     "enter_tags_here_short": "הכנס תגיות",
diff --git a/public/language/he/topic.json b/public/language/he/topic.json
index f36bf4277e..dcc67ae721 100644
--- a/public/language/he/topic.json
+++ b/public/language/he/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "העתקת IP",
     "ban-ip": "הרחקת IP",
     "view-history": "עריכת היסטוריה",
-    "locked-by": "ננעל על ידי",
-    "unlocked-by": "נעילה הוסרה על ידי",
-    "pinned-by": "ננעץ על ידי",
-    "unpinned-by": "נעיצה הוסרה על ידי",
-    "deleted-by": "נמחק על ידי",
-    "restored-by": "שוחזר על ידי",
-    "moved-from-by": "הועבר מ %1 ע\"י",
-    "queued-by": "הפוסט ממתין לאישור &rarr;",
-    "backlink": "הוזכר על-ידי",
-    "forked-by": "פוצל על-ידי",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "לחצו כאן בכדי לחזור לפוסט האחרון שקראתם בנושא זה.",
     "flag-post": "דווחו על פוסט זה",
     "flag-user": "דווחו על משתמש זה",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "מחיקת נושא לצמיתות",
     "thread_tools.purge_confirm": "האם למחוק לצמיתות נושא זה?",
     "thread_tools.merge_topics": "מיזוג נושאים",
-    "thread_tools.merge": "מיזוג",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "נושא זה יועבר ל\"%1\". לחצו כאן לביטול.",
     "topic_move_multiple_success": "נושאים אלו יועברו ל\"%1\" . לחצו כאן לביטול.",
     "topic_move_all_success": "כל הנושאים יועברו ל\"%1\". לחצו כאן לביטול.",
@@ -121,7 +135,7 @@
     "post_moved": "הפוסט הועבר!",
     "fork_topic": "פיצול נושא",
     "enter-new-topic-title": "הכניסו כותרת נושא חדשה",
-    "fork_topic_instruction": "לחצו על הפוסטים שברצונכם לפצל",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "לא נבחרו פוסטים!",
     "no-posts-selected": "לא נבחרו פוסטים!",
     "x-posts-selected": "%1 פוסטים נבחרו",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "כותרת חדשה לנושא",
     "topic-id": "מזהה נושא",
     "move_posts_instruction": "לחצו על הפוסטים שברצונכם להסיר ואז הכניסו מזהה נושא או עברו לנושא היעד",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "לחצו על הפוסטים בהם תרצו לשנות את שם כותב ההודעה",
     "composer.title_placeholder": "הכניסו את כותרת הנושא כאן...",
     "composer.handle_placeholder": "הזינו את שמכם / כינוי שלכם כאן",
+    "composer.hide": "Hide",
     "composer.discard": "ביטול",
     "composer.submit": "שליחה",
     "composer.additional-options": "אפשרויות נוספות",
+    "composer.post-later": "Post Later",
     "composer.schedule": "תיזמון",
     "composer.replying_to": "תגובה ל%1",
     "composer.new_topic": "נושא חדש",
@@ -184,5 +201,7 @@
     "last-post": "פוסט אחרון",
     "go-to-my-next-post": "מעבר לפוסט הבא שלי",
     "no-more-next-post": "אין לכם יותר פוסטים בנושא זה",
-    "post-quick-reply": "שליחת תגובה מהירה"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/he/user.json b/public/language/he/user.json
index 738821cd16..bcb50505e2 100644
--- a/public/language/he/user.json
+++ b/public/language/he/user.json
@@ -43,6 +43,7 @@
     "followers": "עוקבים",
     "following": "עוקב אחרי",
     "blocks": "חסימות",
+    "blocked-users": "משתמשים חסומים",
     "block_toggle": " חסום/בטל חסימה",
     "block_user": "חסום משתמש",
     "unblock_user": "בטל חסימת משתמש",
@@ -68,6 +69,7 @@
     "upload_new_picture": "העלה תמונה חדשה",
     "upload_new_picture_from_url": "העלה תמונה חדשה מ-URL",
     "current_password": "סיסמה נוכחית",
+    "new_password": "סיסמה חדשה",
     "change_password": "שנה סיסמה",
     "change_password_error": "סיסמה לא תקינה!",
     "change_password_error_wrong_current": "סיסמתך הנוכחית אינה נכונה!",
@@ -115,6 +117,8 @@
     "paginate_description": "הצגת נושאים ופוסטים בעמודים במקום כרשימת גלילה אין-סופית",
     "topics_per_page": "כמות נושאים בעמוד",
     "posts_per_page": "כמות פוסטים בעמוד",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "מקסימום %1",
     "acp_language": "שפת עמוד הניהול",
     "notifications": "התראות",
@@ -167,7 +171,9 @@
     "info.moderation-note": "הערת מודרטור",
     "info.moderation-note.success": "הערת מודרטור נשמרה",
     "info.moderation-note.add": "הוסף הערה",
-    "sessions.description": "דף זה מאפשר לך לראות את כל הסשנים הפעילים בפורום זה ולבטל אותם במידת הצורך. אתה יכול לבטל את הסשן שלך על ידי התנתקותך מהחשבון.",
+    "sessions.description": "דף זה מאפשר לך לראות את כל הסשנים הפעילים בפורום זה ולבטל אותם במידת הצורך. אתה יכול לבטל את הסשן הנוכחי שלך על ידי התנתקות מהחשבון.",
+    "revoke-session": "נתק סשן",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "תנאי השימוש באתר",
     "consent.lead": "אתר זה אוסף ומעבד נתונים הכוללים בחלקם את המידע האישי שלך.",
     "consent.intro": "אנו משתמשים במידע שנאסף כדי להתאים אישית את החוויה שלך, וכן לקשר את ההודעות שאתה מבצע לחשבון המשתמש שלך. במהלך שלב ההרשמה התבקשת לספק שם משתמש וכתובת דוא\"ל, תוכל גם לספק מידע נוסף כדי להשלים את פרופיל המשתמש שלך באתר זה.<br /><br /> אנו שומרים ומעבדים מידע זה. אתה יכול לבטל את הסכמתך בכל עת על ידי מחיקת החשבון שלך. בכל עת תוכל לבקש עותק של חשבונך לאתר זה, באמצעות דף זה.<br /><br /> אם יש לך שאלות או חששות, אנו ממליצים לך ליצור קשר עם צוות הניהול של האתר.",
diff --git a/public/language/he/users.json b/public/language/he/users.json
index 459dfa1d61..4b880d57c3 100644
--- a/public/language/he/users.json
+++ b/public/language/he/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "משתמשים אחרונים",
     "top_posters": "מפרסמים הכי הרבה",
     "most_reputation": "המוניטין הגבוה ביותר",
     "most_flags": "הכי הרבה דיווחי משתמשים",
     "search": "חיפוש",
     "enter_username": "הכנס שם משתמש לחיפוש",
-    "search-user-for-chat": "חפש משתמש כדי להתחיל איתו צאט",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "טען עוד",
     "users-found-search-took": "%1 משתמשים נמצאו! החיפוש ערך %2 שניות.",
     "filter-by": "פלטר על-פי",
diff --git a/public/language/hr/admin/admin.json b/public/language/hr/admin/admin.json
index 9694790eb2..0dbe9b7fe8 100644
--- a/public/language/hr/admin/admin.json
+++ b/public/language/hr/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Administratorska kontrolna ploča",
 	"settings-header-contents": "Sadržaj",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/hr/admin/appearance/customise.json b/public/language/hr/admin/appearance/customise.json
index db241ab70b..579eb26a2e 100644
--- a/public/language/hr/admin/appearance/customise.json
+++ b/public/language/hr/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/hr/admin/dashboard.json b/public/language/hr/admin/dashboard.json
index 8072389569..4d0c5ebb7f 100644
--- a/public/language/hr/admin/dashboard.json
+++ b/public/language/hr/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/hr/admin/extend/widgets.json b/public/language/hr/admin/extend/widgets.json
index 71d6348bfa..180110eb5d 100644
--- a/public/language/hr/admin/extend/widgets.json
+++ b/public/language/hr/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Ništa",
 	"container.well": "`",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Ploča",
-	"container.panel-header": "Ploča zaglavlja",
-	"container.panel-body": "Tijelo ploče",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Upozorenje",
 
 	"alert.confirm-delete": "Sigurni ste da želite obrisati ovaj widget?",
diff --git a/public/language/hr/admin/manage/groups.json b/public/language/hr/admin/manage/groups.json
index 91d481eb23..6053b89617 100644
--- a/public/language/hr/admin/manage/groups.json
+++ b/public/language/hr/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Povrati",
 
 	"edit.no-users-found": "Korisnik nije pronađen",
-	"edit.confirm-remove-user": "Sigurni ste da želite ukloniti ovog korisnika?",
-	"edit.save-success": "Promjene spremljene!"
+	"edit.confirm-remove-user": "Sigurni ste da želite ukloniti ovog korisnika?"
 }
\ No newline at end of file
diff --git a/public/language/hr/admin/manage/privileges.json b/public/language/hr/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/hr/admin/manage/privileges.json
+++ b/public/language/hr/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/hr/admin/settings/api.json b/public/language/hr/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/hr/admin/settings/api.json
+++ b/public/language/hr/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/hr/admin/settings/navigation.json b/public/language/hr/admin/settings/navigation.json
index 00f84662dd..595b511b94 100644
--- a/public/language/hr/admin/settings/navigation.json
+++ b/public/language/hr/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Otvori u novom prozoru",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Obriši",
 	"btn.disable": "Onemogući",
diff --git a/public/language/hr/admin/settings/user.json b/public/language/hr/admin/settings/user.json
index e1aa153b52..19fe266984 100644
--- a/public/language/hr/admin/settings/user.json
+++ b/public/language/hr/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "Korisnička registracija",
diff --git a/public/language/hr/error.json b/public/language/hr/error.json
index 0d9fecee1a..7b55f317cc 100644
--- a/public/language/hr/error.json
+++ b/public/language/hr/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Učitavanje datoteka za goste je isključeno",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Vaš zahtjev za članstvom je već podnesen",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Ova objava je već obrisana",
     "post-already-restored": "Ova objava je povraćena",
     "topic-already-deleted": "Ova tema je već obrisana",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/hr/flags.json b/public/language/hr/flags.json
index 673ba3806c..e2bee66e5c 100644
--- a/public/language/hr/flags.json
+++ b/public/language/hr/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Huura! Nema pronađenih zastavica.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Dodijeljeni",
 	"update": "Nadogradnja",
 	"updated": "Nadograđeno",
 	"resolved": "Resolved",
 	"target-purged": "Sadržaj koji je označen zastavom je odbačen i više nije dostupan.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Brzi filteri",
 	"filter-active": "Postoje jedan ili više filtera aktivnih u popisu zastava",
 	"filter-reset": "Ukloni filtere",
 	"filters": "Opcije filtera",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Vrsta zastave",
 	"filter-type-all": "Sav sadržaj",
 	"filter-type-post": "Objave",
 	"filter-type-user": "User",
 	"filter-state": "Stanje",
-	"filter-assignee": "Asignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategorija",
 	"filter-quick-mine": "Dodijeljeno meni",
 	"filter-cid-all": "Sve kategorije",
@@ -45,6 +47,7 @@
 
 	"notes": "Bilješke zastave",
 	"add-note": "Dodaj bilješku",
+	"edit-note": "Edit Note",
 	"no-notes": "Nema podijeljenih bilješki",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/hr/global.json b/public/language/hr/global.json
index f673e499f4..5e30f52b77 100644
--- a/public/language/hr/global.json
+++ b/public/language/hr/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Zatvori",
     "403.title": "Pristup onemogućen",
     "403.message": "Nemate pristup ovoj stranici .",
-    "403.login": "Pokušajte se <a href='%1/login'>prijaviti</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Nije pronadjeno",
-    "404.message": "Ova stranica ne postoji. Vrati se na <a href='%1/'>početnu</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Interna greška.",
     "500.message": "Ups! Čini se da nešto nije u redu.",
     "400.title": "Krivi zahtjev.",
-    "400.message": "Izgleda da ovaj link nije ispravan, molimo provjerite i ponovo pokušajte. Ili se vratite na <a href='%1/'>početnu stranicu</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registracija",
     "login": "Prijava",
     "please_log_in": "Molimo prijavite se.",
@@ -37,9 +37,13 @@
     "header.notifications": "Obavijesti",
     "header.search": "Pretraga",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigacija",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Učitavanje obavijesti",
     "chats.loading": "Učitavam razgovore",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Dobrodošli na Silicon Island Rijeka 2020 forum.",
     "previouspage": "Prethodna stranica",
     "nextpage": "Sljedeća stranica",
@@ -54,7 +58,8 @@
     "users": "Korisnici",
     "topics": "Teme",
     "posts": "Objave",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Najbolje",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Reputacija",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "pročitaj  više",
     "more": "Više",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 je objavio %2",
     "guest_posted_ago": "Gost je objavio %1",
     "last_edited_by": "Zadnji put uređeno &1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Nema nedavnih objava",
     "norecenttopics": "Nema nedavnih tema",
     "recentposts": "Posljednji postovi",
     "recentips": "Posljednje prijavljeni IPovi",
     "moderator_tools": "Moderatorski alati",
+    "status": "Status",
     "online": "Na mreži",
     "away": "Odustan",
     "dnd": "Ne smetaj",
@@ -122,5 +130,7 @@
     "edited": "Uređeno",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/hr/groups.json b/public/language/hr/groups.json
index bfdbf2a416..60accd9bbc 100644
--- a/public/language/hr/groups.json
+++ b/public/language/hr/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupe",
+    "members": "Members",
     "view_group": "Pogledaj grupu",
     "owner": "Vlasnik grupe",
     "new_group": "Napravi novu grupu",
diff --git a/public/language/hr/modules.json b/public/language/hr/modules.json
index 8afe7e77d2..fc3e196945 100644
--- a/public/language/hr/modules.json
+++ b/public/language/hr/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Pošalji",
     "chat.no_active": "Nemate aktivnih razgovora.",
     "chat.user_typing": "%1 piše poruku ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Sastavi",
     "composer.show_preview": "Prikaz",
     "composer.hide_preview": "Sakrij prikaz",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 je rekao u %2:",
     "composer.user_said": "%1 je rekao:",
     "composer.discard": "Sigurni ste da želite odbaciti ovu objavu?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Odbaci",
     "bootbox.confirm": "Potvrdi",
diff --git a/public/language/hr/pages.json b/public/language/hr/pages.json
index 26d36c96a1..a86b385b36 100644
--- a/public/language/hr/pages.json
+++ b/public/language/hr/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1 zabilježene objave",
     "account/settings": "Korisničke postavke",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Teme prati %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "%1 glasao za",
diff --git a/public/language/hr/post-queue.json b/public/language/hr/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/hr/post-queue.json
+++ b/public/language/hr/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/hr/recent.json b/public/language/hr/recent.json
index ac247883e2..d831229fb1 100644
--- a/public/language/hr/recent.json
+++ b/public/language/hr/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Sve vrijeme",
     "no_recent_topics": "Nema nedavnih tema.",
     "no_popular_topics": "Nema popularnih tema.",
-    "there-is-a-new-topic": "Nova tema.",
-    "there-is-a-new-topic-and-a-new-post": "Nova tema i nova objava.",
-    "there-is-a-new-topic-and-new-posts": "Nova tema i %1 nova objava",
-    "there-are-new-topics": "%1 nova tema",
-    "there-are-new-topics-and-a-new-post": "%1 nova tema i nova objava",
-    "there-are-new-topics-and-new-posts": "%1 nova tema i %2 nova objava",
-    "there-is-a-new-post": "Nova objava.",
-    "there-are-new-posts": "%1 nova objava.",
-    "click-here-to-reload": "Klikni ovdje za ponovno učitavanje."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/hr/register.json b/public/language/hr/register.json
index c79ad6d09e..d9f54ca513 100644
--- a/public/language/hr/register.json
+++ b/public/language/hr/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registracija",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Obustavi registraciju",
     "help.email": "Vaš email će biti skriven od javnosti.",
     "help.username_restrictions": "Unikatno korisničko ime između %1 i %2 znaka. Ostali Vas mogu spomenuti sa @<span id='yourUsername'>username</span>.",
diff --git a/public/language/hr/search.json b/public/language/hr/search.json
index 4d69e6db1f..fcc935ab6b 100644
--- a/public/language/hr/search.json
+++ b/public/language/hr/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 rezultat odgovara \"%2\", (%3 sekunde)",
     "no-matches": "Nema rezultata",
     "advanced-search": "Napredna pretraga",
     "in": "U",
-    "titles": "Naslovi",
-    "titles-posts": "Naslovi i objave",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Objavio",
-    "in-categories": "U kategoriji",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Pretraži podkategorije",
     "has-tags": "Ima oznake",
     "reply-count": "Broj odgovora",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Najmanje",
     "at-most": "Najviše",
     "relevance": "Relevantno",
+    "time": "Time",
     "post-time": "Vrijeme objave",
     "votes": "Votes",
     "newer-than": "Novije od",
@@ -28,7 +48,22 @@
     "three-months": "Tri mjeseca",
     "six-months": "Šest mjeseci",
     "one-year": "Godina",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sortiraj po",
+    "sort": "Sort",
     "last-reply-time": "Vrijeme zadnje odgovora",
     "topic-title": "Naslov teme",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Kategorija",
     "descending": "U silaznom redu",
     "ascending": "Po uzlaznom redu",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Spremi postavke",
     "clear-preferences": "Očisti postavke",
     "search-preferences-saved": "Postavke pretraživanja spremljene",
     "search-preferences-cleared": "Postavke pretraživanja očišćene ",
     "show-results-as": "Prikaži rezultate kao",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/hr/social.json b/public/language/hr/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/hr/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/hr/tags.json b/public/language/hr/tags.json
index 59f324fe04..4649c9fa63 100644
--- a/public/language/hr/tags.json
+++ b/public/language/hr/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Nema tema sa ovom oznakom",
+    "no-tags-found": "No tags found",
     "tags": "Oznake",
     "enter_tags_here": "Unesite oznake, između %1 i %2 znaka.",
     "enter_tags_here_short": "Unestie oznake ...",
diff --git a/public/language/hr/topic.json b/public/language/hr/topic.json
index 8d6bff9788..c2fad59951 100644
--- a/public/language/hr/topic.json
+++ b/public/language/hr/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Klikni ovdje za povratak na zadnji pročitani post.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Odbaci temu",
     "thread_tools.purge_confirm": "Sigurni ste da želite odbaciti ovu temu?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Objava pomaknuta!",
     "fork_topic": "Dupliraj temu",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Označi objave koje želite duplirati",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Objave nisu odabrane!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Unesite naslov teme ovdje ...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Odbaci",
     "composer.submit": "Podnesi",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Odgovori na %1",
     "composer.new_topic": "Nova tema",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/hr/user.json b/public/language/hr/user.json
index 985402a9b8..a20616afd2 100644
--- a/public/language/hr/user.json
+++ b/public/language/hr/user.json
@@ -43,6 +43,7 @@
     "followers": "Pratitelji",
     "following": "Prati",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Učitaj novu sliku",
     "upload_new_picture_from_url": "Učitaj sliku iz URL",
     "current_password": "Sadašnja lozinka",
+    "new_password": "New Password",
     "change_password": "Promjeni lozinku",
     "change_password_error": "Netočna lozinka!",
     "change_password_error_wrong_current": "Vaša trenutačna lozinka nije točna!",
@@ -115,6 +117,8 @@
     "paginate_description": "Numeriraj teme i objave umjesto scrollanja",
     "topics_per_page": "Teme po stranici",
     "posts_per_page": "Objave po stranici",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Poruka moderiranja spremljena",
     "info.moderation-note.add": "Dodaj bilješku",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/hr/users.json b/public/language/hr/users.json
index d19e05f8f8..b01eebdfc5 100644
--- a/public/language/hr/users.json
+++ b/public/language/hr/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Posljednji korisnici",
     "top_posters": "Najviše objava",
     "most_reputation": "Najveća reputacija",
     "most_flags": "Najviše zastava",
     "search": "Pretraga",
     "enter_username": "Unesi korisničko ime za pretragu",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Učitaj više",
     "users-found-search-took": "%1user(s) pronađeni! Pretraga je trajala %2 sekundi.",
     "filter-by": "Filtriraj po",
diff --git a/public/language/hu/admin/admin.json b/public/language/hu/admin/admin.json
index d7d91c2e48..e5972a464f 100644
--- a/public/language/hu/admin/admin.json
+++ b/public/language/hu/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Adminisztrációs vezérlőpult",
 	"settings-header-contents": "Tartalmak",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
-	"changes-not-saved": "Changes Not Saved",
+	"changes-not-saved": "A változtatások nincsenek elmentve",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/hu/admin/appearance/customise.json b/public/language/hu/admin/appearance/customise.json
index 53583244f6..5801e0511f 100644
--- a/public/language/hu/admin/appearance/customise.json
+++ b/public/language/hu/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Egyéni CSS/LESS",
-	"custom-css.description": "Adj meg saját CSS/LESS leírókat, melyek minden egyéb stílus után kerülnek alkalmazásra.",
-	"custom-css.enable": "Egyéni CSS/LESS engedélyezése",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Egyéni Javascript",
 	"custom-js.description": "Adj meg saját javascript-et. Végrehajtására az oldal teljes betöltése után kerül sor.",
diff --git a/public/language/hu/admin/dashboard.json b/public/language/hu/admin/dashboard.json
index e02ccff6de..e4e709a565 100644
--- a/public/language/hu/admin/dashboard.json
+++ b/public/language/hu/admin/dashboard.json
@@ -57,7 +57,7 @@
 	"active-users.connections": "Kapcsolatok",
 
 	"guest-registered-users": "Guest vs Registered Users",
-	"guest": "Guest",
+	"guest": "Vendég",
 	"registered": "Regisztrált",
 
 	"user-presence": "Felhasználói jelenlét",
@@ -68,7 +68,7 @@
 	"unread": "Olvasatlan",
 
 	"high-presence-topics": "Témakörök nagy jelenléttel",
-	"popular-searches": "Popular Searches",
+	"popular-searches": "Népszerű keresések",
 
 	"graphs.page-views": "Oldal megtekintések",
 	"graphs.page-views-registered": "Regisztrált látogatások",
@@ -76,15 +76,18 @@
 	"graphs.page-views-bot": "Bot látogatások",
 	"graphs.unique-visitors": "Egyedi látogatók",
 	"graphs.registered-users": "Regisztrált felhasználók",
-	"graphs.guest-users": "Guest Users",
+	"graphs.guest-users": "Vendég Felhasználók",
 	"last-restarted-by": "Utoljára újraindította:",
 	"no-users-browsing": "Jelenleg nem böngész senki",
 
 	"back-to-dashboard": "Vissza a vezérlőpultra",
 	"details.no-users": "Nem csatlakozott egy felhasználó sem a kiválasztott időszakban",
 	"details.no-topics": "Nem voltak új témakörök a kiválasztott időszakban",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "Nem volt bejelentkezés a kiválasztott időszakban",
 	"details.logins-static": "A NodeBB csak %1 napig menti a munkamenet adatokat és az alábbi táblázat csak a legutóbbi aktív munkameneteket tartalmazza",
-	"details.logins-login-time": "Bejelentkezés ideje"
+	"details.logins-login-time": "Bejelentkezés ideje",
+	"start": "Kezdés",
+	"end": "Vége",
+	"filter": "Szűrő"
 }
diff --git a/public/language/hu/admin/extend/widgets.json b/public/language/hu/admin/extend/widgets.json
index a86018b3b8..aabcd83936 100644
--- a/public/language/hu/admin/extend/widgets.json
+++ b/public/language/hu/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Nincs",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel fejléc",
-	"container.panel-body": "Panel test",
+	"container.card": "Kártya",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Riasztás",
 
 	"alert.confirm-delete": "Biztosan szeretnéd törölni ezt a modult?",
diff --git a/public/language/hu/admin/manage/admins-mods.json b/public/language/hu/admin/manage/admins-mods.json
index 4728e654d6..1e754a8bd0 100644
--- a/public/language/hu/admin/manage/admins-mods.json
+++ b/public/language/hu/admin/manage/admins-mods.json
@@ -1,10 +1,10 @@
 {
     "administrators": "Adminisztrátorok",
     "global-moderators": "Globális moderátorok",
-    "moderators": "Moderators",
+    "moderators": "Moderátorok",
     "no-global-moderators": "Nincsenek Globális moderátorok",
-    "no-sub-categories": "No subcategories",
-    "subcategories": "%1 subcategories",
+    "no-sub-categories": "Nincsenek Alkategóriák",
+    "subcategories": "%1 alkategória",
     "no-moderators": "Nincsenek Moderátorok",
     "add-administrator": "Adminisztrátor hozzáadása",
     "add-global-moderator": "Globális moderátor hozzáadása",
diff --git a/public/language/hu/admin/manage/digest.json b/public/language/hu/admin/manage/digest.json
index dced3f927a..753beb1d98 100644
--- a/public/language/hu/admin/manage/digest.json
+++ b/public/language/hu/admin/manage/digest.json
@@ -13,7 +13,7 @@
 	"resent-single": "Manuális összefoglaló küldés sikeres",
 	"resent-day": "Napi összefoglaló újraküldés sikeres",
 	"resent-week": "Heti összefoglaló újraküldés sikeres",
-	"resent-biweek": "Bi-Weekly digest resent",
+	"resent-biweek": "Kétheti összefoglaló újraküldés sikeres",
 	"resent-month": "Havi összefoglaló újraküldés sikeres",
 	"null": "<em>Soha</em>",
 	"manual-run": "Manuális összefoglaló futtatás:",
diff --git a/public/language/hu/admin/manage/groups.json b/public/language/hu/admin/manage/groups.json
index 7a921cafb9..9e82e5a05a 100644
--- a/public/language/hu/admin/manage/groups.json
+++ b/public/language/hu/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Visszavonás",
 
 	"edit.no-users-found": "Nem található felhasználó",
-	"edit.confirm-remove-user": "Biztosan eltávolítod ezt a felhasználót?",
-	"edit.save-success": "Változtatások mentve!"
+	"edit.confirm-remove-user": "Biztosan eltávolítod ezt a felhasználót?"
 }
\ No newline at end of file
diff --git a/public/language/hu/admin/manage/privileges.json b/public/language/hu/admin/manage/privileges.json
index 23c048a409..e5a842f41d 100644
--- a/public/language/hu/admin/manage/privileges.json
+++ b/public/language/hu/admin/manage/privileges.json
@@ -10,7 +10,7 @@
 	"upload-files": "Fájlok feltöltése",
 	"signature": "Aláírás",
 	"ban": "Kitiltás",
-	"mute": "Mute",
+	"mute": "Némítás",
 	"invite": "Meghívás",
 	"search-content": "Tartalom keresése",
 	"search-users": "Felhasználó keresése",
@@ -23,9 +23,9 @@
 	"view-users-info": "Felhasználói információk megtekintése",
 	"find-category": "Kategória keresése",
 	"access-category": "Hozzáférés kategóriához",
-	"access-topics": "Hozzáférés témákhoz",
-	"create-topics": "Téma létrehozása",
-	"reply-to-topics": "Hozzászólás témához",
+	"access-topics": "Hozzáférés témakörhöz",
+	"create-topics": "Témakör létrehozása",
+	"reply-to-topics": "Hozzászólás a témakörhöz",
 	"schedule-topics": "Témakörök időzítése",
 	"tag-topics": "Téma címke hozzáadása",
 	"edit-posts": "Bejegyzés szerkesztése",
@@ -34,7 +34,7 @@
 	"view_deleted": "Törölt bejegyzések megtekintése",
 	"upvote-posts": "Bejegyzés kedvelése",
 	"downvote-posts": "Bejegyzés nem kedvelése",
-	"delete-topics": "Téma törlése",
+	"delete-topics": "Témakör törlése",
 	"purge": "Teljes törlés",
 	"moderate": "Moderáció",
 	"admin-dashboard": "Vezérlőpult",
@@ -49,13 +49,12 @@
 	"alert.confirm-moderate": "<strong>Biztosan beállítod ezeket a moderációs jogosultságokat ennek a csoportnak?</strong> Ez a csoport nyilvános, a felhasználók szabadon beléphetnek.",
 	"alert.confirm-admins-mods": "<strong>Biztosan beállítod az &quot;Adminisztrátorok és moderátorok&quot; jogosultságot ennek a felhasználónak/csoportnak?</strong> Felhasználók ezzel a jogosultsággal képesek más felhasználókat különböző jogosultságokkal felruházni, <em>beleértve a szuper adminisztrátort is</em>",
 	"alert.confirm-save": "Erősítsd meg, hogy frissíteni szeretnéd ezeket a jogosultságokat",
-	"alert.saved": "Jogosultságok módosításai mentésre kerültek",
 	"alert.confirm-discard": "Biztosan el szeretnéd vetni ezeket a jogosultsági módosításokat?",
 	"alert.discarded": "Jogosultságok módosításai elvetve",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
-	"alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's set of <strong>%1</strong> to <strong>all categories</strong>?",
-	"alert.confirm-copyToChildren": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all descendant (child) categories</strong>?",
-	"alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's set of <strong>%1</strong> to <strong>all descendant (child) categories</strong>?",
+	"alert.confirm-copyToAllGroup": "Biztos benne, hogy <strong>minden kategóriában alkalmazni kívánja</strong> ennek a csoportnak a <strong>%1</strong> készletét?",
+	"alert.confirm-copyToChildren": "Biztos benne, hogy ezt a <strong>%1</strong> készletet az <strong>összes leszármazott (gyermek) kategóriára alkalmazni kívánja</strong>?",
+	"alert.confirm-copyToChildrenGroup": "Biztos benne, hogy alkalmazni kívánja ennek a csoportnak a <strong>%1</strong> készletét az <strong>összes leszármazott (gyermek) kategóriára</strong>?",
 	"alert.no-undo": "<em>Ez a művelet nem vonható vissza.</em>",
 	"alert.admin-warning": "Az adminisztrátorok automatikusan megkapnak minden jogosultságot",
   	"alert.copyPrivilegesFrom-title": "Select a category to copy from",
diff --git a/public/language/hu/admin/manage/uploads.json b/public/language/hu/admin/manage/uploads.json
index 4a047ee60a..55fe5c12bd 100644
--- a/public/language/hu/admin/manage/uploads.json
+++ b/public/language/hu/admin/manage/uploads.json
@@ -6,6 +6,6 @@
     "size/filecount": "Méret / fájlok száma",
     "confirm-delete": "Biztosan törölni szeretnéd ezt a fájlt?",
     "filecount": "%1 fájl",
-    "new-folder": "New Folder",
-    "name-new-folder": "Enter a name for new the folder"
+    "new-folder": "Új Mappa",
+    "name-new-folder": "Adjon nevet az új mappának"
 }
\ No newline at end of file
diff --git a/public/language/hu/admin/manage/users.json b/public/language/hu/admin/manage/users.json
index 3eacbead0b..6c673c40bf 100644
--- a/public/language/hu/admin/manage/users.json
+++ b/public/language/hu/admin/manage/users.json
@@ -1,6 +1,6 @@
 {
 	"users": "Felhasználók",
-	"edit": "Actions",
+	"edit": "Akciók",
 	"make-admin": "Adminná léptetés",
 	"remove-admin": "Admin törlése",
 	"validate-email": "Email érvényesítése",
@@ -18,7 +18,7 @@
 	"download-csv": "CSV letöltése",
 	"manage-groups": "Csoportok kezelése",
 	"add-group": "Csoport létrehozása",
-	"create": "Create User",
+	"create": "Felhasználó létrehozása",
 	"invite": "Invite by Email",
 	"new": "Új felhasználó",
 	"filter-by": "Szűrés",
@@ -48,7 +48,7 @@
 	"users.uid": "uid",
 	"users.username": "felhasználónév",
 	"users.email": "email",
-	"users.no-email": "(no email)",
+	"users.no-email": "(nincs email)",
 	"users.ip": "IP",
 	"users.postcount": "hozzászólások száma",
 	"users.reputation": "hírnév",
@@ -63,7 +63,7 @@
 	"create.password": "Jelszó",
 	"create.password-confirm": "Jelszó megerősítése",
 
-	"temp-ban.length": "Length",
+	"temp-ban.length": "Hosszúság",
 	"temp-ban.reason": "Indok <span class=\"text-muted\">(Nem kötelező)</span>",
 	"temp-ban.hours": "Óra",
 	"temp-ban.days": "Nap",
@@ -91,7 +91,7 @@
 	"alerts.validate-email-success": "Email cím(ek) megerősítve",
 	"alerts.validate-force-password-reset-success": "Felhasználó(k) jelszava törölve és a hozzá(juk) tartozó minden munkamenet érvénytelenítve.",
 	"alerts.password-reset-confirm": "Szeretnél jelszó módosítási emailt küldeni ezen felhasználó(k)nak?",
-	"alerts.password-reset-email-sent": "Password reset email sent.",
+	"alerts.password-reset-email-sent": "Jelszó-visszaállítási e-mail elküldve.",
 	"alerts.confirm-delete": "<strong>Figyelem!</strong><p>Biztosan szeretnéd törölni ezen <strong>felhasználó(ka)</strong>-t?</p><p>Ez a művelet nem visszavonható! Csak a felhasználó(k) fiókja kerül törlésre, a témakörök és hozzászólások nem.</p>",
 	"alerts.delete-success": "Felhasználó(k) törölve!",
 	"alerts.confirm-delete-content": "<strong>Figyelem!</strong><p>Biztosan szeretnéd törölni ezen felhasználó(k) <strong>minden tartalmát</strong>?</p><p>Ez a művelet nem visszavonható! A felhasználó(k) fiókja megmarad, csak a témakörök és hozzászólások törlődnek.</p>",
diff --git a/public/language/hu/admin/menu.json b/public/language/hu/admin/menu.json
index b3340a00da..a19f50b760 100644
--- a/public/language/hu/admin/menu.json
+++ b/public/language/hu/admin/menu.json
@@ -4,7 +4,7 @@
 	"dashboard/logins": "Bejelentkezések",
 	"dashboard/users": "Felhasználók",
 	"dashboard/topics": "Témakörök",
-	"dashboard/searches": "Searches",
+	"dashboard/searches": "Keresések",
 	"section-general": "Általános",
 
 	"section-manage": "Kezelés",
@@ -76,7 +76,7 @@
 	"logout": "Kilépés",
 	"view-forum": "Fórum megtekintése",
 
-	"search.placeholder": "Search settings",
+	"search.placeholder": "Keresési beállítások",
 	"search.no-results": "Nincs eredmény...",
 	"search.search-forum": "<strong></strong> keresése a fórumon",
 	"search.keep-typing": "Gépelj többet az eredményekért...",
diff --git a/public/language/hu/admin/settings/advanced.json b/public/language/hu/admin/settings/advanced.json
index 24a7537fe3..7548677a97 100644
--- a/public/language/hu/admin/settings/advanced.json
+++ b/public/language/hu/admin/settings/advanced.json
@@ -20,7 +20,7 @@
 	"headers.coep-help": "When enabled (default), will set the header to <code>require-corp</code>",
 	"headers.coop": "Cross-Origin-Opener-Policy",
 	"headers.corp": "Cross-Origin-Resource-Policy",
-	"headers.permissions-policy": "Permissions-Policy",
+	"headers.permissions-policy": "Engedélyek–Szabályzat",
 	"headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see <a href=\"https://github.com/w3c/webappsec-permissions-policy/blob/main/permissions-policy-explainer.md\">this</a> for more info.",
 	"hsts": "Szigorú HTTP biztonság (HSTS)",
 	"hsts.enabled": "Szigorú HTTP biztonság (HSTS) bekapcsolása (ajánlott)",
diff --git a/public/language/hu/admin/settings/api.json b/public/language/hu/admin/settings/api.json
index ec8ad3ad4c..31ffbce5f1 100644
--- a/public/language/hu/admin/settings/api.json
+++ b/public/language/hu/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "Felhasználó azonosító",
 	"uid-help-text": "Adj meg egy felhasználó azonosítót, hogy társítsd ehhez a tokenhez. Ha a felhasználó azonosító 0, akkor <em>mester</em> tokenként lesz kezelve, ami bármelyik felhasználó identitását képes felvenni a <code>_uid</code> paraméter alapján",
 	"description": "Leírás",
+	"last-seen-ago": "Utolsó látogatás <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Utolsó látogatás <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "Ezt a kulcsot soha nem használták.",
 	"no-description": "Nincs leírás megadva.",
 	"token-on-save": "A token az űrlap mentésekor generálódik"
 }
\ No newline at end of file
diff --git a/public/language/hu/admin/settings/email.json b/public/language/hu/admin/settings/email.json
index f458051251..69386c4e7e 100644
--- a/public/language/hu/admin/settings/email.json
+++ b/public/language/hu/admin/settings/email.json
@@ -5,8 +5,8 @@
 	"from": "Feladó neve",
 	"from-help": "Az emailben megjelenített feladói név.",
 
-	"confirmation-settings": "Confirmation",
-	"confirmation.expiry": "Hours to keep email confirmation link valid",
+	"confirmation-settings": "Megerősítés",
+	"confirmation.expiry": "Nyitvatartási idő az e-mail megerősítő link érvényességének megőrzéséhez",
 
 	"smtp-transport": "SMTP beállítások",
 	"smtp-transport.enabled": "Enable SMTP Transport",
diff --git a/public/language/hu/admin/settings/general.json b/public/language/hu/admin/settings/general.json
index 46beeaf4b7..ba10978572 100644
--- a/public/language/hu/admin/settings/general.json
+++ b/public/language/hu/admin/settings/general.json
@@ -35,10 +35,10 @@
 	"maskable-icon.help": "Ajánlott méret és formátum: 512x512, csak PNG formátum. Ha nincs beállítva, a NodeBB a favicon-t fogja használni",
 	"outgoing-links": "Kimenő linkek",
 	"outgoing-links.warning-page": "Kimenő link figyelmeztető oldal használata",
-	"search": "Search",
-	"search-default-in": "Search In",
-	"search-default-in-quick": "Quick Search In",
-	"search-default-sort-by": "Sort by",
+	"search": "Keresés",
+	"search-default-in": "Keresni valamiben",
+	"search-default-in-quick": "Gyors keresés",
+	"search-default-sort-by": "Rendezés",
 	"outgoing-links.whitelist": "Domain-ek, amik figyelmen kívül hagyják a kimenő link figyelmeztető oldalt",
 	"site-colors": "Weboldal szín metainformáció",
 	"theme-color": "Téma színe",
@@ -46,5 +46,5 @@
 	"background-color-help": "A szín ami akkor jelenik meg alkalmazás indulásnál, ha a weboldal egy okostelefonon PWA-ként van telepítve",
 	"undo-timeout": "Undo Timeout",
 	"undo-timeout-help": "Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
-	"topic-tools": "Topic Tools"
+	"topic-tools": "Témakör eszközök"
 }
diff --git a/public/language/hu/admin/settings/navigation.json b/public/language/hu/admin/settings/navigation.json
index 704bea5c2a..58c75f53b8 100644
--- a/public/language/hu/admin/settings/navigation.json
+++ b/public/language/hu/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Csoportok:",
 	"open-new-window": "Megnyitás új ablakban",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Törlés",
 	"btn.disable": "Tiltás",
diff --git a/public/language/hu/admin/settings/reputation.json b/public/language/hu/admin/settings/reputation.json
index 7d55bfd5e3..a412652271 100644
--- a/public/language/hu/admin/settings/reputation.json
+++ b/public/language/hu/admin/settings/reputation.json
@@ -4,13 +4,13 @@
 	"disable-down-voting": "Leszavazás kikapcsolása",
 	"votes-are-public": "Minden szavazat nyilvános",
 	"thresholds": "Aktivitás küszöb értékek",
-	"min-rep-upvote": "Minimum reputation to upvote posts",
+	"min-rep-upvote": "Minimális hírnév a hozzászólások pozitív szavazásához",
 	"upvotes-per-day": "Upvotes per day (set to 0 for unlimited upvotes)",
 	"upvotes-per-user-per-day": "Upvotes per user per day (set to 0 for unlimited upvotes)",
 	"min-rep-downvote": "Szükséges minimális hírnév a leszavazás használatához",
 	"downvotes-per-day": "Leszavazások naponta (adj meg 0-t, hogy ne legyen korlátozás)",
 	"downvotes-per-user-per-day": "Leszavazások felhasználónként naponta (adj meg 0-t, hogy ne legyen korlátozás)",
-	"min-rep-chat": "Minimum reputation to send chat messages",
+	"min-rep-chat": "Minimális hírnév a csevegőüzenetek küldéséhez",
 	"min-rep-flag": "Szükséges minimális hírnév hozzászólások megjelöléséhez",
 	"min-rep-website": "Szükséges minimális hírnév \"weboldal\" megadásához a felhasználói profilon",
 	"min-rep-aboutme": "Szükséges minimális hírnév \"bemutatkozás\" megadásához a felhasználói profilon",
@@ -22,10 +22,10 @@
 	"flags.limit-per-target": "Bizonyos dolgokat legfeljebb hányszor lehessen megjelölni",
 	"flags.limit-per-target-placeholder": "Alapértelmezett: 0",
 	"flags.limit-per-target-help": "Amikor egy hozzászólás vagy felhasználó több megjelölést kap, akkor minden megjelölés &quot;jelentésnek&quot; számít és hozzáadódik az eredeti megjelöléshez. Adj meg 0-tól eltérő értéket egy maximális jelölési szám beállításához.",
-  	"flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts (Set to 0 to disable, default: 0)",
+  	"flags.auto-flag-on-downvote-threshold": "Az automatikus megjelölési bejegyzésekre adott negatív szavazatok száma (0-ra állítva a letiltáshoz, alapértelmezés: 0)",
 	"flags.auto-resolve-on-ban": "A felhasználó összes megjelölésének feloldása, amikor kitiltásra kerül",
-	"flags.action-on-resolve": "Do the following when a flag is resolved",
-	"flags.action-on-reject": "Do the following when a flag is rejected",
-	"flags.action.nothing": "Do nothing",
+	"flags.action-on-resolve": "Tegye a következőket, ha egy megjelölés megoldódott",
+	"flags.action-on-reject": "Tegye a következőket, ha egy megjelölés visszautasított",
+	"flags.action.nothing": "Ne csinálj semmit",
 	"flags.action.rescind": "Rescind the notification send to moderators/administrators"
 }
\ No newline at end of file
diff --git a/public/language/hu/admin/settings/user.json b/public/language/hu/admin/settings/user.json
index f679e5b510..e232b1e2ef 100644
--- a/public/language/hu/admin/settings/user.json
+++ b/public/language/hu/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Nap",
 	"session-time-seconds": "Másodperc",
 	"session-time-help": "Ezek az értékek határozzák meg, hogy mennyi ideig maradjanak bejelentkezve, ha bekapcsolják az \"Emlékezzen rám\" lehetőséget bejelentkezésnél. Ha nincs <i>másodperc</i> érték megadva, akkor a nap értékét vesszük figyelembe. Ha nincs nap érték megadva, akkor az alapértelmezett <i>14 nap</i> kerül beállításra.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Hány perc elteltével számítson egy felhasználó inaktívnak",
 	"online-cutoff-help": "Ha egy felhasználó nem csinál semmit az oldalon, akkor inaktívnak nyilvánítjuk és nem kapnak valós idejű frissítéseket.",
 	"registration": "Felhasználó regisztráció",
@@ -69,7 +71,7 @@
 	"digest-freq.off": "Kikapcsolt",
 	"digest-freq.daily": "Napi",
 	"digest-freq.weekly": "Heti",
-	"digest-freq.biweekly": "Bi-Weekly",
+	"digest-freq.biweekly": "Kéthetente",
 	"digest-freq.monthly": "Havi",
 	"email-chat-notifs": "Email küldése, ha új csevegési üzenet érkezik miközben nem vagyok elérhető",
 	"email-post-notif": "Email küldése, ha válasz érkezik olyan témakörhöz amire feliratkoztam",
diff --git a/public/language/hu/error.json b/public/language/hu/error.json
index 0ad745fd48..692e2affce 100644
--- a/public/language/hu/error.json
+++ b/public/language/hu/error.json
@@ -11,7 +11,7 @@
     "invalid-tid": "Érvénytelen témakör azonosító",
     "invalid-pid": "Érvénytelen hozzászólás azonosító",
     "invalid-uid": "Érvénytelen felhasználó azonosító",
-    "invalid-mid": "Invalid Chat Message ID",
+    "invalid-mid": "Érvénytelen csevegési üzenetazonosító",
     "invalid-date": "Egy valós dátumot muszáj megadni.",
     "invalid-username": "Érvénytelen felhasználónév",
     "invalid-email": "Érvénytelen e-mail cím",
@@ -28,8 +28,8 @@
     "invalid-event": "Érvénytelen esemény: %1",
     "local-login-disabled": "A helyi bejelentkezés letiltva fel nem hatalmazott felhasználóknál.",
     "csrf-invalid": "Sikertelen bejelentkezés, feltételezhetően lejárt a munkamenet. Próbálkozz újra!",
-    "invalid-path": "Invalid path",
-    "folder-exists": "Folder exists",
+    "invalid-path": "Érvénytelen útvonal",
+    "folder-exists": "Mappa létezik",
     "invalid-pagination-value": "Érvénytelen lapozási érték, legalább %1 kell lennie és legfeljebb %2 -nak/nek",
     "username-taken": "Foglalt felhasználónév",
     "email-taken": "Foglalt e-mail",
@@ -37,8 +37,8 @@
     "email-invited": "Ez az email cím már meg lett hívva",
     "email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.",
     "email-not-confirmed-chat": "Nem küldhetsz üzenetet amíg nem erősíted meg az email címed, kattints ide az email cím megerősítéséhez!",
-    "email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.",
-    "no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.",
+    "email-not-confirmed-email-sent": "Az email címed még nincs megerősítve, kérjük, ellenőrizd a beérkező üzeneteidet a megerősítő email-re vonatkozóan. Néhány kategóriában vagy beszélgetésben nem tudsz hozzászólni, amíg az email címed nincs megerősítve.",
+    "no-email-to-confirm": "\"A fiókodhoz nincs email cím rendelve. Az email cím szükséges a fiók helyreállításához, és néhány kategóriában vagy beszélgetésben lehet, hogy szükséges a beszélgetéshez és posztoláshoz. Kérjük, kattints ide az email cím megadásához",
     "user-doesnt-have-email": "User \"%1\" does not have an email set.",
     "email-confirm-failed": "Nem tudtuk ellenőrizni az e-mail címedet, kérlek próbálkozz később.",
     "confirm-email-already-sent": "A megerősítéshez szükséges email már el lett küldve, kérlek várj %1 percet az újraküldéshez.",
@@ -61,8 +61,8 @@
     "no-group": "Nem létező csoport",
     "no-user": "Nem létező felhasználó",
     "no-teaser": "A bevezető nem létezik",
-    "no-flag": "Flag does not exist",
-    "no-chat-room": "Chat room does not exist",
+    "no-flag": "Megjelölés nem létezik",
+    "no-chat-room": "Csevegőszoba nem létezik",
     "no-privileges": "Nincs elég jogod ehhez a művelethez.",
     "category-disabled": "Kategória kikapcsolva",
     "topic-locked": "Téma lezárva",
@@ -89,18 +89,19 @@
     "category-not-selected": "A kategória nincs kiválasztva.",
     "too-many-posts": "Csak %1 másodpercenként hozhatsz létre új bejegyzést - kérlek várj egy kicsit mielőtt új bejegyzést tennél közzé",
     "too-many-posts-newbie": "Új felhasználóként csak egyszer készíthetsz bejegyzést %1 másodpercen belül, amíg el nem éred a %2 szintet - kérlek várj egy kicsit mielőtt új bejegyzést tennél közzé",
-    "already-posting": "You are already posting",
+    "already-posting": "Már írsz egy bejegyzést",
     "tag-too-short": "Kérlek hosszabb címkét adj meg. A címke legalább %1 karaktert kell, hogy tartalmazzon",
     "tag-too-long": "Kérlek rövidebb címkét adj meg. A címkék nem lehetnek hosszabbak %1 karakternél",
-    "not-enough-tags": "Nincs elég címke. A bejegyzésnek legalább %1 címkét kell tartalmaznia",
-    "too-many-tags": "Túl sok címke. A bejegyzés nem tartalmazhat több címkét mint %1",
+    "not-enough-tags": "Nincs elég címke. A témakörnek legalább %1 címkét kell tartalmaznia",
+    "too-many-tags": "Túl sok címke. A témakör nem tartalmazhat több címkét mint %1",
     "cant-use-system-tag": "Nem használhatod ezt a rendszer címkét.",
-    "cant-remove-system-tag": "You can not remove this system tag.",
+    "cant-remove-system-tag": "Ez a rendszercímke nem távolítható el.",
     "still-uploading": "Kérlek várj, amíg a feltöltés befejeződik.",
     "file-too-big": "A maximális megengedett fájl méret %1 kB - kérlek kisebb méretű fájlt tölts fel",
     "guest-upload-disabled": "Vendég általi feltöltés kikapcsolva",
     "cors-error": "Nem sikerült a kép feltöltés a rosszul konfigurált CORS miatt",
     "upload-ratelimit-reached": "Egyszerre túl sok fájlt töltöttél fel. Kérlek próbáld újra később.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Kérlek adj meg egy jövőbeli időpontot.",
     "invalid-schedule-date": "Kérlek valós dátumot és időt adj meg.",
     "cant-pin-scheduled": "Időzített témakörök rögzítése nem oldható fel.",
@@ -134,6 +135,8 @@
     "group-already-requested": "A tagság kérelmed már be lett nyújtva",
     "group-join-disabled": "Most nem csatlakozhatsz ehhez a csoporthoz",
     "group-leave-disabled": "Most nem hagyhatod el ezt a csoportot",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Ez a bejegyzés mát törlésre került",
     "post-already-restored": "Ez a bejegyzés már visszaállításra került",
     "topic-already-deleted": "Ezt a témakör már törlésre került",
@@ -154,32 +157,32 @@
     "cant-delete-chat-message": "Nem törölheted ezt az üzenetet",
     "chat-edit-duration-expired": "Üzenetet a beküldés után csak %1 másodpercig szerkeszthetsz",
     "chat-delete-duration-expired": "Üzenetet a beküldés után csak %1 másodpecen belül törölhetsz",
-    "chat-deleted-already": "Ez az üzenet már törölve lett.",
+    "chat-deleted-already": "Ezt a csevegőüzenetet már törölték.",
     "chat-restored-already": "Ez az üzenet már vissza van állítva.",
     "chat-room-does-not-exist": "Csevegő szoba nem létezik.",
-    "cant-add-users-to-chat-room": "Can't add users to chat room.",
-    "cant-remove-users-from-chat-room": "Can't remove users from chat room.",
-    "chat-room-name-too-long": "Chat room name too long.",
+    "cant-add-users-to-chat-room": "Nem lehet felhasználókat hozzáadni a csevegőszobához.",
+    "cant-remove-users-from-chat-room": "A felhasználókat nem lehet eltávolítani a csevegőszobából.",
+    "chat-room-name-too-long": "A csevegőszoba neve túl hosszú.",
     "already-voting-for-this-post": "Már szavaztál erre a hozzászólásra.",
     "reputation-system-disabled": "Hírnév funkció kikapcsolva.",
     "downvoting-disabled": "Leszavazás funkció kikapcsolva",
-    "not-enough-reputation-to-chat": "You need %1 reputation to chat",
-    "not-enough-reputation-to-upvote": "You need %1 reputation to upvote",
-    "not-enough-reputation-to-downvote": "You need %1 reputation to downvote",
-    "not-enough-reputation-to-flag": "You need %1 reputation to flag this post",
-    "not-enough-reputation-min-rep-website": "You need %1 reputation to add a website",
-    "not-enough-reputation-min-rep-aboutme": "You need %1 reputation to add an about me",
-    "not-enough-reputation-min-rep-signature": "You need %1 reputation to add a signature",
-    "not-enough-reputation-min-rep-profile-picture": "You need %1 reputation to add a profile picture",
-    "not-enough-reputation-min-rep-cover-picture": "You need %1 reputation to add a cover picture",
+    "not-enough-reputation-to-chat": "A csevegéshez %1 hírnévre van szüksége",
+    "not-enough-reputation-to-upvote": "A pozitív szavazáshoz %1 hírnévre van szüksége",
+    "not-enough-reputation-to-downvote": "A negatív szavazáshoz %1 hírnévre van szüksége",
+    "not-enough-reputation-to-flag": "A bejegyzés megjelöléséhez %1 hírnévre van szüksége",
+    "not-enough-reputation-min-rep-website": "Webhely hozzáadásához %1 hírnévre van szüksége",
+    "not-enough-reputation-min-rep-aboutme": "A rólam mező kitöltéséhez %1 hírnévre van szüksége",
+    "not-enough-reputation-min-rep-signature": "Aláírás hozzáadásához %1 hírnévre van szüksége",
+    "not-enough-reputation-min-rep-profile-picture": "Profilkép hozzáadásához %1 hírnévre van szüksége",
+    "not-enough-reputation-min-rep-cover-picture": "Borítókép hozzáadásához %1 hírnévre van szüksége",
     "post-already-flagged": "Már megjelölted ezt a hozzászólást",
     "user-already-flagged": "Már megjelölted ez a felhasználót",
     "post-flagged-too-many-times": "Ez a bejegyzés már meg lett jelölve egy másik felhasználó által",
     "user-flagged-too-many-times": "Ez a felhasználó már meg lett jelölve egy másik felhasználó által",
     "cant-flag-privileged": "Nem jelentheted be felhatalmazott felhasználókat vagy a bejegyzéseik tartalmát (moderátor/globális moderátor/adminok)",
     "self-vote": "Nem szavazhatsz a saját hozzászólásodra",
-    "too-many-upvotes-today": "You can only upvote %1 times a day",
-    "too-many-upvotes-today-user": "You can only upvote a user %1 times a day",
+    "too-many-upvotes-today": "Naponta csak %1 alkalommal szavazhat pozitívan",
+    "too-many-upvotes-today-user": "Egy felhasználóra naponta csak %1 alkalommal szavazhat pozitívan",
     "too-many-downvotes-today": "Naponat csak %1 alkalommal szavazhatsz",
     "too-many-downvotes-today-user": "Naponta csak %1 alkalommal szavazhatsz le felhasználókat",
     "reload-failed": "NodeBB egy hibát észlelt újratöltés közben: \"%1\". A fórum továbbra is kiszolgálja a kliens-oldali eszközöket, bár vissza kellene csinálnod amit az újratöltés előtt elállítottál.",
@@ -198,7 +201,7 @@
     "invalid-session": "Invalid Session",
     "invalid-session-text": "It looks like your login session is no longer active. Please refresh this page.",
     "session-mismatch": "Session Mismatch",
-    "session-mismatch-text": "It looks like your login session no longer matches with the server. Please refresh this page.",
+    "session-mismatch-text": "Úgy tűnik, a bejelentkezési munkamenet már nem egyezik a szerverrel. Kérjük, frissítse ezt az oldalt.",
     "no-topics-selected": "Nincs témakör kiválasztva",
     "cant-move-to-same-topic": "Nem mozgathatsz hozzászólást azonos témakörbe!",
     "cant-move-topic-to-same-category": "Nem mozgathatod a témakört azonos kategóriába!",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/hu/flags.json b/public/language/hu/flags.json
index 1ee967e128..b62147ea08 100644
--- a/public/language/hu/flags.json
+++ b/public/language/hu/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Jelentés",
 	"first-reported": "Először jelentve",
 	"no-flags": "Hurrá! Nincs megjelölés.",
+	"x-flags-found": "%1 megjelölés találva.",
 	"assignee": "Engedményes",
 	"update": "Frissítés",
 	"updated": "Frissítve",
 	"resolved": "Megoldva",
 	"target-purged": "A tartalom amire a jelölő mutat már meg lett tiszítva vagy nem létezik.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Napi jelölők",
 	"quick-filters": "Gyors szűrő",
 	"filter-active": "Egy vagy több szűrő be van kapcsolva a jelölők között",
 	"filter-reset": "Szűrők eltüntetése",
 	"filters": "Szűrők beállítása",
-	"filter-reporterId": "Jelentő UID",
-	"filter-targetUid": "Megjelölt UID",
+	"filter-reporterId": "Bejelentő",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Jelölő típus",
 	"filter-type-all": "Összes tartalom",
 	"filter-type-post": "Hozzászólás",
 	"filter-type-user": "Felhasználó",
 	"filter-state": "Állapot",
-	"filter-assignee": "Engedményes UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategória",
 	"filter-quick-mine": "Hozzám rendelt",
 	"filter-cid-all": "Minden kategória",
@@ -38,19 +40,20 @@
 	"delete-post": "Bejegyzés törlése",
 	"purge-post": "Bejegyzés megtisztítása",
 	"restore-post": "Bejegyzés helyreállítása",
-	"delete": "Delete Flag",
+	"delete": "Megjelölés törlése",
 
 	"user-view": "Profil megtekintése",
 	"user-edit": "Profil szerkesztése",
 
 	"notes": "Jegyzetek megjelölése",
 	"add-note": "Új jegyzet hozzáadása",
+	"edit-note": "Jegyzet szerkesztése",
 	"no-notes": "Nincsenek megosztott jegyzetek.",
 	"delete-note-confirm": "Biztosan törölni akarod ezt a jegyzet jelölőt?",
-	"delete-flag-confirm": "Are you sure you want to delete this flag?",
+	"delete-flag-confirm": "Biztosan törli ezt a megjelölést?",
 	"note-added": "Jegyzet hozzá adva",
 	"note-deleted": "Jegyzet törölve",
-	"flag-deleted": "Flag Deleted",
+	"flag-deleted": "Megjelölés törölve",
 
 	"history": "Felhasználó &amp; Előzmény jelölő",
 	"no-history": "Nincs előzmény jelölő.",
@@ -85,5 +88,5 @@
 	"bulk-resolve": "Megoldott jelölés",
 	"bulk-success": "%1 jelölő frissítve",
 	"flagged-timeago-readable": "Megjelölve <span class=\"timeago\" title=\"%1\"></span> (%2)",
-  	"auto-flagged": "[Auto Flagged] Received %1 downvotes."
+  	"auto-flagged": "[Automatikus Megjelölés] %1 negatív szavazatot kapott."
 }
\ No newline at end of file
diff --git a/public/language/hu/global.json b/public/language/hu/global.json
index fd340e9ed6..6f6521bb18 100644
--- a/public/language/hu/global.json
+++ b/public/language/hu/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Bezárás",
     "403.title": "Hozzáférés megtagadva",
     "403.message": "Úgy tűnik, hogy rábukkantál egy olyan oldalra, amihez nincs hozzáférésed.",
-    "403.login": "Talán próbálj meg <a href='%1/login'>belépni</a>?",
+    "403.login": "Talán meg kellene próbálnod <a class=\"alert-link\" href='%1/login'>bejelentkezni</a>?",
     "404.title": "Nincs találat",
-    "404.message": "Úgy tűnik, hogy rábukkantál egy olyan oldalra, ami nem létezik. Visszatérés a <a href='%1/'>kezdőoldalra</a>",
+    "404.message": "Úgy tűnik, egy nem létező oldalra bukkantál. Vissza a <a class=\"alert-link\" href='%1/'>kezdőlapra</a>.",
     "500.title": "Belső hiba.",
     "500.message": "Hoppá! Úgy tűnik, valami hiba történt!",
     "400.title": "Hibás kérelem.",
-    "400.message": "Úgy látszik, a hivatkozás formátuma hibás, ellenőrizd és próbáld újra. Egyéb esetben térj vissza a <a href='%1/'>kezdőoldalra</a>.",
+    "400.message": "Úgy tűnik, ez a link hibás, kérjük, ellenőrizze még egyszer, és próbálja újra. Ellenkező esetben térjen <a class=\"alert-link\" href='%1/'>vissza a kezdőlapra</a>.",
     "register": "Regisztrálás",
     "login": "Belépés",
     "please_log_in": "Jelentkezz be",
@@ -23,7 +23,7 @@
     "close": "Bezárás",
     "pagination": "Lapozás",
     "pagination.out_of": "%1 / %2",
-    "pagination.enter_index": "Go to post index",
+    "pagination.enter_index": "Ugrás a bejegyzés indexére",
     "header.admin": "Admin",
     "header.categories": "Kategóriák",
     "header.recent": "Legutóbbi",
@@ -37,9 +37,13 @@
     "header.notifications": "Értesítések",
     "header.search": "Keresés",
     "header.profile": "Profil",
+    "header.account": "Fiók",
     "header.navigation": "Navigáció",
+    "header.manage": "Kezelés",
+    "header.drafts": "Piszkozatok",
     "notifications.loading": "Értesítések betöltése",
     "chats.loading": "Chat betöltése",
+    "drafts.loading": "Piszkozatok betöltése",
     "motd.welcome": "Üdvözlet a NodeBB-n, a jövő fórum platformján.",
     "previouspage": "Előző oldal",
     "nextpage": "Következő oldal",
@@ -54,24 +58,26 @@
     "users": "Felhasználók",
     "topics": "Témakörök",
     "posts": "Hozzászólások",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> bejegyzés",
+    "x-topics": "<span class=\"formatted-number\">%1</span> témakör",
     "best": "Legjobb",
-    "controversial": "Controversial",
+    "controversial": "Vitatható",
     "votes": "Szavazatok",
-    "x-votes": "%1 votes",
-    "voters": "Voters",
+    "x-votes": "%1 szavazat",
+    "voters": "Szavazók",
     "upvoters": "Kedvelők",
     "upvoted": "Kedvelt",
     "downvoters": "Utálók",
     "downvoted": "Utálva",
     "views": "Megtekintések",
-    "posters": "Posters",
+    "posters": "Bejegyzők",
     "reputation": "Hírnév",
-    "lastpost": "Last post",
-    "firstpost": "First post",
+    "lastpost": "Utolsó bejegyzés",
+    "firstpost": "Első bejegyzés",
+    "about": "Rólam",
     "read_more": "további olvasása",
     "more": "Több",
-    "none": "None",
+    "none": "Egyik sem",
     "posted_ago_by_guest": "%1 vendég hozzászólás",
     "posted_ago_by": "%2 hozzászólás %1",
     "posted_ago": "%1 hozzászólás",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 hozzászólt %2",
     "guest_posted_ago": "Vendég hozzászólás %1",
     "last_edited_by": "utoljára %1 szerkesztette",
+    "edited-timestamp": "Szerkesztett %1",
     "norecentposts": "Nincs legutóbbi hozzászólás",
     "norecenttopics": "Nincs legutóbbi témakör",
     "recentposts": "Legutóbbi hozzászólások",
     "recentips": "Utoljára bejelentkezett IP címek",
     "moderator_tools": "Moderátori eszközök",
+    "status": "Státusz",
     "online": "Elérhető",
     "away": "Nincs a gépnél",
     "dnd": "Ne zavarj",
@@ -96,7 +104,7 @@
     "language": "Nyelv",
     "guest": "Vendég",
     "guests": "Vendég",
-    "former_user": "A Former User",
+    "former_user": "Egy korábbi felhasználó",
     "system-user": "Rendszer",
     "unknown-user": "Ismeretlen felhasználó",
     "updated.title": "Fórum frissítve",
@@ -122,5 +130,7 @@
     "edited": "Szerkesztett",
     "disabled": "Letiltva",
     "select": "Kiválaszt",
-    "user-search-prompt": "Írj be valamit, hogy felhasználókra keress..."
+    "user-search-prompt": "Írj be valamit, hogy felhasználókra keress...",
+    "hidden": "Rejtve",
+    "sort": "Rendezés"
 }
\ No newline at end of file
diff --git a/public/language/hu/groups.json b/public/language/hu/groups.json
index eb77e6f9f7..07a37802a6 100644
--- a/public/language/hu/groups.json
+++ b/public/language/hu/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Csoportok",
+    "members": "Felhasználók",
     "view_group": "Csoport megtekintés",
     "owner": "Csoport tulajdonosa",
     "new_group": "Új csoport létrehozása",
diff --git a/public/language/hu/modules.json b/public/language/hu/modules.json
index 5d7f764cf5..632ec511c0 100644
--- a/public/language/hu/modules.json
+++ b/public/language/hu/modules.json
@@ -1,20 +1,24 @@
 {
-    "chat.chatting_with": "Chat vele",
-    "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.chatting_with": "Csevegés vele",
+    "chat.placeholder": "Írja be ide a csevegőüzenetet, húzza át a képeket, majd nyomja meg az Enter billentyűt a küldéshez",
+    "chat.placeholder.mobile": "Írja be ide a csevegő üzenetet",
     "chat.scroll-up-alert": "Régebbi üzeneteket nézel, kattints ide a legfrissebbekhez.",
+    "chat.usernames-and-x-others": "%1 & %2 és mások",
+    "chat.chat-with-usernames": "Csevegés a következővel: %1",
+    "chat.chat-with-usernames-and-x-others": "Csevegés %1 és %2 másik személyekkel",
     "chat.send": "Küldés",
     "chat.no_active": "Nincs aktív csevegésed.",
     "chat.user_typing": "%1 éppen ír ...",
     "chat.user_has_messaged_you": "%1 üzenetet küldött.",
-    "chat.see_all": "All chats",
-    "chat.mark_all_read": "Mark all read",
+    "chat.see_all": "Összes csevegés",
+    "chat.mark_all_read": "Összes olvasottként jelölése",
     "chat.no-messages": "Válasszuk ki a címzettet és tekintsük meg a chat előzményeket",
     "chat.no-users-in-room": "Nincs felhasználó a szobában",
     "chat.recent-chats": "Legutóbbi csevegések",
     "chat.contacts": "Névjegyzék",
     "chat.message-history": "Üzenet előzmények",
     "chat.message-deleted": "Üzenet törölve",
-    "chat.options": "Chat beállítások",
+    "chat.options": "Csevegő beállítások",
     "chat.pop-out": "Felugró csevegés",
     "chat.minimize": "Kis méret",
     "chat.maximize": "Teljes méret",
@@ -23,13 +27,13 @@
     "chat.three_months": "3 hónap",
     "chat.delete_message_confirm": "Biztos törölni akarod az üzenetet?",
     "chat.retrieving-users": "Felhasználók lekérése...",
-    "chat.manage-room": "Chat szoba kezelése",
+    "chat.manage-room": "Csevegő szoba kezelése",
     "chat.add-user-help": "Itt keress felhasználókat. Kiválasztás után a felhasználó hozzá lesz adva a chathez. Az új felhasználó nem fogja látni az üzenet előzményeket az előttről, hogy hozzá lett adva a beszélgetéshez. Csak a szoba tulajdonosai (<i class=\"fa fa-star text-warning\"></i>) távolíthatnak el felhasználókat a beszélgetésből.",
     "chat.confirm-chat-with-dnd-user": "A felhasználó \"ne zavarj\"-ra állította az állapotukat. Még így is csevegni akarsz velük?",
     "chat.rename-room": "Szoba átnevezése",
     "chat.rename-placeholder": "Add meg a szoba nevét",
     "chat.rename-help": "A megadott szoba név az összes szobában tartózkodó által megtekinthező lesz.",
-    "chat.leave": "Chat elhagyása",
+    "chat.leave": "Csevegő elhagyása",
     "chat.leave-prompt": "Biztosan el akarod hagyni a beszélgetést?",
     "chat.leave-help": "A szoba elhagyását követően nem fogod látni az oda érkező üzeneteket. Ha újra hozzá leszel adva a szobához akkor nem fogod látni a beszélgetés előzményeit a kilépésed előttről sem.",
     "chat.in-room": "Ebben a szobában",
@@ -42,6 +46,7 @@
     "composer.compose": "Üzenetírás",
     "composer.show_preview": "Előnézet megjelenítése",
     "composer.hide_preview": "Előnézet elrejtése",
+    "composer.help": "Segítség",
     "composer.user_said_in": "%1 válasza, %2:",
     "composer.user_said": "%1 válasza:",
     "composer.discard": "Biztosan el akarod vetni a hozzászólást?",
@@ -54,7 +59,7 @@
     "composer.formatting.strikethrough": "Áthúzás",
     "composer.formatting.code": "Code",
     "composer.formatting.link": "Hivatkozás",
-    "composer.formatting.picture": "Image Link",
+    "composer.formatting.picture": "Kép hivatkozás",
     "composer.upload-picture": "Kép feltöltése",
     "composer.upload-file": "Fájl feltöltése",
     "composer.zen_mode": "Zen mód",
@@ -65,15 +70,18 @@
     "composer.schedule-time": "Idő",
     "composer.cancel-scheduling": "Időzítés elvetése",
     "composer.set-schedule-date": "Dátum beállítása",
+    "composer.discard-all-drafts": "Dobja el az összes piszkozatot",
+    "composer.no-drafts": "Nincs piszkozatod",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Mégse",
     "bootbox.confirm": "Megerősítés",
-    "bootbox.submit": "Submit",
-    "bootbox.send": "Send",
+    "bootbox.submit": "Küldés",
+    "bootbox.send": "Küldés",
     "cover.dragging_title": "Fedőkép pozíciója",
     "cover.dragging_message": "Húzd a fedőképet a kívánt pozícióba, majd \"Mentés\"",
     "cover.saved": "Fedőkép és annak pozíciója elmentve",
-    "thumbs.modal.title": "Téma indexképének kezelése",
+    "thumbs.modal.title": "Témakör indexképének kezelése",
     "thumbs.modal.no-thumbs": "Nem található indexkép.",
     "thumbs.modal.resize-note": "<strong>Megjegyzés</strong>: A fórum beállítása csak %1px szélességű indexképet engedélyez",
     "thumbs.modal.add": "Indexkép hozzáadása",
diff --git a/public/language/hu/notifications.json b/public/language/hu/notifications.json
index 52738c0c57..f9c3371a1e 100644
--- a/public/language/hu/notifications.json
+++ b/public/language/hu/notifications.json
@@ -1,8 +1,8 @@
 {
     "title": "Értesítések",
     "no_notifs": "Nincsenek új értesítéseid",
-    "see_all": "All notifications",
-    "mark_all_read": "Mark all read",
+    "see_all": "Összes értesítés",
+    "mark_all_read": "Összes olvasottként jelölése",
     "back_to_home": "Vissza - %1",
     "outgoing_link": "Külső hivatkozás",
     "outgoing_link_message": "Most elhagyod az oldalt: %1",
@@ -14,7 +14,7 @@
     "topics": "Témakör",
     "replies": "Válasz",
     "chat": "Chat",
-    "group-chat": "Group Chats",
+    "group-chat": "Csoport Csevegők",
     "follows": "Követés",
     "upvote": "Kedvelés",
     "new-flags": "Új megjelölés",
@@ -48,8 +48,8 @@
     "posts-exported": "<strong>%1</strong> posts exported, click to download",
     "uploads-exported": "<strong>%1</strong> uploads exported, click to download",
     "users-csv-exported": "A Users csv exportálva, kattints ide a letöltéshez",
-    "post-queue-accepted": "Your queued post has been accepted. Click here to see your post.",
-    "post-queue-rejected": "Your queued post has been rejected.",
+    "post-queue-accepted": "A sorba állított bejegyzését elfogadtuk. Kattintson ide a bejegyzés megtekintéséhez",
+    "post-queue-rejected": "A sorba állított bejegyzésedet elutasították.",
     "post-queue-notify": "Queued post received a notification:<br/>\"%1\"",
     "email-confirmed": "E-mail megerősítve",
     "email-confirmed-message": "Köszönjük az e-mail címed megerősítését. A fiókod mostantól teljesen aktiválva van.",
diff --git a/public/language/hu/pages.json b/public/language/hu/pages.json
index 4632eb5d20..125f7089a7 100644
--- a/public/language/hu/pages.json
+++ b/public/language/hu/pages.json
@@ -43,12 +43,13 @@
     "account/following": "Tagok, akiket %1 követ",
     "account/followers": "Tagok, akik %1 felhasználót követik",
     "account/posts": "%1 által írt hozzászólások",
-    "account/latest-posts": "Latest posts made by %1",
+    "account/latest-posts": "%1 által írt utolsó hozzászólások",
     "account/topics": "%1 által létrehozott témakörök",
     "account/groups": "%1 csoportjai",
-    "account/watched_categories": "%1's Watched Categories",
+    "account/watched_categories": "%1 megfigyelt kategóriái",
     "account/bookmarks": "%1 könyvjelzőzött hozzászólásai",
     "account/settings": "Felhasználói beállítások",
+    "account/settings-of": "%1 beállításainak módosítása",
     "account/watched": "%1 által figyelt témakörök",
     "account/ignored": "%1 által mellőzött témakörök",
     "account/upvoted": "%1 által kedvelt témakörök",
@@ -56,8 +57,8 @@
     "account/best": "%1 által írt legjobb hozzászólások",
     "account/controversial": "Controversial posts made by %1",
     "account/blocks": "Felhasználó letiltva erről: %1",
-    "account/uploads": "Feltöltések általa: %1",
-    "account/sessions": "Bejelentkezések munkamenete",
+    "account/uploads": "%1 feltöltései",
+    "account/sessions": "Belépési munkamenetek",
     "confirm": "E-mail megerősítve",
     "maintenance.text": "%1 jelenleg karbantartás alatt van. Kérlek, nézz vissza később!",
     "maintenance.messageIntro": "Ezenkívúl, az adminisztrátor ezt az üzenetet hagyta:",
diff --git a/public/language/hu/post-queue.json b/public/language/hu/post-queue.json
index 7217428448..406e956d9d 100644
--- a/public/language/hu/post-queue.json
+++ b/public/language/hu/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Hozzászólási várósor",
-	"description": "Nem várakozik egy bejegyzés sem a sorban. <br> Hogy bekapcsold ezt a funckiót, menj a <a href=\"%1\">Beállítások &rarr; Bejegyzés &rarr; Bejegyzés sor</a> és fogadd el a <strong>Bejegyzés sor</strong>. -t",
+	"no-queued-posts": "Nincsenek hozzászólások a bejegyzési sorban.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Vissza a bejegyzési sorhoz",
 	"user": "Felhasználó",
+	"when": "Amikor",
 	"category": "Kategória",
 	"title": "Cím",
 	"content": "Tartalom",
@@ -15,17 +19,22 @@
 	"topic": "Témakör",
 	"accept": "Elfogad",
 	"reject": "Elutasít",
-	"remove": "Remove",
-	"notify": "Notify",
-	"notify-user": "Notify User",
-	"confirm-reject": "Do you want to reject this post?",
+	"remove": "Eltávolítás",
+	"notify": "Értesítés",
+	"notify-user": "Felhasználó értesítése",
+	"confirm-reject": "Elutasítod ezt a bejegyzést?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
-	"accept-all": "Accept All",
-	"accept-selected": "Accept Selected",
-	"reject-all": "Reject All",
+	"accept-all": "Összes Elfogadása",
+	"accept-selected": "Kiválasztott Elfogadása",
+	"reject-all": "Összes Elvetése",
 	"reject-all-confirm": "Do you want to reject all posts?",
-	"reject-selected": "Reject Selected",
+	"reject-selected": "Kiválasztottak elutasítása",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
-	"bulk-accept-success": "%1 posts accepted",
-	"bulk-reject-success": "%1 posts rejected"
+	"remove-all": "Összes eltávolítás",
+	"remove-all-confirm": "El szeretné távolítani az összes bejegyzést?",
+	"remove-selected": "Kiválasztott eltávolítása ",
+	"remove-selected-confirm": "El szeretné távolítani %1 kijelölt bejegyzést?",
+	"bulk-accept-success": "%1 bejegyzés elfogadva",
+	"bulk-reject-success": "%1 bejegyzés elutasítva"
 }
\ No newline at end of file
diff --git a/public/language/hu/recent.json b/public/language/hu/recent.json
index 95004a40a6..f89fc88673 100644
--- a/public/language/hu/recent.json
+++ b/public/language/hu/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Bármikor",
     "no_recent_topics": "Nincs friss témakör.",
     "no_popular_topics": "Nincs népszerű témakör.",
-    "there-is-a-new-topic": "Van egy új témakör.",
-    "there-is-a-new-topic-and-a-new-post": "Van egy új témakör és új hozzászólás.",
-    "there-is-a-new-topic-and-new-posts": "Van egy új témakör és %1 új hozzászólás.",
-    "there-are-new-topics": "Van %1 új témakör.",
-    "there-are-new-topics-and-a-new-post": "Van %1 új témakör és egy új hozzászólás.",
-    "there-are-new-topics-and-new-posts": "Van %1 új témakör és %2 új hozzászólás.",
-    "there-is-a-new-post": "Van egy új hozzászólás.",
-    "there-are-new-posts": "Van %1 új hozzászólás.",
-    "click-here-to-reload": "Újratöltéshez kattints ide."
+    "load-new-posts": "Új bejegyzések betöltése"
 }
\ No newline at end of file
diff --git a/public/language/hu/register.json b/public/language/hu/register.json
index 31eb8e7e74..8da043d49a 100644
--- a/public/language/hu/register.json
+++ b/public/language/hu/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Regisztráció",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Regisztráció megszakítása",
     "help.email": "Alapértelmezetten az e-mail címed rejtve van a nyilvánosság előtt.",
     "help.username_restrictions": "Egyedi felhasználói név %1 és %2 karakterek között. A többiek az alábbi módon említhetnek meg: @<span id='yourUsername'>becenév</span>.",
@@ -22,7 +23,7 @@
     "registration-queue-auto-approve-time": "A fórum tagságod aktiválva lesz az elkövetkezendő %1 órában.",
     "interstitial.intro": "We'd like some additional information in order to update your account&hellip;",
     "interstitial.intro-new": "We'd like some additional information before we can create your account&hellip;",
-    "interstitial.errors-found": "Please review the entered information:",
+    "interstitial.errors-found": "Kérjük, tekintse át a megadott adatokat:",
     "gdpr_agree_data": "Hozzájárulok ahhoz, hogy személyes adataimat ez a weboldal gyűjtse és feldolgozza.",
     "gdpr_agree_email": "Hozzájárulok, hogy kapjak erről az oldalról összefoglalókat és értesítő emaileket.",
     "gdpr_consent_denied": "Hozzá kell járulnod ahhoz, hogy ez a feboldal megkapja a személyes információidat és emaileket küldhessen neked.",
diff --git a/public/language/hu/search.json b/public/language/hu/search.json
index 52630083c9..70bc7bc743 100644
--- a/public/language/hu/search.json
+++ b/public/language/hu/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Írjon ide a kereséshez",
     "results_matching": "%1 eredmény a következőre: \"%2\" (%3 másodperc)",
     "no-matches": "Nem található egyezés",
     "advanced-search": "Részletes keresés",
     "in": "Itt:",
-    "titles": "Címek",
-    "titles-posts": "Címek és hozzászólások",
+    "in-titles": "Címekben",
+    "in-titles-posts": "Címekben és bejegyzésekben",
+    "in-posts": "Bejegyzésekben",
+    "in-categories": "Kategóriákban",
+    "in-users": "Felhasználóknál",
+    "in-tags": "Címkékben",
+    "categories": "Kategóriákban",
+    "all-categories": "Minden kategória",
+    "categories-x": "Kategóriák: %1",
+    "categories-watched-categories": "Kategóriák: Megfigyelt kategóriák",
+    "type-a-category": "Írj egy kategóriát",
+    "tags": "Címkék",
+    "tags-x": "Címkék: %1",
+    "type-a-tag": "Írj egy címkét",
     "match-words": "Egyező szavak",
+    "match-all-words": "Párosítsd az összes szót",
+    "match-any-word": "Bármelyik szónak megfelel",
     "all": "Összes",
     "any": "Bármelyik",
     "posted-by": "Írta",
-    "in-categories": "Kategóriában",
+    "posted-by-usernames": "Közzétette: %1",
+    "type-a-username": "Írj be egy felhasználónevet",
     "search-child-categories": "Keresés az alkategóriában is",
     "has-tags": "Címkéje",
     "reply-count": "Válaszok száma",
+    "replies": "Válasz",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Legalább",
     "at-most": "Legfeljebb",
     "relevance": "Találati pontosság",
+    "time": "Idő",
     "post-time": "Hozzászólás ideje",
     "votes": "Szavazatok",
     "newer-than": "Újabb, mint",
@@ -28,7 +48,22 @@
     "three-months": "Három hónap",
     "six-months": "Hat hónap",
     "one-year": "Egy év",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Idő: Régebbi egy évnél",
     "sort-by": "Rendezés",
+    "sort": "Rendezés",
     "last-reply-time": "Utolsó válasz ideje",
     "topic-title": "Témakör címe",
     "topic-votes": "Témakör szavazatok",
@@ -39,11 +74,36 @@
     "category": "Kategória",
     "descending": "Csökkenő sorrendben",
     "ascending": "Növekvő sorrendben",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Rendezés: Szavazatok csökkenő sorrendben",
+    "sort-by-votes-asc": "Rendezés: Szavazatok növekvő sorrendben",
+    "sort-by-topic.lastposttime-desc": "Rendezés: Utolsó válaszidő, csökkenő sorrendben",
+    "sort-by-topic.lastposttime-asc": "Rendezés: Utolsó válaszidő növekvő sorrendben",
+    "sort-by-topic.title-desc": "Rendezés: Témakör cím csökkenő sorrendben",
+    "sort-by-topic.title-asc": "Rendezés: Témakör cím növekvő sorrendben",
+    "sort-by-topic.postcount-desc": "Rendezés: A válaszok száma csökkenő sorrendben",
+    "sort-by-topic.postcount-asc": "Rendezés: A válaszok száma növekvő sorrendben",
+    "sort-by-topic.viewcount-desc": "Rendezés: Megtekintések száma csökkenő sorrendben",
+    "sort-by-topic.viewcount-asc": "Rendezés: Megtekintések száma növekvő sorrendben",
+    "sort-by-topic.votes-desc": "Rendezés: Témakör szavazatok csökkenő sorrendben",
+    "sort-by-topic.votes-asc": "Rendezés: Témakör szavazatok növekvő sorrendben",
+    "sort-by-topic.timestamp-desc": "Rendezés: Témakör kezdési dátuma csökkenő sorrendben",
+    "sort-by-topic.timestamp-asc": "Rendezés: Témakör kezdési dátuma növekvő sorrendben",
+    "sort-by-user.username-desc": "Rendezés: Felhasználónév csökkenő sorrendben",
+    "sort-by-user.username-asc": "Rendezés: Felhasználónév növekvő sorrendben",
+    "sort-by-category.name-desc": "Rendezés: Kategória csökkenő sorrendben",
+    "sort-by-category.name-asc": "Rendezés: Kategória növekvő sorrendben",
+    "save": "Mentés",
     "save-preferences": "Beállítások mentése",
     "clear-preferences": "Beállítások törlése",
     "search-preferences-saved": "Keresési beállítások mentve",
     "search-preferences-cleared": "Keresési beállítások törölve",
     "show-results-as": "Megjelenő találatok",
+    "show-results-as-topics": "Eredmények megjelenítése témakörönként",
+    "show-results-as-posts": "Az eredmények megjelenítése bejegyzésként",
     "see-more-results": "Több találat megjelenítése (%1)",
     "search-in-category": "Keresés \"%1\"-ban/ben"
 }
\ No newline at end of file
diff --git a/public/language/hu/social.json b/public/language/hu/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/hu/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/hu/tags.json b/public/language/hu/tags.json
index 33dce52220..db5bc668a5 100644
--- a/public/language/hu/tags.json
+++ b/public/language/hu/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "Összes címke",
     "no_tag_topics": "Nem létezik témakör ezzel a címkével.",
+    "no-tags-found": "Nem találhatók címkék",
     "tags": "Címkék",
     "enter_tags_here": "%1 és %2 karakterek között itt add meg a címkét.",
     "enter_tags_here_short": "Címke megadása...",
diff --git a/public/language/hu/topic.json b/public/language/hu/topic.json
index 8d124f224f..af5850fff5 100644
--- a/public/language/hu/topic.json
+++ b/public/language/hu/topic.json
@@ -20,8 +20,8 @@
     "login-to-view": "🔒 Jelentkezz be, hogy megtekinthesd",
     "edit": "Szerkesztés",
     "delete": "Törlés",
-    "delete-event": "Delete Event",
-    "delete-event-confirm": "Are you sure you want to delete this event?",
+    "delete-event": "Esemény törlése",
+    "delete-event-confirm": "Biztosan törli ezt az eseményt?",
     "purge": "Végleges törlés",
     "restore": "Visszaállítás",
     "move": "Áthelyezés",
@@ -39,16 +39,30 @@
     "copy-ip": "IP-cím másolása",
     "ban-ip": "IP-cím kitiltása",
     "view-history": "Előzmények szerkesztése",
-    "locked-by": "Lezárta",
-    "unlocked-by": "Kinyitotta",
-    "pinned-by": "Rögzítette",
-    "unpinned-by": "Rögzítését levette",
-    "deleted-by": "Törölte",
-    "restored-by": "Visszaállította",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Hozzászólás jóváhagyásra bejegyezve &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "írta <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "írta <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "válaszolt <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "válaszolt <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a><a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 lezárta ezt a témakört %2",
+    "user-locked-topic-on": "%1 lezárta ezt a témakört %2",
+    "user-unlocked-topic-ago": "%1 feloldotta ezt a témakört %2",
+    "user-unlocked-topic-on": "%1 feloldotta ezt a témakört %2",
+    "user-pinned-topic-ago": "%1 kitűzte ezt a témakört %2",
+    "user-pinned-topic-on": "%1 kitűzte ezt a témakört %2",
+    "user-unpinned-topic-ago": "%1 feloldotta a témakör rögzítését %2",
+    "user-unpinned-topic-on": "%1 feloldotta a témakör rögzítését %2",
+    "user-deleted-topic-ago": "%1 törölte ezt a témakört %2",
+    "user-deleted-topic-on": "%1 törölte ezt a témakört %2",
+    "user-restored-topic-ago": "%1 visszaállította ezt a témakört %2",
+    "user-restored-topic-on": "%1 visszaállította ezt a témakört %2",
+    "user-moved-topic-from-ago": "%1 áthelyezte ezt a témakört %2 %3",
+    "user-moved-topic-from-on": "%1 áthelyezte ezt a témakört %2 %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">sorba álltak</a> bejegyzés jóváhagyásra %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">sorba álltak</a> bejegyzés jóváhagyásra %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">hivatkozott</a> erre a témakörre %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">hivatkozott</a> erre a témakörre %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">elágazta</a> ezt a témakört %3 ",
+    "user-forked-topic-on": "%1 <a href=\"%2\">elágazta</a> ezt a témakört %3 ",
     "bookmark_instructions": "Kattints ide a beszélgetés utolsó hozzászólására ugráshoz.",
     "flag-post": "Jelöld meg ezt a bejegyzést",
     "flag-user": "Jelöld meg ezt a felhasználót",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Témakör végleges törlése",
     "thread_tools.purge_confirm": "Biztos végleg törölni akarod a témakört?",
     "thread_tools.merge_topics": "Témakörök összevonása",
-    "thread_tools.merge": "Összevonás",
+    "thread_tools.merge": "Témakörök összevonása",
     "topic_move_success": "Ez a témakör hamarosan a(z) \"%1\" lesz áthelyezve. Kattints ide a visszavonáshoz.",
     "topic_move_multiple_success": "Ezek a témakör hamarosan a(z) \"%1\" lesznek áthelyezve. Kattints ide a visszavonáshoz.",
     "topic_move_all_success": "Hamarosan az összes témakör \"%1\" át lesz helyezve. Kattints ide a visszavonáshoz.",
@@ -113,7 +127,7 @@
     "bookmark": "Könyvjelző",
     "bookmarks": "Könyvjelzők",
     "bookmarks.has_no_bookmarks": "Még nem tettél egyetlen hozzászólást sem könyvjelzőbe.",
-    "copy-permalink": "Copy Permalink",
+    "copy-permalink": "Állandó hivatkozás másolása",
     "loading_more_posts": "További hozzászólások betöltése",
     "move_topic": "Témakör áthelyezése",
     "move_topics": "Témakörök áthelyezése",
@@ -121,7 +135,7 @@
     "post_moved": "Hozzászólás áthelyezve!",
     "fork_topic": "Témakör szétszedése",
     "enter-new-topic-title": "Adj meg új témakör címet",
-    "fork_topic_instruction": "Kattints a hozzászólásokra, melyeket szét akarsz szedni",
+    "fork_topic_instruction": "Kattintson az elágazni kívánt bejegyzésekre, adjon meg egy címet az új témakörhöz, és kattintson a témakör szétszedése lehetőségre",
     "fork_no_pids": "Nincs hozzászólás kiválasztva!",
     "no-posts-selected": "Nincs bejegyzés kiválasztva!",
     "x-posts-selected": "%1 bejegyzés kiválasztva",
@@ -133,15 +147,18 @@
     "merge-topic-list-title": "Összeolvasztása váró témakörök listája",
     "merge-options": "Összeolvasztás beállíts",
     "merge-select-main-topic": "Válaszd ki a fő témakört",
-    "merge-new-title-for-topic": "Új cím a témának",
+    "merge-new-title-for-topic": "Új cím a témakörnek",
     "topic-id": "Témakör azonosító",
     "move_posts_instruction": "Kattints az áthelyezni kívánt témakörre és a célhelyen kattints a mozgatás ide gombra.",
+    "move_topic_instruction": "Válassza ki a célkategóriát, majd kattintson az áthelyezés gombra",
     "change_owner_instruction": "Kattints a bejegyzésre amelyiket hozzá szeretnéd utalni egy felhasználóhoz",
     "composer.title_placeholder": "Add meg a témakör címét...",
     "composer.handle_placeholder": "Adj meg egy nevet/kezelőt",
+    "composer.hide": "Elrejt",
     "composer.discard": "Elvet",
     "composer.submit": "Küldés",
-    "composer.additional-options": "Additional Options",
+    "composer.additional-options": "További beállítások",
+    "composer.post-later": "Bejegyzés később",
     "composer.schedule": "Időzítés",
     "composer.replying_to": "Válasz erre: %1",
     "composer.new_topic": "Új témakör",
@@ -162,7 +179,7 @@
     "newest_to_oldest": "Újabbak elől",
     "most_votes": "Legtöbb szavazat",
     "most_posts": "Legtöbb bejegyzés",
-    "most_views": "Most Views",
+    "most_views": "Legtöbb Megtekintés",
     "stale.title": "Inkább új témakör létrehozása?",
     "stale.warning": "A témakör, melyre válaszolsz, elég régi. Szeretnél helyette inkább új témakört létrehozni, és erre hivatkozni a válaszodban?",
     "stale.create": "Új témakör létrehozása",
@@ -182,7 +199,9 @@
     "timeago_earlier": "%1 korábban",
     "first-post": "Első bejegyzés",
     "last-post": "Utolsó bejegyzés",
-    "go-to-my-next-post": "Go to my next post",
-    "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "go-to-my-next-post": "Ugrás a következő bejegyzésemre",
+    "no-more-next-post": "Neked nincs több bejegyzésed ebben a témakörben",
+    "post-quick-reply": "Gyors válasz",
+    "navigator.index": "Bejegyzés %1 / %2",
+    "navigator.unread": "%1 olvasatlan"
 }
\ No newline at end of file
diff --git a/public/language/hu/user.json b/public/language/hu/user.json
index b0e315cc85..ae10a678bf 100644
--- a/public/language/hu/user.json
+++ b/public/language/hu/user.json
@@ -1,6 +1,6 @@
 {
     "banned": "Kitiltva",
-    "muted": "Muted",
+    "muted": "Némítva",
     "offline": "Nem elérhető",
     "deleted": "Törölve",
     "username": "Felhasználónév",
@@ -13,8 +13,8 @@
     "ban_account": "Fiók tiltása",
     "ban_account_confirm": "Biztos ki akarod tiltani a felhasználót?",
     "unban_account": "Fiók feloldása",
-    "mute_account": "Mute Account",
-    "unmute_account": "Unmute Account",
+    "mute_account": "Fiók némítása",
+    "unmute_account": "Némítás feloldása erről a fiókról",
     "delete_account": "Fiók törlése",
     "delete_account_as_admin": "<strong>Fiók</strong> törlése",
     "delete_content": "Fiók <strong>tartalmának</strong> törlése",
@@ -43,6 +43,7 @@
     "followers": "Követők",
     "following": "Követve",
     "blocks": "Blokkolások",
+    "blocked-users": "Letiltott felhasználók",
     "block_toggle": "Blokkolás ki-/bekapcsolása",
     "block_user": "Felhasználó tiltása",
     "unblock_user": "Felhasználó tiltásának feloldása",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Új kép feltöltése",
     "upload_new_picture_from_url": "Új kép feltöltése hivatkozásról",
     "current_password": "Jelenlegi jelszó",
+    "new_password": "Új jelszó",
     "change_password": "Jelszó módosítása",
     "change_password_error": "Érvénytelen jelszó!",
     "change_password_error_wrong_current": "A jelenlegi jelszavad nem megfelelő!",
@@ -97,24 +99,26 @@
     "digest_off": "Ki",
     "digest_daily": "Napi",
     "digest_weekly": "Heti",
-    "digest_biweekly": "Bi-Weekly",
+    "digest_biweekly": "Kéthetente",
     "digest_monthly": "Havi",
     "has_no_follower": "Ezt a felhasználót nem követi senki :(",
     "follows_no_one": "Ez a felhasználó nem követ senkit :(",
     "has_no_posts": "A felhasználó még nem szólt hozzá semmihez.",
-    "has_no_best_posts": "This user does not have any upvoted posts yet.",
+    "has_no_best_posts": "Ennek a felhasználónak még nincsenek pozitívan szavazott bejegyzései.\n ",
     "has_no_topics": "A felhasználó még nem szólt hozzá egyik témakörhöz sem.",
     "has_no_watched_topics": "A felhasználó még nem nézett meg egy témakört sem.",
     "has_no_ignored_topics": "A felhasználó még nem mellőzött témakört.",
     "has_no_upvoted_posts": "A felhasználó még egy hozzászólást sem kedvelt.",
     "has_no_downvoted_posts": "A felhasználó még egy hozzászólást sem utált.",
-    "has_no_controversial_posts": "This user does not have any downvoted posts yet.",
+    "has_no_controversial_posts": "Ennek a felhasználónak még nincsenek negatívan szavazott bejegyzései.",
     "has_no_blocks": "Nem blokkoltál egy felhasználót sem.",
     "email_hidden": "E-mail rejtett",
     "hidden": "rejtett",
     "paginate_description": "Témakörök és hosszászólasok lapozása a végtelen görgetés helyett.",
     "topics_per_page": "Témakörök oldalanként",
     "posts_per_page": "Hozzászólások oldalanként",
+    "category-topic-sort": "Témakör-kategória rendezés",
+    "topic-post-sort": "Témakör-bejegyzés rendezése",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Adminisztrációs oldal nyelve",
     "notifications": "Értesítések",
@@ -129,7 +133,7 @@
     "open_links_in_new_tab": "Kimenő hivatkozások megnyitása új lapon",
     "enable_topic_searching": "Témakörön belüli keresés engedélyezése",
     "topic_search_help": "Ha engedélyezett, a témakörön belüli keresés felülírja az alapértelmezett keresési viselkedést, és ezáltal az egész témakörben keresel, nem csak a képernyőn megjelenőkben",
-    "update_url_with_post_index": "Témák böngészése közben frissítse az URL-t a bejegyzés indexével",
+    "update_url_with_post_index": "Témakörök böngészése közben frissítse az URL-t a bejegyzés indexével",
     "scroll_to_my_post": "Válaszolást követően az új hozzászólás megjelenítése",
     "follow_topics_you_reply_to": "Témakör figyelése, melyre válaszolsz",
     "follow_topics_you_create": "Témakör figyelése, amit létrehozol",
@@ -157,17 +161,19 @@
     "info.banned-permanently": "Végleges kitiltás",
     "info.banned-reason-label": "Oka",
     "info.banned-no-reason": "Az oka nincs megadva.",
-    "info.mute-history": "Recent Mute History",
-    "info.no-mute-history": "This user has never been muted",
-    "info.muted-until": "Muted until %1",
-    "info.muted-expiry": "Expiry",
-    "info.muted-no-reason": "No reason given.",
+    "info.mute-history": "Legutóbbi némítási előzmények",
+    "info.no-mute-history": "Ez a felhasználó soha nem lett némítva",
+    "info.muted-until": "Némítva %1",
+    "info.muted-expiry": "Lejárat",
+    "info.muted-no-reason": "Az oka nincs megadva.",
     "info.username-history": "Felhasználónév előzmény",
     "info.email-history": "E-mail előzmény",
     "info.moderation-note": "Moderálási megjegyzés",
     "info.moderation-note.success": "Moderálási megjegyzés elmentve",
     "info.moderation-note.add": "Megjegyzés hozzáadása",
     "sessions.description": "Ez az oldal hozzáférést biztosít a fórumon történő összes munkamenet megfigyeléséhez és ha szükséges azok megszüntéséhez. A saját munkameneted úgy tudod csak megszakítani, hogyha kijelentkezel.",
+    "revoke-session": "Munkamenet megszüntetése",
+    "browser-version-on-platform": "%1 %2 %3",
     "consent.title": "Jogaid &amp; hozzájárulásod",
     "consent.lead": "Ezen közösségi fórum összegyűjti és feldolgozza személyes információid.",
     "consent.intro": "Ezen információkat szigorúan csakis arra használjuk, hogy élményedet személyre szólóvá tegyük a közösségben, valamint hogy hozzászólásaidat társítsuk felhasználói fiókoddal. A regisztrációs lépés során egy felhasználónév és email cím megadására kértünk, a weboldalon nem kötelezően megadhatsz még további információkat is felhasználói profilod kiegészítéséhez.<br /><br />Ezen információkat fiókod létezéséig megőrizzük, fiókod törlésével ugyanakkor jóváhagyásodat bármikor visszavonhatod. Bármikor kérelmezhetsz másolatot a weboldalhoz való hozzájárulásodról a Jogok &amp; Jóváhagyás oldalon.<br /><br />Ha bármi kérdésed vagy gondod adódna, azt javasoljuk érd el a fórum adminisztratív csapatát.",
@@ -191,9 +197,9 @@
     "consent.export-uploads-success": "Feltöltött tartalom exportálása, értesítéssel, hogyha végzett a művelet.",
     "consent.export_posts": "Bejegyzések exportálása (.csv)",
     "consent.export-posts-success": "Bejegyzések exportálása, értesítéssel, hogyha végzett a művelet.",
-    "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
-    "emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
-    "emailUpdate.required": "<strong>This field is required</strong>.",
-    "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
-    "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
+    "emailUpdate.intro": "Kérjük, adja meg e-mail címét alább. Ez a fórum az Ön e-mail címét használja az ütemezett kivonatokhoz és értesítésekhez, valamint a fiók-helyreállításhoz jelszó elvesztése esetén.",
+    "emailUpdate.optional": "<strong>Ez a mező nem kötelező.</strong> Nem köteles megadni az e-mail címét, de ellenőrzött e-mail nélkül nem tudja visszaállítani a fiókját, vagy bejelentkezni az e-mail címével.",
+    "emailUpdate.required": "<strong>Ez a mező kötelező</strong>.",
+    "emailUpdate.change-instructions": "A megadott e-mail címre egy visszaigazoló e-mailt küldünk egy egyedi hivatkozással. A link elérése megerősíti az e-mail cím tulajdonjogát, és az aktív lesz a fiókjában. Bármikor frissítheti e-mailjeit a fiókja oldalán.",
+    "emailUpdate.password-challenge": "Kérjük, adja meg jelszavát a fiók tulajdonjogának igazolásához."
 }
\ No newline at end of file
diff --git a/public/language/hu/users.json b/public/language/hu/users.json
index 7368d05ea8..d37ca2a952 100644
--- a/public/language/hu/users.json
+++ b/public/language/hu/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "Összes Felhasználó",
     "latest_users": "Legújabb felhasználók",
     "top_posters": "Legaktívabbak",
     "most_reputation": "Legnépszerűbbek",
     "most_flags": "Legtöbb megjelölés",
     "search": "Keresés",
     "enter_username": "Írj be egy felhasználónevet kereséshez",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Keressen egy felhasználót a csevegés indításához:",
     "load_more": "További betöltése",
     "users-found-search-took": "%1 talált felhasználó! A keresés %2 másodpercig tartott.",
     "filter-by": "Szűrés",
diff --git a/public/language/hy/admin/admin.json b/public/language/hy/admin/admin.json
index f0d9c0c48c..c212f687ec 100644
--- a/public/language/hy/admin/admin.json
+++ b/public/language/hy/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Կառավարման Վահանակ",
 	"settings-header-contents": "Պարունակություն",
-	"changes-saved": "Փոփոխությունները պահպանված են",
-	"changes-saved-message": "Կարգավորումների փոփոխությունները պահպանված են",
 	"changes-not-saved": "Փոփոխությունները պահպանված չեն",
 	"changes-not-saved-message": "Փոփոխությունների պահպանման հետ խնդիր կա (%1)"
 }
\ No newline at end of file
diff --git a/public/language/hy/admin/appearance/customise.json b/public/language/hy/admin/appearance/customise.json
index 31ac96dd6a..aef0e49bfb 100644
--- a/public/language/hy/admin/appearance/customise.json
+++ b/public/language/hy/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Հատուկ CSS/LESS",
-	"custom-css.description": "Մուտքագրեք ձեր սեփական CSS/LESS հայտարարագրերն այստեղ, որոնք կկիրառվեն բոլոր մյուս ոճերից հետո:",
-	"custom-css.enable": "Միացնել Custom CSS/LESS-ը",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Մուտքագրեք ձեր սեփական javascript-ն այստեղ: Այն կկատարվի էջն ամբողջությամբ բեռնվելուց հետո:",
diff --git a/public/language/hy/admin/dashboard.json b/public/language/hy/admin/dashboard.json
index 6ea320876a..c617612f5b 100644
--- a/public/language/hy/admin/dashboard.json
+++ b/public/language/hy/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Վերադառնալ կառավարման վահանակ",
 	"details.no-users": "Ընտրված ժամկետում ոչ մի օգտատեր չի միացել",
 	"details.no-topics": "Ընտրված ժամկետում ոչ մի թեմա չի տեղադրվել",
-	"details.no-searches": "Որոնումներ դեռ չեն կատարվել",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "Ընտրված ժամկետում մուտքեր չեն գրանցվել",
 	"details.logins-static": "NodeBB-ն պահում է միայն %1 օրվա սեսիայի տվյալները, և այսպիսով, ստորև բերված աղյուսակը ցույց կտա միայն վերջին ակտիվ աշխատաշրջանները",
-	"details.logins-login-time": "Մուտք գործելու ժամանակը"
+	"details.logins-login-time": "Մուտք գործելու ժամանակը",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/hy/admin/extend/widgets.json b/public/language/hy/admin/extend/widgets.json
index 0418f90bf3..4370b56208 100644
--- a/public/language/hy/admin/extend/widgets.json
+++ b/public/language/hy/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel-ի վերնագիր",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Զգուշացում",
 
 	"alert.confirm-delete": "Վստա՞հ եք, որ ցանկանում եք ջնջել այս վիջեթը:",
diff --git a/public/language/hy/admin/manage/groups.json b/public/language/hy/admin/manage/groups.json
index de2383b234..73f6c6c6ab 100644
--- a/public/language/hy/admin/manage/groups.json
+++ b/public/language/hy/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Վերադարձ",
 
 	"edit.no-users-found": "Օգտատերեր չեն գտնվել",
-	"edit.confirm-remove-user": "Վստա՞հ եք, որ ուզում եք հեռացնել այս օգտվողին:",
-	"edit.save-success": "Փոփոխությունները պահված են:"
+	"edit.confirm-remove-user": "Վստա՞հ եք, որ ուզում եք հեռացնել այս օգտվողին:"
 }
\ No newline at end of file
diff --git a/public/language/hy/admin/manage/privileges.json b/public/language/hy/admin/manage/privileges.json
index ea5a069241..190927aaa9 100644
--- a/public/language/hy/admin/manage/privileges.json
+++ b/public/language/hy/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "Համոզվա՞ծ եք, որ ցանկանում եք վերահսկման արտոնություն տրամադրել այս օգտվողների խմբին: Այս խումբը հանրային է, և ցանկացած օգտատեր կարող է միանալ ըստ ցանկության:",
 	"alert.confirm-admins-mods": "Վստա՞հ եք, որ ցանկանում եք տրամադրել &laquo;Ադմինիստրատորներին &amp; Mods&raquo; արտոնություն այս օգտատերին/խմբի՞ն: Այս արտոնություն ունեցող օգտատերերը կարող են խթանել և իջեցնել այլ օգտատերերի արտոնյալ դիրքերում, ներառյալ սուպեր ադմինիստրատորը",
 	"alert.confirm-save": "Խնդրում ենք հաստատել այս արտոնությունները պահպանելու ձեր մտադրությունը",
-	"alert.saved": "Արտոնությունների փոփոխությունները պահվեցին և կիրառվեցին",
 	"alert.confirm-discard": "Իսկապե՞ս ցանկանում եք հրաժարվել ձեր արտոնությունների փոփոխություններից:",
 	"alert.discarded": "Արտոնությունների փոփոխությունները չեղարկվեցին",
 	"alert.confirm-copyToAll": "Վստա՞հ եք, որ ցանկանում եք կիրառել այս %1 հավաքածուն բոլոր կատեգորիաների վրա:",
diff --git a/public/language/hy/admin/settings/api.json b/public/language/hy/admin/settings/api.json
index d857197ecb..f5530ad449 100644
--- a/public/language/hy/admin/settings/api.json
+++ b/public/language/hy/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "Օգտատիրոջ ID",
 	"uid-help-text": "Նշեք Օգտատիրոջ ID՝ այս նշանի հետ կապելու համար: Եթե օգտատիրոջ ID-ն 0 է, ապա այն կհամարվի հիմնական նշան, որը կարող է ենթադրել այլ օգտատերերի ինքնությունը՝ հիմնվելով _uid պարամետրի վրա:",
 	"description": "Նկարագրություն",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "Ոչ մի նկարագրություն նշված չէ:",
 	"token-on-save": "Ձևաթուղթը կստեղծվի, երբ ձևը պահպանվի"
 }
\ No newline at end of file
diff --git a/public/language/hy/admin/settings/navigation.json b/public/language/hy/admin/settings/navigation.json
index 2882dd3646..c2e14e3df5 100644
--- a/public/language/hy/admin/settings/navigation.json
+++ b/public/language/hy/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Խմբեր",
 	"open-new-window": "Բացել նոր պատուհանում",
 	"dropdown": "Բացվող",
-	"dropdown-placeholder": "Տեղադրեք ձեր բացվող ընտրացանկի տարրերը ստորև, այսինքն՝ &lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Հղում 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Ջնջել",
 	"btn.disable": "Անջատել",
diff --git a/public/language/hy/admin/settings/user.json b/public/language/hy/admin/settings/user.json
index 81d4337eec..b7526cc3ac 100644
--- a/public/language/hy/admin/settings/user.json
+++ b/public/language/hy/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Օրեր",
 	"session-time-seconds": "Վայրկյաններ ",
 	"session-time-help": "Այս արժեքներն օգտագործվում են որոշելու համար, թե որքան ժամանակ է օգտվողը մնում մուտք գործած, երբ նա ստուգում է &laquo;Հիշիր ինձ&raquo; մուտքի վրա: Նշենք, որ այս արժեքներից միայն մեկը կօգտագործվի: Եթե վայրկյանների արժեք չկա, մենք վերադառնում ենք օրերի: Եթե օրերի արժեք չկա, մենք լռելյայն սահմանում ենք 14 օր:",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Րոպեներ անց Օգտագործողը համարվում է ոչ ակտիվ, ",
 	"online-cutoff-help": "Եթե օգտատերը այս տևողության համար որևէ գործողություններ չի կատարում, նա համարվում է ոչ ակտիվ և իրական ժամանակում թարմացումներ չի ստանում:",
 	"registration": "Օգտատերի գրանցում ",
diff --git a/public/language/hy/error.json b/public/language/hy/error.json
index 3b52f98c6d..3e2f088022 100644
--- a/public/language/hy/error.json
+++ b/public/language/hy/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Հյուրերի վերբեռնումն անջատված է",
     "cors-error": "Չհաջողվեց վերբեռնել նկարը սխալ կազմաձևված CORS-ի պատճառով",
     "upload-ratelimit-reached": "Դուք միանգամից չափազանց շատ ֆայլեր եք վերբեռնել: Խնդրում ենք փորձել ավելի ուշ.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Ընտրեք ամսաթիվ ապագայում:",
     "invalid-schedule-date": "Խնդրում ենք մուտքագրել վավեր ամսաթիվ և ժամ:",
     "cant-pin-scheduled": "Պլանավորված թեմաները չեն կարող (ապ)ամրացվել:",
@@ -134,6 +135,8 @@
     "group-already-requested": "Ձեր անդամակցության հարցումն արդեն ներկայացվել է",
     "group-join-disabled": "Դուք այս պահին չեք կարող միանալ այս խմբին",
     "group-leave-disabled": "Դուք այս պահին չեք կարող դուրս գալ այս խմբից",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Այս գրառումն արդեն ջնջված է",
     "post-already-restored": "Այս գրառումն արդեն վերականգնվել է",
     "topic-already-deleted": "Այս թեման արդեն ջնջված է",
@@ -224,5 +227,6 @@
     "api.429": "Դուք չափազանց շատ հարցումներ եք կատարել, խնդրում ենք փորձել ավելի ուշ",
     "api.500": "Ձեր հարցումը սպասարկելիս անսպասելի սխալ է տեղի ունեցել:",
     "api.501": "Ուղեգիծը, որով փորձում եք զանգահարել, դեռ չի իրականացվել, խնդրում ենք վաղը նորից փորձեք",
-    "api.503": "Երթուղին, որը փորձում եք զանգահարել, ներկայումս հասանելի չէ սերվերի կազմաձևման պատճառով"
+    "api.503": "Երթուղին, որը փորձում եք զանգահարել, ներկայումս հասանելի չէ սերվերի կազմաձևման պատճառով",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/hy/flags.json b/public/language/hy/flags.json
index fb09e72956..72b1bb7a19 100644
--- a/public/language/hy/flags.json
+++ b/public/language/hy/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Զեկույցներ",
 	"first-reported": "Առաջին զեկույցը",
 	"no-flags": "Դրոշներ չեն գտնվել:",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Հանձնարարող",
 	"update": "Թարմացում ",
 	"updated": "Updated",
 	"resolved": "Լուծվել է",
 	"target-purged": "Բովանդակությունը, որին անդրադարձել է այս դրոշը, մաքրվել է և այլևս հասանելի չէ:",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Ամենօրյա դրոշներ",
 	"quick-filters": "Արագ ֆիլտրներ",
 	"filter-active": "Դրոշների այս ցանկում կա մեկ կամ ավելի ակտիվ զտիչներ",
 	"filter-reset": "Հեռացնել ֆիլտրները ",
 	"filters": "Ֆիլտրել տարբերակները",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Դրոշի տիպ ",
 	"filter-type-all": "Ամբողջ կոնտենտը",
 	"filter-type-post": "Գրառում ",
 	"filter-type-user": "Օգտատեր",
 	"filter-state": "Փուլ",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Կատեգորիա",
 	"filter-quick-mine": "Ինձ հանձնարարված է",
 	"filter-cid-all": "Բոլոր կատեգորիաները",
@@ -45,6 +47,7 @@
 
 	"notes": "Դրոշի նշումներ",
 	"add-note": "Ավելացնել նշում",
+	"edit-note": "Edit Note",
 	"no-notes": "Համօգտագործվող նշումներ չկան:",
 	"delete-note-confirm": "Իսկապե՞ս ուզում եք ջնջել այս դրոշակի նշումը:",
 	"delete-flag-confirm": "վստա՞հ եք, որ ուզում եք ջնջել այս դրոշը:",
diff --git a/public/language/hy/global.json b/public/language/hy/global.json
index 3afb1583e3..39440717b1 100644
--- a/public/language/hy/global.json
+++ b/public/language/hy/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "փակել",
     "403.title": "Մուտքն արգելված է",
     "403.message": "Դուք, կարծես, պատահաբար հայտնվել եք մի էջի վրա, որը դուք մուտք չունեք:",
-    "403.login": "Միգուցե փորձե՞ք մուտք գործել:",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Գտնված չէ",
-    "404.message": "Կարծես թե պատահել ես մի էջի, որը գոյություն չունի։ Վերադարձ դեպի <a href='%1/'>գլխավոր էջ</a>։",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Ներքին սխալ.",
     "500.message": "Վա՜յ Կարծես ինչ-որ բան սխալ ստացվեց։",
     "400.title": "Վատ խնդրանք.",
-    "400.message": "Կարծես թե այս հղումը սխալ ձևավորված է, խնդրում ենք կրկնակի ստուգել և նորից փորձել: Հակառակ դեպքում վերադարձեք գլխավոր էջ:",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Գրանցվել",
     "login": "Մուտք",
     "please_log_in": "Խնդրում ենք մուտք գործել",
@@ -37,9 +37,13 @@
     "header.notifications": "Ծանուցումներ",
     "header.search": "Որոնել",
     "header.profile": "Անձնական էջ ",
+    "header.account": "Account",
     "header.navigation": "Նավիգացիա",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Բեռնվում են ծանուցումները",
     "chats.loading": "Բեռնվում են նամակները",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Բարի գալուստ ֆորում՝ ապագայի քննարկումների հարթակ:",
     "previouspage": "նախորդ էջ",
     "nextpage": "հաջորդ էջ",
@@ -54,7 +58,8 @@
     "users": "Օգտվողներ",
     "topics": "Թեմաներ",
     "posts": "Գրառումներ",
-    "x-posts": "%1 գրառում",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Լավագույնը",
     "controversial": "Հակասական",
     "votes": "Ձայներ ",
@@ -69,6 +74,7 @@
     "reputation": "Վարկանիշ",
     "lastpost": "Վերջին գրառում ",
     "firstpost": "Առաջին գրառում",
+    "about": "About",
     "read_more": "Կարդալ ավելին",
     "more": "Ավելին",
     "none": "Ոչ մեկը",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 հրապարակել է %2",
     "guest_posted_ago": "Հյուրը հրապարակել է %1",
     "last_edited_by": "վերջին անգամ խմբագրվել է %1-ի կողմից",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Վերջին գրառումներ չկան",
     "norecenttopics": "Վերջին թեմաներ չկան",
     "recentposts": "Վերջին գրառումներ",
     "recentips": "Վերջերս մուտք գործած IP-ներ",
     "moderator_tools": "Մոդերատորի գործիքներ",
+    "status": "Status",
     "online": "Առցանց",
     "away": "Հեռու",
     "dnd": "Չանհանգստացնել",
@@ -122,5 +130,7 @@
     "edited": "Խմբագրված",
     "disabled": "Անջատված",
     "select": "Ընտրել",
-    "user-search-prompt": "Մուտքագրեք ինչ-որ բան այստեղ՝ օգտատերեր գտնելու համար..."
+    "user-search-prompt": "Մուտքագրեք ինչ-որ բան այստեղ՝ օգտատերեր գտնելու համար...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/hy/groups.json b/public/language/hy/groups.json
index 19660fee0d..2cd215e75c 100644
--- a/public/language/hy/groups.json
+++ b/public/language/hy/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Խմբեր",
+    "members": "Members",
     "view_group": "Դիտել խումբը",
     "owner": "Խմբի սեփականատեր",
     "new_group": "Ստեղծել նոր խումբ",
diff --git a/public/language/hy/modules.json b/public/language/hy/modules.json
index eac3dc05c4..963d85e051 100644
--- a/public/language/hy/modules.json
+++ b/public/language/hy/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Զրուցել ",
     "chat.placeholder": "Գրեք հաղորդագրություն այստեղ, տեղադրեք նկարներ, սեղմեք \"enter\" ուղարկելու համար",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "Դուք նայում եք ավելի հին հաղորդագրություններ, սեղմեք այստեղ՝ վերջին հաղորդագրությանը գնալու/տեսնելու համար:",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Ուղարկել",
     "chat.no_active": "Դուք չունեք որևէ ակտիվ չաթ",
     "chat.user_typing": "%1-ը գրում է...",
@@ -42,6 +46,7 @@
     "composer.compose": "Կազմել",
     "composer.show_preview": "Ցույց տալ նախադիտումը",
     "composer.hide_preview": "Թաքցնել նախադիտումը",
+    "composer.help": "Help",
     "composer.user_said_in": "%1-ն ասաց %2-ում:",
     "composer.user_said": "%1 -ը ասաց.",
     "composer.discard": "Վստա՞հ եք որ ցանկանում եք հրաժարվել այս գրառումից:",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Ժամանակ",
     "composer.cancel-scheduling": "Չեղարկել ժամանակացույցը",
     "composer.set-schedule-date": "Սահմանել ամսաթիվը",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "Լավ",
     "bootbox.cancel": "Չեղարկել",
     "bootbox.confirm": "Հաստատել",
diff --git a/public/language/hy/pages.json b/public/language/hy/pages.json
index 42bdead4d2..b9656c8113 100644
--- a/public/language/hy/pages.json
+++ b/public/language/hy/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Դիտված կատեգորիաներ",
     "account/bookmarks": "%1-ի էջանշված գրառումները",
     "account/settings": "Օգտատիրոջ կարգավորումներ",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Թեմաներ, որոնք դիտել է %1-ը",
     "account/ignored": "%1-ի կողմից անտեսված թեմաներ",
     "account/upvoted": "%1-ի կողմից քվեարկված գրառումները",
diff --git a/public/language/hy/post-queue.json b/public/language/hy/post-queue.json
index d6ef615a22..94e1ac847c 100644
--- a/public/language/hy/post-queue.json
+++ b/public/language/hy/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Գրառումների հերթ",
-	"description": "Գրառումների հերթում գրառումներ չկան: Այս գործառույթը միացնելու համար անցեք Կարգավորումներ &rarr; Գրառում &rarr; Post Queue և միացրեք Post Queue:",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Օգտատեր",
+	"when": "When",
 	"category": "Կատեգորիա",
 	"title": "Կոչում",
 	"content": "Կոնտենտ",
@@ -19,6 +23,7 @@
 	"notify": "Տեղեկացնել",
 	"notify-user": "Տեղեկացնել օգտատիրոջը",
 	"confirm-reject": "Ցանկանու՞մ եք մերժել այս գրառումը:",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Զանգվածային գործողություններ",
 	"accept-all": "Ընդունել բոլորը ",
 	"accept-selected": "Ընդունել ընտրվածը",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Ցանկանու՞մ եք մերժել բոլոր գրառումները:",
 	"reject-selected": "Մերժել ընտրվածը",
 	"reject-selected-confirm": "Ցանկանու՞մ եք մերժել %1 ընտրված գրառումները:",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "Ընդունված է %1 գրառում",
 	"bulk-reject-success": "%1 գրառում մերժվել է"
 }
\ No newline at end of file
diff --git a/public/language/hy/recent.json b/public/language/hy/recent.json
index 7b8d213034..2eb97a3bf9 100644
--- a/public/language/hy/recent.json
+++ b/public/language/hy/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Ամբողջ ժամանակ",
     "no_recent_topics": "Վերջին թեմաներ չկան։",
     "no_popular_topics": "Հանրաճանաչ թեմաներ չկան։",
-    "there-is-a-new-topic": "Առկա է նոր թեմա",
-    "there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
-    "there-is-a-new-topic-and-new-posts": "Կա նոր թեմա և %1 նոր գրառում:",
-    "there-are-new-topics": "Առկա են %1 նոր թեմաներ:",
-    "there-are-new-topics-and-a-new-post": "Առկա են %1 նոր թեմաներ և նոր գրառում:",
-    "there-are-new-topics-and-new-posts": "Առկա են %1 նոր թեմաներ և %2 նոր գրառումներ:",
-    "there-is-a-new-post": "Առկա է նոր գրառում։",
-    "there-are-new-posts": "Առկա են %1 նոր գրառումներ:",
-    "click-here-to-reload": "Սեղմեք այստեղ՝ վերաբեռնելու համար:"
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/hy/register.json b/public/language/hy/register.json
index 7a15f462d5..4e65509e38 100644
--- a/public/language/hy/register.json
+++ b/public/language/hy/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Գրանցվել ",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Չեղարկել գրանցումը",
     "help.email": "Ձեր էլեկտրոնային փոստը չի արտացոլվի ուրիշներին",
     "help.username_restrictions": "Եզակի օգտվողի անուն %1-ից %2 նիշերի միջև: Մյուսները կարող են ձեզ նշել @<span id='yourUsername'>username</span>-ով:",
diff --git a/public/language/hy/search.json b/public/language/hy/search.json
index 1b3b664da1..88e9c07a5a 100644
--- a/public/language/hy/search.json
+++ b/public/language/hy/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
     "no-matches": "Համընկնումներ չեն գտնվել",
     "advanced-search": "Ընդլայնված որոնում",
     "in": "Մեջ",
-    "titles": "Վերնագրեր",
-    "titles-posts": "Վերնագրեր",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Համապատասխանեցրեք բառերը",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Բոլորը",
     "any": "Ցանկացած",
     "posted-by": "Տեղադրվել է",
-    "in-categories": "Կատեգորիաներում",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Որոնել դուստր կատեգորիաներ",
     "has-tags": "Հաշթեգներ",
     "reply-count": "Պատասխանների քանակը",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Գոնե",
     "at-most": "Առավելագույնը",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Գրառման ժամանակը",
     "votes": "Ձայներ",
     "newer-than": "Ավելի նոր քան",
@@ -28,7 +48,22 @@
     "three-months": "Երեք ամիս ",
     "six-months": "Վեց ամիս ",
     "one-year": "Մեկ տարի ",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Դասավորել ըստ",
+    "sort": "Sort",
     "last-reply-time": "Վերջին պատասխանի ժամանակը",
     "topic-title": "Թեմայի վերնագիր",
     "topic-votes": "Թեմայի քվեարկություններ",
@@ -39,11 +74,36 @@
     "category": "Կատեգորիա",
     "descending": "Նվազման կարգով",
     "ascending": "Աճման կարգով",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Պահպանել նախապատվությունները",
     "clear-preferences": "Մաքրել նախապատվությունները",
     "search-preferences-saved": "Որոնման նախապատվությունները պահպանված են",
     "search-preferences-cleared": "Որոնման նախապատվությունները ջնջվեցին",
     "show-results-as": "Ցույց տալ արդյունքները որպես",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Տեսնել ավելի շատ արդյունքներ (% 1)",
     "search-in-category": "Որոնել «% 1»-ում"
 }
\ No newline at end of file
diff --git a/public/language/hy/social.json b/public/language/hy/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/hy/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/hy/tags.json b/public/language/hy/tags.json
index 1b0f98f8ff..a369fce44d 100644
--- a/public/language/hy/tags.json
+++ b/public/language/hy/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Այս թեգով թեմաներ չկան",
+    "no-tags-found": "No tags found",
     "tags": "Թեգեր",
     "enter_tags_here": "Մուտքագրեք թեգերն այստեղ՝ %1 և %2 քանակությամբ նշանների միջակայքում",
     "enter_tags_here_short": "Մուտքագրեք թեգերը...",
diff --git a/public/language/hy/topic.json b/public/language/hy/topic.json
index 500fc029f9..09870a693c 100644
--- a/public/language/hy/topic.json
+++ b/public/language/hy/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Պատճենել IP",
     "ban-ip": "Արգելել IP-ն",
     "view-history": "Խմբագրել պատմությունը",
-    "locked-by": "Փակված է",
-    "unlocked-by": "Ապակողպված է",
-    "pinned-by": "Ամրացված է",
-    "unpinned-by": "Ապաամրացված է",
-    "deleted-by": "Ջնջվել է",
-    "restored-by": "Վերականգնվել է",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Հաղորդագրությունը հերթագրվել է հաստատման համար &rarr;",
-    "backlink": "Հղում է",
-    "forked-by": "Ճեղքված",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Սեղմեք այստեղ՝ այս թեմայի վերջին ընթերցված գրառմանը վերադառնալու համար:",
     "flag-post": "Դրոշակել այց գրառումը ",
     "flag-user": "Դրոշակել այս օգտատերին ",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Մաքրել թեման",
     "thread_tools.purge_confirm": "Վստա՞հ եք, որ ցանկանում եք մաքրել այս թեման:",
     "thread_tools.merge_topics": "Միավորել թեմաները",
-    "thread_tools.merge": "Միավորել ",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "Այս թեման շուտով կտեղափոխվի «%1»: Սեղմեք այստեղ՝ հետարկելու համար:",
     "topic_move_multiple_success": "Այս թեմաները շուտով կտեղափոխվեն «% 1»: Սեղմեք այստեղ՝ հետարկելու համար:",
     "topic_move_all_success": "Բոլոր թեմաները շուտով կտեղափոխվեն «% 1»: Սեղմեք այստեղ՝ հետարկելու համար:",
@@ -121,7 +135,7 @@
     "post_moved": "Գրառումը տեղափոխված է։",
     "fork_topic": "Մասնատել թեման",
     "enter-new-topic-title": "Մուտքագրեք նոր թեմայի վերնագիր",
-    "fork_topic_instruction": "Ընտրեք այն գրառումները, որոնք ցանկանում եք մասնատել",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Ընտրված գրառումներ չկան:",
     "no-posts-selected": "Ընտրված գրառումներ չկան:",
     "x-posts-selected": "Ընտրված է %1 գրառում(ներ):",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Թեմայի նոր վերնագիր",
     "topic-id": "Թեմայի ID",
     "move_posts_instruction": "Սեղմեք այն գրառումները, որոնք ցանկանում եք տեղափոխել, ապա մուտքագրեք թեմայի ID կամ գնացեք թիրախային թեմա",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Սեղմեք այն գրառումները, որոնք ցանկանում եք վերագրել մեկ այլ օգտատիրոջ",
     "composer.title_placeholder": "Մուտքագրեք ձեր թեմայի վերնագիրը այստեղ...",
     "composer.handle_placeholder": "Մուտքագրեք ձեր անունը/բռնակը այստեղ",
+    "composer.hide": "Hide",
     "composer.discard": "Հրաժարվել",
     "composer.submit": "Հաստատել",
     "composer.additional-options": "Լրացուցիչ տարբերակներ",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Ժամանակացույց",
     "composer.replying_to": "Պատասխանում է %1-ին",
     "composer.new_topic": "Նոր թեմա",
@@ -184,5 +201,7 @@
     "last-post": "Վերջին գրառում ",
     "go-to-my-next-post": "Անցնել իմ հաջորդ գրառմանը",
     "no-more-next-post": "Այս թեմայում այլ գրառումներ չունեք",
-    "post-quick-reply": "Տեղադրեք արագ պատասխան"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/hy/user.json b/public/language/hy/user.json
index 55a4143420..526ddd5a92 100644
--- a/public/language/hy/user.json
+++ b/public/language/hy/user.json
@@ -43,6 +43,7 @@
     "followers": "Հետևորդներ",
     "following": "Հետևող",
     "blocks": "Արգելափակումներ",
+    "blocked-users": "Blocked users",
     "block_toggle": "Միացնել արգելափակումը",
     "block_user": "Արգելափակել Օգտատիրոջը",
     "unblock_user": "Արգելափակել Օգտատիրոջը",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Վերբեռնել նոր նկար",
     "upload_new_picture_from_url": "Վերբեռնեք նոր նկար URL-ից",
     "current_password": "ներկայիս գաղտնաբառը",
+    "new_password": "New Password",
     "change_password": "փոխել գաղտնաբառը ",
     "change_password_error": "Սխալ գաղտնաբառ",
     "change_password_error_wrong_current": "Ձեր ընթացիկ գաղտնաբառը սխալ է",
@@ -115,6 +117,8 @@
     "paginate_description": "Էջադրեք թեմաներն ու գրառումները՝ անսահման ոլորման փոխարեն",
     "topics_per_page": "Թեմաներ մեկ էջի համար",
     "posts_per_page": "Գրառումներ մեկ էջի համար",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Առավելագույնը %1",
     "acp_language": "Ադմինիստրատորի էջի լեզուն",
     "notifications": "Ծանուցումներ",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Մոդերացիայի նշումը պահվեց",
     "info.moderation-note.add": "Ավելացնել նշում",
     "sessions.description": "Այս էջը թույլ է տալիս դիտել ցանկացած ակտիվ սեանս այս ֆորումում և անհրաժեշտության դեպքում չեղարկել դրանք: Դուք կարող եք չեղարկել ձեր սեփական սեանսը՝ դուրս գալով ձեր հաշվից:",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "Այս համայնքի ֆորումը հավաքում և մշակում է ձեր անձնական տվյալները:",
     "consent.intro": "Մենք օգտագործում ենք այս տեղեկատվությունը խստորեն այս համայնքում ձեր փորձառությունն անհատականացնելու, ինչպես նաև ձեր կատարած գրառումները ձեր օգտատիրոջ հաշվին կապելու համար: Գրանցման քայլի ընթացքում ձեզանից պահանջվել է տրամադրել օգտատիրոջ անուն և էլ.փոստի հասցե, դուք կարող եք նաև լրացուցիչ տեղեկություններ տրամադրել այս կայքում ձեր օգտատիրոջ պրոֆիլը լրացնելու համար: Մենք պահպանում ենք այս տեղեկատվությունը ձեր օգտատիրոջ հաշվի ողջ կյանքի ընթացքում, և դուք կարող եք հետ վերցնել համաձայնությունը: ցանկացած պահի ջնջելով ձեր հաշիվը: Ցանկացած ժամանակ դուք կարող եք պահանջել ձեր ներդրման պատճենը այս կայքում՝ ձեր իրավունքների և amp; Համաձայնության էջ: Եթե ունեք հարցեր կամ մտահոգություններ, խորհուրդ ենք տալիս դիմել այս ֆորումի ադմինիստրատիվ թիմին:",
diff --git a/public/language/hy/users.json b/public/language/hy/users.json
index c6b8293ef5..7f492b05f5 100644
--- a/public/language/hy/users.json
+++ b/public/language/hy/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Վերջին օգտատերերը",
     "top_posters": "Ամենաշատ գրառողները",
     "most_reputation": "Ամենաբարձր վարկանիշը",
     "most_flags": "Դրոշակներ",
     "search": "Որոնում",
     "enter_username": "Գրեք անուն և որոնեք",
-    "search-user-for-chat": "Փնտրեք օգտվողի չաթը սկսելու համար",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Բեռնել ավելին",
     "users-found-search-took": "Գտնվեց %1 օգտվող։ Որոնումը տևեց %2 վայրկյան։",
     "filter-by": "Ֆիլտրել ըստ",
diff --git a/public/language/id/admin/admin.json b/public/language/id/admin/admin.json
index 7085289bc8..1e135597e7 100644
--- a/public/language/id/admin/admin.json
+++ b/public/language/id/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Kontrol Panel Admin NodeBB",
 	"settings-header-contents": "Konten",
-	"changes-saved": "Perubahan Disimpan",
-	"changes-saved-message": "Perubahan konfigurasi NodeBB Anda telah disimpan.",
 	"changes-not-saved": "Perubahan Tidak Disimpan",
 	"changes-not-saved-message": "NodeBB mengalami masalah saat menyimpan perubahan Anda. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/id/admin/appearance/customise.json b/public/language/id/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/id/admin/appearance/customise.json
+++ b/public/language/id/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/id/admin/dashboard.json b/public/language/id/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/id/admin/dashboard.json
+++ b/public/language/id/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/id/admin/extend/widgets.json b/public/language/id/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/id/admin/extend/widgets.json
+++ b/public/language/id/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/id/admin/manage/groups.json b/public/language/id/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/id/admin/manage/groups.json
+++ b/public/language/id/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/id/admin/manage/privileges.json b/public/language/id/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/id/admin/manage/privileges.json
+++ b/public/language/id/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/id/admin/settings/api.json b/public/language/id/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/id/admin/settings/api.json
+++ b/public/language/id/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/id/admin/settings/navigation.json b/public/language/id/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/id/admin/settings/navigation.json
+++ b/public/language/id/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/id/admin/settings/user.json b/public/language/id/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/id/admin/settings/user.json
+++ b/public/language/id/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/id/error.json b/public/language/id/error.json
index e95fef93a9..e02c20c827 100644
--- a/public/language/id/error.json
+++ b/public/language/id/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Guest uploading has been disabled",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Your membership request has already been submitted",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Postingan ini sudah dihapus",
     "post-already-restored": "Postingan ini sudah direstore",
     "topic-already-deleted": "Topik ini sudah dihapus",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/id/flags.json b/public/language/id/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/id/flags.json
+++ b/public/language/id/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/id/global.json b/public/language/id/global.json
index 17706017db..d4831fa8ef 100644
--- a/public/language/id/global.json
+++ b/public/language/id/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Tutup",
     "403.title": "Akses ditolak",
     "403.message": "Kamu kelihatan mengakses halaman yang kamu tidak memiliki akses",
-    "403.login": "Mungkin kamu harus <a href='%1/login'>mencoba untuk login</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Tidak ditemukan",
-    "404.message": "Kamu kelihatan mengakses halaman yang tidak ada. Kembali ke <a href='%1/'>beranda</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Kesalahan Internal.",
     "500.message": "Oops! Terjadi kesalahan",
     "400.title": "Bad Request.",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Daftar",
     "login": "Login",
     "please_log_in": "Silakan Log In",
@@ -37,9 +37,13 @@
     "header.notifications": "Pemberitahuan",
     "header.search": "Cari",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigasi",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Memuat Pemberitahuan",
     "chats.loading": "Memuat Chat",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Selamat datang di NodeBB, platform diskusi masa depan.",
     "previouspage": "Halaman Sebelumnya",
     "nextpage": "Halaman Selanjutnya",
@@ -54,7 +58,8 @@
     "users": "Pengguna",
     "topics": "Topik",
     "posts": "Post",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Best",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Reputasi",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "selengkapnya",
     "more": "Lebih banyak",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "Dibuat oleh %1 %2",
     "guest_posted_ago": "Dibuat oleh Tamu %1",
     "last_edited_by": "last edited by %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Tidak ada post terbaru",
     "norecenttopics": "Tidak ada topik terbaru",
     "recentposts": "Post Terbaru",
     "recentips": "Beberapa IP yang digunakan untuk login baru-baru ini",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Online",
     "away": "Tidak Ditempat",
     "dnd": "Jangan ganggu",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/id/groups.json b/public/language/id/groups.json
index 47065e357e..5f869f352d 100644
--- a/public/language/id/groups.json
+++ b/public/language/id/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grup",
+    "members": "Members",
     "view_group": "Tampilkan Grup",
     "owner": "Group Owner",
     "new_group": "Create New Group",
diff --git a/public/language/id/modules.json b/public/language/id/modules.json
index 1b29cae734..11440c2731 100644
--- a/public/language/id/modules.json
+++ b/public/language/id/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Berbincang dengan",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Kirim",
     "chat.no_active": "Kamu tidak memiliki percakapan yang aktif.",
     "chat.user_typing": "%1 sedang menulis ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Compose",
     "composer.show_preview": "Show Preview",
     "composer.hide_preview": "Hide Preview",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 berkata di %2: ",
     "composer.user_said": "%1 berkata:",
     "composer.discard": "Kamu yakin akan membuang posting ini?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancel",
     "bootbox.confirm": "Confirm",
diff --git a/public/language/id/pages.json b/public/language/id/pages.json
index bab11fe375..2ff644cde4 100644
--- a/public/language/id/pages.json
+++ b/public/language/id/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "User Settings",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Topics watched by %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Posts upvoted by %1",
diff --git a/public/language/id/post-queue.json b/public/language/id/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/id/post-queue.json
+++ b/public/language/id/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/id/recent.json b/public/language/id/recent.json
index 896583950f..fc0ec3fc94 100644
--- a/public/language/id/recent.json
+++ b/public/language/id/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Sepanjang Waktu",
     "no_recent_topics": "Tidak ada topik terbaru.",
     "no_popular_topics": "There are no popular topics.",
-    "there-is-a-new-topic": "There is a new topic.",
-    "there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
-    "there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
-    "there-are-new-topics": "There are %1 new topics.",
-    "there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
-    "there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
-    "there-is-a-new-post": "There is a new post.",
-    "there-are-new-posts": "There are %1 new posts.",
-    "click-here-to-reload": "Click here to reload."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/id/register.json b/public/language/id/register.json
index da2db909ce..31fb0e66a0 100644
--- a/public/language/id/register.json
+++ b/public/language/id/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Daftar",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "Secara default, emailmu akan disembunyikan dari publik.",
     "help.username_restrictions": "Nama Pengguna yang unik antara %1 dan %2 karakter. Pengguna lain dapat menyebutmu dengan menggunakan @<span id='Nama Pengguna mu'>nama pengguna</span>.",
diff --git a/public/language/id/search.json b/public/language/id/search.json
index ab59b9249b..b4e785c1b7 100644
--- a/public/language/id/search.json
+++ b/public/language/id/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 hasil yang sesuai dengan \"%2\", (%3 detik)",
     "no-matches": "No matches found",
     "advanced-search": "Pencarian Lanjut",
     "in": "Dalam",
-    "titles": "Judul",
-    "titles-posts": "Judul dan Post",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Diposting oleh",
-    "in-categories": "Dalam Kategori",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Search child categories",
     "has-tags": "Has tags",
     "reply-count": "Reply Count",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "At least",
     "at-most": "At most",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Post time",
     "votes": "Votes",
     "newer-than": "Newer than",
@@ -28,7 +48,22 @@
     "three-months": "Three months",
     "six-months": "Six months",
     "one-year": "One year",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sort by",
+    "sort": "Sort",
     "last-reply-time": "Last reply time",
     "topic-title": "Topic title",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Category",
     "descending": "In descending order",
     "ascending": "In ascending order",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Save preferences",
     "clear-preferences": "Clear preferences",
     "search-preferences-saved": "Search preferences saved",
     "search-preferences-cleared": "Search preferences cleared",
     "show-results-as": "Show results as",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/id/social.json b/public/language/id/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/id/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/id/tags.json b/public/language/id/tags.json
index 315df1f61a..e02411be28 100644
--- a/public/language/id/tags.json
+++ b/public/language/id/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Tidak ada topik dengan tag ini.",
+    "no-tags-found": "No tags found",
     "tags": "Tag",
     "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
     "enter_tags_here_short": "Masukkan tag...",
diff --git a/public/language/id/topic.json b/public/language/id/topic.json
index 423af14c4b..16914d5ead 100644
--- a/public/language/id/topic.json
+++ b/public/language/id/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Klik di sini untuk kembali ke posting yang terakhir kali dibaca pada topik ini.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Musnahkan Topik",
     "thread_tools.purge_confirm": "Kamu yakin ingin memusnahkan topik ini?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Posting dipindahkan!",
     "fork_topic": "Cabangkan Topik",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Klik posting yang kamu ingin cabangkan",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Tidak ada posting yang dipilih!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Masukkan judul topik di sini...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Buang",
     "composer.submit": "Kirim",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Membalas ke %1",
     "composer.new_topic": "Topik Baru",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/id/user.json b/public/language/id/user.json
index 9a584fe73f..bd81c0ee74 100644
--- a/public/language/id/user.json
+++ b/public/language/id/user.json
@@ -43,6 +43,7 @@
     "followers": "Pengikut",
     "following": "Mengikuti",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Unggah Gambar/Foto Baru",
     "upload_new_picture_from_url": "Unggah Gambar/Foto Baru dari URL",
     "current_password": "Kata Sandi Saat Ini",
+    "new_password": "New Password",
     "change_password": "Ganti Kata Sandi",
     "change_password_error": "Kata Sandi Salah!",
     "change_password_error_wrong_current": "Kata Sandi kamu saat ini salah!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paginate topik dan post daripada menggunakan infinite scroll",
     "topics_per_page": "Topik per Halaman",
     "posts_per_page": "Posting per Halaman",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/id/users.json b/public/language/id/users.json
index f78ac6c660..2078c6d4a6 100644
--- a/public/language/id/users.json
+++ b/public/language/id/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Pengguna Terakhir",
     "top_posters": "Posting Terbanyak",
     "most_reputation": "Reputasi Terbanyak",
     "most_flags": "Most Flags",
     "search": "Pencarian",
     "enter_username": "Masukkan nama pengguna untuk mencari",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Tampilkan Lebih Banyak",
     "users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
     "filter-by": "Filter By",
diff --git a/public/language/it/admin/admin.json b/public/language/it/admin/admin.json
index 74dd839368..abd39a3f27 100644
--- a/public/language/it/admin/admin.json
+++ b/public/language/it/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Pannello di controllo amministratore NodeBB",
 	"settings-header-contents": "Contenuti",
-	"changes-saved": "Modifiche salvate",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Modifiche non salvate",
 	"changes-not-saved-message": "NodeBB ha incontrato un problema nel salvare le tue modifiche. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/it/admin/appearance/customise.json b/public/language/it/admin/appearance/customise.json
index 10f7e5ef04..6e03598ce8 100644
--- a/public/language/it/admin/appearance/customise.json
+++ b/public/language/it/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "CSS/LESS personalizzato",
-	"custom-css.description": "Inserisci qui le tue dichiarazioni CSS /LESS, che saranno applicate dopo tutti gli altri stili.",
-	"custom-css.enable": "Abilita CSS/LESS personalizzati",
+	"custom-css": "CSS/SASS personalizzato",
+	"custom-css.description": "Inserisci qui le tue dichiarazioni CSS/SASS, che saranno applicate dopo tutti gli altri stili.",
+	"custom-css.enable": "Abilita CSS/SASS personalizzato",
 
 	"custom-js": "Javascript personalizzato",
 	"custom-js.description": "Inserisci qui il tuo javascript. Sarà eseguito dopo che la pagina è stata caricata completamente.",
diff --git a/public/language/it/admin/dashboard.json b/public/language/it/admin/dashboard.json
index 329c11dd7c..85e3c0aede 100644
--- a/public/language/it/admin/dashboard.json
+++ b/public/language/it/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Torna alla dashboard",
 	"details.no-users": "Nessun utente si è iscritto nell'arco di tempo selezionato",
 	"details.no-topics": "Nessuna discussione è stata postata nell'arco di tempo selezionato",
-	"details.no-searches": "Nessuna ricerca è ancora stata fatta",
+	"details.no-searches": "Non sono state effettuate ricerche nell'arco di tempo selezionato.",
 	"details.no-logins": "Non sono stati registrati accessi nell'arco di tempo selezionato",
 	"details.logins-static": "NodeBB salva solo i dati di sessione per %1 giorni, quindi la tabella qui sotto mostrerà solo le sessioni attive più recenti",
-	"details.logins-login-time": "Tempo di accesso"
+	"details.logins-login-time": "Tempo di accesso",
+	"start": "Inizio",
+	"end": "Fine",
+	"filter": "Filtro"
 }
diff --git a/public/language/it/admin/extend/widgets.json b/public/language/it/admin/extend/widgets.json
index 6419142353..cc4cb7c138 100644
--- a/public/language/it/admin/extend/widgets.json
+++ b/public/language/it/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Nessuno",
 	"container.well": "Bene",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Pannello",
-	"container.panel-header": "Intestazione Pannello",
-	"container.panel-body": "Corpo Pannello",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Avviso",
 
 	"alert.confirm-delete": "Sei sicuro di voler eliminare questo widget?",
diff --git a/public/language/it/admin/manage/groups.json b/public/language/it/admin/manage/groups.json
index eb86b9826d..5d64c0d44e 100644
--- a/public/language/it/admin/manage/groups.json
+++ b/public/language/it/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Ritorno",
 
 	"edit.no-users-found": "Nessun utente trovato",
-	"edit.confirm-remove-user": "Sei sicuro di voler rimuovere questo utente?",
-	"edit.save-success": "Modifiche salvate!"
+	"edit.confirm-remove-user": "Sei sicuro di voler rimuovere questo utente?"
 }
\ No newline at end of file
diff --git a/public/language/it/admin/manage/privileges.json b/public/language/it/admin/manage/privileges.json
index 27383c17c7..e2e904537b 100644
--- a/public/language/it/admin/manage/privileges.json
+++ b/public/language/it/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Sei sicuro di voler concedere il privilegio di moderazione a questo gruppo di utenti?</strong> Questo gruppo è pubblico e tutti gli utenti possono iscriversi a piacimento.",
 	"alert.confirm-admins-mods": "<strong>Sei sicuro di voler concedere i privilegi di &quot;Amministratori &amp; Moderatori&quot; a questo utente/gruppo?</strong> Gli utenti con questo privilegio possono promuovere e retrocedere altri utenti in posizioni privilegiate, <em>compreso il super amministratore</em>",
 	"alert.confirm-save": "Si prega di confermare l'intenzione di salvare questi privilegi",
-	"alert.saved": "Modifiche ai privilegi salvate e applicate",
 	"alert.confirm-discard": "Sei sicuro di voler annullare le modifiche ai privilegi?",
 	"alert.discarded": "Modifiche ai privilegi ignorate",
 	"alert.confirm-copyToAll": "Sei sicuro di voler applicare questa serie di <strong>%1</strong> a <strong>tutte le categorie</strong>?",
diff --git a/public/language/it/admin/manage/registration.json b/public/language/it/admin/manage/registration.json
index 11d0329b87..4fe3902767 100644
--- a/public/language/it/admin/manage/registration.json
+++ b/public/language/it/admin/manage/registration.json
@@ -5,7 +5,7 @@
 	"list.name": "Nome",
 	"list.email": "Email",
 	"list.ip": "IP",
-	"list.time": "Tempo",
+	"list.time": "Orario",
 	"list.username-spam": "Frequenza: %1 Apparsi: %2 Confidenza: %3",
 	"list.email-spam": "Frequenza: %1 Apparsi: %2",
 	"list.ip-spam": "Frequenza: %1 Apparsi: %2",
diff --git a/public/language/it/admin/menu.json b/public/language/it/admin/menu.json
index 82b3085b89..54c2f69bcc 100644
--- a/public/language/it/admin/menu.json
+++ b/public/language/it/admin/menu.json
@@ -34,7 +34,7 @@
 	"settings/post": "Post",
 	"settings/chat": "Chat",
 	"settings/pagination": "Paginazione",
-	"settings/tags": "Tabs",
+	"settings/tags": "Tag",
 	"settings/notifications": "Notifiche",
 	"settings/api": "Accesso API",
 	"settings/sounds": "Suoni",
diff --git a/public/language/it/admin/settings/api.json b/public/language/it/admin/settings/api.json
index 74e57044a0..fc7bf8aec7 100644
--- a/public/language/it/admin/settings/api.json
+++ b/public/language/it/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "ID utente",
 	"uid-help-text": "Specificare un ID utente da associare a questo token. Se l'ID utente è <code>0</code>, sarà considerato un token <em>master</em>, che può assumere l'identità di altri utenti in base al parametro <code>_uid</code>",
 	"description": "Descrizione",
+	"last-seen-ago": "Ultimo utilizzo <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Ultimo utilizzo il <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "Questa chiave non è mai stata usata.",
 	"no-description": "Nessuna descrizione specificata.",
 	"token-on-save": "Il token sarà generato una volta salvato il modulo"
 }
\ No newline at end of file
diff --git a/public/language/it/admin/settings/navigation.json b/public/language/it/admin/settings/navigation.json
index 75607ccce6..6fea607018 100644
--- a/public/language/it/admin/settings/navigation.json
+++ b/public/language/it/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Gruppi:",
 	"open-new-window": "Apri in una nuova finestra",
 	"dropdown": "Menu a tendina",
-	"dropdown-placeholder": "Posiziona le voci del tuo menu a tendina in basso, ad esempio: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Posiziona le voci del menu a discesa qui sotto, es.: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Elimina",
 	"btn.disable": "Disabilita",
diff --git a/public/language/it/admin/settings/user.json b/public/language/it/admin/settings/user.json
index b418763c86..b6c27f03cc 100644
--- a/public/language/it/admin/settings/user.json
+++ b/public/language/it/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Giorni",
 	"session-time-seconds": "Secondi",
 	"session-time-help": "Questi valori vengono utilizzati per definire per quanto tempo un utente rimane loggato quando spuntano &quot;Remember Me&quot; al login. Nota che solo uno di questi valori verrà utilizzato. Se non ci sono valori per<i> secondi</i> si passerà ai <i>giorni</i>. Se non ci sono valori per i<i>giorni</i> si passerà al valore di dafault di <i>14 giorni</i>.",
+	"session-duration": "Durata della sessione se \"Ricordami\" non è selezionato (secondi)",
+	"session-duration-help": "Per impostazione predefinita — o se impostato su <code>0</code> — l'utente rimarrà connesso per tutta la durata della sessione (ad es. per tutto il tempo in cui la finestra/tab del browser rimane aperta). Imposta questo valore per invalidare esplicitamente la sessione dopo il numero di secondi specificato.",
 	"online-cutoff": "Minuti dopo per cui l'utente è considerato inattivo",
 	"online-cutoff-help": "Se l'utente non esegue alcuna azione per questa durata di tempo, vengono considerati inattivi e non ricevono aggiornamenti in tempo reale.",
 	"registration": "Registrazione Utente",
diff --git a/public/language/it/error.json b/public/language/it/error.json
index 8b5452bc25..443f487129 100644
--- a/public/language/it/error.json
+++ b/public/language/it/error.json
@@ -62,7 +62,7 @@
     "no-user": "L'Utente non esiste",
     "no-teaser": "Teaser non esiste",
     "no-flag": "Segnalazione non esiste",
-    "no-chat-room": "Chat room does not exist",
+    "no-chat-room": "La stanza chat non esiste",
     "no-privileges": "Non hai abbastanza privilegi per questa azione.",
     "category-disabled": "Categoria disabilitata",
     "topic-locked": "Discussione Bloccata",
@@ -89,7 +89,7 @@
     "category-not-selected": "Categoria non selezionata.",
     "too-many-posts": "È possibile inserire un Post ogni %1 secondi - si prega di attendere prima di postare di nuovo",
     "too-many-posts-newbie": "Come nuovo utente puoi postare solamente una volta ogni %1 secondi finché non hai raggiunto un livello di reputazione %2 - per favore attendi prima di scrivere ancora",
-    "already-posting": "You are already posting",
+    "already-posting": "Stai già postando",
     "tag-too-short": "Inserisci un tag più lungo. I tag devono contenere almeno %1 caratteri.",
     "tag-too-long": "Per favore inserisci un tag più corto. I tags non dovrebbero essere più lunghi di %1 caratteri",
     "not-enough-tags": "Tag non sufficienti. Le discussioni devono avere almeno %1 Tag",
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Il caricamento da ospite è stato disattivato",
     "cors-error": "Impossibile caricare immagine a causa di CORS non configurato opportunamente",
     "upload-ratelimit-reached": "Hai caricato troppi file contemporaneamente. Per favore riprova più tardi.",
+    "upload-error-fallback": "Impossibile caricare l'immagine — %1",
     "scheduling-to-past": "Si prega di selezionare una data nel futuro.",
     "invalid-schedule-date": "Si prega di inserire una data e ora valida.",
     "cant-pin-scheduled": "Le discussioni pianificate non possono essere (s)bloccate.",
@@ -134,6 +135,8 @@
     "group-already-requested": "La tua richiesta di iscrizione è già stata inviata",
     "group-join-disabled": "Non sei in grado di iscriverti a questo gruppo in questo momento",
     "group-leave-disabled": "Non sei in grado di lasciare questo gruppo in questo momento.",
+    "group-user-not-pending": "L'utente non ha una richiesta in attesa per unirsi a questo gruppo.",
+    "gorup-user-not-invited": "L'utente non è stato invitato a far parte di questo gruppo.",
     "post-already-deleted": "Questo post è già stato eliminato",
     "post-already-restored": "Questo Post è già stato ripristinato",
     "topic-already-deleted": "Questo topic è già stato eliminato",
@@ -157,9 +160,9 @@
     "chat-deleted-already": "Il messaggio è già stato eliminato.",
     "chat-restored-already": "Questo messaggio della chat è già stato ripristinato.",
     "chat-room-does-not-exist": "La stanza chat non esiste.",
-    "cant-add-users-to-chat-room": "Can't add users to chat room.",
-    "cant-remove-users-from-chat-room": "Can't remove users from chat room.",
-    "chat-room-name-too-long": "Chat room name too long.",
+    "cant-add-users-to-chat-room": "Impossibile aggiungere utenti alla stanza chat.",
+    "cant-remove-users-from-chat-room": "Impossibile rimuovere gli utenti dalla stanza chat.",
+    "chat-room-name-too-long": "Nome della stanza chat troppo lungo.",
     "already-voting-for-this-post": "Hai già votato per questo post",
     "reputation-system-disabled": "Il sistema di reputazione è disabilitato.",
     "downvoting-disabled": "Votata negativamente è disabilitato",
@@ -224,5 +227,6 @@
     "api.429": "Hai fatto troppe richieste, riprova più tardi",
     "api.500": "È stato riscontrato un errore inaspettato durante il tentativo di soddisfare la tua richiesta.",
     "api.501": "Il percorso che stai cercando di chiamare non è ancora implementato, riprova domani",
-    "api.503": "Il percorso che stai cercando di chiamare non è attualmente disponibile a causa di una configurazione del server"
+    "api.503": "Il percorso che stai cercando di chiamare non è attualmente disponibile a causa di una configurazione del server",
+    "api.reauth-required": "La risorsa a cui stai cercando di accedere richiede una (ri)autenticazione."
 }
\ No newline at end of file
diff --git a/public/language/it/flags.json b/public/language/it/flags.json
index 3704f4d2be..2b3b7e2ee0 100644
--- a/public/language/it/flags.json
+++ b/public/language/it/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Segnalazioni",
 	"first-reported": "Prima segnalazione",
 	"no-flags": "Evviva! Nessuna segnalazione trovata.",
+	"x-flags-found": "%1 segnalazione(i) trovata.",
 	"assignee": "Assegnatario",
 	"update": "Aggiorna",
 	"updated": "Aggiornato",
 	"resolved": "Risolto",
 	"target-purged": "Il contenuto di questa segnalazione è stato eliminato e non è più disponibile.",
+	"target-aboutme-empty": "Questo utente non ha impostato &quot;Su di me&quot;.",
 
 	"graph-label": "Segnalazioni Giornaliere",
 	"quick-filters": "Filtri Rapidi",
 	"filter-active": "Ci sono uno o più filtri attivi in questa lista di segnalazioni",
 	"filter-reset": "Rimuovi Filtri",
 	"filters": "Opzioni Filtri",
-	"filter-reporterId": "UID segnalatore",
-	"filter-targetUid": "UID segnalato",
+	"filter-reporterId": "Segnalatore",
+	"filter-targetUid": "Segnalato",
 	"filter-type": "Tipo Segnalazione",
 	"filter-type-all": "Tutto il Contenuto",
 	"filter-type-post": "Post",
 	"filter-type-user": "Utente",
 	"filter-state": "Stato",
-	"filter-assignee": "UID assegnato",
+	"filter-assignee": "Assegnatario",
 	"filter-cid": "Categoria",
 	"filter-quick-mine": "Assegnato a me",
 	"filter-cid-all": "Tutte le categorie",
@@ -45,6 +47,7 @@
 
 	"notes": "Note Segnalazione",
 	"add-note": "Aggiungi Nota",
+	"edit-note": "Modifica nota",
 	"no-notes": "Nessuna nota condivisa",
 	"delete-note-confirm": "Sei sicuro di voler eliminare questa nota di segnalazione?",
 	"delete-flag-confirm": "Sei sicuro di voler eliminare questa segnalazione?",
diff --git a/public/language/it/global.json b/public/language/it/global.json
index 46ee51179b..9497236c0b 100644
--- a/public/language/it/global.json
+++ b/public/language/it/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Chiudi",
     "403.title": "Accesso Negato",
     "403.message": "Sembra tu sia arrivato ad una pagina a cui non hai accesso.",
-    "403.login": "Forse dovresti <a href='%1/login'>effettuare l'accesso</a>?",
+    "403.login": "Forse dovresti <a class=\"alert-link\" href='%1/login'>provare ad accedere</a>?",
     "404.title": "Non Trovato",
-    "404.message": "Sembra tu sia arrivato ad una pagina che non esiste. Torna alla <a href='%1/'>pagina iniziale</a>.",
+    "404.message": "Sembra che tu sia incappato in una pagina che non esiste. Torna all'<a class=\"alert-link\" href='%1/'>pagina iniziale</a>.",
     "500.title": "Errore interno.",
     "500.message": "Oops! Qualcosa non funziona come si deve!",
     "400.title": "Richiesta non valida.",
-    "400.message": "Sembra che questo link non sia corretto, per favore ricontrolla e riprova. Altrimenti ritorna alla <a href='%1/'>pagina iniziale</a>.",
+    "400.message": "Sembra che questo collegamento non sia corretto, ricontrolla e riprova. Altrimenti, torna alla <a class=\"alert-link\" href='%1/'>pagina iniziale</a>.",
     "register": "Registrati",
     "login": "Accedi",
     "please_log_in": "Per favore Accedi",
@@ -37,9 +37,13 @@
     "header.notifications": "Notifiche",
     "header.search": "Cerca",
     "header.profile": "Profilo",
+    "header.account": "Account",
     "header.navigation": "Navigazione",
+    "header.manage": "Gestisci",
+    "header.drafts": "Bozze",
     "notifications.loading": "Caricamento Notifiche",
     "chats.loading": "Caricamento Messaggi",
+    "drafts.loading": "Caricamento bozze",
     "motd.welcome": "Benvenuti in NodeBB, la piattaforma di discussione del futuro.",
     "previouspage": "Pagina Precedente",
     "nextpage": "Pagina Successiva",
@@ -54,7 +58,8 @@
     "users": "Utenti",
     "topics": "Discussioni",
     "posts": "Post",
-    "x-posts": "%1 post",
+    "x-posts": "<span class=\"formatted-number\">%1</span> post",
+    "x-topics": "<span class=\"formatted-number\">%1</span> discussioni",
     "best": "Migliore",
     "controversial": "Controverso",
     "votes": "Votazioni",
@@ -69,6 +74,7 @@
     "reputation": "Reputazione",
     "lastpost": "Ultimo post",
     "firstpost": "Primo post",
+    "about": "Informazioni",
     "read_more": "per saperne di più",
     "more": "Altro",
     "none": "Nessuno",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 ha postato %2",
     "guest_posted_ago": "Ospite ha scritto %1",
     "last_edited_by": "ultima modifica di %1",
+    "edited-timestamp": "Modificato %1",
     "norecentposts": "Nessun Post Recente",
     "norecenttopics": "Nessuna Discussione Recente",
     "recentposts": "Post Recenti",
     "recentips": "IP recentemente registrati",
     "moderator_tools": "Strumenti di amministrazione",
+    "status": "Stato",
     "online": "Online",
     "away": "Non disponibile",
     "dnd": "Non disturbare",
@@ -122,5 +130,7 @@
     "edited": "Modificato",
     "disabled": "Disabilitato",
     "select": "Seleziona",
-    "user-search-prompt": "Scrivi qui per avviare la ricerca utenti"
+    "user-search-prompt": "Scrivi qui per avviare la ricerca utenti",
+    "hidden": "Nascosto",
+    "sort": "Ordinamento"
 }
\ No newline at end of file
diff --git a/public/language/it/groups.json b/public/language/it/groups.json
index 5671327861..5058166b9e 100644
--- a/public/language/it/groups.json
+++ b/public/language/it/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Gruppi",
+    "members": "Membri",
     "view_group": "Vedi Gruppo",
     "owner": "Proprietario del Gruppo",
     "new_group": "Crea Nuovo Gruppo",
diff --git a/public/language/it/modules.json b/public/language/it/modules.json
index 7f1533d729..a067732ab0 100644
--- a/public/language/it/modules.json
+++ b/public/language/it/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Messaggia con",
     "chat.placeholder": "Digita il messaggio di chat qui, trascina le immagini, premi invio per inviare",
+    "chat.placeholder.mobile": "Digita il messaggio di chat qui",
     "chat.scroll-up-alert": "Stai guardando i messaggi più vecchi, clicca qui per andare al messaggio più recente.",
+    "chat.usernames-and-x-others": "%1 & %2 altri",
+    "chat.chat-with-usernames": "Chatta con %1",
+    "chat.chat-with-usernames-and-x-others": "Chatta con %1 e altri %2",
     "chat.send": "Invia",
     "chat.no_active": "Non hai chat attive.",
     "chat.user_typing": "%1 sta scrivendo...",
@@ -42,6 +46,7 @@
     "composer.compose": "Componi",
     "composer.show_preview": "Visualizza Anteprima",
     "composer.hide_preview": "Nascondi Anteprima",
+    "composer.help": "Aiuto",
     "composer.user_said_in": "%1 ha detto in %2:",
     "composer.user_said": "%1 ha detto:",
     "composer.discard": "Sei sicuro di voler scartare questo post?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Orario",
     "composer.cancel-scheduling": "Annulla pianificazione",
     "composer.set-schedule-date": "Imposta data",
+    "composer.discard-all-drafts": "Scarta tutte le bozze",
+    "composer.no-drafts": "Non hai bozze",
+    "composer.discard-draft-confirm": "Vuoi scartare questa bozza?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Annulla",
     "bootbox.confirm": "Conferma",
diff --git a/public/language/it/pages.json b/public/language/it/pages.json
index 08f38dd5ab..1f067bad7e 100644
--- a/public/language/it/pages.json
+++ b/public/language/it/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Categorie seguite da %1'",
     "account/bookmarks": "%1 Post tra i favoriti",
     "account/settings": "Impostazioni Utente",
+    "account/settings-of": "Modifica impostazioni di %1",
     "account/watched": "Discussioni seguite da %1",
     "account/ignored": "Discussioni ignorate da %1",
     "account/upvoted": "Post apprezzati da %1",
diff --git a/public/language/it/post-queue.json b/public/language/it/post-queue.json
index ac1edc0bcb..80898f2d1d 100644
--- a/public/language/it/post-queue.json
+++ b/public/language/it/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Coda post",
-	"description": "Non ci sono post nella coda dei post. <br> Per abilitare questa funzione, vai in <a href=\"%1\">Impostazioni &rarr; Post &rarr; Coda post</a> e abilita <strong>Coda post</strong>.",
+	"no-queued-posts": "Non ci sono post nella coda dei post.",
+	"no-single-post": "La discussione o il post che si sta cercando non è più in coda. Probabilmente è già stato approvato o cancellato.",
+	"enabling-help": "Per abilitare questa funzione, vai in <a href=\"%1\">Impostazioni &rarr; Post &rarr; Coda Post</a> e attiva <strong>Coda Post</strong>.",
+	"back-to-list": "Torna alla coda dei post",
 	"user": "Utente",
+	"when": "Quando",
 	"category": "Categoria",
 	"title": "Titolo",
 	"content": "Contenuto",
@@ -19,6 +23,7 @@
 	"notify": "Notifica",
 	"notify-user": "Notifica all'utente",
 	"confirm-reject": "Vuoi rifiutare questo post?",
+	"confirm-remove": "Vuoi rimuovere questo post?",
 	"bulk-actions": "Azioni in blocco",
 	"accept-all": "Accetta tutti",
 	"accept-selected": "Accetta selezionato",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Vuoi rifiutare tutti i post?",
 	"reject-selected": "Rifiuta selezionato",
 	"reject-selected-confirm": "Vuoi rifiutare %1 post selezionati?",
+	"remove-all": "Rimuovi tutto",
+	"remove-all-confirm": "Vuoi rimuovere tutti i post?",
+	"remove-selected": "Rimuovi selezionati",
+	"remove-selected-confirm": "Vuoi rimuovere %1 post selezionati?",
 	"bulk-accept-success": "%1 post accettati",
 	"bulk-reject-success": "%1 post rifiutati"
 }
\ No newline at end of file
diff --git a/public/language/it/recent.json b/public/language/it/recent.json
index c5a3e9eae4..5c7208a7d6 100644
--- a/public/language/it/recent.json
+++ b/public/language/it/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Sempre",
     "no_recent_topics": "Non ci sono discussioni recenti.",
     "no_popular_topics": "Non ci sono discussioni popolari.",
-    "there-is-a-new-topic": "C'è un nuova discussione.",
-    "there-is-a-new-topic-and-a-new-post": "C'è una nuova discussione e un nuovo post.",
-    "there-is-a-new-topic-and-new-posts": "C'è una nuova discussione e %1 nuovi post.",
-    "there-are-new-topics": "Ci sono %1 nuove discussioni.",
-    "there-are-new-topics-and-a-new-post": "Ci sono %1 nuove discussioni e un nuovo post.",
-    "there-are-new-topics-and-new-posts": "Ci sono %1 nuove discussioni e %2 nuovi post.",
-    "there-is-a-new-post": "C'è un nuovo post.",
-    "there-are-new-posts": "Ci sono %1 nuovi post.",
-    "click-here-to-reload": "Clicca qui per ricaricare."
+    "load-new-posts": "Carica nuovi post"
 }
\ No newline at end of file
diff --git a/public/language/it/register.json b/public/language/it/register.json
index 7faf7b1488..3b451133dc 100644
--- a/public/language/it/register.json
+++ b/public/language/it/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registrati",
+    "already-have-account": "Hai già un account?",
     "cancel_registration": "Cancella Registrazione",
     "help.email": "Per impostazione predefinita, la tua email sarà nascosta al pubblico.",
     "help.username_restrictions": "Un nome utente univoco tra %1 e %2 caratteri. Altri possono citarti con @<span id='yourUsername'>nome utente</span>.",
diff --git a/public/language/it/search.json b/public/language/it/search.json
index c525455b05..f3fdbf3636 100644
--- a/public/language/it/search.json
+++ b/public/language/it/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Digita per cercare",
     "results_matching": "%1 risultato(i) corrispondente(i) \"%2\", (%3 secondi)",
     "no-matches": "Nessuna corrispondenza trovata",
     "advanced-search": "Ricerca Avanzata",
     "in": "In",
-    "titles": "Titoli",
-    "titles-posts": "Titoli e Post",
+    "in-titles": "Nei titoli",
+    "in-titles-posts": "Nei titoli e nei post",
+    "in-posts": "Nei post",
+    "in-categories": "Nelle categorie",
+    "in-users": "Negli utenti",
+    "in-tags": "Nei tag",
+    "categories": "Categorie",
+    "all-categories": "Tutte le categorie",
+    "categories-x": "Categorie: %1",
+    "categories-watched-categories": "Categorie: Categorie osservate",
+    "type-a-category": "Digita una categoria",
+    "tags": "Tag",
+    "tags-x": "Tag: %1",
+    "type-a-tag": "Digita un tag",
     "match-words": "Parole corrispondenti",
+    "match-all-words": "Abbina tutte le parole",
+    "match-any-word": "Abbina qualsiasi parola",
     "all": "Tutti",
     "any": "Chiunque",
     "posted-by": "Postato da",
-    "in-categories": "In Categorie",
+    "posted-by-usernames": "Postato da: %1",
+    "type-a-username": "Digita un nome utente",
     "search-child-categories": "Cerca nelle sottocategorie",
     "has-tags": "Ha i tag",
     "reply-count": "Numero Risposte",
+    "replies": "Risposte",
+    "replies-atleast-count": "Risposte: Almeno %1",
+    "replies-atmost-count": "Risposte: Al massimo %1",
     "at-least": "Almeno",
     "at-most": "Al massimo",
     "relevance": "Rilevanza",
+    "time": "Tempo",
     "post-time": "Ora Post",
     "votes": "Voti",
     "newer-than": "Più recente di",
@@ -28,7 +48,22 @@
     "three-months": "Tre mesi",
     "six-months": "Sei mesi",
     "one-year": "Un anno",
+    "time-newer-than-86400": "Tempo: Più vecchio di ieri",
+    "time-older-than-86400": "Tempo: Più vecchio di ieri",
+    "time-newer-than-604800": "Tempo: Più recente di una settimana",
+    "time-older-than-604800": "Tempo: Più vecchio di una settimana",
+    "time-newer-than-1209600": "Tempo: Più recente di due settimane",
+    "time-older-than-1209600": "Tempo: Più vecchio di due settimane",
+    "time-newer-than-2592000": "Tempo: Più recente di un mese",
+    "time-older-than-2592000": "Tempo: Più vecchio di un mese",
+    "time-newer-than-7776000": "Tempo: Più recente di tre mesi",
+    "time-older-than-7776000": "Tempo: Più vecchio di tre mesi",
+    "time-newer-than-15552000": "Tempo: Più recente di sei mesi",
+    "time-older-than-15552000": "Tempo: Più vecchio di sei mesi",
+    "time-newer-than-31104000": "Tempo: Più recente di un anno",
+    "time-older-than-31104000": "Tempo: Più vecchio di un anno",
     "sort-by": "Ordina per",
+    "sort": "Ordinamento",
     "last-reply-time": "Ora dell'ultima risposta",
     "topic-title": "Titolo discussione",
     "topic-votes": "Voti discussione",
@@ -39,11 +74,36 @@
     "category": "Categoria",
     "descending": "In ordine decrescente",
     "ascending": "In ordine crescente",
+    "sort-by-relevance-desc": "Ordina per: Rilevanza in ordine decrescente",
+    "sort-by-relevance-asc": "Ordina per: Rilevanza in ordine crescente",
+    "sort-by-timestamp-desc": "Ordina per: Orario post in ordine decrescente",
+    "sort-by-timestamp-asc": "Ordina per: Orario post in ordine crescente",
+    "sort-by-votes-desc": "Ordina per: Voti in ordine decrescente",
+    "sort-by-votes-asc": "Ordina per: Voti in ordine crescente",
+    "sort-by-topic.lastposttime-desc": "Ordina per: Orario di risposta in ordine decrescente",
+    "sort-by-topic.lastposttime-asc": "Ordina per: Orario dell'ultima risposta in ordine crescente",
+    "sort-by-topic.title-desc": "Ordina per: Titolo discussione in ordine decrescente",
+    "sort-by-topic.title-asc": "Ordina per: Titolo discussione in ordine crescente",
+    "sort-by-topic.postcount-desc": "Ordina per: Numero di risposte in ordine decrescente",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Ordina per: Numero di visualizzazioni in ordine decrescente",
+    "sort-by-topic.viewcount-asc": "Ordina per: Numero di visualizzazioni in ordine crescente",
+    "sort-by-topic.votes-desc": "Ordina per: Voti della discussione in ordine decrescente",
+    "sort-by-topic.votes-asc": "Ordina per: Voti della discussione in ordine crescente",
+    "sort-by-topic.timestamp-desc": "Ordina per: Data di inizio della discussione in ordine decrescente",
+    "sort-by-topic.timestamp-asc": "Ordina per: Data di inizio della discussione in ordine crescente",
+    "sort-by-user.username-desc": "Ordina per: Nome utente in ordine decrescente",
+    "sort-by-user.username-asc": "Ordina per: Nome utente in ordine crescente",
+    "sort-by-category.name-desc": "Ordina per: Categoria in ordine decrescente",
+    "sort-by-category.name-asc": "Ordina per: Categoria in ordine crescente",
+    "save": "Salva",
     "save-preferences": "Salva preferenze",
     "clear-preferences": "Cancella preferenze",
     "search-preferences-saved": "Cerca nelle preferenze salvate",
     "search-preferences-cleared": "Cerca nelle preferenze cancellate",
     "show-results-as": "Mostra i risultati come",
+    "show-results-as-topics": "Mostra i risultati come discussioni",
+    "show-results-as-posts": "Mostra i risultati come post",
     "see-more-results": "Vedi altri risultati (%1)",
     "search-in-category": "Cerca in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/it/social.json b/public/language/it/social.json
new file mode 100644
index 0000000000..54145797ae
--- /dev/null
+++ b/public/language/it/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Accedi con Twitter",
+	"sign-up-with-twitter": "Registrati con Twitter",
+	"sign-in-with-github": "Accedi con Github",
+	"sign-up-with-github": "Registrati con Github",
+	"sign-in-with-google": "Accedere con Google",
+	"sign-up-with-google": "Registrati con Google",
+	"log-in-with-facebook": "Accedi con Facebook",
+	"continue-with-facebook": "Continua con Facebook"
+}
\ No newline at end of file
diff --git a/public/language/it/tags.json b/public/language/it/tags.json
index dcdd2a3e23..de77276a1f 100644
--- a/public/language/it/tags.json
+++ b/public/language/it/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "Tutti i tag",
     "no_tag_topics": "Non ci sono discussioni con questo tag.",
+    "no-tags-found": "Nessun tag trovato",
     "tags": "Tag",
     "enter_tags_here": "Inserisci qui i tag, tra %1 e %2 caratteri ciascuno.",
     "enter_tags_here_short": "Inserisci i tag...",
diff --git a/public/language/it/topic.json b/public/language/it/topic.json
index 2c8c86d64d..1ebc8c71bd 100644
--- a/public/language/it/topic.json
+++ b/public/language/it/topic.json
@@ -6,7 +6,7 @@
     "post_is_deleted": "Questo post è eliminato!",
     "topic_is_deleted": "Questa discussione è stata eliminata",
     "profile": "Profilo",
-    "posted_by": "Postato da: %1",
+    "posted_by": "Postato da %1",
     "posted_by_guest": "Scritto da Ospite",
     "chat": "Chat",
     "notify_me": "Ricevi notifiche di nuove risposte in questa discussione",
@@ -39,16 +39,30 @@
     "copy-ip": "Copia indirizzo IP",
     "ban-ip": "Banna indirizzo IP",
     "view-history": "Modifica storico",
-    "locked-by": "Bloccato da",
-    "unlocked-by": "Sbloccata da",
-    "pinned-by": "Fissato da",
-    "unpinned-by": "Liberato da",
-    "deleted-by": "Eliminato da",
-    "restored-by": "Ripristinato da",
-    "moved-from-by": "Spostato da %1 da",
-    "queued-by": "Post in coda per l'approvazione &rarr;",
-    "backlink": "Referenziato da",
-    "forked-by": "Diviso da",
+    "wrote-ago": "scritto <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "scritto su <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "risposto a <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "risposto a <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> su <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 ha bloccato questa discussione %2",
+    "user-locked-topic-on": "%1 ha bloccato questa discussione su %2",
+    "user-unlocked-topic-ago": "%1 ha sbloccato questa discussione %2",
+    "user-unlocked-topic-on": "%1 ha sbloccato questa discussione su %2",
+    "user-pinned-topic-ago": "%1 ha fissato questa discussione %2",
+    "user-pinned-topic-on": "%1 ha fissato questa discussione su %2",
+    "user-unpinned-topic-ago": "%1 ha liberato questa discussione %2",
+    "user-unpinned-topic-on": "%1 ha liberato questa discussione su %2",
+    "user-deleted-topic-ago": "%1 ha cancellato questa discussione %2",
+    "user-deleted-topic-on": "%1 ha cancellato questa discussione su %2",
+    "user-restored-topic-ago": "%1 ha ripristinato questa discussione %2",
+    "user-restored-topic-on": "%1 ha ripristinato questa discussione su %2",
+    "user-moved-topic-from-ago": "%1 ha spostato questa discussione da %2 %3",
+    "user-moved-topic-from-on": "%1 ha spostato questa discussione da %2 su %3",
+    "user-queued-post-ago": "%1 post <a href=\"%2\">in coda</a> per l'approvazione %3",
+    "user-queued-post-on": "%1 post <a href=\"%2\">in coda</a> per l'approvazione su %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">ha fatto riferimento</a> a questa discussione %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">ha fatto riferimento</a> a questa discussione su %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">ha biforcato</a> questa discussione %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">ha biforcato</a> questa discussione su %3",
     "bookmark_instructions": "Clicca qui per tornare all'ultimo post letto in questa discussione.",
     "flag-post": "Segnala questo post",
     "flag-user": "Segnala questo utente",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Elimina definitivamente discussione",
     "thread_tools.purge_confirm": "Sei sicuro di voler eliminare definitivamente questa discussione?",
     "thread_tools.merge_topics": "Unisci le Discussioni",
-    "thread_tools.merge": "Unisci",
+    "thread_tools.merge": "Unisci discussione",
     "topic_move_success": "Questa discussione sarà spostata in \"%1\" a breve. Clicca qui per annullare.",
     "topic_move_multiple_success": "Queste discussioni saranno spostata in \"%1\" a breve. Clicca qui per annullare.",
     "topic_move_all_success": "Tutte le discussioni saranno spostata in \"%1\" a breve. Clicca qui per annullare.",
@@ -121,7 +135,7 @@
     "post_moved": "Post spostato!",
     "fork_topic": "Dividi Discussione",
     "enter-new-topic-title": "Inserisci il nuovo titolo della discussione",
-    "fork_topic_instruction": "Clicca sui post che vuoi dividere",
+    "fork_topic_instruction": "Fai clic sui post di cui desideri eseguire il fork, inserisci un titolo per la nuova discussione e fai clic su Fork Discussione",
     "fork_no_pids": "Nessun post selezionato!",
     "no-posts-selected": "Nessun post selezionato!",
     "x-posts-selected": "%1 post selezionato(i)",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Nuovo titolo per la discussione",
     "topic-id": "ID discussione",
     "move_posts_instruction": "Clicca sui post da spostare, poi inserisci l'ID della discussione o vai alla discussione di destinazione",
+    "move_topic_instruction": "Seleziona la categoria di destinazione e fai clic su sposta",
     "change_owner_instruction": "Clicca sui post che vuoi assegnare ad un altro utente",
     "composer.title_placeholder": "Inserisci qui il titolo della discussione...",
     "composer.handle_placeholder": "Inserisci qui il tuo nome/nome utente ospite",
+    "composer.hide": "Nascondi",
     "composer.discard": "Annulla",
     "composer.submit": "Invia",
     "composer.additional-options": "Opzioni aggiuntive",
+    "composer.post-later": "Post successivo",
     "composer.schedule": "Pianifica",
     "composer.replying_to": "Rispondendo a %1",
     "composer.new_topic": "Nuova Discussione",
@@ -184,5 +201,7 @@
     "last-post": "Ultimo post",
     "go-to-my-next-post": "Vai al mio prossimo post",
     "no-more-next-post": "Non hai più post in questa discussione",
-    "post-quick-reply": "Invia una risposta rapida"
+    "post-quick-reply": "Risposta rapida",
+    "navigator.index": "Post %1 di %2",
+    "navigator.unread": "%1 non letto"
 }
\ No newline at end of file
diff --git a/public/language/it/user.json b/public/language/it/user.json
index d9055d7618..b2e09c4fbf 100644
--- a/public/language/it/user.json
+++ b/public/language/it/user.json
@@ -43,6 +43,7 @@
     "followers": "Da chi è seguito",
     "following": "Chi segue",
     "blocks": "Blocchi",
+    "blocked-users": "Utenti bloccati",
     "block_toggle": "Gestisci blocco",
     "block_user": "Blocca utente",
     "unblock_user": "Sblocca utente",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Carica una nuova foto",
     "upload_new_picture_from_url": "Carica nuova immagine da URL",
     "current_password": "Password corrente",
+    "new_password": "Nuova password",
     "change_password": "Cambia la Password",
     "change_password_error": "Password non valida!",
     "change_password_error_wrong_current": "La tua password corrente non è corretta!",
@@ -115,6 +117,8 @@
     "paginate_description": "Non utilizzare lo scroll infinito per discussioni e messaggi",
     "topics_per_page": "Discussioni per Pagina",
     "posts_per_page": "Post per Pagina",
+    "category-topic-sort": "Ordinamento discussione categoria",
+    "topic-post-sort": "Ordinamento post discussione",
     "max_items_per_page": "Massimo %1",
     "acp_language": "Lingua pagina Admin",
     "notifications": "Notifiche",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Nota di moderazione salvata",
     "info.moderation-note.add": "Aggiungi nota",
     "sessions.description": "Questa pagina ti permette di vedere tutte le sessioni attive nel forum ed eventualmente revocarle. Puoi revocare la tua sessione disconnettendoti dal tuo account.",
+    "revoke-session": "Revoca sessione",
+    "browser-version-on-platform": "%1 %2 su %3",
     "consent.title": "I tuoi dati personali",
     "consent.lead": "Questo forum raccoglie ed elabora i tuoi dati personali.",
     "consent.intro": "Utilizziamo queste informazioni per personalizzare rigorosamente la tua esperienza in questa comunità, così come per associare i post che fai dal tuo account utente. Durante la fase di registrazione ti è stato chiesto di fornire un nome utente e un indirizzo e-mail, è anche possibile fornire informazioni aggiuntive per completare il tuo profilo utente su questo sito web.<br /><br />Conserviamo queste informazioni per la durata del tuo account utente e puoi ritirare il consenso in qualsiasi momento cancellando il tuo account. In qualsiasi momento è possibile richiedere una copia del proprio contributo a questo sito web, tramite la pagina I tuoi dati personali.<br /><br />Se hai domande o dubbi, ti invitiamo a contattare il team amministrativo di questo forum.",
diff --git a/public/language/it/users.json b/public/language/it/users.json
index c843ef0433..387ff153fa 100644
--- a/public/language/it/users.json
+++ b/public/language/it/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "Tutti gli utenti",
     "latest_users": "Ultimi Utenti",
     "top_posters": "Utenti più attivi",
     "most_reputation": "Reputazione più alta",
     "most_flags": "Più segnalati",
     "search": "Cerca",
     "enter_username": "Inserisci il nome utente da cercare",
-    "search-user-for-chat": "Cerca un utente per iniziare la chat",
+    "search-user-for-chat": "Cerca un utente per avviare la chat:",
     "load_more": "Carica di più",
     "users-found-search-took": "%1 utente(i) trovato! La ricerca ha impiegato %2 secondi.",
     "filter-by": "Filtra per",
diff --git a/public/language/ja/admin/admin.json b/public/language/ja/admin/admin.json
index a6ae3d96f6..c354d0291f 100644
--- a/public/language/ja/admin/admin.json
+++ b/public/language/ja/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1| NodeBB管理画面",
 	"settings-header-contents": "コンテンツ",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/ja/admin/appearance/customise.json b/public/language/ja/admin/appearance/customise.json
index 0c3f036726..2fcb519cb8 100644
--- a/public/language/ja/admin/appearance/customise.json
+++ b/public/language/ja/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/ja/admin/dashboard.json b/public/language/ja/admin/dashboard.json
index b21cbb4cc2..1f4f26d5b5 100644
--- a/public/language/ja/admin/dashboard.json
+++ b/public/language/ja/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/ja/admin/extend/widgets.json b/public/language/ja/admin/extend/widgets.json
index 4a847ba11e..121fd495a0 100644
--- a/public/language/ja/admin/extend/widgets.json
+++ b/public/language/ja/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "なし",
 	"container.well": "十分",
 	"container.jumbotron": "ジャンボトロン",
-	"container.panel": "パネル",
-	"container.panel-header": "パネルヘッダー",
-	"container.panel-body": "パネル本体",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "警告",
 
 	"alert.confirm-delete": "このウィジェットを削除してもよろしいですか?",
diff --git a/public/language/ja/admin/manage/groups.json b/public/language/ja/admin/manage/groups.json
index 96fe72abb7..eb01720856 100644
--- a/public/language/ja/admin/manage/groups.json
+++ b/public/language/ja/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "元に戻す",
 
 	"edit.no-users-found": "ユーザーが見つかりません",
-	"edit.confirm-remove-user": "このユーザーを削除してもよろしいですか?",
-	"edit.save-success": "設定を保存しました。"
+	"edit.confirm-remove-user": "このユーザーを削除してもよろしいですか?"
 }
\ No newline at end of file
diff --git a/public/language/ja/admin/manage/privileges.json b/public/language/ja/admin/manage/privileges.json
index 8b9ce40a8e..857fbec2fe 100644
--- a/public/language/ja/admin/manage/privileges.json
+++ b/public/language/ja/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/ja/admin/settings/api.json b/public/language/ja/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/ja/admin/settings/api.json
+++ b/public/language/ja/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/ja/admin/settings/navigation.json b/public/language/ja/admin/settings/navigation.json
index f3d7c35e87..a0ad2436f1 100644
--- a/public/language/ja/admin/settings/navigation.json
+++ b/public/language/ja/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "新しいウィンドウで開く",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "削除",
 	"btn.disable": "無効",
diff --git a/public/language/ja/admin/settings/user.json b/public/language/ja/admin/settings/user.json
index dcd8a4edaf..6d15cf9b20 100644
--- a/public/language/ja/admin/settings/user.json
+++ b/public/language/ja/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "日",
 	"session-time-seconds": "秒",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "ユーザーが非アクティブと見なされてからの分数",
 	"online-cutoff-help": "この期間中にユーザーが何も操作を行わなかった場合、非アクティブと見なされ、リアルタイムの更新を受け取れません",
 	"registration": "ユーザー登録",
diff --git a/public/language/ja/error.json b/public/language/ja/error.json
index 3b32ccc35d..731ffa5ccf 100644
--- a/public/language/ja/error.json
+++ b/public/language/ja/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "ゲストさんからのアップを無効にしています",
     "cors-error": "CORSの設定が誤っているため、画像をアップロードできません",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "あなたのメンバーシップの要求が既に提出されました",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "この投稿が既に削除されました",
     "post-already-restored": "この投稿が既に復元されました",
     "topic-already-deleted": "このスレッドは既に削除されました",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/ja/flags.json b/public/language/ja/flags.json
index 5e2924c7d1..fdf1724ffe 100644
--- a/public/language/ja/flags.json
+++ b/public/language/ja/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "おめでとう!フラグは見つかりませんでした。",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "譲受人",
 	"update": "更新",
 	"updated": "更新されました",
 	"resolved": "Resolved",
 	"target-purged": "このフラグが参照しているコンテンツは切り離されており、利用できません。",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "クイックフィルター",
 	"filter-active": "このフラグのリストには1つまたは複数のフィルタが有効です。",
 	"filter-reset": "フィルターを削除",
 	"filters": "フィルターオプション",
-	"filter-reporterId": "報告者のユーザーID",
-	"filter-targetUid": "フラグを立てたユーザーID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "フラグの種類",
 	"filter-type-all": "すべてのコンテンツ",
 	"filter-type-post": "投稿",
 	"filter-type-user": "User",
 	"filter-state": "状態",
-	"filter-assignee": "譲受人のユーザーID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "カテゴリ",
 	"filter-quick-mine": "私に割り当てられました",
 	"filter-cid-all": "全てのカテゴリ",
@@ -45,6 +47,7 @@
 
 	"notes": "ノートにフラグをつける",
 	"add-note": "ノートを追加",
+	"edit-note": "Edit Note",
 	"no-notes": "共有ノートはありません。",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/ja/global.json b/public/language/ja/global.json
index 5803512829..fa5bc1e160 100644
--- a/public/language/ja/global.json
+++ b/public/language/ja/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "閉じる",
     "403.title": "アクセス拒否",
     "403.message": "アクセス権限が無いページを閲覧しようとしています。",
-    "403.login": "権限を持っている場合は<a href='%1/login'>ログイン</a>すると閲覧出来ます。",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "見つかりません",
-    "404.message": "あなたは存在してないページを訪問してます。<a href='%1/'>ホームページ</a>に戻ります。",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "内部エラー",
     "500.message": "何か問題が発生しているようです。",
     "400.title": "無効なリクエスト",
-    "400.message": "このリンクは不正な形式と思われます。ダブルクリックで再度お試し下さい。または<a href='%1/'>ホームページ</a>に戻ります。",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "登録",
     "login": "ログイン",
     "please_log_in": "ログインください",
@@ -37,9 +37,13 @@
     "header.notifications": "通知",
     "header.search": "検索",
     "header.profile": "プロフィール",
+    "header.account": "Account",
     "header.navigation": "ナビゲーション",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "通知をロード中",
     "chats.loading": "チャットをロード中",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "次世代の掲示板システムNodeBBへようこそ!",
     "previouspage": "前のページ",
     "nextpage": "次のページ",
@@ -54,7 +58,8 @@
     "users": "ユーザー",
     "topics": "スレッド",
     "posts": "投稿",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "ベスト",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "評価",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "続きを読む",
     "more": "詳しく",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 が%2に投稿",
     "guest_posted_ago": "ゲストが%1に投稿",
     "last_edited_by": "最後に編集した時間%1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "最近の投稿はありません",
     "norecenttopics": "最近のスレッドはありません",
     "recentposts": "最近の投稿",
     "recentips": "最近ログインしたIPアドレス",
     "moderator_tools": "モデレーターツール",
+    "status": "Status",
     "online": "オンライン",
     "away": "退席中",
     "dnd": "取り込み中",
@@ -122,5 +130,7 @@
     "edited": "編集されました",
     "disabled": "無効",
     "select": "選択",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/ja/groups.json b/public/language/ja/groups.json
index 24ea04d538..422119f336 100644
--- a/public/language/ja/groups.json
+++ b/public/language/ja/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "グループ",
+    "members": "Members",
     "view_group": "グループを閲覧",
     "owner": "グループ管理人",
     "new_group": "新しいグループを作成",
diff --git a/public/language/ja/modules.json b/public/language/ja/modules.json
index 5873c2e698..b247130d91 100644
--- a/public/language/ja/modules.json
+++ b/public/language/ja/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "とチャット",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "送信",
     "chat.no_active": "チャットはありません。",
     "chat.user_typing": "%1 が入力中 ...",
@@ -42,6 +46,7 @@
     "composer.compose": "構成",
     "composer.show_preview": "プレビュー表示",
     "composer.hide_preview": "プレビュー非表示",
+    "composer.help": "Help",
     "composer.user_said_in": "%2で%1が発言 :",
     "composer.user_said": "%1 の発言:",
     "composer.discard": "本当にこの投稿を破棄しても構いませんか?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "キャンセル",
     "bootbox.confirm": "確認",
diff --git a/public/language/ja/pages.json b/public/language/ja/pages.json
index e75f73c21a..9212375d92 100644
--- a/public/language/ja/pages.json
+++ b/public/language/ja/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1のブックマークされた投稿",
     "account/settings": "ユーザー設定",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": " %1がスレッドをウォッチ済みに設定しました",
     "account/ignored": "%1がスレッドを無視済みに設定しました",
     "account/upvoted": "%1が投稿を高評価しました",
diff --git a/public/language/ja/post-queue.json b/public/language/ja/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/ja/post-queue.json
+++ b/public/language/ja/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/ja/recent.json b/public/language/ja/recent.json
index 57aed3f560..0124dbc1bd 100644
--- a/public/language/ja/recent.json
+++ b/public/language/ja/recent.json
@@ -7,13 +7,5 @@
     "alltime": "全て",
     "no_recent_topics": "最近のスレッドはありません。",
     "no_popular_topics": "人気スレッドはありません。",
-    "there-is-a-new-topic": "新しいスレッドがあります。",
-    "there-is-a-new-topic-and-a-new-post": "新しいスレッドと投稿があります。",
-    "there-is-a-new-topic-and-new-posts": "新しいスレッドと%1件の投稿があります。",
-    "there-are-new-topics": "新しいスレッドが%1個あります。",
-    "there-are-new-topics-and-a-new-post": "新しいスレッドがと投稿が%1件あります。",
-    "there-are-new-topics-and-new-posts": "新しいスレッドが%1件、新しい投稿が%2件あります。",
-    "there-is-a-new-post": "新しい投稿があります。",
-    "there-are-new-posts": "新しい投稿が%1件あります。",
-    "click-here-to-reload": "ここを押して、更新します。"
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/ja/register.json b/public/language/ja/register.json
index 926f1db44f..606ad8b161 100644
--- a/public/language/ja/register.json
+++ b/public/language/ja/register.json
@@ -1,5 +1,6 @@
 {
     "register": "登録",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "登録をキャンセル",
     "help.email": "初期設定ではメールアドレスは公開されません。",
     "help.username_restrictions": "%1から%2 文字までのユニークなユーザー名.ツイッター(twitter)の@<span id='yourUsername'>username</span> 方式でメンションすることができます。",
diff --git a/public/language/ja/search.json b/public/language/ja/search.json
index bc2452a386..0a8d37c618 100644
--- a/public/language/ja/search.json
+++ b/public/language/ja/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 件の結果(s) キーワード \"%2\", (検索時間 %3 秒)",
     "no-matches": "見つかりませんでした",
     "advanced-search": "高度な検索",
     "in": "検索範囲",
-    "titles": "タイトル",
-    "titles-posts": "タイトルと投稿",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "投稿者:",
-    "in-categories": "カテゴリ",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "チャイルドカテゴリを検索する",
     "has-tags": "タグあり",
     "reply-count": "返信数",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "最低",
     "at-most": "一番",
     "relevance": "妥当性",
+    "time": "Time",
     "post-time": "投稿時間",
     "votes": "Votes",
     "newer-than": "より新しい",
@@ -28,7 +48,22 @@
     "three-months": "3ヶ月",
     "six-months": "6ヶ月",
     "one-year": "1年",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "並び替え",
+    "sort": "Sort",
     "last-reply-time": "最後の返信時間",
     "topic-title": "スレッドのタイトル",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "カテゴリ",
     "descending": "降順",
     "ascending": "昇順",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "設定を保存",
     "clear-preferences": "設定をクリア",
     "search-preferences-saved": "検索設定は保存されました",
     "search-preferences-cleared": "検索設定をクリア",
     "show-results-as": "結果を表示",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/ja/social.json b/public/language/ja/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/ja/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/ja/tags.json b/public/language/ja/tags.json
index 139e95c2dc..8d9dfe3bf5 100644
--- a/public/language/ja/tags.json
+++ b/public/language/ja/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "このタグに関連するスレッドはありません。",
+    "no-tags-found": "No tags found",
     "tags": "タグ",
     "enter_tags_here": "ここにタグを入力します。一つのタグが%1から%2までの文字にして下さい。",
     "enter_tags_here_short": "タグを入れます…",
diff --git a/public/language/ja/topic.json b/public/language/ja/topic.json
index 9d9fd211c9..8430c2f0c8 100644
--- a/public/language/ja/topic.json
+++ b/public/language/ja/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "IPをコピー",
     "ban-ip": "IPをBan",
     "view-history": "履歴を編集",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "ここをクリックすると、このスレッドの最後に読んでいた投稿へ移動します。",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "スレッドを切り離します",
     "thread_tools.purge_confirm": "本当にこのスレッドを切り離しますか?",
     "thread_tools.merge_topics": "トピックを置き換える",
-    "thread_tools.merge": "置き換え",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "投稿を移動しました!",
     "fork_topic": "スレッドをフォーク",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "フォークしたい投稿をクリックして",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "投稿が選択されていません!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "スレッドのタイトルを入力...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "破棄する",
     "composer.submit": "保存する",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "%1へ返答中",
     "composer.new_topic": "新規スレッド",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/ja/user.json b/public/language/ja/user.json
index 06431706de..d8f3263af7 100644
--- a/public/language/ja/user.json
+++ b/public/language/ja/user.json
@@ -43,6 +43,7 @@
     "followers": "フォロワー",
     "following": "フォロー中",
     "blocks": "ブロックの設定",
+    "blocked-users": "Blocked users",
     "block_toggle": "ブロックを切替",
     "block_user": "ユーザーをブロック",
     "unblock_user": "ブロックを解除",
@@ -68,6 +69,7 @@
     "upload_new_picture": "新しい画像をアップロード",
     "upload_new_picture_from_url": "URLにより新しい写真をアップします",
     "current_password": "現在のパスワード",
+    "new_password": "New Password",
     "change_password": "パスワードを変更",
     "change_password_error": "無効のパスワード!",
     "change_password_error_wrong_current": "現在のパスワードは正しくありません!",
@@ -115,6 +117,8 @@
     "paginate_description": "無限スクロールの代わりに、投稿やスレッドをページ別で切り替える。",
     "topics_per_page": "ページごとのスレッド数",
     "posts_per_page": "ページごとの投稿数",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "最大 %1",
     "acp_language": "ページ言語の管理",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "モデレーションは保存されませんでした",
     "info.moderation-note.add": "ノートに追加",
     "sessions.description": "このページでは、このフォーラムでアクティブなセッションを表示し、必要に応じてそれらを取り消すことができます。あなたのアカウントからログアウトすることによって自分のセッションを取り消すことができます。",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "あなたの権利&amp; 同意",
     "consent.lead": "このコミュニティフォーラムはあなたの個人情報を収集し処理します。",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/ja/users.json b/public/language/ja/users.json
index 364128e16b..73c4096d1d 100644
--- a/public/language/ja/users.json
+++ b/public/language/ja/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "新しいユーザー",
     "top_posters": "最も投稿したユーザー",
     "most_reputation": "最も評価されたユーザー",
     "most_flags": "最も多いフラグ",
     "search": "検索",
     "enter_username": "ユーザー名を入力",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "もっと見る",
     "users-found-search-took": "%1人のユーザーを見つけました!(検索まで%2秒掛かりました。)",
     "filter-by": "フィルタ",
diff --git a/public/language/ko/admin/admin.json b/public/language/ko/admin/admin.json
index 2e48cacd43..8f68581166 100644
--- a/public/language/ko/admin/admin.json
+++ b/public/language/ko/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB 관리자 제어판",
 	"settings-header-contents": "컨텐츠",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/ko/admin/appearance/customise.json b/public/language/ko/admin/appearance/customise.json
index 95ed139400..8b8a1e2511 100644
--- a/public/language/ko/admin/appearance/customise.json
+++ b/public/language/ko/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "사용자 정의 CSS/LESS ",
-	"custom-css.description": "사용자 정의 CSS/LESS 코드를 입력하세요. 모든 스타일 다음에 적용됩니다.",
-	"custom-css.enable": "사용자 정의 CSS/LESS 활성화",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "사용자 정의 Javascript",
 	"custom-js.description": "사용자 정의 Javascript를 넣으세요. 페이지 로딩이 완료된 후 실행됩니다.",
diff --git a/public/language/ko/admin/dashboard.json b/public/language/ko/admin/dashboard.json
index aee85929ae..87ef63264a 100644
--- a/public/language/ko/admin/dashboard.json
+++ b/public/language/ko/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "대시보드로 돌아가기",
 	"details.no-users": "설정한 기간에 가입한 사용자 없음",
 	"details.no-topics": "설정한 기간에 생성된 화제 없음",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "설정한 기간에 로그인 기록 없음",
 	"details.logins-static": "NodeBB는 세션 정보를 %1일 동안만 저장합니다. 따라서 아래의 표는 최근 활성화된 세션 정보만을 표시합니다.",
-	"details.logins-login-time": "로그인 시점"
+	"details.logins-login-time": "로그인 시점",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/ko/admin/extend/widgets.json b/public/language/ko/admin/extend/widgets.json
index 13bc81e659..61dc8383f9 100644
--- a/public/language/ko/admin/extend/widgets.json
+++ b/public/language/ko/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "없음",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "제어판",
-	"container.panel-header": "제어판 헤더",
-	"container.panel-body": "제어판 몸통",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "경고",
 
 	"alert.confirm-delete": "정말 이 위젯을 삭제하시겠습니까?",
diff --git a/public/language/ko/admin/manage/groups.json b/public/language/ko/admin/manage/groups.json
index 56e8a75f51..f16766a0d9 100644
--- a/public/language/ko/admin/manage/groups.json
+++ b/public/language/ko/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "되돌리기",
 
 	"edit.no-users-found": "사용자를 찾을 수 없습니다.",
-	"edit.confirm-remove-user": "이 멤버를 추방하시겠습니까?",
-	"edit.save-success": "변경 사항을 저장했습니다!"
+	"edit.confirm-remove-user": "이 멤버를 추방하시겠습니까?"
 }
\ No newline at end of file
diff --git a/public/language/ko/admin/manage/privileges.json b/public/language/ko/admin/manage/privileges.json
index e150a7dee6..be83f9124f 100644
--- a/public/language/ko/admin/manage/privileges.json
+++ b/public/language/ko/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>해당 그룹에 조정 권한을 주려는 게 확실하십니까?</strong> 이 그룹은 공개 그룹이기 때문에 특별한 제한 없이 모든 사용자들이 가입할 수 있습니다.",
 	"alert.confirm-admins-mods": "<strong>해당 그룹에 &quot;관리 &amp; 조정&quot; 권한을 주려는 게 확실하십니까?</strong> 해당 권한이 있는 그룹의 사용자들은 다른 조정자를 추가하거나 조정 권한을 해제할 수 있습니다. <em>최고 관리자를 포함!</em>",
 	"alert.confirm-save": "권한을 적용하기 전 다시 한번 확인해주세요.",
-	"alert.saved": "변경된 권한이 적용되었습니다.",
 	"alert.confirm-discard": "권한 변경을 취소하시겠습니까?",
 	"alert.discarded": "권한 변경이 취소되었습니다.",
 	"alert.confirm-copyToAll": "<strong>%1</strong>의 설정을 <strong>모든 카테고리</strong>에 적용하시겠습니까?",
diff --git a/public/language/ko/admin/settings/api.json b/public/language/ko/admin/settings/api.json
index 81affcdb80..af6c41071f 100644
--- a/public/language/ko/admin/settings/api.json
+++ b/public/language/ko/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "이 토큰과 연결할 User ID를 지정하세요. User ID가 <code>0</code>일 경우 <em>master</em> 토큰으로 간주되어 다른 사용자의 정보를 <code>_uid</code> 패러미터를 통해 알 수 있게 됩니다.",
 	"description": "설명",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "설명 없음",
 	"token-on-save": "현재 설정 저장 후 토큰 생성"
 }
\ No newline at end of file
diff --git a/public/language/ko/admin/settings/navigation.json b/public/language/ko/admin/settings/navigation.json
index 6c6f584c78..cd2ce253db 100644
--- a/public/language/ko/admin/settings/navigation.json
+++ b/public/language/ko/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "그룹:",
 	"open-new-window": "새 창에서 열기",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "삭제",
 	"btn.disable": "비활성화",
diff --git a/public/language/ko/admin/settings/user.json b/public/language/ko/admin/settings/user.json
index ac9db811b2..30faa2b48d 100644
--- a/public/language/ko/admin/settings/user.json
+++ b/public/language/ko/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "일",
 	"session-time-seconds": "초",
 	"session-time-help": "사용자가 &quot;로그인 유지&quot; 항목을 활성화할 경우 해당 수치만큼 사용자의 로그인 상태를 유지합니다. 다음 값들 중 한 가지를 사용합니다. <i>초</i>에 해당되는 값이 없을 경우 <i>일</i>에 해당되는 값을 적용하고, <i>일</i>에 해당되는 값도 없을 경우 기본값인 <i>14일</i>을 적용합니다.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "사용자를 비접속 상태로 간주할 시간 (분)",
 	"online-cutoff-help": "해당 시간동안 사용자의 행동이 없을 경우 비접속 상태로 간주하고 실시간 업데이트를 적용하지 않습니다.",
 	"registration": "회원가입",
diff --git a/public/language/ko/error.json b/public/language/ko/error.json
index a022e1531e..2f36eb91c9 100644
--- a/public/language/ko/error.json
+++ b/public/language/ko/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "비회원의 파일 업로드는 제한되어 있습니다.",
     "cors-error": "잘못 구성된 CORS로 인해 이미지를 업로드 할 수 없습니다.",
     "upload-ratelimit-reached": "한 번에 너무 많은 파일을 업로드하셨습니다. 나중에 다시 시도해주세요.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "내일 이후의 날짜를 선택해주세요.",
     "invalid-schedule-date": "적합한 형식의 날짜와 시간을 입력해주세요.",
     "cant-pin-scheduled": "예약된 화제는 상단에 고정(해제)할 수 없습니다.",
@@ -134,6 +135,8 @@
     "group-already-requested": "가입 요청이 이미 제출되었습니다.",
     "group-join-disabled": "현재 이 그룹에 가입할 수 없습니다.",
     "group-leave-disabled": "현재 이 그룹을 떠날 수 없습니다.",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "이미 삭제된 포스트입니다.",
     "post-already-restored": "이미 복원된 포스트입니다.",
     "topic-already-deleted": "이미 삭제된 화제입니다.",
@@ -224,5 +227,6 @@
     "api.429": "요청이 너무 많습니다. 나중에 다시 시도하십시오.",
     "api.500": "요청을 처리하는 동안 예기치 않은 오류가 발생했습니다.",
     "api.501": "호출하려는 경로가 아직 구현되지 않았습니다. 내일 다시 시도하십시오.",
-    "api.503": "서버 구성으로 인해 호출하려는 경로를 현재 사용할 수 없습니다."
+    "api.503": "서버 구성으로 인해 호출하려는 경로를 현재 사용할 수 없습니다.",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/ko/flags.json b/public/language/ko/flags.json
index 0db0148ada..b062ac9c96 100644
--- a/public/language/ko/flags.json
+++ b/public/language/ko/flags.json
@@ -3,25 +3,27 @@
 	"reports": "보고",
 	"first-reported": "최초 보고",
 	"no-flags": "만세! 들어온 신고가 없습니다.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "담당자",
 	"update": "업데이트",
 	"updated": "업데이트 완료",
 	"resolved": "해결됨",
 	"target-purged": "해당 신고된 컨텐츠는 완전 삭제 되었으며, 더 이상 존재하지 않습니다.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "일일 신고",
 	"quick-filters": "간편 필터",
 	"filter-active": "해당 신고 목록에 하나 이상의 필터가 적용되었습니다.",
 	"filter-reset": "필터 제거",
 	"filters": "필터 옵션",
-	"filter-reporterId": "신고자 ID",
-	"filter-targetUid": "신고된 글 ID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "신고 유형",
 	"filter-type-all": "모든 컨텐츠",
 	"filter-type-post": "포스트",
 	"filter-type-user": "사용자",
 	"filter-state": "처리 상태",
-	"filter-assignee": "담당자 ID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "카테고리",
 	"filter-quick-mine": "나에게 배정된 신고",
 	"filter-cid-all": "모든 카테고리",
@@ -45,6 +47,7 @@
 
 	"notes": "관리자 메모",
 	"add-note": "메모 추가",
+	"edit-note": "Edit Note",
 	"no-notes": "공유된 메모가 없습니다.",
 	"delete-note-confirm": "이 메모를 삭제하시겠습니까?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/ko/global.json b/public/language/ko/global.json
index efe647adcb..de14a61d47 100644
--- a/public/language/ko/global.json
+++ b/public/language/ko/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "닫기",
     "403.title": "접근이 거부되었습니다.",
     "403.message": "권한이 없는 페이지에 접속을 시도하였습니다.",
-    "403.login": "<a href='%1/login'>로그인</a> 되어 있는지 확인해주세요.",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "페이지를 찾을 수 없습니다.",
-    "404.message": "존재하지 않는 페이지에 접근하였습니다. <a href='%1/'>홈 페이지</a>로 이동합니다.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "내부 오류",
     "500.message": "이런! 알 수 없는 오류가 발생했습니다!",
     "400.title": "잘못된 요청",
-    "400.message": "해당 링크는 잘못된 형식입니다. 다시 한번 확인 후 시도해 주십시오. 아니면 <a href='%1/'>홈페이지</a>로 이동합니다. ",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "회원가입",
     "login": "로그인",
     "please_log_in": "로그인 해주세요.",
@@ -37,9 +37,13 @@
     "header.notifications": "알림",
     "header.search": "검색",
     "header.profile": "프로필",
+    "header.account": "Account",
     "header.navigation": "바로가기",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "알림을 불러오는 중입니다.",
     "chats.loading": "대화를 불러오는 중입니다.",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "NodeBB에 오신 것을 환영합니다.",
     "previouspage": "이전 페이지",
     "nextpage": "다음 페이지",
@@ -54,7 +58,8 @@
     "users": "사용자",
     "topics": "화제",
     "posts": "포스트",
-    "x-posts": "%1 포스트",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "베스트",
     "controversial": "Controversial",
     "votes": "투표",
@@ -69,6 +74,7 @@
     "reputation": "인지도",
     "lastpost": "최근 포스트",
     "firstpost": "첫 포스트",
+    "about": "About",
     "read_more": "더 보기",
     "more": "더 보기",
     "none": "없음",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1님이 %2에 작성했습니다.",
     "guest_posted_ago": "비회원이 %1에 작성했습니다.",
     "last_edited_by": "%1님이 마지막으로 수정했습니다.",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "최근 작성된 포스트가 없습니다.",
     "norecenttopics": "최근 작성된 화제가 없습니다.",
     "recentposts": "최근 포스트",
     "recentips": "최근 접속 IP",
     "moderator_tools": "조정 도구",
+    "status": "Status",
     "online": "온라인",
     "away": "자리 비움",
     "dnd": "방해 금지",
@@ -122,5 +130,7 @@
     "edited": "수정되었습니다.",
     "disabled": "비활성화",
     "select": "선택",
-    "user-search-prompt": "사용자를 찾기 위해 여기에 검색어를 입력하십시오..."
+    "user-search-prompt": "사용자를 찾기 위해 여기에 검색어를 입력하십시오...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/ko/groups.json b/public/language/ko/groups.json
index 71a9ffb9f4..b171be9315 100644
--- a/public/language/ko/groups.json
+++ b/public/language/ko/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "그룹",
+    "members": "Members",
     "view_group": "그룹 보기",
     "owner": "그룹 관리자",
     "new_group": "새로운 그룹 생성",
diff --git a/public/language/ko/modules.json b/public/language/ko/modules.json
index b62472aa1f..b5eccc4e41 100644
--- a/public/language/ko/modules.json
+++ b/public/language/ko/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "채팅",
     "chat.placeholder": "여기에 메시지를 쓰고, 이미지를 드래그 앤 드롭하고, Enter를 눌러 보내세요!",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "오래된 메시지를 보고 있습니다. 여기를 눌러 최신 메시지로 이동하세요.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "전송",
     "chat.no_active": "활성화된 채팅이 없습니다.",
     "chat.user_typing": "%1님이 입력 중...",
@@ -42,6 +46,7 @@
     "composer.compose": "작성",
     "composer.show_preview": "미리보기",
     "composer.hide_preview": "미리보기 숨김",
+    "composer.help": "Help",
     "composer.user_said_in": "%1님이 %2에서 보낸 메세지:",
     "composer.user_said": "%1님의 메세지:",
     "composer.discard": "정말 이 포스트를 삭제하시겠습니까?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "시간",
     "composer.cancel-scheduling": "예약 취소",
     "composer.set-schedule-date": "날짜 설정",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "확인",
     "bootbox.cancel": "취소",
     "bootbox.confirm": "확인",
diff --git a/public/language/ko/pages.json b/public/language/ko/pages.json
index 5694735898..899a3c78e2 100644
--- a/public/language/ko/pages.json
+++ b/public/language/ko/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1님의 관심 카테고리",
     "account/bookmarks": "%1님의 즐겨찾기 포스트",
     "account/settings": "사용자 설정",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "%1님의 관심 화제",
     "account/ignored": "%1님이 무시 중인 화제",
     "account/upvoted": "%1님이 추천한 포스트",
diff --git a/public/language/ko/post-queue.json b/public/language/ko/post-queue.json
index 3d26027b42..131fd3936e 100644
--- a/public/language/ko/post-queue.json
+++ b/public/language/ko/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "게시 대기열",
-	"description": "게시 대기열에 글이 없습니다. <br> 이 기능을 활성화하기 위해서는 <a href=\"%1\">설정 &rarr; 포스트 &rarr; 게시 대기열</a>로 이동해서 <strong>게시 대기열</strong> 기능을 활성화해주세요.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "사용자",
+	"when": "When",
 	"category": "카테고리",
 	"title": "제목",
 	"content": "내용",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/ko/recent.json b/public/language/ko/recent.json
index 4e6e6b4cb3..d28744fc12 100644
--- a/public/language/ko/recent.json
+++ b/public/language/ko/recent.json
@@ -7,13 +7,5 @@
     "alltime": "전체",
     "no_recent_topics": "최근 생성된 화제가 없습니다.",
     "no_popular_topics": "인기 화제가 없습니다.",
-    "there-is-a-new-topic": "새로운 화제가 있습니다.",
-    "there-is-a-new-topic-and-a-new-post": "새로운 화제와 포스트가 있습니다.",
-    "there-is-a-new-topic-and-new-posts": "새로운 화제와 %1개의 포스트가 있습니다.",
-    "there-are-new-topics": "새로운 %1개의 화제가 있습니다.",
-    "there-are-new-topics-and-a-new-post": "새로운 %1개의 화제와 포스트가 있습니다.",
-    "there-are-new-topics-and-new-posts": "새로운 %1개의 화제와 %2개의 포스트가 있습니다.",
-    "there-is-a-new-post": "새로운 포스트가 있습니다.",
-    "there-are-new-posts": "새로운 %1개의 포스트가 있습니다.",
-    "click-here-to-reload": "여기를 클릭해서 새로고침하세요."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/ko/register.json b/public/language/ko/register.json
index f9249dfbb5..ce8b34b0d2 100644
--- a/public/language/ko/register.json
+++ b/public/language/ko/register.json
@@ -1,5 +1,6 @@
 {
     "register": "회원가입",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "회원가입 취소",
     "help.email": "입력하신 이메일 주소는 공개되지 않으며, 설정을 통해 공개하실 수 있습니다.",
     "help.username_restrictions": "%1자 이상 %2자 이하의 고유한 사용자명을 입력하세요. @<span id='yourUsername'>username</span> 같은 방식으로 다른 사람들을 언급할 수 있습니다.",
diff --git a/public/language/ko/search.json b/public/language/ko/search.json
index 56f4e1fe4d..1897d1dcbc 100644
--- a/public/language/ko/search.json
+++ b/public/language/ko/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "\"%2\"와 일치하는 %1개의 결과를 찾았습니다 (검색시간: %3초)",
     "no-matches": "일치하는 결과가 없습니다.",
     "advanced-search": "고급 검색",
     "in": "검색 기준",
-    "titles": "제목",
-    "titles-posts": "제목과 내용",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "일치단어순",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "전체",
     "any": "아무거나",
     "posted-by": "작성자",
-    "in-categories": "카테고리 지정",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "하위 카테고리 포함 검색",
     "has-tags": "태그 검색",
     "reply-count": "답글 수",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "최소",
     "at-most": "최대",
     "relevance": "관련성",
+    "time": "Time",
     "post-time": "작성일",
     "votes": "추천",
     "newer-than": "이후",
@@ -28,7 +48,22 @@
     "three-months": "3개월",
     "six-months": "6개월",
     "one-year": "1년",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "정렬 기준",
+    "sort": "Sort",
     "last-reply-time": "최근 답글 작성 시간",
     "topic-title": "게시물 제목",
     "topic-votes": "게시물 투표",
@@ -39,11 +74,36 @@
     "category": "게시판",
     "descending": "내림차순",
     "ascending": "오름차순",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "설정 저장",
     "clear-preferences": "설정 초기화",
     "search-preferences-saved": "검색 설정 저장 완료",
     "search-preferences-cleared": "검색 설정 초기화",
     "show-results-as": "검색 결과 표시 방법",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "더 많은 결과 (%1)",
     "search-in-category": "\"%1\"에서 검색"
 }
\ No newline at end of file
diff --git a/public/language/ko/social.json b/public/language/ko/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/ko/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/ko/tags.json b/public/language/ko/tags.json
index 4ef8d46d26..74aa65c1e7 100644
--- a/public/language/ko/tags.json
+++ b/public/language/ko/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "이 태그가 달린 게시물이 없습니다.",
+    "no-tags-found": "No tags found",
     "tags": "태그 목록",
     "enter_tags_here": "%1에서 %2자 안으로 태그를 입력하세요.",
     "enter_tags_here_short": "태그 입력...",
diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json
index ebb4fc90f2..b5e25326f8 100644
--- a/public/language/ko/topic.json
+++ b/public/language/ko/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "IP 복사",
     "ban-ip": "IP 차단",
     "view-history": "편집 기록",
-    "locked-by": "잠금한 사용자:",
-    "unlocked-by": "잠금 해제한 사용자:",
-    "pinned-by": "상단 고정한 사용자:",
-    "unpinned-by": "상단 고정을 해제한 사용자:",
-    "deleted-by": "삭제한 사용자:",
-    "restored-by": "복원한 사용자:",
-    "moved-from-by": "%1에서 이동됨 -",
-    "queued-by": "게시 승인 대기 중 &rarr;",
-    "backlink": "참조 -",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "이 쓰레드에서 읽은 마지막 포스트로 이동하려면 여기를 클릭 하세요.",
     "flag-post": "해당 포스트 신고",
     "flag-user": "해당 유저 신고",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "화제 완전 삭제",
     "thread_tools.purge_confirm": "이 화제를 완전히 삭제하시겠습니까?",
     "thread_tools.merge_topics": "화제 병합",
-    "thread_tools.merge": "병합",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "이 화제는 잠시 후에 \"%1\"로 옮겨집니다. 여기를 눌러 취소하세요.",
     "topic_move_multiple_success": "이 화제들은 잠시 후에 \"%1\"로 옮겨집니다. 여기를 눌러 취소하세요.",
     "topic_move_all_success": "모든 화제가 잠시 후에 \"%1\"로 옮겨집니다. 여기를 눌러 취소하세요.",
@@ -121,7 +135,7 @@
     "post_moved": "포스트 이동 완료!",
     "fork_topic": "화제 분리",
     "enter-new-topic-title": "새로운 화제 제목 입력",
-    "fork_topic_instruction": "분리할 포스트를 선택하세요.",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "선택된 포스트가 없습니다.",
     "no-posts-selected": "선택된 포스트가 없습니다!",
     "x-posts-selected": "%1개의 포스트 선택됨",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "변경할 제목",
     "topic-id": "화제 ID",
     "move_posts_instruction": "옮길 포스트를 선택하고 목표 화제의 ID를 입력하거나 해당 화제로 직접 이동하세요.",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "다른 사용자에게 할당할 포스트를 선택하세요.",
     "composer.title_placeholder": "화제 제목을 입력하세요.",
     "composer.handle_placeholder": "이름을 입력하세요.",
+    "composer.hide": "Hide",
     "composer.discard": "취소",
     "composer.submit": "등록",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "예약",
     "composer.replying_to": "'%1'에 대한 답글",
     "composer.new_topic": "새 화제 생성",
@@ -184,5 +201,7 @@
     "last-post": "마지막 포스트",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "빠른 답글"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/ko/user.json b/public/language/ko/user.json
index 0e6f32e9c3..eb63a63956 100644
--- a/public/language/ko/user.json
+++ b/public/language/ko/user.json
@@ -43,6 +43,7 @@
     "followers": "팔로워",
     "following": "팔로잉",
     "blocks": "차단",
+    "blocked-users": "Blocked users",
     "block_toggle": "차단 전환",
     "block_user": "사용자 차단",
     "unblock_user": "사용자 차단 해제",
@@ -68,6 +69,7 @@
     "upload_new_picture": "새 사진 업로드",
     "upload_new_picture_from_url": "URL을 통해 새 사진 업로드",
     "current_password": "현재 비밀번호",
+    "new_password": "New Password",
     "change_password": "비밀번호 변경",
     "change_password_error": "올바르지 않은 비밀번호입니다!",
     "change_password_error_wrong_current": "현재 비밀번호가 일치하지 않습니다!",
@@ -115,6 +117,8 @@
     "paginate_description": "주제와 게시물을 페이지로 정리 (기본: 무한 스크롤)",
     "topics_per_page": "페이지 당 화제 수",
     "posts_per_page": "페이지 당 포스트 수",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "최대 %1 ",
     "acp_language": "관리 페이지 언어",
     "notifications": "알림",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "관리자 메모 저장 완료",
     "info.moderation-note.add": "메모 추가",
     "sessions.description": "이 페이지에서는 이 포럼의 모든 활성 세션을 보고 필요할 경우 취소할 수 있습니다. 계정에서 로그아웃하여 자신의 세션을 취소할 수 있습니다.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "권리 동의",
     "consent.lead": "이 커뮤니티 포럼은 사용자의 개인 정보를 수집하고 처리합니다.",
     "consent.intro": "포럼은 이 정보를 엄격히 관리하며 커뮤니티에서 사용자의 행동을 개인화하고 게시물과 계정을 연동하는데 사용합니다. 회원가입 단계에서 사용자 이름과 전자 메일 주소를 제공하도록 요청 받은 경우 이 웹사이트에서 사용자 프로필을 완료하는데 필요한 추가 정보를 선택적으로 제공할 수도 있습니다.<br /><br />저희는 사용자의 계정이 삭제되기 전까지 이 정보를 보관하며, 사용자는 계정을 삭제하여 언제든지 동의를 철회할 수 있습니다. 또한 언제든지 권리 및 동의 페이지를 통해 이 웹 사이트에 대한 기여도 사본을 요청할 수 있습니다.<br /><br />문의사항은 이 포럼의 관리 팀에 연락 바랍니다.",
diff --git a/public/language/ko/users.json b/public/language/ko/users.json
index 10fc8c116b..050f7b5bcf 100644
--- a/public/language/ko/users.json
+++ b/public/language/ko/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "최근가입순",
     "top_posters": "작성글순",
     "most_reputation": "인지도순",
     "most_flags": "신고순",
     "search": "검색",
     "enter_username": "검색할 사용자명을 입력하세요.",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "더 보기",
     "users-found-search-took": "%1명의 사용자를 찾았습니다. 검색 소요 시간 %2초",
     "filter-by": "필터 기준",
diff --git a/public/language/lt/admin/admin.json b/public/language/lt/admin/admin.json
index dcc3bc91b7..aafa59d8c2 100644
--- a/public/language/lt/admin/admin.json
+++ b/public/language/lt/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Control Panel",
 	"settings-header-contents": "Contents",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/lt/admin/appearance/customise.json b/public/language/lt/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/lt/admin/appearance/customise.json
+++ b/public/language/lt/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/lt/admin/dashboard.json b/public/language/lt/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/lt/admin/dashboard.json
+++ b/public/language/lt/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/lt/admin/extend/widgets.json b/public/language/lt/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/lt/admin/extend/widgets.json
+++ b/public/language/lt/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/lt/admin/manage/groups.json b/public/language/lt/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/lt/admin/manage/groups.json
+++ b/public/language/lt/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/lt/admin/manage/privileges.json b/public/language/lt/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/lt/admin/manage/privileges.json
+++ b/public/language/lt/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/lt/admin/menu.json b/public/language/lt/admin/menu.json
index 379e0b2687..9c156d6ec7 100644
--- a/public/language/lt/admin/menu.json
+++ b/public/language/lt/admin/menu.json
@@ -8,7 +8,7 @@
 	"section-general": "General",
 
 	"section-manage": "Manage",
-	"manage/categories": "Categories",
+	"manage/categories": "Kategorijos",
 	"manage/privileges": "Privileges",
 	"manage/tags": "Tags",
 	"manage/users": "Users",
@@ -27,7 +27,7 @@
 	"settings/reputation": "Reputation & Flags",
 	"settings/email": "Email",
 	"settings/user": "Users",
-	"settings/group": "Groups",
+	"settings/group": "Grupės",
 	"settings/guest": "Guests",
 	"settings/uploads": "Uploads",
 	"settings/languages": "Languages",
diff --git a/public/language/lt/admin/settings/api.json b/public/language/lt/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/lt/admin/settings/api.json
+++ b/public/language/lt/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/lt/admin/settings/guest.json b/public/language/lt/admin/settings/guest.json
index 75d44f37e4..f29ece3218 100644
--- a/public/language/lt/admin/settings/guest.json
+++ b/public/language/lt/admin/settings/guest.json
@@ -1,5 +1,5 @@
 {
-	"settings": "Settings",
+	"settings": "Nustatymai",
 	"handles.enabled": "Allow guest handles",
 	"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
 	"topic-views.enabled": "Allow guests to increase topic view counts",
diff --git a/public/language/lt/admin/settings/navigation.json b/public/language/lt/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/lt/admin/settings/navigation.json
+++ b/public/language/lt/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/lt/admin/settings/user.json b/public/language/lt/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/lt/admin/settings/user.json
+++ b/public/language/lt/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/lt/email.json b/public/language/lt/email.json
index 0a19bac268..6b505399b7 100644
--- a/public/language/lt/email.json
+++ b/public/language/lt/email.json
@@ -5,7 +5,7 @@
     "invite": "Pakvietimas nuo %1",
     "greeting_no_name": "Sveiki",
     "greeting_with_name": "Sveiki %1",
-    "email.verify-your-email.subject": "Please verify your email",
+    "email.verify-your-email.subject": "Patvirtinkite el. pašto adresą",
     "email.verify.text1": "You've requested that we change or confirm your email address",
     "email.verify.text2": "For security purposes, we only change or confirm the email address on file once its ownership has been confirmed via email. <strong>If you did not request this, no action is required on your part.</strong>",
     "email.verify.text3": "Once you confirm this email address, we will replace your current email address with this one (%1).",
diff --git a/public/language/lt/error.json b/public/language/lt/error.json
index 2c1cd68afe..6bde6e9cc9 100644
--- a/public/language/lt/error.json
+++ b/public/language/lt/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Failų įkėlimas svečiams išjungtas",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Jūsų prašymas dėl narystes jau buvo pateiktas",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Šis įrašas jau buvo ištrintas",
     "post-already-restored": "Šis įrašas jau atstatytas",
     "topic-already-deleted": "Ši tema jau ištrinta",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/lt/flags.json b/public/language/lt/flags.json
index c506a1a994..1d3f6efc64 100644
--- a/public/language/lt/flags.json
+++ b/public/language/lt/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Atnaujinti",
 	"updated": "Atnaujinta",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "Visas turinys",
 	"filter-type-post": "Pranešimas",
 	"filter-type-user": "Vartotojas",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/lt/global.json b/public/language/lt/global.json
index 00a6bde041..acf9baae99 100644
--- a/public/language/lt/global.json
+++ b/public/language/lt/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Uždaryti",
     "403.title": "Prieiga negalima",
     "403.message": "Matosi užklupai į ta puslapį kur neturi tam tikrų teisių jį peržiūrėti",
-    "403.login": "Tikriausiai tu turėtum <a href='%1/login'>pabandyt prisijungt</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Nerasta",
-    "404.message": "Pasirodo sėdi puslapyje kurio net nėra. Grįžk į <a href='%1/'>namų puslapį</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Internal Error.",
     "500.message": "Oops! Atrodo, kad kažkas nutiko!",
     "400.title": "Bad Request.",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registruotis",
     "login": "Prisijungti",
     "please_log_in": "Prašome prisijungti",
@@ -37,9 +37,13 @@
     "header.notifications": "Pranešimai",
     "header.search": "Ieškoti",
     "header.profile": "Profilis",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Įkeliami pranešimai",
     "chats.loading": "Įkeliami susirašinėjimai",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Sveiki atvykę į NodeBB- ateities diskusijų platformą.",
     "previouspage": "Ankstesnis puslapis",
     "nextpage": "Kitas puslapis",
@@ -54,7 +58,8 @@
     "users": "Vartotojai",
     "topics": "Temos",
     "posts": "Pranešimai",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Best",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Reputacija",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "skaityti plačiau",
     "more": "Daugiau",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 parašė %2",
     "guest_posted_ago": "Svečias parašė %1",
     "last_edited_by": "last edited by %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Paskutinių pranešimų nėra.",
     "norecenttopics": "Paskutinių temų nėra",
     "recentposts": "Paskutiniai pranešimai",
     "recentips": "Paskutiniai prisijungimų IP adresai",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Prisijungęs",
     "away": "Pasišalinęs",
     "dnd": "Do not disturb",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/lt/groups.json b/public/language/lt/groups.json
index fc4f6291c4..194e5bd8a6 100644
--- a/public/language/lt/groups.json
+++ b/public/language/lt/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupės",
+    "members": "Members",
     "view_group": "Grupės peržiūra",
     "owner": "Grupės savininkas",
     "new_group": "Kurti naują grupę",
diff --git a/public/language/lt/modules.json b/public/language/lt/modules.json
index c9e20e68ec..5c4c0ca651 100644
--- a/public/language/lt/modules.json
+++ b/public/language/lt/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Siųsti",
     "chat.no_active": "Jūs neturite aktyvių susirašinėjimų.",
     "chat.user_typing": "%1 dabar rašo...",
@@ -42,6 +46,7 @@
     "composer.compose": "Sukomponuoti",
     "composer.show_preview": "Rodyti pavyzdį",
     "composer.hide_preview": "Slėpti pavyzdį",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 parašė į %2:",
     "composer.user_said": "%1 parašė:",
     "composer.discard": "Ar tikrai norite sunaikinti šį pranešimą?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancel",
     "bootbox.confirm": "Confirm",
diff --git a/public/language/lt/pages.json b/public/language/lt/pages.json
index a1f10b4416..71b054808a 100644
--- a/public/language/lt/pages.json
+++ b/public/language/lt/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "Vartotojo nustatymai",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Temos stebimos %1",
     "account/ignored": "Temos ignoruojamos %1",
     "account/upvoted": "Posts upvoted by %1",
diff --git a/public/language/lt/post-queue.json b/public/language/lt/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/lt/post-queue.json
+++ b/public/language/lt/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/lt/recent.json b/public/language/lt/recent.json
index bebb9353fa..1c6a8c1d4b 100644
--- a/public/language/lt/recent.json
+++ b/public/language/lt/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Per visą laiką",
     "no_recent_topics": "Paskutinių temų nėra",
     "no_popular_topics": "Populiarių temų nėra.",
-    "there-is-a-new-topic": "Yra nauja tema.",
-    "there-is-a-new-topic-and-a-new-post": "Yra nauja tema ir naujas įrašas.",
-    "there-is-a-new-topic-and-new-posts": "Yra nauja tema ir %1 nauji įrašai.",
-    "there-are-new-topics": "Yra %1 naujos temos.",
-    "there-are-new-topics-and-a-new-post": "Yra %1 naujos temos ir naujas įrašas.",
-    "there-are-new-topics-and-new-posts": "Yra %1 naujos temos ir %2 nauji įrašai.",
-    "there-is-a-new-post": "Yra naujas įrašas.",
-    "there-are-new-posts": "Yra %1 naujas pranešimas.",
-    "click-here-to-reload": "Spauskite čia norėdami perkrauti."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/lt/register.json b/public/language/lt/register.json
index 28698ba604..f50dbb0c8c 100644
--- a/public/language/lt/register.json
+++ b/public/language/lt/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registruotis",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "Pagal nutylėjimą, jūsų el. paštas nebus viešai matomas.",
     "help.username_restrictions": "Unikalus vartotojo vardas %1-%2 simbolių ilgio. Kiti vartotojai galės jus minėti @<span id='yourUsername'>vartotojas</span>.",
diff --git a/public/language/lt/search.json b/public/language/lt/search.json
index 32f1c16731..18629e21f5 100644
--- a/public/language/lt/search.json
+++ b/public/language/lt/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 rezultatas(ai) atitinka \"%2\", (%3 sekundes)",
     "no-matches": "Atitikmenų nerasta",
     "advanced-search": "Išplėstinė paieška",
     "in": "Į",
-    "titles": "Antraštės",
-    "titles-posts": "Antraštės ir įrašai",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Parašė",
-    "in-categories": "Kategorijose",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Ieškoti vaikų kategorijas",
     "has-tags": "Has tags",
     "reply-count": "Atsakymų skaičiavimas",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Mažiausiai",
     "at-most": "Daugiausia",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Įrašo laikas",
     "votes": "Votes",
     "newer-than": "Naujesni kaip",
@@ -28,7 +48,22 @@
     "three-months": "Trys mėnesiai",
     "six-months": "Šeši mėnesiai",
     "one-year": "Vieneri metai",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Rūšiuoti pagal",
+    "sort": "Sort",
     "last-reply-time": "Paskutinis atsakymo laikas",
     "topic-title": "Temos pavadinimas",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Kategorija",
     "descending": "Mažėjančia tvarka",
     "ascending": "Didėjančia tvarka",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Išsaugoti nustatymus",
     "clear-preferences": "Išvalyti nustatymus",
     "search-preferences-saved": "Paieškos nustatymai išsaugoti",
     "search-preferences-cleared": "Paieškos nuostatos išvalytos",
     "show-results-as": "Rodyti rezultatus kaip",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/lt/social.json b/public/language/lt/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/lt/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/lt/tags.json b/public/language/lt/tags.json
index 0ed13c37b6..0fb63862f9 100644
--- a/public/language/lt/tags.json
+++ b/public/language/lt/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Temų su šią žyma nėra.",
+    "no-tags-found": "No tags found",
     "tags": "Žymos",
     "enter_tags_here": "Įveskite žymas čia, tarp %1 ir %2 simbolių kiekvienam",
     "enter_tags_here_short": "Įveskite žymas...",
diff --git a/public/language/lt/topic.json b/public/language/lt/topic.json
index 18c6539c0c..47d52fee70 100644
--- a/public/language/lt/topic.json
+++ b/public/language/lt/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Blokuoti IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Click here to return to the last read post in this thread.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Išvalyti temą",
     "thread_tools.purge_confirm": "Ar tikrai norite išvalyti šią temą?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Pranešimas perkeltas!",
     "fork_topic": "Išskaidyti temą",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Pažymėkite ant įrašų, kuriuos norite perkelti į naują temą",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Nepasirinktas joks įrašas!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Įrašykite temos pavadinimą...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Atšaukti",
     "composer.submit": "Patvirtinti",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Atsakymas %1",
     "composer.new_topic": "Nauja tema",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/lt/user.json b/public/language/lt/user.json
index cadb36a6e9..bc9f4d282a 100644
--- a/public/language/lt/user.json
+++ b/public/language/lt/user.json
@@ -43,6 +43,7 @@
     "followers": "Sekėjai",
     "following": "Seka",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Įkelti naują paveikslėlį",
     "upload_new_picture_from_url": "Įkelti naują paveikslėlį iš URL",
     "current_password": "Dabartinis slaptažodis",
+    "new_password": "New Password",
     "change_password": "Pakeisti slaptažodį",
     "change_password_error": "Negalimas slaptažodis!",
     "change_password_error_wrong_current": "Jūsų dabartinis slaptažodis neteisingas!",
@@ -115,6 +117,8 @@
     "paginate_description": "Puslapiavimas  temų ir pranešimų, vietoj kad naudoti judėjimą su pelytė į viršų ir į apačia",
     "topics_per_page": "Temų puslapyje",
     "posts_per_page": "Pranešimų puslapyje",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Administratoriaus puslapio kalba",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Pridėti pastabą",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "Šis bendruomenės forumas renka ir apdoroja jūsų asmeninę informaciją.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/lt/users.json b/public/language/lt/users.json
index ed03628baf..9a42f0b79f 100644
--- a/public/language/lt/users.json
+++ b/public/language/lt/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Paskutiniai vartotojai",
     "top_posters": "Geriausi autoriai",
     "most_reputation": "Didžiausia reputacija",
     "most_flags": "Most Flags",
     "search": "Ieškoti",
     "enter_username": "Įrašykite vartotojo vardą paieškai",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Įkelti daugiau",
     "users-found-search-took": "Rasta %1 vartotojas(-ai)! Paieška užtruko %2 sekundes.",
     "filter-by": "Filtruoti pagal",
diff --git a/public/language/lv/admin/admin.json b/public/language/lv/admin/admin.json
index d79f1dcb61..81c7fedf10 100644
--- a/public/language/lv/admin/admin.json
+++ b/public/language/lv/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB administrācijas vadības panelis",
 	"settings-header-contents": "Saturs",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/lv/admin/appearance/customise.json b/public/language/lv/admin/appearance/customise.json
index e6471aff70..1e83290b3b 100644
--- a/public/language/lv/admin/appearance/customise.json
+++ b/public/language/lv/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Pielāgotais CSS/LESS",
-	"custom-css.description": "Šeit ievadi savas CSS / LESS deklarācijas, kuras piemēros pēc visiem citiem stiliem.",
-	"custom-css.enable": "Iespējot pielāgotu CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Pielāgotais Javascript",
 	"custom-js.description": "Šeit ievadi savu javascript. Tas tiks palaists pēc lapas pilnīgas ielādes.",
diff --git a/public/language/lv/admin/dashboard.json b/public/language/lv/admin/dashboard.json
index 076694b4ca..dcd2f2a3b0 100644
--- a/public/language/lv/admin/dashboard.json
+++ b/public/language/lv/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/lv/admin/extend/widgets.json b/public/language/lv/admin/extend/widgets.json
index 399d5ec12b..601a7a42c0 100644
--- a/public/language/lv/admin/extend/widgets.json
+++ b/public/language/lv/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Nav",
 	"container.well": "Labi",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panelis",
-	"container.panel-header": "Paneļa galvene",
-	"container.panel-body": "Paneļa korpuss",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Brīdinājums",
 
 	"alert.confirm-delete": "Vai tiešām vēlies izdzēst šo logrīku?",
diff --git a/public/language/lv/admin/manage/groups.json b/public/language/lv/admin/manage/groups.json
index c4bc9be2e4..5a8bce0ab1 100644
--- a/public/language/lv/admin/manage/groups.json
+++ b/public/language/lv/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Atgriezties",
 
 	"edit.no-users-found": "Nav lietotāju",
-	"edit.confirm-remove-user": "Vai tiešām vēlies izdzēst šo lietotāju?",
-	"edit.save-success": "Izmaiņas saglabātas"
+	"edit.confirm-remove-user": "Vai tiešām vēlies izdzēst šo lietotāju?"
 }
\ No newline at end of file
diff --git a/public/language/lv/admin/manage/privileges.json b/public/language/lv/admin/manage/privileges.json
index 60ba5996f2..de3d8a804f 100644
--- a/public/language/lv/admin/manage/privileges.json
+++ b/public/language/lv/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/lv/admin/settings/api.json b/public/language/lv/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/lv/admin/settings/api.json
+++ b/public/language/lv/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/lv/admin/settings/navigation.json b/public/language/lv/admin/settings/navigation.json
index b4327584a4..e7b28d2d2b 100644
--- a/public/language/lv/admin/settings/navigation.json
+++ b/public/language/lv/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Grupas:",
 	"open-new-window": "Rādīt jaunā logā",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Izdzēst",
 	"btn.disable": "Atspējot",
diff --git a/public/language/lv/admin/settings/user.json b/public/language/lv/admin/settings/user.json
index 9a3d3d0c7d..fbcb918546 100644
--- a/public/language/lv/admin/settings/user.json
+++ b/public/language/lv/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Dienas",
 	"session-time-seconds": "Sekundes",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minūtes, pēc kura lietotājs tiek uzskatīts par neaktīvu",
 	"online-cutoff-help": "Ja lietotājs šajā laikā neveic nekādas darbības, tas tiek uzskatīts par neaktīvu un nesaņem reāllaika atjauninājumus.",
 	"registration": "Reģistrācija",
diff --git a/public/language/lv/error.json b/public/language/lv/error.json
index f9129b8a56..4d0dbf67f8 100644
--- a/public/language/lv/error.json
+++ b/public/language/lv/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Viesu failu augšupielāde ir atspējota",
     "cors-error": "Neizdevās augšupielādēt bildi nepareizo CORS iestatījumu dēļ",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Tavs biedru pieteikums jau ir iesniegts",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Raksts jau ir izdzēsts",
     "post-already-restored": "Raksts jau ir atjaunots",
     "topic-already-deleted": "Temats jau ir izdzēsts",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/lv/flags.json b/public/language/lv/flags.json
index 45d04d7dc6..e11024e07b 100644
--- a/public/language/lv/flags.json
+++ b/public/language/lv/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Labi! Nav atzīmju.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Piešķirtais",
 	"update": "Atjaunot",
 	"updated": "Atjaunots",
 	"resolved": "Resolved",
 	"target-purged": "Saturs, uz kā attiecas atzīme, ir iztīrīts un vairs nav pieejams.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Ātrie filtri",
 	"filter-active": "Atzīmju sarakstā ir aktīvs viens vai vairāki filtri",
 	"filter-reset": "Noņemt filtrus",
 	"filters": "Filtrēšanas opcijas",
-	"filter-reporterId": "Ziņotāja UID",
-	"filter-targetUid": "Atzīmētā raksta UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Atzīmes veids",
 	"filter-type-all": "Viss saturs",
 	"filter-type-post": "Raksts",
 	"filter-type-user": "Lietotājs",
 	"filter-state": "Stāvoklis",
-	"filter-assignee": "Piešķirtā UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategorija",
 	"filter-quick-mine": "Piešķirts man",
 	"filter-cid-all": "Visas kategorijas",
@@ -45,6 +47,7 @@
 
 	"notes": "Atzīmju piezīmes",
 	"add-note": "Pievienot piezīmi",
+	"edit-note": "Edit Note",
 	"no-notes": "Nav kopīgu piezīmju.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/lv/global.json b/public/language/lv/global.json
index 85848c8caf..d0e0b03a92 100644
--- a/public/language/lv/global.json
+++ b/public/language/lv/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Aizvērt",
     "403.title": "Piekļuve liegta",
     "403.message": "Šķiet, ka esi uznācis uz lapu, kurai Tev nav piekļuves.",
-    "403.login": "Varbūt Tev vajadzētu <a href='%1/login'>mēģināt ielogoties</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Nav atrasts",
-    "404.message": "Šķiet, ka esi uznācis uz lapu, kura neeksistē. Atgriezies <a href='%1/'>sākumlapā</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Iekšēja kļūda.",
     "500.message": "Hmm... Izskatās, ka kaut kas noticis nepareizi!",
     "400.title": "Nepareizs pieprasījums.",
-    "400.message": "Šķiet, ka šī saite ir nepareiza, lūdzu, pārbaudi un mēģini vēlreiz. Pretējā gadījumā atgriezies <a href='%1/'>sākumlapā</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Reģistrēties",
     "login": "Ielogoties",
     "please_log_in": "Lūdzu, ielogoties",
@@ -37,9 +37,13 @@
     "header.notifications": "Paziņojumi",
     "header.search": "Meklēt",
     "header.profile": "Profils",
+    "header.account": "Account",
     "header.navigation": "Navigācija",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Ielādē paziņojumus",
     "chats.loading": "Ielādē sarunas",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Sveicināts NodeBB, nākotnes diskusiju platformā.",
     "previouspage": "Iepriekšējā lapa",
     "nextpage": "Nākamā lapa",
@@ -54,7 +58,8 @@
     "users": "Lietotāji",
     "topics": "Temati",
     "posts": "Raksti",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Labākie",
     "controversial": "Controversial",
     "votes": "Balsojumi",
@@ -69,6 +74,7 @@
     "reputation": "Ranga punkti",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "lasīt vairāk",
     "more": "Vairāk",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 publicēja %2",
     "guest_posted_ago": "Viesis publicēja %1",
     "last_edited_by": "pēdējoreiz rediģējis %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Nav nesenu rakstu",
     "norecenttopics": "Nav neseno tematu",
     "recentposts": "Nesenie raksti",
     "recentips": "Nesen lietotās IP adreses",
     "moderator_tools": "Moderatora rīki",
+    "status": "Status",
     "online": "Klāt",
     "away": "Projām",
     "dnd": "Netraucējams",
@@ -122,5 +130,7 @@
     "edited": "Rediģētie",
     "disabled": "Atspējotie",
     "select": "Atlasīt",
-    "user-search-prompt": "Ieraksti kaut ko šeit, lai meklētu lietotājus..."
+    "user-search-prompt": "Ieraksti kaut ko šeit, lai meklētu lietotājus...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/lv/groups.json b/public/language/lv/groups.json
index 1cfc699bb1..7690cfda5f 100644
--- a/public/language/lv/groups.json
+++ b/public/language/lv/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupas",
+    "members": "Members",
     "view_group": "Skatīt grupas",
     "owner": "Grupas īpašnieks",
     "new_group": "Izveidot jaunu grupu",
diff --git a/public/language/lv/modules.json b/public/language/lv/modules.json
index 95eeb481cd..f91d57bb86 100644
--- a/public/language/lv/modules.json
+++ b/public/language/lv/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Sarunāties ar",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Nosūtīt",
     "chat.no_active": "Nav aktīvo sarunu.",
     "chat.user_typing": "%1 raksta...",
@@ -42,6 +46,7 @@
     "composer.compose": "Rediģēt",
     "composer.show_preview": "Rādīt priekšskatu",
     "composer.hide_preview": "Slēpt priekšskatu",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 sacīja %2:",
     "composer.user_said": "%1 sacīja:",
     "composer.discard": "Vai tiešām vēlies atmest šo rakstu?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "Labi",
     "bootbox.cancel": "Atcelt",
     "bootbox.confirm": "Apstiprināt",
diff --git a/public/language/lv/pages.json b/public/language/lv/pages.json
index 03d8154b8c..560e102b9a 100644
--- a/public/language/lv/pages.json
+++ b/public/language/lv/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1 novērotās kategorijas",
     "account/bookmarks": "%1 atzīmētie raksti",
     "account/settings": "Lietotāja iestatījumi",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Temati, kurus %1 novēro",
     "account/ignored": "Temati, kurus %1 ignorē",
     "account/upvoted": "%1 balsojis \"par\"",
diff --git a/public/language/lv/post-queue.json b/public/language/lv/post-queue.json
index 79979823fb..0dbb39d1d2 100644
--- a/public/language/lv/post-queue.json
+++ b/public/language/lv/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Rakstu apstiprināšanas rinda",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Lietotājs",
+	"when": "When",
 	"category": "Kategorija",
 	"title": "Virsraksts",
 	"content": "Saturs",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/lv/recent.json b/public/language/lv/recent.json
index 9187e1ca49..7704c5c7e9 100644
--- a/public/language/lv/recent.json
+++ b/public/language/lv/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Visu laiku",
     "no_recent_topics": "Nav neseno tematu.",
     "no_popular_topics": "Nav populāro tematu.",
-    "there-is-a-new-topic": "Ir jauns temats.",
-    "there-is-a-new-topic-and-a-new-post": "Ir jauns temats un jauns raksts.",
-    "there-is-a-new-topic-and-new-posts": "Ir jauns temats un %1 jauni raksti.",
-    "there-are-new-topics": "Ir %1 jauni temati.",
-    "there-are-new-topics-and-a-new-post": "Ir %1 jauni temati un jauns raksts.",
-    "there-are-new-topics-and-new-posts": "Ir %1 jauni temati un %2 jauni raksti.",
-    "there-is-a-new-post": "Ir jauns raksts.",
-    "there-are-new-posts": "Ir %1 jauni raksti.",
-    "click-here-to-reload": "Noklikšķini, lai pārlādētu."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/lv/register.json b/public/language/lv/register.json
index 3a48e2235a..a207cb70c0 100644
--- a/public/language/lv/register.json
+++ b/public/language/lv/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Reģistrēties",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Atcelt reģistrācijas pieteikumu",
     "help.email": "Pēc noklusējuma Tava e-pasta adrese nebūs redzama ārpus NodeBB.",
     "help.username_restrictions": "Unikāls lietotājvārds starp %1 un %2 rakstzīmēm. Citi var pieminēt Tevi izmantojot @<span id='yourUsername'>lietotājvārds</span>.",
diff --git a/public/language/lv/search.json b/public/language/lv/search.json
index 8db217d04b..e40b5c7e3e 100644
--- a/public/language/lv/search.json
+++ b/public/language/lv/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 rezultāts(-i), kas atbilst \"%2\", (%3 sekundes)",
     "no-matches": "Sakritības nav atrastas",
     "advanced-search": "Meklēt izvērsti",
     "in": "Kur",
-    "titles": "Nosaukumos",
-    "titles-posts": "Nosaukumos un rakstos",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Meklēt vārdus",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Visus",
     "any": "Jebkurus",
     "posted-by": "Publicējis",
-    "in-categories": "Kategorijās",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Meklēt apakškategorijas",
     "has-tags": "Ar birkām",
     "reply-count": "Atbilžu skaits",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Vismaz",
     "at-most": "Ne vairāk kā",
     "relevance": "Pēc atbilstības",
+    "time": "Time",
     "post-time": "Publicēšanas datums",
     "votes": "Balsojumi",
     "newer-than": "Jaunāks nekā",
@@ -28,7 +48,22 @@
     "three-months": "Trīs mēneši",
     "six-months": "Seši mēneši",
     "one-year": "Viens gads",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Kārtošana",
+    "sort": "Sort",
     "last-reply-time": "Pēc pēdējās atbildes laika",
     "topic-title": "Pēc temata nosaukuma",
     "topic-votes": "Tematu balsojumi",
@@ -39,11 +74,36 @@
     "category": "Pēc kategorijas",
     "descending": "Dilstošā secībā",
     "ascending": "Augošā secībā",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Saglabāt izvēles",
     "clear-preferences": "Notīrīt izvēles",
     "search-preferences-saved": "Meklēšanas izvēles saglabātas",
     "search-preferences-cleared": "Meklēšanas izvēles notīrītas",
     "show-results-as": "Rādīt rezultātus kā",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/lv/social.json b/public/language/lv/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/lv/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/lv/tags.json b/public/language/lv/tags.json
index d52ec26718..d9b9b9ce0f 100644
--- a/public/language/lv/tags.json
+++ b/public/language/lv/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Nav neviena temata ar šo birku",
+    "no-tags-found": "No tags found",
     "tags": "Birkas",
     "enter_tags_here": "Ievadīt birkas, katrai starp %1 un %2 rakstzīmēm",
     "enter_tags_here_short": "Ievadīt birkas...",
diff --git a/public/language/lv/topic.json b/public/language/lv/topic.json
index abe07301fe..55894a2bfa 100644
--- a/public/language/lv/topic.json
+++ b/public/language/lv/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Kopēt IP adresi",
     "ban-ip": "Bloķēt IP adresi",
     "view-history": "Rediģēšanas vēsture",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Noklikšķināt, lai atgrieztos pēdējā lasītā rakstā šajā pavedienā.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Iztīrīt tematu",
     "thread_tools.purge_confirm": "Vai tiešām vēlies iztīrīt šo tematu?",
     "thread_tools.merge_topics": "Apvienot tematus",
-    "thread_tools.merge": "Apvienot tematus",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Raksts pārvietots!",
     "fork_topic": "Nozarot tematu",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Noklikšķini uz rakstiem, kurus nozarot",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Nav atlasīto rakstu!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Ievadīt temata virsrakstu...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Atmest",
     "composer.submit": "Publicēt",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Atbild %1",
     "composer.new_topic": "Izveidot jaunu tematu",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/lv/user.json b/public/language/lv/user.json
index 554e5d3737..7d571082d1 100644
--- a/public/language/lv/user.json
+++ b/public/language/lv/user.json
@@ -43,6 +43,7 @@
     "followers": "Man seko",
     "following": "Es sekoju",
     "blocks": "Bloķētie",
+    "blocked-users": "Blocked users",
     "block_toggle": "Pārslēgt bloķēto",
     "block_user": "Bloķēt lietotāju",
     "unblock_user": "Atbloķēt lietotāju",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Augšupielādēt bildi",
     "upload_new_picture_from_url": "Augšupielādēt bildi no URL",
     "current_password": "Pašreizējā parole",
+    "new_password": "New Password",
     "change_password": "Mainīt paroli",
     "change_password_error": "Nederīga parole!",
     "change_password_error_wrong_current": "Pašreizējā parole nav pareiza!",
@@ -115,6 +117,8 @@
     "paginate_description": "Tematus un rakstus dalīt pa vairākām lapām un nelikt visus vienā",
     "topics_per_page": "Tematu skaits lapā",
     "posts_per_page": "Rakstu skaits lapā",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "maksimāli %1",
     "acp_language": "Administrācijas lapu valoda",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderatora piezīmes saglabātas",
     "info.moderation-note.add": "Pievienot piezīmi",
     "sessions.description": "Skatīt jebkuras aktīvās sesijas šajā forumā un vajadzības gadījumā kādu atsaukt. Atcelt šo pašu sesiju, izlogojoties no sava konta.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Tiesības &amp; piekrišana",
     "consent.lead": "Šis forums apkopo un apstrādā Tavu personisko informāciju.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/lv/users.json b/public/language/lv/users.json
index 5dd31dec5a..0e0d279373 100644
--- a/public/language/lv/users.json
+++ b/public/language/lv/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Jaunākie lietotāji",
     "top_posters": "Visvairāk rakstu",
     "most_reputation": "Visvairāk ranga punktu",
     "most_flags": "Visvairāk atzīmju",
     "search": "Meklēt",
     "enter_username": "Meklējamais lietotājvārds",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Ielādēt vairāk",
     "users-found-search-took": "Atrasti %1 lietotājs(-i)! Meklēšana ilga %2 sekundes.",
     "filter-by": "Filtrēt pēc",
diff --git a/public/language/ms/admin/admin.json b/public/language/ms/admin/admin.json
index 8762610c5d..2d1cc65fa4 100644
--- a/public/language/ms/admin/admin.json
+++ b/public/language/ms/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Panel Kawalan dan Kendalian NodeBB",
 	"settings-header-contents": "Isi",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/ms/admin/appearance/customise.json b/public/language/ms/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/ms/admin/appearance/customise.json
+++ b/public/language/ms/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/ms/admin/dashboard.json b/public/language/ms/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/ms/admin/dashboard.json
+++ b/public/language/ms/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/ms/admin/extend/widgets.json b/public/language/ms/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/ms/admin/extend/widgets.json
+++ b/public/language/ms/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/ms/admin/manage/groups.json b/public/language/ms/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/ms/admin/manage/groups.json
+++ b/public/language/ms/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/ms/admin/manage/privileges.json b/public/language/ms/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/ms/admin/manage/privileges.json
+++ b/public/language/ms/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/ms/admin/settings/api.json b/public/language/ms/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/ms/admin/settings/api.json
+++ b/public/language/ms/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/ms/admin/settings/navigation.json b/public/language/ms/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/ms/admin/settings/navigation.json
+++ b/public/language/ms/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/ms/admin/settings/user.json b/public/language/ms/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/ms/admin/settings/user.json
+++ b/public/language/ms/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/ms/error.json b/public/language/ms/error.json
index e7c9319fc5..088b229f7f 100644
--- a/public/language/ms/error.json
+++ b/public/language/ms/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Tetamu tidak dibenarkan memuatnaik fail",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Permintaan anda untuk menjadi telah pun dihantar",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Kiriman ini telah dipadam",
     "post-already-restored": "Kiriman ini telah dipulihkan",
     "topic-already-deleted": "Topik ini telah dipadam",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/ms/flags.json b/public/language/ms/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/ms/flags.json
+++ b/public/language/ms/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/ms/global.json b/public/language/ms/global.json
index fb5d0a418c..17d072b672 100644
--- a/public/language/ms/global.json
+++ b/public/language/ms/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Tutup",
     "403.title": "Akses dinafikan",
     "403.message": "Anda tidak mempunyai kebenaran untuk melihat halaman ini",
-    "403.login": "Mungkin anda boleh <a href='%1/login'>cuba log masuk</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "tidak dijumpai",
-    "404.message": "Halaman yang diminta tidak wujud. Kembali ke <a href='%1/'>halaman utama</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Internal Error.",
     "500.message": "Oops! Macam ada yang tidak kena",
     "400.title": "Bad Request.",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Daftar",
     "login": "Log Masuk",
     "please_log_in": "Sila log masuk",
@@ -37,9 +37,13 @@
     "header.notifications": "Pemberitahuan",
     "header.search": "Cari",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigasi",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Pemberitahuan sedang dimuatkan",
     "chats.loading": "Sembang sedang dimuatkan",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Selamat datang ke NodeBB, platfom perbincangan masa hadapan",
     "previouspage": "Laman sebelum",
     "nextpage": "Laman berikut",
@@ -54,7 +58,8 @@
     "users": "Pengguna",
     "topics": "Topik",
     "posts": "Kiriman",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Best",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Reputasi",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "baca lagi",
     "more": "Lagi",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 mengirim %2",
     "guest_posted_ago": "Pelawat mengirim %1",
     "last_edited_by": "last edited by %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Tiada kiriman terkini",
     "norecenttopics": "Tiada topik terkini",
     "recentposts": "Kiriman terkini",
     "recentips": "IP berdaftar terkini",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Dalam talian",
     "away": "Jauh",
     "dnd": "Jangan ganggu (dnd)",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/ms/groups.json b/public/language/ms/groups.json
index 62ffd93e7c..ac54711805 100644
--- a/public/language/ms/groups.json
+++ b/public/language/ms/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Kumpulan",
+    "members": "Members",
     "view_group": "Lihat Kumpulan",
     "owner": "Pemilik Kumpulan",
     "new_group": "Buat Kumpulan Baru",
diff --git a/public/language/ms/modules.json b/public/language/ms/modules.json
index d331389ba5..0c6495796c 100644
--- a/public/language/ms/modules.json
+++ b/public/language/ms/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "hantar",
     "chat.no_active": "Anda tiada pesanan yang aktif",
     "chat.user_typing": "%1 menaip",
@@ -42,6 +46,7 @@
     "composer.compose": "Tulis",
     "composer.show_preview": "Pra-lihat",
     "composer.hide_preview": "Sorok pra-lihat",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 disebut di %2:",
     "composer.user_said": "%1 berkata:",
     "composer.discard": "Anda yakin untuk membuang kiriman ini?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "Ok",
     "bootbox.cancel": "Batal",
     "bootbox.confirm": "Pasti",
diff --git a/public/language/ms/pages.json b/public/language/ms/pages.json
index 5dd04295a5..4fc735d7d2 100644
--- a/public/language/ms/pages.json
+++ b/public/language/ms/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "Tetapan Pengguna",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Topik Diperhati Oleh %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Kiriman diundi naik oleh %1",
diff --git a/public/language/ms/post-queue.json b/public/language/ms/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/ms/post-queue.json
+++ b/public/language/ms/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/ms/recent.json b/public/language/ms/recent.json
index a2fc732a76..63e098dc61 100644
--- a/public/language/ms/recent.json
+++ b/public/language/ms/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Selamanya",
     "no_recent_topics": "Tiada topik terkini",
     "no_popular_topics": "Tiada topik popular.",
-    "there-is-a-new-topic": "Ada topik baru.",
-    "there-is-a-new-topic-and-a-new-post": "Ada topik baru dan kiriman baru.",
-    "there-is-a-new-topic-and-new-posts": "Ada topik baru dan %1 kiriman baru.",
-    "there-are-new-topics": "Ada %1 topik baru.",
-    "there-are-new-topics-and-a-new-post": "Ada %1 topik-topik dan kiriman-kiriman baru.",
-    "there-are-new-topics-and-new-posts": "Ada %1 topik baru dan %2 kiriman baru.",
-    "there-is-a-new-post": "Ada kiriman baru.",
-    "there-are-new-posts": "Ada %1 kiriman baru.",
-    "click-here-to-reload": "Klik sini untuk muat semula."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/ms/register.json b/public/language/ms/register.json
index 30c6759a2d..476243b54a 100644
--- a/public/language/ms/register.json
+++ b/public/language/ms/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Mendaftar",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "E-mel akan disembunyikan daripada orang ramai.",
     "help.username_restrictions": "Cuba satu nama pengguna yang unik di antara %1 dan %2 aksara. Orang lain boleh menyebut anda dengan @<span id='yourUsername'>nama pengguna</ span>.",
diff --git a/public/language/ms/search.json b/public/language/ms/search.json
index 39ca2b3ad8..58353dc217 100644
--- a/public/language/ms/search.json
+++ b/public/language/ms/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 hasil sepadan \"%2\", (%3 saat)",
     "no-matches": "Tiada padanan dijumpai",
     "advanced-search": "Pencarian Lebih Mendalam",
     "in": "Dalam",
-    "titles": "Tajuk",
-    "titles-posts": "Tajuk dan kiriman",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Dikirim oleh",
-    "in-categories": "Dalam kategori",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Cari anak kategori",
     "has-tags": "Has tags",
     "reply-count": "Kira Balasan",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Sekurang-kurangnya",
     "at-most": "Selebihnya",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Masa kiriman",
     "votes": "Votes",
     "newer-than": "Baru daripada",
@@ -28,7 +48,22 @@
     "three-months": "Tiga bulan",
     "six-months": "Enam bulan",
     "one-year": "Setahun",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Susun mengikut",
+    "sort": "Sort",
     "last-reply-time": "Masa balasan terakhir",
     "topic-title": "Tajuk topik",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Kategori",
     "descending": "Tertib menurun",
     "ascending": "Tertib menaik",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Simpan butiran",
     "clear-preferences": "Bersihkan butiran",
     "search-preferences-saved": "Cari butiran yang disimpan",
     "search-preferences-cleared": "Cari butiran yang diersihkan",
     "show-results-as": "Tunjuk hasil sebagai",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/ms/social.json b/public/language/ms/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/ms/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/ms/tags.json b/public/language/ms/tags.json
index 57b12eac2a..1cb454c2b1 100644
--- a/public/language/ms/tags.json
+++ b/public/language/ms/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Tiada topik untuk tag ini.",
+    "no-tags-found": "No tags found",
     "tags": "Tag",
     "enter_tags_here": "Masukkan tag sini, masing-masing antara %1 dan %2 aksara.",
     "enter_tags_here_short": "Masukkan tag ...",
diff --git a/public/language/ms/topic.json b/public/language/ms/topic.json
index 95ddeb215f..2a735e4e98 100644
--- a/public/language/ms/topic.json
+++ b/public/language/ms/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Click here to return to the last read post in this thread.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Singkirkan Topik",
     "thread_tools.purge_confirm": "Anda yakin untuk singkirkan topik ini?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Kiriman dipindahkan",
     "fork_topic": "Salin topik",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Klik kiriman yang anda hendak salin",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Tiada kiriman yang dipilih",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Masukkan tajuk topik disini",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Abaikan",
     "composer.submit": "Hantar",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Balas ke %1",
     "composer.new_topic": "Topik baru",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/ms/user.json b/public/language/ms/user.json
index af86ec6ecb..ae998fed4e 100644
--- a/public/language/ms/user.json
+++ b/public/language/ms/user.json
@@ -43,6 +43,7 @@
     "followers": "Pengikut",
     "following": "Mengikuti",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Muatnaik gambar baru",
     "upload_new_picture_from_url": "Muatnaik gambar baru dari URL",
     "current_password": "Kata laluan sekarang",
+    "new_password": "New Password",
     "change_password": "Tukar kata laluan",
     "change_password_error": "Kata laluan salah!",
     "change_password_error_wrong_current": "Kata laluan anda sekarang tidak sah",
@@ -115,6 +117,8 @@
     "paginate_description": "Gunakan muka surat untuk topik dan kiriman daripada penggunaan skroll infiniti",
     "topics_per_page": "Topik setiap muka",
     "posts_per_page": "Kiriman setiap muka",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/ms/users.json b/public/language/ms/users.json
index 0e27f7bbce..630939970f 100644
--- a/public/language/ms/users.json
+++ b/public/language/ms/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Pengguna terkini",
     "top_posters": "Pengirim terbanyak",
     "most_reputation": "Reputasi terbaik",
     "most_flags": "Most Flags",
     "search": "Cari",
     "enter_username": "Masukkan nama pengguna untuk carian",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Muat lagi",
     "users-found-search-took": "%1 pengguna dijumpai! Pencarian ambil masa %2 saat.",
     "filter-by": "Saring dengan",
diff --git a/public/language/nb/admin/admin.json b/public/language/nb/admin/admin.json
index 65bbbc4f99..ae9467df75 100644
--- a/public/language/nb/admin/admin.json
+++ b/public/language/nb/admin/admin.json
@@ -1,11 +1,9 @@
 {
 	"alert.confirm-rebuild-and-restart": "Er du sikker på at du vil gjenoppbygge og restarte NodeBB?",
-	"alert.confirm-restart": "Er du sikker på at du ønsker å restarte NoddeBB?",
+	"alert.confirm-restart": "Er du sikker på at du ønsker å restarte NodeBB?",
 
 	"acp-title": "%1 | NodeBB Admin Kontrollpanel",
 	"settings-header-contents": "Innhold",
-	"changes-saved": "Endringer lagret",
-	"changes-saved-message": "Dine endringer i NodeBB-konfigurasjonen har blitt lagret.",
 	"changes-not-saved": "Endringer ikke lagret",
 	"changes-not-saved-message": "NodeBB støtte på et problem ved lagring av endringer. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/nb/admin/appearance/customise.json b/public/language/nb/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/nb/admin/appearance/customise.json
+++ b/public/language/nb/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/nb/admin/dashboard.json b/public/language/nb/admin/dashboard.json
index 112aa9389e..d4d9f0120c 100644
--- a/public/language/nb/admin/dashboard.json
+++ b/public/language/nb/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/nb/admin/extend/widgets.json b/public/language/nb/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/nb/admin/extend/widgets.json
+++ b/public/language/nb/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/nb/admin/manage/groups.json b/public/language/nb/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/nb/admin/manage/groups.json
+++ b/public/language/nb/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/nb/admin/manage/privileges.json b/public/language/nb/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/nb/admin/manage/privileges.json
+++ b/public/language/nb/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/nb/admin/menu.json b/public/language/nb/admin/menu.json
index 379e0b2687..88eedddb5d 100644
--- a/public/language/nb/admin/menu.json
+++ b/public/language/nb/admin/menu.json
@@ -5,17 +5,17 @@
 	"dashboard/users": "Users",
 	"dashboard/topics": "Topics",
 	"dashboard/searches": "Searches",
-	"section-general": "General",
+	"section-general": "Generelt",
 
 	"section-manage": "Manage",
 	"manage/categories": "Categories",
 	"manage/privileges": "Privileges",
 	"manage/tags": "Tags",
-	"manage/users": "Users",
+	"manage/users": "Brukere",
 	"manage/admins-mods": "Admins & Mods",
 	"manage/registration": "Registration Queue",
 	"manage/post-queue": "Post Queue",
-	"manage/groups": "Groups",
+	"manage/groups": "Grupper",
 	"manage/ip-blacklist": "IP Blacklist",
 	"manage/uploads": "Uploads",
 	"manage/digest": "Digests",
@@ -25,17 +25,17 @@
 	"settings/homepage": "Home Page",
 	"settings/navigation": "Navigation",
 	"settings/reputation": "Reputation & Flags",
-	"settings/email": "Email",
-	"settings/user": "Users",
+	"settings/email": "E-post",
+	"settings/user": "Brukere",
 	"settings/group": "Groups",
 	"settings/guest": "Guests",
 	"settings/uploads": "Uploads",
 	"settings/languages": "Languages",
-	"settings/post": "Posts",
+	"settings/post": "Innlegg",
 	"settings/chat": "Chats",
 	"settings/pagination": "Pagination",
-	"settings/tags": "Tags",
-	"settings/notifications": "Notifications",
+	"settings/tags": "Tagger",
+	"settings/notifications": "Varsler",
 	"settings/api": "API Access",
 	"settings/sounds": "Sounds",
 	"settings/social": "Social",
@@ -47,12 +47,12 @@
 	"settings.page-title": "%1 Settings",
 
 	"section-appearance": "Appearance",
-	"appearance/themes": "Themes",
-	"appearance/skins": "Skins",
+	"appearance/themes": "Tema",
+	"appearance/skins": "Drakter",
 	"appearance/customise": "Custom Content (HTML/JS/CSS)",
 
 	"section-extend": "Extend",
-	"extend/plugins": "Plugins",
+	"extend/plugins": "Tillegg",
 	"extend/widgets": "Widgets",
 	"extend/rewards": "Rewards",
 
@@ -61,23 +61,23 @@
 	"section-plugins": "Plugins",
 	"extend/plugins.install": "Install Plugins",
 
-	"section-advanced": "Advanced",
+	"section-advanced": "Avansert",
 	"advanced/database": "Database",
 	"advanced/events": "Events",
 	"advanced/hooks": "Hooks",
-	"advanced/logs": "Logs",
+	"advanced/logs": "Logger",
 	"advanced/errors": "Errors",
 	"advanced/cache": "Cache",
 	"development/logger": "Logger",
 	"development/info": "Info",
 
 	"rebuild-and-restart-forum": "Rebuild & Restart Forum",
-	"restart-forum": "Restart Forum",
-	"logout": "Log out",
-	"view-forum": "View Forum",
+	"restart-forum": "Restart forum",
+	"logout": "Logg ut",
+	"view-forum": "Vis forum",
 
-	"search.placeholder": "Search settings",
-	"search.no-results": "No results...",
+	"search.placeholder": "Søkeinnstillinger",
+	"search.no-results": "Ingen resultater",
 	"search.search-forum": "Search the forum for <strong></strong>",
 	"search.keep-typing": "Type more to see results...",
 	"search.start-typing": "Start typing to see results...",
diff --git a/public/language/nb/admin/settings/api.json b/public/language/nb/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/nb/admin/settings/api.json
+++ b/public/language/nb/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/nb/admin/settings/navigation.json b/public/language/nb/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/nb/admin/settings/navigation.json
+++ b/public/language/nb/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/nb/admin/settings/user.json b/public/language/nb/admin/settings/user.json
index 7998884043..c6199c5698 100644
--- a/public/language/nb/admin/settings/user.json
+++ b/public/language/nb/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Dager",
 	"session-time-seconds": "Sekunder",
 	"session-time-help": "Disse verdiene brukes for å følge med på hvor lenge en bruker er logget inn når de sjekker &quot;Remember Me&quot; ved pålogging. Merk at kun en av disse verdiene brukes. Hvis det ikke er <i>sekundverdi</i> bruker vi <i>dager</i>. Hvis det ikke er noen verdier for  <i>dager</i> faller verdien tilbake til <i>14 dager</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutter etter at bruker er ansett som inaktiv ",
 	"online-cutoff-help": "Hvis brukeren ikke utfører noen handlinger for den bestemte varigheten, anses de som inaktive, og de mottar ikke sanntidsoppdateringer.",
 	"registration": "Brukerregistrering",
diff --git a/public/language/nb/error.json b/public/language/nb/error.json
index ab9a8148ee..3937b1b5ae 100644
--- a/public/language/nb/error.json
+++ b/public/language/nb/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Gjester har ikke tilgang til å laste opp filer",
     "cors-error": "Kunne ikke laste opp bilde på grunn av feilinstillt CORS",
     "upload-ratelimit-reached": "Du har lastet opp for mange filer samtidig. Vennligst prøv igjen senere.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Vennligst velg en dato i fremtiden.",
     "invalid-schedule-date": "Vennligst skriv inn en gyldig dato og tidspunkt.",
     "cant-pin-scheduled": "Planlagte tråder kan ikke bli (u)festet.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Forespørsel om medlemskap er allerede innsendt",
     "group-join-disabled": "Du kan ikke bli med i denne gruppen på dette tidspunktet",
     "group-leave-disabled": "Du kan ikke forlate denne gruppen på dette tidspunktet",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Dette innlegget har blitt slettet",
     "post-already-restored": "Dette innlegget har allerede blitt gjenopprettet",
     "topic-already-deleted": "Dette emnet har allerede blitt slettet",
@@ -224,5 +227,6 @@
     "api.429": "Du har gjort for mange forespørsler. Prøv igjen senere.",
     "api.500": "En uventet feil oppstod mens vi prøvde å betjene forespørsel din.",
     "api.501": "Ruten du prøver å kalle er ikke implementert enda. Prøv igjen i morgen",
-    "api.503": "Ruten du prøver å kalle er for øyeblikket ikke tilgjengelig grunnet innstilling på serveren"
+    "api.503": "Ruten du prøver å kalle er for øyeblikket ikke tilgjengelig grunnet innstilling på serveren",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/nb/flags.json b/public/language/nb/flags.json
index b53aa44aa7..1b57cf4c19 100644
--- a/public/language/nb/flags.json
+++ b/public/language/nb/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Rapporter",
 	"first-reported": "Først rapportert",
 	"no-flags": "Hurra! Ingen flagg funnet",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Tildelt",
 	"update": "Oppdater ",
 	"updated": "Oppdatert",
 	"resolved": "Løst",
 	"target-purged": "Innholdet dette flagget refererte til er renset og er ikke lenger tilgjengelig.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daglige flagg",
 	"quick-filters": "Raske filter",
 	"filter-active": "Det er ett eller flere filtre som er aktive i denne listen over flagg",
 	"filter-reset": "Fjern filtre ",
 	"filters": "Filteralternativer",
-	"filter-reporterId": "Rapporter UID",
-	"filter-targetUid": "Flaggede UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flaggtype",
 	"filter-type-all": "alt innhold",
 	"filter-type-post": "Innlegg",
 	"filter-type-user": "Bruker",
 	"filter-state": "Status",
-	"filter-assignee": "Rettighetshavers UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategori",
 	"filter-quick-mine": "Tildelt til meg",
 	"filter-cid-all": "Alle kategorier",
@@ -45,6 +47,7 @@
 
 	"notes": "Flaggnotiser",
 	"add-note": "Legg til flagg",
+	"edit-note": "Edit Note",
 	"no-notes": "Ingen delte notiser ",
 	"delete-note-confirm": "Er du sikker på at du ønsker å slette flaggnotifikasjonen? ",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/nb/global.json b/public/language/nb/global.json
index 4ea9222a50..77e4904a95 100644
--- a/public/language/nb/global.json
+++ b/public/language/nb/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Lukk",
     "403.title": "Adgang nektet",
     "403.message": "Du har funnet en side du ikke har tilgang til.",
-    "403.login": "Kanskje du skal <a href='%1/login'>prøve å logge inn</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Ikke funnet",
-    "404.message": "Du har funnet en side som ikke eksisterer. Returner til <a href='%1'>startsiden</a>?",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Intern feil.",
     "500.message": "Oops! Ser ut som noe gikk galt!",
     "400.title": "Ugyldig forespørsel ",
-    "400.message": "Det ser ut til at denne lenken er ugyldig, vennligst dobbeltsjekk og prøv igjen. Ellers, gå tilbake til <a href='%1/'>hjemmesiden</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registrer",
     "login": "Logg inn",
     "please_log_in": "Vennligst logg inn",
@@ -37,9 +37,13 @@
     "header.notifications": "Varsler",
     "header.search": "Søk",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigasjon",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Laster varsler",
     "chats.loading": "Laster samtaler",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Velkommen til NodeBB, fremtidens diskusjonsplattform.",
     "previouspage": "Forrige side",
     "nextpage": "Neste side",
@@ -54,7 +58,8 @@
     "users": "Brukere",
     "topics": "Emner",
     "posts": "Innlegg",
-    "x-posts": "%1 post",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Best",
     "controversial": "Kontroversiell ",
     "votes": "Stemmer",
@@ -69,6 +74,7 @@
     "reputation": "Omdømme",
     "lastpost": "Seneste innlegg",
     "firstpost": "Første innlegg ",
+    "about": "About",
     "read_more": "les mer",
     "more": "Mer",
     "none": "Ingen",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 skrev %2",
     "guest_posted_ago": "Gjest skrev den %1",
     "last_edited_by": "sist endret av %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Ingen nylige innlegg",
     "norecenttopics": "Ingen nye tråder",
     "recentposts": "Seneste innlegg",
     "recentips": "Seneste innloggede IPer",
     "moderator_tools": "Moderatorverktøy",
+    "status": "Status",
     "online": "Tilkoblet",
     "away": "Borte",
     "dnd": "Ikke forstyrr",
@@ -122,5 +130,7 @@
     "edited": "Redigert",
     "disabled": "Deaktivert ",
     "select": "Velg",
-    "user-search-prompt": "Skriv her for å finne andre brukere..."
+    "user-search-prompt": "Skriv her for å finne andre brukere...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/nb/groups.json b/public/language/nb/groups.json
index f1526365be..f7831d1d91 100644
--- a/public/language/nb/groups.json
+++ b/public/language/nb/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupper",
+    "members": "Members",
     "view_group": "Vis gruppe",
     "owner": "Gruppeeier",
     "new_group": "Opprett ny gruppe",
@@ -59,6 +60,6 @@
     "new-group.group_name": "Gruppenavn:",
     "upload-group-cover": "Last opp et deksel for gruppen ",
     "bulk-invite-instructions": "Skriv inn en liste over kommaseparerte brukernavn for å invitere til denne gruppen",
-    "bulk-invite": "Bulk Invite",
+    "bulk-invite": "Inviter i bulk",
     "remove_group_cover_confirm": "Er du sikker på at du vil fjerne omslagsbildet? "
 }
\ No newline at end of file
diff --git a/public/language/nb/modules.json b/public/language/nb/modules.json
index a7d97ba9c9..cd05bf2876 100644
--- a/public/language/nb/modules.json
+++ b/public/language/nb/modules.json
@@ -1,15 +1,19 @@
 {
     "chat.chatting_with": "Chat med",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "Du ser på eldre meldinger, klikk her for å gå til siste melding",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Send",
     "chat.no_active": "Du har ingen aktive chatter.",
     "chat.user_typing": "%1 skriver ...",
     "chat.user_has_messaged_you": "%1 har sendt deg en melding",
-    "chat.see_all": "All chats",
-    "chat.mark_all_read": "Mark all read",
+    "chat.see_all": "Alle chatter",
+    "chat.mark_all_read": "Marker alle som lest",
     "chat.no-messages": "Vennligst velg en mottaker for å vise chatte-melding historikk",
-    "chat.no-users-in-room": "No users in this room",
+    "chat.no-users-in-room": "Ingen brukere i dette rommet",
     "chat.recent-chats": "Nylige chatter",
     "chat.contacts": "Kontakter",
     "chat.message-history": "Meldingshistorikk",
@@ -42,22 +46,23 @@
     "composer.compose": "Komponer",
     "composer.show_preview": "Vis forhåndsvisning",
     "composer.hide_preview": "Skjul forhåndsvisning",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 sa i %2: ",
     "composer.user_said": "%1 sa: ",
     "composer.discard": "Er du sikker på at du vil forkaste dette innlegget?",
     "composer.submit_and_lock": "Send og lås",
     "composer.toggle_dropdown": "Veksle nedtrekksfelt",
-    "composer.uploading": "Uploading %1",
-    "composer.formatting.bold": "Bold",
-    "composer.formatting.italic": "Italic",
-    "composer.formatting.list": "List",
-    "composer.formatting.strikethrough": "Strikethrough",
+    "composer.uploading": "Laster opp %1",
+    "composer.formatting.bold": "Uthevet",
+    "composer.formatting.italic": "Kursiv",
+    "composer.formatting.list": "Liste",
+    "composer.formatting.strikethrough": "Gjennomstreking",
     "composer.formatting.code": "Code",
-    "composer.formatting.link": "Link",
-    "composer.formatting.picture": "Image Link",
-    "composer.upload-picture": "Upload Image",
-    "composer.upload-file": "Upload File",
-    "composer.zen_mode": "Zen Mode",
+    "composer.formatting.link": "Lenke",
+    "composer.formatting.picture": "Bildelenke",
+    "composer.upload-picture": "Last opp bilde",
+    "composer.upload-file": "Last opp fil ",
+    "composer.zen_mode": "Zenmodus",
     "composer.select_category": "Velg en kategori",
     "composer.textarea.placeholder": "Enter your post content here, drag and drop images",
     "composer.schedule-for": "Schedule topic for",
@@ -65,12 +70,15 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Angitt dato",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Avbryt",
     "bootbox.confirm": "Bekreft",
     "bootbox.submit": "Submit",
     "bootbox.send": "Send",
-    "cover.dragging_title": "Cover Photo Positioning",
+    "cover.dragging_title": "Posisjoner bilde",
     "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"",
     "cover.saved": "Cover photo image and position saved",
     "thumbs.modal.title": "Manage topic thumbnails",
diff --git a/public/language/nb/notifications.json b/public/language/nb/notifications.json
index 9ae49a8f93..9282fa280d 100644
--- a/public/language/nb/notifications.json
+++ b/public/language/nb/notifications.json
@@ -1,8 +1,8 @@
 {
     "title": "Varsler",
     "no_notifs": "Du har ingen nye varsler",
-    "see_all": "All notifications",
-    "mark_all_read": "Mark all read",
+    "see_all": "Alle varslinger",
+    "mark_all_read": "Marker alle som lest",
     "back_to_home": "Tilbake til %1",
     "outgoing_link": "Utgående link",
     "outgoing_link_message": "Du forlater nå %1",
diff --git a/public/language/nb/pages.json b/public/language/nb/pages.json
index e44c00e42d..841021dafb 100644
--- a/public/language/nb/pages.json
+++ b/public/language/nb/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's overvåkede kategorier",
     "account/bookmarks": "%1's bokmerkede innlegg",
     "account/settings": "Brukerinnstillinger",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Innlegg overvåket av %1",
     "account/ignored": "Emner ignorert av %1",
     "account/upvoted": "Innlegg stemt opp av %1",
diff --git a/public/language/nb/post-queue.json b/public/language/nb/post-queue.json
index ce7088fa41..670eb5682d 100644
--- a/public/language/nb/post-queue.json
+++ b/public/language/nb/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Innleggskø",
-	"description": "Det er ingen innlegg i innleggskøen. <br> For å skru på denne funksjonen, gå til <a href=\"%1\">Innstillinger &rarr; Innlegg &rarr; Innleggskø</a> og skru på  <strong>Innleggskø</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Bruker",
+	"when": "When",
 	"category": "Kategori",
 	"title": "Tittel",
 	"content": "Innhold",
@@ -19,6 +23,7 @@
 	"notify": "Varsle",
 	"notify-user": "Varsle bruker",
 	"confirm-reject": "Vil du avvise dette innlegget?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/nb/recent.json b/public/language/nb/recent.json
index a4a6128247..105685d67f 100644
--- a/public/language/nb/recent.json
+++ b/public/language/nb/recent.json
@@ -7,13 +7,5 @@
     "alltime": "All tid",
     "no_recent_topics": "Det er ingen nye emner.",
     "no_popular_topics": "Det er ingen populære emner.",
-    "there-is-a-new-topic": "Det er et nytt emne.",
-    "there-is-a-new-topic-and-a-new-post": "Det er et nytt emne og et nytt innlegg.",
-    "there-is-a-new-topic-and-new-posts": "Det er et nytt emne og %1 nye innlegg.",
-    "there-are-new-topics": "Det er %1 nye emner.",
-    "there-are-new-topics-and-a-new-post": "Det er %1 nye emner og et nytt innlegg.",
-    "there-are-new-topics-and-new-posts": "Det er %1 nye emner og %2 nye innlegg",
-    "there-is-a-new-post": "Det er et nytt innlegg.",
-    "there-are-new-posts": "Det er %1 nye innlegg.",
-    "click-here-to-reload": "Trykk her for å laste på nytt."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/nb/register.json b/public/language/nb/register.json
index 55ed85a0e9..87e810377e 100644
--- a/public/language/nb/register.json
+++ b/public/language/nb/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registrer",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Avbryt registrering ",
     "help.email": "Som standard, holdes din e-post skjult for offentligheten.",
     "help.username_restrictions": "Et unikt brukernavn mellom %1 og %2 tegn. Andre kan nevne deg med @<span id='yourUsername'>brukernavn</span>.",
diff --git a/public/language/nb/search.json b/public/language/nb/search.json
index ad688770e3..ac81c1e66b 100644
--- a/public/language/nb/search.json
+++ b/public/language/nb/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 resultat(er) samsvarer med \"%2\", (%3 sekunder)",
     "no-matches": "Ingen matcher funnet",
     "advanced-search": "Avansert søk",
     "in": "I",
-    "titles": "Titler",
-    "titles-posts": "Titler og innlegg",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match ord",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Alle",
     "any": "Hvilken som helst",
     "posted-by": "Skapt av",
-    "in-categories": "I kategorier",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Søk underkategorier",
     "has-tags": "Har emneord",
     "reply-count": "Mengde svar",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Minst",
     "at-most": "Maks",
     "relevance": "Relevanse",
+    "time": "Time",
     "post-time": "Innlegg-tid",
     "votes": "Stemmer",
     "newer-than": "Nyere enn",
@@ -28,7 +48,22 @@
     "three-months": "Tre måneder",
     "six-months": "Seks måneder",
     "one-year": "Ett år",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sorter etter",
+    "sort": "Sort",
     "last-reply-time": "Sise svartid",
     "topic-title": "Tråd-tittel",
     "topic-votes": "Stemmer på emne",
@@ -39,11 +74,36 @@
     "category": "Kategori",
     "descending": "I synkende rekkefølge",
     "ascending": "I stigende rekkefølge",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Lagre innstillinger",
     "clear-preferences": "Tøm innstillinnger",
     "search-preferences-saved": "Søkeinnstillinger lagret",
     "search-preferences-cleared": "Søkeinnstillinger tømt",
     "show-results-as": "Vis resultater som",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Se flere resultater (%1)",
     "search-in-category": "Søk i \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/nb/social.json b/public/language/nb/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/nb/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/nb/tags.json b/public/language/nb/tags.json
index 6d6e768270..28a4ca7cd4 100644
--- a/public/language/nb/tags.json
+++ b/public/language/nb/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Det er ingen emner med dette emneordet.",
+    "no-tags-found": "No tags found",
     "tags": "Emneord",
     "enter_tags_here": "Skriv emneord her, mellom %1 og %2 tegn hver.",
     "enter_tags_here_short": "Skriv emneord...",
diff --git a/public/language/nb/topic.json b/public/language/nb/topic.json
index 2332377e51..0c6c3becda 100644
--- a/public/language/nb/topic.json
+++ b/public/language/nb/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Kopier IP",
     "ban-ip": "Forby IP",
     "view-history": "Redigere historie",
-    "locked-by": "Låst av",
-    "unlocked-by": "Låst opp av",
-    "pinned-by": "Festet av",
-    "unpinned-by": "Løsnet av",
-    "deleted-by": "Slettet av",
-    "restored-by": "Gjenopprettet av",
-    "moved-from-by": "Flyttet fra %1 av",
-    "queued-by": "Innlegg i kø for godkjenning & rarr;",
-    "backlink": "Henvinst til av",
-    "forked-by": "Forgrenet av",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Klikk her for å gå tilbake til det siste innlegget i denne tråden.",
     "flag-post": "Flagg denne posten",
     "flag-user": "Flagg denne brukeren",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Rensk tråd",
     "thread_tools.purge_confirm": "Er du sikker på at du vil renske denne tråden?",
     "thread_tools.merge_topics": "Flett emner",
-    "thread_tools.merge": "Slå sammen",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "Denne tråden vil straks bli flyttet til \"%1\". Klikk her for å  angre.",
     "topic_move_multiple_success": "Disse emnene vil straks bli flyttet til \"%1\". Klikk her for å  angre.",
     "topic_move_all_success": "Alle emner vil straks bli flyttet til \"%1\". Klikk her for å  angre.",
@@ -121,7 +135,7 @@
     "post_moved": "Innlegg flyttet!",
     "fork_topic": "Forgren tråd",
     "enter-new-topic-title": "Tast inn tittel på emne",
-    "fork_topic_instruction": "Trykk på innleggene du vil forgrene",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Ingen innlegg valgt!",
     "no-posts-selected": "Ingen innlegg valgt.",
     "x-posts-selected": "%1 innlegg valgt",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Ny tittel for emne",
     "topic-id": "Emne ID",
     "move_posts_instruction": "Klikk på innleggene du vil flytte, og skriv deretter inn en emne-ID, eller gå til målemnet",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Klikk på innleggene du vil tildele til en annen bruker",
     "composer.title_placeholder": "Skriv din tråd-tittel her",
     "composer.handle_placeholder": "Skriv inn navnet ditt / signatur her",
+    "composer.hide": "Hide",
     "composer.discard": "Forkast",
     "composer.submit": "Send",
     "composer.additional-options": "Ytterligere alternativer",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Timeplan",
     "composer.replying_to": "Svarer i %1",
     "composer.new_topic": "Ny tråd",
@@ -184,5 +201,7 @@
     "last-post": "Seneste innlegg",
     "go-to-my-next-post": "Gå til mitt neste innlegg",
     "no-more-next-post": "Du har ikke flere innlegg i dette emnet",
-    "post-quick-reply": "Skriv hurtigsvar"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/nb/user.json b/public/language/nb/user.json
index 4a2782610f..86a6a56c06 100644
--- a/public/language/nb/user.json
+++ b/public/language/nb/user.json
@@ -1,6 +1,6 @@
 {
     "banned": "Utestengt",
-    "muted": "Muted",
+    "muted": "Dempet",
     "offline": "Frakoblet",
     "deleted": "Slettet",
     "username": "Brukernavn",
@@ -43,7 +43,8 @@
     "followers": "Følgere",
     "following": "Følger",
     "blocks": "Blokkeringer",
-    "block_toggle": "Toggle Block",
+    "blocked-users": "Blocked users",
+    "block_toggle": "Endre blokkering",
     "block_user": "Blokker bruker",
     "unblock_user": "Opphev blokkering av bruker",
     "aboutme": "Om meg",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Last opp nytt bidle",
     "upload_new_picture_from_url": "Last opp nytt bilde fra URL",
     "current_password": "Gjeldende passord",
+    "new_password": "New Password",
     "change_password": "Endre passord",
     "change_password_error": "Ugyldig passord!",
     "change_password_error_wrong_current": "Ditt gjeldende passord er ikke korrekt!",
@@ -115,6 +117,8 @@
     "paginate_description": "Bruk sidevelger for tråder og innlegg istedet for uendelig scrolling",
     "topics_per_page": "Tråd per side",
     "posts_per_page": "Innlegg per side",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maksimum %1",
     "acp_language": "Administrer sidespråk",
     "notifications": "Notifikasjoner",
@@ -157,10 +161,10 @@
     "info.banned-permanently": "Utestengt permanent",
     "info.banned-reason-label": "Årsak",
     "info.banned-no-reason": "ingen årsak oppgitt",
-    "info.mute-history": "Recent Mute History",
-    "info.no-mute-history": "This user has never been muted",
-    "info.muted-until": "Muted until %1",
-    "info.muted-expiry": "Expiry",
+    "info.mute-history": "Nylig dempet",
+    "info.no-mute-history": "Denne brukeren har ikke vært dempet",
+    "info.muted-until": "Dempet inntil %1",
+    "info.muted-expiry": "Utløper",
     "info.muted-no-reason": "Ingen grunn oppgitt.",
     "info.username-history": "Brukernavnhistorikk",
     "info.email-history": "E-post-historikk",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderasjonsnotat ikke lagret ",
     "info.moderation-note.add": "Legg til notat",
     "sessions.description": "Denne siden lar deg se alle aktivitetsøkter på dette forumet og tilbakekalle dem om nødvendig. Du kan tilbakekalle din egen økt ved å logge av brukerkontoen din.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Dine rettigheter & amp; Samtykke",
     "consent.lead": "Dette forumet samler inn og behandler dine personopplysninger. ",
     "consent.intro": "Vi bruker kun denne informasjonen for å tilpasse brukeropplevelsen din i dette nettforumet, og for å knytte innleggene du lager til brukerkontoen din. Under registreringstrinnet i Felles brukerhåndtering ble du bedt om å oppgi fullt navn og en e-postadresse. Du kan også velge å oppgi tilleggsinformasjon for å fullføre brukerprofilen din på dette nettstedet.<br /><br />Vi oppbevarer denne informasjonen så lenge brukerprofilen din er aktiv, og du kan når som helst trekke tilbake samtykke ved å slette kontoen din. Du kan når som helst be om en kopi av ditt bidrag til dette nettstedet, via dine rettigheter &amp; Samtykkeside.<br /><br />Hvis du har spørsmål eller bekymringer, oppfordrer vi deg til å ta kontakt med forumets administrative team.",
@@ -195,5 +201,5 @@
     "emailUpdate.optional": "<strong>Dette feltet er valgfritt</strong>. Du er ikke forpliktet til å oppgi e-postadressen din, men uten en validert e-postadresse vil du ikke kunne gjenopprette kontoen din eller logge på med e-postadressen din.",
     "emailUpdate.required": "<strong>Dette feltet er obligatorisk</strong>",
     "emailUpdate.change-instructions": "En bekreftelses-e-post med en unik lenke vil bli sendt til den angitte e-postadressen. Ved å klikke på lenken, vil du bekrefte at du eier e-postadressen, og den blir aktiv på kontoen din. Du kan når som helst oppdatere e-postadressen på brukerprofilen din.",
-    "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
+    "emailUpdate.password-challenge": "Skriv inn passordet ditt for å verifisere eierskap."
 }
\ No newline at end of file
diff --git a/public/language/nb/users.json b/public/language/nb/users.json
index b1aac09034..08d758638e 100644
--- a/public/language/nb/users.json
+++ b/public/language/nb/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Seneste brukere",
     "top_posters": "Flest innlegg",
     "most_reputation": "Best omdømme",
     "most_flags": "Flest flagg",
     "search": "Søk",
     "enter_username": "Skriv inn et brukernavn for å søke",
-    "search-user-for-chat": "Søk etter en bruker for å starte chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Last flere",
     "users-found-search-took": "%1 bruker(e) funnet. Søket tok %2 sekunder.",
     "filter-by": "Filtrer etter",
diff --git a/public/language/nl/admin/admin.json b/public/language/nl/admin/admin.json
index a0005c8283..e5aa9a1d58 100644
--- a/public/language/nl/admin/admin.json
+++ b/public/language/nl/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Administrator Controlepaneel",
 	"settings-header-contents": "Inhoud",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/nl/admin/appearance/customise.json b/public/language/nl/admin/appearance/customise.json
index 8d3f759588..1b5ccab2b6 100644
--- a/public/language/nl/admin/appearance/customise.json
+++ b/public/language/nl/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Aangepaste CSS/LESS",
-	"custom-css.description": "Voer hier je eigen CSS/LESS regels in. Deze zullen worden toegepast na alle andere stijlen.",
-	"custom-css.enable": "Activeer aangepaste CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Aangepast Javascript",
 	"custom-js.description": "Voer hier je eigen javascript code in. Deze zullen worden uitgevoerd als de pagina volledig is geladen.",
diff --git a/public/language/nl/admin/dashboard.json b/public/language/nl/admin/dashboard.json
index 2acaa26a6a..92ad43f428 100644
--- a/public/language/nl/admin/dashboard.json
+++ b/public/language/nl/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/nl/admin/extend/widgets.json b/public/language/nl/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/nl/admin/extend/widgets.json
+++ b/public/language/nl/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/nl/admin/manage/groups.json b/public/language/nl/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/nl/admin/manage/groups.json
+++ b/public/language/nl/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/nl/admin/manage/privileges.json b/public/language/nl/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/nl/admin/manage/privileges.json
+++ b/public/language/nl/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/nl/admin/settings/api.json b/public/language/nl/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/nl/admin/settings/api.json
+++ b/public/language/nl/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/nl/admin/settings/navigation.json b/public/language/nl/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/nl/admin/settings/navigation.json
+++ b/public/language/nl/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/nl/admin/settings/user.json b/public/language/nl/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/nl/admin/settings/user.json
+++ b/public/language/nl/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/nl/error.json b/public/language/nl/error.json
index a039030e88..043ac11612 100644
--- a/public/language/nl/error.json
+++ b/public/language/nl/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Uploads voor gasten zijn uitgeschaleld ",
     "cors-error": "Kan plaatje niet uploaden door verkeerd geconfigureerd CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Uw lidmaatschap aanvraag is al verstuurd",
     "group-join-disabled": "Je kunt op dit moment geen lid worden van deze groep",
     "group-leave-disabled": "Je kunt op dit moment de groep niet verlaten",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Dit bericht is al verwijderd",
     "post-already-restored": "Dit bericht is al hersteld",
     "topic-already-deleted": "Dit onderwerp is al verwijderd",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/nl/flags.json b/public/language/nl/flags.json
index b2510aeaa7..c5272b8118 100644
--- a/public/language/nl/flags.json
+++ b/public/language/nl/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Rapportages",
 	"first-reported": "Eerste rapportage",
 	"no-flags": "Hoera! Geen markeringen gevonden.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Toegekend aan",
 	"update": "Bijwerken",
 	"updated": "Bijgewerkt",
 	"resolved": "Opgelost",
 	"target-purged": "De inhoud waar deze markering naar verwijst is verwijderd en niet meer beschikbaar.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Dagelijkse markeringen",
 	"quick-filters": "Snelfilters",
 	"filter-active": "Er zijn een of meer filters actief in deze lijst van markeringen",
 	"filter-reset": "Filters verwijderen",
 	"filters": "Filter opties",
-	"filter-reporterId": "Rapporteur UID",
-	"filter-targetUid": "Markering UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Markering Type",
 	"filter-type-all": "Alle inhoud",
 	"filter-type-post": "Bericht",
 	"filter-type-user": "Gebruiker",
 	"filter-state": "Status",
-	"filter-assignee": "UID van toewijzer",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Categorie",
 	"filter-quick-mine": "Toegewezen aan mij",
 	"filter-cid-all": "Alle categorieën",
@@ -45,6 +47,7 @@
 
 	"notes": "Markering notities",
 	"add-note": "Notitie toevoegen",
+	"edit-note": "Edit Note",
 	"no-notes": "Geen gedeelde notities",
 	"delete-note-confirm": "Weet je zeker dat je deze markeringsnotitie wilt verwijderen?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/nl/global.json b/public/language/nl/global.json
index 16de8cfe8e..a9b9dd10f2 100644
--- a/public/language/nl/global.json
+++ b/public/language/nl/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Sluiten",
     "403.title": "Toegang geweigerd",
     "403.message": "Het lijkt erop dat je op een pagina beland bent waar je geen toegang tot hebt.",
-    "403.login": "Je kan proberen <a href='%1/login'>in te loggen</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Niet gevonden",
-    "404.message": "Deze pagina bestaat niet. Klik hier om naar de <a href='%1/'>hoofdpagina</a> van deze website te navigeren.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Interne fout",
     "500.message": "Oeps! Ziet er naar uit dat iets fout ging!",
     "400.title": "Foutief verzoek",
-    "400.message": "Het lijkt erop dat de link onjuist is. Kijk het nog eens na en probeer het opnieuw. Of ga terug naar de <a href='%1/'>startpagina</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registeren",
     "login": "Login",
     "please_log_in": "Aanmelden",
@@ -37,9 +37,13 @@
     "header.notifications": "Notificaties",
     "header.search": "Zoeken",
     "header.profile": "Profiel",
+    "header.account": "Account",
     "header.navigation": "Navigatie",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Notificaties laden",
     "chats.loading": "Chats laden",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Welkom bij NodeBB, het discussie platform van de toekomst.",
     "previouspage": "Vorige pagina",
     "nextpage": "Volgende pagina",
@@ -54,7 +58,8 @@
     "users": "Gebruikers",
     "topics": "Onderwerpen",
     "posts": "Berichten",
-    "x-posts": "%1 berichten",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Beste",
     "controversial": "Controversial",
     "votes": "Stemmen",
@@ -69,6 +74,7 @@
     "reputation": "Reputatie",
     "lastpost": "Laatste bericht",
     "firstpost": "Eerste bericht",
+    "about": "About",
     "read_more": "Lees meer",
     "more": "Meer",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 plaatste %2",
     "guest_posted_ago": "Gast plaatste %1",
     "last_edited_by": "voor het laatst aangepast door %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Geen recente berichten",
     "norecenttopics": "Geen recente onderwerpen",
     "recentposts": "Recente berichten",
     "recentips": "IP-adressen van recente gebruikers",
     "moderator_tools": "Moderator gereedschappen",
+    "status": "Status",
     "online": "Online",
     "away": "Afwezig",
     "dnd": "Niet storen",
@@ -122,5 +130,7 @@
     "edited": "Bewerkt",
     "disabled": "Uitgeschakeld",
     "select": "Selecteer",
-    "user-search-prompt": "Typ hier om gebruikers te vinden..."
+    "user-search-prompt": "Typ hier om gebruikers te vinden...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/nl/groups.json b/public/language/nl/groups.json
index 34dd5ae976..0b203e9efb 100644
--- a/public/language/nl/groups.json
+++ b/public/language/nl/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Groepen",
+    "members": "Members",
     "view_group": "Bekijk groep",
     "owner": "Groepseigenaar",
     "new_group": "Nieuwe groep aanmaken",
diff --git a/public/language/nl/modules.json b/public/language/nl/modules.json
index f40385ecf3..98f3faaff8 100644
--- a/public/language/nl/modules.json
+++ b/public/language/nl/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat met",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "Je kijkt nu naar oudere berichten. Klik hier om naar het meest recente bericht te gaan.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Verzenden",
     "chat.no_active": "Er zijn geen actieve chats.",
     "chat.user_typing": "%1 is aan het typen ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Samenstellen",
     "composer.show_preview": "Voorbeeldweergave",
     "composer.hide_preview": "Verberg voorbeeld",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 zegt in %2:",
     "composer.user_said": "%1 zegt:",
     "composer.discard": "Bericht plaatsen annuleren?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Annuleren",
     "bootbox.confirm": "Bevestig",
diff --git a/public/language/nl/pages.json b/public/language/nl/pages.json
index 83bebf19f8..611a588dc6 100644
--- a/public/language/nl/pages.json
+++ b/public/language/nl/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Gevolgde Categorieën van %1",
     "account/bookmarks": "%1's Favoriete Berichten",
     "account/settings": "Gebruikersinstellingen",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Onderwerpen die door %1 bekeken worden",
     "account/ignored": "Onderwerpen genegeerd door %1",
     "account/upvoted": "Berichten omhoog gestemd door %1",
diff --git a/public/language/nl/post-queue.json b/public/language/nl/post-queue.json
index 67cbe01a67..1a5eec6b78 100644
--- a/public/language/nl/post-queue.json
+++ b/public/language/nl/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Berichtenwachtrij",
-	"description": "Er zijn geen berichten in de wachtrij. <br> Om deze functionaliteit in te schakelen, ga naar <a href=\"%1\">Instellingen &rarr; Bericht &rarr; Berichtenwachtrij</a> en schakel <strong>Berichtenwachtrij</strong> in.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Gebruiker",
+	"when": "When",
 	"category": "Categorie",
 	"title": "Titel",
 	"content": "Inhoud",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/nl/recent.json b/public/language/nl/recent.json
index db7c18badc..0f758ced1a 100644
--- a/public/language/nl/recent.json
+++ b/public/language/nl/recent.json
@@ -7,13 +7,5 @@
     "alltime": "altijd",
     "no_recent_topics": "Er zijn geen recente onderwerpen.",
     "no_popular_topics": "Er zijn geen populaire onderwerpen.",
-    "there-is-a-new-topic": "Er is een nieuw onderwerp",
-    "there-is-a-new-topic-and-a-new-post": "Er is een nieuw onderwerp en een nieuw bericht.",
-    "there-is-a-new-topic-and-new-posts": "Er is een nieuwe onderwerp en %1 nieuwe berichten",
-    "there-are-new-topics": "Er zijn %1 nieuwe onderwerpen",
-    "there-are-new-topics-and-a-new-post": "Er zijn %1 nieuwe onderwerpen en een nieuw bericht.",
-    "there-are-new-topics-and-new-posts": "Er zijn %1 nieuwe onderwerpen en %2 nieuwe berichten.",
-    "there-is-a-new-post": "Er is een nieuw bericht.",
-    "there-are-new-posts": "Er zijn %1 nieuwe berichten.",
-    "click-here-to-reload": "Klik hier om te herladen."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/nl/register.json b/public/language/nl/register.json
index 58ea9503d7..0d7db720ac 100644
--- a/public/language/nl/register.json
+++ b/public/language/nl/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registreren",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Annuleer registratie",
     "help.email": "E-mailadressen zijn standaard verborgen voor andere gebruikers.",
     "help.username_restrictions": "Een unieke gebruikersnaam tussen %1 en %2 karakters. Anderen kunnen je vermelden met @<span id='yourUsername'>gebruikersnaam</span>.",
diff --git a/public/language/nl/search.json b/public/language/nl/search.json
index 96796a92fe..f4219dd38c 100644
--- a/public/language/nl/search.json
+++ b/public/language/nl/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 overeenkomstige resultaten \"%2\", (%3 seconds)",
     "no-matches": "Geen overeenkomstige resultaten gevonden",
     "advanced-search": "Geavanceerd zoeken",
     "in": "in",
-    "titles": "Titels",
-    "titles-posts": "Titels en berichten",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match woorden",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Alle",
     "any": "Enkele",
     "posted-by": "Geplaatst door",
-    "in-categories": "In categorieën",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Doorzoek subcategorieën ",
     "has-tags": "Is getagged",
     "reply-count": "Aantal reacties",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "op zijn minst",
     "at-most": "op zijn meest",
     "relevance": "Relevantie",
+    "time": "Time",
     "post-time": "Geplaatst op",
     "votes": "Stemmen",
     "newer-than": "Nieuwer dan",
@@ -28,7 +48,22 @@
     "three-months": "Drie maanden",
     "six-months": "Zes maanden",
     "one-year": "Eén jaar",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sorteer op",
+    "sort": "Sort",
     "last-reply-time": "Laatste keer geantwoord",
     "topic-title": "Onderwerp",
     "topic-votes": "Stemmen op onderwerp",
@@ -39,11 +74,36 @@
     "category": "Categorie",
     "descending": "In aflopende volgorde",
     "ascending": "In oplopende volgorde",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Bewaar voorkeuren",
     "clear-preferences": "Voorkeuren verwijderen",
     "search-preferences-saved": "Zoek voorkeuren opgeslagen",
     "search-preferences-cleared": "Zoek voorkeuren verwijderd",
     "show-results-as": "Toon resultaten als",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Meer resultaten zien (%1)",
     "search-in-category": "Zoeken in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/nl/social.json b/public/language/nl/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/nl/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/nl/tags.json b/public/language/nl/tags.json
index d94000276b..4503b07e3b 100644
--- a/public/language/nl/tags.json
+++ b/public/language/nl/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Er zijn geen onderwerpen met deze tag.",
+    "no-tags-found": "No tags found",
     "tags": "Tags",
     "enter_tags_here": "Voeg hier tags toe, tussen de %1 en %2 tekens per stuk.",
     "enter_tags_here_short": "Voer tags in...",
diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json
index ebf28d38f5..1f4a6c2e77 100644
--- a/public/language/nl/topic.json
+++ b/public/language/nl/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Kopieer IP",
     "ban-ip": "Verban IP",
     "view-history": "Revisie geschiedenis",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Klik hier om terug te keren naar de laatst gelezen post in deze thread.",
     "flag-post": "Rapporteer dit bericht",
     "flag-user": "Rapporteer deze gebruiker",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Wis onderwerp ",
     "thread_tools.purge_confirm": "Weet je zeker dat je dit onderwerp wil verwijderen?",
     "thread_tools.merge_topics": "Onderwerpen samenvoegen",
-    "thread_tools.merge": "Samenvoegen",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Bericht verplaatst!",
     "fork_topic": "Afgesplitst onderwerp ",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Klik op de berichten die afgesplitst moeten worden",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Geen berichten geselecteerd!",
     "no-posts-selected": "Geen berichten geselecteerd!",
     "x-posts-selected": "%1 bericht(en) geselecteerd",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Nieuwe titel voor onderwerp",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Klik op de berichten die je wilt toewijzen aan een andere gebruiker",
     "composer.title_placeholder": "Voer hier de titel van het onderwerp in...",
     "composer.handle_placeholder": "Voer je naam/pseudoniem hier in",
+    "composer.hide": "Hide",
     "composer.discard": "Annuleren",
     "composer.submit": "Verzenden",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Reactie op %1",
     "composer.new_topic": "Nieuw onderwerp",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/nl/user.json b/public/language/nl/user.json
index 8756d8e099..01d829026e 100644
--- a/public/language/nl/user.json
+++ b/public/language/nl/user.json
@@ -43,6 +43,7 @@
     "followers": "Volgers",
     "following": "Volgend",
     "blocks": "Blokkeringen",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Blokkering",
     "block_user": "Blokkeer gebruiker",
     "unblock_user": "Deblokkeer gebruiker",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Nieuwe afbeelding opsturen",
     "upload_new_picture_from_url": "Nieuwe afbeelding vanaf een URL toevoegen",
     "current_password": "Huidige wachtwoord",
+    "new_password": "New Password",
     "change_password": "Wijzig wachtwoord",
     "change_password_error": "Ongeldig wachtwoord!",
     "change_password_error_wrong_current": "Het opgegeven huidige wachtwoord is onjuist!",
@@ -115,6 +117,8 @@
     "paginate_description": "Blader door onderwerpen en berichten in plaats van oneindig scrollen.",
     "topics_per_page": "Onderwerpen per pagina",
     "posts_per_page": "Berichten per pagina",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximaal %1",
     "acp_language": "Taal van Admin Pagina",
     "notifications": "Notificaties",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderatie notitie opgeslagen",
     "info.moderation-note.add": "Notitie toevoegen",
     "sessions.description": "Deze pagina staat je toe om elke actieve sessie op dit forum te zien en om deze af te breken indien nodig. Je kunt je eigen sessie afbreken door uit te loggen uit je account. ",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Uw Rechten &amp; Toestemmingen",
     "consent.lead": "Dit gemeenschapsforum verzamelt en verwerkt uw persoonlijke informatie.",
     "consent.intro": "We gebruiken deze informatie strikt om uw ervaring in deze gemeenschap te personaliseren, en om de berichten die u maakt te koppelen aan uw gebruikersaccount. Tijdens de registratiestap is aan u gevraagd een gebruikersnaam en een e-mail adres te geven, u kan bovendien optioneel aanvullende informatie toevoegen om uw gebruikersprofiel op deze website te completeren. <br /><br /> We bewaren deze informatie voor de levensduur van uw gebruikersaccount, u kan uw toestemming op ieder moment intrekken door uw gebruikersaccount te verwijderen. Op ieder moment kan u een kopie opvragen van uw bijdrage aan deze website via uw Rechten &amp; Toestemmingen pagina. <br /><br /> Indien u vragen of zorgen heeft, bent u welkom om vragen te stellen aan de beheerders van het forum.",
diff --git a/public/language/nl/users.json b/public/language/nl/users.json
index 0735b49989..69f5d90dc2 100644
--- a/public/language/nl/users.json
+++ b/public/language/nl/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Laatste gebruikers",
     "top_posters": "Meest actieve leden",
     "most_reputation": "Meeste reputatie",
     "most_flags": "Meeste vlaggen",
     "search": "Zoeken",
     "enter_username": "Vul een gebruikersnaam in om te zoeken",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Meer laden...",
     "users-found-search-took": "%1 gebruiker(s) gevonden! Zoekactie duurde %2 seconden.",
     "filter-by": "Filter op",
diff --git a/public/language/pl/admin/admin.json b/public/language/pl/admin/admin.json
index cb58fb890a..6b2b958253 100644
--- a/public/language/pl/admin/admin.json
+++ b/public/language/pl/admin/admin.json
@@ -1,11 +1,9 @@
 {
-	"alert.confirm-rebuild-and-restart": "Czy na pewno chcesz przebudować oraz zrestartować NodeBB?",
+	"alert.confirm-rebuild-and-restart": "Czy na pewno chcesz przebudować i zrestartować NodeBB?",
 	"alert.confirm-restart": "Czy na pewno chcesz zrestartować NodeBB?",
 
 	"acp-title": "%1 | Panel administracyjny NodeBB",
 	"settings-header-contents": "Zawartość",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
-	"changes-not-saved": "Changes Not Saved",
-	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
+	"changes-not-saved": "Zmiany nie zostały zapisane",
+	"changes-not-saved-message": "Wystąpił błąd podczas zapisywania zmian. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/pl/admin/advanced/cache.json b/public/language/pl/admin/advanced/cache.json
index 57dbfddd78..f333aebbdd 100644
--- a/public/language/pl/admin/advanced/cache.json
+++ b/public/language/pl/admin/advanced/cache.json
@@ -1,8 +1,8 @@
 {
 	"post-cache": "Pamięć podręczna postów",
-	"group-cache": "Group Cache",
-	"local-cache": "Local Cache",
-	"object-cache": "Object Cache",
+	"group-cache": "Pamięć podręczna grupy",
+	"local-cache": "Lokalna pamięć podręczna",
+	"object-cache": "Pamięć podręczna obiektów",
 	"percent-full": "%1%",
 	"post-cache-size": "Rozmiar pamięci podręcznej postów",
 	"items-in-cache": "Elementów w pamięci podręcznej"
diff --git a/public/language/pl/admin/appearance/customise.json b/public/language/pl/admin/appearance/customise.json
index 57e62ece7c..43c6903f47 100644
--- a/public/language/pl/admin/appearance/customise.json
+++ b/public/language/pl/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Własny CSS/LESS",
-	"custom-css.description": "Wprowadź tutaj własne deklaracje CSS/LESS, które będą użyte po wszystkich pozostałych stylach.",
-	"custom-css.enable": "Aktywuj własne CSS/LESS",
+	"custom-css": "Niestandardowe CSS/SASS",
+	"custom-css.description": "Wprowadź tutaj własne deklaracje CSS/SASS, które zostaną zastosowane w wszystkich innych stylach.",
+	"custom-css.enable": "Włącz niestandardowe CSS/SASS",
 
 	"custom-js": "Własny Javascript",
 	"custom-js.description": "Wprowadź własny kod javascript tutaj. Będzie użyty po pełnym załadowaniu strony.",
diff --git a/public/language/pl/admin/dashboard.json b/public/language/pl/admin/dashboard.json
index ba2aed1b4d..239a32d6d5 100644
--- a/public/language/pl/admin/dashboard.json
+++ b/public/language/pl/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Powrót do Dashboardu",
 	"details.no-users": "Żaden użytkownik nie dołączył w wybranym okresie",
 	"details.no-topics": "Żadne tematy nie zostały opublikowane w wybranym okresie",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "Żadne logi nie zostały zapisane w wybranym okresie",
 	"details.logins-static": "NodeBB zapisuje dane sesji tylko na %1 dzień, dlatego tabela poniżej zawierać będzie tylko ostatnią aktywną sesję",
-	"details.logins-login-time": "Czas logowania"
+	"details.logins-login-time": "Czas logowania",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/pl/admin/development/info.json b/public/language/pl/admin/development/info.json
index 3cfe72b22d..1be54e0553 100644
--- a/public/language/pl/admin/development/info.json
+++ b/public/language/pl/admin/development/info.json
@@ -8,11 +8,11 @@
 	"nodejs": "nodejs",
 	"online": "dostępny",
 	"git": "git",
-	"process-memory": "process memory",
-	"system-memory": "system memory",
-	"used-memory-process": "Used memory by process",
-	"used-memory-os": "Used system memory",
-	"total-memory-os": "Total system memory",
+	"process-memory": "pamięć procesowa",
+	"system-memory": "pamięć systemowa",
+	"used-memory-process": "Używana pamięć według procesu",
+	"used-memory-os": "Używana pamięć systemowa",
+	"total-memory-os": "Całkowita pamięć systemowa",
 	"load": "obciążenie systemu",
 	"cpu-usage": "użycie procesora",
 	"uptime": "czas działania",
diff --git a/public/language/pl/admin/extend/widgets.json b/public/language/pl/admin/extend/widgets.json
index 584cb4a02b..a73bd07df9 100644
--- a/public/language/pl/admin/extend/widgets.json
+++ b/public/language/pl/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Żadna",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Nagłówek panelu",
-	"container.panel-body": "Zawartość panelu",
+	"container.card": "Karta",
+	"container.card-header": "Nagłówek karty",
+	"container.card-body": "Treść karty",
 	"container.alert": "Alarm",
 
 	"alert.confirm-delete": "Czy na pewno chcesz usunąć ten widget?",
diff --git a/public/language/pl/admin/manage/admins-mods.json b/public/language/pl/admin/manage/admins-mods.json
index 79d2be0b62..243d54e089 100644
--- a/public/language/pl/admin/manage/admins-mods.json
+++ b/public/language/pl/admin/manage/admins-mods.json
@@ -1,10 +1,10 @@
 {
     "administrators": "Administratorzy",
     "global-moderators": "Globalni moderatorzy",
-    "moderators": "Moderators",
+    "moderators": "Moderatorzy",
     "no-global-moderators": "Brak globalnych moderatorów",
-    "no-sub-categories": "No subcategories",
-    "subcategories": "%1 subcategories",
+    "no-sub-categories": "Brak podkategorii",
+    "subcategories": "%1 podkategorii",
     "no-moderators": "Brak moderatorów",
     "add-administrator": "Dodaj administratora",
     "add-global-moderator": "Dodaj globalnego moderatora",
diff --git a/public/language/pl/admin/manage/digest.json b/public/language/pl/admin/manage/digest.json
index 7ac8122adc..f69e0f239b 100644
--- a/public/language/pl/admin/manage/digest.json
+++ b/public/language/pl/admin/manage/digest.json
@@ -13,7 +13,7 @@
 	"resent-single": "Ręczne wysyłanie podsumowania zakończone",
 	"resent-day": "Codzienne podsumowanie",
 	"resent-week": "Tygodniowe podsumowanie",
-	"resent-biweek": "Bi-Weekly digest resent",
+	"resent-biweek": "Dwutygodniowe podsumowanie ponownie wysłane",
 	"resent-month": "Miesięczne podsumowanie",
 	"null": "<em>Nigdy</em>",
 	"manual-run": "Włącz ręcznie podsumowania",
diff --git a/public/language/pl/admin/manage/groups.json b/public/language/pl/admin/manage/groups.json
index 94aa0d69ab..985734e733 100644
--- a/public/language/pl/admin/manage/groups.json
+++ b/public/language/pl/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Cofnij",
 
 	"edit.no-users-found": "Nie znaleziono użytkowników",
-	"edit.confirm-remove-user": "Jesteś pewny, że chcesz usunąć tego użytkownika?",
-	"edit.save-success": "Zmiany zapisane!"
+	"edit.confirm-remove-user": "Jesteś pewny, że chcesz usunąć tego użytkownika?"
 }
\ No newline at end of file
diff --git a/public/language/pl/admin/manage/privileges.json b/public/language/pl/admin/manage/privileges.json
index eed78b6293..b0ba548926 100644
--- a/public/language/pl/admin/manage/privileges.json
+++ b/public/language/pl/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Czy na pewno chcesz przyznać uprawnienia moderacji dla tej grupy użytkowników?</strong> Ta grupa jest publiczna i każdy użytkownik może do niej dołączyć.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Potwierdź zamiar zapisania uprawnień",
-	"alert.saved": "Zapisano i zastosowano zmiany w uprawnieniach",
 	"alert.confirm-discard": "Czy na pewno chcesz odrzucić wprowadzone zmiany w uprawnieniach?",
 	"alert.discarded": "Odrzucono zmiany w uprawnieniach",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/pl/admin/manage/tags.json b/public/language/pl/admin/manage/tags.json
index f61aecd889..ccff6ca049 100644
--- a/public/language/pl/admin/manage/tags.json
+++ b/public/language/pl/admin/manage/tags.json
@@ -14,5 +14,5 @@
 	"alerts.editing": "edytowanie tagu/tagów",
 	"alerts.confirm-delete": "Czy na pewno chcesz usunąć zaznaczone tagi?",
 	"alerts.update-success": "Zaktualizowano tag-a!",
-	"reset-colors": "Reset colors"
+	"reset-colors": "Zresetuj kolory"
 }
\ No newline at end of file
diff --git a/public/language/pl/admin/manage/uploads.json b/public/language/pl/admin/manage/uploads.json
index e3dd6c198c..ef7a9164e7 100644
--- a/public/language/pl/admin/manage/uploads.json
+++ b/public/language/pl/admin/manage/uploads.json
@@ -6,6 +6,6 @@
     "size/filecount": "Rozmiar / Liczba plików",
     "confirm-delete": "Czy na pewno chcesz usunąć ten plik?",
     "filecount": "%1 plików",
-    "new-folder": "New Folder",
-    "name-new-folder": "Enter a name for new the folder"
+    "new-folder": "Nowy folder",
+    "name-new-folder": "Wpisz nazwę nowego folderu"
 }
\ No newline at end of file
diff --git a/public/language/pl/admin/settings/api.json b/public/language/pl/admin/settings/api.json
index 13742ccb6b..55ece93210 100644
--- a/public/language/pl/admin/settings/api.json
+++ b/public/language/pl/admin/settings/api.json
@@ -1,16 +1,19 @@
 {
 	"tokens": "Tokeny",
-	"settings": "Settings",
-	"lead-text": "From this page you can configure access to the Write API in NodeBB.",
-	"intro": "By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.",
+	"settings": "Ustawienia",
+	"lead-text": "Na tej stronie możesz skonfigurować dostęp do Write API w NodeBB.",
+	"intro": "Domyślnie Write API uwierzytelnia użytkowników na podstawie ich sesji cookie, ale NodeBB obsługuje również uwierzytelnianie okaziciela za pomocą tokenów generowanych za pośrednictwem tej strony.",
 	"docs": "Kliknij tutaj, aby zobaczyć pełną specyfikację API",
 
-	"require-https": "Require API usage via HTTPS only",
-	"require-https-caveat": "<strong>Note</strong>: Some installations involving load balancers may proxy their requests to NodeBB using HTTP, in which case this option should remain disabled.",
+	"require-https": "Wymagaj użycia API tylko przez HTTPS",
+	"require-https-caveat": "<strong>Notatka</strong>: Niektóre instalacje z modułami równoważenia obciążenia mogą przekazywać swoje żądania do NodeBB za pomocą protokołu HTTP, w takim przypadku ta opcja powinna pozostać wyłączona.",
 
 	"uid": "ID Użytkownika",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Opis",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "Brak opisu.",
 	"token-on-save": "Token zostanie wygenerowany po zapisaniu formularza"
 }
\ No newline at end of file
diff --git a/public/language/pl/admin/settings/chat.json b/public/language/pl/admin/settings/chat.json
index 151fb08037..7b0b5f2be6 100644
--- a/public/language/pl/admin/settings/chat.json
+++ b/public/language/pl/admin/settings/chat.json
@@ -6,7 +6,7 @@
 	"max-length": "Maksymalna długość wiadomości czat",
 	"max-room-size": "Maksymalna liczba użytkowników w pokojach czatu",
 	"delay": "Czas pomiędzy wiadomościami czat (w milisekundach)",
-	"notification-delay": "Notification delay for chat messages. (0 for no delay)",
+	"notification-delay": "Opóźnienie powiadomienia o wiadomościach na czacie. (0 bez opóźnienia)",
 	"restrictions.seconds-edit-after": "Liczba sekund, przez które wiadomość czatu pozostanie edytowalna. (0 wyłączony)",
 	"restrictions.seconds-delete-after": "Liczba sekund, przez które wiadomość czatu pozostanie do usunięcia. (0 wyłączony)"
 }
\ No newline at end of file
diff --git a/public/language/pl/admin/settings/cookies.json b/public/language/pl/admin/settings/cookies.json
index c6c4cf6f85..11b9e9768a 100644
--- a/public/language/pl/admin/settings/cookies.json
+++ b/public/language/pl/admin/settings/cookies.json
@@ -8,6 +8,6 @@
 	"consent.blank-localised-default": "Pozostaw puste, aby użyć przetłumaczonych informacji domyślnych NodeBB ",
 	"settings": "Ustawienia",
 	"cookie-domain": "Domena plików cookie sesji",
-	"max-user-sessions": "Max active sessions per user",
+	"max-user-sessions": "Maksymalna liczba aktywnych sesji na użytkownika",
 	"blank-default": "Pozostaw puste, aby użyć wartości domyślnej"
 }
\ No newline at end of file
diff --git a/public/language/pl/admin/settings/email.json b/public/language/pl/admin/settings/email.json
index d68a780326..30737f25aa 100644
--- a/public/language/pl/admin/settings/email.json
+++ b/public/language/pl/admin/settings/email.json
@@ -5,8 +5,8 @@
 	"from": "Pole „Od”",
 	"from-help": "Nazwa „Od” widoczna w e-mailach",
 
-	"confirmation-settings": "Confirmation",
-	"confirmation.expiry": "Hours to keep email confirmation link valid",
+	"confirmation-settings": "Potwierdzenie",
+	"confirmation.expiry": "Czas ważności linku potwierdzającego e-mail",
 
 	"smtp-transport": "Transport SMTP",
 	"smtp-transport.enabled": "Enable SMTP Transport",
diff --git a/public/language/pl/admin/settings/navigation.json b/public/language/pl/admin/settings/navigation.json
index 36c88f8ca5..7da473489d 100644
--- a/public/language/pl/admin/settings/navigation.json
+++ b/public/language/pl/admin/settings/navigation.json
@@ -11,8 +11,8 @@
 	"properties": "Ustawienia:",
 	"groups": "Grupy:",
 	"open-new-window": "Otwórz w nowym oknie",
-	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown": "Lista rozwijana",
+	"dropdown-placeholder": "Umieść pozycje menu rozwijanego poniżej, np.: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Usuń",
 	"btn.disable": "Wyłącz",
diff --git a/public/language/pl/admin/settings/notifications.json b/public/language/pl/admin/settings/notifications.json
index 6a3a4be2b8..58e2e6267e 100644
--- a/public/language/pl/admin/settings/notifications.json
+++ b/public/language/pl/admin/settings/notifications.json
@@ -3,5 +3,5 @@
 	"welcome-notification": "Powiadomienie powitalne",
 	"welcome-notification-link": "Łącze do komunikatu powitalnego",
 	"welcome-notification-uid": "Powiadomienie powitalne użytkownika (UID)",
-	"post-queue-notification-uid": "Post Queue User (UID)"
+	"post-queue-notification-uid": "Użytkownik kolejki pocztowej (UID)"
 }
\ No newline at end of file
diff --git a/public/language/pl/admin/settings/pagination.json b/public/language/pl/admin/settings/pagination.json
index 7a7b914125..c5f3bf6305 100644
--- a/public/language/pl/admin/settings/pagination.json
+++ b/public/language/pl/admin/settings/pagination.json
@@ -1,12 +1,12 @@
 {
 	"pagination": "Ustawienia paginacji",
 	"enable": "Paginuj tematy oraz posty zamiast używać nieskończonego przewijania",
-	"posts": "Post Pagination",
+	"posts": "Paginacja postów",
 	"topics": "Paginacja tematów",
 	"posts-per-page": "Postów na stronie",
 	"max-posts-per-page": "Maksymalna liczba postów na stronie",
 	"categories": "Paginacja kategorii",
 	"topics-per-page": "Tematów na stronę",
 	"max-topics-per-page": "Maksymalna liczba tematów na stronie",
-	"categories-per-page": "Categories per page"
+	"categories-per-page": "Kategorie na stronę"
 }
\ No newline at end of file
diff --git a/public/language/pl/admin/settings/tags.json b/public/language/pl/admin/settings/tags.json
index 528b4f66c7..ab433b739d 100644
--- a/public/language/pl/admin/settings/tags.json
+++ b/public/language/pl/admin/settings/tags.json
@@ -1,8 +1,8 @@
 {
     "tag": "Ustawienia tagów",
     "link-to-manage": "Zarządzaj tagami",
-    "system-tags": "System Tags",
-    "system-tags-help": "Only privileged users will be able to use these tags.",
+    "system-tags": "System tagów",
+    "system-tags-help": "Tylko uprzywilejowani użytkownicy będą mogli używać tych tagów.",
     "min-per-topic": "Minimalna liczba tagów na temat",
     "max-per-topic": "Maksymalna liczba tagów na temat",
     "min-length": "Minimalna długość tagu",
diff --git a/public/language/pl/admin/settings/user.json b/public/language/pl/admin/settings/user.json
index 0389a4abaa..a8284f57a0 100644
--- a/public/language/pl/admin/settings/user.json
+++ b/public/language/pl/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Dni",
 	"session-time-seconds": "Sekund",
 	"session-time-help": "Te wartości określają czas, przez jaki użytkownik pozostaje zalogowany, gdy zaznaczy opcję &quot;Zapamiętaj mnie&quot; przy logowaniu. Użyta zostanie tylko jedna z tych wartości. Jeśli nie ma wartości <i>sekundach</i>, dostępne będą <i>dni</i>. W razie braku wartości w <i>dniach</i> domyślną wartością będzie <i>14 dni</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Po tylu minutach użytkownik zostaje uznany za nieaktywnego.",
 	"online-cutoff-help": "Jeśli użytkownik nie wykona żadnych działań w określonym czasie, zostaje on uznany za nieaktywnego i nie otrzyma aktualizacji w czasie rzeczywistym.",
 	"registration": "Rejestracja użytkownika",
diff --git a/public/language/pl/error.json b/public/language/pl/error.json
index 00b8d6c74c..c6e48bd249 100644
--- a/public/language/pl/error.json
+++ b/public/language/pl/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Przesyłanie plików przez gości zostało wyłączone",
     "cors-error": "Nie można przesłać obrazu z powodu źle skonfigurowanego CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Twoje podanie o członkostwo zostało już wysłane",
     "group-join-disabled": "Nie możesz teraz dołączyć do tej grupy",
     "group-leave-disabled": "Obecnie nie możesz opuścić tej grupy",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Ten post został już skasowany",
     "post-already-restored": "Ten post został już przywrócony",
     "topic-already-deleted": "Ten temat został już skasowany",
@@ -224,5 +227,6 @@
     "api.429": "Został przekroczony limit żądań, proszę spróbuj ponownie później",
     "api.500": "Wystąpił nieoczekiwany błąd podczas próby obsługi Twojego żądania.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "Ścieżka z którą próbujesz się połączyć, jest obecnie niedostępna z powodu konfiguracji serwera"
+    "api.503": "Ścieżka z którą próbujesz się połączyć, jest obecnie niedostępna z powodu konfiguracji serwera",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/pl/flags.json b/public/language/pl/flags.json
index 37ec744c1e..2e7a188764 100644
--- a/public/language/pl/flags.json
+++ b/public/language/pl/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Zgłoszenia",
 	"first-reported": "Pierwszy zgłoszony",
 	"no-flags": "Hura! Nie znaleziono flag.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Oflagowany",
 	"update": "Zaktualizuj",
 	"updated": "Zaaktualizowano",
 	"resolved": "Resolved",
 	"target-purged": "Treści, do których odnosi się ta flaga, zostały usunięte i nie są już dostępne.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Codzienne flagi",
 	"quick-filters": "Szybkie filtry",
 	"filter-active": "Istnieje co najmniej jeden aktywny filtr w tej liście flag",
 	"filter-reset": "Usuń filtry",
 	"filters": "Opcje filtrowania",
-	"filter-reporterId": "UID zgłaszającego",
-	"filter-targetUid": "Oflagowany UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Typ flagi",
 	"filter-type-all": "Cała treść",
 	"filter-type-post": "Post",
 	"filter-type-user": "Użytkownik",
 	"filter-state": "Stan",
-	"filter-assignee": "UID oflagowanego",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategoria",
 	"filter-quick-mine": "Przypisane do mnie",
 	"filter-cid-all": "Wszystkie kategorie",
@@ -45,6 +47,7 @@
 
 	"notes": "Notatki do flagi",
 	"add-note": "Dodaj notatkę",
+	"edit-note": "Edit Note",
 	"no-notes": "Brak udostępnionych notatek",
 	"delete-note-confirm": "Czy na pewno chcesz usunąć tę notatkę do flagi?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/pl/global.json b/public/language/pl/global.json
index 7f4600a6cb..255812d0fa 100644
--- a/public/language/pl/global.json
+++ b/public/language/pl/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Zamknij",
     "403.title": "Dostęp zabroniony",
     "403.message": "Wygląda na to, że trafiłeś na stronę, do której nie masz dostępu.",
-    "403.login": "Może powinieneś się <a href='%1/login'>zalogować</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Nie znaleziono",
-    "404.message": "Wygląda na to, że trafiłeś na stronę, która nie istnieje. Wróć do <a href='%1/'>strony startowej</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Wewnętrzny błąd.",
     "500.message": "Ups! Coś poszło nie tak.",
     "400.title": "Złe zapytanie.",
-    "400.message": "Zdaje się, że ten odnośnik jest nieprawidłowy. Sprawdź odnośnik i spróbuj ponownie albo wróć na <a href='%1/'>stronę startową</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Zarejestruj się",
     "login": "Zaloguj się",
     "please_log_in": "Proszę się zalogować",
@@ -37,9 +37,13 @@
     "header.notifications": "Powiadomienia",
     "header.search": "Szukaj",
     "header.profile": "Profil",
+    "header.account": "Konto",
     "header.navigation": "Nawigacja",
+    "header.manage": "Zarządzaj",
+    "header.drafts": "Kopie robocze",
     "notifications.loading": "Ładowanie powiadomień",
     "chats.loading": "Ładowanie rozmów",
+    "drafts.loading": "Ładowanie kopi roboczych",
     "motd.welcome": "Witaj w NodeBB, platformie dyskusyjnej przyszłości.",
     "previouspage": "Poprzednia strona",
     "nextpage": "Następna strona",
@@ -54,7 +58,8 @@
     "users": "Użytkownicy",
     "topics": "Tematy",
     "posts": "Posty",
-    "x-posts": "%1 posty",
+    "x-posts": "<span class=\"formatted-number\">%1</span> postów",
+    "x-topics": "<span class=\"formatted-number\">%1</span> tematów",
     "best": "Najlepsze",
     "controversial": "Kontrowersyjne",
     "votes": "Głosy",
@@ -65,10 +70,11 @@
     "downvoters": "Głosujący przeciw",
     "downvoted": "Oddane głosy przeciw",
     "views": "Wyświetlenia",
-    "posters": "Posters",
+    "posters": "Plakaty",
     "reputation": "Reputacja",
     "lastpost": "Ostatni post",
     "firstpost": "Pierwszy post",
+    "about": "O",
     "read_more": "czytaj więcej",
     "more": "Więcej",
     "none": "Żadna",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 napisał %2",
     "guest_posted_ago": "Gość napisał %1",
     "last_edited_by": "ostatnio edytowany przez %1",
+    "edited-timestamp": "Edytowano %1",
     "norecentposts": "Brak ostatnich postów",
     "norecenttopics": "Brak ostatnich tematów",
     "recentposts": "Ostatnie posty",
     "recentips": "Adresy IP ostatnich logowań",
     "moderator_tools": "Narzędzia dla moderatorów",
+    "status": "Status",
     "online": "Online",
     "away": "Zaraz wracam",
     "dnd": "Nie przeszkadzać",
@@ -122,5 +130,7 @@
     "edited": "Edytowany",
     "disabled": "Wyłączony",
     "select": "Wybierz",
-    "user-search-prompt": "Aby znaleźć użytkowników, wpisz tutaj..."
+    "user-search-prompt": "Aby znaleźć użytkowników, wpisz tutaj...",
+    "hidden": "Ukryty",
+    "sort": "Sortuj"
 }
\ No newline at end of file
diff --git a/public/language/pl/groups.json b/public/language/pl/groups.json
index 70c903b8a0..e724bc4fb6 100644
--- a/public/language/pl/groups.json
+++ b/public/language/pl/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupy",
+    "members": "Użytkownicy",
     "view_group": "Obejrzyj grupę",
     "owner": "Właściciel grupy",
     "new_group": "Stwórz nową grupę",
diff --git a/public/language/pl/modules.json b/public/language/pl/modules.json
index bf26e04ef3..4b4ee9e4e6 100644
--- a/public/language/pl/modules.json
+++ b/public/language/pl/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Czatuj z",
     "chat.placeholder": "Wpisz tutaj wiadomość, przeciągnij i opuść obrazki, kliknij enter aby wysłać",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "Przeglądasz starsze wiadomości, naciśnij tutaj by przejść do najnowszych",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Wyślij",
     "chat.no_active": "Brak aktywnych czatów",
     "chat.user_typing": "%1 pisze...",
@@ -42,6 +46,7 @@
     "composer.compose": "Napisz",
     "composer.show_preview": "Pokaż podgląd",
     "composer.hide_preview": "Ukryj podgląd",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 napisał w %2:",
     "composer.user_said": "%1 napisał:",
     "composer.discard": "Na pewno chcesz porzucić ten post?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Czas",
     "composer.cancel-scheduling": "Anuluj planowanie",
     "composer.set-schedule-date": "Ustaw datę",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Anuluj",
     "bootbox.confirm": "Potwierdź",
diff --git a/public/language/pl/pages.json b/public/language/pl/pages.json
index 8204caddb5..6eb7116f25 100644
--- a/public/language/pl/pages.json
+++ b/public/language/pl/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Kategorie obserwowane przez %1",
     "account/bookmarks": "Posty w zakładkach %1",
     "account/settings": "Ustawienia użytkownika",
+    "account/settings-of": "Zmiana ustawień %1",
     "account/watched": "Tematy obserwowane przez %1",
     "account/ignored": "Tematy zignorowane przez %1",
     "account/upvoted": "Posty, na które zagłosował  %1",
diff --git a/public/language/pl/post-queue.json b/public/language/pl/post-queue.json
index 6059c8b63e..76cd4755d5 100644
--- a/public/language/pl/post-queue.json
+++ b/public/language/pl/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Kolejka postów",
-	"description": "Nie ma żadnych postów w kolejce. <br> Aby włączyć tą funkcję, idź do: Ustawienia &rarr; Post &rarr; Kolejka postów</a> i włącz <strong>kolejkę postów</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Użytkownik",
+	"when": "When",
 	"category": "Kategoria",
 	"title": "Tytuł",
 	"content": "Zawartość",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/pl/recent.json b/public/language/pl/recent.json
index 02b291f6db..8869c3e7e5 100644
--- a/public/language/pl/recent.json
+++ b/public/language/pl/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Od początku",
     "no_recent_topics": "Brak ostatnich tematów.",
     "no_popular_topics": "Brak popularnych tematów.",
-    "there-is-a-new-topic": "Masz nowy temat.",
-    "there-is-a-new-topic-and-a-new-post": "Masz nowy temat i nowy post.",
-    "there-is-a-new-topic-and-new-posts": "Masz nowy temat i %1 nowych postów.",
-    "there-are-new-topics": "Masz %1 nowych tematów.",
-    "there-are-new-topics-and-a-new-post": "Masz %1 nowych tematów i nowy post.",
-    "there-are-new-topics-and-new-posts": "Masz %1 nowych tematów i %2 nowych postów.",
-    "there-is-a-new-post": "Masz nowy post.",
-    "there-are-new-posts": "Masz %1 nowych postów.",
-    "click-here-to-reload": "Kliknij tutaj, aby przeładować."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/pl/register.json b/public/language/pl/register.json
index a4e4bcb46c..90d1d1c36c 100644
--- a/public/language/pl/register.json
+++ b/public/language/pl/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Rejestracja",
+    "already-have-account": "Posiadasz już konto?",
     "cancel_registration": "Anuluj rejestrację",
     "help.email": "Domyślnie Twój adres e-mail będzie ukryty.",
     "help.username_restrictions": "Unikalna nazwa użytkownika licząca od %1 do %2 znaków. Inni użytkownicy mogą Cię zawołać, pisząc @<span id='yourUsername'>nazwa użytkownika</span>.",
diff --git a/public/language/pl/search.json b/public/language/pl/search.json
index 221e5e23d9..58592d2ab1 100644
--- a/public/language/pl/search.json
+++ b/public/language/pl/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Wpisz aby wyszukać",
     "results_matching": "%1 wyników pasujących do „%2” (%3 sekund)",
     "no-matches": "Nie znaleziono pasujących wyników",
     "advanced-search": "Wyszukiwanie zaawansowane",
     "in": "w",
-    "titles": "Tytuły",
-    "titles-posts": "Tytuły i posty",
+    "in-titles": "W tytułach",
+    "in-titles-posts": "W tytułach i postach",
+    "in-posts": "W postach",
+    "in-categories": "W kategoriach",
+    "in-users": "W użytkownikach",
+    "in-tags": "W tagach",
+    "categories": "Kategorie",
+    "all-categories": "Wszystkie kategorie",
+    "categories-x": "Kategorie: %1",
+    "categories-watched-categories": "Kategorie: obserwowane kategorie",
+    "type-a-category": "Wpisz kategorię",
+    "tags": "Tagi",
+    "tags-x": "Tagi: %1",
+    "type-a-tag": "Wpisz tag",
     "match-words": "Dopasuj słowa",
+    "match-all-words": "Dopasuj wszystkie słowa",
+    "match-any-word": "Dopasuj dowolne słowo",
     "all": "Wszystkie",
     "any": "Dowolne",
     "posted-by": "Napisane przez",
-    "in-categories": "W kategoriach",
+    "posted-by-usernames": "Napisane przez: %1",
+    "type-a-username": "Wpisz nazwę użytkownika",
     "search-child-categories": "Przeszukaj podkategorie",
     "has-tags": "Ma tagi",
     "reply-count": "Liczba odpowiedzi",
+    "replies": "Odpowiedzi",
+    "replies-atleast-count": "Odpowiedzi: Co najmniej %1",
+    "replies-atmost-count": "Odpowiedzi: Maksymalnie %1",
     "at-least": "Przynajmniej",
     "at-most": "Co najwyżej",
     "relevance": "Trafność",
+    "time": "Czas",
     "post-time": "Data zamieszczenia",
     "votes": "Głosy",
     "newer-than": "Nowsze niż",
@@ -28,7 +48,22 @@
     "three-months": "Trzy miesiące temu",
     "six-months": "Sześć miesięcy temu",
     "one-year": "Jeden rok temu",
-    "sort-by": "Sortuj po",
+    "time-newer-than-86400": "Czas: nowsze niż z wczoraj",
+    "time-older-than-86400": "Czas: Starszy niż z wczoraj",
+    "time-newer-than-604800": "Czas: nowszy niż jeden tydzień",
+    "time-older-than-604800": "Czas: starszy niż tydzień",
+    "time-newer-than-1209600": "Czas: nowszy niż dwa tygodnie",
+    "time-older-than-1209600": "Czas: starszy niż dwa tygodnie",
+    "time-newer-than-2592000": "Czas: nowszy niż jeden miesiąc",
+    "time-older-than-2592000": "Czas: starszy niż jeden miesiąc",
+    "time-newer-than-7776000": "Czas: nowszy niż trzy miesiące",
+    "time-older-than-7776000": "Czas: starszy niż trzy miesiące",
+    "time-newer-than-15552000": "Czas: nowszy niż sześć miesięcy",
+    "time-older-than-15552000": "Czas: starszy niż sześć miesięcy",
+    "time-newer-than-31104000": "Czas: nowszy niż jeden rok",
+    "time-older-than-31104000": "Czas: starszy niż rok",
+    "sort-by": "Sortuj według",
+    "sort": "Sortuj",
     "last-reply-time": "Odpowiedziano ostatnio",
     "topic-title": "Tytuł tematu",
     "topic-votes": "Głosy tematu",
@@ -39,11 +74,36 @@
     "category": "Kategoria",
     "descending": "W kolejności malejącej",
     "ascending": "W kolejności rosnącej",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Zapisz ustawienia",
     "clear-preferences": "Wyczyść ustawienia",
     "search-preferences-saved": "Ustawienia wyszukiwania zapisane",
     "search-preferences-cleared": "Ustawienia wyszukiwania wyczyszczone",
     "show-results-as": "Pokazuj wyniki jako",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Wyświetl więcej wyników (%1)",
     "search-in-category": "Szukaj w \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/pl/social.json b/public/language/pl/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/pl/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/pl/tags.json b/public/language/pl/tags.json
index df5b2ee6f5..1f3a3d8541 100644
--- a/public/language/pl/tags.json
+++ b/public/language/pl/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "Wszystkie tagi",
     "no_tag_topics": "Nie ma tematów z tym tagiem",
+    "no-tags-found": "Nie znaleziono tagów",
     "tags": "Tagi",
     "enter_tags_here": "Wpisz tagi tutaj, każdy o długości od %1 do %2 znaków.",
     "enter_tags_here_short": "Wpisz tagi...",
diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json
index 6c8cb1d96f..dc66a3985e 100644
--- a/public/language/pl/topic.json
+++ b/public/language/pl/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Kopiuj IP",
     "ban-ip": "Blokuj IP",
     "view-history": "Historia edycji",
-    "locked-by": "Zamknięto przez",
-    "unlocked-by": "Odblokowano przez",
-    "pinned-by": "Przypięto przez",
-    "unpinned-by": "Odpięty przez",
-    "deleted-by": "Usunięty przez",
-    "restored-by": "Przywrócony przez",
-    "moved-from-by": "Przeniesiony z %1 przez",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Odwołuje się do",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Kliknij tutaj, by powrócić do ostatniego przeczytanego postu w tym temacie.",
     "flag-post": "Zgłoś ten post",
     "flag-user": "Zgłoś tego użytkownika",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Wymaż temat",
     "thread_tools.purge_confirm": "Na pewno chcesz wyczyścić ten temat?",
     "thread_tools.merge_topics": "Połącz tematy",
-    "thread_tools.merge": "Połącz",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "Ten temat zostanie wkrótce przeniesiony do \"%1\". Naciśnij tutaj by to cofnąć.",
     "topic_move_multiple_success": "Te tematy zostaną wkrótce przeniesione do \"%1\". Naciśnij tutaj by to cofnąć.",
     "topic_move_all_success": "Wszystkie tematy zostaną wkrótce przeniesione do \"%1\". Naciśnij tutaj by to cofnąć.",
@@ -121,7 +135,7 @@
     "post_moved": "Post został przeniesiony!",
     "fork_topic": "Skopiuj temat",
     "enter-new-topic-title": "Wpisz nowy tytuł tematu",
-    "fork_topic_instruction": "Zaznacz posty, które chcesz skopiować",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Nie zaznaczono żadnych postów!",
     "no-posts-selected": "Nie zaznaczono żadnych postów!",
     "x-posts-selected": "Zaznaczono %1 post(-ów)",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Nowy tytuł tematu",
     "topic-id": "Identyfikator tematu",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Kliknij w posty, które chcesz przypisać do innego użytkownika",
     "composer.title_placeholder": "Tutaj wpisz tytuł tematu...",
     "composer.handle_placeholder": "Tutaj wpisz swoje imię/nazwę",
+    "composer.hide": "Hide",
     "composer.discard": "Odrzuć",
     "composer.submit": "Utwórz",
     "composer.additional-options": "Dodatkowe opcje",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Odpowiedź na %1",
     "composer.new_topic": "Nowy temat",
@@ -184,5 +201,7 @@
     "last-post": "Ostatni post",
     "go-to-my-next-post": "Idź do następnego posta",
     "no-more-next-post": "Nie masz więcej postów w tym temacie",
-    "post-quick-reply": "Wyślij szybką odpowiedź"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/pl/user.json b/public/language/pl/user.json
index c0a2e33d0b..2241455027 100644
--- a/public/language/pl/user.json
+++ b/public/language/pl/user.json
@@ -43,6 +43,7 @@
     "followers": "Obserwujący",
     "following": "Obserwowani",
     "blocks": "Blokady",
+    "blocked-users": "Zablokowani użytkownicy",
     "block_toggle": "Przełącz blokadę",
     "block_user": "Blokuj użytkownika",
     "unblock_user": "Odblokuj użytkownika",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Prześlij nowe zdjęcie",
     "upload_new_picture_from_url": "Prześlij nowe zdjęcie z adresu URL",
     "current_password": "Obecne hasło",
+    "new_password": "Nowe hasło",
     "change_password": "Zmień hasło",
     "change_password_error": "Błędne hasło!",
     "change_password_error_wrong_current": "Twoje aktualne hasło nie jest poprawne!",
@@ -115,6 +117,8 @@
     "paginate_description": "Dziel tematy i posty na strony zamiast używać nieskończonego przewijania",
     "topics_per_page": "Tematów na stronę",
     "posts_per_page": "Postów na stronę",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maksymalnie %1",
     "acp_language": "Język Strony Administratora",
     "notifications": "Powiadomienia",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Notatka została zapisana",
     "info.moderation-note.add": "Dodaj notatkę",
     "sessions.description": "Na tej stronie możesz przeglądać wszystkie aktywne sesje na forum i unieważniać je w razie potrzeby. Możesz unieważnić własną sesję poprzez wylogowanie się ze swojego konta.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Twoje prawa i zgody",
     "consent.lead": "To forum gromadzi i przetwarza twoje dane osobowe.",
     "consent.intro": "Wykorzystujemy te informacje wyłącznie w celu dostosowania działania forum do Twoich potrzeb, a także powiązania zamieszczanych przez Ciebie postów z Twoim kontem użytkownika. Na etapie rejestracji poprosiliśmy o podanie nazwy użytkownika i adresu e-mail; możesz również zamieścić dodatkowe informacje, by uzupełnić swój profil użytkownika na tej stronie.<br /><br />Będziemy przechowywać te informacje tak długo, jak będzie istniało Twoje konto użytkownika. Możesz wycofać zgodę w dowolnym momencie poprzez usunięcie konta. W każdej chwili możesz też poprosić poprzez stronę „Prawa i zgody” o kopię treści zamieszczonych przez Ciebie na tej stronie.<br /><br />W razie pytań lub wątpliwości zwróć się do administratorów forum.",
diff --git a/public/language/pl/users.json b/public/language/pl/users.json
index 8524151a76..b844c01f4b 100644
--- a/public/language/pl/users.json
+++ b/public/language/pl/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "Wszyscy użytkownicy",
     "latest_users": "Nowi użytkownicy",
     "top_posters": "Najwięcej postów",
     "most_reputation": "Najlepsza reputacja",
     "most_flags": "Najwięcej flag",
     "search": "Szukaj",
     "enter_username": "Wpisz nazwę użytkownika",
-    "search-user-for-chat": "Wyszukaj użytkownika by rozpocząć rozmowę",
+    "search-user-for-chat": "Wyszukaj użytkownika, aby rozpocząć czat:",
     "load_more": "Wczytaj więcej",
     "users-found-search-took": "Znaleziono %1 użytkownika(-ów). Szukanie zajęło %2 sek.",
     "filter-by": "Filtruj",
diff --git a/public/language/pt-BR/admin/admin.json b/public/language/pt-BR/admin/admin.json
index d5f47bbf50..2359746275 100644
--- a/public/language/pt-BR/admin/admin.json
+++ b/public/language/pt-BR/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Painel de Controle Administrativo do NodeBB",
 	"settings-header-contents": "Conteúdos",
-	"changes-saved": "Alterações Salvas",
-	"changes-saved-message": "Suas alterações na configuração do NodeBB foram salvas.",
 	"changes-not-saved": "Alterações não foram Salvas",
 	"changes-not-saved-message": "O NodeBB encontrou um problema ao salvar suas alterações. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/pt-BR/admin/appearance/customise.json b/public/language/pt-BR/admin/appearance/customise.json
index 1818cd7d05..79cf1d4f08 100644
--- a/public/language/pt-BR/admin/appearance/customise.json
+++ b/public/language/pt-BR/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "CSS/LESS personalizado",
-	"custom-css.description": "Insira suas próprias declarações CSS/LESS aqui, elas serão aplicadas após todos os outros estilos.",
-	"custom-css.enable": "Habilitar CSS/LESS personalizado",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Javascript personalizado.",
 	"custom-js.description": "Insira seu javascript aqui. Ele será executado após a pagina ter sido completamente carregada.",
diff --git a/public/language/pt-BR/admin/dashboard.json b/public/language/pt-BR/admin/dashboard.json
index e59eb05ad1..4489c2538f 100644
--- a/public/language/pt-BR/admin/dashboard.json
+++ b/public/language/pt-BR/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "De volta ao Painel",
 	"details.no-users": "Nenhum usuário ingressou dentro do período de tempo selecionado",
 	"details.no-topics": "Nenhum tópico foi postado dentro do período de tempo selecionado",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "Nenhum login foi registrado dentro do período de tempo selecionado",
 	"details.logins-static": "O NodeBB só salva os dados da sessão por %1 dias, então esta tabela abaixo mostrará apenas as sessões ativas mais recentemente",
-	"details.logins-login-time": "Hora de Login"
+	"details.logins-login-time": "Hora de Login",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/pt-BR/admin/extend/widgets.json b/public/language/pt-BR/admin/extend/widgets.json
index f9930d4a39..f8a634a9c0 100644
--- a/public/language/pt-BR/admin/extend/widgets.json
+++ b/public/language/pt-BR/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Nenhum",
 	"container.well": "Bem",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Painel",
-	"container.panel-header": "Cabeçalho do Painel",
-	"container.panel-body": "Corpo do Painel",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alerta",
 
 	"alert.confirm-delete": "Tem certeza de que deseja excluir este widget?",
diff --git a/public/language/pt-BR/admin/manage/groups.json b/public/language/pt-BR/admin/manage/groups.json
index 07b24ad3a6..b2904d2778 100644
--- a/public/language/pt-BR/admin/manage/groups.json
+++ b/public/language/pt-BR/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Reverter",
 
 	"edit.no-users-found": "Nenhum Usuário Encontrado",
-	"edit.confirm-remove-user": "Tem certeza que deseja excluir este usuário?",
-	"edit.save-success": "Alterações salvas!"
+	"edit.confirm-remove-user": "Tem certeza que deseja excluir este usuário?"
 }
\ No newline at end of file
diff --git a/public/language/pt-BR/admin/manage/privileges.json b/public/language/pt-BR/admin/manage/privileges.json
index 6841ea3f91..6161923171 100644
--- a/public/language/pt-BR/admin/manage/privileges.json
+++ b/public/language/pt-BR/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Tem certeza de que deseja conceder o privilégio de moderação a este grupo de usuários?</strong> Este grupo é público e qualquer usuário pode entrar à vontade.",
 	"alert.confirm-admins-mods": "<strong>Tem certeza de que deseja conceder o privilégio de 'Administradores e Mods' a este usuário/grupo?</strong> Os usuários com este privilégio podem promover e rebaixar outros usuários a posições privilegiadas, <em>incluindo superadministrador</em>",
 	"alert.confirm-save": "Por favor, confirme a sua intenção de salvar estes privilégios",
-	"alert.saved": "Alterações de privilégio salvas e aplicadas",
 	"alert.confirm-discard": "Você tem certeza que quer descartar suas mudanças nos privilégios?",
 	"alert.discarded": "Mudanças de privilégio descartadas",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/pt-BR/admin/settings/api.json b/public/language/pt-BR/admin/settings/api.json
index a7427d4aeb..d363fcb163 100644
--- a/public/language/pt-BR/admin/settings/api.json
+++ b/public/language/pt-BR/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "ID do Usuário",
 	"uid-help-text": "Especifique um ID de usuário para associar a este token. Se o ID do usuário for<code>0</code>, ele será considerada uma token <em>master</em>, que pode assumir a identidade de outros usuários com base no parâmetro <code>_uid</code>",
 	"description": "Descrição",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "Nenhuma descrição especificada.",
 	"token-on-save": "O token será gerado assim que o formulário for salvo"
 }
\ No newline at end of file
diff --git a/public/language/pt-BR/admin/settings/navigation.json b/public/language/pt-BR/admin/settings/navigation.json
index 87f2bea84e..2b74c1bf17 100644
--- a/public/language/pt-BR/admin/settings/navigation.json
+++ b/public/language/pt-BR/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Grupos:",
 	"open-new-window": "Abrir em uma nova janela",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Deletar",
 	"btn.disable": "Desativar",
diff --git a/public/language/pt-BR/admin/settings/user.json b/public/language/pt-BR/admin/settings/user.json
index 069cfb422f..27b217ccff 100644
--- a/public/language/pt-BR/admin/settings/user.json
+++ b/public/language/pt-BR/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Dias",
 	"session-time-seconds": "Segundos",
 	"session-time-help": "Estes valores são usados para determinar por quanto tempo um usuário fica logado quando eles habilitarem a opção &quot;Lembrar-me&quot; durante o login. Observe que apenas um destes valores será usado. Se não houver um valor para <i>segundos</i>, usamos o valor de <i>dias</i>. Se não houver um valor para <i>dias</i>, usamos o valor padrão, que é <i>14 dias</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutos para que o usuário seja considerado inativo",
 	"online-cutoff-help": "Se o usuário não realizar nenhuma ação durante esse período, ele será considerado inativo e não receberá atualizações em tempo real.",
 	"registration": "Registro de Usuário",
diff --git a/public/language/pt-BR/error.json b/public/language/pt-BR/error.json
index d48aebc8e7..507ccd7764 100644
--- a/public/language/pt-BR/error.json
+++ b/public/language/pt-BR/error.json
@@ -37,7 +37,7 @@
     "email-invited": "O email já foi convidado",
     "email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.",
     "email-not-confirmed-chat": "Você não está habilitado a conversar até que seu email seja confirmado, por favor clique aqui para confirmar seu email.",
-    "email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.",
+    "email-not-confirmed-email-sent": "Seu email ainda não tem sido confirmado, por favor verifique seu inbox, para ver se recebeu o e-mail de confirmação. Não será possível comentar em algumas das discussões até confirmar seu e-mail.",
     "no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.",
     "user-doesnt-have-email": "User \"%1\" does not have an email set.",
     "email-confirm-failed": "Nós não pudemos confirmar seu email, por gentileza tente novamente mais tarde.",
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "O upload por visitantes foi desabilitado",
     "cors-error": "Não é possível fazer o upload da imagem devido ao CORS mal configurado",
     "upload-ratelimit-reached": "Você fez upload de muitos arquivos de uma vez. Por favor, tente novamente mais tarde.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Selecione uma data no futuro.",
     "invalid-schedule-date": "Por favor, insira uma data e hora válidas.",
     "cant-pin-scheduled": "Tópicos agendados não podem ser (des)fixados.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Seu pedido de filiação já foi enviado",
     "group-join-disabled": "Você não pode entrar neste grupo no momento",
     "group-leave-disabled": "Você não pode sair deste grupo no momento",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Este post já foi deletado",
     "post-already-restored": "Este post já foi restaurado",
     "topic-already-deleted": "Esté tópico já foi deletado",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/pt-BR/flags.json b/public/language/pt-BR/flags.json
index 19b084edc0..9507b9a131 100644
--- a/public/language/pt-BR/flags.json
+++ b/public/language/pt-BR/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reportagens",
 	"first-reported": "Primeiro Reportado",
 	"no-flags": "Ihuul! Nenhuma sinalização encontrada.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Responsável",
 	"update": "Atualizar",
 	"updated": "Atualizado",
 	"resolved": "Resolvido",
 	"target-purged": "O conteúdo ao qual essa sinalização se referia foi removido e não está mais disponível.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Sinalizações Diárias",
 	"quick-filters": "Filtros Rápidos",
 	"filter-active": "Há um ou mais filtros ativos nesta lista de sinalizações",
 	"filter-reset": "Remover Filtros",
 	"filters": "Opções de Filtro",
-	"filter-reporterId": "UID do Reportador",
-	"filter-targetUid": "UID Sinalizado",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Tipo de Sinalização",
 	"filter-type-all": "Todo o Conteúdo",
 	"filter-type-post": "Post",
 	"filter-type-user": "Usuário",
 	"filter-state": "Estado",
-	"filter-assignee": "UID do Responsável",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Categoria",
 	"filter-quick-mine": "Atribuído a mim",
 	"filter-cid-all": "Todas as categorias",
@@ -45,6 +47,7 @@
 
 	"notes": "Notas da Sinalização",
 	"add-note": "Adicionar Nota",
+	"edit-note": "Edit Note",
 	"no-notes": "Nenhuma nota compartilhada.",
 	"delete-note-confirm": "Tem certeza de que deseja excluir esta nota de sinalização?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/pt-BR/global.json b/public/language/pt-BR/global.json
index 642255b20d..03cb709a5d 100644
--- a/public/language/pt-BR/global.json
+++ b/public/language/pt-BR/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Fechar",
     "403.title": "Acesso Negado",
     "403.message": "Parece que você chegou à uma página à qual você não tem acesso.",
-    "403.login": "Talvez você deveria <a href='%1/login'>tentar fazer login</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Não Encontrado",
-    "404.message": "Parece que você chegou à uma página que não existe. Voltar para a <a href='%1/'>página inicial</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Erro Interno.",
     "500.message": "Oops! Parece que algo deu errado!",
     "400.title": "Solicitação Inválida.",
-    "400.message": "Parece que este link está incorreto. Por favor, verifique e tente novamente. Caso contrário, volte para a <a href='%1/'>página inicial</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Cadastrar",
     "login": "Login",
     "please_log_in": "Por Favor Efetue o Login",
@@ -37,9 +37,13 @@
     "header.notifications": "Notificações",
     "header.search": "Pesquisar",
     "header.profile": "Perfil",
+    "header.account": "Account",
     "header.navigation": "Navegação",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Carregando Notificações",
     "chats.loading": "Carregando Chats",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Seja bem-vindo ao NodeBB, a plataforma de discussão do futuro.",
     "previouspage": "Página Anterior",
     "nextpage": "Próxima Página",
@@ -54,7 +58,8 @@
     "users": "Usuários",
     "topics": "Tópicos",
     "posts": "Posts",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Melhor",
     "controversial": "Controversial",
     "votes": "Votos",
@@ -69,6 +74,7 @@
     "reputation": "Reputação",
     "lastpost": "Última postagem",
     "firstpost": "Primeira postagem",
+    "about": "About",
     "read_more": "ler mais",
     "more": "Mais",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 postou %2",
     "guest_posted_ago": "Visitante postou %1",
     "last_edited_by": "última edição por %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Nenhum  Post Recente",
     "norecenttopics": "Sem Tópicos Recentes",
     "recentposts": "Posts Recentes",
     "recentips": "Recentemente Logado nos IPs",
     "moderator_tools": "Ferramentas de Moderação",
+    "status": "Status",
     "online": "Online",
     "away": "Ausente",
     "dnd": "Não perturbar",
@@ -122,5 +130,7 @@
     "edited": "Editado",
     "disabled": "Desativado",
     "select": "Escolha",
-    "user-search-prompt": "Digite alguma coisa aqui para encontrar usuários..."
+    "user-search-prompt": "Digite alguma coisa aqui para encontrar usuários...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/pt-BR/groups.json b/public/language/pt-BR/groups.json
index c4a056a8dd..81824c08f4 100644
--- a/public/language/pt-BR/groups.json
+++ b/public/language/pt-BR/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupos",
+    "members": "Members",
     "view_group": "Ver Grupo",
     "owner": "Dono do Grupo",
     "new_group": "Criar Novo Grupo",
diff --git a/public/language/pt-BR/modules.json b/public/language/pt-BR/modules.json
index b90d2a6f92..61aeefa5d9 100644
--- a/public/language/pt-BR/modules.json
+++ b/public/language/pt-BR/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Conversar com",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "Você está vendo mensagens mais antigas, clique aqui para ir para a mensagem mais recente.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Enviar",
     "chat.no_active": "Você não tem chats ativos.",
     "chat.user_typing": "%1 está digitando ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Compor",
     "composer.show_preview": "Exibir Pré-visualização",
     "composer.hide_preview": "Esconder Pré-visualização",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 disse em %2:",
     "composer.user_said": "%1 disse:",
     "composer.discard": "Tem certeza que deseja descartar essa postagem?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Hora",
     "composer.cancel-scheduling": "Cancelar Agendamento",
     "composer.set-schedule-date": "Definir Data",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancelar",
     "bootbox.confirm": "Confirmar",
diff --git a/public/language/pt-BR/pages.json b/public/language/pt-BR/pages.json
index d31f713f16..121b03c2f2 100644
--- a/public/language/pt-BR/pages.json
+++ b/public/language/pt-BR/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Categorias Acompanhadas por %1",
     "account/bookmarks": "Posts Favoritos de %1's",
     "account/settings": "Configurações de Usuário",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Tópicos assistidos por %1",
     "account/ignored": "Tópicos ignorados por %1",
     "account/upvoted": "Posts votados positivamente por %1",
diff --git a/public/language/pt-BR/post-queue.json b/public/language/pt-BR/post-queue.json
index d3b7c4e810..8ea12e5751 100644
--- a/public/language/pt-BR/post-queue.json
+++ b/public/language/pt-BR/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Fila de Posts",
-	"description": "Não há posts na fila de posts. <br> Para habilitar essa função, vá até <a href=\"%1\">Configurações → Post → Fila de Posts</a> e habilite <strong>Fila de Posts</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Usuário",
+	"when": "When",
 	"category": "Categoria",
 	"title": "Título",
 	"content": "Conteúdo",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/pt-BR/recent.json b/public/language/pt-BR/recent.json
index 322ab84c1f..c654f353bf 100644
--- a/public/language/pt-BR/recent.json
+++ b/public/language/pt-BR/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Todos os Tempos",
     "no_recent_topics": "Não há tópicos recentes.",
     "no_popular_topics": "Não há tópicos populares.",
-    "there-is-a-new-topic": "Há um novo tópico.",
-    "there-is-a-new-topic-and-a-new-post": "Há um novo tópico e um novo post.",
-    "there-is-a-new-topic-and-new-posts": "Há um novo tópico e %1 novos posts.",
-    "there-are-new-topics": "Há %1 novos tópicos.",
-    "there-are-new-topics-and-a-new-post": "Há %1 novos tópicos e um novo post.",
-    "there-are-new-topics-and-new-posts": "Há %1 novos tópicos e %2 novos posts.",
-    "there-is-a-new-post": "Há um novo post.",
-    "there-are-new-posts": "Há %1 novos posts.",
-    "click-here-to-reload": "Clique aqui para recarregar."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/pt-BR/register.json b/public/language/pt-BR/register.json
index 052ea03f97..c7da4ca56e 100644
--- a/public/language/pt-BR/register.json
+++ b/public/language/pt-BR/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Cadastrar",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancelar Cadastro",
     "help.email": "Por padrão, seu e-mail ficará oculto ao público.",
     "help.username_restrictions": "Um nome de usuário único entre %1 e %2 caracteres. Os outros poderão te mencionar digitando @<span id='yourUsername'>usuário</span>.",
@@ -21,7 +22,7 @@
     "registration-queue-average-time": "Nosso tempo médio para aprovação de associações é de %1 horas e %2 minutos.",
     "registration-queue-auto-approve-time": "Sua associação a este fórum será totalmente ativada em até %1 horas.",
     "interstitial.intro": "We'd like some additional information in order to update your account&hellip;",
-    "interstitial.intro-new": "We'd like some additional information before we can create your account&hellip;",
+    "interstitial.intro-new": "Gostaríamos de solicitar alguma informação adicional antes de criar sua conta&hellip;",
     "interstitial.errors-found": "Please review the entered information:",
     "gdpr_agree_data": "Eu concordo com a coleta e o processamento de minhas informações pessoais neste site.",
     "gdpr_agree_email": "Eu concordo em receber e-mails de resumo e notificação deste site.",
diff --git a/public/language/pt-BR/search.json b/public/language/pt-BR/search.json
index 7e3682d528..b0a77975dc 100644
--- a/public/language/pt-BR/search.json
+++ b/public/language/pt-BR/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 resultado(s) contendo \"%2\", (%3 segundos)",
     "no-matches": "Nenhum resultado encontrado",
     "advanced-search": "Pesquisa Avançada",
     "in": "Em",
-    "titles": "Títulos",
-    "titles-posts": "Títulos e Posts",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Palavras correspondentes",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Todos",
     "any": "Qualquer",
     "posted-by": "Postado por",
-    "in-categories": "Nas Categorias",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Pesquisar subcategorias",
     "has-tags": "Com as tags",
     "reply-count": "Contagem de Respostas",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "No mínimo",
     "at-most": "No máximo",
     "relevance": "Relevância",
+    "time": "Time",
     "post-time": "Data da postagem",
     "votes": "Votos",
     "newer-than": "Mais novo que",
@@ -28,7 +48,22 @@
     "three-months": "Três meses",
     "six-months": "Seis meses",
     "one-year": "Um ano",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Ordenar por",
+    "sort": "Sort",
     "last-reply-time": "Data da última resposta",
     "topic-title": "Título do tópico",
     "topic-votes": "Votos do Tópico",
@@ -39,11 +74,36 @@
     "category": "Categoria",
     "descending": "Em ordem descendente",
     "ascending": "Em ordem ascendente",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Salvar preferências",
     "clear-preferences": "Limpar preferências",
     "search-preferences-saved": "Preferências de pesquisa salvas",
     "search-preferences-cleared": "Preferências de pesquisa limpas",
     "show-results-as": "Mostrar resultados como",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Veja mais resultados (%1)",
     "search-in-category": "Pesquisar em '%1'"
 }
\ No newline at end of file
diff --git a/public/language/pt-BR/social.json b/public/language/pt-BR/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/pt-BR/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/pt-BR/tags.json b/public/language/pt-BR/tags.json
index 36ce0d46df..5d31ab84bd 100644
--- a/public/language/pt-BR/tags.json
+++ b/public/language/pt-BR/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Não há tópicos com esta tag.",
+    "no-tags-found": "No tags found",
     "tags": "Tags",
     "enter_tags_here": "Digite as tags aqui, entre %1 e %2 caracteres cada.",
     "enter_tags_here_short": "Digite tags...",
diff --git a/public/language/pt-BR/topic.json b/public/language/pt-BR/topic.json
index b180a14b35..b4424b1b62 100644
--- a/public/language/pt-BR/topic.json
+++ b/public/language/pt-BR/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copiar IP",
     "ban-ip": "Banir IP",
     "view-history": "Histórico de Edição",
-    "locked-by": "Bloqueado por",
-    "unlocked-by": "Desbloqueado por",
-    "pinned-by": "Fixado por",
-    "unpinned-by": "Desafixado por",
-    "deleted-by": "Deletado por",
-    "restored-by": "Recuperado por",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post aguardando aprovação &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Clique aqui para retornar ao último post lido neste tópico.",
     "flag-post": "Marque este post",
     "flag-user": "Marque este usuário",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Expurgar Tópico",
     "thread_tools.purge_confirm": "Tem certeza que deseja expurgar este tópico? ",
     "thread_tools.merge_topics": "Mesclar Tópicos",
-    "thread_tools.merge": "Mesclar",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "Este tópico será movido para '% 1' em breve. Clique aqui para desfazer.",
     "topic_move_multiple_success": "Esses tópicos serão movidos para '%1' em breve. Clique aqui para desfazer.",
     "topic_move_all_success": "Todos os tópicos serão movidos para '%1' em breve. Clique aqui para desfazer.",
@@ -121,7 +135,7 @@
     "post_moved": "Post movido!",
     "fork_topic": "Ramificar Tópico",
     "enter-new-topic-title": "Insira o novo título do tópico",
-    "fork_topic_instruction": "Clique nos posts que você quer ramificar",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Nenhum post selecionado!",
     "no-posts-selected": "Nenhum post selecionado!",
     "x-posts-selected": "%1 post(s) selecionados",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Novo título para o tópico",
     "topic-id": "ID do Tópico",
     "move_posts_instruction": "Clique nas postagens que deseja mover e insira um ID de tópico ou vá para o tópico de destino",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Clique na postagem que você quer associar a outro usuário",
     "composer.title_placeholder": "Digite aqui o título para o seu tópico...",
     "composer.handle_placeholder": "Digite seu nome/usuário aqui",
+    "composer.hide": "Hide",
     "composer.discard": "Descartar",
     "composer.submit": "Enviar",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Agendar",
     "composer.replying_to": "Respondendo para %1",
     "composer.new_topic": "Novo Tópico",
@@ -184,5 +201,7 @@
     "last-post": "Último post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/pt-BR/user.json b/public/language/pt-BR/user.json
index e326d02341..e1f55a8771 100644
--- a/public/language/pt-BR/user.json
+++ b/public/language/pt-BR/user.json
@@ -43,6 +43,7 @@
     "followers": "Seguidores",
     "following": "Seguindo",
     "blocks": "Bloqueados",
+    "blocked-users": "Blocked users",
     "block_toggle": "Alternar Bloqueio",
     "block_user": "Bloquear Usuário",
     "unblock_user": "Desbloquear Usuário",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Carregar Nova Foto",
     "upload_new_picture_from_url": "Enviar Nova Foto Por URL",
     "current_password": "Senha Atual",
+    "new_password": "New Password",
     "change_password": "Alterar Senha",
     "change_password_error": "Senha Inválida!",
     "change_password_error_wrong_current": "Sua senha atual está incorreta!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paginar tópicos ao invés de utilizar em vez de usar rolagem infinita.",
     "topics_per_page": "Tópicos por Página",
     "posts_per_page": "Posts por Página",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "No máximo %1",
     "acp_language": "Idioma da Página de Administrador",
     "notifications": "Notificações",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Nota da moderação salva",
     "info.moderation-note.add": "Adicionar nota",
     "sessions.description": "Esta página permite que você veja quaisquer sessões ativas neste fórum e as revogue se necessário. Você pode revogar a sua sessão atual ao desconectar-se.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Seus direitos &amp; Consentimento",
     "consent.lead": "Este fórum da comunidade coleta e processa suas informações pessoais.",
     "consent.intro": "Nós usamos estas informações estritamente para personalizar a sua experiência nesta comunidade, assim como vincular as postagens que você faz à sua conta de usuário. Durante o processo de registro, foi solicitado apenas um usuário e um endereço de e-mail. No entanto, se desejar, você também pode fornecer informações adicionais para completar o seu perfil de usuário.<br /><br />Enquanto sua conta de usuário existir, nós guardaremos estas informações, porém, você tem a possibilidade de retirar este consentimento a qualquer momento e, para isso, basta excluir a conta. A qualquer momento, você pode requisitar uma cópia da sua contribuição para este site, através da sua página de Direitos &amp; Consentimento.<br /><br />Se você tem alguma dúvida ou preocupação, nós o aconselhamos a entrar em contato com a equipe administrativa deste fórum.",
@@ -191,9 +197,9 @@
     "consent.export-uploads-success": "Exportando uploads, você receberá uma notificação quando estiver concluído.",
     "consent.export_posts": "Exportar Posts (.csv)",
     "consent.export-posts-success": "Exportando postagens, você receberá uma notificação quando estiver concluído.",
-    "emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
+    "emailUpdate.intro": "Por gentileza, insira sua de e-mail abaixo. O fórum usa sua conta de e-mail para enviar resumos programados e notificações, assim como para resgatar sua senha, se a esqueceu.",
     "emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
-    "emailUpdate.required": "<strong>This field is required</strong>.",
-    "emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
+    "emailUpdate.required": "<strong>Este campo es requerido</strong>.",
+    "emailUpdate.change-instructions": "Um e-mail de confirmação será enviado a sua conta de e-mail com um link único. Ao acessar ao link, confirmará que é proprietário da conta e a ativará. Em qualquer momento, poderá atualizar o e-mail registrado desde a página da conta.",
     "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
 }
\ No newline at end of file
diff --git a/public/language/pt-BR/users.json b/public/language/pt-BR/users.json
index e13553d39a..b70d48207f 100644
--- a/public/language/pt-BR/users.json
+++ b/public/language/pt-BR/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Últimos Usuários",
     "top_posters": "Principais Participantes",
     "most_reputation": "Maior Reputação",
     "most_flags": "Mais Sinalizações",
     "search": "Pesquisar",
     "enter_username": "Digite um nome de usuário para pesquisar",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Carregar Mais",
     "users-found-search-took": "%1 usuário(s) encontrado(s)! A pesquisa levou %2 segundos.",
     "filter-by": "Filtrar Por",
diff --git a/public/language/pt-PT/admin/admin.json b/public/language/pt-PT/admin/admin.json
index c471056aa4..91d0187aa0 100644
--- a/public/language/pt-PT/admin/admin.json
+++ b/public/language/pt-PT/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Painel de Administração NodeBB",
 	"settings-header-contents": "Conteúdo",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/pt-PT/admin/appearance/customise.json b/public/language/pt-PT/admin/appearance/customise.json
index 620f9ef9ef..7f33a01493 100644
--- a/public/language/pt-PT/admin/appearance/customise.json
+++ b/public/language/pt-PT/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "CSS/LESS Personalizado",
-	"custom-css.description": "Insere aqui as tuas próprias declarações de CSS/LESS, que serão aplicadas depois de todos os outros estilos.",
-	"custom-css.enable": "Ativar CSS/LESS Personalizado",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Javascript Personalizado",
 	"custom-js.description": "Insere aqui o teu código Javascript personalizado. Ele será executado logo após a página ser carregada completamente.",
diff --git a/public/language/pt-PT/admin/dashboard.json b/public/language/pt-PT/admin/dashboard.json
index 9f590b49c2..e06e37b01c 100644
--- a/public/language/pt-PT/admin/dashboard.json
+++ b/public/language/pt-PT/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/pt-PT/admin/extend/widgets.json b/public/language/pt-PT/admin/extend/widgets.json
index b7a32cb195..643b1f938b 100644
--- a/public/language/pt-PT/admin/extend/widgets.json
+++ b/public/language/pt-PT/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Nada",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Tens a certeza que desejas eliminar este widget?",
diff --git a/public/language/pt-PT/admin/manage/groups.json b/public/language/pt-PT/admin/manage/groups.json
index 917757e5bf..04e7ca44e5 100644
--- a/public/language/pt-PT/admin/manage/groups.json
+++ b/public/language/pt-PT/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Reverter",
 
 	"edit.no-users-found": "Utilizadores Não Encontrados",
-	"edit.confirm-remove-user": "Tens a certeza que queres remover este utilizador?",
-	"edit.save-success": "Alterações guardadas!"
+	"edit.confirm-remove-user": "Tens a certeza que queres remover este utilizador?"
 }
\ No newline at end of file
diff --git a/public/language/pt-PT/admin/manage/privileges.json b/public/language/pt-PT/admin/manage/privileges.json
index 79b2e087dd..b27e910e7a 100644
--- a/public/language/pt-PT/admin/manage/privileges.json
+++ b/public/language/pt-PT/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/pt-PT/admin/settings/api.json b/public/language/pt-PT/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/pt-PT/admin/settings/api.json
+++ b/public/language/pt-PT/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/pt-PT/admin/settings/navigation.json b/public/language/pt-PT/admin/settings/navigation.json
index ca1e541e23..a52c4a2e88 100644
--- a/public/language/pt-PT/admin/settings/navigation.json
+++ b/public/language/pt-PT/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Grupos:",
 	"open-new-window": "Abrir numa nova janela",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Apagar",
 	"btn.disable": "Desativar",
diff --git a/public/language/pt-PT/admin/settings/user.json b/public/language/pt-PT/admin/settings/user.json
index 29a086a557..a8c4d6e62d 100644
--- a/public/language/pt-PT/admin/settings/user.json
+++ b/public/language/pt-PT/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Dias",
 	"session-time-seconds": "Segundos",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutos após o utilizador ser considerado inativo",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "Registo de Utilizadores",
diff --git a/public/language/pt-PT/error.json b/public/language/pt-PT/error.json
index 141bf43cdb..21cc8c248e 100644
--- a/public/language/pt-PT/error.json
+++ b/public/language/pt-PT/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Os carregamentos por parte de convidados foram desativados",
     "cors-error": "Impossível carregar a imagem devido ao CORS mal configurado",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "O teu pedido de adesão já foi submetido",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Esta publicação já foi eliminada",
     "post-already-restored": "Esta publicação já foi restaurada",
     "topic-already-deleted": "Este tópico já foi eliminado",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/pt-PT/flags.json b/public/language/pt-PT/flags.json
index 8a16ba96e9..ad2071df63 100644
--- a/public/language/pt-PT/flags.json
+++ b/public/language/pt-PT/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Fantástico! Não foram encontradas denúncias.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Responsável",
 	"update": "Atualizar",
 	"updated": "Atualizado",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Denúncias Diárias",
 	"quick-filters": "Filtros Rápidos",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remover Filtros",
 	"filters": "Opções dos Filtros",
-	"filter-reporterId": "UID do autor da denúncia",
-	"filter-targetUid": "UID do denunciado",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Tipo de denúncia",
 	"filter-type-all": "Todo o Conteúdo",
 	"filter-type-post": "Publicação",
 	"filter-type-user": "Utilizador",
 	"filter-state": "Estado",
-	"filter-assignee": "UID do responsável",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Categoria",
 	"filter-quick-mine": "Atribuído a mim",
 	"filter-cid-all": "Todas as categorias",
@@ -45,6 +47,7 @@
 
 	"notes": "Notas da Denúncia",
 	"add-note": "Adicionar Nota",
+	"edit-note": "Edit Note",
 	"no-notes": "Não existem notas partilhadas.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/pt-PT/global.json b/public/language/pt-PT/global.json
index 1fa4b002ae..528daf54ec 100644
--- a/public/language/pt-PT/global.json
+++ b/public/language/pt-PT/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Fechar",
     "403.title": "Acesso negado",
     "403.message": "Parece que encontraste uma página à qual não tens acesso.",
-    "403.login": "Talvez devesses <a href='%1/login'>tentar iniciar sessão</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Não encontrado",
-    "404.message": "Parece que encontraste uma página que não existe. Regressa à <a href='%1/'>página principal</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Erro interno.",
     "500.message": "Oops! Parece que algo correu mal!",
     "400.title": "O pedido não correu bem.",
-    "400.message": "Parece que este link está mal formado. Por favor volta a confirma-lo e tenta novamente ou então retorna à <a href='%1/'>página principal</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Regista-te",
     "login": "Iniciar sessão",
     "please_log_in": "Por favor inicia sessão",
@@ -37,9 +37,13 @@
     "header.notifications": "Notificações",
     "header.search": "Procurar",
     "header.profile": "Perfil",
+    "header.account": "Account",
     "header.navigation": "Navegação",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Carregando as notificações",
     "chats.loading": "Carregando as conversas",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Bem-vindo ao NodeBB, a plataforma de discussões do futuro.",
     "previouspage": "Página anterior",
     "nextpage": "Página seguinte",
@@ -54,7 +58,8 @@
     "users": "Utilizadores",
     "topics": "Tópicos",
     "posts": "Publicações",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Melhores",
     "controversial": "Controversial",
     "votes": "Votos",
@@ -69,6 +74,7 @@
     "reputation": "Reputação",
     "lastpost": "Última publicação",
     "firstpost": "Primeira publicação",
+    "about": "About",
     "read_more": "Ler mais",
     "more": "Mais",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 publicou %2",
     "guest_posted_ago": "Convidado publicou %1",
     "last_edited_by": "última edição por %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Não existen publicações recentes",
     "norecenttopics": "Não existem tópicos recentes",
     "recentposts": "Publicações recentes",
     "recentips": "Recentemente com sessões iniciadas em IPs",
     "moderator_tools": "Ferramentas de moderador",
+    "status": "Status",
     "online": "Online",
     "away": "Ausente",
     "dnd": "Não perturbar",
@@ -122,5 +130,7 @@
     "edited": "Editado",
     "disabled": "Desativado",
     "select": "Selecionar",
-    "user-search-prompt": "Digita algo aqui para encontrar utilizadores..."
+    "user-search-prompt": "Digita algo aqui para encontrar utilizadores...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/pt-PT/groups.json b/public/language/pt-PT/groups.json
index 60d8665f8a..d54c7593f1 100644
--- a/public/language/pt-PT/groups.json
+++ b/public/language/pt-PT/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupos",
+    "members": "Members",
     "view_group": "Ver o grupo",
     "owner": "Dono do grupo",
     "new_group": "Criar novo grupo",
diff --git a/public/language/pt-PT/modules.json b/public/language/pt-PT/modules.json
index 424003f11f..6af04d4a27 100644
--- a/public/language/pt-PT/modules.json
+++ b/public/language/pt-PT/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Conversar com",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Enviar",
     "chat.no_active": "Não tens conversas ativas.",
     "chat.user_typing": "%1 está a escrever ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Compor",
     "composer.show_preview": "Mostrar pré-visualização",
     "composer.hide_preview": "Ocultar pré-visualização",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 disse em %2:",
     "composer.user_said": "%1 disse:",
     "composer.discard": "Tens a certeza que queres descartar esta publicação?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancelar",
     "bootbox.confirm": "Confirmar",
diff --git a/public/language/pt-PT/pages.json b/public/language/pt-PT/pages.json
index 3651a0c886..3662091efd 100644
--- a/public/language/pt-PT/pages.json
+++ b/public/language/pt-PT/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Categorias subscritas por %1",
     "account/bookmarks": "Publicações marcadas de %1",
     "account/settings": "Definições de utilizador",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Tópicos subscritos por %1",
     "account/ignored": "Tópicos ignorados por %1",
     "account/upvoted": "Publicações votadas favoravelmente por %1",
diff --git a/public/language/pt-PT/post-queue.json b/public/language/pt-PT/post-queue.json
index 386b3a4714..e710ba2109 100644
--- a/public/language/pt-PT/post-queue.json
+++ b/public/language/pt-PT/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Publicações por Aprovar",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Utilizador",
+	"when": "When",
 	"category": "Categoria",
 	"title": "Título",
 	"content": "Conteúdo",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/pt-PT/recent.json b/public/language/pt-PT/recent.json
index e580776804..20413d859b 100644
--- a/public/language/pt-PT/recent.json
+++ b/public/language/pt-PT/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Desde sempre",
     "no_recent_topics": "Não existem tópicos recentes.",
     "no_popular_topics": "Não existem tópicos populares.",
-    "there-is-a-new-topic": "Existe um novo tópico.",
-    "there-is-a-new-topic-and-a-new-post": "Existe um novo tópico e uma nova publicação.",
-    "there-is-a-new-topic-and-new-posts": "Existe um tópico novo e %1 publicações novas.",
-    "there-are-new-topics": "Existem %1 tópicos novos.",
-    "there-are-new-topics-and-a-new-post": "Existem %1 tópicos novos e uma nova publicação.",
-    "there-are-new-topics-and-new-posts": "Existem %1 tópicos novos e %2 publicações novas.",
-    "there-is-a-new-post": "Existe uma publicação nova.",
-    "there-are-new-posts": "Existem %1 novas publicações.",
-    "click-here-to-reload": "Carrega aqui para recarregar."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/pt-PT/register.json b/public/language/pt-PT/register.json
index ebfa6647d9..8fa2fe97d5 100644
--- a/public/language/pt-PT/register.json
+++ b/public/language/pt-PT/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Regista-te",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancelar o registro",
     "help.email": "Por definição, o teu e-mail será oculto do público.",
     "help.username_restrictions": "Um nome de utilizador único entre %1 e %2 caracteres. Outros podem mencionar-te através de @<span id='yourUsername'>nome de utilizador</span>.",
diff --git a/public/language/pt-PT/search.json b/public/language/pt-PT/search.json
index ea0eb7fab5..244e59552b 100644
--- a/public/language/pt-PT/search.json
+++ b/public/language/pt-PT/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 resultado(s) correspondendo \"%2\", (%3 segundos)",
     "no-matches": "Não foram encontradas correspondências",
     "advanced-search": "Pesquisa avançada",
     "in": "Em",
-    "titles": "Títulos",
-    "titles-posts": "Títulos e Publicações",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Corresponder palavras",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Todas",
     "any": "Qualquer",
     "posted-by": "Publicado por",
-    "in-categories": "Nas Categorias",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Procurar categorias infantis",
     "has-tags": "Tem marcadores",
     "reply-count": "Quantidade de respostas",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Pelo menos",
     "at-most": "No máximo",
     "relevance": "Relevância",
+    "time": "Time",
     "post-time": "Hora da publicação",
     "votes": "Votos",
     "newer-than": "Mais recente que",
@@ -28,7 +48,22 @@
     "three-months": "Três meses",
     "six-months": "Seis meses",
     "one-year": "Um ano",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Ordenar por",
+    "sort": "Sort",
     "last-reply-time": "Tempo da última resposta",
     "topic-title": "Título do tópico",
     "topic-votes": "Votos dos tópicos",
@@ -39,11 +74,36 @@
     "category": "Categoria",
     "descending": "Em ordem descendente",
     "ascending": "Em ordem ascendente",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Guardar preferências",
     "clear-preferences": "Limpar preferências",
     "search-preferences-saved": "Preferências de pesquisa guardadas",
     "search-preferences-cleared": "Preferências de pesquisa gravadas",
     "show-results-as": "Mostrar resultados como",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Ver mais resultados (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/pt-PT/social.json b/public/language/pt-PT/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/pt-PT/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/pt-PT/tags.json b/public/language/pt-PT/tags.json
index 44b1ac7bdd..d644741aaf 100644
--- a/public/language/pt-PT/tags.json
+++ b/public/language/pt-PT/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Não existem tópicos com estes marcadores.",
+    "no-tags-found": "No tags found",
     "tags": "Marcadores",
     "enter_tags_here": "Insere os marcadores aqui, cada um com %1 a %2 caracteres.",
     "enter_tags_here_short": "Insere marcadores...",
diff --git a/public/language/pt-PT/topic.json b/public/language/pt-PT/topic.json
index 63a83a2baa..fd7b95ce9a 100644
--- a/public/language/pt-PT/topic.json
+++ b/public/language/pt-PT/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copiar IP",
     "ban-ip": "Banir IP",
     "view-history": "Histórico de Edição",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Carrega aqui para voltares à última publicação lide assunto.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Eliminar tópico",
     "thread_tools.purge_confirm": "Tens a certeza que queres eliminar este tópico?",
     "thread_tools.merge_topics": "Fundir Tópicos",
-    "thread_tools.merge": "Fundir",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Publicação movida!",
     "fork_topic": "Clonar tópico",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Carrega nas publicações que queres clonar",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Sem publicações selecionadas!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Novo título para o tópico",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Insere aqui o título do tópico...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Descartar",
     "composer.submit": "Publicar",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Respondendo a %1",
     "composer.new_topic": "Novo tópico",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/pt-PT/user.json b/public/language/pt-PT/user.json
index 87d078cde9..3205ca7fc2 100644
--- a/public/language/pt-PT/user.json
+++ b/public/language/pt-PT/user.json
@@ -43,6 +43,7 @@
     "followers": "Seguidores",
     "following": "Seguindo",
     "blocks": "Bloqueados",
+    "blocked-users": "Blocked users",
     "block_toggle": "Ativar Bloqueio",
     "block_user": "Bloquear Utilizador",
     "unblock_user": "Desbloquear Utilizador",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Enviar uma nova imagem",
     "upload_new_picture_from_url": "Enviar uma nova imagem através de um URL",
     "current_password": "Palavra-passe atual",
+    "new_password": "New Password",
     "change_password": "Palavra-passe alterada",
     "change_password_error": "Palavra-passe Inválida!",
     "change_password_error_wrong_current": "A tua palavra-passe atual não está correta!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paginar os tópicos e publicações em vez de usar o scroll infinito",
     "topics_per_page": "Tópicos por página",
     "posts_per_page": "Publicações por página",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Máximo %1",
     "acp_language": "Idioma da Página de Administração",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Nota de moderação guardada",
     "info.moderation-note.add": "Adicionar nota",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Direitos e privacidade",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/pt-PT/users.json b/public/language/pt-PT/users.json
index d8ee810a8a..7c91e8ce5a 100644
--- a/public/language/pt-PT/users.json
+++ b/public/language/pt-PT/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Utilizadores Recentes",
     "top_posters": "Top de publicadores",
     "most_reputation": "Maior Reputação",
     "most_flags": "Mais Denúncias",
     "search": "Procurar",
     "enter_username": "Insere um nome de utilizador para pesquisar",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Carregar mais",
     "users-found-search-took": "%1 utilizador(es) encontrados! A pesquisa demorou %2 segundos.",
     "filter-by": "Filtrar por",
diff --git a/public/language/ro/admin/admin.json b/public/language/ro/admin/admin.json
index 39edffb66f..dcf9696ca2 100644
--- a/public/language/ro/admin/admin.json
+++ b/public/language/ro/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Control Panel",
 	"settings-header-contents": "Contents",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/ro/admin/appearance/customise.json b/public/language/ro/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/ro/admin/appearance/customise.json
+++ b/public/language/ro/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/ro/admin/dashboard.json b/public/language/ro/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/ro/admin/dashboard.json
+++ b/public/language/ro/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/ro/admin/extend/widgets.json b/public/language/ro/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/ro/admin/extend/widgets.json
+++ b/public/language/ro/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/ro/admin/manage/groups.json b/public/language/ro/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/ro/admin/manage/groups.json
+++ b/public/language/ro/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/ro/admin/manage/privileges.json b/public/language/ro/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/ro/admin/manage/privileges.json
+++ b/public/language/ro/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/ro/admin/settings/api.json b/public/language/ro/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/ro/admin/settings/api.json
+++ b/public/language/ro/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/ro/admin/settings/navigation.json b/public/language/ro/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/ro/admin/settings/navigation.json
+++ b/public/language/ro/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/ro/admin/settings/user.json b/public/language/ro/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/ro/admin/settings/user.json
+++ b/public/language/ro/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/ro/error.json b/public/language/ro/error.json
index de05d3ab52..fabd03c861 100644
--- a/public/language/ro/error.json
+++ b/public/language/ro/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Guest uploading has been disabled",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Your membership request has already been submitted",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "This post has already been deleted",
     "post-already-restored": "This post has already been restored",
     "topic-already-deleted": "This topic has already been deleted",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/ro/flags.json b/public/language/ro/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/ro/flags.json
+++ b/public/language/ro/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/ro/global.json b/public/language/ro/global.json
index ebfa75e87f..afe13cd41e 100644
--- a/public/language/ro/global.json
+++ b/public/language/ro/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Închide",
     "403.title": "Acces Interzis",
     "403.message": "Se pare că ai ajuns pe o pagină la care nu ai acces",
-    "403.login": "Poate ar trebui să te <a href='%1/login'>autentifici</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Nu a fost găsit",
-    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Internal Error.",
     "500.message": "Oops! Se pare că ceva a mers greșit!",
     "400.title": "Bad Request.",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Înregistrare",
     "login": "Autentificare",
     "please_log_in": "Autentifică-te",
@@ -37,9 +37,13 @@
     "header.notifications": "Notificări",
     "header.search": "Căutare",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigare",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Se încarcă notificările",
     "chats.loading": "Se încarcă conversațiile",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Bine ai venit la NodeBB, platforma de discuții a viitorului.",
     "previouspage": "Pagina Precedentă",
     "nextpage": "Următoarea Pagină",
@@ -54,7 +58,8 @@
     "users": "Utilizatori",
     "topics": "Subiecte",
     "posts": "Mesaje",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Cel mai bun",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Reputație",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "citește mai mult",
     "more": "Mai multe",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 a postat %2",
     "guest_posted_ago": "Vizitator a postat %1",
     "last_edited_by": "ultima editare de %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Nici un mesaj recent",
     "norecenttopics": "Nici un subiect recent",
     "recentposts": "Mesaje Recente",
     "recentips": "Adrese IP autentificate recent",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Conectat",
     "away": "Plecat",
     "dnd": "Nu mă deranja",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/ro/groups.json b/public/language/ro/groups.json
index 4c944b733c..cc34f6fe65 100644
--- a/public/language/ro/groups.json
+++ b/public/language/ro/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupuri",
+    "members": "Members",
     "view_group": "Vezi Grup",
     "owner": "Propietar de group",
     "new_group": "Crează un grup nou",
diff --git a/public/language/ro/modules.json b/public/language/ro/modules.json
index 6d73b62df0..b013dea281 100644
--- a/public/language/ro/modules.json
+++ b/public/language/ro/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Trimite",
     "chat.no_active": "Nu ai nici o conversație activă",
     "chat.user_typing": "%1 scrie ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Scrie",
     "composer.show_preview": "Show Preview",
     "composer.hide_preview": "Hide Preview",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 a spus în %2:",
     "composer.user_said": "%1 a spus:",
     "composer.discard": "Ești sigur că vrei să renunți la acest mesaj?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancel",
     "bootbox.confirm": "Confirm",
diff --git a/public/language/ro/pages.json b/public/language/ro/pages.json
index 9b5be8f4db..d2c266e5de 100644
--- a/public/language/ro/pages.json
+++ b/public/language/ro/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "User Settings",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Topics watched by %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Posts upvoted by %1",
diff --git a/public/language/ro/post-queue.json b/public/language/ro/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/ro/post-queue.json
+++ b/public/language/ro/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/ro/recent.json b/public/language/ro/recent.json
index ad7867e068..5bdadeb993 100644
--- a/public/language/ro/recent.json
+++ b/public/language/ro/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Tot Timpul",
     "no_recent_topics": "Nu există subiecte recente.",
     "no_popular_topics": "Nu sunt subiecte populare.",
-    "there-is-a-new-topic": "Există un subiect nou.",
-    "there-is-a-new-topic-and-a-new-post": "Există un subiect nou si o postare nouă.",
-    "there-is-a-new-topic-and-new-posts": "Există un subiect nou și %1 postări noi.",
-    "there-are-new-topics": "Există %1 postări noi.",
-    "there-are-new-topics-and-a-new-post": "Exista %1 subiect nou și o postare nouă",
-    "there-are-new-topics-and-new-posts": "Exista %1 subiecte noi și %2 postări noi",
-    "there-is-a-new-post": "Exista o postare nouă",
-    "there-are-new-posts": "Există %1 postări noi",
-    "click-here-to-reload": "Apăsaţi aici pentru a reîncărca."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/ro/register.json b/public/language/ro/register.json
index 98070948b5..c637855762 100644
--- a/public/language/ro/register.json
+++ b/public/language/ro/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Înregistrare",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "Implicit, adresa ta de email va fi ascunsă.",
     "help.username_restrictions": "Un nume de utilizator între %1 și %2 caractere. Alți utilizatori te pot menționa cu @<span id='yourUsername'>utilizator</span>.",
diff --git a/public/language/ro/search.json b/public/language/ro/search.json
index f6d835d032..e22caca038 100644
--- a/public/language/ro/search.json
+++ b/public/language/ro/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 rezultat(e) pentru \"%2\", (%3 secunde)",
     "no-matches": "Nu a fost găsit nici un rezultat",
     "advanced-search": "Căutare avansată",
     "in": "În",
-    "titles": "Titluri",
-    "titles-posts": "Titluri şi Mesaje",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Postat de",
-    "in-categories": "În Categorii",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Search child categories",
     "has-tags": "Has tags",
     "reply-count": "Numărul de răspunsuri",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Cel puţin",
     "at-most": "Cel mult",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Ora mesajului",
     "votes": "Votes",
     "newer-than": "Mai noi decât",
@@ -28,7 +48,22 @@
     "three-months": "Trei luni",
     "six-months": "Şase luni",
     "one-year": "Un an",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sortează după",
+    "sort": "Sort",
     "last-reply-time": "Last reply time",
     "topic-title": "Topic title",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Category",
     "descending": "In descending order",
     "ascending": "In ascending order",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Save preferences",
     "clear-preferences": "Clear preferences",
     "search-preferences-saved": "Search preferences saved",
     "search-preferences-cleared": "Search preferences cleared",
     "show-results-as": "Show results as",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/ro/social.json b/public/language/ro/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/ro/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/ro/tags.json b/public/language/ro/tags.json
index 1af89c4cd1..b314244d2e 100644
--- a/public/language/ro/tags.json
+++ b/public/language/ro/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Nu există nici un subiect cu acest tag.",
+    "no-tags-found": "No tags found",
     "tags": "Taguri",
     "enter_tags_here": "Introduceți tagurile aici, fiecare tag trebuie să conțină între %1 și %2 caractere.",
     "enter_tags_here_short": "Introdu taguri...",
diff --git a/public/language/ro/topic.json b/public/language/ro/topic.json
index 9fc37572c1..e0f3c3a1db 100644
--- a/public/language/ro/topic.json
+++ b/public/language/ro/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Click here to return to the last read post in this thread.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Curăță Subiect",
     "thread_tools.purge_confirm": "Ești sigur că vrei sa cureți acest subiect?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Mesaj mutat!",
     "fork_topic": "Bifurcă Subiect",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Apasă pe mesajele care vrei sa le bifurci",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Nu a fost selectat nici un mesaj!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Introdu numele subiectului aici ...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Renunță",
     "composer.submit": "Trimite",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Îi raspunde lui %1",
     "composer.new_topic": "Subiect Nou",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/ro/user.json b/public/language/ro/user.json
index d0c9f264b1..3080bbb403 100644
--- a/public/language/ro/user.json
+++ b/public/language/ro/user.json
@@ -43,6 +43,7 @@
     "followers": "Urmărit de",
     "following": "Îi urmărește pe",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Uploadează poză nouă",
     "upload_new_picture_from_url": "Uploadează poză nouă cu URL",
     "current_password": "Parola curentă",
+    "new_password": "New Password",
     "change_password": "Schimbă Parola",
     "change_password_error": "Parola invalidă!",
     "change_password_error_wrong_current": "Parola ta curentă nu este corectă!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paginate topics and posts instead of using infinite scroll",
     "topics_per_page": "Subiecte pe pagină",
     "posts_per_page": "Mesaje pe pagină",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/ro/users.json b/public/language/ro/users.json
index bda605e6a8..3706537ceb 100644
--- a/public/language/ro/users.json
+++ b/public/language/ro/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Ultimii Utilizatori",
     "top_posters": "Top Utilizatori",
     "most_reputation": "Cei mai apreciați utilizatori",
     "most_flags": "Cele mai multe flaguri",
     "search": "Căutare",
     "enter_username": "Introdu un nume de utilizator pentru a căuta",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Încarcă mai multe",
     "users-found-search-took": "%1 utilizator(i) găsiți! Căutarea a durat %2 secunde.",
     "filter-by": "Filtrează după",
diff --git a/public/language/ru/admin/admin.json b/public/language/ru/admin/admin.json
index 256c3aa5f0..ce1fae1d52 100644
--- a/public/language/ru/admin/admin.json
+++ b/public/language/ru/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Панель администратора NodeBB",
 	"settings-header-contents": "Содержание",
-	"changes-saved": "Изменения сохранены",
-	"changes-saved-message": "Ваши изменения в конфигурации NodeBB были сохранены",
 	"changes-not-saved": "Изменения не сохранены",
 	"changes-not-saved-message": "Произошла ошибка NodeBB при сохранении Ваших изменений (%1)"
 }
\ No newline at end of file
diff --git a/public/language/ru/admin/advanced/cache.json b/public/language/ru/admin/advanced/cache.json
index 42f134ea42..dbef997c8b 100644
--- a/public/language/ru/admin/advanced/cache.json
+++ b/public/language/ru/admin/advanced/cache.json
@@ -1,8 +1,8 @@
 {
 	"post-cache": "Кэш сообщений",
-	"group-cache": "Group Cache",
-	"local-cache": "Local Cache",
-	"object-cache": "Object Cache",
+	"group-cache": "Кеш групп",
+	"local-cache": "Локальный кеш",
+	"object-cache": "Кеш объектов",
 	"percent-full": "Заполнен на%1%",
 	"post-cache-size": "Размер кэша сообщений",
 	"items-in-cache": "Закешировано элементов"
diff --git a/public/language/ru/admin/appearance/customise.json b/public/language/ru/admin/appearance/customise.json
index dfb96c7a8d..2e7ef06009 100644
--- a/public/language/ru/admin/appearance/customise.json
+++ b/public/language/ru/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Пользовательский CSS/LESS",
-	"custom-css.description": "Добавьте собственные стили CSS/LESS. Они будут применяться в последнюю очередь, после всех остальных.",
-	"custom-css.enable": "Включить пользовательский CSS/LESS",
+	"custom-css": "Пользовательский CSS/SASS",
+	"custom-css.description": "Добавьте собственный CSS/SASS. Они будут применены в последнюю очередь, после всех остальных стилей страницы.",
+	"custom-css.enable": "Включить пользовательский CSS/SASS",
 
 	"custom-js": "Пользовательский JavaScript",
 	"custom-js.description": "Добавьте собственный JS-код. Он будет выполнен после полной загрузки страницы.",
diff --git a/public/language/ru/admin/dashboard.json b/public/language/ru/admin/dashboard.json
index 486da5be1c..c2034236cc 100644
--- a/public/language/ru/admin/dashboard.json
+++ b/public/language/ru/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Вернуться на Панель управления",
 	"details.no-users": "Никто не присоединился за выбранный отрезок времени",
 	"details.no-topics": "Сообщений за выбранный отрезок времени не было",
-	"details.no-searches": "Поисковых запросов еще не было",
+	"details.no-searches": "Поисковых запросов еще не было в выбранный промежуток времени",
 	"details.no-logins": "Попыток входа за выбранный отрезок времени не было",
 	"details.logins-static": "NodeBB хранит данные о сессиях за %1 дней, так что таблица ниже покажет только недавние активные сессии",
-	"details.logins-login-time": "Время входа"
+	"details.logins-login-time": "Время входа",
+	"start": "Начало",
+	"end": "Окончание",
+	"filter": "Фильтр"
 }
diff --git a/public/language/ru/admin/extend/widgets.json b/public/language/ru/admin/extend/widgets.json
index 7d28c433c4..4a8666d7d2 100644
--- a/public/language/ru/admin/extend/widgets.json
+++ b/public/language/ru/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Отсутствует",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Панель",
-	"container.panel-header": "Заголовок панели",
-	"container.panel-body": "Тело панели",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Уведомление",
 
 	"alert.confirm-delete": "Вы уверены, что хотите удалить этот виджет?",
diff --git a/public/language/ru/admin/manage/groups.json b/public/language/ru/admin/manage/groups.json
index 420c13e5e5..b099ed153f 100644
--- a/public/language/ru/admin/manage/groups.json
+++ b/public/language/ru/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Отменить",
 
 	"edit.no-users-found": "Участников не найдено",
-	"edit.confirm-remove-user": "Вы уверены, что хотите удалить этого участника?",
-	"edit.save-success": "Изменения сохранены!"
+	"edit.confirm-remove-user": "Вы уверены, что хотите удалить этого участника?"
 }
\ No newline at end of file
diff --git a/public/language/ru/admin/manage/privileges.json b/public/language/ru/admin/manage/privileges.json
index 87e9ba1af6..804c318f92 100644
--- a/public/language/ru/admin/manage/privileges.json
+++ b/public/language/ru/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Вы уверены, что хотите наделить правами модерации эту группу?</strong> Эта группа является публичной, и к ней может присоединиться любой пользователь.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Вы действительно хотите сохранить эти права доступа",
-	"alert.saved": "Изменения прав доступа сохранены и применены",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Изменения прав доступа отменены",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/ru/admin/manage/users.json b/public/language/ru/admin/manage/users.json
index b675fe328c..9e3152372b 100644
--- a/public/language/ru/admin/manage/users.json
+++ b/public/language/ru/admin/manage/users.json
@@ -1,6 +1,6 @@
 {
 	"users": "Пользователи",
-	"edit": "Actions",
+	"edit": "Действия",
 	"make-admin": "Сделать администратором",
 	"remove-admin": "Удалить администратора",
 	"validate-email": "Подтвердить адрес электронной почты",
diff --git a/public/language/ru/admin/settings/api.json b/public/language/ru/admin/settings/api.json
index 6fc2a1e8ac..df16296e7d 100644
--- a/public/language/ru/admin/settings/api.json
+++ b/public/language/ru/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "ID пользователя",
 	"uid-help-text": "Укажите идентификатор пользователя, который нужно связать с этим токеном. Если идентификатор пользователя равен <code>0</code>, он будет считаться <em>главным</em> токеном, который может предполагать идентичность других пользователей на основе параметра <code>_uid</code>.",
 	"description": "Описание",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "Описания нет.",
 	"token-on-save": "Токен будет сгенерирован после сохранения формы"
 }
\ No newline at end of file
diff --git a/public/language/ru/admin/settings/general.json b/public/language/ru/admin/settings/general.json
index 06263dbb2d..322f03e1ef 100644
--- a/public/language/ru/admin/settings/general.json
+++ b/public/language/ru/admin/settings/general.json
@@ -3,7 +3,7 @@
 	"title": "Название сайта",
 	"title.short": "Краткий заголовок",
 	"title.short-placeholder": "Если здесь ничего не указано, будет использовано название сайта",
-	"title.url": "Title Link URL",
+	"title.url": "URL ссылки на заголовок",
 	"title.url-placeholder": "URL для названия сайта",
 	"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
 	"title.name": "Название вашего сообщества",
@@ -20,14 +20,14 @@
 	"logo.image": "Логотип в шапке сайта",
 	"logo.image-placeholder": "Путь к файлу логотипа ",
 	"logo.upload": "Загрузить",
-	"logo.url": "Logo Link URL",
+	"logo.url": "URL ссылки на логотип",
 	"logo.url-placeholder": "URL для логотипа",
 	"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
 	"logo.alt-text": "Замещающий текст",
 	"log.alt-text-placeholder": "Текст, который появится, если логотип не загрузится или загрузка изображений будет отключена",
 	"favicon": "Favicon",
 	"favicon.upload": "Загрузить",
-	"pwa": "Progressive Web App",
+	"pwa": "Прогрессивное веб-приложение (Progressive Web Apps)",
 	"touch-icon": "Touch Icon",
 	"touch-icon.upload": "Загрузить",
 	"touch-icon.help": "Recommended size and format: 512x512, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
@@ -35,10 +35,10 @@
 	"maskable-icon.help": "Recommended size and format: 512x512, PNG format only. If no maskable icon is specified, NodeBB will fall back to the Touch Icon.",
 	"outgoing-links": "Внешние ссылки",
 	"outgoing-links.warning-page": "Предупреждать, когда пользователь переходит по внешним ссылкам",
-	"search": "Search",
-	"search-default-in": "Search In",
-	"search-default-in-quick": "Quick Search In",
-	"search-default-sort-by": "Sort by",
+	"search": "Поиск",
+	"search-default-in": "Поиск в",
+	"search-default-in-quick": "Быстрый Поиск в",
+	"search-default-sort-by": "Сортировано по",
 	"outgoing-links.whitelist": "Список доменов, для которых страница предупреждения отключена",
 	"site-colors": "Цвета сайта",
 	"theme-color": "Цвет темы",
@@ -46,5 +46,5 @@
 	"background-color-help": "Эти цвета используются на экране-заставке, если сайт установлен как приложение PWA",
 	"undo-timeout": "Undo Timeout",
 	"undo-timeout-help": "Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
-	"topic-tools": "Topic Tools"
+	"topic-tools": "Управление темой"
 }
diff --git a/public/language/ru/admin/settings/navigation.json b/public/language/ru/admin/settings/navigation.json
index d5ad4c9534..5baa138251 100644
--- a/public/language/ru/admin/settings/navigation.json
+++ b/public/language/ru/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Группы:",
 	"open-new-window": "Открывать в новом окне",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Удалить",
 	"btn.disable": "Выключить",
diff --git a/public/language/ru/admin/settings/user.json b/public/language/ru/admin/settings/user.json
index cfd9c08a47..04acfa8bfb 100644
--- a/public/language/ru/admin/settings/user.json
+++ b/public/language/ru/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Дни",
 	"session-time-seconds": "Секунды",
 	"session-time-help": "Эти значения используются для определения того, как долго участник остается в системе, когда он включает &quot;Запомнить меня&quot; при входе. Обратите внимание на то, что будет использовано только одно из этих значений. Если значение <i>секунды</i> отсутствует, мы возвращаемся к значению <i>дни</i>. Если значение <i>дни</i> отсутствует, по умолчанию используется значение <i>14 дней</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Через сколько минут пользователь будет считаться неактивным",
 	"online-cutoff-help": "Если участник не выполняет никаких действий в течение этого времени, он считается неактивным и не получает обновлений в реальном времени.",
 	"registration": "Регистрация пользователей",
diff --git a/public/language/ru/error.json b/public/language/ru/error.json
index a186714e8c..180d8da922 100644
--- a/public/language/ru/error.json
+++ b/public/language/ru/error.json
@@ -2,7 +2,7 @@
     "invalid-data": "Неверные данные",
     "invalid-json": "Некорректный JSON",
     "wrong-parameter-type": "A value of type %3 was expected for property `%1`, but %2 was received instead",
-    "required-parameters-missing": "Required parameters were missing from this API call: %1",
+    "required-parameters-missing": "Обязательные параметры отсутствуют в API запросе: %1",
     "not-logged-in": "Вы не вошли на сайт.",
     "account-locked": "Учётная запись временно заблокирована",
     "search-requires-login": "Поиск доступен только для зарегистрированных участников. Пожалуйста, войдите или зарегистрируйтесь.",
@@ -11,7 +11,7 @@
     "invalid-tid": "Неправильный ID темы",
     "invalid-pid": "Неправильный ID сообщения",
     "invalid-uid": "Неправильный ID пользователя",
-    "invalid-mid": "Invalid Chat Message ID",
+    "invalid-mid": "Некорректный ID сообщения",
     "invalid-date": "Должна быть указана действительная дата.",
     "invalid-username": "Неправильное имя пользователя",
     "invalid-email": "Неправильный адрес электронной почты",
@@ -28,18 +28,18 @@
     "invalid-event": "Недействительное событие: %1",
     "local-login-disabled": "Локальная система входа отключена для не-привилегированных учетных записей.",
     "csrf-invalid": "Нам не удалось вас найти из-за просроченной сессии. Попробуйте ещё раз.",
-    "invalid-path": "Invalid path",
-    "folder-exists": "Folder exists",
+    "invalid-path": "Некорректный путь",
+    "folder-exists": "Папка существует",
     "invalid-pagination-value": "Неправильно указан номер страницы. Значение должно быть в диапазоне от %1 до %2",
     "username-taken": "Это имя пользователя уже занято",
     "email-taken": "Пользователь с таким адресом электронной почты уже зарегистрирован",
     "email-nochange": "The email entered is the same as the email already on file.",
     "email-invited": "Электронная почта уже была приглашена",
-    "email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.",
+    "email-not-confirmed": "Вы не сможете отправлять сообщения, пока ваш адрес электронной почты не подтверждён. Пожалуйста, нажмите здесь, чтобы подтвердить его.",
     "email-not-confirmed-chat": "Вы не можете оставлять сообщения, пока ваша электронная почта не подтверждена. Отправить письмо с кодом подтверждения повторно.",
     "email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.",
     "no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.",
-    "user-doesnt-have-email": "User \"%1\" does not have an email set.",
+    "user-doesnt-have-email": "У пользователя %1 не задана электронная почта.",
     "email-confirm-failed": "По техническим причинам мы не можем подтвердить ваш адрес электронной почты. Приносим вам наши извинения, пожалуйста, попробуйте позже.",
     "confirm-email-already-sent": "Сообщение для подтверждения регистрации уже выслано на ваш адрес электронной почты. Повторная отправка возможна через %1 мин.",
     "sendmail-not-found": "Не можем найти sendmail, убедитесь что он установлен и управляется NodeBB.",
@@ -61,8 +61,8 @@
     "no-group": "Такой группы не существует",
     "no-user": "Такого пользователя не существует",
     "no-teaser": "Такого тизера не существует",
-    "no-flag": "Flag does not exist",
-    "no-chat-room": "Chat room does not exist",
+    "no-flag": "Жалоба не существует",
+    "no-chat-room": "Комната чата не существует.",
     "no-privileges": "У вас недостаточно прав для этого действия.",
     "category-disabled": "Категория отключена",
     "topic-locked": "Тема закрыта",
@@ -89,18 +89,19 @@
     "category-not-selected": "Категория не выбрана",
     "too-many-posts": "Для того, чтобы разместить новое сообщение, нужно подождать %1 сек.",
     "too-many-posts-newbie": "Для того, чтобы разместить новое сообщение, нужно подождать %1 сек. Это время уменьшится, как только ваша репутация вырастет до %2.",
-    "already-posting": "You are already posting",
+    "already-posting": "Вы уже опубликовали запись",
     "tag-too-short": "Слишком короткая метка. Минимум %1 символов.",
     "tag-too-long": "Слишком длинная метка. Максимум %1 символов.",
     "not-enough-tags": "Пожалуйста, добавьте метки в ваше сообщение. У темы должно быть минимум %1 меток.",
     "too-many-tags": "Пожалуйста, уберите несколько меток из вашего сообщения. У темы должно быть не более %1 меток.",
     "cant-use-system-tag": "Вы не можете использовать эту системную метку.",
-    "cant-remove-system-tag": "You can not remove this system tag.",
+    "cant-remove-system-tag": "Вы не можете удалить эту системную метку.",
     "still-uploading": "Пожалуйста, подождите завершения загрузки.",
     "file-too-big": "Слишком большой файл. Максимальный размер: %1 Кбайт.",
     "guest-upload-disabled": "Загрузка файлов для гостей отключена. Чтобы загрузить файл, пожалуйста, войдите или зарегистрируйтесь на сайте.",
     "cors-error": "Невозможно загрузить изображение из-за некорректного CORS",
     "upload-ratelimit-reached": "Вы загрузили слишком много файлов за один раз. Пожалуйста, повторите попытку позже.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Пожалуйста, выберите дату в будущем",
     "invalid-schedule-date": "Пожалуйста, выберите нужную дату и время",
     "cant-pin-scheduled": "Запланированные темы нельзя закрепить или открепить.",
@@ -113,7 +114,7 @@
     "cant-mute-other-admins": "You can't mute other admins!",
     "user-muted-for-hours": "You have been muted, you will be able to post in %1 hour(s)",
     "user-muted-for-minutes": "You have been muted, you will be able to post in %1 minute(s)",
-    "cant-make-banned-users-admin": "You can't make banned users admin.",
+    "cant-make-banned-users-admin": "Нельзя сделать администраторами заблокированных пользователей.",
     "cant-remove-last-admin": "Вы единственный администратор. Чтобы отказаться от своих полномочий, пожалуйста, назначьте администратором другого участника.",
     "account-deletion-disabled": "Удаление аккаунта отключено",
     "cant-delete-admin": "Чтобы удалить эту учётную запись, сначала надо снять с неё полномочия администратора.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Запрос на вступление в группу уже отправлен",
     "group-join-disabled": "Сейчас вы не можете присоединиться к этой группе",
     "group-leave-disabled": "Сейчас вы не можете покинуть эту группу",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Это сообщение уже удалено",
     "post-already-restored": "Это сообщение уже восстановлено",
     "topic-already-deleted": "Тема уже удалена",
@@ -157,29 +160,29 @@
     "chat-deleted-already": "Это сообщение чата уже удалено.",
     "chat-restored-already": "Это сообщение чата уже было восстановлено.",
     "chat-room-does-not-exist": "Комната чата не существует.",
-    "cant-add-users-to-chat-room": "Can't add users to chat room.",
-    "cant-remove-users-from-chat-room": "Can't remove users from chat room.",
-    "chat-room-name-too-long": "Chat room name too long.",
+    "cant-add-users-to-chat-room": "Нельзя добавить пользователей в комнату.",
+    "cant-remove-users-from-chat-room": "Нельзя удалять пользователей из комнаты.",
+    "chat-room-name-too-long": "Название чат комнаты слишком длинное, пожалуйста, сократите его.",
     "already-voting-for-this-post": "Вы уже проголосовали за это сообщение.",
     "reputation-system-disabled": "Система репутации отключена.",
     "downvoting-disabled": "Понижение рейтинга отключено",
-    "not-enough-reputation-to-chat": "You need %1 reputation to chat",
-    "not-enough-reputation-to-upvote": "You need %1 reputation to upvote",
-    "not-enough-reputation-to-downvote": "You need %1 reputation to downvote",
-    "not-enough-reputation-to-flag": "You need %1 reputation to flag this post",
-    "not-enough-reputation-min-rep-website": "You need %1 reputation to add a website",
-    "not-enough-reputation-min-rep-aboutme": "You need %1 reputation to add an about me",
-    "not-enough-reputation-min-rep-signature": "You need %1 reputation to add a signature",
-    "not-enough-reputation-min-rep-profile-picture": "You need %1 reputation to add a profile picture",
-    "not-enough-reputation-min-rep-cover-picture": "You need %1 reputation to add a cover picture",
+    "not-enough-reputation-to-chat": "Нужно %1 репутации чтобы писать в чат.",
+    "not-enough-reputation-to-upvote": "Нужно %1 репутации чтобы проголосовать положительно.",
+    "not-enough-reputation-to-downvote": "Нужно %1 репутации чтобы проголосовать против.",
+    "not-enough-reputation-to-flag": "Нужно %1 репутации чтобы пожаловаться на пост.",
+    "not-enough-reputation-min-rep-website": "Нужно %1 репутации чтобы добавить сайт.",
+    "not-enough-reputation-min-rep-aboutme": "Нужно %1 репутации чтобы добавить обо мне.",
+    "not-enough-reputation-min-rep-signature": "Нужно %1 репутации чтобы добавить подпись.",
+    "not-enough-reputation-min-rep-profile-picture": "Нужно %1 репутации чтобы добавить фото профиля.",
+    "not-enough-reputation-min-rep-cover-picture": "Нужно %1 репутации чтобы добавить заставку профиля.",
     "post-already-flagged": "Вы уже пожаловались на это сообщение",
     "user-already-flagged": "Вы уже пожаловались на этого пользователя",
     "post-flagged-too-many-times": "На это сообщение уже пожаловались другие пользователи",
     "user-flagged-too-many-times": "На этого пользователя уже пожаловались другие пользователи",
     "cant-flag-privileged": "Вам не разрешено оставлять жалобы на профили или контент привилегированных пользователей (Модераторов/Глобальных модераторов/Администраторов)",
     "self-vote": "Вы не можете голосовать за свои собственные сообщения",
-    "too-many-upvotes-today": "You can only upvote %1 times a day",
-    "too-many-upvotes-today-user": "You can only upvote a user %1 times a day",
+    "too-many-upvotes-today": "Вы можете проголосовать за только %1 раз за день",
+    "too-many-upvotes-today-user": "Вы можете проголосовать за участника только %1 раз за день.",
     "too-many-downvotes-today": "Вы можете проголосовать против только %1 раз за день",
     "too-many-downvotes-today-user": "Вы можете проголосовать против участника только %1 раз за день.",
     "reload-failed": "NodeBB обнаружил проблему при перезагрузке: \"%1\". NodeBB продолжит работать с существующими ресурсами клиента, но вы должны отменить то, что сделали перед перезагрузкой.",
@@ -218,11 +221,12 @@
     "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body",
     "api.400": "Something was wrong with the request payload you passed in.",
     "api.401": "A valid login session was not found. Please log in and try again.",
-    "api.403": "You are not authorised to make this call",
-    "api.404": "Invalid API call",
+    "api.403": "У вас нет прав доступа, чтобы сделать этот запрос",
+    "api.404": "Неверный API запрос",
     "api.426": "HTTPS is required for requests to the write api, please re-send your request via HTTPS",
-    "api.429": "You have made too many requests, please try again later",
+    "api.429": "Вы сделали слишком много запросов, пожалуйста, повторите попытку позже.",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "Ресурс к которому вы пытаетесь получить доступ требует авторизации."
 }
\ No newline at end of file
diff --git a/public/language/ru/flags.json b/public/language/ru/flags.json
index e0eef3de53..47ac700c18 100644
--- a/public/language/ru/flags.json
+++ b/public/language/ru/flags.json
@@ -3,31 +3,33 @@
 	"reports": "Жалобы",
 	"first-reported": "Первая жалоба",
 	"no-flags": "Ура! Жалоб нет.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Исполнитель",
 	"update": "Обновить",
 	"updated": "Обновлено",
 	"resolved": "Решено",
 	"target-purged": "Сообщение, на которое поступила жалоба, было удалено и больше не доступно.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Жалоб в день",
 	"quick-filters": "Быстрые фильтры",
 	"filter-active": "К списку жалоб применяется один или несколько фильтров",
 	"filter-reset": "Убрать фильтры",
 	"filters": "Опции фильтра",
-	"filter-reporterId": "UID сообщившего",
-	"filter-targetUid": "UID нарушителя",
+	"filter-reporterId": "Кто сообщил",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Тип жалобы",
 	"filter-type-all": "Весь контент",
 	"filter-type-post": "Сообщение",
 	"filter-type-user": "Пользователь",
 	"filter-state": "Состояние",
-	"filter-assignee": "UID исполнителя",
+	"filter-assignee": "Исполнитель",
 	"filter-cid": "Категория",
 	"filter-quick-mine": "Назначено мне",
 	"filter-cid-all": "Все категории",
 	"apply-filters": "Применить фильтры",
 	"more-filters": "Больше фильтров",
-	"fewer-filters": "Fewer Filters",
+	"fewer-filters": "Меньше фильтров",
 
 	"quick-actions": "Быстрые действия",
 	"flagged-user": "Отмеченный пользователь",
@@ -38,19 +40,20 @@
 	"delete-post": "Удалить сообщение",
 	"purge-post": "Стереть удалённое сообщение",
 	"restore-post": "Восстановить сообщение",
-	"delete": "Delete Flag",
+	"delete": "Удалить жалобу",
 
 	"user-view": "Открыть профиль",
 	"user-edit": "Изменить профиль",
 
 	"notes": "Примечания к жалобе",
 	"add-note": "Добавить примечание",
+	"edit-note": "Edit Note",
 	"no-notes": "Нет примечаний.",
 	"delete-note-confirm": "Вы уверены, что хотите удалить это примечание к жалобе?",
-	"delete-flag-confirm": "Are you sure you want to delete this flag?",
+	"delete-flag-confirm": "Вы уверены, что хотите удалить эту жалобу?",
 	"note-added": "Примечание добавлено",
 	"note-deleted": "Примечание удалено",
-	"flag-deleted": "Flag Deleted",
+	"flag-deleted": "Жалоба удалена",
 
 	"history": "История жалоб участника",
 	"no-history": "Нет истории жалобы.",
@@ -85,5 +88,5 @@
 	"bulk-resolve": "Решить жалобы",
 	"bulk-success": "Жалоба %1 обновлена",
 	"flagged-timeago-readable": "Получена жалоба <span class=\"timeago\" title=\"%1\"></span>(%2)",
-  	"auto-flagged": "[Auto Flagged] Received %1 downvotes."
+  	"auto-flagged": "[Автожалоба] Получено %1 голосов против."
 }
\ No newline at end of file
diff --git a/public/language/ru/global.json b/public/language/ru/global.json
index 7cce07e5fe..7c3882bd76 100644
--- a/public/language/ru/global.json
+++ b/public/language/ru/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Закрыть",
     "403.title": "Доступ запрещен",
     "403.message": "Вы пытаетесь перейти на страницу, к которой у вас нет доступа.",
-    "403.login": "Возможно вам следует <a href='%1/login'>войти под своей учётной записью</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Страница не найдена",
-    "404.message": "Вы пытаетесь перейти на страницу, которой не существует. Начните с <a href='%1/'>главной страницы</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Внутренняя ошибка.",
     "500.message": "Упс! Похоже, что-то пошло не так!",
     "400.title": "Неверный запрос.",
-    "400.message": "Похоже, эта ссылка имеет неправильный формат. Пожалуйста, проверьте её и повторите попытку или вернитесь на <a href='%1/'>главную страницу</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Зарегистрироваться",
     "login": "Войти",
     "please_log_in": "Пожалуйста, войдите под своей учётной записью",
@@ -37,9 +37,13 @@
     "header.notifications": "Уведомления",
     "header.search": "Поиск",
     "header.profile": "Профиль",
+    "header.account": "Учётная запись",
     "header.navigation": "Навигация",
+    "header.manage": "Manage",
+    "header.drafts": "Черновики",
     "notifications.loading": "Загружаем уведомления",
     "chats.loading": "Загружаем чаты",
+    "drafts.loading": "Загружаем черновики",
     "motd.welcome": "Добро пожаловать в NodeBB, платформу будущего для общения.",
     "previouspage": "Предыдущая страница",
     "nextpage": "Следующая страница",
@@ -54,9 +58,10 @@
     "users": "Пользователи",
     "topics": "Темы",
     "posts": "Сообщения",
-    "x-posts": "%1 сообщений",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Лучшие сообщения",
-    "controversial": "Controversial",
+    "controversial": "Спорные",
     "votes": "Голоса",
     "x-votes": "%1 голосов",
     "voters": "Проголосовавшие",
@@ -69,9 +74,10 @@
     "reputation": "Репутация",
     "lastpost": "Последнее сообщение",
     "firstpost": "Первое сообщение",
+    "about": "Сводка",
     "read_more": "Читать далее",
     "more": "Подробнее",
-    "none": "None",
+    "none": "Нет",
     "posted_ago_by_guest": "создано %1 гостем",
     "posted_ago_by": "сообщений %1 от %2",
     "posted_ago": "написал %1",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 написал %2",
     "guest_posted_ago": "Гость написал %1",
     "last_edited_by": "отредактировано %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Нет новых сообщений",
     "norecenttopics": "Нет новых тем",
     "recentposts": "Последние сообщения",
     "recentips": "Последние IP-адреса, с которых был осуществлен вход",
     "moderator_tools": "Инструменты модератора",
+    "status": "Статус",
     "online": "В сети",
     "away": "Не активен",
     "dnd": "Не беспокоить",
@@ -122,5 +130,7 @@
     "edited": "Отредактированный",
     "disabled": "Отключено",
     "select": "Выбрать",
-    "user-search-prompt": "Введите что-нибудь здесь, чтобы найти пользователей..."
+    "user-search-prompt": "Введите что-нибудь здесь, чтобы найти пользователей...",
+    "hidden": "не показывается",
+    "sort": "Сортировка"
 }
\ No newline at end of file
diff --git a/public/language/ru/groups.json b/public/language/ru/groups.json
index 6ae94aa1f2..15d4343b0c 100644
--- a/public/language/ru/groups.json
+++ b/public/language/ru/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Группы",
+    "members": "Members",
     "view_group": "Просмотр группы",
     "owner": "Администратор группы",
     "new_group": "Создать группу",
diff --git a/public/language/ru/modules.json b/public/language/ru/modules.json
index 53fd5ed2de..c52c7698e1 100644
--- a/public/language/ru/modules.json
+++ b/public/language/ru/modules.json
@@ -1,13 +1,17 @@
 {
     "chat.chatting_with": "Чат с",
-    "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder": "Введите сообщение, перетащите изображения, нажмите enter для отправки",
+    "chat.placeholder.mobile": "Введите сообщение здесь",
     "chat.scroll-up-alert": "Вы просматриваете старые сообщения, щелкните здесь, чтобы перейти к последнему сообщению.",
+    "chat.usernames-and-x-others": "%1 пользователей и %2 других",
+    "chat.chat-with-usernames": "Чат с %1",
+    "chat.chat-with-usernames-and-x-others": "Чат с %1 и %2 других",
     "chat.send": "Отправить",
     "chat.no_active": "У вас нет активных чатов.",
     "chat.user_typing": "%1 пишет...",
     "chat.user_has_messaged_you": "Пользователь %1 отправил вам сообщение.",
-    "chat.see_all": "All chats",
-    "chat.mark_all_read": "Mark all read",
+    "chat.see_all": "Все чаты",
+    "chat.mark_all_read": "Пометить как прочитанное",
     "chat.no-messages": "Пожалуйста, выберите собеседника для просмотра истории сообщений",
     "chat.no-users-in-room": "В этой комнате пусто",
     "chat.recent-chats": "Последние переписки",
@@ -42,6 +46,7 @@
     "composer.compose": "Редактор сообщений",
     "composer.show_preview": "Показать предпросмотр сообщения",
     "composer.hide_preview": "Скрыть предпросмотр",
+    "composer.help": "Помощь",
     "composer.user_said_in": "Пользователь %1 написал в %2:",
     "composer.user_said": "Пользователь %1 написал:",
     "composer.discard": "Вы уверены, что передумали писать это сообщение?",
@@ -54,7 +59,7 @@
     "composer.formatting.strikethrough": "Зачеркнуть",
     "composer.formatting.code": "Код",
     "composer.formatting.link": "Ссылка",
-    "composer.formatting.picture": "Image Link",
+    "composer.formatting.picture": "Ссылка на изображение",
     "composer.upload-picture": "Загрузить изображение",
     "composer.upload-file": "Загрузить файл",
     "composer.zen_mode": "Полноэкранный режим",
@@ -65,11 +70,14 @@
     "composer.schedule-time": "Время",
     "composer.cancel-scheduling": "Отменить отложенную публикацию",
     "composer.set-schedule-date": "Установить дату",
+    "composer.discard-all-drafts": "Удалить все черновики",
+    "composer.no-drafts": "У вас нет черновиков",
+    "composer.discard-draft-confirm": "Удалить все черновики?",
     "bootbox.ok": "ОК",
     "bootbox.cancel": "Отмена",
     "bootbox.confirm": "Подтвердить",
-    "bootbox.submit": "Submit",
-    "bootbox.send": "Send",
+    "bootbox.submit": "Отправить",
+    "bootbox.send": "Отправить",
     "cover.dragging_title": "Позиционирование обложки",
     "cover.dragging_message": "Перетащите обложку на желаемое место и нажмите \"Сохранить\"",
     "cover.saved": "Обложка и её расположение сохранены",
diff --git a/public/language/ru/notifications.json b/public/language/ru/notifications.json
index 9331b0defb..1f3ccbf31c 100644
--- a/public/language/ru/notifications.json
+++ b/public/language/ru/notifications.json
@@ -1,8 +1,8 @@
 {
     "title": "Уведомления",
     "no_notifs": "Для вас нет новых уведомлений",
-    "see_all": "All notifications",
-    "mark_all_read": "Mark all read",
+    "see_all": "Все уведомления",
+    "mark_all_read": "Пометить как прочитанное",
     "back_to_home": "Назад к %1",
     "outgoing_link": "Внешняя ссылка",
     "outgoing_link_message": "Вы сейчас читаете: %1",
diff --git a/public/language/ru/pages.json b/public/language/ru/pages.json
index fb4df23a3a..468bd44909 100644
--- a/public/language/ru/pages.json
+++ b/public/language/ru/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Категории, которые отслеживает %1",
     "account/bookmarks": "Закладки %1",
     "account/settings": "Настройки учётной записи",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Темы, которые %1 отслеживает",
     "account/ignored": "Темы, которые %1 игнорирует",
     "account/upvoted": "Понравилось пользователю %1",
diff --git a/public/language/ru/post-queue.json b/public/language/ru/post-queue.json
index 48a5b5a918..04a7ddbe65 100644
--- a/public/language/ru/post-queue.json
+++ b/public/language/ru/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Очередь на публикацию",
-	"description": "В очереди на публикацию нет сообщений. <br> Чтобы включить эту функцию, перейдите в <a href=\"%1\">Настройки &rarr; Сообщения &rarr; Очередь на публикацию</a> и включите <strong>Очередь на публикацию</strong>.",
+	"no-queued-posts": "Нет записей в очереди",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Назад к Очереди Записей",
 	"user": "Пользователь",
+	"when": "Когда",
 	"category": "Категория",
 	"title": "Название",
 	"content": "Содержимое",
@@ -15,17 +19,22 @@
 	"topic": "Тема",
 	"accept": "Подтвердить",
 	"reject": "Отклонить",
-	"remove": "Remove",
-	"notify": "Notify",
-	"notify-user": "Notify User",
-	"confirm-reject": "Do you want to reject this post?",
-	"bulk-actions": "Bulk Actions",
-	"accept-all": "Accept All",
-	"accept-selected": "Accept Selected",
-	"reject-all": "Reject All",
-	"reject-all-confirm": "Do you want to reject all posts?",
-	"reject-selected": "Reject Selected",
-	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
-	"bulk-accept-success": "%1 posts accepted",
-	"bulk-reject-success": "%1 posts rejected"
+	"remove": "Удалить",
+	"notify": "Уведомить",
+	"notify-user": "Уведомить пользователя",
+	"confirm-reject": "Вы хотите отклонить эту запись?",
+	"confirm-remove": "Вы хотите удалить все записи?",
+	"bulk-actions": "Пакетные действия",
+	"accept-all": "Принять всё",
+	"accept-selected": "Принять выделенное",
+	"reject-all": "Отклонить всё",
+	"reject-all-confirm": "Вы хотите отклонить все записи?",
+	"reject-selected": "Отклонить выделенное",
+	"reject-selected-confirm": "Вы хотите отклонить %1 выбранных записей?",
+	"remove-all": "Удалить всё",
+	"remove-all-confirm": "Вы хотите удалить все записи?",
+	"remove-selected": "Удалить выделенное",
+	"remove-selected-confirm": "Вы хотите удалить %1 выбранные записи?",
+	"bulk-accept-success": "%1 записи одобрены",
+	"bulk-reject-success": "%1 записи отклонены"
 }
\ No newline at end of file
diff --git a/public/language/ru/recent.json b/public/language/ru/recent.json
index b852766c31..5f49c4a2ed 100644
--- a/public/language/ru/recent.json
+++ b/public/language/ru/recent.json
@@ -7,13 +7,5 @@
     "alltime": "За всё время",
     "no_recent_topics": "Нет свежих тем.",
     "no_popular_topics": "Популярные темы отсутствуют.",
-    "there-is-a-new-topic": "Опубликована новая тема.",
-    "there-is-a-new-topic-and-a-new-post": "Опубликована новая тема и новое сообщение.",
-    "there-is-a-new-topic-and-new-posts": "Опубликована новая тема и %1 новых сообщений.",
-    "there-are-new-topics": "Опубликовано %1 новых тем.",
-    "there-are-new-topics-and-a-new-post": "Опубликовано %1 новых тем и новое сообщение.",
-    "there-are-new-topics-and-new-posts": "Опубликовано %1 новых тем и %2 новых сообщений.",
-    "there-is-a-new-post": "Опубликовано новое сообщение.",
-    "there-are-new-posts": "Опубликовано %1 новых сообщений.",
-    "click-here-to-reload": "Нажмите здесь, чтобы обновить список."
+    "load-new-posts": "Загрузить новые сообщения"
 }
\ No newline at end of file
diff --git a/public/language/ru/register.json b/public/language/ru/register.json
index 3a9cca89d6..a9aae1128d 100644
--- a/public/language/ru/register.json
+++ b/public/language/ru/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Регистрация",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Отменить регистрацию",
     "help.email": "Ваш адрес электронной почты будет скрыт от других пользователей.",
     "help.username_restrictions": "Другие пользователи смогут упоминать вас в своих сообщениях таким образом: @<span id='yourUsername'>никнейм</span>. Длина имени пользователя: %1-%2 символов.",
diff --git a/public/language/ru/search.json b/public/language/ru/search.json
index 34ea66147d..eadc358984 100644
--- a/public/language/ru/search.json
+++ b/public/language/ru/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Введите текст для поиска",
     "results_matching": "Найдено %1 результатов по запросу: \"%2\". Время поиска: %3 с.",
     "no-matches": "Совпадений не найдено",
     "advanced-search": "Расширенный поиск",
     "in": "Где искать",
-    "titles": "Заголовки",
-    "titles-posts": "Заголовки и сообщения",
+    "in-titles": "В заголовках",
+    "in-titles-posts": "В заголовках и постах",
+    "in-posts": "В постах",
+    "in-categories": "В категориях",
+    "in-users": "В пользователях",
+    "in-tags": "В тегах",
+    "categories": "Категории",
+    "all-categories": "Все категории",
+    "categories-x": "Категории: %1",
+    "categories-watched-categories": "Категории: Отслеживаемые категории",
+    "type-a-category": "Введите категорию",
+    "tags": "Тэги",
+    "tags-x": "Метка: %1",
+    "type-a-tag": "Введите метку",
     "match-words": "Совпадающие слова",
+    "match-all-words": "Совпадение всех слов",
+    "match-any-word": "Совпадение любых слов",
     "all": "Все",
     "any": "Любые",
     "posted-by": "Автор",
-    "in-categories": "В категориях",
+    "posted-by-usernames": "Опубликовано %1",
+    "type-a-username": "Введите имя пользователя",
     "search-child-categories": "Искать во вложенных категориях",
     "has-tags": "Метки",
     "reply-count": "Кол-во ответов",
+    "replies": "Ответы",
+    "replies-atleast-count": "Отвечено: минимум %1",
+    "replies-atmost-count": "Отвечено: максимум %1",
     "at-least": "Как минимум",
     "at-most": "Максимум",
     "relevance": "Релевантности",
+    "time": "Время",
     "post-time": "Дата публикации",
     "votes": "Кол-ву голосов",
     "newer-than": "Не позже чем",
@@ -28,7 +48,22 @@
     "three-months": "Три месяца",
     "six-months": "Шесть месяцев",
     "one-year": "Год",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Сортировать по",
+    "sort": "Сортировка",
     "last-reply-time": "Времени последнего ответа",
     "topic-title": "Названию темы",
     "topic-votes": "Кол-ву голосов за тему",
@@ -39,11 +74,36 @@
     "category": "Категориям",
     "descending": "По возрастанию",
     "ascending": "По убыванию",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Сохранить",
     "save-preferences": "Сохранить настройки",
     "clear-preferences": "Очистить настройки",
     "search-preferences-saved": "Настройки поиска сохранены",
     "search-preferences-cleared": "Настройки поиска очищены",
     "show-results-as": "Показать результаты как:",
+    "show-results-as-topics": "Показать результаты как темы",
+    "show-results-as-posts": "Показать результаты как записи",
     "see-more-results": "Показать больше результатов (%1)",
     "search-in-category": "Искать в \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/ru/social.json b/public/language/ru/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/ru/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/ru/tags.json b/public/language/ru/tags.json
index 8377ddf504..827b6d6630 100644
--- a/public/language/ru/tags.json
+++ b/public/language/ru/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Тем с такой меткой сейчас нет.",
+    "no-tags-found": "No tags found",
     "tags": "Метки",
     "enter_tags_here": "Добавьте метки здесь, от %1 до %2 символов каждая.",
     "enter_tags_here_short": "Введите метки...",
diff --git a/public/language/ru/top.json b/public/language/ru/top.json
index b8a05bfa5f..6df3292255 100644
--- a/public/language/ru/top.json
+++ b/public/language/ru/top.json
@@ -1,4 +1,4 @@
 {
-	"title": "Top",
-	"no_top_topics": "No top topics"
+	"title": "Топ",
+	"no_top_topics": "Нет топовых тем"
 }
\ No newline at end of file
diff --git a/public/language/ru/topic.json b/public/language/ru/topic.json
index 24e41df714..3537724503 100644
--- a/public/language/ru/topic.json
+++ b/public/language/ru/topic.json
@@ -20,8 +20,8 @@
     "login-to-view": "Авторизуйтесь, чтобы просмотреть",
     "edit": "Изменить",
     "delete": "Удалить",
-    "delete-event": "Delete Event",
-    "delete-event-confirm": "Are you sure you want to delete this event?",
+    "delete-event": "Удалить Событие",
+    "delete-event-confirm": "Вы уверены, что хотите удалить это событие?",
     "purge": "Стереть",
     "restore": "Восстановить",
     "move": "Перенести",
@@ -39,16 +39,30 @@
     "copy-ip": "Копировать IP",
     "ban-ip": "Забанить IP",
     "view-history": "История правок",
-    "locked-by": "Заблокировано",
-    "unlocked-by": "Разблокировано",
-    "pinned-by": "Закреплено",
-    "unpinned-by": "Откреплено",
-    "deleted-by": "Удалено",
-    "restored-by": "Восстановлено",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Сообщение поставлено в очередь на утверждение;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "написал <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "написал в <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "ответил <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "ответил <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> в <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 закрыл эту тему %2",
+    "user-locked-topic-on": "%1 закрыл эту тему в %2",
+    "user-unlocked-topic-ago": "%1 открыл эту тему %2",
+    "user-unlocked-topic-on": "%1 открыл эту тему в %2",
+    "user-pinned-topic-ago": "%1 закрепил эту тему %2",
+    "user-pinned-topic-on": "%1 закрепил эту тему в %2",
+    "user-unpinned-topic-ago": "%1 открепил эту тему %2",
+    "user-unpinned-topic-on": "%1 открепил эту тему в %2",
+    "user-deleted-topic-ago": "%1 удалил эту тему %2",
+    "user-deleted-topic-on": "%1 удалил эту тему в %2",
+    "user-restored-topic-ago": "%1 восстановил эту тему %2",
+    "user-restored-topic-on": "%1 восстановил эту тему в %2",
+    "user-moved-topic-from-ago": "%1 переместил эту тему из %2 %3",
+    "user-moved-topic-from-on": "%1 переместил эту тему из %2 в %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">добавил</a> запись для одобрения %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">добавил</a> запись для одобрения в %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">сослался на</a> эту тему %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">сослался на</a> эту тему в %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">раздвоил</a> эту тему %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">раздвоил</a> эту тему в %3",
     "bookmark_instructions": "Нажмите здесь, чтобы вернуться к последнему прочитанному сообщению в этой теме.",
     "flag-post": "Пожаловаться на это сообщение",
     "flag-user": "Пожаловаться на этого пользователя",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Стереть тему",
     "thread_tools.purge_confirm": "Вы уверены, что хотите стереть эту тему?",
     "thread_tools.merge_topics": "Объединить темы",
-    "thread_tools.merge": "Объединить",
+    "thread_tools.merge": "Объединить Тему",
     "topic_move_success": "Эта тема будет перемещена в \"%1\".  Нажмите здесь, чтобы отменить.",
     "topic_move_multiple_success": "Эти темы будут перемещены в \"%1\".  Нажмите здесь, чтобы отменить.",
     "topic_move_all_success": "Все темы будут перемещены в \"%1\".  Нажмите здесь, чтобы отменить.",
@@ -113,7 +127,7 @@
     "bookmark": "Добавить в закладки",
     "bookmarks": "Закладки",
     "bookmarks.has_no_bookmarks": "Вы ещё не добавили в закладки ни одного сообщения.",
-    "copy-permalink": "Copy Permalink",
+    "copy-permalink": "Скопировать Ссылку",
     "loading_more_posts": "Загружаем больше сообщений",
     "move_topic": "Перенести тему",
     "move_topics": "Перенести темы",
@@ -121,7 +135,7 @@
     "post_moved": "Сообщение перенесено!",
     "fork_topic": "Создать дополнительную ветвь дискуссии",
     "enter-new-topic-title": "Введите новое название темы",
-    "fork_topic_instruction": "Отметьте сообщения, которые вы хотите перенести в отдельную тему",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Не выбрано ни одного сообщения!",
     "no-posts-selected": "Не выбрано ни одного сообщения!",
     "x-posts-selected": "Выбрано сообщений: %1",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Новое название темы",
     "topic-id": "ID темы",
     "move_posts_instruction": "Щелкните сообщения, которые вы хотите переместить, затем введите ID темы или перейдите к целевой теме.",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Нажмите на сообщения, которые вы хотите присвоить другому пользователю",
     "composer.title_placeholder": "Введите название темы...",
     "composer.handle_placeholder": "Введите ваше имя здесь",
+    "composer.hide": "Скрыть",
     "composer.discard": "Отменить",
     "composer.submit": "Отправить",
-    "composer.additional-options": "Additional Options",
+    "composer.additional-options": "Дополнительные Настройки",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Запланировать",
     "composer.replying_to": "Ответ %1",
     "composer.new_topic": "Создать тему",
@@ -162,7 +179,7 @@
     "newest_to_oldest": "Сначала новые",
     "most_votes": "По количеству голосов",
     "most_posts": "По количеству сообщений",
-    "most_views": "Most Views",
+    "most_views": "Наиболее Просматриваемые",
     "stale.title": "Создать новую тему вместо этой?",
     "stale.warning": "Тема, в которую вы собираетесь написать, очень старая. Может, стоит создать новую, а про эту просто напомнить к случаю?",
     "stale.create": "Создать новую тему",
@@ -182,7 +199,9 @@
     "timeago_earlier": "на %1 раньше",
     "first-post": "Первое сообщение",
     "last-post": "Последнее сообщение",
-    "go-to-my-next-post": "Go to my next post",
-    "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "go-to-my-next-post": "Перейти к моей следующей записи",
+    "no-more-next-post": "Больше нет записей в этой теме",
+    "post-quick-reply": "Быстрый ответ",
+    "navigator.index": "Сообщений %1 от %2",
+    "navigator.unread": "%1 непрочитано"
 }
\ No newline at end of file
diff --git a/public/language/ru/user.json b/public/language/ru/user.json
index c7655bfef3..2d2024dcfd 100644
--- a/public/language/ru/user.json
+++ b/public/language/ru/user.json
@@ -43,6 +43,7 @@
     "followers": "Подписчики",
     "following": "Подписки",
     "blocks": "Чёрный список",
+    "blocked-users": "Заблокированные пользователи",
     "block_toggle": "Блок./Разблок",
     "block_user": "Добавить в Чёрный Список",
     "unblock_user": "Убрать из Чёрного Списка",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Загрузить новый аватар",
     "upload_new_picture_from_url": "Загрузить изображение по ссылке",
     "current_password": "Текущий пароль",
+    "new_password": "New Password",
     "change_password": "Изменить пароль",
     "change_password_error": "Неправильный пароль!",
     "change_password_error_wrong_current": "Текущий пароль указан неверно!",
@@ -115,6 +117,8 @@
     "paginate_description": "Разбивать темы и сообщения на страницы, а не выводить бесконечным списком",
     "topics_per_page": "Тем на странице",
     "posts_per_page": "Сообщений на странице",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "максимум %1",
     "acp_language": "Язык панели администратора",
     "notifications": "Уведомления",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Примечание модератора сохранено",
     "info.moderation-note.add": "Добавить примечание",
     "sessions.description": "Эта страница позволяет видеть все активные сессии на форуме и отключать их при необходимости. Вы можете закрыть свою сессию, выйдя из учетной записи.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Ваши права и согласие",
     "consent.lead": "Этот форум собирает и обрабатывает вашу личную информацию.",
     "consent.intro": "Мы используем эту информацию исключительно для персонализации вашего опыта в этом сообществе, а также для связывания сообщений, которые вы вносите в свою учетную запись пользователя. Во время этапа регистрации вас попросили указать имя пользователя и адрес электронной почты, вы также можете предоставить дополнительную информацию, чтобы заполнить свой профиль пользователя на этом веб-сайте.<br /><br />Мы сохраняем эту информацию на всё время существования учетной записи пользователя, и вы можете отозвать согласие в любое время, удалив свою учетную запись. В любое время вы можете запросить копию своего вклада на этот веб-сайт, используя раздел \"ваши права и согласие\" <br /><br />Если у вас есть какие-либо вопросы или опасения, мы рекомендуем вам обратиться к администрации этого форума.",
diff --git a/public/language/ru/users.json b/public/language/ru/users.json
index 85d3dd0382..ca77b66a87 100644
--- a/public/language/ru/users.json
+++ b/public/language/ru/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Новые пользователи",
     "top_posters": "Самые активные",
     "most_reputation": "Лучшая репутация",
     "most_flags": "Больше всего жалоб",
     "search": "Поиск",
     "enter_username": "Введите имя пользователя для поиска",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Загрузить еще",
     "users-found-search-took": "Найдено пользователей: %1! Поиск занял %2 с.",
     "filter-by": "Сортировать по",
diff --git a/public/language/rw/admin/admin.json b/public/language/rw/admin/admin.json
index 39edffb66f..dcf9696ca2 100644
--- a/public/language/rw/admin/admin.json
+++ b/public/language/rw/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Control Panel",
 	"settings-header-contents": "Contents",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/rw/admin/appearance/customise.json b/public/language/rw/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/rw/admin/appearance/customise.json
+++ b/public/language/rw/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/rw/admin/dashboard.json b/public/language/rw/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/rw/admin/dashboard.json
+++ b/public/language/rw/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/rw/admin/extend/widgets.json b/public/language/rw/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/rw/admin/extend/widgets.json
+++ b/public/language/rw/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/rw/admin/manage/groups.json b/public/language/rw/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/rw/admin/manage/groups.json
+++ b/public/language/rw/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/rw/admin/manage/privileges.json b/public/language/rw/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/rw/admin/manage/privileges.json
+++ b/public/language/rw/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/rw/admin/settings/api.json b/public/language/rw/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/rw/admin/settings/api.json
+++ b/public/language/rw/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/rw/admin/settings/navigation.json b/public/language/rw/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/rw/admin/settings/navigation.json
+++ b/public/language/rw/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/rw/admin/settings/user.json b/public/language/rw/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/rw/admin/settings/user.json
+++ b/public/language/rw/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/rw/error.json b/public/language/rw/error.json
index 878b42d95f..7873aaaf3f 100644
--- a/public/language/rw/error.json
+++ b/public/language/rw/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Guest uploading has been disabled",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Ubusabe bwo kuba mu itsinda bwari bwaramaze koherezwa",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Ibi byari byarakuweho",
     "post-already-restored": "Ibi byari byaragaruwe",
     "topic-already-deleted": "Iki kiganiro cyari cyarakuweho",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/rw/flags.json b/public/language/rw/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/rw/flags.json
+++ b/public/language/rw/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/rw/global.json b/public/language/rw/global.json
index 8416897c52..60373b73f1 100644
--- a/public/language/rw/global.json
+++ b/public/language/rw/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Funga",
     "403.title": "Ntibyemewe Kuhagera",
     "403.message": "Wageze kuri paji udafitiye uburenganzira bwo kureba",
-    "403.login": "Wenda ahari ukeneye kugerageza <a href='%1/login'>kwinjiramo</a>",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Ntacyabonetse",
-    "404.message": "Biragaragara ko wageze kuri paji itariho ikintu. Subira <a href='%1/'>Imbere</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Internal Error.",
     "500.message": "Ye baba we! Ntibikunze!",
     "400.title": "Bad Request.",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Iyandikishe",
     "login": "Injiramo",
     "please_log_in": "Injiramo",
@@ -37,9 +37,13 @@
     "header.notifications": "Amatangazo",
     "header.search": "Shaka",
     "header.profile": "Ishusho",
+    "header.account": "Account",
     "header.navigation": "Ukureba",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Amatangazo Araje",
     "chats.loading": "Ubutumwa Buraje",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Urakaza neza kuri NodeBB, urubuga rujyanye n'ibihe bizaza",
     "previouspage": "Paji Ibanza",
     "nextpage": "Paji Ikurikira",
@@ -54,7 +58,8 @@
     "users": "Abantu",
     "topics": "Ibiganiro",
     "posts": "Ibyashyizweho",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Byiza",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Amanota",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "komeza usome",
     "more": "Ibindi",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%2 %1 ashyizeho",
     "guest_posted_ago": "%1 Umushyitsi ashyizeho",
     "last_edited_by": "biheruka guhindurwaho na %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Nta Biherutseho",
     "norecenttopics": "Nta Biganiro Biherutse",
     "recentposts": "Ibiherutseho",
     "recentips": "Aderesi za IP Ziheruka Gusura",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Ku Murongo",
     "away": "Ahandi",
     "dnd": "Nta Kurogoya",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/rw/groups.json b/public/language/rw/groups.json
index 518a523d3a..39541a7d68 100644
--- a/public/language/rw/groups.json
+++ b/public/language/rw/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Amatsinda",
+    "members": "Members",
     "view_group": "Reba Itsinda",
     "owner": "Nyir'Itsinda ",
     "new_group": "Tangiza Itsinda Rishya",
diff --git a/public/language/rw/modules.json b/public/language/rw/modules.json
index a2a3592357..6496b5fac1 100644
--- a/public/language/rw/modules.json
+++ b/public/language/rw/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Ohereza",
     "chat.no_active": "Nta biganiro byo mu gikari ufite. ",
     "chat.user_typing": "%1 ari kwandika ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Andika",
     "composer.show_preview": "Bona Uko Biza Gusa",
     "composer.hide_preview": "Hisha Uko Biza Gusa",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 yavuze muri %2:",
     "composer.user_said": "%1 yavuze:",
     "composer.discard": "Wiringiye neza ko ushaka kureka kubishyiraho?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "Sawa",
     "bootbox.cancel": "Isubire",
     "bootbox.confirm": "Emeza",
diff --git a/public/language/rw/pages.json b/public/language/rw/pages.json
index b64927cb55..fbd0c94a7f 100644
--- a/public/language/rw/pages.json
+++ b/public/language/rw/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "Itunganya",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Ibiganiro bikurikirwa na %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Ibiganiro byakunzwe na %1",
diff --git a/public/language/rw/post-queue.json b/public/language/rw/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/rw/post-queue.json
+++ b/public/language/rw/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/rw/recent.json b/public/language/rw/recent.json
index ac9843086b..e6bc181863 100644
--- a/public/language/rw/recent.json
+++ b/public/language/rw/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Ibihe Byose",
     "no_recent_topics": "Nta biganiro biheruka. ",
     "no_popular_topics": "Nta biganiro bikunzwe. ",
-    "there-is-a-new-topic": "Hari ikiganiro gishya. ",
-    "there-is-a-new-topic-and-a-new-post": "Hari ikiganiro gishya kimwe n'icyashyizweho gishya kimwe. ",
-    "there-is-a-new-topic-and-new-posts": "Hari ikiganiro gishya kimwe n'ibyashyizweho bishya %1 .",
-    "there-are-new-topics": "Hari ibiganiro bishya %1. ",
-    "there-are-new-topics-and-a-new-post": "Hari ibiganiro bishya %1 n'icyashyizweho gishya kimwe.",
-    "there-are-new-topics-and-new-posts": "Hari ibiganiro bishya %1 n'ibyashyizweho bishya %2.",
-    "there-is-a-new-post": "Hari icyashyizweho gishya. ",
-    "there-are-new-posts": "Hari ibyashyizweho bishya %1.",
-    "click-here-to-reload": "Kanda hano wongere upakire."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/rw/register.json b/public/language/rw/register.json
index 22e2e0b554..875ec10829 100644
--- a/public/language/rw/register.json
+++ b/public/language/rw/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Iyandike",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "Ubusanzwe, email yawe ntabwo iba ibonwa na bose",
     "help.username_restrictions": "Izina rigomba kuba ryihariye kuri uru rubuga kandi rikaba rifite uburebure bw'inyuguti buva kuri %1 kugera kuri %2. Iryo zina ni ryo abantu bazajya bifashisha nka @<span id='yourUsername'>username</span> mu gihe bakoresheje izina ryawe mu byo banditse. ",
diff --git a/public/language/rw/search.json b/public/language/rw/search.json
index 940fdf2ebe..afb97b9090 100644
--- a/public/language/rw/search.json
+++ b/public/language/rw/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "Habonetse ibintu (ikintu) %1 gihura na \"%2\". (Byafashe amasegonda %3)",
     "no-matches": "Nta cyabonetse",
     "advanced-search": "Gushaka Byisumbuye",
     "in": "Muri",
-    "titles": "Imitwe",
-    "titles-posts": "Imitwe n'Ibyashyizweho",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Mu Byashyizweho na",
-    "in-categories": "Mu Byiciro bya",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Shakira no mu byiciro bikomokaho",
     "has-tags": "Has tags",
     "reply-count": "Umubare w'Ibisubizo",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Ungana Nibura na",
     "at-most": "Utarengeje",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Igihe Byashyiriweho",
     "votes": "Votes",
     "newer-than": "Nyuma ya",
@@ -28,7 +48,22 @@
     "three-months": "Amezi atatu",
     "six-months": "Amezi atandatu",
     "one-year": "Umwaka umwe",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Bigaragare Ukurikije",
+    "sort": "Sort",
     "last-reply-time": "Igihe baherukira gusubiza",
     "topic-title": "Umutwe w'ikiganiro",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Icyiciro",
     "descending": "Uva ku kinini ujya ku gito",
     "ascending": "Uva ku gito ujya ku kinini",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Bika ibyo wahisemo",
     "clear-preferences": "Hanagura ibyo wahisemo",
     "search-preferences-saved": "Ibyo wahisemo mu gihe cy'ishaka byabitswe",
     "search-preferences-cleared": "Ibyo wahisemo mu gihe cy'ishaka byahanaguwe",
     "show-results-as": "Ibiboneka bigaragazwe nk'",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/rw/social.json b/public/language/rw/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/rw/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/rw/tags.json b/public/language/rw/tags.json
index eb54809c75..b58bf47d69 100644
--- a/public/language/rw/tags.json
+++ b/public/language/rw/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Nta biganiro bifite aka kamenyetso bihari. ",
+    "no-tags-found": "No tags found",
     "tags": "Utumenyetso",
     "enter_tags_here": "Andika akamenyetso bijyanye aha. Buri kamenyetso kagomba kuba kagizwe n'inyuguti hagati ya %1 na %2. ",
     "enter_tags_here_short": "Shyiraho utumenyetso...",
diff --git a/public/language/rw/topic.json b/public/language/rw/topic.json
index 414fada4c9..b6fa95fc85 100644
--- a/public/language/rw/topic.json
+++ b/public/language/rw/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Click here to return to the last read post in this thread.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Sibanganya Ikiganiro",
     "thread_tools.purge_confirm": "Wiringiye neza ko ushaka gusibanganya iki kiganiro?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Icyashizweho kirimuwe!",
     "fork_topic": "Gabanyaho ku Kiganiro",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Kanda ku byashizweho ushaka kugabanyaho",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Nta kintu wahisemo!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Shyira umutwe w'ikiganiro cyawe aha...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Byihorere",
     "composer.submit": "Shyiraho",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Gusubiza %1",
     "composer.new_topic": "Ikiganiro Gishya",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/rw/user.json b/public/language/rw/user.json
index a3b73ebdbe..0bbbc9a56f 100644
--- a/public/language/rw/user.json
+++ b/public/language/rw/user.json
@@ -43,6 +43,7 @@
     "followers": "Abamukurikira",
     "following": "Akurikira",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Pakira Ifoto Nshya",
     "upload_new_picture_from_url": "Pakira Ifoto Nshya Ukoresheje URL",
     "current_password": "Ijambobanga Risanzweho",
+    "new_password": "New Password",
     "change_password": "Hindura Ijambobanga",
     "change_password_error": "Ijambobanga Ritari Ryo!",
     "change_password_error_wrong_current": "Ijambobanga ryawe watanze nk'irisanzweho ntabwo ari ryo!",
@@ -115,6 +117,8 @@
     "paginate_description": "Gabanya ibiganiro n'ibyashyizweho mu ma paji aho kugirango umuntu ajye amanuka ubudahagarara ",
     "topics_per_page": "Ibiganiro kuri Buri Paji",
     "posts_per_page": "Ibyashyizweho kuri Buri Paji",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/rw/users.json b/public/language/rw/users.json
index 37dd4db9d6..80d779c02d 100644
--- a/public/language/rw/users.json
+++ b/public/language/rw/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Abantu Bashya",
     "top_posters": "Abashyizeho Byinshi",
     "most_reputation": "Abafite Amanota Menshi",
     "most_flags": "Most Flags",
     "search": "Shaka",
     "enter_username": "Shyiramo izina ryo gushaka",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Zana Ibindi",
     "users-found-search-took": "Habonetse abantu (umuntu) %1! Byatwaye amasegonda %2 gusa.",
     "filter-by": "Yungurura Ukurikije",
diff --git a/public/language/sc/admin/admin.json b/public/language/sc/admin/admin.json
index 39edffb66f..dcf9696ca2 100644
--- a/public/language/sc/admin/admin.json
+++ b/public/language/sc/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Control Panel",
 	"settings-header-contents": "Contents",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/sc/admin/appearance/customise.json b/public/language/sc/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/sc/admin/appearance/customise.json
+++ b/public/language/sc/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/sc/admin/dashboard.json b/public/language/sc/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/sc/admin/dashboard.json
+++ b/public/language/sc/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/sc/admin/extend/widgets.json b/public/language/sc/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/sc/admin/extend/widgets.json
+++ b/public/language/sc/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/sc/admin/manage/groups.json b/public/language/sc/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/sc/admin/manage/groups.json
+++ b/public/language/sc/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/sc/admin/manage/privileges.json b/public/language/sc/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/sc/admin/manage/privileges.json
+++ b/public/language/sc/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/sc/admin/settings/api.json b/public/language/sc/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/sc/admin/settings/api.json
+++ b/public/language/sc/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/sc/admin/settings/navigation.json b/public/language/sc/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/sc/admin/settings/navigation.json
+++ b/public/language/sc/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/sc/admin/settings/user.json b/public/language/sc/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/sc/admin/settings/user.json
+++ b/public/language/sc/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/sc/error.json b/public/language/sc/error.json
index 77316bf37b..268aa0a786 100644
--- a/public/language/sc/error.json
+++ b/public/language/sc/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Guest uploading has been disabled",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Your membership request has already been submitted",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "This post has already been deleted",
     "post-already-restored": "This post has already been restored",
     "topic-already-deleted": "This topic has already been deleted",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/sc/flags.json b/public/language/sc/flags.json
index 8156f1b1fd..f12aaae53d 100644
--- a/public/language/sc/flags.json
+++ b/public/language/sc/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Updated",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Filter Options",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Post",
 	"filter-type-user": "User",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Category",
 	"filter-quick-mine": "Assigned to me",
 	"filter-cid-all": "All categories",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Add Note",
+	"edit-note": "Edit Note",
 	"no-notes": "No shared notes.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/sc/global.json b/public/language/sc/global.json
index 2fe64fec86..68431a4e96 100644
--- a/public/language/sc/global.json
+++ b/public/language/sc/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Serra",
     "403.title": "Intrada Blocada",
     "403.message": "You seem to have stumbled upon a page that you do not have access to.",
-    "403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "No Agatadu",
-    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Internal Error.",
     "500.message": "Oops! Paret chi carchi cosa est andada male!",
     "400.title": "Bad Request.",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registra·ti",
     "login": "Intra",
     "please_log_in": "Pro praghere Intra",
@@ -37,9 +37,13 @@
     "header.notifications": "Notìficas",
     "header.search": "Chirca",
     "header.profile": "Perfilu",
+    "header.account": "Account",
     "header.navigation": "Navigation",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Carrighende Notìficas",
     "chats.loading": "Carrighende Tzarras",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Benebènnidu in NodeBB, sa prataforma de arresonos de su tempus benidore.",
     "previouspage": "Pàgina a in Antis",
     "nextpage": "Pàgina chi Sighit",
@@ -54,7 +58,8 @@
     "users": "Users",
     "topics": "Topics",
     "posts": "Arresonos",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Best",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Reputation",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "read more",
     "more": "More",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 posted %2",
     "guest_posted_ago": "Guest posted %1",
     "last_edited_by": "last edited by %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "No Recent Posts",
     "norecenttopics": "No Recent Topics",
     "recentposts": "Ùrtimos Arresonos",
     "recentips": "Ùrtimos IP Intrados",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "In lìnia",
     "away": "A tesu",
     "dnd": "Do not disturb",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/sc/groups.json b/public/language/sc/groups.json
index 2072d52894..f6160d20c9 100644
--- a/public/language/sc/groups.json
+++ b/public/language/sc/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Groups",
+    "members": "Members",
     "view_group": "View Group",
     "owner": "Group Owner",
     "new_group": "Create New Group",
diff --git a/public/language/sc/modules.json b/public/language/sc/modules.json
index a3aa3efaad..57cd01bd97 100644
--- a/public/language/sc/modules.json
+++ b/public/language/sc/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chat with",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Imbia",
     "chat.no_active": "Non tenes tzarras ativas.",
     "chat.user_typing": "%1 is typing ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Compose",
     "composer.show_preview": "Show Preview",
     "composer.hide_preview": "Hide Preview",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 said in %2:",
     "composer.user_said": "%1 said:",
     "composer.discard": "Are you sure you wish to discard this post?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Cancel",
     "bootbox.confirm": "Confirm",
diff --git a/public/language/sc/pages.json b/public/language/sc/pages.json
index 1f96716f66..fc3328fe5a 100644
--- a/public/language/sc/pages.json
+++ b/public/language/sc/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "User Settings",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Topics watched by %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": "Posts upvoted by %1",
diff --git a/public/language/sc/post-queue.json b/public/language/sc/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/sc/post-queue.json
+++ b/public/language/sc/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/sc/recent.json b/public/language/sc/recent.json
index ea0c3c0752..3aa62f21c5 100644
--- a/public/language/sc/recent.json
+++ b/public/language/sc/recent.json
@@ -7,13 +7,5 @@
     "alltime": "All Time",
     "no_recent_topics": "Non bi sunt ùrtimas arresonadas.",
     "no_popular_topics": "There are no popular topics.",
-    "there-is-a-new-topic": "There is a new topic.",
-    "there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
-    "there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
-    "there-are-new-topics": "There are %1 new topics.",
-    "there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
-    "there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
-    "there-is-a-new-post": "There is a new post.",
-    "there-are-new-posts": "There are %1 new posts.",
-    "click-here-to-reload": "Click here to reload."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/sc/register.json b/public/language/sc/register.json
index ff16e87b0c..92973b2054 100644
--- a/public/language/sc/register.json
+++ b/public/language/sc/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registra·ti",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Cancel Registration",
     "help.email": "S'email tua est cuada pro su pùblicu in manera predefinida.",
     "help.username_restrictions": "Unu nùmene de impitadore ùnicu intre %1 e %2 caràtere. Is àteros t'ant a pòdere mentovare cun @<span id='yourUsername'>nùmeneimpitadore</span>.",
diff --git a/public/language/sc/search.json b/public/language/sc/search.json
index 639cc0b653..158a2d8d4c 100644
--- a/public/language/sc/search.json
+++ b/public/language/sc/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
     "no-matches": "No matches found",
     "advanced-search": "Advanced Search",
     "in": "In",
-    "titles": "Titles",
-    "titles-posts": "Titles and Posts",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Posted by",
-    "in-categories": "In Categories",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Search child categories",
     "has-tags": "Has tags",
     "reply-count": "Reply Count",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "At least",
     "at-most": "At most",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Post time",
     "votes": "Votes",
     "newer-than": "Newer than",
@@ -28,7 +48,22 @@
     "three-months": "Three months",
     "six-months": "Six months",
     "one-year": "One year",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sort by",
+    "sort": "Sort",
     "last-reply-time": "Last reply time",
     "topic-title": "Topic title",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Category",
     "descending": "In descending order",
     "ascending": "In ascending order",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Save preferences",
     "clear-preferences": "Clear preferences",
     "search-preferences-saved": "Search preferences saved",
     "search-preferences-cleared": "Search preferences cleared",
     "show-results-as": "Show results as",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/sc/social.json b/public/language/sc/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/sc/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/sc/tags.json b/public/language/sc/tags.json
index 24ca6f8a39..4aace7f79f 100644
--- a/public/language/sc/tags.json
+++ b/public/language/sc/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "There are no topics with this tag.",
+    "no-tags-found": "No tags found",
     "tags": "Tags",
     "enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
     "enter_tags_here_short": "Enter tags...",
diff --git a/public/language/sc/topic.json b/public/language/sc/topic.json
index 73a29b2067..42c7d9901b 100644
--- a/public/language/sc/topic.json
+++ b/public/language/sc/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Copy IP",
     "ban-ip": "Ban IP",
     "view-history": "Edit History",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Click here to return to the last read post in this thread.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Purge Topic",
     "thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
     "thread_tools.merge_topics": "Merge Topics",
-    "thread_tools.merge": "Merge",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Post moved!",
     "fork_topic": "Partzi Arresonada",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Sèbera is arresonos chi boles partzire",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Perunu arresonu seberadu!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Pone su tìtulu de s'arresonada inoghe...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Lassa a Pèrdere",
     "composer.submit": "Imbia",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Replying to %1",
     "composer.new_topic": "Arresonada Noa",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/sc/user.json b/public/language/sc/user.json
index 03ffc0d018..09f51caf51 100644
--- a/public/language/sc/user.json
+++ b/public/language/sc/user.json
@@ -43,6 +43,7 @@
     "followers": "Sighidores",
     "following": "Sighende",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Càrriga Immàgine Noa",
     "upload_new_picture_from_url": "Upload New Picture From URL",
     "current_password": "Password Presente",
+    "new_password": "New Password",
     "change_password": "Muda Password",
     "change_password_error": "Invalid Password!",
     "change_password_error_wrong_current": "Your current password is not correct!",
@@ -115,6 +117,8 @@
     "paginate_description": "Paginate topics and posts instead of using infinite scroll",
     "topics_per_page": "Arresonadas pro Pàgina",
     "posts_per_page": "Arresonos pro Pàgina",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Admin Page Language",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Add note",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/sc/users.json b/public/language/sc/users.json
index f00d892d88..ad15806d99 100644
--- a/public/language/sc/users.json
+++ b/public/language/sc/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Ùrtimos Impitadores",
     "top_posters": "Prus Ativos",
     "most_reputation": "Prus Famados",
     "most_flags": "Most Flags",
     "search": "Chirca",
     "enter_username": "Pone unu nùmene de impitadore de chircare",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Càrriga de prus",
     "users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
     "filter-by": "Filter By",
diff --git a/public/language/sk/admin/admin.json b/public/language/sk/admin/admin.json
index 558d471507..a7a314942b 100644
--- a/public/language/sk/admin/admin.json
+++ b/public/language/sk/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "Ovládací panel administrátora %1 | NodeBB ",
 	"settings-header-contents": "Obsah",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/sk/admin/appearance/customise.json b/public/language/sk/admin/appearance/customise.json
index 9428f87608..e2ddcc7e74 100644
--- a/public/language/sk/admin/appearance/customise.json
+++ b/public/language/sk/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Užívateľské CSS/LESS",
-	"custom-css.description": "Zadajte svoje vlastné definície CSS/LESS, ktoré budú použité nad všetky ostatné štýly.",
-	"custom-css.enable": "Povoliť užívateľský CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Používateľský Javascript",
 	"custom-js.description": "Zadajte tu váš javascriptový kód. Bude spustený, akonáhle sa stránka úplne načíta.",
diff --git a/public/language/sk/admin/dashboard.json b/public/language/sk/admin/dashboard.json
index b1c6670e81..d6f67ae224 100644
--- a/public/language/sk/admin/dashboard.json
+++ b/public/language/sk/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/sk/admin/extend/widgets.json b/public/language/sk/admin/extend/widgets.json
index f72125f64d..178efbc6d8 100644
--- a/public/language/sk/admin/extend/widgets.json
+++ b/public/language/sk/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Nič",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Hlavička panela",
-	"container.panel-body": "Telo panela",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Upozornenie",
 
 	"alert.confirm-delete": "Ste si istý že chcete zmazať túto miniaplikáciu?",
diff --git a/public/language/sk/admin/manage/groups.json b/public/language/sk/admin/manage/groups.json
index 7f36a498b1..d7e0dd64ef 100644
--- a/public/language/sk/admin/manage/groups.json
+++ b/public/language/sk/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Späť",
 
 	"edit.no-users-found": "Nebol nájdený žiadny používateľ",
-	"edit.confirm-remove-user": "Ste si istý, že chcete odstrániť tohto používateľa?",
-	"edit.save-success": "Zmeny boli uložené!"
+	"edit.confirm-remove-user": "Ste si istý, že chcete odstrániť tohto používateľa?"
 }
\ No newline at end of file
diff --git a/public/language/sk/admin/manage/privileges.json b/public/language/sk/admin/manage/privileges.json
index df6a6ad14e..aa473b0038 100644
--- a/public/language/sk/admin/manage/privileges.json
+++ b/public/language/sk/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/sk/admin/settings/api.json b/public/language/sk/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/sk/admin/settings/api.json
+++ b/public/language/sk/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/sk/admin/settings/navigation.json b/public/language/sk/admin/settings/navigation.json
index 59aef4df0b..6c08f2a209 100644
--- a/public/language/sk/admin/settings/navigation.json
+++ b/public/language/sk/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Otvoriť v novom okne",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Odstrániť",
 	"btn.disable": "Zakázať",
diff --git a/public/language/sk/admin/settings/user.json b/public/language/sk/admin/settings/user.json
index 18b8367c0b..5022bc3b40 100644
--- a/public/language/sk/admin/settings/user.json
+++ b/public/language/sk/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "Registrácia používateľa",
diff --git a/public/language/sk/error.json b/public/language/sk/error.json
index 6cc0528b28..6332ba3a7e 100644
--- a/public/language/sk/error.json
+++ b/public/language/sk/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Nahrávanie pre hostí bolo zablokované",
     "cors-error": "Nieje možné nahrať obrázok kvôli zle nastavenému „Cross-Origin Resource Sharing (CORS)”",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Vaša požiadavka na členstvo už bola predložená",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Tento príspevok bol odstránený",
     "post-already-restored": "Tento príspevok bol obnovený",
     "topic-already-deleted": "Táto téma bola odstránená",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/sk/flags.json b/public/language/sk/flags.json
index dc3ccb78f7..11cfb8e3f1 100644
--- a/public/language/sk/flags.json
+++ b/public/language/sk/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hurá! Neboli nájdené žiadne príznaky.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Nástupca",
 	"update": "Aktualizovať",
 	"updated": "Aktualizované",
 	"resolved": "Resolved",
 	"target-purged": "Obsah, na ktorý sa vzťahuje toto označenie, bol odstránený a už nie je k dispozícii.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Rýchle filtre",
 	"filter-active": "V tomto zozname označení je aktívny jeden alebo viac filtrov",
 	"filter-reset": "Odstrániť filtre",
 	"filters": "Možnosti filtrov",
-	"filter-reporterId": "UID ohlasovateľa",
-	"filter-targetUid": "UID označenie",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Typ označenia",
 	"filter-type-all": "Všetok obsah",
 	"filter-type-post": "Príspevok",
 	"filter-type-user": "Používateľ",
 	"filter-state": "Stav",
-	"filter-assignee": "UID nadobúdateľa",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategória",
 	"filter-quick-mine": "Priradené mne",
 	"filter-cid-all": "Všetky kategórie",
@@ -45,6 +47,7 @@
 
 	"notes": "Poznámky príznaku",
 	"add-note": "Pridať poznámku",
+	"edit-note": "Edit Note",
 	"no-notes": "Žiadne zdieľané poznámky.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/sk/global.json b/public/language/sk/global.json
index 06ee020b42..01abcb7929 100644
--- a/public/language/sk/global.json
+++ b/public/language/sk/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Zatvoriť",
     "403.title": "Prístup zamietnutý",
     "403.message": "Zdá sa, že ste narazili/a na stránku, na ktorú nemáte prístup.",
-    "403.login": "Možno by ste mali <a href='%1/login'> skúste sa prihlásiť </a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Stránka nenájdená",
-    "404.message": "Zdá sa že ste narazili na stránku, ktorá už neexistuje. Vráťte sa na <a href='%1/'>domovskú stránku</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Vnútorná chyba.",
     "500.message": "Och! Vyzerá to tak, že sa niečo pokazilo!",
     "400.title": "Nesprávna požiadavka.",
-    "400.message": "Vyzerá to tak, že tento odkaz je poškodený, prosím skontrolujte ho a skúste to znova. V opačnom prípade sa vráťte na <a href='%1/'>domovskú stránku</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registrovať",
     "login": "Prihlásiť sa",
     "please_log_in": "Prosím, prihláste sa",
@@ -37,9 +37,13 @@
     "header.notifications": "Oznámenia",
     "header.search": "Hľadať",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigácia",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Načítavanie oznámení",
     "chats.loading": "Načítanie konverzácií",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Vitajte na NodeBB, diskusná platforma budúcnosti.",
     "previouspage": "Predchádzajúca strana",
     "nextpage": "Nasledujúca strana",
@@ -54,11 +58,12 @@
     "users": "Užívatelia",
     "topics": "Témy",
     "posts": "Príspevky",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Najlepšie",
     "controversial": "Controversial",
-    "votes": "Počet hlasov",
-    "x-votes": "%1 votes",
+    "votes": "Hlasov",
+    "x-votes": "%1 hlasov",
     "voters": "Voters",
     "upvoters": "Hlasovali za",
     "upvoted": "Pridaný hlas",
@@ -69,6 +74,7 @@
     "reputation": "Reputácia",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "čítaj viac",
     "more": "Viac",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 uverejnil %2",
     "guest_posted_ago": "Hosť uverejnil %1",
     "last_edited_by": "naposledy zmenené od %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Žiadne nové príspevky",
     "norecenttopics": "Žiadne nové témy",
     "recentposts": "Nedávne príspevky",
     "recentips": "Nedávne zaznamenané IP adresy",
     "moderator_tools": "Nástroje moderátora",
+    "status": "Status",
     "online": "Online",
     "away": "Preč",
     "dnd": "Nevyrušovať",
@@ -122,5 +130,7 @@
     "edited": "Zmenené",
     "disabled": "Zablokovaný",
     "select": "Vybrať",
-    "user-search-prompt": "Pre hľadanie používateľov, píšte sem..."
+    "user-search-prompt": "Pre hľadanie používateľov, píšte sem...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/sk/groups.json b/public/language/sk/groups.json
index 69c06f5840..24d20a7318 100644
--- a/public/language/sk/groups.json
+++ b/public/language/sk/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Skupiny",
+    "members": "Members",
     "view_group": "Zobraziť skupinu",
     "owner": "Vlastník skupiny",
     "new_group": "Vytvoriť novú skupinu",
diff --git a/public/language/sk/modules.json b/public/language/sk/modules.json
index e1c1e9a04e..af135f04e6 100644
--- a/public/language/sk/modules.json
+++ b/public/language/sk/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Konverzácia s",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Odoslať",
     "chat.no_active": "Nemáte žiadne aktívne konverzácie.",
     "chat.user_typing": "%1 práve píše...",
@@ -42,6 +46,7 @@
     "composer.compose": "Napísať",
     "composer.show_preview": "Zobraziť náhľad",
     "composer.hide_preview": "Skryť náhľad",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 povedal v %2:",
     "composer.user_said": "%1 povedal:",
     "composer.discard": "Ste si istý, že chcete zahodiť tento príspevok?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Zrušiť",
     "bootbox.confirm": "Potvrdiť",
diff --git a/public/language/sk/pages.json b/public/language/sk/pages.json
index 41d1234a8b..f1fae7a7d6 100644
--- a/public/language/sk/pages.json
+++ b/public/language/sk/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1 príspevky v záložkach",
     "account/settings": "Užívateľské nastavenia",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Témy sledované používateľom %1",
     "account/ignored": "Témy ignorované používateľom %1",
     "account/upvoted": "Príspevky, ktorým používateľ %1 dal hlas",
diff --git a/public/language/sk/post-queue.json b/public/language/sk/post-queue.json
index b63aec60fe..897d9d572f 100644
--- a/public/language/sk/post-queue.json
+++ b/public/language/sk/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Príspevky vo fronte",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Používateľ",
+	"when": "When",
 	"category": "Kategórie",
 	"title": "Názov",
 	"content": "Obsah",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/sk/recent.json b/public/language/sk/recent.json
index 44bcaa240b..a083809c8c 100644
--- a/public/language/sk/recent.json
+++ b/public/language/sk/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Vždy",
     "no_recent_topics": "Neboli nájdené žiadne nové témy.",
     "no_popular_topics": "Neexistujú žiadne populárne témy.",
-    "there-is-a-new-topic": "K dispozícií je nová téma.",
-    "there-is-a-new-topic-and-a-new-post": "K dispozícií je nová téma a nový príspevok.",
-    "there-is-a-new-topic-and-new-posts": "K dispozícií je nová téma a %1 nové príspevky.",
-    "there-are-new-topics": "K dispozícií sú %1 nové témy.",
-    "there-are-new-topics-and-a-new-post": "K dispozícií sú %1 nové témy a nový príspevok.",
-    "there-are-new-topics-and-new-posts": "K dispozícií sú %1 nové témy a %2 nové príspevky.",
-    "there-is-a-new-post": "K dispozícií je nový príspevok",
-    "there-are-new-posts": "K dispozícií je %1 nových príspevkov.",
-    "click-here-to-reload": "Kliknutím sem, znova načítate stránku."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/sk/register.json b/public/language/sk/register.json
index d0c1f5f469..15ae6ab99a 100644
--- a/public/language/sk/register.json
+++ b/public/language/sk/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registrácia",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Zrušiť registráciu",
     "help.email": "V predvolenom nastavení bude váš e-mail skrytý.",
     "help.username_restrictions": "Jedinečné užívateľské meno dlhé %1 až %2 znakov. Ostatní užívatelia Vás môžu spomenúť ako @<span id='yourUsername'>užívateľské meno</span>.",
diff --git a/public/language/sk/search.json b/public/language/sk/search.json
index 0059ac9406..7b34a39cba 100644
--- a/public/language/sk/search.json
+++ b/public/language/sk/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 výsledok(ov) vhodný(ch) pre \"%2\", (%3 sekúnd)",
     "no-matches": "Žiadne zhody nenájdené",
     "advanced-search": "Rozšírené vyhľadávanie",
     "in": "v",
-    "titles": "Nadpisy",
-    "titles-posts": "Nadpisy a príspevky",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": " Zhodné slová",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Všetko",
     "any": "Akékoľvek",
     "posted-by": "Napísal",
-    "in-categories": "V kategóriách",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Hľadať podružné kategórie",
     "has-tags": "Obsahuje značky",
     "reply-count": "Počet odpovedí",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Najmenej",
     "at-most": "Najviac",
     "relevance": "Dôležitosť",
+    "time": "Time",
     "post-time": "Čas publikovania",
     "votes": "Votes",
     "newer-than": "Novšie ako",
@@ -28,7 +48,22 @@
     "three-months": "Tri mesiace",
     "six-months": "Šesť mesiacov",
     "one-year": "Jeden rok",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Zoradiť podľa",
+    "sort": "Sort",
     "last-reply-time": "Čas poslednej odpovede",
     "topic-title": "Názov témy",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Kategórie",
     "descending": "V zostupnom poradí",
     "ascending": "Vo vzostupnom poradí",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Uložené predvoľby",
     "clear-preferences": "Vyčistiť predvoľby",
     "search-preferences-saved": "Vyhľadávacie predvoľby uložené",
     "search-preferences-cleared": "Vyhľadávacie predvoľby vyčistené",
     "show-results-as": "Zobraziť výsledky ako",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/sk/social.json b/public/language/sk/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/sk/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/sk/tags.json b/public/language/sk/tags.json
index aa97976505..a1541b8625 100644
--- a/public/language/sk/tags.json
+++ b/public/language/sk/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Nie sú tu žiadne témy s touto značkou.",
+    "no-tags-found": "No tags found",
     "tags": "Značky",
     "enter_tags_here": "Sem vložte označenie, každé o dĺžke %1 až %2 znakov.",
     "enter_tags_here_short": "Zadajte značky...",
diff --git a/public/language/sk/topic.json b/public/language/sk/topic.json
index dc511a1182..0ea842c931 100644
--- a/public/language/sk/topic.json
+++ b/public/language/sk/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Kopírovať IP adresu",
     "ban-ip": "Zablokovať IP adresu",
     "view-history": "Upraviť históriu",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Kliknite sem pre návrat k poslednému prečítanému príspevku vo vlákne.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Vyčistiť tému",
     "thread_tools.purge_confirm": "Ste si naozaj istý že chcete vyčistiť túto tému?",
     "thread_tools.merge_topics": "Zlúčiť témy",
-    "thread_tools.merge": "Zlúčiť",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Príspevok presunutý!",
     "fork_topic": "Rozdeliť príspevok",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Vyber príspevky, ktoré chceš oddeliť",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Žiadne príspevky neboli vybraté!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "Sem zadajte názov témy...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Zahodiť",
     "composer.submit": "Odoslať",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Odpovedať na %1",
     "composer.new_topic": "Nová téma",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/sk/user.json b/public/language/sk/user.json
index f3800c3ef1..f1eb5ae809 100644
--- a/public/language/sk/user.json
+++ b/public/language/sk/user.json
@@ -43,6 +43,7 @@
     "followers": "Nasledovatelia",
     "following": "Nasleduje",
     "blocks": "Zablokovaný",
+    "blocked-users": "Blocked users",
     "block_toggle": "Prepnúť zablokovanie",
     "block_user": "Zablokovať používateľa",
     "unblock_user": "Odblokovať používateľa",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Nahrať nový obrázok",
     "upload_new_picture_from_url": "Nahrať nový obrázok z URL adresy",
     "current_password": "Aktuálne heslo",
+    "new_password": "New Password",
     "change_password": "Zmeniť heslo",
     "change_password_error": "Nesprávne heslo!",
     "change_password_error_wrong_current": "Vaše súčasné heslo nie je správne",
@@ -115,6 +117,8 @@
     "paginate_description": "Očíslovať témy a príspevky namiesto používania nekonečného rolovania",
     "topics_per_page": "Témy na stranu",
     "posts_per_page": "Príspevkov na stranu",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximum %1",
     "acp_language": "Jazyk stránky správcu",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Zmierňujúca poznámka nebola uložená",
     "info.moderation-note.add": "Pridať poznámku",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Váš právny súhlas",
     "consent.lead": "Toto komunitné fórum zbiera a spracováva Vaše osobné údaje.",
     "consent.intro": "Tieto informácie používa iba pre úpravu Vašich skúseností v tejto komunite, rovnako tak k rozpoznaniu príspevkov, ktoré ste pod používateľským účtom vytvoril. Behom jednotlivých registračných krokov budete požiadaný o zadanie Vášho používateľského mena a e-mailovej adresy. Môžete taktiež dobrovoľne poskytnúť niektoré dodatočné informácie do Vášho profilu na webovej stránke. Tieto informácie uchovávame po dobu životnosti Vášho používateľského účtu. Kedykoľvek môžete požiadať kópiu svojich príspevkov na tejto webovej stránke pomocou stránky „Práva a súhlas“<br /><br /> Ak máte nejaké otázky alebo obavy, obráťte sa na tím správcov fóra.",
diff --git a/public/language/sk/users.json b/public/language/sk/users.json
index 1e4fa02c93..d5375c1cac 100644
--- a/public/language/sk/users.json
+++ b/public/language/sk/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Najnovší používatelia",
     "top_posters": "Najaktívnejší",
     "most_reputation": "Najváženejší",
     "most_flags": "Najviac označované",
     "search": "Vyhľadať",
     "enter_username": "Zadajte užívateľa k hľadaniu",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Načítať viac",
     "users-found-search-took": "%1 užívateľ(ia) sa našli! Vyhľadávanie trvalo %2 sekúnd.",
     "filter-by": "Filtrovať podľa",
diff --git a/public/language/sl/admin/admin.json b/public/language/sl/admin/admin.json
index c107b7a872..d379087343 100644
--- a/public/language/sl/admin/admin.json
+++ b/public/language/sl/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB skrbniška  nadzorna plošča",
 	"settings-header-contents": "Vsebine",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/sl/admin/appearance/customise.json b/public/language/sl/admin/appearance/customise.json
index 744b60dc2e..88146056cf 100644
--- a/public/language/sl/admin/appearance/customise.json
+++ b/public/language/sl/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "CSS/LESS po meri",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Omogoči CSS/LESS po meri",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Javascript po meri",
 	"custom-js.description": "Tukaj vnesite svoj javascript. Izveden bo, ko se stran popolnoma naloži.",
diff --git a/public/language/sl/admin/dashboard.json b/public/language/sl/admin/dashboard.json
index 7b8d329e5c..c67bd6e261 100644
--- a/public/language/sl/admin/dashboard.json
+++ b/public/language/sl/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Nazaj na nadzorno ploščo",
 	"details.no-users": "V izbranem časovnem okviru se ni pridružil noben uporabnik",
 	"details.no-topics": "V izbranem časovnem okviru ni bila objavljena nobena tema",
-	"details.no-searches": "Iskanja še niso bila izvedena",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "V izbranem časovnem okviru ni bila zabeležena nobena prijava",
 	"details.logins-static": "NodeBB shranjuje samo podatke o sejah za %1 dni, zato bo ta spodnja tabela prikazala samo zadnje aktivne seje",
-	"details.logins-login-time": "Čas prijave"
+	"details.logins-login-time": "Čas prijave",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/sl/admin/extend/widgets.json b/public/language/sl/admin/extend/widgets.json
index 6af766bf52..577d9a6b24 100644
--- a/public/language/sl/admin/extend/widgets.json
+++ b/public/language/sl/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Brez",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "plošča",
-	"container.panel-header": "Glava plošče",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Opozorilo",
 
 	"alert.confirm-delete": "Ste prepričani, da želite izbrisati ta pripomoček?",
diff --git a/public/language/sl/admin/manage/groups.json b/public/language/sl/admin/manage/groups.json
index f24abd0371..a19f194eae 100644
--- a/public/language/sl/admin/manage/groups.json
+++ b/public/language/sl/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Povrni",
 
 	"edit.no-users-found": "Uporabnikov ni bilo mogoče najti",
-	"edit.confirm-remove-user": "Ste prepričani, da želite odstraniti tega uporabnika?",
-	"edit.save-success": "Spremembe so shranjene!"
+	"edit.confirm-remove-user": "Ste prepričani, da želite odstraniti tega uporabnika?"
 }
\ No newline at end of file
diff --git a/public/language/sl/admin/manage/privileges.json b/public/language/sl/admin/manage/privileges.json
index b404e7b615..a2b9268902 100644
--- a/public/language/sl/admin/manage/privileges.json
+++ b/public/language/sl/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/sl/admin/settings/api.json b/public/language/sl/admin/settings/api.json
index 01306f9cf2..8522eb92aa 100644
--- a/public/language/sl/admin/settings/api.json
+++ b/public/language/sl/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "ID uporabnika",
 	"uid-help-text": "Določite ID uporabnika, ki ga želite povezati s tem žetonom. Če je ID uporabnika <code>0</code>, bo veljal za <em>glavni</em> žeton, ki lahko prevzame identiteto drugih uporabnikov na podlagi parametra <code>_uid</code>",
 	"description": "Opis",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "Opis ni naveden.",
 	"token-on-save": "Žeton bo ustvarjen, ko bo obrazec shranjen"
 }
\ No newline at end of file
diff --git a/public/language/sl/admin/settings/navigation.json b/public/language/sl/admin/settings/navigation.json
index fdfe4fce31..4bddbaf945 100644
--- a/public/language/sl/admin/settings/navigation.json
+++ b/public/language/sl/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Skupine",
 	"open-new-window": "Odpri v novem oknu",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Izbriši",
 	"btn.disable": "Onemogoči",
diff --git a/public/language/sl/admin/settings/user.json b/public/language/sl/admin/settings/user.json
index 31a7f090c0..0b68919c76 100644
--- a/public/language/sl/admin/settings/user.json
+++ b/public/language/sl/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Dni",
 	"session-time-seconds": "Sekund",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minut po tem, ko je uporabnik neaktiven",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "Registracija uporabnika",
diff --git a/public/language/sl/error.json b/public/language/sl/error.json
index eac8f93810..450f1f6449 100644
--- a/public/language/sl/error.json
+++ b/public/language/sl/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Gostom je prenašanje onemogočeno.",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Vaša prošnja za članstvo je že bila sprejeta.",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Ta objava je že bila izbrisana.",
     "post-already-restored": "Ta objava je že bila obnovljena.",
     "topic-already-deleted": "Ta tema je že bila izbrisana.",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/sl/flags.json b/public/language/sl/flags.json
index 71e66d821e..37671b6961 100644
--- a/public/language/sl/flags.json
+++ b/public/language/sl/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Hooray! No flags found.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Assignee",
 	"update": "Update",
 	"updated": "Posodobljeno",
 	"resolved": "Resolved",
 	"target-purged": "The content this flag referred to has been purged and is no longer available.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "Quick Filters",
 	"filter-active": "There are one or more filters active in this list of flags",
 	"filter-reset": "Remove Filters",
 	"filters": "Možnosti filtra",
-	"filter-reporterId": "Reporter UID",
-	"filter-targetUid": "Flagged UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flag Type",
 	"filter-type-all": "All Content",
 	"filter-type-post": "Objava",
 	"filter-type-user": "Uporabnik",
 	"filter-state": "State",
-	"filter-assignee": "Assignee UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategorija",
 	"filter-quick-mine": "Dodeljeno meni",
 	"filter-cid-all": "Vse kategorije",
@@ -45,6 +47,7 @@
 
 	"notes": "Flag Notes",
 	"add-note": "Dodaj opombo",
+	"edit-note": "Edit Note",
 	"no-notes": "Ni deljenih opomb.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/sl/global.json b/public/language/sl/global.json
index ebea071723..d9732db7bb 100644
--- a/public/language/sl/global.json
+++ b/public/language/sl/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Zapri",
     "403.title": "Dostop zavrnjen",
     "403.message": "Kaže, da ste naleteli na stran, za katero nimate dovoljenja.",
-    "403.login": "Morda bi se raje <a href='%1/login'>prijavili</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Tega ni bilo mogoče najti.",
-    "404.message": "Kaže, da ste naleteli na stran, ki ne obstaja. Vrnite se na <a href='%1/'>začetno stran</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Interna napaka",
     "500.message": "Ups! Nekaj je šlo narobe!",
     "400.title": "Napačna zahteva",
-    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registracija",
     "login": "Prijava",
     "please_log_in": "Prijavite se.",
@@ -37,9 +37,13 @@
     "header.notifications": "Obvestila",
     "header.search": "Iskanje",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Krmarjenje",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Nalaganje obvestil",
     "chats.loading": "Nalaganje klepetov",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Pozdravljeni v NodeBB, pogovorno platformo prihodnosti.",
     "previouspage": "Prejšnja stran",
     "nextpage": "Naslednja stran",
@@ -54,7 +58,8 @@
     "users": "Uporabniki",
     "topics": "Teme",
     "posts": "Objave",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Najboljše",
     "controversial": "Controversial",
     "votes": "Votes",
@@ -69,6 +74,7 @@
     "reputation": "Ugled",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "preberi več",
     "more": "Več",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 je objavil %2",
     "guest_posted_ago": "Gost je objavil %1.",
     "last_edited_by": "Zadnje urejanje: %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Ni nedavnih objav.",
     "norecenttopics": "Ni nedavnih tem.",
     "recentposts": "Nedavne objave",
     "recentips": "Nedavni prijavljeni IP-ji",
     "moderator_tools": "Moderator Tools",
+    "status": "Status",
     "online": "Dosegljiv",
     "away": "Odsoten",
     "dnd": "Ne moti",
@@ -122,5 +130,7 @@
     "edited": "Edited",
     "disabled": "Disabled",
     "select": "Select",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/sl/groups.json b/public/language/sl/groups.json
index 880aa8e302..a5fc7b378b 100644
--- a/public/language/sl/groups.json
+++ b/public/language/sl/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Skupine",
+    "members": "Members",
     "view_group": "Poglej skupino",
     "owner": "Lastnik skupine",
     "new_group": "Ustvari novo skupino",
diff --git a/public/language/sl/modules.json b/public/language/sl/modules.json
index 2557296e53..cc78b9c3a0 100644
--- a/public/language/sl/modules.json
+++ b/public/language/sl/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Klepetajte z",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Pošlji",
     "chat.no_active": "Ni aktivnih klepetov.",
     "chat.user_typing": "%1 piše sporočilo ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Sestavljanje",
     "composer.show_preview": "Pokaži predogled",
     "composer.hide_preview": "Skrij predogled",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 je napisal/-a v %2:",
     "composer.user_said": "%1 je napisal/-a:",
     "composer.discard": "Ste prepričani, da želite zavreči to objavo?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Čas",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Nastavi datum",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "V redu",
     "bootbox.cancel": "Prekliči",
     "bootbox.confirm": "Potrdi",
diff --git a/public/language/sl/pages.json b/public/language/sl/pages.json
index 0c766965ef..f09ab07f71 100644
--- a/public/language/sl/pages.json
+++ b/public/language/sl/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "%1's Bookmarked Posts",
     "account/settings": "Uporabniške nastavitve",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Teme, ki jih spremlja %1",
     "account/ignored": "Topics ignored by %1",
     "account/upvoted": " Objave uporabnika %1 z glasovi za",
diff --git a/public/language/sl/post-queue.json b/public/language/sl/post-queue.json
index 7c4c0175d0..159342883f 100644
--- a/public/language/sl/post-queue.json
+++ b/public/language/sl/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Čakalna vrsta objav",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Uporabnik",
+	"when": "When",
 	"category": "Kategorija",
 	"title": "Naslov",
 	"content": "Vsebina",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/sl/recent.json b/public/language/sl/recent.json
index a4e3328453..f7fc150441 100644
--- a/public/language/sl/recent.json
+++ b/public/language/sl/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Vse",
     "no_recent_topics": "Ni nedavnih tem.",
     "no_popular_topics": "Ni priljubljenih tem.",
-    "there-is-a-new-topic": "Objavljena je nova tema.",
-    "there-is-a-new-topic-and-a-new-post": "Objavljeni sta nova tema in nova objava.",
-    "there-is-a-new-topic-and-new-posts": "Objavljene so nova tema in %1 novih objav.",
-    "there-are-new-topics": "%1 novih tem.",
-    "there-are-new-topics-and-a-new-post": "%1 novih tem in nova objava.",
-    "there-are-new-topics-and-new-posts": "Nove teme: %1, nove objave: %2.",
-    "there-is-a-new-post": "Objavljena je nova objava.",
-    "there-are-new-posts": "Nove objave: %1.",
-    "click-here-to-reload": "Kliknite tu za osvežitev."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/sl/register.json b/public/language/sl/register.json
index 17def24c5c..3af9d0e896 100644
--- a/public/language/sl/register.json
+++ b/public/language/sl/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registracija",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Preklic registracije",
     "help.email": "Vaš e-poštni naslov bo privzeto skrit za javnost.",
     "help.username_restrictions": "Enkratno uporabniško ime s številom znakov: med %1 in %2. Drugi vas lahko v objavi omenijo z @<span id='yourUsername'>uporabnik</span>.",
diff --git a/public/language/sl/search.json b/public/language/sl/search.json
index 1c6196c710..fc340a5806 100644
--- a/public/language/sl/search.json
+++ b/public/language/sl/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 rezultat(ov) ustreza \"%2\", (%3 sekund)",
     "no-matches": "Ni najdenih rezultatov",
     "advanced-search": "Napredno iskanje",
     "in": "V",
-    "titles": "Naslovi",
-    "titles-posts": "Naslovi in objave",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "Objavil",
-    "in-categories": "V kategoriji",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Išči podkategorije",
     "has-tags": "Has tags",
     "reply-count": "Število odgovorov",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Vsaj",
     "at-most": "Največ",
     "relevance": "Relevance",
+    "time": "Time",
     "post-time": "Čas objave",
     "votes": "Votes",
     "newer-than": "Novejše kot",
@@ -28,7 +48,22 @@
     "three-months": "Tri mesece",
     "six-months": "Šest mesecev",
     "one-year": "Eno leto",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Razvrsti po",
+    "sort": "Sort",
     "last-reply-time": "Čas zadnjega odgovora",
     "topic-title": "Naslov teme",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "Kategorija",
     "descending": "Padajoče",
     "ascending": "Naraščajoče",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Shrani nastavitve",
     "clear-preferences": "Počisti nastavitve",
     "search-preferences-saved": "Poišči shranjene nastavitve",
     "search-preferences-cleared": "Poišči počiščene nastavitve",
     "show-results-as": "Prikaži rezultate kot",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/sl/social.json b/public/language/sl/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/sl/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/sl/tags.json b/public/language/sl/tags.json
index 244d7b7a1f..ab0d9d0851 100644
--- a/public/language/sl/tags.json
+++ b/public/language/sl/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Ni novih tem s to oznako.",
+    "no-tags-found": "No tags found",
     "tags": "Oznake",
     "enter_tags_here": "Tu vpišite oznake. Dovoljeno število znakov: najmanj %1 in največ %2.",
     "enter_tags_here_short": "Vpišite oznake...",
diff --git a/public/language/sl/topic.json b/public/language/sl/topic.json
index 4ac16a2f1a..14cdde6dd1 100644
--- a/public/language/sl/topic.json
+++ b/public/language/sl/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Kopiraj IP",
     "ban-ip": "Prepovej IP",
     "view-history": "Uredi zgodovino",
-    "locked-by": "Zaklenil/a",
-    "unlocked-by": "Odklenil/a",
-    "pinned-by": "Pripel/a",
-    "unpinned-by": "Odpel/a",
-    "deleted-by": "Izbrisal/a",
-    "restored-by": "Povrnil/a",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Klikni tukaj za vrnitev na zadnje prebrano objavo v tej niti",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Očisti temo",
     "thread_tools.purge_confirm": "Ste prepričani, da želite očistiti to temo?",
     "thread_tools.merge_topics": "Združi teme",
-    "thread_tools.merge": "Združi",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "Ta tema bo kmalu premaknjena v \"%1\". Kliknite tukaj, če želite razveljaviti.",
     "topic_move_multiple_success": "Te teme bodo kmalu premaknjene v \"%1\". Kliknite tukaj, če želite razveljaviti.",
     "topic_move_all_success": "Vse teme bodo kmalu premaknjene v \"%1\". Kliknite tukaj, če želite razveljaviti.",
@@ -121,7 +135,7 @@
     "post_moved": "Objava premaknjena!",
     "fork_topic": "Razcepi temo",
     "enter-new-topic-title": "Vnesite nov naslov teme",
-    "fork_topic_instruction": "Klikni na objavo, ki o želiš odcepiti",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Ni izbranih objav!",
     "no-posts-selected": "Ni izbranih objav!",
     "x-posts-selected": "Izbranih objav: %1 ",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Nov naslov teme",
     "topic-id": "ID teme",
     "move_posts_instruction": "Kliknite objave, ki jih želite premakniti, nato vnesite ID teme ali pojdite na ciljno temo",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Kliknite objave, ki jih želite dodeliti drugemu uporabniku",
     "composer.title_placeholder": "Vpiši naslov teme...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Zavrzi",
     "composer.submit": "Pošlji",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Odgovor na %1",
     "composer.new_topic": "Nova tema",
@@ -184,5 +201,7 @@
     "last-post": "Zadnja obava",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Objavi hitri odgovor"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/sl/user.json b/public/language/sl/user.json
index 47acf554a8..f6c1ceeca5 100644
--- a/public/language/sl/user.json
+++ b/public/language/sl/user.json
@@ -43,6 +43,7 @@
     "followers": "Spremljevalci",
     "following": "Spremljano",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Blokiraj uporabnika",
     "unblock_user": "Odblokiraj uporabnika",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Naloži novo fotografijo",
     "upload_new_picture_from_url": "Naloži novo fotografijo s spletnega naslova",
     "current_password": "Trenutno geslo",
+    "new_password": "New Password",
     "change_password": "Spremeni geslo",
     "change_password_error": "Napačno geslo!",
     "change_password_error_wrong_current": "Tvoje trenutno geslo je napačno!",
@@ -115,6 +117,8 @@
     "paginate_description": "Uporabi oštevilčenje strani namesto neskončnega drsenja",
     "topics_per_page": "Število tem na stran",
     "posts_per_page": "Število objav na stran",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Največ %1",
     "acp_language": "Jezik skrbniških strani",
     "notifications": "Obvestila",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderation note saved",
     "info.moderation-note.add": "Dodaj opombo",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "Ta forum skupnosti zbira in obdeluje vaše osebne podatke.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/sl/users.json b/public/language/sl/users.json
index 174b2e1916..0638263813 100644
--- a/public/language/sl/users.json
+++ b/public/language/sl/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Zadnji uporabniki",
     "top_posters": "Najboljši uporabniki",
     "most_reputation": "Največ ugleda",
     "most_flags": "Most Flags",
     "search": "Išči",
     "enter_username": "Za iskanje vpiši uporabniško ime",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Naloži več",
     "users-found-search-took": "%1 uporabnik(ov) najdenih! Iskanje je potrebovalo %2 sekunde.",
     "filter-by": "Filtriraj po",
diff --git a/public/language/sq-AL/admin/admin.json b/public/language/sq-AL/admin/admin.json
index f633c82c19..e2634e8498 100644
--- a/public/language/sq-AL/admin/admin.json
+++ b/public/language/sq-AL/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Paneli i Kontrollit të Administratorit ",
 	"settings-header-contents": "Përmbatja ",
-	"changes-saved": "Ndryshimet u ruajtën!",
-	"changes-saved-message": "Ndryshimet në konfigurimin e NodeBB u ruajtën me sukses!",
 	"changes-not-saved": "Ndryshimet nuk u ruajtën!",
 	"changes-not-saved-message": "NodeBB gjeti një problem gjatë ruajtjes së ndryshimeve. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/sq-AL/admin/appearance/customise.json b/public/language/sq-AL/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/sq-AL/admin/appearance/customise.json
+++ b/public/language/sq-AL/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/sq-AL/admin/dashboard.json b/public/language/sq-AL/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/sq-AL/admin/dashboard.json
+++ b/public/language/sq-AL/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/sq-AL/admin/extend/widgets.json b/public/language/sq-AL/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/sq-AL/admin/extend/widgets.json
+++ b/public/language/sq-AL/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/sq-AL/admin/manage/groups.json b/public/language/sq-AL/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/sq-AL/admin/manage/groups.json
+++ b/public/language/sq-AL/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/sq-AL/admin/manage/privileges.json b/public/language/sq-AL/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/sq-AL/admin/manage/privileges.json
+++ b/public/language/sq-AL/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/sq-AL/admin/settings/api.json b/public/language/sq-AL/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/sq-AL/admin/settings/api.json
+++ b/public/language/sq-AL/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/sq-AL/admin/settings/navigation.json b/public/language/sq-AL/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/sq-AL/admin/settings/navigation.json
+++ b/public/language/sq-AL/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/sq-AL/admin/settings/user.json b/public/language/sq-AL/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/sq-AL/admin/settings/user.json
+++ b/public/language/sq-AL/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/sq-AL/error.json b/public/language/sq-AL/error.json
index 62ef322bae..4383748394 100644
--- a/public/language/sq-AL/error.json
+++ b/public/language/sq-AL/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Ngarkimi nga vizitorëve është i çaktivizuar",
     "cors-error": "Imazhi nuk mund të ngarkohet për shkak të konfigurimit të gabuar të CORS",
     "upload-ratelimit-reached": "Ju keni ngarkuar shumë materiale në të njëjtën kohë. Ju lutemi provoni sërish më vonë.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Ju lutemi zgjidhni një datë në të ardhmen.",
     "invalid-schedule-date": "Ju lutemi shkruani një datë dhe orë të vlefshme.",
     "cant-pin-scheduled": "Temat e planifikuara nuk mund të (ç)fiksohen.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Kërkesa juaj për anëtarësim është dorëzuar tashmë",
     "group-join-disabled": "Nuk mund t'i bashkohesh këtij grupi për momentin",
     "group-leave-disabled": "Nuk mund të largohesh nga ky grup në këtë moment",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Ky postim tashmë është fshirë",
     "post-already-restored": "Ky postim tashmë është rikthyer",
     "topic-already-deleted": "Kjo temë tashmë është fshirë",
@@ -224,5 +227,6 @@
     "api.429": "Ju keni bërë shumë kërkesa, ju lutemi provoni përsëri më vonë",
     "api.500": "Një gabim i papritur u ndesh gjatë përpjekjes për të kryer kërkesën tuaj.",
     "api.501": "Itinerari që kërkoni nuk është zbatuar ende, ju lutemi provoni sërish nesër",
-    "api.503": "Itinerari që kërkoni nuk është aktualisht i disponueshëm për shkak të një konfigurimi të serverit"
+    "api.503": "Itinerari që kërkoni nuk është aktualisht i disponueshëm për shkak të një konfigurimi të serverit",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/sq-AL/flags.json b/public/language/sq-AL/flags.json
index 0f927e067c..eafc9c3a39 100644
--- a/public/language/sq-AL/flags.json
+++ b/public/language/sq-AL/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Raportet",
 	"first-reported": "Raportuar për herë të parë",
 	"no-flags": "Juhu! Nuk u gjet asnje gabim.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Përfituesi",
 	"update": "Përditëso",
 	"updated": "I përditësuar",
 	"resolved": "E zgjidhur",
 	"target-purged": "Përmbajtja të cilës i referohet ky raportim është fshire dhe nuk disponohet më.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Raportimet ditore",
 	"quick-filters": "Filtra të shpejtë",
 	"filter-active": "Ka një ose më shumë filtra aktivë në këtë listë raportimesh",
 	"filter-reset": "Hiqni filtrat",
 	"filters": "Opsionet e filtrit",
-	"filter-reporterId": "UID e reporterit",
-	"filter-targetUid": "UID e shënuar",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Lloji i raportimit",
 	"filter-type-all": "E gjithë Përmbajtja",
 	"filter-type-post": "Postim",
 	"filter-type-user": "Përdorues",
 	"filter-state": "Gjendja",
-	"filter-assignee": "Përfituesi UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategoria",
 	"filter-quick-mine": "Më është caktuar mua",
 	"filter-cid-all": "Të gjitha kategoritë",
@@ -45,6 +47,7 @@
 
 	"notes": "Shënime nga raportimet",
 	"add-note": "Shtoni shënim",
+	"edit-note": "Edit Note",
 	"no-notes": "Nuk ka shënime të përbashkëta.",
 	"delete-note-confirm": "Je i sigurt që dëshiron ta fshish këtë shënim?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/sq-AL/global.json b/public/language/sq-AL/global.json
index ff92679fd4..0566361619 100644
--- a/public/language/sq-AL/global.json
+++ b/public/language/sq-AL/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Mbyll",
     "403.title": "Hyrja u ndalua",
     "403.message": "Ju duket se keni arritur në një faqe në të cilën nuk keni akses.",
-    "403.login": "Ndoshta duhet të <a href='%1/login'>provoni të regjistroheni</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Nuk u gjet",
-    "404.message": "Ju duket se keni ngelur në një faqe që nuk ekziston. Kthehu në <a href='%1/'>faqen kryesore</a>. ",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Gabim i brendshëm.",
     "500.message": "Ups! Diçka nuk shkoi mirë!",
     "400.title": "Kërkesë e pasaktë.",
-    "400.message": "Me sa duket kjo lidhje është jo e sigurt, ju lutemi kontrolloni dhe provoni përsëri. Përndryshe, kthehuni <a href='%1/'>në faqen kryesore</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Regjistrohu",
     "login": "Hyr",
     "please_log_in": "Ju lutemi Identifikohu",
@@ -37,9 +37,13 @@
     "header.notifications": "NJOFTIME",
     "header.search": "Kërko",
     "header.profile": "Profili",
+    "header.account": "Account",
     "header.navigation": "Lundrim",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Njoftimet po ngarkohen",
     "chats.loading": "Po ngarkohen bisedat",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Mirë se vini në NodeBB, platformën e diskutimit të së ardhmes.",
     "previouspage": "Faqja e mëparshme",
     "nextpage": "Faqja tjetër",
@@ -54,7 +58,8 @@
     "users": "Përdoruesit",
     "topics": "Temat",
     "posts": "Postimet",
-    "x-posts": "%1 postime",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Më të mirat",
     "controversial": "E diskutueshme",
     "votes": "Votat",
@@ -69,6 +74,7 @@
     "reputation": "Reputacioni",
     "lastpost": "Postimi i fundit",
     "firstpost": "Postimi i parë",
+    "about": "About",
     "read_more": "Lexo më shumë",
     "more": "Më shumë",
     "none": "Asnjë",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 postoi %2",
     "guest_posted_ago": "Vizitori postoi %1",
     "last_edited_by": "Modifikuar së fundi nga %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Nuk ka postime të fundit",
     "norecenttopics": "Nuk ka tema të fundit",
     "recentposts": "Postimet e fundit",
     "recentips": "IP-të e regjistruara së fundi",
     "moderator_tools": "Mjetet e Moderatorit",
+    "status": "Status",
     "online": "Online",
     "away": "Kam ikur",
     "dnd": "Mos më shqetësoni",
@@ -122,5 +130,7 @@
     "edited": "U rregullua",
     "disabled": "Zhblloko",
     "select": "Zgjidh",
-    "user-search-prompt": "Shkruani diçka këtu për të gjetur përdorues..."
+    "user-search-prompt": "Shkruani diçka këtu për të gjetur përdorues...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/sq-AL/groups.json b/public/language/sq-AL/groups.json
index aac022d0fb..c2bbca8c75 100644
--- a/public/language/sq-AL/groups.json
+++ b/public/language/sq-AL/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupe",
+    "members": "Members",
     "view_group": "Shiko grupin",
     "owner": "Zotuesi i grupit",
     "new_group": "Krijo një grup të ri",
diff --git a/public/language/sq-AL/modules.json b/public/language/sq-AL/modules.json
index 6c44d4c9b9..9666df5e23 100644
--- a/public/language/sq-AL/modules.json
+++ b/public/language/sq-AL/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Bisedo me",
     "chat.placeholder": "Shkruani mesazhin e bisedës këtu, tërhiqni dhe lëshoni imazhet, shtypni enter për t'i dërguar",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "Po shikoni mesazhet e vjetra, klikoni këtu për të shkuar te mesazhet më të fundit.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Dërgo",
     "chat.no_active": "Ju nuk keni biseda aktive.",
     "chat.user_typing": "%1 është duke shkruajtur...",
@@ -42,6 +46,7 @@
     "composer.compose": "Harto",
     "composer.show_preview": "Shiko rezultatin",
     "composer.hide_preview": "Mbulo rezultatin",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 tha në %2:",
     "composer.user_said": "%1 tha:",
     "composer.discard": "Jeni i sigurt që dëshironi ta hiqni këtë postim?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Koha",
     "composer.cancel-scheduling": "Anulo planifikimin",
     "composer.set-schedule-date": "Cakto datën",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "Në rregull",
     "bootbox.cancel": "Anullo",
     "bootbox.confirm": "Konfirmo ",
diff --git a/public/language/sq-AL/pages.json b/public/language/sq-AL/pages.json
index 2b78bb2024..f6b9f20a24 100644
--- a/public/language/sq-AL/pages.json
+++ b/public/language/sq-AL/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Kategoritë e para nga %1",
     "account/bookmarks": "Postimet e shënuara nga %1",
     "account/settings": "Cilësimet e përdoruesit",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Tema e para nga %1",
     "account/ignored": "Temat e shmangura nga %1",
     "account/upvoted": "Postimi u votua lartë nga %1",
diff --git a/public/language/sq-AL/post-queue.json b/public/language/sq-AL/post-queue.json
index ce96f53ea1..923ba6b27a 100644
--- a/public/language/sq-AL/post-queue.json
+++ b/public/language/sq-AL/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Radha e postimit",
-	"description": "Nuk ka asnjë postim në radhën e postimeve. 1<br>Për të aktivizuar këtë veçori, shkoni te <a href=\"%1\">Cilësimet &rarr; Post &rarr; radha e postimeve</a> dhe aktivizoni <strong>Radha e Postimeve</strong>",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Përdorues",
+	"when": "When",
 	"category": "Kategoria",
 	"title": "Titulli",
 	"content": "Përmbajtja",
@@ -19,6 +23,7 @@
 	"notify": "Njofto",
 	"notify-user": "Njoftoni përdoruesin",
 	"confirm-reject": "Jeni i sigurt që dëshironi ta anulloni këtë postim?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Veprime njëkohësisht",
 	"accept-all": "Prano të gjitha",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Dëshiron të refuzosh të gjitha postimet?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Dëshiron të refuzosh %1 postimet e selektuara?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 postime u pranuan",
 	"bulk-reject-success": "%1 postime u refuzuan"
 }
\ No newline at end of file
diff --git a/public/language/sq-AL/recent.json b/public/language/sq-AL/recent.json
index dadb67e0fa..6f4364bd23 100644
--- a/public/language/sq-AL/recent.json
+++ b/public/language/sq-AL/recent.json
@@ -7,13 +7,5 @@
     "alltime": "I gjithë kohërave",
     "no_recent_topics": "Nuk ka tema të fundit.",
     "no_popular_topics": "Nuk ka tema të njohura.",
-    "there-is-a-new-topic": "Ka një temë të re.",
-    "there-is-a-new-topic-and-a-new-post": "Ka një temë të re dhe një postim të ri.",
-    "there-is-a-new-topic-and-new-posts": "Ka një temë të re dhe %1 postime të reja.",
-    "there-are-new-topics": "Ka %1 tema të reja.",
-    "there-are-new-topics-and-a-new-post": "Ka %1 tema të reja dhe një postim të ri.",
-    "there-are-new-topics-and-new-posts": "Ka %1 tema të reja dhe %2 postime të reja.",
-    "there-is-a-new-post": "Ka një postim të ri",
-    "there-are-new-posts": "Ka %1 postime të reja.",
-    "click-here-to-reload": "Kliko këtu për të ringarkuar."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/sq-AL/register.json b/public/language/sq-AL/register.json
index 3d57b1d510..ce7dd1ff1b 100644
--- a/public/language/sq-AL/register.json
+++ b/public/language/sq-AL/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Regjistrohu",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Anulo regjistrimin",
     "help.email": "Si parazgjedhje, emaili juaj do të mbahet i fshihte nga publiku.",
     "help.username_restrictions": "Një emër përdoruesi unik midis %1 dhe %2 karaktereve. Të tjerët mund t'ju përmendin me @<span id='yourUsername'>username</span>.",
diff --git a/public/language/sq-AL/search.json b/public/language/sq-AL/search.json
index 170a8302fc..2509b1a0e9 100644
--- a/public/language/sq-AL/search.json
+++ b/public/language/sq-AL/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 rezultat(e) që përputhen me \"%2\", (%3 sekonda)",
     "no-matches": "Nuk u gjet asnjë përputhje",
     "advanced-search": "Kërkim i avancuar",
     "in": "Në",
-    "titles": "Titujt",
-    "titles-posts": "Titujt dhe postimet",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Përputhni fjalët",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Të gjitha",
     "any": "Çdo",
     "posted-by": "Postuar nga",
-    "in-categories": "Në kategori",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Kërko kategoritë e fëmijëve",
     "has-tags": "Ka etiketa",
     "reply-count": "Numri i komenteve",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Të paktën",
     "at-most": "Së shumti",
     "relevance": "Rëndësia",
+    "time": "Time",
     "post-time": "Koha e postimit",
     "votes": "Votat",
     "newer-than": "Më e re se",
@@ -28,7 +48,22 @@
     "three-months": "Tre muaj",
     "six-months": "Gjashtë muaj",
     "one-year": "Një vit",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Ndaj sipas",
+    "sort": "Sort",
     "last-reply-time": "Komenti i fundit",
     "topic-title": "Titulli i temës",
     "topic-votes": "Votat e temës",
@@ -39,11 +74,36 @@
     "category": "Kategoria",
     "descending": "Në rend zbritës",
     "ascending": "Në rend rritës",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Ruaj preferencat",
     "clear-preferences": "Pastro preferencat",
     "search-preferences-saved": "Preferencat e kërkimit u ruajtën",
     "search-preferences-cleared": "Preferencat e kërkimit u pastruan",
     "show-results-as": "Shfaq rezultatet si",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Shiko më shumë rezultate (%1)",
     "search-in-category": "Kërko në \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/sq-AL/social.json b/public/language/sq-AL/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/sq-AL/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/sq-AL/tags.json b/public/language/sq-AL/tags.json
index 0fb8f6ec66..34f02635f8 100644
--- a/public/language/sq-AL/tags.json
+++ b/public/language/sq-AL/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Nuk ka tema me këtë tag.",
+    "no-tags-found": "No tags found",
     "tags": "Tags",
     "enter_tags_here": "Futni këtu tags, ndërmjet %1 dhe %2 karaktere secila.",
     "enter_tags_here_short": "Vendos tags...",
diff --git a/public/language/sq-AL/topic.json b/public/language/sq-AL/topic.json
index 3a1ea0de41..017f99ccb3 100644
--- a/public/language/sq-AL/topic.json
+++ b/public/language/sq-AL/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Kopjoni IP-në",
     "ban-ip": "Pezulloni IP-në",
     "view-history": "Ndrysho historinë",
-    "locked-by": "E mbyllur nga",
-    "unlocked-by": "E shkyçur nga",
-    "pinned-by": "Fiksuar nga",
-    "unpinned-by": "E ç'fiksuar nga",
-    "deleted-by": "Fshirë nga",
-    "restored-by": "Rivendosur nga ",
-    "moved-from-by": "Zhvendosur nga %1 nga",
-    "queued-by": "Postimi në radhë për miratim &rarr;",
-    "backlink": "Referuar nga",
-    "forked-by": "Ndryshuar nga",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Klikoni këtu për tu kthyer në postimin e fundit të lexuar në këtë temë.",
     "flag-post": "Raporto këtë postim",
     "flag-user": "Raporto këtë përdorues",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Pastroni temën",
     "thread_tools.purge_confirm": "Jeni i sigurt që dëshironi ta pastroni këtë temë?",
     "thread_tools.merge_topics": "Bashko temat",
-    "thread_tools.merge": "Bashko",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "Kjo temë do të zhvendoset në \"%1\" së shpejti. Kliko këtu për ta zhbërë.",
     "topic_move_multiple_success": "Këto tema do të zhvendosen në \"%1\" së shpejti. Kliko këtu për ta zhbërë.",
     "topic_move_all_success": "Të gjitha temat do të zhvendosen në \"%1\" së shpejti. Kliko këtu për ta zhbërë.",
@@ -121,7 +135,7 @@
     "post_moved": "Postimi u zhvendos!",
     "fork_topic": "Ndrysho temën",
     "enter-new-topic-title": "Vendos titullin e temës së re",
-    "fork_topic_instruction": "Zgjidhni postimet që dëshironi të ndryshoni",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Asnjë postim i zgjedhur!",
     "no-posts-selected": "Asnjë postim i zgjedhur!",
     "x-posts-selected": "%1 postim(e) i zgjedhur",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Titulli i ri për temën",
     "topic-id": "ID e temës",
     "move_posts_instruction": "Klikoni postimet që dëshironi të zhvendosni, më pas vendosni një ID teme ose shkoni te tema e synuar",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Klikoni postimet që dëshironi t'i caktoni një përdoruesi tjetër",
     "composer.title_placeholder": "Shkruani titullin e temës suaj këtu...",
     "composer.handle_placeholder": "Shkruani emrin tuaj këtu",
+    "composer.hide": "Hide",
     "composer.discard": "Anullo",
     "composer.submit": "Posto",
     "composer.additional-options": "Opsione shtesë",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Skedulo",
     "composer.replying_to": "Duke komentuar \"%1\"",
     "composer.new_topic": "Temë e re",
@@ -184,5 +201,7 @@
     "last-post": "Postimi i fundit",
     "go-to-my-next-post": "Shkoni te postimi im i radhës",
     "no-more-next-post": "Nuk keni postime të tjera në këtë temë",
-    "post-quick-reply": "Postoni një koment të shpejtë"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/sq-AL/user.json b/public/language/sq-AL/user.json
index 2194839a9f..04957f2469 100644
--- a/public/language/sq-AL/user.json
+++ b/public/language/sq-AL/user.json
@@ -43,6 +43,7 @@
     "followers": "Ndjekësit",
     "following": "Duke ndjekur",
     "blocks": "Blloqe",
+    "blocked-users": "Blocked users",
     "block_toggle": "Ndrysho bllokimin",
     "block_user": "Blloko përdoruesin",
     "unblock_user": "Zhblloko përdoruesin",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Ngarko foto të re",
     "upload_new_picture_from_url": "Ngarko foto të re nga URL-ja",
     "current_password": "Fjalëkalimi aktual",
+    "new_password": "New Password",
     "change_password": "Ndrysho fjalekalimin",
     "change_password_error": "Fjalëkalim i pavlefshëm",
     "change_password_error_wrong_current": "Fjalëkalimi juaj aktual nuk është i saktë!",
@@ -115,6 +117,8 @@
     "paginate_description": "Kategorizoni temat tuaja në vënd që të lundroni pafund.",
     "topics_per_page": "Tema për Faqe",
     "posts_per_page": "Postime për Faqe",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maksimumi %1",
     "acp_language": "Gjuha e faqes së administratorit",
     "notifications": "Njoftimet",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Shënimi i moderimit u ruajt",
     "info.moderation-note.add": "Shtoni shënim",
     "sessions.description": "Kjo faqe ju lejon të shikoni çdo sesion aktiv në këtë forum dhe t'i anuloni ato nëse është e nevojshme. Ju mund ta revokoni seancën tuaj duke dalë nga llogaria juaj.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Të drejtat tuaja &amp; Pëlqimi",
     "consent.lead": "Kushtet e forumit tonë janë si më poshtë:",
     "consent.intro": "Ne e përdorim këtë informacion në mënyrë rigoroze për të personalizuar përvojën tuaj në këtë komunitet, si dhe për të lidhur postimet që bëni me llogarinë tuaj të përdoruesit. Gjatë hapit të regjistrimit ju është kërkuar të jepni një emër përdoruesi dhe adresë emaili, gjithashtu mund të jepni opsionalisht informacion shtesë për të plotësuar profilin tuaj të përdoruesit në këtë faqe interneti. <br /><br />Ne e ruajmë këtë informacion për sa kohë që llogaria juaj është aktive. Ju jeni në gjendje të tërhiqni pëlqimin në çdo kohë duke fshirë llogarinë tuaj. Në çdo kohë ju mund të kërkoni një kopje të kontributit tuaj në këtë faqe interneti, nëpërmjet të drejtave tuaja &amp; Faqja e pëlqimit. <br /><br />Nëse keni ndonjë pyetje ose shqetësim, ju inkurajojmë të kontaktoni ekipin administrativ të këtij forumi.",
diff --git a/public/language/sq-AL/users.json b/public/language/sq-AL/users.json
index 98ef270d3f..85d2632176 100644
--- a/public/language/sq-AL/users.json
+++ b/public/language/sq-AL/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Përdoruesit e fundit",
     "top_posters": "Postuesit më të mirë",
     "most_reputation": "Me Reputacion",
     "most_flags": "Më të raportuarit",
     "search": "Kërko",
     "enter_username": "Kërko një përdorues",
-    "search-user-for-chat": "Kërkoni një përdorues për të filluar bisedën",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Ngarko më shumë",
     "users-found-search-took": "%1 përdorues u gjet (en) ! Kërkimi zgjati %2 sekonda.",
     "filter-by": "Filtro sipas",
diff --git a/public/language/sr/admin/admin.json b/public/language/sr/admin/admin.json
index a4c1a1cdb1..b0c05d1237 100644
--- a/public/language/sr/admin/admin.json
+++ b/public/language/sr/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Administratorski panel",
 	"settings-header-contents": "Sadržaj",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/sr/admin/appearance/customise.json b/public/language/sr/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/sr/admin/appearance/customise.json
+++ b/public/language/sr/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/sr/admin/dashboard.json b/public/language/sr/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/sr/admin/dashboard.json
+++ b/public/language/sr/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/sr/admin/extend/widgets.json b/public/language/sr/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/sr/admin/extend/widgets.json
+++ b/public/language/sr/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/sr/admin/manage/groups.json b/public/language/sr/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/sr/admin/manage/groups.json
+++ b/public/language/sr/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/sr/admin/manage/privileges.json b/public/language/sr/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/sr/admin/manage/privileges.json
+++ b/public/language/sr/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/sr/admin/settings/api.json b/public/language/sr/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/sr/admin/settings/api.json
+++ b/public/language/sr/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/sr/admin/settings/navigation.json b/public/language/sr/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/sr/admin/settings/navigation.json
+++ b/public/language/sr/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/sr/admin/settings/user.json b/public/language/sr/admin/settings/user.json
index 041e750fcc..331b89acce 100644
--- a/public/language/sr/admin/settings/user.json
+++ b/public/language/sr/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "Registracija korisnika",
diff --git a/public/language/sr/error.json b/public/language/sr/error.json
index 990a0ca5b8..c8dd153238 100644
--- a/public/language/sr/error.json
+++ b/public/language/sr/error.json
@@ -62,7 +62,7 @@
     "no-user": "Корисник не постоји",
     "no-teaser": "Исечак не постоји",
     "no-flag": "Заставица не постоји",
-    "no-chat-room": "Chat room does not exist",
+    "no-chat-room": "Соба за ћаскање не постоји",
     "no-privileges": "Немате довољне привилегије за обављање ове радње.",
     "category-disabled": "Категорија је онемогућена",
     "topic-locked": "Тема је закључана",
@@ -89,7 +89,7 @@
     "category-not-selected": "Није одабрана категорија",
     "too-many-posts": "Можете објављивати поруке само једном у %1 секунди - сачекајте пре него што покушате поново",
     "too-many-posts-newbie": "Као нови корисник, можете објављивати поруке само једном у %1 секунди док не достигнете %2 углед - сачекајте пре него што покушате поново",
-    "already-posting": "You are already posting",
+    "already-posting": "Већ објављујете",
     "tag-too-short": "Унесите дужу ознаку. Ознаке морају садржати најмање %1 знак(ов)а.",
     "tag-too-long": "Унесите краћу ознаку. Ознаке не смеју бити дуже од %1 знак(ов)а.",
     "not-enough-tags": "Нема довољно ознака. Теме морају имати најмање %1 ознаке/а.",
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Гостима је онемогућено отпремање",
     "cors-error": "Није могуће отпремити слику због погрешно конфигурисаног CORS",
     "upload-ratelimit-reached": "Отпремили сте превише датотека одједном. Покушајте поново касније.",
+    "upload-error-fallback": "Није могуће отпремити слику — %1",
     "scheduling-to-past": "Изаберите датум у будућности.",
     "invalid-schedule-date": "Унесите важећи датум и време.",
     "cant-pin-scheduled": "Планиране теме се не могу закачити/откачити.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Ваш захтев за чланство је већ поднесен",
     "group-join-disabled": "Тренутно нисте у могућности да се придружите овој групи",
     "group-leave-disabled": "Тренутно нисте у могућности да напустите ову групу",
+    "group-user-not-pending": "Корисник нема захтев на чекању да се придружи овој групи.",
+    "gorup-user-not-invited": "Корисник није позван да се придружи овој групи.",
     "post-already-deleted": "Ова порука је већ избрисана",
     "post-already-restored": "Ова порука је већ обновљена",
     "topic-already-deleted": "Ова тема је већ избрисана",
@@ -157,9 +160,9 @@
     "chat-deleted-already": "Ова порука ћаскања је већ избрисана.",
     "chat-restored-already": "Ова порука ћаскања је већ обновљена.",
     "chat-room-does-not-exist": "Соба за ћаскање не постоји.",
-    "cant-add-users-to-chat-room": "Can't add users to chat room.",
-    "cant-remove-users-from-chat-room": "Can't remove users from chat room.",
-    "chat-room-name-too-long": "Chat room name too long.",
+    "cant-add-users-to-chat-room": "Не могу се додати корисници у собу за ћаскање.",
+    "cant-remove-users-from-chat-room": "Не могу се уклонити корисници из собе за ћаскање.",
+    "chat-room-name-too-long": "Име собе за ћаскање је предугачко.",
     "already-voting-for-this-post": "Већ сте гласали за ову поруку.",
     "reputation-system-disabled": "Угледи су онемогућени.",
     "downvoting-disabled": "Негативно гласање је онемогућено",
@@ -224,5 +227,6 @@
     "api.429": "Поднели сте превише захтева, покушајте поново касније",
     "api.500": "Дошло је до неочекиване грешке приликом покушаја сервисирања вашег захтева.",
     "api.501": "Рута коју покушавате да позовете још увек није примењена, покушајте поново сутра",
-    "api.503": "Рута коју покушавате да позовете тренутно није доступна због конфигурације сервера"
+    "api.503": "Рута коју покушавате да позовете тренутно није доступна због конфигурације сервера",
+    "api.reauth-required": "Ресурс којем покушавате да приступите захтева (поновну) аутентификацију."
 }
\ No newline at end of file
diff --git a/public/language/sr/flags.json b/public/language/sr/flags.json
index f8d80dff6e..1f54a981f2 100644
--- a/public/language/sr/flags.json
+++ b/public/language/sr/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Извештаји",
 	"first-reported": "Прво пријављено",
 	"no-flags": "Ура! Нема заставица.",
+	"x-flags-found": "Пронађено заставица: %1.",
 	"assignee": "Заступник",
 	"update": "Ажурирај",
 	"updated": "Ажурирано",
 	"resolved": "Решено",
 	"target-purged": "Садржај на који се односи ова заставица је очишћен и није више доступан.",
+	"target-aboutme-empty": "Овај корисник није подесио &quot;О мени&quot;.",
 
 	"graph-label": "Дневне заставице",
 	"quick-filters": "Брзи филтери",
 	"filter-active": "Постоји један или више активних филтера на овом списку заставица",
 	"filter-reset": "Уклони заставице",
 	"filters": "Опције филтера",
-	"filter-reporterId": "UID извештача",
-	"filter-targetUid": "UID означеног заставицом",
+	"filter-reporterId": "Извештач",
+	"filter-targetUid": "Извештач",
 	"filter-type": "Тип заставице",
 	"filter-type-all": "Сав садржај",
 	"filter-type-post": "Порука",
 	"filter-type-user": "Корисник",
 	"filter-state": "Стање",
-	"filter-assignee": "UID заступника",
+	"filter-assignee": "Заступник",
 	"filter-cid": "Категорија",
 	"filter-quick-mine": "Додељено мени",
 	"filter-cid-all": "Све категорије",
@@ -45,6 +47,7 @@
 
 	"notes": "Белешке са заставицама",
 	"add-note": "Додај белешку",
+	"edit-note": "Уреди белешку",
 	"no-notes": "Нема дељених бележака.",
 	"delete-note-confirm": "Да ли сте сигурни да желите избрисати ову белешку са заставицом?",
 	"delete-flag-confirm": "Да ли сте сигурни да желите да избришете ову заставицу?",
diff --git a/public/language/sr/global.json b/public/language/sr/global.json
index 7da7113606..aa67c6a681 100644
--- a/public/language/sr/global.json
+++ b/public/language/sr/global.json
@@ -3,14 +3,14 @@
     "search": "Претражи",
     "buttons.close": "Затвори",
     "403.title": "Приступ одбијен",
-    "403.message": "Изгледа да сте набасали на страницу на којој немате дозвољен приступ.",
-    "403.login": "Можда би требало да се <a href='%1/login'>пријавите</a>?",
-    "404.title": "Не постоји",
-    "404.message": "Изгледа да сте наишли на страницу која не постоји. Вратите се на <a href='%1/'>матичну страницу.</a>.",
+    "403.message": "Изгледа да сте налетели на страницу на којој немате дозвољен приступ.",
+    "403.login": "Можда би требало <a class=\"alert-link\" href='%1/login'>да покушате да се пријавите</a>?",
+    "404.title": "Није пронађено",
+    "404.message": "Изгледа да сте налетели на страницу која не постоји. Вратите се на <a class=\"alert-link\" href='%1/'>почетну страницу</a>.",
     "500.title": "Унутрашња грешка.",
     "500.message": "Упс! Изгледа да нешто није како треба!",
     "400.title": "Неисправан захтев.",
-    "400.message": "Изгледа да је веза погрешно уобличена, проверите и пробајте поново.  У супротном, вратите се на <a href='%1/'>матичну страницу</a>.",
+    "400.message": "Изгледа да је ова веза деформисана, проверите још једном и покушајте поново. У супротном, вратите се на <a class=\"alert-link\" href='%1/'>почетну страницу</a>.",
     "register": "Регистрација",
     "login": "Пријави се",
     "please_log_in": "Молимо, пријавите се",
@@ -37,9 +37,13 @@
     "header.notifications": "Обавештења",
     "header.search": "Претрага",
     "header.profile": "Профил",
+    "header.account": "Налог",
     "header.navigation": "Навигација",
+    "header.manage": "Управљај",
+    "header.drafts": "Нацрти",
     "notifications.loading": "Учитавање обавештења",
     "chats.loading": "Учитавање ћаскања",
+    "drafts.loading": "Учитавање нацрта",
     "motd.welcome": "Добродошли на NodeBB, дискусиону платформу будућности.",
     "previouspage": "Претходна страна",
     "nextpage": "Следећа страна",
@@ -54,7 +58,8 @@
     "users": "Корисници",
     "topics": "Теме",
     "posts": "Поруке",
-    "x-posts": "%1 поруке/а",
+    "x-posts": "<span class=\"formatted-number\">%1</span> поруке",
+    "x-topics": "<span class=\"formatted-number\">%1</span> теме",
     "best": "Најбоље",
     "controversial": "Спорно",
     "votes": "Гласови",
@@ -69,6 +74,7 @@
     "reputation": "Углед",
     "lastpost": "Последња порука",
     "firstpost": "Прва порука",
+    "about": "Информације",
     "read_more": "прочитајте више",
     "more": "Више",
     "none": "Ниједан",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 објавио %2",
     "guest_posted_ago": "Гост је објавио %1",
     "last_edited_by": "последњи пут уредио %1",
+    "edited-timestamp": "Уређено %1",
     "norecentposts": "Нема недавних порука",
     "norecenttopics": "Нема недавних тема",
     "recentposts": "Недавне поруке",
     "recentips": "Недавно забележене IP адресе",
     "moderator_tools": "Алати модератора",
+    "status": "Статус",
     "online": "На мрежи",
     "away": "Одсутан",
     "dnd": "Не узнемиравај",
@@ -122,5 +130,7 @@
     "edited": "Уређено",
     "disabled": "Онемогућено",
     "select": "Изабери",
-    "user-search-prompt": "Uкуцајте нешто овде како бисте пронашли кориснике..."
+    "user-search-prompt": "Uкуцајте нешто овде како бисте пронашли кориснике...",
+    "hidden": "Сакривен",
+    "sort": "Сортирај"
 }
\ No newline at end of file
diff --git a/public/language/sr/groups.json b/public/language/sr/groups.json
index 5ef1f2fa26..94a13b29e2 100644
--- a/public/language/sr/groups.json
+++ b/public/language/sr/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Групе",
+    "members": "Чланови",
     "view_group": "Преглед групе",
     "owner": "Власник групе",
     "new_group": "Направи нову групу",
diff --git a/public/language/sr/modules.json b/public/language/sr/modules.json
index 14b2bc8812..41509870dc 100644
--- a/public/language/sr/modules.json
+++ b/public/language/sr/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Ћаскај са",
-    "chat.placeholder": "Укуцајте поруку ћаскања овде, превуците и отпустите слике, притисните enter за слање",
+    "chat.placeholder": "Куцајте поруку ћаскања овде, превуците и отпустите слике, притисните enter за слање",
+    "chat.placeholder.mobile": "Куцајте поруку овде",
     "chat.scroll-up-alert": "Гледате старије поруке, кликните овде да бисте прешли на најновију поруку.",
+    "chat.usernames-and-x-others": "%1 & %2 осталих",
+    "chat.chat-with-usernames": "Ћаскај са %1",
+    "chat.chat-with-usernames-and-x-others": "Ћаскај са %1 & %2 осталих",
     "chat.send": "Пошаљи",
     "chat.no_active": "Нема активних ћаскања.",
     "chat.user_typing": "%1 куца ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Писање поруке",
     "composer.show_preview": "Прикажи преглед",
     "composer.hide_preview": "Сакриј преглед",
+    "composer.help": "Помоћ",
     "composer.user_said_in": "%1 је рекао у %2",
     "composer.user_said": "%1 је рекао:",
     "composer.discard": "Желите ли да одбаците ову поруку?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Време",
     "composer.cancel-scheduling": "Откажи планирање",
     "composer.set-schedule-date": "Подеси датум",
+    "composer.discard-all-drafts": "Одбаци све нацрте",
+    "composer.no-drafts": "Немате нацрте",
+    "composer.discard-draft-confirm": "Да ли желите да одбаците овај нацрт?",
     "bootbox.ok": "У реду",
     "bootbox.cancel": "Откажи",
     "bootbox.confirm": "Потврди",
diff --git a/public/language/sr/pages.json b/public/language/sr/pages.json
index 74d8adb262..8ee2c31159 100644
--- a/public/language/sr/pages.json
+++ b/public/language/sr/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Надгледане категорије корисника %1",
     "account/bookmarks": "Омиљене поруке корисника $1",
     "account/settings": "Корисничка подешавања",
+    "account/settings-of": "Промена подешавања од %1",
     "account/watched": "Теме које надгледа %1",
     "account/ignored": "Теме које игнорише %1",
     "account/upvoted": "Поруке које је гласао %1",
diff --git a/public/language/sr/post-queue.json b/public/language/sr/post-queue.json
index 39b0084310..b3b53a7eb3 100644
--- a/public/language/sr/post-queue.json
+++ b/public/language/sr/post-queue.json
@@ -1,13 +1,17 @@
 
 {
-	"post-queue": "Поруке на чекању",
-	"description": "Ннема порука на чекању. <br> Да бисте омогућили ову функцију, идите у <a href=\"%1\">ПОдешавања &rarr; Поруке &rarr; Поруке на чекању</a> и омогућите <strong>Поруке на чекању</strong>.",
+	"post-queue": "Објаве у реду чекања",
+	"no-queued-posts": "Нема објава у реду чекања.",
+	"no-single-post": "Тема или објава коју тражите више није у реду чекања. Вероватно је већ одобрена или избрисана.",
+	"enabling-help": "За омогућавање ове функције, идите у <a href=\"%1\">Подешавања &rarr; Објава &rarr; Објаве на чекању</a> и омогућите <strong>Објаве на чекању</strong>.",
+	"back-to-list": "Назад на објаве у реду чекања",
 	"user": "Корисник",
+	"when": "Када",
 	"category": "Категорија",
 	"title": "Наслов",
 	"content": "Садржај",
 	"posted": "Објављено",
-	"reply-to": "Одговори на \"%1\"",
+	"reply-to": "Одговори на „%1”",
 	"content-editable": "Кликните на садржај да бисте уредили",
 	"category-editable": "Кликните на категорију да бисте уредили",
 	"title-editable": "Кликните на наслов да бисте уредили",
@@ -18,14 +22,19 @@
 	"remove": "Уклони",
 	"notify": "Обавештење",
 	"notify-user": "Обавести корисника",
-	"confirm-reject": "Да ли желите да одбаците ову поруку?",
+	"confirm-reject": "Да ли желите да одбаците ову објаву?",
+	"confirm-remove": "Да ли желите да уклоните ову објаву?",
 	"bulk-actions": "Масовне радње",
 	"accept-all": "Прихвати све",
 	"accept-selected": "Прихвати изабрано",
 	"reject-all": "Одбаци све",
-	"reject-all-confirm": "Да ли желите да одбаците све поруке?",
+	"reject-all-confirm": "Да ли желите да одбаците све објаве?",
 	"reject-selected": "Одбаци изабрано",
-	"reject-selected-confirm": "Да ли желите да одбаците изабране поруке (укупно %1)?",
-	"bulk-accept-success": "Прихваћених порука: %1",
-	"bulk-reject-success": "Одбачених порука: %1"
+	"reject-selected-confirm": "Да ли желите да одбаците изабране објаве (укупно %1)?",
+	"remove-all": "Уклони све",
+	"remove-all-confirm": "Да ли желите да уклоните све објаве?",
+	"remove-selected": "Уклони изабрано",
+	"remove-selected-confirm": "Да ли желите да уклоните изабране објаве (%1)?",
+	"bulk-accept-success": "Прихваћених објава: %1",
+	"bulk-reject-success": "Одбачених објава: %1"
 }
\ No newline at end of file
diff --git a/public/language/sr/recent.json b/public/language/sr/recent.json
index 3e39d9d0c4..2b9ab70309 100644
--- a/public/language/sr/recent.json
+++ b/public/language/sr/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Одувек",
     "no_recent_topics": "Нема недавних тема.",
     "no_popular_topics": "Нема популарних тема.",
-    "there-is-a-new-topic": "Постоји нова тема.",
-    "there-is-a-new-topic-and-a-new-post": "Постоје нова тема и нова порука.",
-    "there-is-a-new-topic-and-new-posts": "Постоји нова тема и укупно нових порука: %1.",
-    "there-are-new-topics": "Број нових тема: %1.",
-    "there-are-new-topics-and-a-new-post": "Постоји нова порука и укупно нових тема: %1.",
-    "there-are-new-topics-and-new-posts": "Број нових тема: %1 и нових порука: %2.",
-    "there-is-a-new-post": "Постоји нова порука.",
-    "there-are-new-posts": "Број нових порука: %1.",
-    "click-here-to-reload": "Кликните овде за поновно учитавање."
+    "load-new-posts": "Учитај нове поруке"
 }
\ No newline at end of file
diff --git a/public/language/sr/register.json b/public/language/sr/register.json
index 4a1581b20c..e676fef2ac 100644
--- a/public/language/sr/register.json
+++ b/public/language/sr/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Регистрација",
+    "already-have-account": "Већ имате налог?",
     "cancel_registration": "Откажи регистрацију",
     "help.email": "Ваша е-пошта ће подразумевано бити скривена од јавности.",
     "help.username_restrictions": "Јединствено корисничко име са %1 до %2 знакова. Остали вас могу спомињати путем @<span id='yourUsername'>корисничко име</span>.",
diff --git a/public/language/sr/search.json b/public/language/sr/search.json
index 16e14485de..de22ee0067 100644
--- a/public/language/sr/search.json
+++ b/public/language/sr/search.json
@@ -1,21 +1,41 @@
 {
-    "results_matching": "%1 резултат(а) се подудара са „%2“, (%3 секунди)",
+    "type-to-search": "Унесите за претрагу",
+    "results_matching": "%1 резултат(а) се подудара са „%2”, (%3 секунди)",
     "no-matches": "Нема подударања",
     "advanced-search": "Напредна претрага",
     "in": "У",
-    "titles": "Наслови",
-    "titles-posts": "Наслови и поруке",
+    "in-titles": "У насловима",
+    "in-titles-posts": "У насловима и објавама",
+    "in-posts": "У објавама",
+    "in-categories": "У категоријама",
+    "in-users": "У корисницима",
+    "in-tags": "У ознакама",
+    "categories": "Категорије",
+    "all-categories": "Све категорије",
+    "categories-x": "Категорије: %1",
+    "categories-watched-categories": "Категорије: Надгледане категорије",
+    "type-a-category": "Унесите категорију",
+    "tags": "Ознаке",
+    "tags-x": "Ознаке: %1",
+    "type-a-tag": "Унесите ознаку",
     "match-words": "Речи које се подударају",
+    "match-all-words": "Подударање свих речи",
+    "match-any-word": "Подударање било које речи",
     "all": "Све",
     "any": "Било која",
     "posted-by": "Објавио",
-    "in-categories": "У категоријама",
+    "posted-by-usernames": "Објавио: %1",
+    "type-a-username": "Унесите корисничко име",
     "search-child-categories": "Претражи поткатегорије",
     "has-tags": "Има ознаке",
     "reply-count": "Број одговора",
+    "replies": "Одговори",
+    "replies-atleast-count": "Одговори: Најмање %1",
+    "replies-atmost-count": "Одговори: Највише %1",
     "at-least": "Најмање",
     "at-most": "Највише",
     "relevance": "Важности",
+    "time": "Време",
     "post-time": "Времену објаве",
     "votes": "Гласовима",
     "newer-than": "Новије од",
@@ -28,7 +48,22 @@
     "three-months": "Три месеца",
     "six-months": "Шест месеци",
     "one-year": "Једне године",
+    "time-newer-than-86400": "Време: Новије од јуче",
+    "time-older-than-86400": "Време: Старије од јуче",
+    "time-newer-than-604800": "Време: Новије од једне седмице",
+    "time-older-than-604800": "Време: Старије од једне седмице",
+    "time-newer-than-1209600": "Време: Новије од две седмице",
+    "time-older-than-1209600": "Време: Старије од две седмице",
+    "time-newer-than-2592000": "Време: Новије од једног месеца",
+    "time-older-than-2592000": "Време: Старије од једног месеца",
+    "time-newer-than-7776000": "Време: Новије од три месеца",
+    "time-older-than-7776000": "Време: Старије од три месеца",
+    "time-newer-than-15552000": "Време: Новије од шест месеци",
+    "time-older-than-15552000": "Време: Старије од шест месеци",
+    "time-newer-than-31104000": "Време: Новије од једне године",
+    "time-older-than-31104000": "Време: Старије од једне године",
     "sort-by": "Сортирај по",
+    "sort": "Сортирај",
     "last-reply-time": "Времену последњег одговора",
     "topic-title": "Наслову теме",
     "topic-votes": "Гласовима теме",
@@ -39,11 +74,36 @@
     "category": "Категорији",
     "descending": "У опадајућем низу",
     "ascending": "У растућем низу",
+    "sort-by-relevance-desc": "Сортирај по: Релевантност у опадајућем редоследу",
+    "sort-by-relevance-asc": "Сортирај по: Релевантност у растућем редоследу",
+    "sort-by-timestamp-desc": "Сортирај по: Време објаве у опадајућем редоследу",
+    "sort-by-timestamp-asc": "Сортирај по: Време објаве у растућем редоследу",
+    "sort-by-votes-desc": "Сортирај по: Гласови у опадајућем редоследу",
+    "sort-by-votes-asc": "Сортирај по: Гласови у растућем редоследу",
+    "sort-by-topic.lastposttime-desc": "Сортирај по: Време последње објаве у опадајућем редоследу",
+    "sort-by-topic.lastposttime-asc": "Сортирај по: Време последње објаве у растућем редоследу",
+    "sort-by-topic.title-desc": "Сортирај по: Наслов теме у опадајућем редоследу",
+    "sort-by-topic.title-asc": "Сортирај по: Наслов теме у растућем редоследу",
+    "sort-by-topic.postcount-desc": "Сортирај по: Број одговора у опадајућем редоследу",
+    "sort-by-topic.postcount-asc": "Сортирај по: Број одговора у растућем редоследу",
+    "sort-by-topic.viewcount-desc": "Сортирај по: Број прегледа у опадајућем редоследу",
+    "sort-by-topic.viewcount-asc": "Сортирај по: Број прегледа у растућем редоследу",
+    "sort-by-topic.votes-desc": "Сортирај по: Гласови теме у опадајућем редоследу",
+    "sort-by-topic.votes-asc": "Сортирај по: Гласови теме у растућем редоследу",
+    "sort-by-topic.timestamp-desc": "Сортирај по: Датум покретања теме у опадајућем редоследу",
+    "sort-by-topic.timestamp-asc": "Сортирај по: Датум покретања теме у растућем редоследу",
+    "sort-by-user.username-desc": "Сортирај по: Корисничко име у опадајућем редоследу",
+    "sort-by-user.username-asc": "Сортирај по: Корисничко име у растућем редоследу",
+    "sort-by-category.name-desc": "Сортирај по: Категорија у опадајућем редоследу",
+    "sort-by-category.name-asc": "Сортирај по: Категорија у растућем редоследу",
+    "save": "Сачувај",
     "save-preferences": "Сачувај поставке",
     "clear-preferences": "Обриши поставке",
     "search-preferences-saved": "Поставке претраге су сачуване",
     "search-preferences-cleared": "Поставке претраге су обрисане",
     "show-results-as": "Прикажи резултате као",
+    "show-results-as-topics": "Прикажи резултате као теме",
+    "show-results-as-posts": "Прикажи резултате као објаве",
     "see-more-results": "Прикажи више резултата (%1)",
     "search-in-category": "Претражи у  „%1\""
 }
\ No newline at end of file
diff --git a/public/language/sr/social.json b/public/language/sr/social.json
new file mode 100644
index 0000000000..793cc65ee6
--- /dev/null
+++ b/public/language/sr/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Пријавите се преко Twitter-а",
+	"sign-up-with-twitter": "Региструјте се преко Twitter-а",
+	"sign-in-with-github": "Пријавите се преко Github-а",
+	"sign-up-with-github": "Региструјте се преко Github-а",
+	"sign-in-with-google": "Пријавите се преко Google-а",
+	"sign-up-with-google": "Региструјте се преко Google-а",
+	"log-in-with-facebook": "Пријавите се преко Facebook-а",
+	"continue-with-facebook": "Наставите се преко Facebook-а"
+}
\ No newline at end of file
diff --git a/public/language/sr/tags.json b/public/language/sr/tags.json
index fb7273af58..c978bbc682 100644
--- a/public/language/sr/tags.json
+++ b/public/language/sr/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "Све ознаке",
     "no_tag_topics": "Нема тема са овом ознаком.",
+    "no-tags-found": "Нема пронађених ознака",
     "tags": "Ознаке",
     "enter_tags_here": "Овде унесите ознаке, од %1 до %2 знакова за сваку.",
     "enter_tags_here_short": "Унесите ознаке...",
diff --git a/public/language/sr/topic.json b/public/language/sr/topic.json
index a8f424d36c..cbca71013e 100644
--- a/public/language/sr/topic.json
+++ b/public/language/sr/topic.json
@@ -2,8 +2,8 @@
     "topic": "Тема",
     "title": "Наслов",
     "no_topics_found": "Нема пронађених тема!",
-    "no_posts_found": "Нису пронађене поруке!",
-    "post_is_deleted": "Ова порука је избрисана!",
+    "no_posts_found": "Нема пронађених објава!",
+    "post_is_deleted": "Ова објава је избрисана!",
     "topic_is_deleted": "Ова тема је избрисана!",
     "profile": "Профил",
     "posted_by": "Поставио %1",
@@ -26,7 +26,7 @@
     "restore": "Обнови",
     "move": "Премести",
     "change-owner": "Промени власника",
-    "fork": "Рачвање",
+    "fork": "Раздвајање",
     "link": "Веза",
     "share": "Дели",
     "tools": "Алатке",
@@ -39,16 +39,30 @@
     "copy-ip": "Копирај IP",
     "ban-ip": "Бануј IP",
     "view-history": "Уреди историју",
-    "locked-by": "Закључао",
-    "unlocked-by": "Откључао",
-    "pinned-by": "Закачио",
-    "unpinned-by": "Откачио",
-    "deleted-by": "Избрисао",
-    "restored-by": "Вратио",
-    "moved-from-by": "Из %1 преместио",
-    "queued-by": "Порука је на чекању за одобрење &rarr;",
-    "backlink": "Упутио",
-    "forked-by": "Рачвао",
+    "wrote-ago": "написао <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "написао <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "одговорио кориснику <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "одговорио кориснику <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a>  <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 је закључао ову тему %2",
+    "user-locked-topic-on": "%1 је закључао ову тему %2",
+    "user-unlocked-topic-ago": "%1 је откључао ову тему %2",
+    "user-unlocked-topic-on": "%1 је откључао ову тему %2",
+    "user-pinned-topic-ago": "%1 је закачио ову тему %2",
+    "user-pinned-topic-on": "%1 је закачио ову тему %2",
+    "user-unpinned-topic-ago": "%1 је откачио ову тему %2",
+    "user-unpinned-topic-on": "%1 је откачио ову тему %2",
+    "user-deleted-topic-ago": "%1 је избрисао ову тему %2",
+    "user-deleted-topic-on": "%1 је избрисао ову тему %2",
+    "user-restored-topic-ago": "%1 је вратио ову тему %2",
+    "user-restored-topic-on": "%1 је вратио ову тему %2",
+    "user-moved-topic-from-ago": "%1 је преместио ову тему из %2 %3",
+    "user-moved-topic-from-on": "%1 је преместио ову тему из %2 %3",
+    "user-queued-post-ago": "%1 објава <a href=\"%2\">у реду чекања</a> за одобрење %3",
+    "user-queued-post-on": "%1 објава <a href=\"%2\">у реду чекања</a> за одобрење %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">се осврнуо</a> на ову тему %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">се осврнуо</a> на ову тему %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">је раздвојио</a> ову тему %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">је раздвојио</a> ову тему %3",
     "bookmark_instructions": "Кликните овде за повратак на последњу прочитану поруку у овој теми.",
     "flag-post": "Означи поруку заставицом",
     "flag-user": "Означи корисника заставицом",
@@ -86,7 +100,7 @@
     "thread_tools.move_all": "Премести све",
     "thread_tools.change_owner": "Промени власника",
     "thread_tools.select_category": "Изаберите категорију",
-    "thread_tools.fork": "Рачвај тему",
+    "thread_tools.fork": "Раздвоји тему",
     "thread_tools.delete": "Избриши тему",
     "thread_tools.delete-posts": "Избриши поруку",
     "thread_tools.delete_confirm": "Да ли сте сигурни да желите да избришете ову тему?",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Очисти тему",
     "thread_tools.purge_confirm": "Да ли сте сигурни да желите да очистите ову тему?",
     "thread_tools.merge_topics": "Споји теме",
-    "thread_tools.merge": "Споји",
+    "thread_tools.merge": "Споји тему",
     "topic_move_success": "Ова тема ће ускоро бити премештена у „%1“. Кликните овде да бисте опозвали.",
     "topic_move_multiple_success": "Ове теме ће ускоро бити премештене у „%1“. Кликните овде да бисте опозвали.",
     "topic_move_all_success": "Све теме ће ускоро бити премештене у „%1“. Кликните овде да бисте опозвали.",
@@ -109,7 +123,7 @@
     "pin-modal-help": "Овде можете по жељи да одредите датум истека закачених тема. Можете и да ово поље оставите празно да би тема остала закачена док се ручно не откачи.",
     "load_categories": "Учитавање категорија",
     "confirm_move": "Премести",
-    "confirm_fork": "Рачвај",
+    "confirm_fork": "Раздвоји",
     "bookmark": "Обележивач",
     "bookmarks": "Обележивачи",
     "bookmarks.has_no_bookmarks": "Нисте додали ниједну поруку у обележиваче",
@@ -119,15 +133,15 @@
     "move_topics": "Премести теме",
     "move_post": "Премести поруку",
     "post_moved": "Порука је премештена!",
-    "fork_topic": "Рачвај тему",
+    "fork_topic": "Раздвоји тему",
     "enter-new-topic-title": "Унесите нови наслов теме",
-    "fork_topic_instruction": "Кликните на поруке које желите да рачвате",
+    "fork_topic_instruction": "Кликните на објаве које желите да раздвојите, унесите наслов за нову тему и кликните на раздвоји тему",
     "fork_no_pids": "Нема одабраних порука!",
     "no-posts-selected": "Нема одабраних порука!",
     "x-posts-selected": "Одабрано порука: %1",
     "x-posts-will-be-moved-to-y": "%1 поруке/а ће бити премештено у „%2“",
     "fork_pid_count": "Одабрано порука: %1",
-    "fork_success": "Тема је успешно рачвана! Кликните овде за одлазак на рачвану тему.",
+    "fork_success": "Тема је успешно рачвана! Кликните овде за одлазак на раздвојену тему.",
     "delete_posts_instruction": "Кликните на поруке које желите да избришете/очистите",
     "merge_topics_instruction": "Кликните на теме које желите да спојите или претражите",
     "merge-topic-list-title": "Списак тема за спајање",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Нови наслов теме",
     "topic-id": "ID теме",
     "move_posts_instruction": "Кликните на поруке које желите да преместите, а затим унесите ID теме или идите на циљну тему",
+    "move_topic_instruction": "Изаберите циљну категорију, а затим кликните на премести",
     "change_owner_instruction": "Кликните на поруке које желите да доделите другом кориснику",
     "composer.title_placeholder": "Овде унесите наслов теме...",
     "composer.handle_placeholder": "Унесите ваше име/идентитет овде",
+    "composer.hide": "Сакриј",
     "composer.discard": "Одбаци",
     "composer.submit": "Проследи",
     "composer.additional-options": "Додатне опције",
+    "composer.post-later": "Објави касније",
     "composer.schedule": "Испланирај",
     "composer.replying_to": "Писање одговора на %1",
     "composer.new_topic": "Нова тема",
@@ -184,5 +201,7 @@
     "last-post": "Последња порука",
     "go-to-my-next-post": "Иди на моју следећу поруку",
     "no-more-next-post": "Немате више порука у овој теми",
-    "post-quick-reply": "Објави брзи одговор"
+    "post-quick-reply": "Брзи одговор",
+    "navigator.index": "Објава %1 од %2",
+    "navigator.unread": "%1 непрочитане"
 }
\ No newline at end of file
diff --git a/public/language/sr/user.json b/public/language/sr/user.json
index 6c2bca7c1f..5de06f692d 100644
--- a/public/language/sr/user.json
+++ b/public/language/sr/user.json
@@ -43,6 +43,7 @@
     "followers": "Пратиоци",
     "following": "Праћења",
     "blocks": "Блокирања",
+    "blocked-users": "Блокирани корисници",
     "block_toggle": "Блокирај/одблокирај",
     "block_user": "Блокирај корисника",
     "unblock_user": "Одблокирај корисника",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Отпреми нову слику",
     "upload_new_picture_from_url": "Отпреми нову слику са адресе",
     "current_password": "Тренутна лозинка",
+    "new_password": "Нова лозинка",
     "change_password": "Промена лозинке",
     "change_password_error": "Неисправна лозинка",
     "change_password_error_wrong_current": "Ваша тренутна лозинка није исправна!",
@@ -115,6 +117,8 @@
     "paginate_description": "Нумериши теме и странице уместо бесконачног скроловања",
     "topics_per_page": "Тема по страници",
     "posts_per_page": "Порука по страници",
+    "category-topic-sort": "Сортирање тема категорије",
+    "topic-post-sort": "Сортирање порука теме",
     "max_items_per_page": "Највише %1",
     "acp_language": "Језик странице администратора",
     "notifications": "Обавештења",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Белешка модерације је сачувана",
     "info.moderation-note.add": "Додај белешку",
     "sessions.description": "Ова страница вам омогућује да прегледате активне сесије на овом форуму и опозовете их ако је потребно. Можете опозвати своју сесију тако што ћете се одјавити са вашег налога.",
+    "revoke-session": "Опозови сесију",
+    "browser-version-on-platform": "%1 %2 на %3",
     "consent.title": "Ваша права и сагласност",
     "consent.lead": "Овај форум прикупља и обрађује ваше личне информације.",
     "consent.intro": "Ове информације користимо стриктно за персонализовње вашег искуства у овој заједници, као и за повезивање порука које уносите са својим корисничким налогом. Током регистрационог корака од вас је тражено да наведете корисничко име и адресу е-поште, такође можете опционо пружити додатне информације да бисте комплетирали свој кориснички профил на овом веб сајту.<br /><br /> Ми задржавамо ове информације током трајања вашег корисничког налога, а ви сте у могућности повући сагласност у било ком тренутку брисањем вашег налога. У било ком тренутку можете затражити копију вашег доприноса овом веб сајту путем странице ваших права и сагласности.<br /><br /> Ако имате било каквих питања или проблема, саветујемо вас да контактирате административни тим овог форума.",
diff --git a/public/language/sr/users.json b/public/language/sr/users.json
index 96f579342d..a44102be3d 100644
--- a/public/language/sr/users.json
+++ b/public/language/sr/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "Сви корисници",
     "latest_users": "Најновији корисници",
     "top_posters": "Највише порука",
     "most_reputation": "Највећи углед",
     "most_flags": "Најчешће означени заставицом",
     "search": "Претрага",
     "enter_username": "Унесите корисничко име за претрагу",
-    "search-user-for-chat": "Претражите корисника да бисте започели ћаскање",
+    "search-user-for-chat": "Потражите корисника за ћаскање",
     "load_more": "Учитај више",
     "users-found-search-took": "Нађено је %1 корисника! Претрага је завршена за %2 секунде.",
     "filter-by": "Филтрирај према",
diff --git a/public/language/sv/admin/admin.json b/public/language/sv/admin/admin.json
index 08b4f23ba5..2d3fc7ea8e 100644
--- a/public/language/sv/admin/admin.json
+++ b/public/language/sv/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Admin Kontrollpanel",
 	"settings-header-contents": "Innehåll",
-	"changes-saved": "Ändringar Sparade",
-	"changes-saved-message": "Dina ändringar av NodeBB-konfigurationen har sparats.",
 	"changes-not-saved": "Ändringar Sparades Ej",
 	"changes-not-saved-message": "NodeBB kunde inte spara dina ändringar. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/sv/admin/appearance/customise.json b/public/language/sv/admin/appearance/customise.json
index 97abb5ede5..c95e62c0f0 100644
--- a/public/language/sv/admin/appearance/customise.json
+++ b/public/language/sv/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Custom CSS/LESS",
-	"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
-	"custom-css.enable": "Enable Custom CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Custom Javascript",
 	"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
diff --git a/public/language/sv/admin/dashboard.json b/public/language/sv/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/sv/admin/dashboard.json
+++ b/public/language/sv/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/sv/admin/extend/widgets.json b/public/language/sv/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/sv/admin/extend/widgets.json
+++ b/public/language/sv/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/sv/admin/manage/groups.json b/public/language/sv/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/sv/admin/manage/groups.json
+++ b/public/language/sv/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/sv/admin/manage/privileges.json b/public/language/sv/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/sv/admin/manage/privileges.json
+++ b/public/language/sv/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/sv/admin/settings/api.json b/public/language/sv/admin/settings/api.json
index 9394d032cf..9bc499e3f9 100644
--- a/public/language/sv/admin/settings/api.json
+++ b/public/language/sv/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Beskrivning",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "Ingen beskrivning finns.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/sv/admin/settings/navigation.json b/public/language/sv/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/sv/admin/settings/navigation.json
+++ b/public/language/sv/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/sv/admin/settings/user.json b/public/language/sv/admin/settings/user.json
index 1d5d460472..c8c418a206 100644
--- a/public/language/sv/admin/settings/user.json
+++ b/public/language/sv/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/sv/error.json b/public/language/sv/error.json
index 328d289d6e..a51f2ac74a 100644
--- a/public/language/sv/error.json
+++ b/public/language/sv/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Uppladdningar av oregistrerade användare har inaktiverats",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Din medlemsskapsförfrågan har redan skickats",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Inlägget är redan raderat",
     "post-already-restored": "Inlägget är redan återställt",
     "topic-already-deleted": "Ämnet är redan raderat",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/sv/flags.json b/public/language/sv/flags.json
index cc7c5baafe..fa213c2cb1 100644
--- a/public/language/sv/flags.json
+++ b/public/language/sv/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Yippie! Inga flaggor funna.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Tilldelad",
 	"update": "Uppdatera",
 	"updated": "Uppdatering",
 	"resolved": "Resolved",
 	"target-purged": "Innehållet denna flagga refererar till har rensats bort och är inte längre tillgängligt.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Dagliga flaggningar",
 	"quick-filters": "Snabbfilter",
 	"filter-active": "Ett eller flera filter är aktiva i denna lista med flaggor",
 	"filter-reset": "Ta bort filter",
 	"filters": "Filterinställningar",
-	"filter-reporterId": "Rapporterandes UID",
-	"filter-targetUid": "Flaggades UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Flaggtyp",
 	"filter-type-all": "Allt innehåll",
 	"filter-type-post": "Inlägg",
 	"filter-type-user": "Användare",
 	"filter-state": "Status",
-	"filter-assignee": "Tilldelad persons UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategori",
 	"filter-quick-mine": "Tilldelade till mig",
 	"filter-cid-all": "Alla kategorier",
@@ -45,6 +47,7 @@
 
 	"notes": "Flaggans anteckningar",
 	"add-note": "Lägg till anteckning",
+	"edit-note": "Edit Note",
 	"no-notes": "Inga delade anteckningar.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/sv/global.json b/public/language/sv/global.json
index fb3acb257a..9948bdac43 100644
--- a/public/language/sv/global.json
+++ b/public/language/sv/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Stäng",
     "403.title": "Tillgång nekad",
     "403.message": "Du verkar ha ramlat in på en sida du ej har tillgång till.",
-    "403.login": "Du kanske bör <a href='%1/login'>försöka logga in</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Sidan saknas",
-    "404.message": "Du verkar ha ramlat in på en sida som inte finns. Återgå till <a href='%1/'>första sidan</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Internt fel.",
     "500.message": "Hoppsan! Något verkar ha gått fel!",
     "400.title": "Felaktig förfrågan.",
-    "400.message": "Det ser ut som länken är felaktig, vänligen dubbelkolla och försök igen. Annars återvänd till <a href='%1/'>hemsidan</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Registrera",
     "login": "Logga in",
     "please_log_in": "Var god logga in",
@@ -37,9 +37,13 @@
     "header.notifications": "Notiser",
     "header.search": "Sök",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigering",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Laddar notiser",
     "chats.loading": "Laddar chattar",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Välkommen till NodeBB, framtidens diskussionsplattform.",
     "previouspage": "Föregående sida",
     "nextpage": "Nästa sida",
@@ -54,7 +58,8 @@
     "users": "Användare",
     "topics": "Ämnen",
     "posts": "Inlägg",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Bästa",
     "controversial": "Controversial",
     "votes": "Röster",
@@ -69,6 +74,7 @@
     "reputation": "Rykte",
     "lastpost": "Senaste inlägget",
     "firstpost": "Först inlägget",
+    "about": "About",
     "read_more": "läs mer",
     "more": "Mer",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 postades %2",
     "guest_posted_ago": "Anonym postade %1",
     "last_edited_by": "Senaste redigerad av %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Inga nya inlägg",
     "norecenttopics": "Inga nya ämnen",
     "recentposts": "Senaste inläggen",
     "recentips": "Nyligen inloggade IPn",
     "moderator_tools": "Moderator verktyg",
+    "status": "Status",
     "online": "Online",
     "away": "Borta",
     "dnd": "Stör inte",
@@ -122,5 +130,7 @@
     "edited": "Redigerad",
     "disabled": "Avstängd",
     "select": "Välj",
-    "user-search-prompt": "Skriv något för att hitta användare"
+    "user-search-prompt": "Skriv något för att hitta användare",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/sv/groups.json b/public/language/sv/groups.json
index 1bdc3736c5..c986b25ffc 100644
--- a/public/language/sv/groups.json
+++ b/public/language/sv/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Grupper",
+    "members": "Members",
     "view_group": "Visa grupp ",
     "owner": "Gruppägare",
     "new_group": "Skapa ny grupp",
diff --git a/public/language/sv/modules.json b/public/language/sv/modules.json
index 79e42b04cd..fc4c2f665a 100644
--- a/public/language/sv/modules.json
+++ b/public/language/sv/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Chatta med",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "Du tittar på äldre meddelanden. Klicka här för att gå till det senaste meddelandet.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Skicka",
     "chat.no_active": "Du har inte några aktiva chattar.",
     "chat.user_typing": "%1 skriver ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Komponera",
     "composer.show_preview": "Visa förhandsgranskning",
     "composer.hide_preview": "Dölj förhandsgranskning",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 sa i %2:",
     "composer.user_said": "%1 sa:",
     "composer.discard": "Är du säker på att du vill ta bort det här inlägget?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "OK",
     "bootbox.cancel": "Avbryt",
     "bootbox.confirm": "Bekräfta",
diff --git a/public/language/sv/pages.json b/public/language/sv/pages.json
index e6145ba0fd..40379912d0 100644
--- a/public/language/sv/pages.json
+++ b/public/language/sv/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's följda kategorier",
     "account/bookmarks": "%1'st bokmärkta inlägg",
     "account/settings": "Avnändarinställningar",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Ämnen som bevakas av %1",
     "account/ignored": "Ämnen som %1 ignorerar",
     "account/upvoted": "Inlägg som röstats upp av %1",
diff --git a/public/language/sv/post-queue.json b/public/language/sv/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/sv/post-queue.json
+++ b/public/language/sv/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/sv/recent.json b/public/language/sv/recent.json
index 0e75be8355..c47d15ff79 100644
--- a/public/language/sv/recent.json
+++ b/public/language/sv/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Alltid",
     "no_recent_topics": "Det finns inga olästa ämnen.",
     "no_popular_topics": "Det finns inga populära ämnen.",
-    "there-is-a-new-topic": "Det finns ett nytt ämne.",
-    "there-is-a-new-topic-and-a-new-post": "Det finns ett nytt ämne och ett nytt inlägg.",
-    "there-is-a-new-topic-and-new-posts": "Det finns ett nytt ämne och %1 nya inlägg.",
-    "there-are-new-topics": "Det finns %1 nya ämnen.",
-    "there-are-new-topics-and-a-new-post": "Det finns %1 nya ämnen och ett nytt inlägg.",
-    "there-are-new-topics-and-new-posts": "Det finns %1 nya ämnen och %2 nya inlägg.",
-    "there-is-a-new-post": "Det finns ett nytt inlägg.",
-    "there-are-new-posts": "Det finns %1 nya inlägg.",
-    "click-here-to-reload": "Klicka här för att ladda om."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/sv/register.json b/public/language/sv/register.json
index f38cd30562..539705bbd6 100644
--- a/public/language/sv/register.json
+++ b/public/language/sv/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Registrera",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Avbryt registrering",
     "help.email": "Som standard, är din e-postadress dold för allmänheten.",
     "help.username_restrictions": "Ett unikt användarnamn mellan %1 och %2 bokstäver. Andra kan nämna dig med @<span id='yourUsername'>användarnamn</span>.",
diff --git a/public/language/sv/search.json b/public/language/sv/search.json
index 4927229237..70996cc74e 100644
--- a/public/language/sv/search.json
+++ b/public/language/sv/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 resultat matchar \"%2\", (%3 sekunder)",
     "no-matches": "Inga träffar",
     "advanced-search": "Avancerad sökning",
     "in": "i",
-    "titles": "Ämnen",
-    "titles-posts": "Ämnen och inlägg",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Matcha ord",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Alla",
     "any": "Någon",
     "posted-by": "Skapad av",
-    "in-categories": "I kategorier",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Sök i underkategorier",
     "has-tags": "Har taggar",
     "reply-count": "Svarsantal",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Som minst",
     "at-most": "Som mest",
     "relevance": "Relevans",
+    "time": "Time",
     "post-time": "Inläggstid",
     "votes": "Röster",
     "newer-than": "Yngre än",
@@ -28,7 +48,22 @@
     "three-months": "Tre månader",
     "six-months": "Sex månader",
     "one-year": "Ett år",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Sortera på",
+    "sort": "Sort",
     "last-reply-time": "Senaste svarstiden",
     "topic-title": "Ämnestitel",
     "topic-votes": "Ämnesröster",
@@ -39,11 +74,36 @@
     "category": "Kategori",
     "descending": "I fallande ordning",
     "ascending": "I stigande ordning",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Spara inställningar",
     "clear-preferences": "Rensa inställningar",
     "search-preferences-saved": "Sökinställningar sparade",
     "search-preferences-cleared": "Sökinställningar rensade",
     "show-results-as": "Visa resultat som",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Se fler resultat (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/sv/social.json b/public/language/sv/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/sv/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/sv/tags.json b/public/language/sv/tags.json
index ea0f405069..55142364eb 100644
--- a/public/language/sv/tags.json
+++ b/public/language/sv/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Det finns inga ämnen med denna tagg.",
+    "no-tags-found": "No tags found",
     "tags": "Taggar",
     "enter_tags_here": "Fyll i taggar på %1 till %2 tecken här.",
     "enter_tags_here_short": "Ange taggar...",
diff --git a/public/language/sv/topic.json b/public/language/sv/topic.json
index 166760d744..c5fe3cf631 100644
--- a/public/language/sv/topic.json
+++ b/public/language/sv/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Kopiera IP",
     "ban-ip": "Banna IP",
     "view-history": "Redigera historik",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Klicka här för att återgå till senast lästa inlägg i detta ämne.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Rensa bort ämne",
     "thread_tools.purge_confirm": "Är du säker att du vill rensa bort det här ämnet?",
     "thread_tools.merge_topics": "Slå samman ämnen",
-    "thread_tools.merge": "Slå samman",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Inlägget flyttades.",
     "fork_topic": "Grena ämne",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Klicka på de inlägg du vill grena",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Inga inlägg valda!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Ny titel för ämne",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Klicka på de inlägg du vill tilldela en annan användare",
     "composer.title_placeholder": "Skriv in ämnets titel här...",
     "composer.handle_placeholder": "Skriv ditt namn/användarnamn här",
+    "composer.hide": "Hide",
     "composer.discard": "Avbryt",
     "composer.submit": "Skicka",
     "composer.additional-options": "Ytterligare val",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schemalägg",
     "composer.replying_to": "Svarar till %1",
     "composer.new_topic": "Nytt ämne",
@@ -184,5 +201,7 @@
     "last-post": "Sista inlägget",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Gör ett snabbsvar"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/sv/user.json b/public/language/sv/user.json
index 9f87b40310..9374f2160a 100644
--- a/public/language/sv/user.json
+++ b/public/language/sv/user.json
@@ -43,6 +43,7 @@
     "followers": "Följare",
     "following": "Följer",
     "blocks": "Blockerar",
+    "blocked-users": "Blocked users",
     "block_toggle": "Ändra blockeringsinställning",
     "block_user": "Blockera användare",
     "unblock_user": "Sluta blockera användare",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Ladda upp ny bild",
     "upload_new_picture_from_url": "Ladda upp ny bild via länk",
     "current_password": "Nuvarande lösenord",
+    "new_password": "New Password",
     "change_password": "Ändra lösenord",
     "change_password_error": "Ogiltigt lösenord.",
     "change_password_error_wrong_current": "Ditt nuvarande lösenord är inte korrekt.",
@@ -115,6 +117,8 @@
     "paginate_description": "Gör så att ämnen och inlägg visas som sidor istället för oändlig skroll",
     "topics_per_page": "Ämnen per sida",
     "posts_per_page": "Inlägg per sida",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maximalt %1",
     "acp_language": "Språk för administratörssida",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderations anteckning sparad",
     "info.moderation-note.add": "Lägg till anteckning",
     "sessions.description": "Denna sida låter dig se det här forumets alla aktiva sessioner och återkalla dem om den behövs. Du kan återkalla din egen session genom att logga ut från ditt eget konto.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Dina rättigheter och Medgivande",
     "consent.lead": "Detta forum samlar och behandlar din personliga information.",
     "consent.intro": "Vi använder denna information endast i syfte att personligt anpassa din upplevelse i denna gemenskap, och för att associera de inlägg du gör till ditt användarkonto. När du registrerade dig blev du ombedd att ange ett användarnamn och en e-postadress, du kan även frivilligt ange ytterligare information för att komplettera din användarprofil på denna webbsida. <br /><br />Vi sparar denna information så länge som du har ett konto hos oss, och du kan dra tillbaks ditt medgivande när som helst genom att radera ditt konto. Du kan är som helst efterfråga en kopia av din information på denna webbplats, genom sidan Rättigheter och Medgivande. <br /><br />Om du har några frågor eller funderingar rekommenderar vi att du tar kontakt med detta forums administrativa team.",
diff --git a/public/language/sv/users.json b/public/language/sv/users.json
index c1247acae0..a2b69d4911 100644
--- a/public/language/sv/users.json
+++ b/public/language/sv/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Senaste användarna",
     "top_posters": "Flest inlägg",
     "most_reputation": "Bäst rykte",
     "most_flags": "Mest flaggade",
     "search": "Sök",
     "enter_username": "Ange ett användarnamn för att söka",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Ladda fler",
     "users-found-search-took": "%1 användare hittades! Sökningen tog %2 sekunder.",
     "filter-by": "Filtrera på",
diff --git a/public/language/th/admin/admin.json b/public/language/th/admin/admin.json
index 88cd1451ae..500fd1df8a 100644
--- a/public/language/th/admin/admin.json
+++ b/public/language/th/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | แผงควบคุมของผู้ดูแลระบบ",
 	"settings-header-contents": "เนื้อหา",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/th/admin/appearance/customise.json b/public/language/th/admin/appearance/customise.json
index bcb4ebc4af..d201b7c6f4 100644
--- a/public/language/th/admin/appearance/customise.json
+++ b/public/language/th/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "กำหนด CSS / LESS เอง",
-	"custom-css.description": "ใส่ CSS/LESS ของคุณที่นี่, มันจะถูกนำไปใช้ต่อจากสไตล์อื่นๆ",
-	"custom-css.enable": "เปิดการปรับแต่ง CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "ปรับแต่งจาวาสคริปต์",
 	"custom-js.description": "ป้อนจาวาสคริปต์ของคุณเองที่นี่ จะดำเนินการหลังจากโหลดหน้าเว็บเสร็จสมบูรณ์แล้ว",
diff --git a/public/language/th/admin/dashboard.json b/public/language/th/admin/dashboard.json
index 4d39626882..ba945e281a 100644
--- a/public/language/th/admin/dashboard.json
+++ b/public/language/th/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/th/admin/extend/widgets.json b/public/language/th/admin/extend/widgets.json
index ab9bfb4cdb..0d24c2f32a 100644
--- a/public/language/th/admin/extend/widgets.json
+++ b/public/language/th/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "None",
 	"container.well": "Well",
 	"container.jumbotron": "Jumbotron",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Header",
-	"container.panel-body": "Panel Body",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Alert",
 
 	"alert.confirm-delete": "Are you sure you wish to delete this widget?",
diff --git a/public/language/th/admin/manage/groups.json b/public/language/th/admin/manage/groups.json
index 911fcce010..bd8c5bce15 100644
--- a/public/language/th/admin/manage/groups.json
+++ b/public/language/th/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Revert",
 
 	"edit.no-users-found": "No Users Found",
-	"edit.confirm-remove-user": "Are you sure you want to remove this user?",
-	"edit.save-success": "Changes saved!"
+	"edit.confirm-remove-user": "Are you sure you want to remove this user?"
 }
\ No newline at end of file
diff --git a/public/language/th/admin/manage/privileges.json b/public/language/th/admin/manage/privileges.json
index 13a38819b0..0e8d7a4ff9 100644
--- a/public/language/th/admin/manage/privileges.json
+++ b/public/language/th/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/th/admin/settings/api.json b/public/language/th/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/th/admin/settings/api.json
+++ b/public/language/th/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/th/admin/settings/navigation.json b/public/language/th/admin/settings/navigation.json
index 7baca85096..32b2722074 100644
--- a/public/language/th/admin/settings/navigation.json
+++ b/public/language/th/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Open in a new window",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Delete",
 	"btn.disable": "Disable",
diff --git a/public/language/th/admin/settings/user.json b/public/language/th/admin/settings/user.json
index 2ed52e4742..dd21ee6631 100644
--- a/public/language/th/admin/settings/user.json
+++ b/public/language/th/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "User Registration",
diff --git a/public/language/th/error.json b/public/language/th/error.json
index d84a9bfb20..0c772dc548 100644
--- a/public/language/th/error.json
+++ b/public/language/th/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "การอัพโหลดของ Guest ถูกปิด",
     "cors-error": "Unable to upload image due to misconfigured CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "คำร้องขอเป็นสมาชิกถูกส่งแล้ว",
     "group-join-disabled": "You are not able to join this group at this time",
     "group-leave-disabled": "You are not able to leave this group at this time",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "โพสต์นี้ได้ถูกลบไปแล้ว",
     "post-already-restored": "โพสต์นี้ถูกกู้คืนเรียบร้อยแล้ว",
     "topic-already-deleted": "กระทู้นี้ถูกลบไปแล้ว",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/th/flags.json b/public/language/th/flags.json
index af2385c0ee..a56232008a 100644
--- a/public/language/th/flags.json
+++ b/public/language/th/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "ไชโย ไม่เจอธงใดๆเลย",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "ผู้ได้รับมอบหมาย",
 	"update": "อัพเดท",
 	"updated": "ได้รับการอัพเดท",
 	"resolved": "Resolved",
 	"target-purged": "เนื้อหาที่ธงนี้อ้างถึงถูกลบออกและไม่มีอยู่ในระบบอีกต่อไป",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Daily Flags",
 	"quick-filters": "ฟิลเตอร์แบบด่วน",
 	"filter-active": "ไม่มีฟิลเตอร์ใดๆในรายการปักธง",
 	"filter-reset": "ลบฟิลเตอร์ออก",
 	"filters": "ตัวเลือกฟิลเตอร์",
-	"filter-reporterId": "ไอดีผู้รายงาน",
-	"filter-targetUid": "ไอดีผู้ที่ถูกปักธง",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "ประเภทการปักธง",
 	"filter-type-all": "เนื้อหาทั้งหมด",
 	"filter-type-post": "โพสต์",
 	"filter-type-user": "User",
 	"filter-state": "สถานะ",
-	"filter-assignee": "ผู้ได้รับมอบหมาย",
+	"filter-assignee": "Assignee",
 	"filter-cid": "หมวดหมู่",
 	"filter-quick-mine": "ถูกมอบหมายให้ฉัน",
 	"filter-cid-all": "ทุกหมวดหมู่",
@@ -45,6 +47,7 @@
 
 	"notes": "โน๊ตปักธง",
 	"add-note": "เพิ่มโน้ต",
+	"edit-note": "Edit Note",
 	"no-notes": "ไม่มีโน้ตที่แชร์",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/th/global.json b/public/language/th/global.json
index 21cad1c9c3..f402b151cc 100644
--- a/public/language/th/global.json
+++ b/public/language/th/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "ปิด",
     "403.title": "คุณถูกปฏิเสธการเข้าใช้",
     "403.message": "ดูเหมือนว่าคุณจะได้รับการสกัดกั้นในหน้าเว็บที่คุณไม่สามารถเข้าถึงได้",
-    "403.login": "บางทีคุณควรจะ <a href='%1/login'> พยายามเข้าสู่ระบบภายใน </a> ดูไหม ?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "ไม่พบ",
-    "404.message": "ดูเหมือนว่าคุณจะได้รับการสกัดกั้นในหน้าเว็บที่ไม่มีอยู่ กลับไปยัง <a href='%1/'> หน้าแรก </a>",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "ระบบภายในเกิดข้อผิดพลาด",
     "500.message": "อุ่ย! มีสิ่งที่ไม่ถูกต้องเกิดขึ้น!",
     "400.title": "คำร้องขอที่เลวร้าย",
-    "400.message": "มันเหมือนว่าลิ้งค์นี้ไม่สมประกอบ กรุณาตรวจสอบอีกครั้งและลองอีกครั้ง หรือไม่ก็กลับไปยัง <a href='%1/'> หน้าแรก </a>",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "ลงทะเบียน",
     "login": "เข้าสู่ระบบ",
     "please_log_in": "กรุณาเข้าสู่ระบบ",
@@ -37,9 +37,13 @@
     "header.notifications": "แจ้งเตือน",
     "header.search": "ค้นหา",
     "header.profile": "รายละเอียด",
+    "header.account": "Account",
     "header.navigation": "เมนูนำทาง",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "กำลังโหลดข้อแจ้งเตือน",
     "chats.loading": "กำลังโหลดหัวข้อสนทนา",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "ยินดีต้อนรับสู่ NodeBB แพลตฟอร์มการสนทนาแห่งอนาคต",
     "previouspage": "หน้าก่อนหน้า",
     "nextpage": "หน้าถัดไป",
@@ -54,7 +58,8 @@
     "users": "ผู้ใช้",
     "topics": "กระทู้",
     "posts": "กระทู้",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "ดีที่สุด",
     "controversial": "Controversial",
     "votes": "โหวต",
@@ -69,6 +74,7 @@
     "reputation": "ชื่อเสียง",
     "lastpost": "Last post",
     "firstpost": "First post",
+    "about": "About",
     "read_more": "อ่านต่อ",
     "more": "เพิ่มเติม",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1  โพสต์ %2",
     "guest_posted_ago": "Guest โพสต์ %1",
     "last_edited_by": "แก้ไขล่าสุดโดย %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "ไม่มีกระทู้ล่าสุด",
     "norecenttopics": "ไม่มีกระทู้ล่าสุด",
     "recentposts": "กระทู้ล่าสุด",
     "recentips": "IP ที่ใช้เข้าสู่ระบบล่าสุด",
     "moderator_tools": "เครื่องมือผู้ดูแลระบบ",
+    "status": "Status",
     "online": "ออนไลน์",
     "away": "ไม่อยู่",
     "dnd": "ห้ามรบกวน",
@@ -122,5 +130,7 @@
     "edited": "ถูกแก้ไขแล้ว",
     "disabled": "ปิด",
     "select": "เลือก",
-    "user-search-prompt": "Type something here to find users..."
+    "user-search-prompt": "Type something here to find users...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/th/groups.json b/public/language/th/groups.json
index e863ac408c..6b3105e9ce 100644
--- a/public/language/th/groups.json
+++ b/public/language/th/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "กลุ่ม",
+    "members": "Members",
     "view_group": "ดูกลุ่ม",
     "owner": "เจ้าของกลุ่ม",
     "new_group": "สร้างกลุ่มใหม่",
diff --git a/public/language/th/modules.json b/public/language/th/modules.json
index 5a5c70ae88..dadcde8853 100644
--- a/public/language/th/modules.json
+++ b/public/language/th/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "คุยกับ",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "ส่ง",
     "chat.no_active": "คุณไม่มีแชทที่คุยอยู่",
     "chat.user_typing": "%1 กำลังพิมพ์อยู่ ...",
@@ -42,6 +46,7 @@
     "composer.compose": "เขียน",
     "composer.show_preview": "แสดงพรีวิว",
     "composer.hide_preview": "ซ่อนพรีวิว",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 พูดใน %2:",
     "composer.user_said": "%1 พูด:",
     "composer.discard": "คุณแน่ใจแล้วใช่ไหมว่าจะทิ้งโพสต์นี้?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "ตกลง",
     "bootbox.cancel": "ยกเลิก",
     "bootbox.confirm": "ยืนยัน",
diff --git a/public/language/th/pages.json b/public/language/th/pages.json
index df7deb0d8a..963f5b0cf5 100644
--- a/public/language/th/pages.json
+++ b/public/language/th/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1's Watched Categories",
     "account/bookmarks": "บุ๊กมาร์คโพสต์ของ  %1",
     "account/settings": "การตั้งค่าผู้ใช้",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "กระทู้ที่ถูกดูโดย  %1",
     "account/ignored": "กระทู้ที่ถูกละเว้นโดย %1",
     "account/upvoted": "โพสต์ที่ถูกโหวตขึ้นโดย %1",
diff --git a/public/language/th/post-queue.json b/public/language/th/post-queue.json
index e80369c2a7..c750bfae93 100644
--- a/public/language/th/post-queue.json
+++ b/public/language/th/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Post Queue",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "User",
+	"when": "When",
 	"category": "Category",
 	"title": "Title",
 	"content": "Content",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/th/recent.json b/public/language/th/recent.json
index 6e4d87131f..8d5d8bb7ae 100644
--- a/public/language/th/recent.json
+++ b/public/language/th/recent.json
@@ -7,13 +7,5 @@
     "alltime": "ตลอดกาล",
     "no_recent_topics": "ไม่มีกระทู้ล่าสุด",
     "no_popular_topics": "ไม่มีกระทู้ฮิต",
-    "there-is-a-new-topic": "มีกระทู้ใหม่",
-    "there-is-a-new-topic-and-a-new-post": "มีกระทู้ใหม่และโพสต์ใหม่",
-    "there-is-a-new-topic-and-new-posts": "มีกระทู้ใหม่และ  %1  โพสต์ใหม่",
-    "there-are-new-topics": "มี  %1  กระทู้ใหม่",
-    "there-are-new-topics-and-a-new-post": "มี  %1  กระทู้ใหม่และโพสต์ใหม่",
-    "there-are-new-topics-and-new-posts": "มี  %1  กระทู้ใหม่และ  %2 โพสต์ใหม่",
-    "there-is-a-new-post": "มีโพสต์ใหม่",
-    "there-are-new-posts": "มี  %1  โพสต์ใหม่",
-    "click-here-to-reload": "คลิกที่นี่เพื่อโหลดใหม่อีกครั้ง"
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/th/register.json b/public/language/th/register.json
index ab6b9d4cc3..88f5da93ae 100644
--- a/public/language/th/register.json
+++ b/public/language/th/register.json
@@ -1,5 +1,6 @@
 {
     "register": "ลงทะเบียน",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "ยกเลิกการสมัคร",
     "help.email": "ผู้ใช้อื่น ๆ จะไม่สามารถมองเห็นอีเมลของคุณโดยดีฟอลต์",
     "help.username_restrictions": "ชื่อผู้ใช้ที่ไม่ซ้ำกับผู้อื่น  จะต้องมีความยาวระหว่าง% %1 และ %2 ตัวอักษร ผู้ใช้อื่นๆ สามารถพูดถึงคุณโดย @<span id='yourUsername'>ชื่อผู้ใช้</ span>",
diff --git a/public/language/th/search.json b/public/language/th/search.json
index 5cdb898b5d..5aaee4db1b 100644
--- a/public/language/th/search.json
+++ b/public/language/th/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 ผลลัพธ์ ตรงตามที่ระบุ \"%2\", (%3 วินาที)",
     "no-matches": "ไม่พบผลลัพธ์ที่สอดคล้อง",
     "advanced-search": "การค้นหาแบบละเอียด",
     "in": "ใน",
-    "titles": "หัวข้อ",
-    "titles-posts": "หัวข้อ และ ข้อความ",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Match words",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "All",
     "any": "Any",
     "posted-by": "บันทึกโดย",
-    "in-categories": "ในหมวดหมู่",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "ค้นหาหมวดหมู่ย่อย",
     "has-tags": "มีแท็ก",
     "reply-count": "จำนวนข้อความตอบกลับ",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "อย่างน้อยที่สุด",
     "at-most": "อย่างมากที่สุด",
     "relevance": "ที่เกี่ยวข้อง",
+    "time": "Time",
     "post-time": "เวลาโพสต์",
     "votes": "Votes",
     "newer-than": "ใหม่กว่า",
@@ -28,7 +48,22 @@
     "three-months": "3 เดือน",
     "six-months": "6 เดือน",
     "one-year": "1 ปี",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "จัดเรียงโดย",
+    "sort": "Sort",
     "last-reply-time": "เวลาตอบกลับล่าสุด",
     "topic-title": "หัวข้อกระทู้",
     "topic-votes": "Topic votes",
@@ -39,11 +74,36 @@
     "category": "หมวดหมู่",
     "descending": "เรียงจากมากไปน้อย",
     "ascending": "เรียงจากน้อยไปมาก",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "บันทึกการตั้งค่า",
     "clear-preferences": "ล้างการตั้งค่า",
     "search-preferences-saved": "ค้นหาการตั้งค่าที่บันทึกไว้",
     "search-preferences-cleared": "ค้นหาการตั้งค่าที่ลบล้างไป",
     "show-results-as": "แสดงผลลัพธ์แบบ",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "See more results (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/th/social.json b/public/language/th/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/th/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/th/tags.json b/public/language/th/tags.json
index 5eb9dfdfb5..00213c77c7 100644
--- a/public/language/th/tags.json
+++ b/public/language/th/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "ไม่มีหัวข้อสนทนาที่เกี่ยวข้องกับป้ายคำศัพท์นี้",
+    "no-tags-found": "No tags found",
     "tags": "ป้ายคำศัพท์",
     "enter_tags_here": "กรอกแท็กที่นี่  จำนวนอักขระอยู่ระหว่าง  %1 และ %2 ตัวอักษรต่อ 1 แท็ก",
     "enter_tags_here_short": "ใส่ป้ายคำศัพท์ ...",
diff --git a/public/language/th/topic.json b/public/language/th/topic.json
index f26eba5345..797487c500 100644
--- a/public/language/th/topic.json
+++ b/public/language/th/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "คัดลอก IP",
     "ban-ip": "แบน IP",
     "view-history": "แก้ไขประวัติ",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "คลิกที่นี่เพื่อกลับไปยังโพสต์ล่าสุดในหัวข้อนี้",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "ล้างกระทู้",
     "thread_tools.purge_confirm": "คุณแน่ใจแล้วใช้ไมว่าต้องการล้างกระทู้นี้?",
     "thread_tools.merge_topics": "รวมกระทู้",
-    "thread_tools.merge": "รวม",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "โพสต์ถูกย้ายแล้ว!",
     "fork_topic": "แยกกระทู้",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "คลิกที่โพสที่คุณต้องการที่จะแยก",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "ไม่มีโพสต์ที่เลือก!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Click the posts you want to assign to another user",
     "composer.title_placeholder": "ป้อนชื่อกระทู้ของคุณที่นี่ ...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "ยกเลิก",
     "composer.submit": "ส่ง",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "ตอบไปยัง  %1",
     "composer.new_topic": "กระทู้ใหม่",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/th/user.json b/public/language/th/user.json
index 56c577d271..707cb2f684 100644
--- a/public/language/th/user.json
+++ b/public/language/th/user.json
@@ -43,6 +43,7 @@
     "followers": "คนติดตาม",
     "following": "ติดตาม",
     "blocks": "Blocks",
+    "blocked-users": "Blocked users",
     "block_toggle": "Toggle Block",
     "block_user": "Block User",
     "unblock_user": "Unblock User",
@@ -68,6 +69,7 @@
     "upload_new_picture": "อัพโหลดรูปใหม่",
     "upload_new_picture_from_url": "อัปโหลดรูปจาก URL",
     "current_password": "รหัสผ่านปัจจุบัน",
+    "new_password": "New Password",
     "change_password": "เปลี่ยนรหัสผ่าน",
     "change_password_error": "รหัสผ่านใช้ไม่ได้",
     "change_password_error_wrong_current": "รหัสผ่านปัจจุบันไม่ถูกต้อง",
@@ -115,6 +117,8 @@
     "paginate_description": "ใช้การแบ่งหน้ากระทู้และข้อความแทนการเลื่อนต่อเรื่อยๆ",
     "topics_per_page": "จำนวนกระทู้ต่อหน้า",
     "posts_per_page": "จำนวนข้อความต่อหน้า",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "สูงสุด %1",
     "acp_language": "ภาษาในหน้าผู้ดูแลระบบ",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "โน้ตของ Moderation ถูกบันทึกแล้ว",
     "info.moderation-note.add": "เพิ่มโน้ต",
     "sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Your Rights &amp; Consent",
     "consent.lead": "This community forum collects and processes your personal information.",
     "consent.intro": "We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights &amp; Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
diff --git a/public/language/th/users.json b/public/language/th/users.json
index 4ed0e4c87b..91f7ff4222 100644
--- a/public/language/th/users.json
+++ b/public/language/th/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "ผู้ใช้งานล่าสุด",
     "top_posters": "ผู้ที่โพสต์มากที่สุด",
     "most_reputation": "ผู้ที่มีชื่อเสียงมากที่สุด",
     "most_flags": "ผู้ที่ถูกรายงานมากที่สุด",
     "search": "ค้นหา",
     "enter_username": "กรอกชื่อผู้ใช้เพื่อค้นหา",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "โหลดเพิ่มเติม",
     "users-found-search-took": "พบ %1 ผู้ใช้(s)! การค้นหาใช้เวลาทั้งหมด %2 วินาที",
     "filter-by": "การกรอง",
diff --git a/public/language/tr/admin/admin.json b/public/language/tr/admin/admin.json
index 5171fb6b8e..eb6f621fb4 100644
--- a/public/language/tr/admin/admin.json
+++ b/public/language/tr/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB Yönetici Kontrol Paneli",
 	"settings-header-contents": "İçerikler",
-	"changes-saved": "Değişiklikler kaydedildi",
-	"changes-saved-message": "NodeBB konfigürasyon değişiklikleri kaydedildi.",
 	"changes-not-saved": "Değişiklikler kaydedilmedi",
 	"changes-not-saved-message": "NodeBB değişiklikleri kaydederken bir hata oluştu (%1)"
 }
\ No newline at end of file
diff --git a/public/language/tr/admin/appearance/customise.json b/public/language/tr/admin/appearance/customise.json
index 327a9054c0..8255e47e93 100644
--- a/public/language/tr/admin/appearance/customise.json
+++ b/public/language/tr/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Özel CSS/LESS",
-	"custom-css.description": "Diğer tüm stillerden sonra uygulanacak kendi CSS/LESS kodlarınızı buraya girin.",
-	"custom-css.enable": "Özelleştirilmiş CSS/LESS  kullan",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Özel Javascript",
 	"custom-js.description": "Buraya kendi javascript'inizi girin. Sayfa tamamen yüklendikten sonra çalışır.",
diff --git a/public/language/tr/admin/dashboard.json b/public/language/tr/admin/dashboard.json
index f7bdad37b3..3f0621098a 100644
--- a/public/language/tr/admin/dashboard.json
+++ b/public/language/tr/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Yönetim Paneline geri dön",
 	"details.no-users": "Seçilen zaman aralığında herhangi bir kullanıcı üye olmadı.",
 	"details.no-topics": "Seçilen zaman aralığında herhangi bir başlık oluşturulmadı. ",
-	"details.no-searches": "Henüz arama yapılmadı",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "Seçilen zaman aralığında herhangi bir giriş yapılmadı.",
 	"details.logins-static": "NodeBB oturum kayıtlarını sadece %1 gün tutar, o nedenle aşağıdaki tablo sadece en yakın aktif oturumları listeler",
-	"details.logins-login-time": "Giriş zamanı"
+	"details.logins-login-time": "Giriş zamanı",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/tr/admin/extend/widgets.json b/public/language/tr/admin/extend/widgets.json
index 2609575438..f3017cb376 100644
--- a/public/language/tr/admin/extend/widgets.json
+++ b/public/language/tr/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Kutucuk Yok",
 	"container.well": "Çukur",
 	"container.jumbotron": "Büyük Gösterim",
-	"container.panel": "Panel",
-	"container.panel-header": "Panel Başlığı",
-	"container.panel-body": "Panel Gövdesi",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Uyarı",
 
 	"alert.confirm-delete": "Bu bileşeni silmek istediğinizden emin misiniz?",
diff --git a/public/language/tr/admin/manage/groups.json b/public/language/tr/admin/manage/groups.json
index 971bf28aa1..7b97709e2f 100644
--- a/public/language/tr/admin/manage/groups.json
+++ b/public/language/tr/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Eski Haline Döndür",
 
 	"edit.no-users-found": "Kullanıcı Bulunamadı",
-	"edit.confirm-remove-user": "Bu kullanıcıyı kaldırmak istediğinizden emin misiniz?",
-	"edit.save-success": "Değişiklikler kaydedildi!"
+	"edit.confirm-remove-user": "Bu kullanıcıyı kaldırmak istediğinizden emin misiniz?"
 }
\ No newline at end of file
diff --git a/public/language/tr/admin/manage/privileges.json b/public/language/tr/admin/manage/privileges.json
index 0155c573b7..87b670b06b 100644
--- a/public/language/tr/admin/manage/privileges.json
+++ b/public/language/tr/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Bu gruba yönetim ayrıcalıkları vermek istediğinize emin misiniz?</strong> Bu grup genele açık olduğundan her kullanıcı gruba katılabilir. ",
 	"alert.confirm-admins-mods": "<strong>Bu gruba &quot;Admins &amp; Mods&quot; ayrıcalıkları vermek istediğinize emin misiniz?</strong> Bu ayrıcalığa sahip kullanıcılar başka kullanıcıların ayrıcalıklarını belirleyebilirler, <em> örneğin super administrator</em> veya değiştirebilirler.",
 	"alert.confirm-save": "Lütfen ayrıcalıkları kaydetme isteğinizi onaylayınız",
-	"alert.saved": "Ayrıcalık değişiklikleri kaydedildi ve uygulandı",
 	"alert.confirm-discard": "Ayrıcalık değişikliklerini iptal etmek istediğinize emin misiniz?",
 	"alert.discarded": "Ayrıcalık değişiklikleri iptal edildi",
 	"alert.confirm-copyToAll": "Bu  <strong>%1</strong> kategorisini <strong>tüm kategorilere</strong> uygulamak istediğinizden emin misiniz? ",
diff --git a/public/language/tr/admin/settings/advanced.json b/public/language/tr/admin/settings/advanced.json
index 84fc2f5ad5..ee33386298 100644
--- a/public/language/tr/admin/settings/advanced.json
+++ b/public/language/tr/admin/settings/advanced.json
@@ -3,7 +3,7 @@
 	"maintenance-mode.help": "Forum bakım modundayken, tüm istekler statik bir bekletme sayfasına yönlendirilir. Yöneticiler bu yönlendirmeden muaftır ve siteye normal olarak erişebilirler.",
 	"maintenance-mode.status": "Bakım Modu Durum Kodu",
 	"maintenance-mode.message": "Bakım Mesajı",
-	"maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
+	"maintenance-mode.groups-exempt-from-maintenance-mode": "Bakım Modundan muaf tutulacak grupları seçiniz",
 	"headers": "Başlıklar",
 	"headers.allow-from": "NodeBB'yi bir iFrame'e yerleştirmek için ALLOW-FROM'u ayarla",
 	"headers.csp-frame-ancestors": "NodeBB'yi bir iFrame'e yerleştirmek için Content-Security-Policy frame-ancestors başlığını ayarla",
@@ -18,9 +18,9 @@
 	"headers.acah": "Erişim-Kontrolü-Başlık-İzni",
 	"headers.coep": "Cross-Origin-Embed Politikası",
 	"headers.coep-help": "Etkinleştirildiğinde (varsayılan), başlığı  <code>require-corp</code> olarak ayarlayacaktır.",
-	"headers.coop": "Cross-Origin-Opener-Policy",
+	"headers.coop": "Cross-Origin-Opener Politikası",
 	"headers.corp": "Cross-Origin Kaynak Politikası",
-	"headers.permissions-policy": "Permissions-Policy",
+	"headers.permissions-policy": "İzin Politikası",
 	"headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see <a href=\"https://github.com/w3c/webappsec-permissions-policy/blob/main/permissions-policy-explainer.md\">this</a> for more info.",
 	"hsts": "STS",
 	"hsts.enabled": "HSTS'yi etkinleştir (önerilir)",
diff --git a/public/language/tr/admin/settings/api.json b/public/language/tr/admin/settings/api.json
index 1f1f40a6b5..8ed4f01eef 100644
--- a/public/language/tr/admin/settings/api.json
+++ b/public/language/tr/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "Kullanıcı ID",
 	"uid-help-text": "Bu jetonla ilişkilendirilecek bir Kullanıcı Kimliği belirtin. Kullanıcı kimliği 0 ise, diğer kullanıcıların kimliğini _uid parametresine göre üstlenebilen bir ana simge olarak kabul edilir.",
 	"description": "Açıklama",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "Hiçbir açıklama belirtilmemiş.",
 	"token-on-save": "Form kaydedildikten sonra bir jeton oluşturulacak"
 }
\ No newline at end of file
diff --git a/public/language/tr/admin/settings/email.json b/public/language/tr/admin/settings/email.json
index bdebff56d6..1a6538c933 100644
--- a/public/language/tr/admin/settings/email.json
+++ b/public/language/tr/admin/settings/email.json
@@ -5,8 +5,8 @@
 	"from": "From Name",
 	"from-help": "The from name to display in the email.",
 
-	"confirmation-settings": "Confirmation",
-	"confirmation.expiry": "Hours to keep email confirmation link valid",
+	"confirmation-settings": "Onay",
+	"confirmation.expiry": "Onay linki kaç saat geçerli olacak",
 
 	"smtp-transport": "SMTP Transport",
 	"smtp-transport.enabled": "SMTP Aktarımını Etkinleştir",
diff --git a/public/language/tr/admin/settings/navigation.json b/public/language/tr/admin/settings/navigation.json
index fd2d7766d0..2808ce3949 100644
--- a/public/language/tr/admin/settings/navigation.json
+++ b/public/language/tr/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Gruplar",
 	"open-new-window": "Yeni pencerede aç",
 	"dropdown": "Açılır liste",
-	"dropdown-placeholder": "Açılır liste öğelerini aşağıda sırala, örneğin: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Sil",
 	"btn.disable": "Etkinsizleştir",
diff --git a/public/language/tr/admin/settings/user.json b/public/language/tr/admin/settings/user.json
index 4b9c6a1952..2ed3e783dc 100644
--- a/public/language/tr/admin/settings/user.json
+++ b/public/language/tr/admin/settings/user.json
@@ -1,7 +1,7 @@
 {
 	"authentication": "Kimlik Doğrulama",
 	"email-confirm-interval": "Kullanıcı onay e-postasını tekrar gönderemez",
-	"email-confirm-interval2": "minutes have elapsed",
+	"email-confirm-interval2": "dakika geçti",
 	"allow-login-with": "Girişe izin ver:",
 	"allow-login-with.username-email": "Kullanıcı Adı veya E-posta",
 	"allow-login-with.username": "Sadece kullanıcı adı",
@@ -29,6 +29,8 @@
 	"session-time-days": "Gün",
 	"session-time-seconds": "Saniye",
 	"session-time-help": "Bu değerler, kullanıcının \"Beni Hatırla\" seçeneğini işaretlediğinde ne kadar süreyle oturumda kaldığını kontrol etmek için kullanılır. girişte. Bu değerlerden sadece birinin kullanılacağını unutmayın. <i>Saniye</i> değeri yoksa, <i>gün</i> dikkate alınır. <i>Gün</i> değeri yoksa, varsayılan değer <i>14 gün</i> olur.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Kullanıcının atıl olarak değerlendirileceği dakika cinsinden geçen süre",
 	"online-cutoff-help": "Eğer kullanıcı bu süre içinde herhangi bir işlem yapmazsa, etkin olmayan olarak kabul edilir ve gerçek zamanlı güncellemeler almaz.",
 	"registration": "Kullanıcı Kaydı",
diff --git a/public/language/tr/error.json b/public/language/tr/error.json
index 7848c97f32..1d61e877d0 100644
--- a/public/language/tr/error.json
+++ b/public/language/tr/error.json
@@ -89,7 +89,7 @@
     "category-not-selected": "Kategori bulunamadı. Lütfen bir kategori seçiniz. ",
     "too-many-posts": "%1 saniye içinde yalnızca bir ileti gönderebilirsiniz - lütfen tekrar ileti göndermeden önce bekleyiniz.",
     "too-many-posts-newbie": "Yeni bir kullanıcı olarak, %2 saygınlık puanı kazanana kadar %1 saniye içinde bir ileti gönderebilirsiniz - lütfen tekrar ileti göndermeden önce bekleyiniz.",
-    "already-posting": "You are already posting",
+    "already-posting": "Halihazırda ileti gönderiyorsunuz...",
     "tag-too-short": "Lütfen daha uzun bir etiket girin. Etiketler en az %1 karakter içermelidir.",
     "tag-too-long": "Lütfen daha kısa bir etiket girin. Etiketler %1 karakterden uzun olamaz.",
     "not-enough-tags": "Yeterince etiket yok. Başlılar en az %1 etikete sahip olmalıdır",
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Ziyaretçilerin yükleme yapması devre dışı bırakıldı",
     "cors-error": "Yanlış yapılandırılmış CORS nedeniyle resim yüklenemiyor",
     "upload-ratelimit-reached": "Tek seferde çok sayıda dosya yüklediniz. Lütfen daha sonra tekrar deneyin.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Lütfen gelecekte bir tarih seçiniz.",
     "invalid-schedule-date": "Lütfen geçerli bir tarih ve saat seçiniz.",
     "cant-pin-scheduled": "Zamanlanmış konular sabitlenemez veya sabitliği kaldırılamaz. ",
@@ -134,6 +135,8 @@
     "group-already-requested": "Üyelik isteğiniz zaten gönderildi",
     "group-join-disabled": "Gruba şu anda katılamazsınız!",
     "group-leave-disabled": "Grubu şu anda terk edemezsiniz! ",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "İleti zaten silinmiş",
     "post-already-restored": "İleti zaten geri getirilmiş",
     "topic-already-deleted": "Başlık zaten silinmiş",
@@ -224,5 +227,6 @@
     "api.429": "Fazla sayıda istekte bulundunuz, lütfen daha sonra tekrar deneyiniz.",
     "api.500": "İsteğinizi gerçekleştirmeye çalışırken beklenmeyen bir hata ile karşılaşıldı.",
     "api.501": "Aramaya çalıştığınız rota henüz uygulanmadı, lütfen yarın tekrar deneyin",
-    "api.503": "Aramaya çalıştığınız rota sunucu yapılandırması nedeniyle şu anda kullanılamıyor"
+    "api.503": "Aramaya çalıştığınız rota sunucu yapılandırması nedeniyle şu anda kullanılamıyor",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/tr/flags.json b/public/language/tr/flags.json
index 8ad12f9c63..43c72c4e0e 100644
--- a/public/language/tr/flags.json
+++ b/public/language/tr/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Raporlar",
 	"first-reported": "İlk rapor tarihi",
 	"no-flags": "Yaşasın! Hiçbir şikayet bulunamadı.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Vekil",
 	"update": "Güncelle",
 	"updated": "Güncellendi",
 	"resolved": "Çözüldü",
 	"target-purged": "Şikayet edilen içerik temizlendi ve artık mevcut değil.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Günlük Şikayetler",
 	"quick-filters": "Hızlı Filtre",
 	"filter-active": "Şikayetler listesinde etkin olan bir veya daha fazla filtre var",
 	"filter-reset": "Filtreleri Kaldır",
 	"filters": "Filtre Ayarları",
-	"filter-reporterId": "Muhabir UID",
-	"filter-targetUid": "Şikayet UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Şikayet Tipi",
 	"filter-type-all": "Bütün İçerik",
 	"filter-type-post": "İleti",
 	"filter-type-user": "Kullanıcı",
 	"filter-state": "Durum",
-	"filter-assignee": "Vekil UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Kategori",
 	"filter-quick-mine": "Kendime atananlar",
 	"filter-cid-all": "Tüm kategoriler",
@@ -45,6 +47,7 @@
 
 	"notes": "Şikayet Notları",
 	"add-note": "Not Ekle",
+	"edit-note": "Edit Note",
 	"no-notes": "Not paylaşılmadı",
 	"delete-note-confirm": "Bu şikayet notunu silmek istediğinize emin misiniz?",
 	"delete-flag-confirm": "Bu şikayeti silmek istediğinize emin misiniz?",
diff --git a/public/language/tr/global.json b/public/language/tr/global.json
index ec24809b05..552fc04b98 100644
--- a/public/language/tr/global.json
+++ b/public/language/tr/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Kapat",
     "403.title": "Erişim Engellendi",
     "403.message": "Erişim izniniz olmayan bir sayfaya denk gelmiş gibisiniz.",
-    "403.login": "Belki tekrar <a href='%1/login'>giriş</a> yapmalısınız?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Bulunamadı",
-    "404.message": "Erişim izniniz olmayan bir sayfaya denk gelmiş gibisiniz. <a href='%1/'>Anasayfa</a>'ya geri dönün.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Dahili hata.",
     "500.message": "Ups! Bir şeyler ters gitti sanki!",
     "400.title": "Geçersiz istek.",
-    "400.message": "Bu bağlantı bozuk gibi gözüküyor, lütfen bir kez daha kontrol edin. Aksi taktirde <a href='%1/'>anasayfaya</a> geri dönün.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Kayıt Ol",
     "login": "Giriş",
     "please_log_in": "Lütfen Giriş Yapınız",
@@ -37,9 +37,13 @@
     "header.notifications": "Bildirimler",
     "header.search": "Arama",
     "header.profile": "Profil",
+    "header.account": "Account",
     "header.navigation": "Navigasyon",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Bildirimler Yükleniyor",
     "chats.loading": "Sohbetler Yükleniyor",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "NodeBB, geleceğin tartışma platformuna hoş geldiniz.",
     "previouspage": "Önceki Sayfa",
     "nextpage": "Sonraki Sayfa",
@@ -54,7 +58,8 @@
     "users": "Kullanıcı",
     "topics": "Konu",
     "posts": "İleti",
-    "x-posts": "%1 ileti",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "En İyi",
     "controversial": "Tartışmalı",
     "votes": "Oy",
@@ -69,6 +74,7 @@
     "reputation": "İtibar",
     "lastpost": "Son ileti",
     "firstpost": "İlk ileti",
+    "about": "About",
     "read_more": "daha fazla oku",
     "more": "Daha Fazla",
     "none": "Hiçbiri",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 %2 yayımladı",
     "guest_posted_ago": "Ziyaretçi %1 yayımladı",
     "last_edited_by": "Son düzenleyen: %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Güncel İleti Yok",
     "norecenttopics": "Güncel Konu Yok",
     "recentposts": "Güncel İletiler",
     "recentips": "Güncel giriş yapilan IP adresleri",
     "moderator_tools": "Moderasyon Araçları",
+    "status": "Status",
     "online": "Çevrimiçi",
     "away": "Dışarıda",
     "dnd": "Rahatsız etme",
@@ -122,5 +130,7 @@
     "edited": "Düzenlendi",
     "disabled": "Devre dışı",
     "select": "Seç",
-    "user-search-prompt": "Kullanıcı bulmak için buraya yazın ..."
+    "user-search-prompt": "Kullanıcı bulmak için buraya yazın ...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/tr/groups.json b/public/language/tr/groups.json
index 0dd72078ae..842d48b01b 100644
--- a/public/language/tr/groups.json
+++ b/public/language/tr/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Gruplar",
+    "members": "Members",
     "view_group": "Grubu Gör",
     "owner": "Grup Kurucusu",
     "new_group": "Yeni Grup Oluştur",
diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json
index ab64665303..ed7be496e3 100644
--- a/public/language/tr/modules.json
+++ b/public/language/tr/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Sohbet",
     "chat.placeholder": "Mesajı yazın veya resim sürükleyip bırakın",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "Eski mesajlara bakıyorsunuz, en yeni mesajları görmek için buraya tıklayınız.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Gönder",
     "chat.no_active": "Aktif sohbet mevcut değil",
     "chat.user_typing": "%1 yazıyor ...",
@@ -42,6 +46,7 @@
     "composer.compose": "Yaz",
     "composer.show_preview": "Önizleme Göster",
     "composer.hide_preview": "Önizleme Sakla",
+    "composer.help": "Help",
     "composer.user_said_in": "%1, içinde söyledi: %2",
     "composer.user_said": "%1 söyledi:",
     "composer.discard": "Bu iletiyi iptal etmek istediğinizden emin misiniz?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Zaman",
     "composer.cancel-scheduling": "Zamanlamayı iptal et",
     "composer.set-schedule-date": "Tarihi ayarla",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "Kabul",
     "bootbox.cancel": "İptal",
     "bootbox.confirm": "Onayla",
diff --git a/public/language/tr/pages.json b/public/language/tr/pages.json
index 373aa898cb..46a4dc6e36 100644
--- a/public/language/tr/pages.json
+++ b/public/language/tr/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1 kullanıcısının takip ettiği kategoriler",
     "account/bookmarks": "%1 kullanıcısının yer imlerine eklenmiş iletiler",
     "account/settings": "Kullanıcı Ayarları",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "%1 tarafından takip edilen başlıklar",
     "account/ignored": "%1 tarafından yok sayılan başlıklar",
     "account/upvoted": "%1 tarafından artılanan iletiler",
diff --git a/public/language/tr/post-queue.json b/public/language/tr/post-queue.json
index 7ee1002418..3d490a9e8b 100644
--- a/public/language/tr/post-queue.json
+++ b/public/language/tr/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "İleti Kuyruğu",
-	"description": "İleti kuyruğunda hiçbir ileti bulunmamaktadır. <br> Bu özelliği aktifleştirmek için, şuraya gidin <a href=\"%1\">Ayarlar &rarr; İleti &rarr; İleti Kuyruğu</a> ve şu özelliği aktifleştirin:  <strong>İleti Kuyruğu</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Kullanıcı",
+	"when": "When",
 	"category": "Kategori",
 	"title": "Başlık",
 	"content": "İçerik",
@@ -19,6 +23,7 @@
 	"notify": "Bildirim yap",
 	"notify-user": "Kullanıcıyı uyar",
 	"confirm-reject": "Bu iletiyi reddetmek istediğinize emin misiniz?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Toplu İşlemler",
 	"accept-all": "Hepsini Onayla",
 	"accept-selected": "Seçili Olanları Onayla",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Tüm iletileri reddetmek istediğinize emin misiniz?",
 	"reject-selected": "Seçili Olanları Reddet",
 	"reject-selected-confirm": "Seçili olan %1 iletiyi reddetmek istediğinize emin misiniz?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 ileti onaylandı",
 	"bulk-reject-success": "%1 ileti reddedildi"
 }
\ No newline at end of file
diff --git a/public/language/tr/recent.json b/public/language/tr/recent.json
index 3a7ad94b41..562aa41688 100644
--- a/public/language/tr/recent.json
+++ b/public/language/tr/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Hepsi",
     "no_recent_topics": "Güncel konu yok.",
     "no_popular_topics": "Popüler konu yok.",
-    "there-is-a-new-topic": "Yeni bir konu mevcut.",
-    "there-is-a-new-topic-and-a-new-post": "Yeni bir konu ve ileti mevcut.",
-    "there-is-a-new-topic-and-new-posts": "Bir adet yeni konu ve %1 adet yeni ileti var.",
-    "there-are-new-topics": "%1 adet yeni konu mevcut.",
-    "there-are-new-topics-and-a-new-post": "%1 adet yeni konu ve bir adet yeni ileti mevcut.",
-    "there-are-new-topics-and-new-posts": "%1 adet yeni konu ve %2 adet yeni ileti mevcut.",
-    "there-is-a-new-post": "Yeni bir ileti mevcut.",
-    "there-are-new-posts": "%1 adet yeni ileti mevcut.",
-    "click-here-to-reload": "Yüklemek için buraya tıklayın."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/tr/register.json b/public/language/tr/register.json
index 0d81d81ce0..8bee2a2daa 100644
--- a/public/language/tr/register.json
+++ b/public/language/tr/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Kayıt Ol",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Kaydı İptal Et",
     "help.email": "E-posta adresiniz varsayılan olarak topluluktan gizlidir.",
     "help.username_restrictions": "%1 ve %2 karakter arası bir kullanıcı ismi. Başkaları sizden @<span id='yourUsername'>isim</span> kullanarak bahsedebilir.",
diff --git a/public/language/tr/search.json b/public/language/tr/search.json
index 94fb3947d4..a6a7800b05 100644
--- a/public/language/tr/search.json
+++ b/public/language/tr/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 tane “%2“ bulundu (%3 saniye)",
     "no-matches": "Hiç eşleşme bulunamadı",
     "advanced-search": "Gelişmiş Arama",
     "in": "Konum:",
-    "titles": "Başlıklar",
-    "titles-posts": "Başlıklar ve İletiler",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Eşleşen Kelimeler",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Hepsi",
     "any": "Herhangi",
     "posted-by": "Gönderen",
-    "in-categories": "Şu kategorilerde ara:",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Alt kategorilerde de arat",
     "has-tags": "Etiketler",
     "reply-count": "Cevap sayısı",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "En az",
     "at-most": "En fazla",
     "relevance": "İlgi",
+    "time": "Time",
     "post-time": "Yayımlanma zamanı",
     "votes": "Oylar",
     "newer-than": "Daha yeni",
@@ -28,7 +48,22 @@
     "three-months": "Üç ay",
     "six-months": "Altı ay",
     "one-year": "Bir yıl",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Şuna göre filtrele",
+    "sort": "Sort",
     "last-reply-time": "En son cevaplama süresi",
     "topic-title": "Konu başlığı",
     "topic-votes": "Oylanan konular",
@@ -39,11 +74,36 @@
     "category": "Kategori",
     "descending": "Azalan düzene göre",
     "ascending": "Artan düzene göre",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Tercihleri Kaydet",
     "clear-preferences": "Tercihleri Sil",
     "search-preferences-saved": "Arama tercihleri kaydedildi",
     "search-preferences-cleared": "Arama tercihleri temizlendi",
     "show-results-as": "Sonuçları göster : ",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Daha fazla sonuç gör (%1)",
     "search-in-category": "\"%1\" içinde ara"
 }
\ No newline at end of file
diff --git a/public/language/tr/social.json b/public/language/tr/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/tr/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/tr/tags.json b/public/language/tr/tags.json
index 7b5c872862..4f07f16bee 100644
--- a/public/language/tr/tags.json
+++ b/public/language/tr/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Bu etiketli başlık yok.",
+    "no-tags-found": "No tags found",
     "tags": "Etiketler",
     "enter_tags_here": "Etiketleri buraya girin. %1-%2 karakter. Her etiketten sonra enter tuşuna basın.",
     "enter_tags_here_short": "Etiketleri gir...",
diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json
index c83a476e00..51d4c4b1c2 100644
--- a/public/language/tr/topic.json
+++ b/public/language/tr/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "IP Kopyala",
     "ban-ip": "IP Yasakla",
     "view-history": "Geçmişi Düzenle",
-    "locked-by": "Kilitlendi",
-    "unlocked-by": "Kilit kaldırıldı",
-    "pinned-by": "Sabitlendi",
-    "unpinned-by": "Sabitlenme kaldırıldı",
-    "deleted-by": "Silindi",
-    "restored-by": "Tekrar Yüklendi",
-    "moved-from-by": "%1 bölümünden taşındı",
-    "queued-by": "İleti onay için sıraya alındı &rarr;",
-    "backlink": "Bu başlıktan bahsedildi.",
-    "forked-by": "Başlık ayrıldı",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Bu konuda en son kaldığın yere dönmek için tıkla.",
     "flag-post": "Bu iletiyi şikayet et",
     "flag-user": "Bu kullanıcıyı şikayet et",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Başlığı Temizle",
     "thread_tools.purge_confirm": "Bu konuyu temizlemek istediğinize emin misiniz?",
     "thread_tools.merge_topics": "Başlıkları Birleştir",
-    "thread_tools.merge": "Birleştir",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "Bu başlık şu bölüme taşınıyor: \"%1\" . İşlemi iptal etmek için tıklayınız.",
     "topic_move_multiple_success": "Bu başlıklar şu bölüme taşınıyor: \"%1\" . İşlemi iptal etmek için tıklayınız.",
     "topic_move_all_success": "Tüm başlıklar şu bölüme taşınıyor: \"%1\" . İşlemi iptal etmek için tıklayınız.",
@@ -121,7 +135,7 @@
     "post_moved": "İleti taşındı!",
     "fork_topic": "Başlığı Ayır",
     "enter-new-topic-title": "Oluşturulacak Yeni Başlığı Buraya Giriniz",
-    "fork_topic_instruction": "Ayırmak istediğiniz iletileri seçiniz!",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Hiçbir ileti seçilmedi!",
     "no-posts-selected": "Hiçbir ileti seçili değil!",
     "x-posts-selected": "%1 ileti seçildi",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Konu için yeni başlık",
     "topic-id": "Başlık ID",
     "move_posts_instruction": "Taşımak istediğiniz iletileri seçin, daha sonra bir başlık ID girin veya hedef başlığa gidin",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Başka kullanıcıya aktarmak istediğiniz iletileri seçiniz!",
     "composer.title_placeholder": "Başlık ismini buraya giriniz...",
     "composer.handle_placeholder": "Kullanıcı adınızı buraya girin",
+    "composer.hide": "Hide",
     "composer.discard": "Vazgeç",
     "composer.submit": "Gönder",
     "composer.additional-options": "Ekstra seçenekler",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Konu Zamanla",
     "composer.replying_to": "Yanıtlanan Başlık: %1",
     "composer.new_topic": "Yeni Başlık",
@@ -184,5 +201,7 @@
     "last-post": "Son ileti",
     "go-to-my-next-post": "Diğer iletime git",
     "no-more-next-post": "Bu başlıkta başka bir iletiniz bulunmamaktadır.",
-    "post-quick-reply": "Hızlı yanıt gönder"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/tr/user.json b/public/language/tr/user.json
index 1809554c6d..41371dce6a 100644
--- a/public/language/tr/user.json
+++ b/public/language/tr/user.json
@@ -43,6 +43,7 @@
     "followers": "Takipçiler",
     "following": "Takip Edilenler",
     "blocks": "Engellenenler",
+    "blocked-users": "Blocked users",
     "block_toggle": "Blokta Geçiş Yap",
     "block_user": "Kullanıcıyı Engelle",
     "unblock_user": "Kullanıcı Engelini Kaldır",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Yeni bir fotoğraf yükle",
     "upload_new_picture_from_url": "İnternetten yeni bir fotoğraf yükle",
     "current_password": "Şu anki şifre",
+    "new_password": "New Password",
     "change_password": "Şifre Değiştir",
     "change_password_error": "Geçersiz Şifre",
     "change_password_error_wrong_current": "Şu anki şifre doğru değil!",
@@ -115,6 +117,8 @@
     "paginate_description": "Sonsuz yükleme yerine konu ve iletileri sayfalara böl",
     "topics_per_page": "Sayfa başına başlık sayısı",
     "posts_per_page": "Sayfa başına ileti sayısı",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Maksimum %1",
     "acp_language": "Yönetici Sayfası Dili",
     "notifications": "Bildirimler",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Moderasyon notu kaydedildi",
     "info.moderation-note.add": "Not ekle",
     "sessions.description": "Bu sayfa, bu forumdaki tüm aktif oturumları görüntülemenizi ve gerektiğinde iptal etmenizi sağlar. Kendi oturumunuzu hesabınızdan çıkış yaparak iptal edebilirsiniz.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Haklarınız & İzinleriniz",
     "consent.lead": "Bu topluluk forumu kişisel bilgilerinizi toplar ve işler.",
     "consent.intro": "Bu bilgileri kesinlikle bu topluluktaki deneyiminizi kişiselleştirmek ve kullanıcı hesabınıza yaptığınız yayınları ilişkilendirmek için kullanıyoruz. Kayıt adımı sırasında sizden bir kullanıcı adı ve e-posta adresi vermeniz istenmiştir. Ayrıca, kullanıcı profilinizi bu web sitesinde tamamlamak için isteğe bağlı olarak ek bilgi de ekleyebilirsiniz. <br /><br />Bu bilgileri kullanıcı hesabınızın ömrü boyunca saklayabilir ve izinleri geri alabilirsiniz. Hesabınızı istediğiniz zaman silebilirsiniz. Herhangi bir zamanda, bu web sitesine yaptığınız katkıların bir kopyasını Haklar &amp; Onay sayfasını talep edebilirsiniz.<br /><br /> Sorularınız veya endişeleriniz varsa, bu forumun yönetim ekibine ulaşmanızı öneririz.",
diff --git a/public/language/tr/users.json b/public/language/tr/users.json
index 624ab59523..78b043fe3b 100644
--- a/public/language/tr/users.json
+++ b/public/language/tr/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "En Yeni Kullanıcılar",
     "top_posters": "En Fazla Gönderim Yapanlar",
     "most_reputation": "En Saygınlar",
     "most_flags": "En Fazla Şikayet",
     "search": "Ara",
     "enter_username": "Aramak için bir kullanıcı adı girin",
-    "search-user-for-chat": "Sohbet için bir kullanıcı arayın",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Daha Fazla Yükle",
     "users-found-search-took": "%1 kullanıcı(lar) bulundu! Arama %2 saniye sürdü.",
     "filter-by": "Şu şekilde filtrele",
diff --git a/public/language/uk/admin/admin.json b/public/language/uk/admin/admin.json
index 092fae5bf6..49683ade92 100644
--- a/public/language/uk/admin/admin.json
+++ b/public/language/uk/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Адмінська Панель Керування NodeBB",
 	"settings-header-contents": "Зміст",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/uk/admin/appearance/customise.json b/public/language/uk/admin/appearance/customise.json
index 914aa4772c..5ed56f3a90 100644
--- a/public/language/uk/admin/appearance/customise.json
+++ b/public/language/uk/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Користувацькі CSS/LESS",
-	"custom-css.description": "Введіть свої власні CSS/LESS тут, які будуть застосовані після всіх інших стилів.",
-	"custom-css.enable": "Увімкнути користувацькі CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "Користувацький Javascript",
 	"custom-js.description": "Введіть свій власний код javascript тут. Він буде виконаний після повного завантаження сторінки.",
diff --git a/public/language/uk/admin/dashboard.json b/public/language/uk/admin/dashboard.json
index 62eee08e51..86c84bf851 100644
--- a/public/language/uk/admin/dashboard.json
+++ b/public/language/uk/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Back to Dashboard",
 	"details.no-users": "No users have joined within the selected timeframe",
 	"details.no-topics": "No topics have been posted within the selected timeframe",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "Login Time"
+	"details.logins-login-time": "Login Time",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/uk/admin/extend/widgets.json b/public/language/uk/admin/extend/widgets.json
index 8d06a68e2a..d374eb78f1 100644
--- a/public/language/uk/admin/extend/widgets.json
+++ b/public/language/uk/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Ніякий",
 	"container.well": "Криниця",
 	"container.jumbotron": "Екран",
-	"container.panel": "Панель",
-	"container.panel-header": "Заголовок панелі",
-	"container.panel-body": "Тіло панелі",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Тривога",
 
 	"alert.confirm-delete": "Ви впевнені, що бажаєте видалити цей віджет?",
diff --git a/public/language/uk/admin/manage/groups.json b/public/language/uk/admin/manage/groups.json
index 807758b546..c826fb202c 100644
--- a/public/language/uk/admin/manage/groups.json
+++ b/public/language/uk/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Повернути",
 
 	"edit.no-users-found": "Користувачів не знайдено",
-	"edit.confirm-remove-user": "Ви точно бажаєте видалити цього користувача?",
-	"edit.save-success": "Зміни збережено!"
+	"edit.confirm-remove-user": "Ви точно бажаєте видалити цього користувача?"
 }
\ No newline at end of file
diff --git a/public/language/uk/admin/manage/privileges.json b/public/language/uk/admin/manage/privileges.json
index caff1bef31..ccad5c3173 100644
--- a/public/language/uk/admin/manage/privileges.json
+++ b/public/language/uk/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/uk/admin/settings/api.json b/public/language/uk/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/uk/admin/settings/api.json
+++ b/public/language/uk/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/uk/admin/settings/navigation.json b/public/language/uk/admin/settings/navigation.json
index 8d6f6fad19..a835bf0d2e 100644
--- a/public/language/uk/admin/settings/navigation.json
+++ b/public/language/uk/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Groups:",
 	"open-new-window": "Відкривати у новому вікні",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Видалити",
 	"btn.disable": "Вимкнути",
diff --git a/public/language/uk/admin/settings/user.json b/public/language/uk/admin/settings/user.json
index cb43123c90..49e9d9fae7 100644
--- a/public/language/uk/admin/settings/user.json
+++ b/public/language/uk/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "Days",
 	"session-time-seconds": "Seconds",
 	"session-time-help": "These values are used to govern how long a user stays logged in when they check &quot;Remember Me&quot; on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "Minutes after user is considered inactive",
 	"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
 	"registration": "Реєстрація користувачів",
diff --git a/public/language/uk/error.json b/public/language/uk/error.json
index 0d7c0a94d8..fc103a7100 100644
--- a/public/language/uk/error.json
+++ b/public/language/uk/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Гостьове завантаження вимкнено.",
     "cors-error": "Неможливо завантажити зображення через неправильно налаштований CORS",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Ваша заявка на вступ вже подана",
     "group-join-disabled": "Ви не можете приєднатись до цієї групи зараз",
     "group-leave-disabled": "Ви не можете покинути цю групу зараз",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Цей пост вже видалено",
     "post-already-restored": "Цей пост вже відновлено",
     "topic-already-deleted": "Ця тема вже була видалена",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/uk/flags.json b/public/language/uk/flags.json
index 80db1a33e5..6b5b30a3e0 100644
--- a/public/language/uk/flags.json
+++ b/public/language/uk/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "Ура! Скарг немає.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Виконавець",
 	"update": "Оновлення",
 	"updated": "Оновлено",
 	"resolved": "Resolved",
 	"target-purged": "Зміст на який подана ця скарга було стерто і він більше недоступний.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Щоденні прапорці",
 	"quick-filters": "Швидкі фільтри",
 	"filter-active": "У цьому списку скарг активовано один або більше фільтрів",
 	"filter-reset": "Видалити фільтри",
 	"filters": "Параметри фільтру",
-	"filter-reporterId": "UID скаржника",
-	"filter-targetUid": "UID оскаржуваного",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Тип скарги",
 	"filter-type-all": "Увесь зміст",
 	"filter-type-post": "Пост",
 	"filter-type-user": "Користувач",
 	"filter-state": "Стан",
-	"filter-assignee": "UID виконавця",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Категорія",
 	"filter-quick-mine": "Призначені мені",
 	"filter-cid-all": "Всі категорії",
@@ -45,6 +47,7 @@
 
 	"notes": "Коментарі до скарги",
 	"add-note": "Додати коментар",
+	"edit-note": "Edit Note",
 	"no-notes": "Немає загальних коментарів.",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/uk/global.json b/public/language/uk/global.json
index 4bc5e4d55e..cf7c981658 100644
--- a/public/language/uk/global.json
+++ b/public/language/uk/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Закрити",
     "403.title": "Доступ заборонено",
     "403.message": "Здається ви натрапили на сторінку до якої не маєте доступу.",
-    "403.login": "Можливо вам потрібно <a href='%1/login'>увійти</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Не знайдено",
-    "404.message": "Здається ви натрапили на сторінку якої не існує. Поверніться на <a href='%1/'>початкову сторінку</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Внутрішня помилка.",
     "500.message": "Ой! Здається щось пішло не так!",
     "400.title": "Помилковий запит.",
-    "400.message": "Схоже, що посилання сформовано невірно, перевірте його і спробуйте ще раз. Інакше, поверніться на <a href='%1/'>початкову сторінку</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Реєстрація",
     "login": "Логін",
     "please_log_in": "Увійдіть, будь-ласка",
@@ -37,9 +37,13 @@
     "header.notifications": "Сповіщення",
     "header.search": "Пошук",
     "header.profile": "Профіль",
+    "header.account": "Account",
     "header.navigation": "Навігація",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "Завантаження сповіщень",
     "chats.loading": "Завантаження чатів",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Вітаємо у NodeBB, надсучасній платформі для обговорень.",
     "previouspage": "Попередня сторінка",
     "nextpage": "Наступна сторінка",
@@ -54,7 +58,8 @@
     "users": "Користувачі",
     "topics": "Теми",
     "posts": "Пости",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Найкращі",
     "controversial": "Controversial",
     "votes": "Голоси",
@@ -69,6 +74,7 @@
     "reputation": "Репутація",
     "lastpost": "Останній допис",
     "firstpost": "Перший допис",
+    "about": "About",
     "read_more": "читати далі",
     "more": "Більше",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 запостив %2",
     "guest_posted_ago": "Гість запостив %1",
     "last_edited_by": "востаннє редагувалося %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Немає свіжих постів",
     "norecenttopics": "Немає свіжих тем",
     "recentposts": "Нещодавні пости",
     "recentips": "Нещодавно увійшовші IP-адреси",
     "moderator_tools": "Інструменти модератора",
+    "status": "Status",
     "online": "Онлайн",
     "away": "Відсутній",
     "dnd": "Не турбувати",
@@ -122,5 +130,7 @@
     "edited": "Відредаговано",
     "disabled": "Вимкнено",
     "select": "Обрати",
-    "user-search-prompt": "Введіть щось тут, щоб знайти користувачів..."
+    "user-search-prompt": "Введіть щось тут, щоб знайти користувачів...",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/uk/groups.json b/public/language/uk/groups.json
index 7ebaee9b4a..2763776ebc 100644
--- a/public/language/uk/groups.json
+++ b/public/language/uk/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Групи",
+    "members": "Members",
     "view_group": "Переглянути групу",
     "owner": "Власник групи",
     "new_group": "Створити нову групу",
diff --git a/public/language/uk/modules.json b/public/language/uk/modules.json
index 67df7003ac..7f1c5bf34b 100644
--- a/public/language/uk/modules.json
+++ b/public/language/uk/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Чат з",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Надіслати",
     "chat.no_active": "У вас немає активних чатів.",
     "chat.user_typing": "%1 друкує...",
@@ -42,6 +46,7 @@
     "composer.compose": "Редактор повідомлень",
     "composer.show_preview": "Показати попередній перегляд",
     "composer.hide_preview": "Сховати попередній перегляд",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 написав в %2:",
     "composer.user_said": "%1 написав:",
     "composer.discard": "Ви впевнені, що хочете скасувати цей пост?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "ОК",
     "bootbox.cancel": "Скасувати",
     "bootbox.confirm": "Підтвердити",
diff --git a/public/language/uk/pages.json b/public/language/uk/pages.json
index d30285edda..0d2323529e 100644
--- a/public/language/uk/pages.json
+++ b/public/language/uk/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Категорії, за якими спостерігає %1",
     "account/bookmarks": "Закладки %1",
     "account/settings": "Налаштування користувача",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Теми за якими стежить %1",
     "account/ignored": "Теми, які ігноруються",
     "account/upvoted": "Пости за які проголосував %1",
diff --git a/public/language/uk/post-queue.json b/public/language/uk/post-queue.json
index bea08f674f..ba9df75963 100644
--- a/public/language/uk/post-queue.json
+++ b/public/language/uk/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Черга Постів",
-	"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Користувач",
+	"when": "When",
 	"category": "Категорія",
 	"title": "Заголовок",
 	"content": "Зміст",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/uk/recent.json b/public/language/uk/recent.json
index 95603beef3..9388dc15ab 100644
--- a/public/language/uk/recent.json
+++ b/public/language/uk/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Весь час",
     "no_recent_topics": "Немає свіжих тем.",
     "no_popular_topics": "Немає популярних тем.",
-    "there-is-a-new-topic": "Є нова тема.",
-    "there-is-a-new-topic-and-a-new-post": "Є нова тема та нова публікація.",
-    "there-is-a-new-topic-and-new-posts": "Є нова тема та %1 нових публікацій.",
-    "there-are-new-topics": "Є %1 нових тем.",
-    "there-are-new-topics-and-a-new-post": "Є %1 нових тем на нова публікація.",
-    "there-are-new-topics-and-new-posts": "Є %1 нових тем та %2 нові публікації.",
-    "there-is-a-new-post": "Є нова публікація.",
-    "there-are-new-posts": "Є %1 нових публікацій.",
-    "click-here-to-reload": "Натисніть тут, щоб перевантажити."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/uk/register.json b/public/language/uk/register.json
index 600fd448a9..07320727c5 100644
--- a/public/language/uk/register.json
+++ b/public/language/uk/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Реєстрація",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Скасувати реєстрацію",
     "help.email": "За замовчуванням, ваша email-адреса буде прихована від інших. ",
     "help.username_restrictions": "Унікальне ім'я довжиною від %1 до %2 символів. Інші можуть вас згадувати за допомогою @<span id='yourUsername'>ім'я</span>.",
diff --git a/public/language/uk/search.json b/public/language/uk/search.json
index ce04e19f39..860d9a3c72 100644
--- a/public/language/uk/search.json
+++ b/public/language/uk/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "%1 збіг(ів) по запиту \"%2\"  (%3 секунд)",
     "no-matches": "Збіги не знайдено",
     "advanced-search": "Розширений пошук",
     "in": "В",
-    "titles": "Заголовки",
-    "titles-posts": "Заголовки та Пости",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "Які містять слова",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Всі",
     "any": "Будь-які",
     "posted-by": "Запощено",
-    "in-categories": "В Категоріях",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "Шукати в дочірніх категоріях",
     "has-tags": "Містить теги",
     "reply-count": "Лічильник Відповідей",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Щонайменше",
     "at-most": "Щонайбільше",
     "relevance": "Релевантність",
+    "time": "Time",
     "post-time": "Час посту",
     "votes": "Голоси",
     "newer-than": "Новіші за",
@@ -28,7 +48,22 @@
     "three-months": "Три місяці",
     "six-months": "Шість місяців",
     "one-year": "Один рік",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "Сортувати за",
+    "sort": "Sort",
     "last-reply-time": "Час останньої відповіді",
     "topic-title": "Заголовок теми",
     "topic-votes": "Голоси за тему",
@@ -39,11 +74,36 @@
     "category": "Категорія",
     "descending": "У порядку спадання",
     "ascending": "У порядку зростання",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "Зберегти налаштування",
     "clear-preferences": "Очистити налаштування",
     "search-preferences-saved": "Налаштування пошуку збережено",
     "search-preferences-cleared": "Налаштування пошуку очищені",
     "show-results-as": "Показати результати як",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "Дивитись більше результатів (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/uk/social.json b/public/language/uk/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/uk/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/uk/tags.json b/public/language/uk/tags.json
index a15d895df0..48eb97f025 100644
--- a/public/language/uk/tags.json
+++ b/public/language/uk/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "Немає теми з цим тегом.",
+    "no-tags-found": "No tags found",
     "tags": "Теги",
     "enter_tags_here": "Введіть тег сюди, між літерами %1 та %2 кожен",
     "enter_tags_here_short": "Введіть тег",
diff --git a/public/language/uk/topic.json b/public/language/uk/topic.json
index 771bbf852a..73c18514f6 100644
--- a/public/language/uk/topic.json
+++ b/public/language/uk/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Копіювати IP",
     "ban-ip": "Заблокувати IP",
     "view-history": "Редагувати історію",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Натисніть тут, щоб повернутися до останнього прочитаного посту у цій темі.",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Стерти тему",
     "thread_tools.purge_confirm": "Ви точно бажаєте стерти цю тему?",
     "thread_tools.merge_topics": "Об'єднати теми",
-    "thread_tools.merge": "Об'єднати",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "Пост переміщено!",
     "fork_topic": "Відгалужити тему",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "Тисніть пости які ви бажаєте відгалужити",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "Не вибрано жодного поста!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "Клікніть на дописи які ви хочете призначити іншому користувачу",
     "composer.title_placeholder": "Уведіть заголовок теми...",
     "composer.handle_placeholder": "Enter your name/handle here",
+    "composer.hide": "Hide",
     "composer.discard": "Скасувати",
     "composer.submit": "Надіслати",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "Відповідь для %1",
     "composer.new_topic": "Cтворити тему",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/uk/user.json b/public/language/uk/user.json
index ec842ecdf2..942fd1f48b 100644
--- a/public/language/uk/user.json
+++ b/public/language/uk/user.json
@@ -43,6 +43,7 @@
     "followers": "Відстежувачі",
     "following": "Відстежувані",
     "blocks": "Блокування",
+    "blocked-users": "Blocked users",
     "block_toggle": "Увімкнути Блокування",
     "block_user": "Заблокувати Користувача",
     "unblock_user": "Розблокувати Користувача",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Завантажити нове зображення",
     "upload_new_picture_from_url": "Завантажити нове зображення з URL",
     "current_password": "Поточний пароль",
+    "new_password": "New Password",
     "change_password": "Змінити пароль",
     "change_password_error": "Невірний пароль!",
     "change_password_error_wrong_current": "Ваш поточний пароль не вірний!",
@@ -115,6 +117,8 @@
     "paginate_description": "Розбивати список тем та постів на сторінки замість нескінченної прокрутки",
     "topics_per_page": "Тем на сторінку",
     "posts_per_page": "Постів на сторінку",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Максимум %1",
     "acp_language": "Мова сторінки адміністратора",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Коментар модератора збережено",
     "info.moderation-note.add": "Додати коментар",
     "sessions.description": "Ця сторінка дозволяє вам переглядати будь-які активні сесії на цьому форумі та видаляти їх якщо потрібно. Ви можете видалити вашу власну сесію, якщо вийдете зі свого акаунта.",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Ваші Права &amp; Згода",
     "consent.lead": "Цей форум збирає та обробляє вашу особисту інформацію.",
     "consent.intro": "Ми використовуємо цю інформацію виключно з метою персоналізації вашої активності у цій спільноті, а також для з'єднання ваших постів з вашим особистим акаунтом. На етапі реєстрації ми просили вас надати ім'я користувача та електронну пошту, також ви можете (необов'язково) надати нам додаткову інформацію, щоб завершити створення свого користувацького профілю на цьому сайті.<br /><br />Ми зберігаємо цю інформацію протягом всього періоду життя вашого акаунту, і ви можете відкликати свою згоду у будь-який час, якщо видалите акаунт. У будь-який час ви можете отримати копію ваших особистих даних та внеску на цьому сайті через свою сторінку Права &amp; Згода.<br /><br />Якщо у вас виникли будь-які питання або зауваження, ми заохочуємо вас звернутись до команди Адміністраторів цього форуму.",
diff --git a/public/language/uk/users.json b/public/language/uk/users.json
index 9495f89850..a7b562ba10 100644
--- a/public/language/uk/users.json
+++ b/public/language/uk/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Останні користувачі",
     "top_posters": "Кращі автори",
     "most_reputation": "Найбільша репутація",
     "most_flags": "Найбільше скарг",
     "search": "Пошук",
     "enter_username": "Уведіть ім'я користувача для пошуку",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "Завантажити більше",
     "users-found-search-took": "%1 користувач(ів) знайдено! Пошук тривав %2 секунди.",
     "filter-by": "Фільтрувати за",
diff --git a/public/language/vi/admin/admin.json b/public/language/vi/admin/admin.json
index 2123023f10..2d2e82f7f9 100644
--- a/public/language/vi/admin/admin.json
+++ b/public/language/vi/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | Bảng Điểu Khiển Quản Trị Viên NodeBB",
 	"settings-header-contents": "Nội dung",
-	"changes-saved": "Đã Lưu Thay Đổi",
-	"changes-saved-message": "Các thay đổi của bạn đối với cấu hình NodeBB đã được lưu.",
 	"changes-not-saved": "Thay Đổi Chưa Được Lưu",
 	"changes-not-saved-message": "NodeBB đã gặp sự cố khi lưu các thay đổi của bạn. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/vi/admin/advanced/cache.json b/public/language/vi/admin/advanced/cache.json
index 8a17c99086..48100e2c25 100644
--- a/public/language/vi/admin/advanced/cache.json
+++ b/public/language/vi/admin/advanced/cache.json
@@ -1,8 +1,8 @@
 {
-	"post-cache": "Bộ nhớ đệm bài viết",
-	"group-cache": "Group Cache",
-	"local-cache": "Local Cache",
-	"object-cache": "Object Cache",
+	"post-cache": "Bộ Nhớ Đệm Bài Viết",
+	"group-cache": "Bộ Nhớ Đệm Nhóm",
+	"local-cache": "Bộ Nhớ Đệm Cục Bộ",
+	"object-cache": "Bộ Nhớ Đệm Đối Tượng",
 	"percent-full": "%1% Đầy",
 	"post-cache-size": "Kích thước cache bài viết",
 	"items-in-cache": "Thành phần trong Cache"
diff --git a/public/language/vi/admin/appearance/customise.json b/public/language/vi/admin/appearance/customise.json
index fd8785bb1f..ec665e39d5 100644
--- a/public/language/vi/admin/appearance/customise.json
+++ b/public/language/vi/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "Tùy Chỉnh CSS/LESS",
-	"custom-css.description": "Nhập các khai báo CSS / LESS của bạn tại đây, nó sẽ được áp dụng sau tất cả các kiểu khác.",
-	"custom-css.enable": "Bật Tùy Chỉnh CSS/LESS",
+	"custom-css": "CSS/SASS Tùy Chỉnh",
+	"custom-css.description": "Nhập các khai báo CSS/SASS của riêng bạn tại đây, sẽ được áp dụng sau tất cả các kiểu khác.",
+	"custom-css.enable": "Bật CSS/SASS Tùy Chỉnh",
 
 	"custom-js": "Javascript tùy chỉnh",
 	"custom-js.description": "Nhập javascript của riêng bạn ở đây. Nó sẽ được thực hiện sau khi trang được tải hoàn toàn.",
diff --git a/public/language/vi/admin/dashboard.json b/public/language/vi/admin/dashboard.json
index 7ab9f47374..45fdec1582 100644
--- a/public/language/vi/admin/dashboard.json
+++ b/public/language/vi/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "Quay lại Bảng điều khiển",
 	"details.no-users": "Không có người dùng nào tham gia trong khung thời gian đã chọn",
 	"details.no-topics": "Không có chủ đề nào được đăng trong khung thời gian đã chọn",
-	"details.no-searches": "Chưa có tìm kiếm nào",
+	"details.no-searches": "Không có tìm kiếm nào được thực hiện trong khung thời gian đã chọn",
 	"details.no-logins": "Không có thông tin đăng nhập nào được ghi lại trong khung thời gian đã chọn",
 	"details.logins-static": "NodeBB chỉ lưu dữ liệu phiên trong %1 ngày và do đó, bảng này bên dưới sẽ chỉ hiển thị các phiên hoạt động gần đây nhất",
-	"details.logins-login-time": "Thời gian đăng nhập"
+	"details.logins-login-time": "Thời gian đăng nhập",
+	"start": "Start",
+	"end": "End",
+	"filter": "Bộ lọc"
 }
diff --git a/public/language/vi/admin/extend/widgets.json b/public/language/vi/admin/extend/widgets.json
index dd74d40700..6bd63fdf91 100644
--- a/public/language/vi/admin/extend/widgets.json
+++ b/public/language/vi/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "Trống",
 	"container.well": "Tốt",
 	"container.jumbotron": "Khung Hiển Thị Lớn",
-	"container.panel": "Bảng",
-	"container.panel-header": "Tiêu Đề Bảng",
-	"container.panel-body": "Thân Bảng",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "Cảnh báo",
 
 	"alert.confirm-delete": "Bạn có chắc chắn muốn xóa tiện ích này không?",
diff --git a/public/language/vi/admin/manage/groups.json b/public/language/vi/admin/manage/groups.json
index e781d0612b..dd79c94c2a 100644
--- a/public/language/vi/admin/manage/groups.json
+++ b/public/language/vi/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "Hoàn Tác",
 
 	"edit.no-users-found": "Không Tìm Thấy Người Dùng",
-	"edit.confirm-remove-user": "Bạn có chắc chắn muốn xóa người dùng này?",
-	"edit.save-success": "Đã lưu thay đổi!"
+	"edit.confirm-remove-user": "Bạn có chắc chắn muốn xóa người dùng này?"
 }
\ No newline at end of file
diff --git a/public/language/vi/admin/manage/privileges.json b/public/language/vi/admin/manage/privileges.json
index 9aea7f6569..50cd6684db 100644
--- a/public/language/vi/admin/manage/privileges.json
+++ b/public/language/vi/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Bạn có chắc muốn cấp quyền xét duyệt cho nhóm người dùng này không?</strong> Nhóm này công khai và ai cũng có thể tham gia.",
 	"alert.confirm-admins-mods": "<strong>Bạn có chắc muốn cấp quyền &quot;Quản Trị Viên&amp; Người Điều Hành&quot; cho người dùng/nhóm này?</strong> Người dùng này có quyền thăng và hạ cấp người dùng khác ở các vị trí đặc quyền, <em>Bao gồm quản trị viên cấp cao</em>",
 	"alert.confirm-save": "Vui lòng xác nhận ý định của bạn để lưu các đặc quyền này",
-	"alert.saved": "Đã lưu và áp dụng các thay đổi đặc quyền ",
 	"alert.confirm-discard": "Bạn có chắc chắn muốn hủy các thay đổi đặc quyền của mình không?",
 	"alert.discarded": "Thay đổi đặc quyền bị hủy",
 	"alert.confirm-copyToAll": "Bạn có chắc muốn áp dụng cài đặt <strong>%1</strong> cho <strong>tất cả danh mục</strong>?",
diff --git a/public/language/vi/admin/manage/users.json b/public/language/vi/admin/manage/users.json
index bffe16566a..cc0299a0f1 100644
--- a/public/language/vi/admin/manage/users.json
+++ b/public/language/vi/admin/manage/users.json
@@ -14,7 +14,7 @@
 	"reset-flags": "Đặt Lại Gắn Cờ",
 	"delete": "Xóa <strong>Người Dùng</strong>",
 	"delete-content": "Xóa <strong>Nội Dung</strong> Người Dùng",
-	"purge": "Xóa <strong>Người Dùng</strong> và<strong>Nội Dung</strong>",
+	"purge": "Xóa <strong>Người Dùng</strong> và <strong>Nội Dung</strong>",
 	"download-csv": "Tải về CSV",
 	"manage-groups": "Quản Lý Nhóm",
 	"add-group": "Thêm Nhóm",
diff --git a/public/language/vi/admin/settings/advanced.json b/public/language/vi/admin/settings/advanced.json
index 4f4b14039f..961593854c 100644
--- a/public/language/vi/admin/settings/advanced.json
+++ b/public/language/vi/admin/settings/advanced.json
@@ -20,7 +20,7 @@
 	"headers.coep-help": "Khi được bật (mặc định), sẽ đặt tiêu đề thành <code>require-corp</code>",
 	"headers.coop": "Cross-Origin-Opener-Policy",
 	"headers.corp": "Cross-Origin-Resource-Policy",
-	"headers.permissions-policy": "Permissions-Policy",
+	"headers.permissions-policy": "Quyền-Chính sách",
 	"headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see <a href=\"https://github.com/w3c/webappsec-permissions-policy/blob/main/permissions-policy-explainer.md\">this</a> for more info.",
 	"hsts": "Bảo Vệ Truyền Tải Nghiêm Ngặt",
 	"hsts.enabled": "Đã bật HSTS (đề nghị)",
diff --git a/public/language/vi/admin/settings/api.json b/public/language/vi/admin/settings/api.json
index ad59dadf66..0b16c3af71 100644
--- a/public/language/vi/admin/settings/api.json
+++ b/public/language/vi/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "ID Người Dùng",
 	"uid-help-text": "Ghi rõ ID người dùng liên kết với mã truy cập. Nếu ID người dùng là <code>0</code>, nó sẽ là môt mã truy cập <em>cao cấp</em>, có thể giả định danh tính của những người dùng khác dựa trên tham số <code>_uid</code>",
 	"description": "Mô tả",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "Khóa này chưa bao giờ được dùng.",
 	"no-description": "Không có mô tả cụ thể.",
 	"token-on-save": "Mã truy cập sẽ được tạo sau khi biểu mẫu được lưu"
 }
\ No newline at end of file
diff --git a/public/language/vi/admin/settings/email.json b/public/language/vi/admin/settings/email.json
index cdd5a01772..39332d35cb 100644
--- a/public/language/vi/admin/settings/email.json
+++ b/public/language/vi/admin/settings/email.json
@@ -6,7 +6,7 @@
 	"from-help": "Tên người gửi hiển thị trong email.",
 
 	"confirmation-settings": "Xác nhận",
-	"confirmation.expiry": "Hours to keep email confirmation link valid",
+	"confirmation.expiry": "Số giờ để giữ cho liên kết xác nhận email hợp lệ",
 
 	"smtp-transport": "Truyền Tải SMTP",
 	"smtp-transport.enabled": "Bật truyền tải SMTP",
diff --git a/public/language/vi/admin/settings/navigation.json b/public/language/vi/admin/settings/navigation.json
index 22ce457fb4..eb94fcad5e 100644
--- a/public/language/vi/admin/settings/navigation.json
+++ b/public/language/vi/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "Nhóm:",
 	"open-new-window": "Mở trong một cửa sổ mới",
 	"dropdown": "Thả xuống",
-	"dropdown-placeholder": "Đặt các mục menu thả xuống của bạn bên dưới, tức là: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "Xóa",
 	"btn.disable": "Tắt",
diff --git a/public/language/vi/admin/settings/reputation.json b/public/language/vi/admin/settings/reputation.json
index ba1d868e2b..3a73f1ded0 100644
--- a/public/language/vi/admin/settings/reputation.json
+++ b/public/language/vi/admin/settings/reputation.json
@@ -23,9 +23,9 @@
 	"flags.limit-per-target-placeholder": "Mặc định: 0",
 	"flags.limit-per-target-help": "Khi một bài đăng hoặc người dùng bị gắn cờ nhiều lần, mỗi cờ bổ sung được coi là một &quot;báo cáo&quot; và được thêm vào cờ gốc. Đặt tùy chọn này thành một số khác 0 để giới hạn số lượng báo cáo mà một mục có thể nhận được.",
   	"flags.auto-flag-on-downvote-threshold": "Số phiếu phản đối cho các bài đăng tự động gắn cờ (Đặt thành 0 để tắt, mặc định: 0)",
-	"flags.auto-resolve-on-ban": "Tự động giải quyết tất cả các vé của người dùng khi họ bị cấm",
-	"flags.action-on-resolve": "Do the following when a flag is resolved",
-	"flags.action-on-reject": "Do the following when a flag is rejected",
-	"flags.action.nothing": "Do nothing",
-	"flags.action.rescind": "Rescind the notification send to moderators/administrators"
+	"flags.auto-resolve-on-ban": "Tự động giải quyết tất cả các yêu cầu của người dùng khi họ bị cấm",
+	"flags.action-on-resolve": "Làm như sau khi một gắn cờ được giải quyết",
+	"flags.action-on-reject": "Làm như sau khi một gắn cờ bị từ chối",
+	"flags.action.nothing": "Không làm gì cả",
+	"flags.action.rescind": "Hủy bỏ gửi thông báo cho người điều hành/quản trị viên"
 }
\ No newline at end of file
diff --git a/public/language/vi/admin/settings/user.json b/public/language/vi/admin/settings/user.json
index 0fd9f6f18e..920b8135b3 100644
--- a/public/language/vi/admin/settings/user.json
+++ b/public/language/vi/admin/settings/user.json
@@ -1,7 +1,7 @@
 {
 	"authentication": "Xác thực",
 	"email-confirm-interval": "Người dùng không thể gửi lại email xác nhận cho đến khi",
-	"email-confirm-interval2": "minutes have elapsed",
+	"email-confirm-interval2": "phút đã trôi qua",
 	"allow-login-with": "Cho phép đăng nhập với",
 	"allow-login-with.username-email": "Tên Đăng Nhập hoặc Email",
 	"allow-login-with.username": "Chỉ Tên Đăng Nhập",
@@ -29,6 +29,8 @@
 	"session-time-days": "Ngày",
 	"session-time-seconds": "Giây",
 	"session-time-help": "Giá trị này dùng để điều chỉnh thời gian người dùng đăng nhập khi họ chọn &quot;Nhớ Tôi&quot; lúc đăng nhập. Lưu ý chỉ một trong những giá trị này sẽ được dùng. Nếu không có giá trị <i>giây</i> chúng tôi sẽ dùng <i>ngày</i>. Nếu không có <i>ngày</i> mặc định là <i>14 ngày</i>.",
+	"session-duration": "Thời lượng phiên nếu \"Ghi nhớ tôi\" không được chọn (giây)",
+	"session-duration-help": "Theo mặc định — hoặc nếu đặt thành <code>0</code> — người dùng sẽ duy trì trạng thái đăng nhập trong suốt thời gian của phiên (VD: cửa sổ/tab trình duyệt vẫn mở trong bao lâu). Đặt giá trị này để vô hiệu hóa rõ ràng phiên sau số giây đã chỉ định.",
 	"online-cutoff": "Số phút sau khi người dùng được coi là không hoạt động",
 	"online-cutoff-help": "Nếu người dùng không thao tác trong khoảng thời gian này, được coi là không hoạt động và không nhận được cập nhật theo thời gian thực.",
 	"registration": "Đăng Ký Người Dùng",
diff --git a/public/language/vi/error.json b/public/language/vi/error.json
index ca14a3a120..5b6e6d3d6a 100644
--- a/public/language/vi/error.json
+++ b/public/language/vi/error.json
@@ -62,7 +62,7 @@
     "no-user": "Người dùng không tồn tại",
     "no-teaser": "Đoạn giới thiệu không tồn tại",
     "no-flag": "Cờ không tồn tại",
-    "no-chat-room": "Chat room does not exist",
+    "no-chat-room": "Phòng trò chuyện không tồn tại",
     "no-privileges": "Bạn không đủ quyền để thực thi hành động này",
     "category-disabled": "Chuyên mục bị khóa",
     "topic-locked": "Chủ đề bị khóa",
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "Tải lên của khách đã bị tắt",
     "cors-error": "Không thể tải lên hình ảnh do CORS bị cấu hình sai",
     "upload-ratelimit-reached": "‎Bạn‎‎ đã tải lên quá nhiều tệp cùng một lúc. Vui lòng thử lại sau.‎",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Vui lòng chọn một ngày trong tương lai.",
     "invalid-schedule-date": "Vui lòng nhập ngày và giờ hợp lệ.",
     "cant-pin-scheduled": "Không thể ghim (bỏ) các chủ đề đã lên lịch.",
@@ -134,6 +135,8 @@
     "group-already-requested": "Yêu cầu tham gia của bạn đã được gửi.",
     "group-join-disabled": "Bạn không thể tham gia nhóm này vào lúc này",
     "group-leave-disabled": "Bạn không thể rời khỏi nhóm này vào lúc này",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "Bài viết này đã bị xóa",
     "post-already-restored": "Bài viết này đã được phục hồi",
     "topic-already-deleted": "Chủ đề này đã bị xóa",
@@ -157,9 +160,9 @@
     "chat-deleted-already": "Cuộc trò chuyện này đã được xóa.",
     "chat-restored-already": "Tin nhắn trò chuyện này đã được khôi phục.",
     "chat-room-does-not-exist": "Phòng trò chuyện không tồn tại.",
-    "cant-add-users-to-chat-room": "Can't add users to chat room.",
-    "cant-remove-users-from-chat-room": "Can't remove users from chat room.",
-    "chat-room-name-too-long": "Chat room name too long.",
+    "cant-add-users-to-chat-room": "Không thể thêm người dùng vào phòng trò chuyện.",
+    "cant-remove-users-from-chat-room": "Không thể xóa người dùng khỏi phòng trò chuyện.",
+    "chat-room-name-too-long": "Tên phòng trò chuyện quá dài.",
     "already-voting-for-this-post": "Bạn đã bỏ phiếu cho bài viết này",
     "reputation-system-disabled": "Hệ thống đánh giá uy tính đã bị vô hiệu hóa.",
     "downvoting-disabled": "Phản đối đã bị tắt",
@@ -224,5 +227,6 @@
     "api.429": "Bạn đã đưa ra quá nhiều yêu cầu, vui lòng thử lại sau",
     "api.500": "Đã xảy ra lỗi không mong muốn khi cố gắng thực hiện yêu cầu của bạn.",
     "api.501": "Định tuyến bạn đang cố gắng gọi chưa được triển khai, vui lòng thử lại vào ngày mai",
-    "api.503": "Định tuyến bạn đang cố gọi hiện không khả dụng do cấu hình máy chủ"
+    "api.503": "Định tuyến bạn đang cố gọi hiện không khả dụng do cấu hình máy chủ",
+    "api.reauth-required": "Tài nguyên bạn đang cố truy cập yêu cầu xác thực (lại)."
 }
\ No newline at end of file
diff --git a/public/language/vi/flags.json b/public/language/vi/flags.json
index e9ae411735..61fe6d5f9c 100644
--- a/public/language/vi/flags.json
+++ b/public/language/vi/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Báo cáo",
 	"first-reported": "Được báo cáo đầu tiên",
 	"no-flags": "Hoan hô! Không tìm thấy cờ.",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "Người được ủy nhiệm",
 	"update": "Cập nhật",
 	"updated": "Đã cập nhật",
 	"resolved": "Đã Xử Lý",
 	"target-purged": "Nội dung mà cờ này đề cập đến đã bị xóa và không còn nữa.",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "Cờ Hàng Ngày",
 	"quick-filters": "Bộ Lọc Nhanh",
 	"filter-active": "Có một hoặc nhiều bộ lọc đang hoạt động trong danh sách cờ này",
 	"filter-reset": "Xóa Bộ Lọc",
 	"filters": "Tùy Chỉnh Bộ Lọc",
-	"filter-reporterId": "UID người báo cáo",
-	"filter-targetUid": "UID bị gắn cờ",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "Loại Cờ",
 	"filter-type-all": "Tất Cả Nội Dung",
 	"filter-type-post": "Bài viết",
 	"filter-type-user": "Người dùng",
 	"filter-state": "Trạng thái",
-	"filter-assignee": "UID Được chỉ định",
+	"filter-assignee": "Assignee",
 	"filter-cid": "Chuyên mục",
 	"filter-quick-mine": "Được giao cho tôi",
 	"filter-cid-all": "Tất cả chuyên mục",
@@ -45,6 +47,7 @@
 
 	"notes": "Ghi Chú Cờ",
 	"add-note": "Thêm Ghi Chú",
+	"edit-note": "Edit Note",
 	"no-notes": "Không có chia sẻ ghi chú.",
 	"delete-note-confirm": "Bạn có chắc muốn xóa ghi chú cờ này không?",
 	"delete-flag-confirm": "Bạn có chắc chắn muốn xóa cờ này không?",
diff --git a/public/language/vi/global.json b/public/language/vi/global.json
index ddce58282d..c7861b6b2b 100644
--- a/public/language/vi/global.json
+++ b/public/language/vi/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "Đóng",
     "403.title": "Truy Cập Bị Từ Chối",
     "403.message": "Dường như bạn đã tình cờ gặp một trang mà bạn không có quyền truy cập.",
-    "403.login": "Có lẽ bạn nên <a href='%1/login'>thử đăng nhập</a>?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "Không Tìm Thấy",
-    "404.message": "Có vẻ như bạn đã tình cờ gặp một trang không tồn tại. Hãy trở lại <a href='%1/'>trang chủ</a>.",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "Lỗi Bên Trong.",
     "500.message": "Úi chà! Có vẻ như đã xảy ra sự cố!",
     "400.title": "Yêu Cầu Không Hợp Lệ.",
-    "400.message": "Có vẻ như liên kết này không đúng định dạng, vui lòng kiểm tra kỹ và thử lại. Nếu không, hãy quay về <a href='%1/'>trang chủ</a>.",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "Đăng ký",
     "login": "Đăng nhập",
     "please_log_in": "Vui Lòng Đăng Nhập",
@@ -37,9 +37,13 @@
     "header.notifications": "Thông báo",
     "header.search": "Tìm kiếm",
     "header.profile": "Hồ sơ",
+    "header.account": "Tài khoản",
     "header.navigation": "Điều hướng",
+    "header.manage": "Quản lý",
+    "header.drafts": "Bản thảo",
     "notifications.loading": "Đang tải Thông báo",
     "chats.loading": "Đang Tải Trò Chuyện",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "Chào mừng bạn đến với NodeBB, nền tảng thảo luận của tương lai.",
     "previouspage": "Trang trước",
     "nextpage": "Trang kế",
@@ -54,7 +58,8 @@
     "users": "Người dùng",
     "topics": "Chủ Đề",
     "posts": "Bài Viết",
-    "x-posts": "%1 bài viết",
+    "x-posts": "<span class=\"formatted-number\">%1</span> bài đăng",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "Tốt",
     "controversial": "Gây tranh cãi",
     "votes": "Bình chọn",
@@ -69,6 +74,7 @@
     "reputation": "Uy tín",
     "lastpost": "Bài viết cuối cùng",
     "firstpost": "Bài viết đầu tiên",
+    "about": "About",
     "read_more": "Đọc thêm",
     "more": "Xem thêm",
     "none": "Trống",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 đã đăng %2",
     "guest_posted_ago": "Khách đã đăng %1",
     "last_edited_by": "chỉnh sửa lần cuối bởi %1",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "Không có bài viết nào gần đây",
     "norecenttopics": "Không có chủ đề gần đây",
     "recentposts": "Bài Viết Gần Đây",
     "recentips": "Các IP đã Đăng nhập Gần đây",
     "moderator_tools": "Công cụ quản lí",
+    "status": "Trạng thái",
     "online": "Trực tuyến",
     "away": "Vắng mặt",
     "dnd": "Đừng làm phiền",
@@ -122,5 +130,7 @@
     "edited": "Đã cập nhật",
     "disabled": "Đã tắt",
     "select": "Chọn",
-    "user-search-prompt": "Nhập để tìm kiếm thành viên"
+    "user-search-prompt": "Nhập để tìm kiếm thành viên",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/vi/groups.json b/public/language/vi/groups.json
index 359333b498..5f8f980aeb 100644
--- a/public/language/vi/groups.json
+++ b/public/language/vi/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "Nhóm",
+    "members": "Members",
     "view_group": "Xem nhóm",
     "owner": "Người Sở Hữu Nhóm",
     "new_group": "Tạo nhóm mới",
diff --git a/public/language/vi/modules.json b/public/language/vi/modules.json
index f71323813d..7509e59864 100644
--- a/public/language/vi/modules.json
+++ b/public/language/vi/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "Trò chuyện với",
     "chat.placeholder": "Nhập tin nhắn trò chuyện tại đây, kéo và thả hình ảnh, nhấn enter để gửi",
+    "chat.placeholder.mobile": "Nhập tin nhắn trò chuyện tại đây",
     "chat.scroll-up-alert": "Bạn đang xem các tin nhắn cũ hơn, nhấp vào đây để chuyển đến tin nhắn gần đây nhất.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Trò chuyện với %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "Gửi",
     "chat.no_active": "Bạn không có cuộc trò chuyện đang hoạt động nào.",
     "chat.user_typing": "%1 đang nhập...",
@@ -42,6 +46,7 @@
     "composer.compose": "Soạn thảo",
     "composer.show_preview": "Hiện Xem trước",
     "composer.hide_preview": "Ẩn Xem trước",
+    "composer.help": "Trợ giúp",
     "composer.user_said_in": "%1 đã nói trong %2:",
     "composer.user_said": "%1 đã nói:",
     "composer.discard": "Bạn có chắc chắn hủy bỏ bài viết này?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Thời gian",
     "composer.cancel-scheduling": "Hủy Lập Lịch",
     "composer.set-schedule-date": "Đặt Ngày",
+    "composer.discard-all-drafts": "Hủy tất cả bản nháp",
+    "composer.no-drafts": "Bạn không có bản nháp nào",
+    "composer.discard-draft-confirm": "Bạn có muốn hủy bản nháp này không?",
     "bootbox.ok": "Đồng ý",
     "bootbox.cancel": "Huỷ bỏ",
     "bootbox.confirm": "Xác nhận",
@@ -77,6 +85,6 @@
     "thumbs.modal.no-thumbs": "Không tìm thấy hình mô tả.",
     "thumbs.modal.resize-note": "<strong>Ghi chú</strong>: Diễn đàn này cấu hình thay đổi kích thước hình mô tả chủ đề xuống chiều rộng tối đa là %1px",
     "thumbs.modal.add": "Thêm ảnh mô tả",
-    "thumbs.modal.remove": "Xóa ảnh mô tả",
-    "thumbs.modal.confirm-remove": "Bạn có chắc chắn muốn xóa hình mô tả này không?"
+    "thumbs.modal.remove": "Xóa hình thu nhỏ",
+    "thumbs.modal.confirm-remove": "Bạn có chắc chắn muốn xóa hình thu nhỏ này không?"
 }
\ No newline at end of file
diff --git a/public/language/vi/pages.json b/public/language/vi/pages.json
index fc1da7afaf..baa1b63e6b 100644
--- a/public/language/vi/pages.json
+++ b/public/language/vi/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "Chuyên Mục Đã Xem Của %1",
     "account/bookmarks": "Bài Đăng Được Đánh Dấu Trang Của %1",
     "account/settings": "Cài Đặt Người Dùng",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "Chủ đề đã được %1 xem",
     "account/ignored": "Các chủ đề bị bỏ qua bởi %1",
     "account/upvoted": "Bài đăng được %1 ủng hộ",
diff --git a/public/language/vi/post-queue.json b/public/language/vi/post-queue.json
index b25209cb00..7a0d48c31d 100644
--- a/public/language/vi/post-queue.json
+++ b/public/language/vi/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "Hàng Đợi Bài Đăng",
-	"description": "Không có bài viết nào trong hàng đợi bài viết. <br> Để bật tính năng này, hãy truy cập <a href=\"%1\">Cài Đặt &rarr; Bài Đăng &rarr; Hàng Đợi Bài Đăng</a> và bật <strong>Hàng Đợi Bài Đăng</strong>.",
+	"no-queued-posts": "Không có bài viết trong hàng đợi bài viết.",
+	"no-single-post": "Chủ đề hoặc bài đăng bạn đang tìm kiếm không còn trong hàng đợi. Nó có thể đã được phê duyệt hoặc xóa rồi.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "Người dùng",
+	"when": "When",
 	"category": "Chuyên mục",
 	"title": "Tiêu đề",
 	"content": "Nội dung",
@@ -19,6 +23,7 @@
 	"notify": "Thông báo",
 	"notify-user": "Thông Báo Người Dùng",
 	"confirm-reject": "Bạn có muốn từ chối bài viết này không?",
+	"confirm-remove": "Bạn có muốn xóa bài đăng này không?",
 	"bulk-actions": "Hành động số lượng lớn",
 	"accept-all": "Chấp nhận tất cả",
 	"accept-selected": "Chấp nhận đã chọn",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Bạn có muốn từ chối tất cả các bài viết?",
 	"reject-selected": "Từ chối đã chọn",
 	"reject-selected-confirm": "Bạn có muốn từ chối %1 bài viết đã chọn không?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Bạn có muốn xóa tất cả bài đăng không?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Bạn có muốn xóa %1 bài đăng đã chọn không?",
 	"bulk-accept-success": "%1 bài đăng được chấp nhận",
 	"bulk-reject-success": "%1 bài đăng bị từ chối"
 }
\ No newline at end of file
diff --git a/public/language/vi/recent.json b/public/language/vi/recent.json
index 49c9fb848a..cc742932fd 100644
--- a/public/language/vi/recent.json
+++ b/public/language/vi/recent.json
@@ -7,13 +7,5 @@
     "alltime": "Mọi Lúc",
     "no_recent_topics": "Không có chủ đề gần đây.",
     "no_popular_topics": "Không có chủ đề nào phổ biến.",
-    "there-is-a-new-topic": "Có chủ đề mới",
-    "there-is-a-new-topic-and-a-new-post": "Có chủ đề mới và bài viết mới",
-    "there-is-a-new-topic-and-new-posts": "Có 1 chủ đề mới và %1 bài viết mới.",
-    "there-are-new-topics": "Có %1 chủ đề mới.",
-    "there-are-new-topics-and-a-new-post": "Có %1 chủ đề mới và 1 bài viết mới.",
-    "there-are-new-topics-and-new-posts": "Có %1 chủ đề mới và %2 bài viết mới.",
-    "there-is-a-new-post": "Có bài viết mới",
-    "there-are-new-posts": "Có %1 bài viết mới.",
-    "click-here-to-reload": "Nhấn vào đây để tải lại."
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/vi/register.json b/public/language/vi/register.json
index d435c5fe67..717fea721d 100644
--- a/public/language/vi/register.json
+++ b/public/language/vi/register.json
@@ -1,5 +1,6 @@
 {
     "register": "Đăng ký",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "Hủy đăng ký",
     "help.email": "Mặc định, email của bạn sẽ bị ẩn không công khai.",
     "help.username_restrictions": "Một tên đăng nhập duy nhất giữa %1 và %2 ký tự. Người khác có thể nhắc đến bạn với @<span id='yourUsername'>tên đăng nhập</span>.",
diff --git a/public/language/vi/search.json b/public/language/vi/search.json
index de5d7dd641..76a36c1c79 100644
--- a/public/language/vi/search.json
+++ b/public/language/vi/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Nhập để tìm kiếm",
     "results_matching": "%1 kết quả khớp với \"%2\", (%3 giây)",
     "no-matches": "Không tìm thấy kết quả phù hợp",
     "advanced-search": "Tìm kiếm nâng cao",
     "in": "Trong",
-    "titles": "Tiêu đề",
-    "titles-posts": "Tiêu Đề và Bài Viết",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Danh mục",
+    "all-categories": "Tất cả danh mục",
+    "categories-x": "Danh mục: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Nhập một danh mục",
+    "tags": "Thẻ",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Nhập một thẻ",
     "match-words": "Khớp các từ",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "Tất cả",
     "any": "Bất kì",
     "posted-by": "Đăng bởi",
-    "in-categories": "Nằm trong chuyên mục",
+    "posted-by-usernames": "Đăng bởi: %1",
+    "type-a-username": "Nhập tên người dùng",
     "search-child-categories": "Tìm kiếm chuyên mục con",
     "has-tags": "Có thẻ bên trong",
     "reply-count": "Số lượt trả lời",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "Tối thiểu",
     "at-most": "Tối đa",
     "relevance": "Mức độ liên quan",
+    "time": "Thời gian",
     "post-time": "Thời gian đăng bài",
     "votes": "Phiếu bầu",
     "newer-than": "Mới hơn",
@@ -28,7 +48,22 @@
     "three-months": "Ba tháng",
     "six-months": "Sáu tháng",
     "one-year": "Một năm",
+    "time-newer-than-86400": "Thời gian: Mới hơn hôm qua",
+    "time-older-than-86400": "Thời gian: Cũ hơn hôm qua",
+    "time-newer-than-604800": "Thời gian: Mới hơn một tuần",
+    "time-older-than-604800": "Thời gian: Cũ hơn một tuần",
+    "time-newer-than-1209600": "Thời gian: Mới hơn hai tuần",
+    "time-older-than-1209600": "Thời gian: Cũ hơn hai tuần",
+    "time-newer-than-2592000": "Thời gian: Mới hơn một tháng",
+    "time-older-than-2592000": "Thời gian: Cũ hơn một tháng",
+    "time-newer-than-7776000": "Thời gian: Mới hơn ba tháng",
+    "time-older-than-7776000": "Thời gian: Cũ hơn ba tháng",
+    "time-newer-than-15552000": "Thời gian: Mới hơn sáu tháng",
+    "time-older-than-15552000": "Thời gian: Cũ hơn sáu tháng",
+    "time-newer-than-31104000": "Thời gian: Mới hơn một năm",
+    "time-older-than-31104000": "Thời gian: Cũ hơn một năm",
     "sort-by": "Sắp xếp theo",
+    "sort": "Sắp xếp",
     "last-reply-time": "Thời điểm trả lời lần cuối",
     "topic-title": "Tiêu đề chủ đề",
     "topic-votes": "Phiếu bầu chủ đề",
@@ -39,11 +74,36 @@
     "category": "Chuyên mục ",
     "descending": "Theo thứ tự giảm dần",
     "ascending": "Theo thứ tự tăng dần",
+    "sort-by-relevance-desc": "Sắp xếp theo: Mức độ liên quan giảm dần",
+    "sort-by-relevance-asc": "Sắp xếp theo: Mức độ liên quan tăng dần",
+    "sort-by-timestamp-desc": "Sắp xếp theo: Thời gian đăng giảm dần",
+    "sort-by-timestamp-asc": "Sắp xếp theo: Thời gian đăng tăng dần",
+    "sort-by-votes-desc": "Sắp xếp theo: Lượt bình chọn giảm dần",
+    "sort-by-votes-asc": "Sắp xếp theo: Lượt bình chọn tăng dần",
+    "sort-by-topic.lastposttime-desc": "Sắp xếp theo: Thời gian trả lời cuối cùng giảm dần",
+    "sort-by-topic.lastposttime-asc": "Sắp xếp theo: Thời gian trả lời cuối cùng tăng dần",
+    "sort-by-topic.title-desc": "Sắp xếp theo: Tên chủ đề giảm dần",
+    "sort-by-topic.title-asc": "Sắp xếp theo: Tên chủ đề tăng dần",
+    "sort-by-topic.postcount-desc": "Sắp xếp theo: Số phản hồi giảm dần",
+    "sort-by-topic.postcount-asc": "Sắp xếp theo: Số phản hồi tăng dần",
+    "sort-by-topic.viewcount-desc": "Sắp xếp theo: Số lượt xem giảm dần",
+    "sort-by-topic.viewcount-asc": "Sắp xếp theo: Số lượt xem tăng dần",
+    "sort-by-topic.votes-desc": "Sắp xếp theo: Bình chọn chủ đề giảm dần",
+    "sort-by-topic.votes-asc": "Sắp xếp theo: Bình chọn chủ đề tăng dần",
+    "sort-by-topic.timestamp-desc": "Sắp xếp theo: Ngày bắt đầu chủ đề giảm dần",
+    "sort-by-topic.timestamp-asc": "Sắp xếp theo: Ngày bắt đầu chủ đề tăng dần",
+    "sort-by-user.username-desc": "Sắp xếp theo: Tên đăng nhập giảm dần",
+    "sort-by-user.username-asc": "Sắp xếp theo: Tên đăng nhập tăng dần",
+    "sort-by-category.name-desc": "Sắp xếp theo: Danh mục giảm dần",
+    "sort-by-category.name-asc": "Sắp xếp theo: Danh mục tăng dần",
+    "save": "Lưu",
     "save-preferences": "Lưu tuỳ chọn",
     "clear-preferences": "Xoá tuỳ chọn",
     "search-preferences-saved": "Tìm kiếm tuỳ chọn đã lưu",
     "search-preferences-cleared": "Tìm kiếm tuỳ chọn đã xoá",
     "show-results-as": "Hiện thị kết quả theo",
+    "show-results-as-topics": "Hiển thị kết quả dưới dạng chủ đề",
+    "show-results-as-posts": "Hiển thị kết quả dưới dạng bài viết",
     "see-more-results": "Xem thêm kết quả (%1)",
     "search-in-category": "Tìm kiếm ở \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/vi/social.json b/public/language/vi/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/vi/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/vi/tags.json b/public/language/vi/tags.json
index 6d98a76ec4..9f9886bb55 100644
--- a/public/language/vi/tags.json
+++ b/public/language/vi/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "Tất cả các thẻ",
     "no_tag_topics": "Không có bài viết nào với thẻ này.",
+    "no-tags-found": "Không tìm thấy thẻ nào",
     "tags": "Thẻ",
     "enter_tags_here": "Nhập thẻ ở đây, mỗi thẻ phải có từ %1 tới %2 ký tự.",
     "enter_tags_here_short": "Nhập thẻ...",
diff --git a/public/language/vi/topic.json b/public/language/vi/topic.json
index c4f60fdaec..340f13bc97 100644
--- a/public/language/vi/topic.json
+++ b/public/language/vi/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "Sao chép IP",
     "ban-ip": "Cấm IP",
     "view-history": "Lịch sử chỉnh sửa",
-    "locked-by": "Bị khóa bởi",
-    "unlocked-by": "Được mở khóa bởi",
-    "pinned-by": "Được ghim bởi",
-    "unpinned-by": "Được bỏ ghim bởi",
-    "deleted-by": "Đã xóa bởi",
-    "restored-by": "Được khôi phục bởi",
-    "moved-from-by": "Đã chuyển từ %1 bởi",
-    "queued-by": "Bài đăng được xếp hàng chờ duyệt &rarr;",
-    "backlink": "Được giới thiệu bởi",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "Nhấn vào đây để trở lại bài viết đã đọc cuối cùng trong chủ đề này.",
     "flag-post": "Gắn cờ bài đăng này",
     "flag-user": "Gắn cờ người dùng này",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "Xóa hẳn chủ đề",
     "thread_tools.purge_confirm": "Bạn có muốn xóa hẳn chủ đề này?",
     "thread_tools.merge_topics": "Gộp chủ đề",
-    "thread_tools.merge": "Gộp",
+    "thread_tools.merge": "Gộp Chủ Đề",
     "topic_move_success": "Chủ đề này sẽ sớm được chuyển đến \"%1\". Nhấn vào đây để hoàn tác.",
     "topic_move_multiple_success": "Các chủ đề này sẽ sớm được chuyển đến \"%1\". Nhấn vào đây để hoàn tác.",
     "topic_move_all_success": "Tất cả các chủ đề sẽ sớm được chuyển đến \"%1\". Nhấn vào đây để hoàn tác.",
@@ -121,7 +135,7 @@
     "post_moved": "Đã chuyển bài gửi!",
     "fork_topic": "Tạo bản sao chủ đề",
     "enter-new-topic-title": "Nhập tiêu đề chủ đề mới",
-    "fork_topic_instruction": "Nhấp vào bài viết bạn muốn tách",
+    "fork_topic_instruction": "Nhấp vào bài đăng bạn muốn rẽ nhánh, nhập tiêu đề cho chủ đề mới và nhấp vào chủ đề rẽ nhánh",
     "fork_no_pids": "Chưa chọn bài gửi nào!",
     "no-posts-selected": "Không bài viết nào được chọn!",
     "x-posts-selected": "%1 bài viết được chọn",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "Tiêu đề mới cho chủ đề",
     "topic-id": "ID Chủ Đề",
     "move_posts_instruction": "Chọn bài đăng bạn muốn di chuyển, sau đó nhập ID chủ đề hoặc đi đến chủ đề mong muốn",
+    "move_topic_instruction": "Chọn danh mục nhắm đến và sau đó nhấp vào di chuyển",
     "change_owner_instruction": "Bấm vào bài viết bạn muốn chỉ định cho người dùng khác",
     "composer.title_placeholder": "Nhập tiêu đề chủ đề của bạn tại đây...",
     "composer.handle_placeholder": "Nhập tên/xử lý của bạn ở đây",
+    "composer.hide": "Ẩn",
     "composer.discard": "Huỷ bỏ",
     "composer.submit": "Gửi",
     "composer.additional-options": "Tùy chọn bổ sung",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Lên lịch",
     "composer.replying_to": "Đang trả lời %1",
     "composer.new_topic": "Chủ đề mới",
@@ -184,5 +201,7 @@
     "last-post": "Bài viết cuối cùng",
     "go-to-my-next-post": "Đi tới bài kế tiếp của tôi",
     "no-more-next-post": "Bạn không có bài viết nào khác trong chủ đề này",
-    "post-quick-reply": "Đăng trả lời nhanh"
+    "post-quick-reply": "Trả lời nhanh",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 chưa đọc"
 }
\ No newline at end of file
diff --git a/public/language/vi/user.json b/public/language/vi/user.json
index c7f22833e4..2cd6c7701c 100644
--- a/public/language/vi/user.json
+++ b/public/language/vi/user.json
@@ -18,7 +18,7 @@
     "delete_account": "Xóa Tài Khoản",
     "delete_account_as_admin": "Xóa <strong>Tài Khoản</strong>",
     "delete_content": "Xóa <strong>Nội Dung</strong> Tài Khoản",
-    "delete_all": "Xóa<strong>Tài Khoản</strong> và <strong>Nội Dung</strong>",
+    "delete_all": "Xóa <strong>Tài Khoản</strong> và <strong>Nội Dung</strong>",
     "delete_account_confirm": "Bạn có chắc chắn muốn ẩn danh bài đăng và xóa tài khoản của mình không?<br /><strong>Không thể hoàn tác hành động này và bạn sẽ không thể khôi phục dữ liệu của mình</strong><br /><br />Nhập mật khẩu của bạn để xác nhận rằng bạn muốn hủy tài khoản này.",
     "delete_this_account_confirm": "Bạn có chắc muốn xóa tài khoản này trong khi vẫn để lại nội dung của nó?<br /><strong>Hành động này không thể hoàn tác, các bài viết sẽ được ẩn danh và bạn không thể khôi phục các liên kết bài viết với tài khoản đã xóa</strong><br /><br />",
     "delete_account_content_confirm": "Bạn có chắc chắn muốn xóa nội dung của tài khoản này không (bài viết/chủ đề/tải lên)? <br /><strong>Không thể hoàn tác hành động này và bạn sẽ không thể khôi phục bất kỳ dữ liệu nào</strong><br /><br />",
@@ -43,6 +43,7 @@
     "followers": "Người theo dõi",
     "following": "Đang theo dõi",
     "blocks": "Khóa",
+    "blocked-users": "Người dùng bị chặn",
     "block_toggle": "Chuyển đổi khối",
     "block_user": "Khóa Người Dùng",
     "unblock_user": "Mở Khóa Người Dùng",
@@ -68,6 +69,7 @@
     "upload_new_picture": "Tải lên ảnh mới",
     "upload_new_picture_from_url": "Tải Lên Ảnh Mới Từ URL",
     "current_password": "Mật khẩu hiện tại",
+    "new_password": "Mật Khẩu Mới",
     "change_password": "Đổi Mật Khẩu",
     "change_password_error": "Mật khẩu không hợp lệ!",
     "change_password_error_wrong_current": "Mật khẩu hiện tại của bạn không đúng",
@@ -115,6 +117,8 @@
     "paginate_description": "Phân trang chủ đề và bài đăng thay vì sử dụng cuộn vô hạn",
     "topics_per_page": "Số Chủ Đề Mỗi Trang",
     "posts_per_page": "Số Bài Viết Mỗi Trang",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "Tối đa %1",
     "acp_language": "Ngôn ngữ trang quản trị",
     "notifications": "Thông báo",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "Đã lưu ghi chú quản lý",
     "info.moderation-note.add": "Thêm ghi chú",
     "sessions.description": "Trang này cho phép bạn xem bất kỳ phiên hoạt động nào trên diễn đàn này và thu hồi chúng nếu cần thiết. Bạn có thể thu hồi phiên của riêng mình bằng cách đăng xuất khỏi tài khoản của bạn.",
+    "revoke-session": "Thu Hồi Phiên",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "Quyền của bạn &amp; Bằng lòng",
     "consent.lead": "Diễn đàn cộng đồng này thu thập và xử lý thông tin cá nhân của bạn.",
     "consent.intro": "Chúng tôi dùng thông tin này cẩn thận để cá nhân hóa trải nghiệm của bạn, cũng như để liên kết các bài đăng bạn thực hiện với tài khoản người dùng của bạn. Bạn đã nhập tên người dùng và địa chỉ email khi đăng ký và cũng có thể hoàn tất hồ sơ bằng cách cung cấp thêm thông tin.<br /><br />Chúng tôi giữ thông tin này suốt vòng đời tài khoản của bạn và bạn có thể rút lại sự đồng ý bất cứ lúc nào bằng cách xóa tài khoản. Bạn có thể yêu cầu một bản sao đóng góp của bạn cho trang web này, ở trang Quyền &amp; Đồng ý<br /><br />Nếu bạn có câu hỏi hoặc thắc mắc, vui lòng liên hệ với nhóm quản trị diễn đàn.",
diff --git a/public/language/vi/users.json b/public/language/vi/users.json
index b5caadd441..328894bce0 100644
--- a/public/language/vi/users.json
+++ b/public/language/vi/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "Thành viên mới nhất",
     "top_posters": "Thành viên đăng bài nhiều nhất",
     "most_reputation": "Nhiều Uy Tín",
     "most_flags": "Gắn cờ nhiều",
     "search": "Tìm kiếm",
     "enter_username": "Nhập tên đăng nhập để tìm",
-    "search-user-for-chat": "Tìm kiếm người dùng để bắt đầu trò chuyện",
+    "search-user-for-chat": "Tìm kiếm người dùng để bắt đầu trò chuyện:",
     "load_more": "Tải thêm",
     "users-found-search-took": "Đã tìm thấy %1 thành viên! Tìm kiếm mất %2 giây.",
     "filter-by": "Lọc Bởi",
diff --git a/public/language/zh-CN/admin/admin.json b/public/language/zh-CN/admin/admin.json
index 57b7a1fc3a..4ea1bd6370 100644
--- a/public/language/zh-CN/admin/admin.json
+++ b/public/language/zh-CN/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB 管理员控制面板",
 	"settings-header-contents": "内容",
-	"changes-saved": "更改已保存",
-	"changes-saved-message": "您对 NodeBB 配置的更改已保存。",
 	"changes-not-saved": "更改未保存",
 	"changes-not-saved-message": "NodeBB 在保存您的更改时遇到了问题。 (%1)"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/admin/advanced/cache.json b/public/language/zh-CN/admin/advanced/cache.json
index e829207158..4f9c161549 100644
--- a/public/language/zh-CN/admin/advanced/cache.json
+++ b/public/language/zh-CN/admin/advanced/cache.json
@@ -1,8 +1,8 @@
 {
 	"post-cache": "帖子缓存",
-	"group-cache": "Group Cache",
-	"local-cache": "Local Cache",
-	"object-cache": "Object Cache",
+	"group-cache": "用户组缓存",
+	"local-cache": "本地缓存",
+	"object-cache": "对象缓存",
 	"percent-full": "%1% 容量",
 	"post-cache-size": "帖子缓存大小",
 	"items-in-cache": "缓存中的条目数量"
diff --git a/public/language/zh-CN/admin/advanced/events.json b/public/language/zh-CN/admin/advanced/events.json
index 0ca510437f..5067f8925e 100644
--- a/public/language/zh-CN/admin/advanced/events.json
+++ b/public/language/zh-CN/admin/advanced/events.json
@@ -3,7 +3,7 @@
 	"no-events": "暂无事件",
 	"control-panel": "事件控制面板",
 	"delete-events": "删除事件",
-	"confirm-delete-all-events": "您确定要删除所有记录的事件吗?",
+	"confirm-delete-all-events": "您确定您要删除所有记录的事件吗?",
 	"filters": "过滤器",
 	"filters-apply": "应用过滤器",
 	"filter-type": "事件类型",
diff --git a/public/language/zh-CN/admin/appearance/customise.json b/public/language/zh-CN/admin/appearance/customise.json
index d4fbc962e8..f3c6cf8b91 100644
--- a/public/language/zh-CN/admin/appearance/customise.json
+++ b/public/language/zh-CN/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "自定义 CSS/LESS",
-	"custom-css.description": "在这里输入您想应用于所有其他风格的 CSS/LESS,",
-	"custom-css.enable": "启用自定义 CSS/LESS",
+	"custom-css": "自定义 CSS/SASS",
+	"custom-css.description": "在此输入您的 CSS/LESS 声明,这些声明将在所有其他样式之后应用。",
+	"custom-css.enable": "启用自定义 CSS/SASS",
 
 	"custom-js": "自定义 Javascript",
 	"custom-js.description": "在这里输入您想在页面加载完成后执行的 Javascript 代码。",
diff --git a/public/language/zh-CN/admin/appearance/themes.json b/public/language/zh-CN/admin/appearance/themes.json
index ae8b579b9a..e50ef99c18 100644
--- a/public/language/zh-CN/admin/appearance/themes.json
+++ b/public/language/zh-CN/admin/appearance/themes.json
@@ -7,5 +7,5 @@
     "revert-confirm": "确认恢复到 NodeBB 默认主题?",
     "theme-changed": "主题已更改",
     "revert-success": "已成功恢复到 NodeBB 默认主题。",
-    "restart-to-activate": "请部署并重启您的 NodeBB 以完全激活主题。"
+    "restart-to-activate": "请部署并重启您的 NodeBB 以完全激活此主题。"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/admin/dashboard.json b/public/language/zh-CN/admin/dashboard.json
index e637d4bd76..71c2747ea3 100644
--- a/public/language/zh-CN/admin/dashboard.json
+++ b/public/language/zh-CN/admin/dashboard.json
@@ -26,7 +26,7 @@
 	"updates": "更新",
 	"running-version": "您正在运行 <strong>NodeBB v<span id=\"version\">%1</span> </strong>.",
 	"keep-updated": "请确保您已及时更新 NodeBB 以获得最新的安全补丁与 Bug 修复。",
-	"up-to-date": "<p>正在使用 <strong>最新版本</strong> <i class=\"fa fa-check\"></i></p>",
+	"up-to-date": "<p>您正在使用 <strong>最新版本</strong> <i class=\"fa fa-check\"></i></p>",
 	"upgrade-available": "<p>新的版本 (v%1) 已经发布。建议您 <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">升级 NodeBB</a>。</p>",
 	"prerelease-upgrade-available": "<p>这是一个已经过期的预发布版本的 NodeBB,新的版本 (v%1) 已经发布。建议您 <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">升级 NodeBB</a>。</p>",
 	"prerelease-warning": "<p>正在使用<strong>测试版</strong> NodeBB。可能会出现意外的 Bug。<i class=\"fa fa-exclamation-triangle\"></i></p>",
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "返回控制面板",
 	"details.no-users": "选定的时间内没有用户加入",
 	"details.no-topics": "选定的时间内没有发布主题",
-	"details.no-searches": "目前还没有进行任何搜索",
+	"details.no-searches": "在选择的时间范围内还没有进行任何搜索",
 	"details.no-logins": "选定的时间内没有登录记录",
-	"details.logins-static": "NodeBB只保留%1天登录数据,下列表格显示最近活动的登录。",
-	"details.logins-login-time": "登录时间"
+	"details.logins-static": "NodeBB 只保留 %1 天会话数据,下列表格显示最近活动的会话。",
+	"details.logins-login-time": "登录时间",
+	"start": "开始",
+	"end": "结束",
+	"filter": "过滤器"
 }
diff --git a/public/language/zh-CN/admin/development/info.json b/public/language/zh-CN/admin/development/info.json
index 8d4e8b4678..00ceddc309 100644
--- a/public/language/zh-CN/admin/development/info.json
+++ b/public/language/zh-CN/admin/development/info.json
@@ -1,5 +1,5 @@
 {
-	"you-are-on": "你正使用 <strong>%1:%2</strong>",
+	"you-are-on": "您位于 <strong>%1:%2</strong>",
 	"ip": "IP <strong>%1</strong>",
 	"nodes-responded": "%1个节点在%2ms内响应!",
 	"host": "主机",
@@ -8,11 +8,11 @@
 	"nodejs": "nodejs",
 	"online": "在线",
 	"git": "git",
-	"process-memory": "process memory",
-	"system-memory": "system memory",
-	"used-memory-process": "Used memory by process",
-	"used-memory-os": "Used system memory",
-	"total-memory-os": "Total system memory",
+	"process-memory": "进程内存",
+	"system-memory": "系统内存",
+	"used-memory-process": "进程使用的内存",
+	"used-memory-os": "已使用系统内存",
+	"total-memory-os": "全部系统内存",
 	"load": "系统负载",
 	"cpu-usage": "CPU 使用情况",
 	"uptime": "运行时间",
diff --git a/public/language/zh-CN/admin/extend/plugins.json b/public/language/zh-CN/admin/extend/plugins.json
index 27e29a407f..4ce9db2fd8 100644
--- a/public/language/zh-CN/admin/extend/plugins.json
+++ b/public/language/zh-CN/admin/extend/plugins.json
@@ -14,7 +14,7 @@
 	"reorder-plugins": "重新排序插件",
 	"order-active": "排序生效插件",
 	"dev-interested": "有兴趣为 NodeBB 开发插件?",
-	"docs-info": "有关插件创作的完整文档可以在 <a target=\"_blank\" href=\"https://docs.nodebb-cn.org/development\">NodeBB 文档</a>中找到。",
+	"docs-info": "有关插件创作的完整文档可以在 <a target=\"_blank\" href=\"https://docs.nodebb.org/development/plugins/\">NodeBB 文档</a>中找到",
 
 	"order.description": "部分插件需要在其它插件启用之后才能完美运作。",
 	"order.explanation": "插件将按照以下顺序载入,从上至下。",
diff --git a/public/language/zh-CN/admin/extend/widgets.json b/public/language/zh-CN/admin/extend/widgets.json
index 968ad499c4..e09f2488fd 100644
--- a/public/language/zh-CN/admin/extend/widgets.json
+++ b/public/language/zh-CN/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "无",
 	"container.well": "Well",
 	"container.jumbotron": "超大屏幕",
-	"container.panel": "面板",
-	"container.panel-header": "面板标题",
-	"container.panel-body": "面板内容",
+	"container.card": "卡",
+	"container.card-header": "卡标题",
+	"container.card-body": "卡内容",
 	"container.alert": "警报",
 
 	"alert.confirm-delete": "确认删除此窗口部件?",
diff --git a/public/language/zh-CN/admin/manage/categories.json b/public/language/zh-CN/admin/manage/categories.json
index aefa5a89b2..07eb9f30ef 100644
--- a/public/language/zh-CN/admin/manage/categories.json
+++ b/public/language/zh-CN/admin/manage/categories.json
@@ -19,7 +19,7 @@
 	"category-image": "版块图片",
 	"parent-category": "父版块",
 	"optional-parent-category": "(可选)父版块",
-	"top-level": "Top Level",
+	"top-level": "顶层",
 	"parent-category-none": "(无)",
 	"copy-parent": "复制 父类",
 	"copy-settings": "复制设置",
@@ -38,7 +38,7 @@
 	"select-category": "选择版块",
 	"set-parent-category": "设置父版块",
 
-	"privileges.description": "您可以在此面板中为站点的某些部分配置访问控制权。可以分别为每个用户或每个用户组授予权限。从下方的下拉列表中选择作用域名。",
+	"privileges.description": "您可以在此区域中为站点的某些部分配置访问控制权。可以分别为每个用户或每个用户组授予权限。从下方的下拉列表中选择作用域名。",
 	"privileges.category-selector": "为该版块配置权限:",
 	"privileges.warning": "<strong>注意</strong>:权限设置会立即生效。 调整这些设置后,无需保存。",
 	"privileges.section-viewing": "查看权限",
@@ -50,8 +50,8 @@
 	"privileges.no-users": "此版块中没有用户特定的权限。",
 	"privileges.section-group": "群组",
 	"privileges.group-private": "这个群组是私密的",
-  	"privileges.inheritance-exception": "This group does not inherit privileges from registered-users group",
-  	"privileges.banned-user-inheritance": "Banned users inherit privileges from banned-users group",
+  	"privileges.inheritance-exception": "此用户组不从 registered-users 用户组重继承权限",
+  	"privileges.banned-user-inheritance": "被封禁的用户从 banned-users 用户组中继承权限",
 	"privileges.search-group": "添加群组",
 	"privileges.copy-to-children": "复制到子版块",
 	"privileges.copy-from-category": "从版块复制",
diff --git a/public/language/zh-CN/admin/manage/digest.json b/public/language/zh-CN/admin/manage/digest.json
index 3621e92cff..5af773f596 100644
--- a/public/language/zh-CN/admin/manage/digest.json
+++ b/public/language/zh-CN/admin/manage/digest.json
@@ -13,7 +13,7 @@
 	"resent-single": "摘要重发操作完成",
 	"resent-day": "已发送每日摘要",
 	"resent-week": "已发送每周摘要",
-	"resent-biweek": "Bi-Weekly digest resent",
+	"resent-biweek": "两周摘要已重新发送",
 	"resent-month": "已发送每月摘要",
 	"null": "从不",
 	"manual-run": "手动运行摘要:",
diff --git a/public/language/zh-CN/admin/manage/groups.json b/public/language/zh-CN/admin/manage/groups.json
index 47d484a769..da975f1a5f 100644
--- a/public/language/zh-CN/admin/manage/groups.json
+++ b/public/language/zh-CN/admin/manage/groups.json
@@ -17,7 +17,7 @@
 	"create-button": "创建",
 
 	"alerts.create-failure": "<strong>哦不!</strong><p>创建您的群组时出现问题。 请稍后再试!</p>",
-	"alerts.confirm-delete": "您确定要删除此群组吗?",
+	"alerts.confirm-delete": "您确定您要删除此用户组吗?",
 
 	"edit.name": "名称",
 	"edit.description": "描述",
@@ -39,6 +39,5 @@
 	"revert": "重置",
 
 	"edit.no-users-found": "没有找到用户",
-	"edit.confirm-remove-user": "确认删除此用户吗?",
-	"edit.save-success": "设置已保存!"
+	"edit.confirm-remove-user": "确认删除此用户吗?"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/admin/manage/privileges.json b/public/language/zh-CN/admin/manage/privileges.json
index 6d8ecd6549..84b5770ddd 100644
--- a/public/language/zh-CN/admin/manage/privileges.json
+++ b/public/language/zh-CN/admin/manage/privileges.json
@@ -41,24 +41,23 @@
 	"admin-categories": "版块",
 	"admin-privileges": "权限",
 	"admin-users": "用户",
-	"admin-admins-mods": "Admins &amp; Mods",
+	"admin-admins-mods": "管理员和版主",
 	"admin-groups": "群组",
 	"admin-tags": "标签",
 	"admin-settings": "设置",
 
 	"alert.confirm-moderate": "<strong>您确定要将审核权限授予此用户组吗?</strong>此用户组是公开的,任何用户都可以随意加入。",
-	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
+	"alert.confirm-admins-mods": "<strong>您确定您想要给予“管理员和版主”权限给此用户/用户组吗?</strong>有此权限的用户能够让其他用户升职或降职到特权位置,<em>包括超级管理员</em>",
 	"alert.confirm-save": "请验证您保存这些权限的目的",
-	"alert.saved": "权限修改已保存并应用",
 	"alert.confirm-discard": "您确定要取消权限修改吗?",
 	"alert.discarded": "权限修改已被丢弃",
-	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
-	"alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's set of <strong>%1</strong> to <strong>all categories</strong>?",
-	"alert.confirm-copyToChildren": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all descendant (child) categories</strong>?",
-	"alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's set of <strong>%1</strong> to <strong>all descendant (child) categories</strong>?",
+	"alert.confirm-copyToAll": "您确定您要将此设置<strong>%1</strong>应用到<strong>全部版块</strong>?",
+	"alert.confirm-copyToAllGroup": "您确定您要将此用户组的设置<strong>%1</strong>应用到<strong>全部版块</strong>?",
+	"alert.confirm-copyToChildren": "您确定您要将此设置<strong>%1</strong>应用到<strong>全部后代(子)版块</strong>?",
+	"alert.confirm-copyToChildrenGroup": "您确定您要将此用户组的设置<strong>%1</strong>应用到<strong>全部后代(子)版块</strong>?",
 	"alert.no-undo": "此操作无法撤消。",
 	"alert.admin-warning": "管理员隐性获得全部权限",
   	"alert.copyPrivilegesFrom-title": "选择一个用于复制的版块",
-  	"alert.copyPrivilegesFrom-warning": "This will copy <strong>%1</strong> from the selected category.",
-  	"alert.copyPrivilegesFromGroup-warning": "This will copy this group's set of <strong>%1</strong> from the selected category."
+  	"alert.copyPrivilegesFrom-warning": "这会从选择的版块中复制 <strong>%1</strong>。",
+  	"alert.copyPrivilegesFromGroup-warning": "这会从选择的版块复制到此用户组的设置<strong>%1</strong>。"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/admin/manage/registration.json b/public/language/zh-CN/admin/manage/registration.json
index fa2e26c5be..ab3440276f 100644
--- a/public/language/zh-CN/admin/manage/registration.json
+++ b/public/language/zh-CN/admin/manage/registration.json
@@ -11,7 +11,7 @@
 	"list.ip-spam": "频率:%1 显示: %2",
 
 	"invitations": "邀请",
-	"invitations.description": "下面列出了所有已发送的邀请。您可以使用 Ctrl+F 快捷键搜索列表中的邮箱地址或用户名。<br><br>如果用户接受了邀请,他的用户名将会被显示在邮箱右边。",
+	"invitations.description": "下面列出了所有已发送的邀请。您可以使用 Ctrl+F 快捷键搜索列表中的邮箱或用户名。<br><br>如果用户接受了邀请,他的用户名将会被显示在邮箱右边。",
 	"invitations.inviter-username": "邀请人用户名",
 	"invitations.invitee-email": "受邀请的电子邮箱",
 	"invitations.invitee-username": "受邀请的用户名(如果已经注册)",
diff --git a/public/language/zh-CN/admin/manage/users.json b/public/language/zh-CN/admin/manage/users.json
index 49b2421d80..3b47528c38 100644
--- a/public/language/zh-CN/admin/manage/users.json
+++ b/public/language/zh-CN/admin/manage/users.json
@@ -10,7 +10,7 @@
 	"ban": "封禁用户",
 	"temp-ban": "暂时封禁用户",
 	"unban": "解禁用户",
-	"reset-lockout": "重设闭锁",
+	"reset-lockout": "重设锁定",
 	"reset-flags": "重设举报",
 	"delete": "删除<strong>用户</strong>",
 	"delete-content": "删除用户内容",
@@ -31,8 +31,8 @@
 	"250-per-page": "每页250",
 	"500-per-page": "每页500",
 
-	"search.uid": "通过用户ID",
-	"search.uid-placeholder": "搜索用户ID",
+	"search.uid": "通过用户 ID",
+	"search.uid-placeholder": "输入用户 ID 以搜索",
 	"search.username": "通过用户名",
 	"search.username-placeholder": "输入您想查询的用户名",
 	"search.email": "通过邮箱",
@@ -48,7 +48,7 @@
 	"users.uid": "UID",
 	"users.username": "用户名",
 	"users.email": "电子邮件",
-	"users.no-email": "(no email)",
+	"users.no-email": "(没有邮箱)",
 	"users.ip": "IP",
 	"users.postcount": "发帖数",
 	"users.reputation": "声望",
@@ -64,12 +64,12 @@
 	"create.password-confirm": "确认密码",
 
 	"temp-ban.length": "时长",
-	"temp-ban.reason": "理由<span class=\"text-muted\">(可选)</span>",
+	"temp-ban.reason": "理由<span class=\"text-muted\">(可选)</span> ",
 	"temp-ban.hours": "小时",
 	"temp-ban.days": "天",
 	"temp-ban.explanation": "输入封禁时长。提示,时长为0视为永久封禁。",
 
-	"alerts.confirm-ban": "您确定要<strong>永久</strong>封禁该用户吗?",
+	"alerts.confirm-ban": "您真的想要<strong>永久</strong>封禁该用户吗?",
 	"alerts.confirm-ban-multi": "您确定要<strong>永久</strong>封禁这些用户吗?",
 	"alerts.ban-success": "用户已封禁!",
 	"alerts.button-ban-x": "封禁 %1 名用户",
@@ -77,21 +77,21 @@
 	"alerts.lockout-reset-success": "锁定已重置!",
 	"alerts.flag-reset-success": "举报已重置!",
 	"alerts.no-remove-yourself-admin": "您无法撤销自己的管理员身份!",
-	"alerts.make-admin-success": "该用户已成为管理员",
-	"alerts.confirm-remove-admin": "您确定要删除该管理员?",
-	"alerts.remove-admin-success": " 该用户不再是管理员",
-	"alerts.make-global-mod-success": " 该用户已成为管理员",
-	"alerts.confirm-remove-global-mod": "您确定要删除该全局版主?",
-	"alerts.remove-global-mod-success": "该用户已不再是管理员",
-	"alerts.make-moderator-success": " 该用户已成为管理员",
-	"alerts.confirm-remove-moderator": "您确定要删除该版主?",
-	"alerts.remove-moderator-success": "该用户已不再是管理员",
-	"alerts.confirm-validate-email": "您确定要验证这些用户的邮箱地址吗?",
+	"alerts.make-admin-success": "此用户已成为管理员",
+	"alerts.confirm-remove-admin": "您确定要删除此管理员?",
+	"alerts.remove-admin-success": "该用户不再是管理员",
+	"alerts.make-global-mod-success": "该用户已成为全局版主",
+	"alerts.confirm-remove-global-mod": "您真的想要删除此全局版主?",
+	"alerts.remove-global-mod-success": "此用户已不再是全局版主。",
+	"alerts.make-moderator-success": "该用户已成为全局版主",
+	"alerts.confirm-remove-moderator": "您真的想要删除此版主?",
+	"alerts.remove-moderator-success": "此用户已不再是版主。",
+	"alerts.confirm-validate-email": "您确定要认可这些用户的邮箱地址吗?",
 	"alerts.confirm-force-password-reset": "你确定您想要向这个(这些)用户强制密码重置并退出吗?",
 	"alerts.validate-email-success": "电子邮箱已验证",
 	"alerts.validate-force-password-reset-success": "用户密码已经被重置,现存的会话已经被移除",
 	"alerts.password-reset-confirm": "您确定要向这些用户发送密码重置邮件吗?",
-	"alerts.password-reset-email-sent": "Password reset email sent.",
+	"alerts.password-reset-email-sent": "密码重置邮件已发送",
 	"alerts.confirm-delete": "<strong>警告!</strong><p>您确定要删除<strong>这些用户</strong>吗?</p><p>该操作不可逆转!该操作只会删除用户账号,他们的帖子与主题仍会保留。</p>",
 	"alerts.delete-success": "用户已删除!",
 	"alerts.confirm-delete-content": "<strong>警告!</strong><p>您确定要删除这些用户<strong>内容</strong>吗?</p><p>该操作不可逆转!用户账号会被保留,但是用户的帖子和主题将会被删除。</p>",
@@ -107,6 +107,6 @@
 	"alerts.prompt-email": "邮件:",
 	"alerts.email-sent-to": "已发送邀请给 %1",
 	"alerts.x-users-found": "找到 %1 位用户(耗时 %2 秒)",
-	"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
+	"export-users-started": "导出用户为 csv,这可能需要一些时间。当导出完成时你会收到通知。",
 	"export-users-completed": "用户列表已被导出为 CSV 文件,点击以下载。"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/admin/menu.json b/public/language/zh-CN/admin/menu.json
index 2e456615c0..f16645b71d 100644
--- a/public/language/zh-CN/admin/menu.json
+++ b/public/language/zh-CN/admin/menu.json
@@ -4,7 +4,7 @@
 	"dashboard/logins": "登录",
 	"dashboard/users": "用户",
 	"dashboard/topics": "主题",
-	"dashboard/searches": "Searches",
+	"dashboard/searches": "搜索",
 	"section-general": "基本",
 
 	"section-manage": "管理",
@@ -14,7 +14,7 @@
 	"manage/users": "用户",
 	"manage/admins-mods": "权限分配",
 	"manage/registration": "注册申请",
-	"manage/post-queue": "提交列表",
+	"manage/post-queue": "发帖队列",
 	"manage/groups": "群组",
 	"manage/ip-blacklist": "IP 黑名单",
 	"manage/uploads": "上传",
diff --git a/public/language/zh-CN/admin/settings/advanced.json b/public/language/zh-CN/admin/settings/advanced.json
index 45a12d552a..56e2b49c18 100644
--- a/public/language/zh-CN/admin/settings/advanced.json
+++ b/public/language/zh-CN/admin/settings/advanced.json
@@ -3,7 +3,7 @@
 	"maintenance-mode.help": "当论坛处在维护模式时,所有请求将被重定向到一个静态页面。管理员不受重定向限制,并可正常访问站点。",
 	"maintenance-mode.status": "维护模式状态码",
 	"maintenance-mode.message": "维护消息",
-	"maintenance-mode.groups-exempt-from-maintenance-mode": "Select groups that should be exempt from maintenance mode",
+	"maintenance-mode.groups-exempt-from-maintenance-mode": "选择从维护模式中豁免的用户组",
 	"headers": "标题",
 	"headers.allow-from": "设置 ALLOW-FROM 来放置 NodeBB 于 iFrame 中",
 	"headers.csp-frame-ancestors": "设置 Content-Security-Policy frame-ancestors 响应头来将 NodeBB 置于 iFrame 中",
@@ -17,11 +17,11 @@
 	"headers.acam": "Access-Control-Allow-Methods",
 	"headers.acah": "Access-Control-Allow-Headers",
 	"headers.coep": "Cross-Origin-Embedder-Policy",
-	"headers.coep-help": "When enabled (default), will set the header to <code>require-corp</code>",
+	"headers.coep-help": "启用时(默认),将设置这个标头为 <code>require-corp</code>",
 	"headers.coop": "Cross-Origin-Opener-Policy",
 	"headers.corp": "Cross-Origin-Resource-Policy",
 	"headers.permissions-policy": "Permissions-Policy",
-	"headers.permissions-policy-help": "Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see <a href=\"https://github.com/w3c/webappsec-permissions-policy/blob/main/permissions-policy-explainer.md\">this</a> for more info.",
+	"headers.permissions-policy-help": "可以设置 Permissions-Policy 标头,例如  \"geolocation=*, camera=()\",更多信息见<a href=\"https://github.com/w3c/webappsec-permissions-policy/blob/main/permissions-policy-explainer.md\">此链接</a>",
 	"hsts": "严格安全传输(HSTS)",
 	"hsts.enabled": "启用HSTS(推荐)",
 	"hsts.maxAge": "HSTS Max Age",
@@ -43,8 +43,8 @@
 
 	"analytics.settings": "分析设置",
 	"analytics.max-cache": "分析缓存最大值",
-	"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)",
+	"analytics.max-cache-help": "在大流量的服务器中,如果同时活跃的用户比这个缓存最大值要多,缓存可能会被持续耗尽。(需要重新启动)",
 	"compression.settings": "压缩设置",
 	"compression.enable": "启用压缩",
-	"compression.help": "This setting enables gzip compression. For a high-traffic website in production, the best way to put compression in place is to implement it at a reverse proxy level. You can enable it here for testing purposes."
+	"compression.help": "此设置启用 gzip 压缩。对大流量的生产环境网站,最佳的启用压缩的方法是在反向代理中实现。您可以出于测试目的启用这个设置。"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/admin/settings/api.json b/public/language/zh-CN/admin/settings/api.json
index 0075718d68..8458b5afad 100644
--- a/public/language/zh-CN/admin/settings/api.json
+++ b/public/language/zh-CN/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "用户ID",
 	"uid-help-text": "指定要与此令牌关联的用户ID。如果用户ID是 <code>0</code>, 它将被实危 <em>最高</em> 令牌,可以通过 <code>_uid</code> 参数假定其他用户的身份",
 	"description": "说明",
+	"last-seen-ago": "最后一次使用<span class=\"timeago\" title=\"%1\"></span>",
+	"last-seen-on": "最后一次使用于<span class=\"timeago\" title=\"%1\"></span>",
+	"last-seen-never": "从未被使用过的键值",
 	"no-description": "未指定说明。",
 	"token-on-save": "保存表单后将生成令牌"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/admin/settings/email.json b/public/language/zh-CN/admin/settings/email.json
index 4d6570a579..96eac85cae 100644
--- a/public/language/zh-CN/admin/settings/email.json
+++ b/public/language/zh-CN/admin/settings/email.json
@@ -5,8 +5,8 @@
 	"from": "发送者",
 	"from-help": "用于邮件中显示的发送者",
 
-	"confirmation-settings": "Confirmation",
-	"confirmation.expiry": "Hours to keep email confirmation link valid",
+	"confirmation-settings": "确认",
+	"confirmation.expiry": "验证邮件链接有效的小时数",
 
 	"smtp-transport": "SMTP 通信",
 	"smtp-transport.enabled": "启用 SMTP 通信",
@@ -14,9 +14,9 @@
 	"smtp-transport.service": "选择服务",
 	"smtp-transport.service-custom": "自定义",
 	"smtp-transport.service-help": "Select a service name above in order to use the known information about it. Alternatively, select &quot;Custom Service&quot; and enter the details below.",
-	"smtp-transport.gmail-warning1": "If you are using GMail as your email provider, you will have to generate an &quot;App Password&quot; in order for NodeBB to authenticate successfully. You can generate one at the <a href=\"https://myaccount.google.com/apppasswords\">App Passwords <i class=\"fa fa-external-link\"></i></a> page.",
-	"smtp-transport.gmail-warning2": "For more information about this workaround, <a href=\"https://nodemailer.com/usage/using-gmail/\">please consult this NodeMailer article <i class=\"fa fa-external-link\"></i></a> on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"../extend/plugins\">Browse available plugins here</a>.",
-	"smtp-transport.auto-enable-toast": "It looks like you&apos;re configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.",
+	"smtp-transport.gmail-warning1": "如果您使用 GMail 作为您的邮件提供商,您需要生成一个“App 密码”让 NodeBB 可以正常鉴权。您可以在<a href=\"https://myaccount.google.com/apppasswords\">App 密码<i class=\"fa fa-external-link\"></i></a>页生成一个。",
+	"smtp-transport.gmail-warning2": "对此替代办法的更多信息,请查阅关于此问题的<a href=\"https://nodemailer.com/usage/using-gmail/\">NodeMailer 文章<i class=\"fa fa-external-link\"></i></a>。一个替代方法可能是使用一种第三方的邮件插件,例如 SendGrid,Mailgun,等等。<a href=\"../extend/plugins\">在此浏览可用的插件</a>。",
+	"smtp-transport.auto-enable-toast": "您似乎在配置一个 SMTP 通信。我们为您启用了 “SMTP 通信” 选项。",
 	"smtp-transport.host": "SMTP 主机名",
 	"smtp-transport.port": "SMTP 端口",
 	"smtp-transport.security": "连接安全设置",
@@ -45,7 +45,7 @@
 	"require-email-address-warning": "默认情况下,用户可以通过将该字段留空来选择不输入电子邮件地址。启用此选项意味着他们必须输入电子邮件地址才能继续注册。<strong>它不能确保用户输入真实的电子邮件地址,甚至也不能确保他们拥有该地址。</strong>",
 	"send-validation-email": "添加或更改电子邮件时发送验证电子邮件",
 	"include-unverified-emails": "向尚未明验证其电子邮箱的人发送电子邮件",
-	"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> &ndash; sending emails to unverified addresses may be a violation of regional anti-spam laws.",
+	"include-unverified-warning": "默认情况下,账号有邮件地址关联的用户是已核实的用户,但有些情况下不是这样(例如,单点登录,遗留用户等等)。<strong>您自行承担启用此设置的风险</strong>——发送邮件给未核实的用户可能会违反地区性的反垃圾邮件法律。",
 	"prompt": "提示用户输入或验证他们的电子邮箱地址",
 	"prompt-help": "如果用户没有设置电子邮箱,或者他们的电子邮件未被验证,页面上将会显示警告。",
 	"sendEmailToBanned": "即使用户已被封禁也发送电子邮件"
diff --git a/public/language/zh-CN/admin/settings/general.json b/public/language/zh-CN/admin/settings/general.json
index 0d85bff4bb..ceb249179d 100644
--- a/public/language/zh-CN/admin/settings/general.json
+++ b/public/language/zh-CN/admin/settings/general.json
@@ -36,15 +36,15 @@
 	"outgoing-links": "站外链接",
 	"outgoing-links.warning-page": "使用站外链接警告页",
 	"search": "搜索",
-	"search-default-in": "Search In",
-	"search-default-in-quick": "Quick Search In",
+	"search-default-in": "在此搜索",
+	"search-default-in-quick": "在此快速搜索",
 	"search-default-sort-by": "排序",
 	"outgoing-links.whitelist": "添加域名到白名单以绕过警告页面",
 	"site-colors": "站点颜色元数据",
 	"theme-color": "主题色",
 	"background-color": "背景色",
 	"background-color-help": "当网站安装为 PWA 时用于启动屏幕背景的颜色",
-	"undo-timeout": "Undo Timeout",
+	"undo-timeout": "撤销超时",
 	"undo-timeout-help": "部分操作,例如移动主题,将允许版主在一定时间内撤销其操作。设置为 0 可完全禁用撤消。",
 	"topic-tools": "主题工具"
 }
diff --git a/public/language/zh-CN/admin/settings/group.json b/public/language/zh-CN/admin/settings/group.json
index aa4cc8a2d8..b25593e3a4 100644
--- a/public/language/zh-CN/admin/settings/group.json
+++ b/public/language/zh-CN/admin/settings/group.json
@@ -4,7 +4,7 @@
 	"private-groups.help": "启用此选项后,加入用户组需要群组所有者审批<em>(默认启用)</em>。",
 	"private-groups.warning": "<strong>注意!</strong>如果这个选项未启用并且你有私有群组,那么你的群组将变为公共的。",
 	"allow-multiple-badges": "允许多种徽章",
-	"allow-multiple-badges-help": "启用此选项后,用户可以选择显示多个群组徽章,需要主题支持。",
+	"allow-multiple-badges-help": "启用此选项后,用户可以选择显示多个用户组徽章,需要主题支持。",
 	"max-name-length": "群组名字的最大长度",
 	"max-title-length": "群组标题最大长度",
 	"cover-image": "群组封面图片",
diff --git a/public/language/zh-CN/admin/settings/navigation.json b/public/language/zh-CN/admin/settings/navigation.json
index 64a218391a..1aa63c32a5 100644
--- a/public/language/zh-CN/admin/settings/navigation.json
+++ b/public/language/zh-CN/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "群组:",
 	"open-new-window": "在新窗口中打开",
 	"dropdown": "下拉列表",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "删除",
 	"btn.disable": "禁用",
diff --git a/public/language/zh-CN/admin/settings/notifications.json b/public/language/zh-CN/admin/settings/notifications.json
index 147dc97f23..24e65adaf8 100644
--- a/public/language/zh-CN/admin/settings/notifications.json
+++ b/public/language/zh-CN/admin/settings/notifications.json
@@ -3,5 +3,5 @@
 	"welcome-notification": "欢迎通知",
 	"welcome-notification-link": "欢迎通知链接",
 	"welcome-notification-uid": "用户欢迎通知 (UID)",
-	"post-queue-notification-uid": "Post Queue User (UID)"
+	"post-queue-notification-uid": "发布队列用户(UID)"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/admin/settings/post.json b/public/language/zh-CN/admin/settings/post.json
index 261645aec1..14326753ed 100644
--- a/public/language/zh-CN/admin/settings/post.json
+++ b/public/language/zh-CN/admin/settings/post.json
@@ -6,7 +6,7 @@
 	"sorting.most-votes": "最多点赞",
 	"sorting.most-posts": "最多回复",
 	"sorting.topic-default": "默认主题排序",
-	"length": "发帖字数",
+	"length": "帖子字数",
 	"post-queue": "发帖队列",
 	"restrictions": "发帖限制",
 	"restrictions-new": "新用户限制",
@@ -14,27 +14,27 @@
 	"restrictions.post-queue-rep-threshold": "忽略发帖队列的威望值",
 	"restrictions.groups-exempt-from-post-queue": "选择会被从提交队列豁免的分组",
 	"restrictions-new.post-queue": "启用新用户限制",
-	"restrictions.post-queue-help": "启用发帖队列会将新用户的发帖放入审核队列",
+	"restrictions.post-queue-help": "启用发帖队列会将新用户的帖子放入一个队列用于审核",
 	"restrictions-new.post-queue-help": "启用新用户限制将对新用户创建的帖子设置限制",
-	"restrictions.seconds-between": "发帖间隔时间(秒)",
-	"restrictions.seconds-between-new": "新用户发帖间隔时间(秒)",
-	"restrictions.rep-threshold": "取消发帖限制所需的声望值",
+	"restrictions.seconds-between": "发帖间隔的秒数",
+	"restrictions.seconds-between-new": "新用户发布帖子间隔的秒数",
+	"restrictions.rep-threshold": "取消发帖间隔限制所需的声望值",
 	"restrictions.seconds-before-new": "新用户可以在第一次发布之前的秒数",
-	"restrictions.seconds-edit-after": "帖子保持可编辑的秒数(设置为0表示禁用)",
-	"restrictions.seconds-delete-after": "帖子保持可删除的秒数(设置为0表示禁用)",
+	"restrictions.seconds-edit-after": "帖子保持可编辑的秒数(设置为 0 表示禁用)",
+	"restrictions.seconds-delete-after": "帖子保持可删除的秒数(设置为 0 表示禁用)",
 	"restrictions.replies-no-delete": "在用户被禁止删除自己的主题后的回复数。  (0为禁用) ",
 	"restrictions.min-title-length": "标题字数下限",
 	"restrictions.max-title-length": "标题字数上限",
 	"restrictions.min-post-length": "帖子字数下限",
 	"restrictions.max-post-length": "帖子字数上限",
-	"restrictions.days-until-stale": "主题过时时间(天)",
+	"restrictions.days-until-stale": "主题过时的天数",
 	"restrictions.stale-help": "如果某个主题被视为“过时”,则会向尝试回复该主题的用户显示警告。",
 	"timestamp": "时间戳",
 	"timestamp.cut-off": "截止日期(天)",
 	"timestamp.cut-off-help": "日期&amp;时间将以相对方式 (例如,“3小时前” / “5天前”) 显示,并且会依照访客语言时区转换。在某一时刻之后,可以切换该文本以显示本地化日期本身 (例如2016年11月5日15:30) 。<br /> <em> (默认值:<code> 30 </code>或一个月) 。 设置为0可始终显示日期,留空以始终显示相对时间。</em>",
 	"timestamp.necro-threshold": "挖坟警告(单位:天)",
 	"timestamp.necro-threshold-help": "若进行回复的帖子最后回复的时间早于挖坟警告设定的天数,则在尝试回复前显示挖坟警告(默认:<code>7</code>天)。可以设置为 0 来禁用。</em>",
-	"timestamp.topic-views-interval": "Increment topic views interval (in minutes)",
+	"timestamp.topic-views-interval": "增加主题访问数量的间隔(以分钟计)",
 	"timestamp.topic-views-interval-help": "根据此设置,主题的访问数量每 X 分钟只增加一次。",
 	"teaser": "预览帖子",
 	"teaser.last-post": "最后&ndash; 显示最新的帖子,包括原帖,如果没有回复",
@@ -42,7 +42,7 @@
 	"teaser.first": "第一",
 	"showPostPreviewsOnHover": "鼠标悬停时显示帖子预览",
 	"unread": "未读设置",
-	"unread.cutoff": "未读截止时间(天)",
+	"unread.cutoff": "未读截止的天数",
 	"unread.min-track-last": "跟踪最后阅读之前的主题最小帖子",
 	"recent": "最近设置",
 	"recent.max-topics": "/recent 页面的最大主题数",
@@ -51,8 +51,8 @@
 	"signature.disable": "禁用签名",
 	"signature.no-links": "禁用签名中的链接",
 	"signature.no-images": "禁用签名中的图片",
-	"signature.hide-duplicates": "Hide duplicate signatures in topics",
-	"signature.max-length": "签名字数上限",
+	"signature.hide-duplicates": "隐藏主题中重复的签名档",
+	"signature.max-length": "签名档字数上限",
 	"composer": "编辑器设置",
 	"composer-help": "以下设置控制所示后期编辑器的功能和/或外观\n\t\t\t\t当用户创建新主题或回复现有主题时。",
 	"composer.show-help": "显示“帮助”选项卡",
@@ -63,5 +63,5 @@
 	"backlinks.help": "如果一篇帖子引用了另一个主题,那么一个指向该帖子的链接将在该时间点插入到被引用的主题中。",
 	"ip-tracking": "IP 跟踪",
 	"ip-tracking.each-post": "跟踪每个帖子的 IP 地址",
-	"enable-post-history": "启用回复历史"
+	"enable-post-history": "启用帖子历史"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/admin/settings/reputation.json b/public/language/zh-CN/admin/settings/reputation.json
index fc8d47bdf0..195bf8fb3e 100644
--- a/public/language/zh-CN/admin/settings/reputation.json
+++ b/public/language/zh-CN/admin/settings/reputation.json
@@ -1,31 +1,31 @@
 {
 	"reputation": "声望设置",
-	"disable": "禁用 声望系统",
+	"disable": "禁用声望系统",
 	"disable-down-voting": "禁用 踩",
 	"votes-are-public": "公开所有投票",
 	"thresholds": "操作限制",
 	"min-rep-upvote": "顶帖子 需要的最低声望",
 	"upvotes-per-day": "每天顶的次数(设置为0则表示无限制)",
 	"upvotes-per-user-per-day": "每位用户每天顶的次数(设置为0则表示无限制)",
-	"min-rep-downvote": "踩帖子 需要的最低声望",
+	"min-rep-downvote": "踩帖子需要的最低声望",
 	"downvotes-per-day": "每天踩的次数(设置为0则表示无限制)",
 	"downvotes-per-user-per-day": "每位用户每天踩的次数(设置为0则表示无限制)",
 	"min-rep-chat": "发送聊天消息 需要的最低声望",
-	"min-rep-flag": "举报帖子 需要的最低声望",
-	"min-rep-website": "添加 个人网站 需要的最低声望",
-	"min-rep-aboutme": "添加 个人 “关于我”页 需要的最低声望",
-	"min-rep-signature": "添加 签名档 需要的最低声望",
-	"min-rep-profile-picture": "添加 个人资料图片 需要的最低声望",
+	"min-rep-flag": "举报帖子需要的最低声望",
+	"min-rep-website": "添加“网站”到用户资料需要的最低声望",
+	"min-rep-aboutme": "添加“关于我”到用户资料需要的最低声望",
+	"min-rep-signature": "添加“签名档”到用户资料需要的最低声望",
+	"min-rep-profile-picture": "添加“头像”到用户资料需要的最低声望",
 	"min-rep-cover-picture": "添加 个人封面图片 需要的最低声望",
 
 	"flags": "举报设置",
 	"flags.limit-per-target": "可以举报某事物的最大次数",
 	"flags.limit-per-target-placeholder": "默认:0",
-	"flags.limit-per-target-help": "When a post or user is flagged multiple times, each additional flag is considered a &quot;report&quot; and added to the original flag. Set this option to a number other than zero to limit the number of reports an item can receive.",
-  	"flags.auto-flag-on-downvote-threshold": "Number of downvotes to auto flag posts (Set to 0 to disable, default: 0)",
-	"flags.auto-resolve-on-ban": "Automatically resolve all of a user's tickets when they are banned",
-	"flags.action-on-resolve": "Do the following when a flag is resolved",
-	"flags.action-on-reject": "Do the following when a flag is rejected",
-	"flags.action.nothing": "Do nothing",
-	"flags.action.rescind": "Rescind the notification send to moderators/administrators"
+	"flags.limit-per-target-help": "当一个帖子或用户被举报不止一次时,每个额外的举报会被认为是一个“报告”并附加到原来的举报中。设置此选项为非零的数以限制一个帖子或用户能被举报的次数。",
+  	"flags.auto-flag-on-downvote-threshold": "自动举报帖子的踩的数量(设置为 0 以禁用,默认:0)",
+	"flags.auto-resolve-on-ban": "当用户被封禁时,自动解决全部此用户提交的举报",
+	"flags.action-on-resolve": "当举报被解决时做以下事",
+	"flags.action-on-reject": "当举报被拒绝时做以下事",
+	"flags.action.nothing": "不做任何事",
+	"flags.action.rescind": "撤回发送给版主/管理员的通知"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/admin/settings/tags.json b/public/language/zh-CN/admin/settings/tags.json
index 43ac39d1e6..3f1afb0726 100644
--- a/public/language/zh-CN/admin/settings/tags.json
+++ b/public/language/zh-CN/admin/settings/tags.json
@@ -2,7 +2,7 @@
     "tag": "标签设置",
     "link-to-manage": "管理标签",
     "system-tags": "系统标签",
-    "system-tags-help": "Only privileged users will be able to use these tags.",
+    "system-tags-help": "只有特权用户可以使用这些标签。",
     "min-per-topic": "每个主题的最少标签数",
     "max-per-topic": "每个主题的最多标签数",
     "min-length": "标签名称最小长度",
diff --git a/public/language/zh-CN/admin/settings/uploads.json b/public/language/zh-CN/admin/settings/uploads.json
index 61f6db6d3b..ad8b3648fc 100644
--- a/public/language/zh-CN/admin/settings/uploads.json
+++ b/public/language/zh-CN/admin/settings/uploads.json
@@ -1,11 +1,11 @@
 {
 	"posts": "帖子",
-	"orphans": "Orphaned Files",
+	"orphans": "未使用的文件",
 	"private": "使上传的文件私有化",
 	"strip-exif-data": "去除 EXIF 数据",
-	"preserve-orphaned-uploads": "Keep uploaded files on disk after a post is purged",
-	"orphanExpiryDays": "Days to keep orphaned files",
-	"orphanExpiryDays-help": "After this many days, orphaned uploads will be deleted from the file system.<br />Set 0 or leave blank to disable.",
+	"preserve-orphaned-uploads": "当一个帖子被清除后保留上传的文件",
+	"orphanExpiryDays": "保存未使用文件的天数",
+	"orphanExpiryDays-help": "在这么多天后,未使用的上传会从文件系统中被删除。<br />设置 0 或留白以禁用。",
 	"private-extensions": "自定义文件扩展名",
 	"private-uploads-extensions-help": "在此处输入以逗号分隔的文件扩展名列表 (例如<code> pdf,xls,doc </code>)并将其用于自定义。为空则表示允许所有扩展名。",
 	"resize-image-width-threshold": "如果图像宽度超过指定大小,则对图像进行缩放",
@@ -24,9 +24,9 @@
 	"topic-thumb-size": "主题缩略图大小",
 	"allowed-file-extensions": "允许的文件扩展名",
 	"allowed-file-extensions-help": "在此处输入以逗号分隔的文件扩展名列表 (例如<code> pdf,xls,doc </code>)。 为空则表示允许所有扩展名。",
-	"upload-limit-threshold": "Rate limit user uploads to:",
-	"upload-limit-threshold-per-minute": "Per %1 Minute",
-	"upload-limit-threshold-per-minutes": "Per %1 Minutes",
+	"upload-limit-threshold": "限制用户上传次数为:",
+	"upload-limit-threshold-per-minute": "每 %1 分钟",
+	"upload-limit-threshold-per-minutes": "每 %1 分钟",
 	"profile-avatars": "个人头像",
 	"allow-profile-image-uploads": "允许用户上传个人资料照片",
 	"convert-profile-image-png": "转换个人资料图片为 PNG",
diff --git a/public/language/zh-CN/admin/settings/user.json b/public/language/zh-CN/admin/settings/user.json
index f78cc552c4..419ee8c7b7 100644
--- a/public/language/zh-CN/admin/settings/user.json
+++ b/public/language/zh-CN/admin/settings/user.json
@@ -1,7 +1,7 @@
 {
 	"authentication": "验证",
 	"email-confirm-interval": "用户无法重新发送电子邮箱激活直到",
-	"email-confirm-interval2": "minutes have elapsed",
+	"email-confirm-interval2": "已过去的分钟数",
 	"allow-login-with": "允许使用何种登录名",
 	"allow-login-with.username-email": "用户名或者邮箱",
 	"allow-login-with.username": "仅限用户名",
@@ -29,6 +29,8 @@
 	"session-time-days": "天",
 	"session-time-seconds": "秒",
 	"session-time-help": "这些值将用于控制用户在登录时选中&quot;记住我&quot;后能够保持登录的时长。注意以下数值中只有一个将被使用。若<i>秒</i>值为空我们将回退使用<i>天</i>。若<i>天</i>值为空我们将使用默认值<i>14天</i>。",
+	"session-duration": "当“保持登录信息”没有被勾选时的会话长度(秒)",
+	"session-duration-help": "默认情况——或设为<code>0</code>——用户会在会话期间保持登陆(例如,不论浏览器窗口/标签页保持开启的时间)。设置此值以明确让会话在详述的秒数后无效。",
 	"online-cutoff": "分钟后认为用户已离线",
 	"online-cutoff-help": "若用户在此时间后未作出任何动作,他们将被视为不活跃状态且不会收到实时更新。",
 	"registration": "用户注册",
@@ -69,7 +71,7 @@
 	"digest-freq.off": "关闭",
 	"digest-freq.daily": "每日",
 	"digest-freq.weekly": "每周",
-	"digest-freq.biweekly": "Bi-Weekly",
+	"digest-freq.biweekly": "两周",
 	"digest-freq.monthly": "每月",
 	"email-chat-notifs": "当我不在线并收到新的聊天消息时,给我发送邮件通知",
 	"email-post-notif": "当我订阅的主题有新回复时,给我发送邮件通知",
diff --git a/public/language/zh-CN/category.json b/public/language/zh-CN/category.json
index e9c577f68c..1f8cd4152b 100644
--- a/public/language/zh-CN/category.json
+++ b/public/language/zh-CN/category.json
@@ -2,7 +2,7 @@
     "category": "版块",
     "subcategories": "子版块",
     "new_topic_button": "发表主题",
-    "guest-login-post": "登录以发表",
+    "guest-login-post": "登录以发布",
     "no_topics": "<strong>此版块还没有任何内容。</strong><br />赶紧来发帖吧!",
     "browsing": "正在浏览",
     "no_replies": "尚无回复",
@@ -19,5 +19,5 @@
     "notwatching.message": "您未关注了此版块和全部子版块的动态。",
     "ignoring.message": "您未关注此版块和全部子版块的动态。",
     "watched-categories": "已关注的版块",
-    "x-more-categories": "%1 more categories"
+    "x-more-categories": "还有 %1 个版块"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/email.json b/public/language/zh-CN/email.json
index 2da71ec95d..d4d5e1fc8e 100644
--- a/public/language/zh-CN/email.json
+++ b/public/language/zh-CN/email.json
@@ -6,8 +6,8 @@
     "greeting_no_name": "您好",
     "greeting_with_name": "%1,您好",
     "email.verify-your-email.subject": "请验证你的电子邮箱",
-    "email.verify.text1": "You've requested that we change or confirm your email address",
-    "email.verify.text2": "For security purposes, we only change or confirm the email address on file once its ownership has been confirmed via email. <strong>If you did not request this, no action is required on your part.</strong>",
+    "email.verify.text1": "您已要求我们更改或确认您的邮件地址",
+    "email.verify.text2": "为了安全起见,我们只会在通过邮件验证邮件地址所有权以后才会更改存档的邮件地址。<strong>假如您没有提出过此请求,您不用进行任何操作。</strong>",
     "email.verify.text3": "一旦您验证了此电子邮箱地址,我们将会把您当前的电子邮箱地址替换为此电子邮箱地址(%1)。",
     "welcome.text1": "感谢您注册 %1 帐户!",
     "welcome.text2": "在您验证您绑定的邮箱地址之后,您的账户才能激活。",
@@ -16,7 +16,7 @@
     "invitation.text1": "%1 邀请您加入 %2",
     "invitation.text2": "您的邀请将在 %1 天后过期。",
     "invitation.cta": "点击这里新建账号",
-    "reset.text1": "很可能是您忘记了密码,我们收到了重置您帐户密码的申请。 如果您没有申请密码重置,请忽略这封邮件。",
+    "reset.text1": "很可能是您忘记了密码,我们收到了重置您帐户密码的请求。 如果不是这个情况,请忽略此邮件。",
     "reset.text2": "如需继续重置密码,请点击下面的链接:",
     "reset.cta": "点击这里重置您的密码",
     "reset.notify.subject": "更改密码成功",
@@ -49,9 +49,9 @@
     "unsubscribe": "退订",
     "unsub.success": "您将不再收到来自<strong>%1</strong>邮寄名单的邮件",
     "unsub.failure.title": "无法取消订阅",
-    "unsub.failure.message": "Unfortunately, we were not able to unsubscribe you from the mailing list, as there was an issue with the link. However, you can alter your email preferences by going to <a href=\"%2\">your user settings</a>.<br /><br />(error: <code>%1</code>)",
+    "unsub.failure.message": "很不幸,我们不能将您从邮件列表里取消订阅,因为这个链接有问题。不过,您可以到<a href=\"%2\">您的用户设置</a>里修改邮件偏好。<br /><br />(错误:<code>%1</code>)",
     "banned.subject": "您在 %1  的账户已被封禁",
-    "banned.text1": "您在 %2 的账户 %1 已被封禁。",
+    "banned.text1": "您在 %2 的用户 %1 已被封禁。",
     "banned.text2": "本次封禁将在 %1 结束。",
     "banned.text3": "这是您被封禁的原因:",
     "closing": "谢谢!"
diff --git a/public/language/zh-CN/error.json b/public/language/zh-CN/error.json
index 520524781f..e933f4858d 100644
--- a/public/language/zh-CN/error.json
+++ b/public/language/zh-CN/error.json
@@ -1,8 +1,8 @@
 {
     "invalid-data": "无效数据",
     "invalid-json": "无效 JSON",
-    "wrong-parameter-type": "A value of type %3 was expected for property `%1`, but %2 was received instead",
-    "required-parameters-missing": "Required parameters were missing from this API call: %1",
+    "wrong-parameter-type": "属性 `%1` 要求是类型 %3 的值,却收到了 %2",
+    "required-parameters-missing": "此 API 调用必需参数缺少了:%1",
     "not-logged-in": "您还没有登录。",
     "account-locked": "您的帐号已被临时锁定",
     "search-requires-login": "搜索功能仅限会员使用 - 请先登录或者注册。",
@@ -11,7 +11,7 @@
     "invalid-tid": "无效主题 ID",
     "invalid-pid": "无效帖子 ID",
     "invalid-uid": "无效用户 ID",
-    "invalid-mid": "Invalid Chat Message ID",
+    "invalid-mid": "无效聊天消息 ID",
     "invalid-date": "请指定有效的日期",
     "invalid-username": "无效用户名",
     "invalid-email": "无效的电子邮箱",
@@ -25,7 +25,7 @@
     "invalid-username-or-password": "请确认用户名和密码",
     "invalid-search-term": "无效的搜索关键字",
     "invalid-url": "无效的 URL",
-    "invalid-event": "Invalid event: %1",
+    "invalid-event": "无效的事件:%1",
     "local-login-disabled": "已禁用非管理账户的本地登录。",
     "csrf-invalid": "可能是由于会话过期,登录失败。请重试。",
     "invalid-path": "无效的路径",
@@ -33,13 +33,13 @@
     "invalid-pagination-value": "无效的分页数值,必须介于 %1 和 %2 之间",
     "username-taken": "此用户名已被占用",
     "email-taken": "此电子邮箱已被占用",
-    "email-nochange": "The email entered is the same as the email already on file.",
+    "email-nochange": "输入的邮件地址和已存档的邮件地址相同。",
     "email-invited": "已通过电子邮件进行邀请",
-    "email-not-confirmed": "您需要验证您的电子邮箱后才能在版块或主题中发布帖子,请点击此处以发送验证邮件。",
+    "email-not-confirmed": "您需要验证您的邮箱后才能在版块或主题中发布帖子,请点击此处以发送验证邮件。",
     "email-not-confirmed-chat": "您的电子邮箱尚未确认,无法聊天,请点击这里确认您的电子邮箱。",
-    "email-not-confirmed-email-sent": "您的电子邮件账户尚未验证,请检查您的收件箱。在电子邮件帐户被验证前,您不能发帖和聊天。",
+    "email-not-confirmed-email-sent": "您的邮箱尚未验证,请检查您的收件箱以找到验证邮件。在您的邮箱被验证前,您可能不能在某些版块发布帖子或进行聊天。",
     "no-email-to-confirm": "您的账号未设置电子邮箱。对于找回账号、聊天以及在版块中发布帖子这几项操作,电子邮箱是必需的。请点击此处输入电子邮箱。",
-    "user-doesnt-have-email": "User \"%1\" does not have an email set.",
+    "user-doesnt-have-email": "用户“%1”还没有设置邮箱。",
     "email-confirm-failed": "我们无法确认您的电子邮箱,请重试",
     "confirm-email-already-sent": "确认邮件已发出,如需重新发送请等待 %1 分钟后再试。",
     "sendmail-not-found": "无法找到 sendmail 可执行程序,请确保 sendmail 已经安装并可被运行 NodeBB 的用户执行",
@@ -51,7 +51,7 @@
     "reset-same-password": "新的密码不能与当前使用的相同",
     "user-banned": "用户已禁止",
     "user-banned-reason": "抱歉,此帐号已经被封禁 (原因:%1)",
-    "user-banned-reason-until": "抱歉,此帐户已被封禁,直到%1(原因:%2)",
+    "user-banned-reason-until": "抱歉,此账号已被封禁,直到 %1(原因:%2)",
     "user-too-new": "抱歉,您需要等待 %1 秒后,才可以发帖!",
     "blacklisted-ip": "对不起,您的 IP 地址已被社区禁用。如果您认为这是一个错误,请与管理员联系。",
     "ban-expiry-missing": "请提供此次禁言结束日期",
@@ -61,12 +61,12 @@
     "no-group": "群组不存在",
     "no-user": "用户不存在",
     "no-teaser": "主题预览不存在",
-    "no-flag": "Flag does not exist",
-    "no-chat-room": "Chat room does not exist",
+    "no-flag": "举报不存在",
+    "no-chat-room": "聊天室不存在",
     "no-privileges": "您没有权限执行此操作。",
     "category-disabled": "版块已禁用",
     "topic-locked": "主题已锁定",
-    "post-edit-duration-expired": "您只能在发表后 %1 秒内修改内容",
+    "post-edit-duration-expired": "您只能在发布后 %1 秒内编辑帖子",
     "post-edit-duration-expired-minutes": "您只能在发表后 %1 分钟内修改内容",
     "post-edit-duration-expired-minutes-seconds": "您只能在发表后 %1 分 %2 秒内修改内容",
     "post-edit-duration-expired-hours": "您只能在发表后 %1 小时后内修改内容",
@@ -89,9 +89,9 @@
     "category-not-selected": "未选择版块。",
     "too-many-posts": "发帖需要间隔 %1 秒以上 - 请稍候再发帖",
     "too-many-posts-newbie": "因为您是新用户,所以限制每隔 %1 秒才能发帖一次,直到您有 %2 点声望为止 —— 请稍候再发帖",
-    "already-posting": "You are already posting",
-    "tag-too-short": "标签太短,不能少于 %1 个字符",
-    "tag-too-long": "标签太长,不能超过 %1 个字符",
+    "already-posting": "您已在发布帖子",
+    "tag-too-short": "请输入一个更长的标签。标签应当包含不少于 %1 个字符",
+    "tag-too-long": "请输入一个更短的标签。标签不能超过 %1 个字符",
     "not-enough-tags": "没有足够的标签。主题必须至少有 %1 个标签。",
     "too-many-tags": "标签过多。主题不能拥有超过 %1 个标签。",
     "cant-use-system-tag": "您不能使用此系统标签。",
@@ -101,12 +101,13 @@
     "guest-upload-disabled": "未登录用户不允许上传",
     "cors-error": "由于CORS配置错误,无法上传图片。",
     "upload-ratelimit-reached": "您在短时间内上传了过多的文件,请稍后再试",
+    "upload-error-fallback": "无法上传图片 — %1",
     "scheduling-to-past": "请选择一个未来的日期。",
-    "invalid-schedule-date": "Please enter a valid date and time.",
-    "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
-    "cant-merge-scheduled": "Scheduled topics cannot be merged.",
-    "cant-move-posts-to-scheduled": "Can't move posts to a scheduled topic.",
-    "cant-move-from-scheduled-to-existing": "Can't move posts from a scheduled topic to an existing topic.",
+    "invalid-schedule-date": "请输入正确的日期",
+    "cant-pin-scheduled": "定时主题不能被(取消)置顶。",
+    "cant-merge-scheduled": "定时主题不能被合并。",
+    "cant-move-posts-to-scheduled": "不能把帖子移动到定时主题中。",
+    "cant-move-from-scheduled-to-existing": "不能把定时主题中的帖子移动到已有的主题中。",
     "already-bookmarked": "您已将此贴存为了书签",
     "already-unbookmarked": "您已取消了此贴的书签",
     "cant-ban-other-admins": "您不能封禁其他管理员!",
@@ -116,8 +117,8 @@
     "cant-make-banned-users-admin": "您不能让被禁止的用户成为管理员。",
     "cant-remove-last-admin": "您是唯一的管理员。在删除您的管理员权限前,请添加另一个管理员。",
     "account-deletion-disabled": "账号删除功能已禁用",
-    "cant-delete-admin": "在删除该账号之前,请先移除其管理权限。",
-    "already-deleting": "Already deleting",
+    "cant-delete-admin": "在删除此账号之前,请先移除其管理权限。",
+    "already-deleting": "已在删除中",
     "invalid-image": "无效的图片",
     "invalid-image-type": "无效的图像类型。允许的类型有:%1",
     "invalid-image-extension": "无效的图像扩展",
@@ -134,6 +135,8 @@
     "group-already-requested": "已提交您的请求",
     "group-join-disabled": "您目前无法加入此群组",
     "group-leave-disabled": "您目前无法离开此群组",
+    "group-user-not-pending": "用户没有加入此用户组的待处理请求",
+    "gorup-user-not-invited": "用户尚未被邀请加入此用户组",
     "post-already-deleted": "此帖已被删除",
     "post-already-restored": "此帖已经恢复",
     "topic-already-deleted": "此主题已被删除",
@@ -149,45 +152,45 @@
     "chat-disabled": "聊天系统已关闭",
     "too-many-messages": "您发送了太多消息,请稍等片刻。",
     "invalid-chat-message": "无效的聊天信息",
-    "chat-message-too-long": "聊天消息不能超过 %1  个字符。",
+    "chat-message-too-long": "聊天消息不能超过 %1  个字符。",
     "cant-edit-chat-message": "您不能编辑这条信息",
     "cant-delete-chat-message": "您不允许删除这条消息",
     "chat-edit-duration-expired": "您只能在发布 %1 秒后修改聊天信息",
     "chat-delete-duration-expired": "您只能在发布 %1 秒后删除聊天信息",
-    "chat-deleted-already": "聊天消息已经被删除",
+    "chat-deleted-already": "此聊天消息已经被删除",
     "chat-restored-already": "此聊天消息已经恢复。\n",
     "chat-room-does-not-exist": "聊天室不存在。",
-    "cant-add-users-to-chat-room": "Can't add users to chat room.",
-    "cant-remove-users-from-chat-room": "Can't remove users from chat room.",
-    "chat-room-name-too-long": "Chat room name too long.",
+    "cant-add-users-to-chat-room": "无法添加用户到聊天室。",
+    "cant-remove-users-from-chat-room": "无法从聊天室删除用户。",
+    "chat-room-name-too-long": "聊天室名过长。",
     "already-voting-for-this-post": "您已为此帖回复投过票了。",
     "reputation-system-disabled": "声望系统已禁用。",
     "downvoting-disabled": "踩已被禁用",
-    "not-enough-reputation-to-chat": "You need %1 reputation to chat",
-    "not-enough-reputation-to-upvote": "You need %1 reputation to upvote",
+    "not-enough-reputation-to-chat": "您需要 %1 声望才能进行聊天",
+    "not-enough-reputation-to-upvote": "您需要 %1 声望以顶贴",
     "not-enough-reputation-to-downvote": "您需要 %1 声望以进行踩操作",
     "not-enough-reputation-to-flag": "您需要 %1 声望才能举报此帖子",
     "not-enough-reputation-min-rep-website": "您需要 %1 声望以添加网站",
     "not-enough-reputation-min-rep-aboutme": "您需要 %1 声望以设置关于我",
     "not-enough-reputation-min-rep-signature": "您需要 %1 声望以添加签名档",
-    "not-enough-reputation-min-rep-profile-picture": "You need %1 reputation to add a profile picture",
-    "not-enough-reputation-min-rep-cover-picture": "You need %1 reputation to add a cover picture",
+    "not-enough-reputation-min-rep-profile-picture": "您需要 %1 声望以设置头像",
+    "not-enough-reputation-min-rep-cover-picture": "您需要 %1 声望以设置封面图片",
     "post-already-flagged": "您已举报此帖",
     "user-already-flagged": "您已举报此用户",
     "post-flagged-too-many-times": "此贴已被其他用户举报",
     "user-flagged-too-many-times": "此用户已被其他用户举报",
-    "cant-flag-privileged": "You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
+    "cant-flag-privileged": "您不能举报特权用户(版主/全局版主/管理员)的内容或资料",
     "self-vote": "您不能对您自己的帖子投票",
-    "too-many-upvotes-today": "You can only upvote %1 times a day",
-    "too-many-upvotes-today-user": "You can only upvote a user %1 times a day",
+    "too-many-upvotes-today": "您每天仅可进行 %1 次顶贴",
+    "too-many-upvotes-today-user": "您每天只能对一个用户顶 %1 次",
     "too-many-downvotes-today": "您每天只能踩 %1 次",
-    "too-many-downvotes-today-user": "您每天只能对一个用户踩 %1 次",
+    "too-many-downvotes-today-user": "您每天只能对一个用户点踩 %1 次",
     "reload-failed": "刷新 NodeBB 时遇到问题: \"%1\"。NodeBB 保持给已连接的客户端服务,您应该撤销刷新前做的更改。",
     "registration-error": "注册错误",
     "parse-error": "服务器响应解析出错",
     "wrong-login-type-email": "请输入您的电子邮箱地址登录",
     "wrong-login-type-username": "请输入您的用户名登录",
-    "sso-registration-disabled": "已禁用通过 %1 账户的注册, 请使用邮箱地址注册",
+    "sso-registration-disabled": "已禁用通过 %1 账户的注册,请先使用邮箱地址注册",
     "sso-multiple-association": "您无法将此服务中的多个账户关联到您的NodeBB账号。请您分离的现有账号并重试。",
     "invite-maximum-met": "您的邀请人数超出了上限 (%1 超过了 %2)。",
     "no-session-found": "未登录!",
@@ -197,8 +200,8 @@
     "invalid-home-page-route": "无效的首页路径",
     "invalid-session": "无效的会话",
     "invalid-session-text": "您的登录会话似乎不再处于活动状态。请刷新此页面。",
-    "session-mismatch": "Session Mismatch",
-    "session-mismatch-text": "It looks like your login session no longer matches with the server. Please refresh this page.",
+    "session-mismatch": "会话不匹配",
+    "session-mismatch-text": "您的登录会话似乎与服务器不再匹配。请刷新此页面。",
     "no-topics-selected": "没有主题被选中!",
     "cant-move-to-same-topic": "无法将帖子移动到相同的主题中!",
     "cant-move-topic-to-same-category": "无法将主题移动到相同的版块!",
@@ -208,21 +211,22 @@
     "already-blocked": "此用户已被屏蔽",
     "already-unblocked": "此用户已被取消屏蔽",
     "no-connection": "您的网络连接似乎存在问题",
-    "socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
+    "socket-reconnect-failed": "目前无法连接到服务器。请点击这里重试,或稍后再试",
     "plugin-not-whitelisted": "无法安装插件 &ndash; 只有被NodeBB包管理器列入白名单的插件才能通过ACP安装。",
-    "plugins-set-in-configuration": "You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
-    "theme-not-set-in-configuration": "When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
-    "topic-event-unrecognized": "Topic event '%1' unrecognized",
+    "plugins-set-in-configuration": "您不能修改插件状态因为它们在运行时中被定义(config.json,环境变量或终端选项),请转而修改配置。",
+    "theme-not-set-in-configuration": "在配置中定义活跃的插件时,需要先将新主题加入活跃插件的列表,才能在管理员控制面板中修改主题",
+    "topic-event-unrecognized": "无法识别主题事件'%1'",
     "cant-set-child-as-parent": "无法将子版块设置为父版块",
     "cant-set-self-as-parent": "无法将自身设置为父版块",
-    "api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body",
-    "api.400": "Something was wrong with the request payload you passed in.",
+    "api.master-token-no-uid": "收到一个在请求体中没有对应 `_uid` 的主令牌",
+    "api.400": "您传入的请求某些地方出错了。",
     "api.401": "找不到有效的登录会话。请登录后再试。",
-    "api.403": "You are not authorised to make this call",
+    "api.403": "您没有权限使用此调用",
     "api.404": "无效 API 调用",
-    "api.426": "HTTPS is required for requests to the write api, please re-send your request via HTTPS",
+    "api.426": "Write API 的请求需要 HTTPS,请用 HTTPS 重新发送您的请求",
     "api.429": "您在短时间内发出了过多的请求,请稍后再试",
-    "api.500": "An unexpected error was encountered while attempting to service your request.",
-    "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.500": "在试图为您的请求提供服务时出现了一个意外的错误。",
+    "api.501": "您试图调用的路由还没被实现,请明天重试",
+    "api.503": "您试图调用的路由因为服务器配置而目前不可用",
+    "api.reauth-required": "您试图访问的资源需要(重新)进行身份验证。"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/flags.json b/public/language/zh-CN/flags.json
index 58cbf02a5c..c4efe9e315 100644
--- a/public/language/zh-CN/flags.json
+++ b/public/language/zh-CN/flags.json
@@ -3,31 +3,33 @@
 	"reports": "报告",
 	"first-reported": "首次报告",
 	"no-flags": "啊哈!没发现任何的举报。",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "受委托人",
 	"update": "更新",
 	"updated": "已更新",
-	"resolved": "Resolved",
+	"resolved": "已解决",
 	"target-purged": "被举报的内容已经被清除,不再可用。",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "日举报",
 	"quick-filters": "快速过滤器",
 	"filter-active": "该列中有一个或更多激活的过滤器",
 	"filter-reset": "删除过滤器",
 	"filters": "过滤器选项",
-	"filter-reporterId": "举报者UID",
-	"filter-targetUid": "被举报者 UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "举报类型",
 	"filter-type-all": "所有内容",
 	"filter-type-post": "帖子",
 	"filter-type-user": "用户",
 	"filter-state": "状态",
-	"filter-assignee": "受委托人 UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "版块",
 	"filter-quick-mine": "委托给我",
 	"filter-cid-all": "全部版块",
 	"apply-filters": "应用过滤器",
 	"more-filters": "更多过滤器",
-	"fewer-filters": "Fewer Filters",
+	"fewer-filters": "更少的过滤器",
 
 	"quick-actions": "快速操作",
 	"flagged-user": "被举报的用户",
@@ -38,19 +40,20 @@
 	"delete-post": "删除帖子",
 	"purge-post": "清除帖子",
 	"restore-post": "恢复帖子",
-	"delete": "Delete Flag",
+	"delete": "删除举报",
 
 	"user-view": "查看资料",
 	"user-edit": "编辑资料",
 
 	"notes": "举报备注",
 	"add-note": "添加备注",
+	"edit-note": "Edit Note",
 	"no-notes": "没有共享的备注内容。",
 	"delete-note-confirm": "您确定要删除此举报备注吗?",
-	"delete-flag-confirm": "Are you sure you want to delete this flag?",
+	"delete-flag-confirm": "您确定您要删除此举报吗?",
 	"note-added": "备注已添加",
 	"note-deleted": "备注已删除",
-	"flag-deleted": "Flag Deleted",
+	"flag-deleted": "举报已删除",
 
 	"history": "账号 &amp; 举报历史",
 	"no-history": "没有举报历史。",
@@ -84,6 +87,6 @@
 	"bulk-actions": "批量操作",
 	"bulk-resolve": "处理举报",
 	"bulk-success": "已更新%1个举报",
-	"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)",
-  	"auto-flagged": "[Auto Flagged] Received %1 downvotes."
+	"flagged-timeago-readable": "被举报于 <span class=\\\"timeago\\\" title=\\\"%1\\\"></span> (%2) ",
+  	"auto-flagged": "【自动举报】收到 %1 个踩"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/global.json b/public/language/zh-CN/global.json
index cd05e59b55..580dc0c073 100644
--- a/public/language/zh-CN/global.json
+++ b/public/language/zh-CN/global.json
@@ -3,14 +3,14 @@
     "search": "搜索",
     "buttons.close": "关闭",
     "403.title": "禁止访问",
-    "403.message": "您似乎没有访问此页面的权限。",
-    "403.login": "或许您应该先 <a href='%1/login'>登录</a>试试?",
+    "403.message": "您似乎碰到了一个您没有访问权限的页面。",
+    "403.login": "请您尝试<a href='%1/login'>登录</a>后再试",
     "404.title": "未找到",
-    "404.message": "您访问的页面不存在。返回<a href='%1/'>首页</a>。",
+    "404.message": "您访问的页面不存在, 返回<a href='%1/'>首页</a>",
     "500.title": "内部错误",
     "500.message": "哎呀!看来是哪里出错了!",
     "400.title": "错误的请求",
-    "400.message": "看起来这个链接的格式不正确,请再次检查并重试。或者返回<a href='%1/'>主页</a>。",
+    "400.message": "这个链接的格式可能不正确,请再次检查并重试。或者返回<a href='%1/'>主页</a>。",
     "register": "注册",
     "login": "登录",
     "please_log_in": "请登录",
@@ -37,9 +37,13 @@
     "header.notifications": "通知",
     "header.search": "搜索",
     "header.profile": "设置",
+    "header.account": "账户",
     "header.navigation": "导航",
+    "header.manage": "管理",
+    "header.drafts": "草稿",
     "notifications.loading": "正在加载通知",
     "chats.loading": "正在加载聊天",
+    "drafts.loading": "正在加载草稿",
     "motd.welcome": "欢迎来到 NodeBB,未来的社区论坛平台。",
     "previouspage": "上一页",
     "nextpage": "下一页",
@@ -48,13 +52,14 @@
     "alert.banned": "已封禁",
     "alert.banned.message": "您已被禁止,您当前的访问受到限制。",
     "alert.unbanned": "已解封",
-    "alert.unbanned.message": "Your ban has been lifted.",
+    "alert.unbanned.message": "你的封禁已被解除。",
     "alert.unfollow": "您已取消关注 %1!",
     "alert.follow": "您已关注 %1!",
     "users": "用户",
     "topics": "主题",
     "posts": "帖子",
     "x-posts": "%1 个帖子",
+    "x-topics": "%1 个主题",
     "best": "最佳",
     "controversial": "有争议的",
     "votes": "赞同",
@@ -69,6 +74,7 @@
     "reputation": "声望",
     "lastpost": "上一个帖子",
     "firstpost": "第一个帖子",
+    "about": "关于",
     "read_more": "阅读更多",
     "more": "更多",
     "none": "无",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 发布于 %2",
     "guest_posted_ago": "游客发布于 %1",
     "last_edited_by": "最后由 %1 编辑",
+    "edited-timestamp": "编辑 %1",
     "norecentposts": "暂无新帖",
     "norecenttopics": "暂无新主题",
     "recentposts": "新帖",
     "recentips": "最近登录的 IP",
     "moderator_tools": "版主工具",
+    "status": "状态",
     "online": "在线",
     "away": "离开",
     "dnd": "请勿打扰",
@@ -122,5 +130,7 @@
     "edited": "已编辑",
     "disabled": "禁用",
     "select": "选择",
-    "user-search-prompt": "输入以查找用户"
+    "user-search-prompt": "输入以查找用户",
+    "hidden": "隐藏",
+    "sort": "排序"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/groups.json b/public/language/zh-CN/groups.json
index 051c9e5c13..d10a359ab6 100644
--- a/public/language/zh-CN/groups.json
+++ b/public/language/zh-CN/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "群组",
+    "members": "成员",
     "view_group": "查看群组",
     "owner": "群组所有者",
     "new_group": "创建群组",
@@ -21,10 +22,10 @@
     "details.members": "成员列表",
     "details.pending": "待加入成员",
     "details.invited": "已邀请成员",
-    "details.has_no_posts": "此群组的用户尚未发表任何帖子。",
+    "details.has_no_posts": "此用户组的成员尚未发表任何帖子。",
     "details.latest_posts": "最新帖子",
     "details.private": "私有",
-    "details.disableJoinRequests": "禁止申请加入群组",
+    "details.disableJoinRequests": "禁用申请加入群组",
     "details.disableLeave": "禁止用户离开群组",
     "details.grant": "授予/取消管理权",
     "details.kick": "踢出群组",
@@ -35,7 +36,7 @@
     "details.member_count": "群组成员数",
     "details.creation_date": "创建时间",
     "details.description": "描述",
-    "details.member-post-cids": "Category IDs to display posts from",
+    "details.member-post-cids": "显示发布帖子的版块 ID",
     "details.badge_preview": "徽章预览",
     "details.change_icon": "更改图标",
     "details.change_label_colour": "更改标签颜色",
diff --git a/public/language/zh-CN/ip-blacklist.json b/public/language/zh-CN/ip-blacklist.json
index 6193d4b4ac..3ab79f710b 100644
--- a/public/language/zh-CN/ip-blacklist.json
+++ b/public/language/zh-CN/ip-blacklist.json
@@ -9,7 +9,7 @@
 	"hint-2": "您可以通过以<code>#</code>标志开头的行来添加注释。",
 
 	"validate.x-valid": "<strong>%1</strong> / <strong>%2</strong>的规则有效。",
-	"validate.x-invalid": "下列 <strong>%0</strong> 个规则无效:",
+	"validate.x-invalid": "下列 <strong>%1</strong> 个规则无效:",
 
 	"alerts.applied-success": "黑名单生效",
 
diff --git a/public/language/zh-CN/modules.json b/public/language/zh-CN/modules.json
index 3dff397d9d..837aadeb39 100644
--- a/public/language/zh-CN/modules.json
+++ b/public/language/zh-CN/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "与<span id=\"chat-with-name\"></span>聊天",
-    "chat.placeholder": "在这里输入聊天消息,或者拖入图片,按下回车键以发送",
+    "chat.placeholder": "在此输入聊天消息,或者拖入图片,按下回车键以发送",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "您正在查看较旧的消息,点击此处转到最新消息。",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "发送",
     "chat.no_active": "暂无聊天",
     "chat.user_typing": "%1 正在输入……",
@@ -21,17 +25,17 @@
     "chat.seven_days": "7天",
     "chat.thirty_days": "30天",
     "chat.three_months": "3个月",
-    "chat.delete_message_confirm": "您确定删除此消息吗?",
+    "chat.delete_message_confirm": "您确定您要删除此消息吗?",
     "chat.retrieving-users": "查找用户",
     "chat.manage-room": "管理聊天室",
-    "chat.add-user-help": "在这里查找更多用户。选中之后添加到聊天中,新用户在加入聊天之前看不到聊天消息。只有聊天室所有者(<i class=\"fa fa-star text-warning\"></i>)可以从聊天室中移除用户。",
+    "chat.add-user-help": "在这里查找更多用户。被选中的用户会被添加到聊天中。新用户不能他们被加入对话前的聊天消息。只有聊天室所有者(<i class=\"fa fa-star text-warning\"></i>)可以从聊天室中移除用户。",
     "chat.confirm-chat-with-dnd-user": "该用户已将其状态设置为 DnD(请勿打扰)。 您仍希望与其聊天吗?",
     "chat.rename-room": "重命名房间",
     "chat.rename-placeholder": "在这里输入房间名字",
     "chat.rename-help": "这里设置的房间名字能够被房间内所有人都看到。",
     "chat.leave": "离开聊天室",
-    "chat.leave-prompt": "您确定要离开聊天室?",
-    "chat.leave-help": "离开此聊天会将您在聊天中的未接收的消息移除。您在重新加入之后不会看到任何聊天记录",
+    "chat.leave-prompt": "您确定您要离开聊天室?",
+    "chat.leave-help": "离开此聊天会切断您和此聊天以后的联系。如果您未来重新加入了,您将不能看到您重新加入之前的聊天记录。",
     "chat.in-room": "在此房间",
     "chat.kick": "踢出",
     "chat.show-ip": "显示 IP",
@@ -42,6 +46,7 @@
     "composer.compose": "编写帮助",
     "composer.show_preview": "显示预览",
     "composer.hide_preview": "隐藏预览",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 在 %2 中说:",
     "composer.user_said": "%1 说:",
     "composer.discard": "确定想要取消此帖?",
@@ -60,11 +65,14 @@
     "composer.zen_mode": "无干扰模式",
     "composer.select_category": "选择一个版块",
     "composer.textarea.placeholder": "在此处输入您的帖子内容,拖放图像",
-    "composer.schedule-for": "Schedule topic for",
-    "composer.schedule-date": "Date",
-    "composer.schedule-time": "Time",
+    "composer.schedule-for": "定时主题到",
+    "composer.schedule-date": "日期",
+    "composer.schedule-time": "时间",
     "composer.cancel-scheduling": "取消定时",
-    "composer.set-schedule-date": "Set Date",
+    "composer.set-schedule-date": "设置日期",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "确认",
     "bootbox.cancel": "取消",
     "bootbox.confirm": "确认",
@@ -75,8 +83,8 @@
     "cover.saved": "封面照片和位置已保存",
     "thumbs.modal.title": "管理主题缩略图",
     "thumbs.modal.no-thumbs": "没有找到缩略图。",
-    "thumbs.modal.resize-note": "<strong>Note</strong>: This forum is configured to resize topic thumbnails down to a maximum width of %1px",
+    "thumbs.modal.resize-note": "注意:此论坛被配置为缩放主题缩略图到最大值为 %1",
     "thumbs.modal.add": "添加缩略图",
     "thumbs.modal.remove": "移除缩略图",
-    "thumbs.modal.confirm-remove": "您确定要移除此缩略图吗?"
+    "thumbs.modal.confirm-remove": "您确定您要移除此缩略图吗?"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/notifications.json b/public/language/zh-CN/notifications.json
index cfd4b7fd3d..da5a0c31a7 100644
--- a/public/language/zh-CN/notifications.json
+++ b/public/language/zh-CN/notifications.json
@@ -14,7 +14,7 @@
     "topics": "主题",
     "replies": "回复",
     "chat": "聊天",
-    "group-chat": "Group Chats",
+    "group-chat": "群聊",
     "follows": "关注",
     "upvote": "顶",
     "new-flags": "新举报",
@@ -43,14 +43,14 @@
     "new_register": "<strong>%1</strong> 发出了注册请求",
     "new_register_multiple": "有 <strong>%1</strong> 条注册申请等待批准。",
     "flag_assigned_to_you": "<strong>举报 %1</strong> 已经被指派给您",
-    "post_awaiting_review": "请求查验帖子",
+    "post_awaiting_review": "待查阅的帖子",
     "profile-exported": "<strong>%1</strong>资料已导出,点击下载",
     "posts-exported": "<strong>%1</strong>帖子已导出,点击下载",
     "uploads-exported": "<strong>%1</strong>上传已导出,点击下载",
     "users-csv-exported": "用户列表 CSV 已导出,点击以下载",
-    "post-queue-accepted": "Your queued post has been accepted. Click here to see your post.",
-    "post-queue-rejected": "Your queued post has been rejected.",
-    "post-queue-notify": "Queued post received a notification:<br/>\"%1\"",
+    "post-queue-accepted": "您先前提交的帖子已通过查验,点击这里查看您的帖子。",
+    "post-queue-rejected": "您先前提交的帖子已被拒绝",
+    "post-queue-notify": "您先前提交的帖子收到了通知:“%1”",
     "email-confirmed": "电子邮箱已确认",
     "email-confirmed-message": "感谢您验证您的电子邮箱。您的帐户现已完全激活。",
     "email-confirm-error-message": "验证的您电子邮箱地址时出现了问题。可能是因为验证码无效或已过期。",
@@ -60,14 +60,14 @@
     "email_only": "用邮件提醒我",
     "notification_and_email": "同时使用 通知 和 邮件 提醒我",
     "notificationType_upvote": "当有人顶了我的帖子时",
-    "notificationType_new-topic": "当有人回复我的帖子时",
+    "notificationType_new-topic": "当您关注的人发布了主题时",
     "notificationType_new-reply": "当您正在查看的主题中有新回复时",
     "notificationType_post-edit": "当您关注的主题有帖子被编辑时",
     "notificationType_follow": "当有人关注您时",
     "notificationType_new-chat": "当您收到聊天消息时",
-    "notificationType_new-group-chat": "When you receive a group chat message",
-    "notificationType_group-invite": "当您收到群组邀请时",
-    "notificationType_group-leave": "When a user leaves your group",
+    "notificationType_new-group-chat": "当您收到群聊消息时",
+    "notificationType_group-invite": "当您收到用户组邀请时",
+    "notificationType_group-leave": "当用户离开您的用户组时",
     "notificationType_group-request-membership": "当有人请求加入您拥有的用户组时",
     "notificationType_new-register": "当有人被添加到申请队列时",
     "notificationType_post-queue": "当有新帖子等待审核时",
diff --git a/public/language/zh-CN/pages.json b/public/language/zh-CN/pages.json
index 7799ed07a4..008509c79b 100644
--- a/public/language/zh-CN/pages.json
+++ b/public/language/zh-CN/pages.json
@@ -13,11 +13,11 @@
     "moderator-tools": "版主工具",
     "flagged-content": "举报管理",
     "ip-blacklist": "IP 黑名单",
-    "post-queue": "提交列表",
+    "post-queue": "发帖队列",
     "users/online": "在线用户",
     "users/latest": "最新用户",
     "users/sort-posts": "发帖最多的用户",
-    "users/sort-reputation": "积分最多的用户",
+    "users/sort-reputation": "声望最多的用户",
     "users/banned": "被封禁的用户",
     "users/most-flags": "被举报次数最多的用户",
     "users/search": "用户搜索",
@@ -49,12 +49,13 @@
     "account/watched_categories": "%1 关注的版块",
     "account/bookmarks": "%1 收藏的帖子",
     "account/settings": "用户设置",
-    "account/watched": "主题已被 %1 关注",
-    "account/ignored": "主题已被 %1 忽略",
+    "account/settings-of": "Changing settings of %1",
+    "account/watched": "%1 关注的主题",
+    "account/ignored": "%1 忽略的主题",
     "account/upvoted": "帖子被 %1 顶过",
     "account/downvoted": "帖子被 %1 踩过",
     "account/best": "%1 发布的最佳帖子",
-    "account/controversial": "Controversial posts made by %1",
+    "account/controversial": "%1 发布的有争议的帖子",
     "account/blocks": "%1 屏蔽的用户",
     "account/uploads": "%1 上传的文件",
     "account/sessions": "已登录的会话",
diff --git a/public/language/zh-CN/post-queue.json b/public/language/zh-CN/post-queue.json
index bfcebbcd04..4901b5bbfd 100644
--- a/public/language/zh-CN/post-queue.json
+++ b/public/language/zh-CN/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "发布队列",
-	"description": "发布队列中暂无新帖。启用此特性,请前往设置&rarr;发布&rarr;发布队列,然后启用发布队列。",
+	"no-queued-posts": "发帖队列中没有帖子。",
+	"no-single-post": "您正在查看的主题或帖子已经不在队列中。它可能已经被批准或删除。",
+	"enabling-help": "要启用此特性,跳转到<a href=\"%1\">设置&rarr;帖子&rarr;发帖队列</a>然后<strong>启用发帖队列</strong>。",
+	"back-to-list": "回到发帖队列",
 	"user": "用户",
+	"when": "When",
 	"category": "版块",
 	"title": "标题",
 	"content": "内容",
@@ -16,16 +20,21 @@
 	"accept": "接受",
 	"reject": "拒绝",
 	"remove": "移除",
-	"notify": "Notify",
-	"notify-user": "Notify User",
-	"confirm-reject": "你想要拒绝这个帖子吗?",
+	"notify": "通知",
+	"notify-user": "通知用户",
+	"confirm-reject": "您想要拒绝这个帖子吗?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "批量操作",
 	"accept-all": "全部同意",
 	"accept-selected": "同意选中项",
 	"reject-all": "全部拒绝",
-	"reject-all-confirm": "你想要拒绝所有帖子吗?",
+	"reject-all-confirm": "您想要拒绝全部帖子吗?",
 	"reject-selected": "拒绝选中项",
 	"reject-selected-confirm": "您确定要拒绝%1个选择的帖子吗?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1个帖子已接受",
 	"bulk-reject-success": "%1个帖子已拒绝"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/recent.json b/public/language/zh-CN/recent.json
index ce54404934..2841867d25 100644
--- a/public/language/zh-CN/recent.json
+++ b/public/language/zh-CN/recent.json
@@ -7,13 +7,5 @@
     "alltime": "总计",
     "no_recent_topics": "暂无主题。",
     "no_popular_topics": "暂无热门主题。",
-    "there-is-a-new-topic": "共计 1 个新主题。",
-    "there-is-a-new-topic-and-a-new-post": "共计 1 个新主题和 1 个新回复。",
-    "there-is-a-new-topic-and-new-posts": "共计 1 个新主题和 %1 个新回复。",
-    "there-are-new-topics": "共计 %1 个新主题。",
-    "there-are-new-topics-and-a-new-post": "共计 %1 个新主题和 1 个新回复。",
-    "there-are-new-topics-and-new-posts": "共计 %1 个新主题和 %2 个新回复。",
-    "there-is-a-new-post": "共计 1 个新回复。",
-    "there-are-new-posts": "共计 %1 个新回复。",
-    "click-here-to-reload": "点击这里重新加载。"
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/register.json b/public/language/zh-CN/register.json
index e24060429c..6a0d65dc23 100644
--- a/public/language/zh-CN/register.json
+++ b/public/language/zh-CN/register.json
@@ -1,5 +1,6 @@
 {
     "register": "注册",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "取消注册",
     "help.email": "默认情况下,您的电子邮箱不会公开。",
     "help.username_restrictions": "全局唯一的用户名,长度 %1 到 %2 个字。其他人可以使用 @<span id='yourUsername'>用户名</span> 提及您。",
diff --git a/public/language/zh-CN/reset_password.json b/public/language/zh-CN/reset_password.json
index db11fed65c..50e0df910b 100644
--- a/public/language/zh-CN/reset_password.json
+++ b/public/language/zh-CN/reset_password.json
@@ -8,7 +8,7 @@
     "new_password": "新密码",
     "repeat_password": "验证密码",
     "changing_password": "正在更改密码",
-    "enter_email": "请输入您的<strong>电子邮箱地址</strong>,我们将会发送一份邮件协助您重置账号密码。",
+    "enter_email": "请输入您的<strong>电子邮箱地址</strong>,我们将会发送一份带有如何重置您的账号密码的操作指南的邮件给您。",
     "enter_email_address": "输入邮箱地址",
     "password_reset_sent": "如果指定的邮件地址关联到已存在的用户账号,该账号将收到一条密码重置邮件,请注意该邮件一分钟内只发送一次",
     "invalid_email": "无效的电子邮箱/电子邮箱不存在!",
diff --git a/public/language/zh-CN/search.json b/public/language/zh-CN/search.json
index b2926eaa69..0b5808ef16 100644
--- a/public/language/zh-CN/search.json
+++ b/public/language/zh-CN/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "输入内容进行搜索",
     "results_matching": "共 %1 条结果匹配 \"%2\",(耗时 %3 秒)",
     "no-matches": "无匹配结果",
     "advanced-search": "高级搜索",
     "in": "在",
-    "titles": "标题",
-    "titles-posts": "标题和回帖",
+    "in-titles": "在标题中",
+    "in-titles-posts": "在标题和帖子中",
+    "in-posts": "在帖子中",
+    "in-categories": "在板块中",
+    "in-users": "在用户中",
+    "in-tags": "在标签中",
+    "categories": "板块",
+    "all-categories": "所有板块",
+    "categories-x": "板块: %1",
+    "categories-watched-categories": "板块:关注的板块",
+    "type-a-category": "输入一个版块",
+    "tags": "标签",
+    "tags-x": "标签:%1",
+    "type-a-tag": "输入一个标签",
     "match-words": "匹配字符",
+    "match-all-words": "匹配所有文字",
+    "match-any-word": "匹配任意文字",
     "all": "所有",
     "any": "任何",
     "posted-by": "发表",
-    "in-categories": "在版块",
+    "posted-by-usernames": "被发布:%1",
+    "type-a-username": "输入用户名",
     "search-child-categories": "搜索子版块",
     "has-tags": "有标签",
     "reply-count": "回复数",
+    "replies": "回复",
+    "replies-atleast-count": "回复:至少有 %1",
+    "replies-atmost-count": "回复:至多有 %1",
     "at-least": "至少",
     "at-most": "至多",
     "relevance": "关联",
+    "time": "时间",
     "post-time": "发帖时间",
     "votes": "赞同数",
     "newer-than": "晚于",
@@ -28,7 +48,22 @@
     "three-months": "三个月",
     "six-months": "六个月",
     "one-year": "一年",
+    "time-newer-than-86400": "时间:比昨天更早",
+    "time-older-than-86400": "时间:比昨天更晚",
+    "time-newer-than-604800": "时间:一周以内",
+    "time-older-than-604800": "时间:一周前",
+    "time-newer-than-1209600": "时间:两周以内",
+    "time-older-than-1209600": "时间:两周前",
+    "time-newer-than-2592000": "时间:一个月以内",
+    "time-older-than-2592000": "时间:一个月前",
+    "time-newer-than-7776000": "时间:三个月以内",
+    "time-older-than-7776000": "时间:三个月前",
+    "time-newer-than-15552000": "时间:六个月以内",
+    "time-older-than-15552000": "时间:六个月前",
+    "time-newer-than-31104000": "时间:一年以内",
+    "time-older-than-31104000": "时间:一年前",
     "sort-by": "排序",
+    "sort": "排序",
     "last-reply-time": "最后回复时间",
     "topic-title": "主题标题",
     "topic-votes": "主题赞同数",
@@ -39,11 +74,36 @@
     "category": "版块",
     "descending": "倒序",
     "ascending": "顺序",
+    "sort-by-relevance-desc": "按以下方式排序: 相关性降序排列",
+    "sort-by-relevance-asc": "按以下方式排序: 相关性升序排列",
+    "sort-by-timestamp-desc": "按以下方式排序: 发布时间降序排列",
+    "sort-by-timestamp-asc": "按以下方式排序: 发布时间升序排列",
+    "sort-by-votes-desc": "按以下方式排序: 投票数降序排列",
+    "sort-by-votes-asc": "按以下方式排序: 投票数升序排列",
+    "sort-by-topic.lastposttime-desc": "按以下方式排序: 最后一次回复时间降序排列",
+    "sort-by-topic.lastposttime-asc": "按以下方式排序: 最后一次回复时间升序排列",
+    "sort-by-topic.title-desc": "按以下方式排序: 按主题标题降序排列",
+    "sort-by-topic.title-asc": "按以下方式排序: 按主题标题升序排列",
+    "sort-by-topic.postcount-desc": "按以下方式排序: 按回复数降序排列",
+    "sort-by-topic.postcount-asc": "按以下方式排序: 按回复数升序排列",
+    "sort-by-topic.viewcount-desc": "按以下方式排序: 按浏览量降序排列",
+    "sort-by-topic.viewcount-asc": "按以下方式排序: 按浏览量升序排列",
+    "sort-by-topic.votes-desc": "按以下方式排序: 主题投票数降序排列",
+    "sort-by-topic.votes-asc": "按以下方式排序: 主题投票数升序排列",
+    "sort-by-topic.timestamp-desc": "按以下方式排序: 主题开始时间降序排列",
+    "sort-by-topic.timestamp-asc": "按以下方式排序: 主题开始时间升序排列",
+    "sort-by-user.username-desc": "按以下方式排序: 用户名按降序排列",
+    "sort-by-user.username-asc": "按以下方式排序: 用户名按升序排列",
+    "sort-by-category.name-desc": "按以下方式排序: 版块降序排列",
+    "sort-by-category.name-asc": "按以下方式排序:版块升序排列",
+    "save": "保存",
     "save-preferences": "保存设置",
     "clear-preferences": "清除设置",
     "search-preferences-saved": "搜索设置已保存",
     "search-preferences-cleared": "搜索设置已清除",
     "show-results-as": "结果显示为",
+    "show-results-as-topics": "以主题显示结果",
+    "show-results-as-posts": "以帖子显示结果",
     "see-more-results": "查看更多结果 (%1)",
     "search-in-category": "在\"%1\"中搜索"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/social.json b/public/language/zh-CN/social.json
new file mode 100644
index 0000000000..cd4720aaa6
--- /dev/null
+++ b/public/language/zh-CN/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "通过 Twitter 登录",
+	"sign-up-with-twitter": "通过 Twitter 注册",
+	"sign-in-with-github": "通过 Github 登录",
+	"sign-up-with-github": "通过 Github 注册",
+	"sign-in-with-google": "通过 Google 登录",
+	"sign-up-with-google": "通过 Google 注册",
+	"log-in-with-facebook": "通过 Facebook 登录",
+	"continue-with-facebook": "继续使用 Facebook 登录"
+}
\ No newline at end of file
diff --git a/public/language/zh-CN/success.json b/public/language/zh-CN/success.json
index 951863f0a6..37478a394a 100644
--- a/public/language/zh-CN/success.json
+++ b/public/language/zh-CN/success.json
@@ -1,7 +1,7 @@
 {
     "success": "成功",
     "topic-post": "您已成功发布。",
-    "post-queued": "你的帖子正在等待批准。帖子被批准或者拒绝的时候,你会收到一个通知。",
+    "post-queued": "您的帖子正在等待批准。您会在帖子被批准或者被拒绝的时候收到一个通知。",
     "authentication-successful": "验证成功",
     "settings-saved": "设置已保存!"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/tags.json b/public/language/zh-CN/tags.json
index 11f336cb03..6b8193f7b6 100644
--- a/public/language/zh-CN/tags.json
+++ b/public/language/zh-CN/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "此标签还没有主题帖。",
+    "no-tags-found": "No tags found",
     "tags": "标签",
     "enter_tags_here": "在这里输入标签,每个标签 %1 到 %2 个字符。",
     "enter_tags_here_short": "输入标签...",
diff --git a/public/language/zh-CN/topic.json b/public/language/zh-CN/topic.json
index f146040c10..112cb3d171 100644
--- a/public/language/zh-CN/topic.json
+++ b/public/language/zh-CN/topic.json
@@ -20,8 +20,8 @@
     "login-to-view": "🔒登录查看",
     "edit": "编辑",
     "delete": "删除",
-    "delete-event": "删除元素",
-    "delete-event-confirm": "您确定要删除此元素吗?",
+    "delete-event": "删除事件",
+    "delete-event-confirm": "您确定您要删除此事件吗?",
     "purge": "清除",
     "restore": "恢复",
     "move": "移动",
@@ -37,24 +37,38 @@
     "moved": "已移动",
     "moved-from": "移自%1版 ",
     "copy-ip": "复制IP",
-    "ban-ip": "封禁IP",
+    "ban-ip": "封禁 IP",
     "view-history": "编辑历史",
-    "locked-by": "锁定自",
-    "unlocked-by": "解锁自",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "编写<a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "写于<a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "回复了<a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "在 <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a> 中回复了<a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a>",
+    "user-locked-topic-ago": "%1 锁定了该主题 %2",
+    "user-locked-topic-on": "%1 在 %2 中锁定了该主题",
+    "user-unlocked-topic-ago": "%1 解锁了该主题 %2",
+    "user-unlocked-topic-on": "%1 在 %2 中解锁了该主题",
+    "user-pinned-topic-ago": "%1 固定了该主题 %2",
+    "user-pinned-topic-on": "%1 在 %2 中固定了该主题 ",
+    "user-unpinned-topic-ago": "%1 取消固定了该主题 %2",
+    "user-unpinned-topic-on": "%1 取消固定该主题于 %2",
+    "user-deleted-topic-ago": "%1 删除了该主题 %2",
+    "user-deleted-topic-on": "%1 删除了该主题于 %2",
+    "user-restored-topic-ago": "%1 恢复了该主题 %2",
+    "user-restored-topic-on": "%1 恢复了该主题于 %2",
+    "user-moved-topic-from-ago": "%1 从 %2 %3 移动了该主题",
+    "user-moved-topic-from-on": "%1 从 %3 中的 %2 移动了该主题",
+    "user-queued-post-ago": "%1 篇 <a href=\"%2\">已排队  </a>  待审批的帖子 %3",
+    "user-queued-post-on": "在 %3 中 <a href=\"%2\">已排队  </a>  %1 篇待审批的帖子",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">被引用</a> 于这个主题 %3",
+    "user-referenced-topic-on": " %1 在 %3 中 <a href=\"%2\">引用了</a> 这个主题",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">分支于</a> 这个主题 %3",
+    "user-forked-topic-on": "%1 这个主题的<a href=\"%2\">分支</a>在 %3",
     "bookmark_instructions": "点击阅读本主题帖中的最新回复",
-    "flag-post": "举报此帖",
+    "flag-post": "举报这个帖子",
     "flag-user": "举报此用户",
     "already-flagged": "已举报",
     "view-flag-report": "查看举报报告",
-    "resolve-flag": "Resolve Flag",
+    "resolve-flag": "解决举报",
     "merged_message": "此主题已并入<a href=\"/topic/%1\">%2</a>",
     "deleted_message": "此主题已被删除。只有拥有主题管理权限的用户可以查看。",
     "following_topic.message": "当有人回复此主题时,您会收到通知。",
@@ -68,7 +82,7 @@
     "unwatch": "取消关注",
     "watch.title": "当此主题有新回复时,通知我",
     "unwatch.title": "取消关注此主题",
-    "share_this_post": "分享此帖",
+    "share_this_post": "分享此帖子",
     "watching": "关注中",
     "not-watching": "未关注",
     "ignoring": "忽略中",
@@ -95,16 +109,16 @@
     "thread_tools.purge": "清除主题",
     "thread_tools.purge_confirm": "确认清除此主题吗?",
     "thread_tools.merge_topics": "合并主题",
-    "thread_tools.merge": "合并",
+    "thread_tools.merge": "合并主题",
     "topic_move_success": "注意:此主题将会被移动到“1%”。点击此处可取消。",
     "topic_move_multiple_success": "注意:以下主题将会被移动到“%1”,点击此处可取消。",
     "topic_move_all_success": "注意 :全部主题都将被移动到“1%”,点击此处可取消。",
     "topic_move_undone": "撤销主题移动",
     "topic_move_posts_success": "此帖子将马上移动。点击此处撤销",
     "topic_move_posts_undone": "撤销帖子移动",
-    "post_delete_confirm": "您确定要删除此回复吗?",
-    "post_restore_confirm": "您确定要恢复此回复吗?",
-    "post_purge_confirm": "您确定要清除此回复吗?",
+    "post_delete_confirm": "您确定您要删除此帖子吗?",
+    "post_restore_confirm": "您确定您要恢复此帖子吗?",
+    "post_purge_confirm": "您确定您要清除此帖子吗?",
     "pin-modal-expiry": "失效日期",
     "pin-modal-help": "您可以在此处选择为置顶主题设置一个失效日期。或者您也可以选择不设置,则该主题将会一直被置顶,直到管理员取消置顶。",
     "load_categories": "正在载入版块",
@@ -113,15 +127,15 @@
     "bookmark": "书签",
     "bookmarks": "书签",
     "bookmarks.has_no_bookmarks": "您还没有添加任何书签",
-    "copy-permalink": "Copy Permalink",
+    "copy-permalink": "复制固定链接",
     "loading_more_posts": "正在加载更多帖子",
     "move_topic": "移动主题",
     "move_topics": "移动主题",
     "move_post": "移动帖子",
-    "post_moved": "回复已移动!",
+    "post_moved": "帖子已移动!",
     "fork_topic": "分割主题",
     "enter-new-topic-title": "输入新的主题标题",
-    "fork_topic_instruction": "点击将分割的帖子",
+    "fork_topic_instruction": "点击您想创建分支的帖子,为新主题输入一个标题,然后点击分支主题。",
     "fork_no_pids": "未选中帖子!",
     "no-posts-selected": "未选中帖子!",
     "x-posts-selected": "已选中%1个帖子",
@@ -135,17 +149,20 @@
     "merge-select-main-topic": "选择首要主题",
     "merge-new-title-for-topic": "主题的新标题",
     "topic-id": "主题 ID",
-    "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_posts_instruction": "选中您想移动的帖子,然后输入一个主题 ID 或前往目标主题",
+    "move_topic_instruction": "选择目标版块然后点击移动",
     "change_owner_instruction": "点击您想转移给其他用户的帖子",
     "composer.title_placeholder": "在此输入您主题的标题...",
     "composer.handle_placeholder": "在这里输入您的姓名/昵称",
+    "composer.hide": "隐藏",
     "composer.discard": "撤销",
     "composer.submit": "提交",
-    "composer.additional-options": "Additional Options",
-    "composer.schedule": "Schedule",
+    "composer.additional-options": "附加选项",
+    "composer.post-later": "稍后发布",
+    "composer.schedule": "定时",
     "composer.replying_to": "正在回复 %1",
     "composer.new_topic": "新主题",
-    "composer.editing": "Editing",
+    "composer.editing": "编辑中",
     "composer.uploading": "正在上传...",
     "composer.thumb_url_label": "粘贴主题缩略图网址",
     "composer.thumb_title": "给此主题添加缩略图",
@@ -162,27 +179,29 @@
     "newest_to_oldest": "从新到旧",
     "most_votes": "最多赞同",
     "most_posts": "回复最多",
-    "most_views": "Most Views",
+    "most_views": "最多浏览",
     "stale.title": "接受建议并创建新主题?",
-    "stale.warning": "您回复的主题已经很古老了,是否发布新主题并引用此主题的内容?",
+    "stale.warning": "您回复的主题已经很古老了。您是否用发布新主题代替,并引用此主题的内容?",
     "stale.create": "创建新主题",
     "stale.reply_anyway": "仍然回复此帖",
     "link_back": "回复: [%1](%2)",
     "diffs.title": "历史发布记录",
-    "diffs.description": "此主题已经重新发布并修订。点击某个时间点查看修订的内容。",
-    "diffs.no-revisions-description": "该贴已重新修改",
+    "diffs.description": "此帖子有 <strong>%1</strong>个修订。点击下方修订中的一个以查看某个时间点帖子的内容。",
+    "diffs.no-revisions-description": "此帖子有 <strong>%1</strong> 个修订。",
     "diffs.current-revision": "当前版本",
     "diffs.original-revision": "原始版本",
     "diffs.restore": "恢复到此修订",
     "diffs.restore-description": "恢复后,新的修订版本将会被添加到此帖子的编辑历史记录中。",
     "diffs.post-restored": "帖子成功恢复到更早的修订版本",
     "diffs.delete": "删除此修订",
-    "diffs.deleted": "Revision deleted",
+    "diffs.deleted": "修订已删除",
     "timeago_later": "%1 后",
     "timeago_earlier": "%1 前",
-    "first-post": "First post",
-    "last-post": "Last post",
-    "go-to-my-next-post": "Go to my next post",
-    "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "first-post": "第一个帖子",
+    "last-post": "最后一个帖子",
+    "go-to-my-next-post": "转到我的下一个帖子",
+    "no-more-next-post": "您在此主题中没有更多的帖子了",
+    "post-quick-reply": "快速回复",
+    "navigator.index": "发布 %2 的 %1",
+    "navigator.unread": "未读 %1"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/uploads.json b/public/language/zh-CN/uploads.json
index 568ce71767..38bf9ab3b1 100644
--- a/public/language/zh-CN/uploads.json
+++ b/public/language/zh-CN/uploads.json
@@ -4,6 +4,6 @@
     "upload-success": "文件上传成功!",
     "maximum-file-size": "最大 %1 kb",
     "no-uploads-found": "没有找到上传文件",
-    "public-uploads-info": "上传公开的文件,所有访客均可查看。",
+    "public-uploads-info": "上传是公开的,所有访客均可查看。",
     "private-uploads-info": "上传私有的文件,仅登陆用户可见。"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/user.json b/public/language/zh-CN/user.json
index 904ac4a7c4..2bf7c8de65 100644
--- a/public/language/zh-CN/user.json
+++ b/public/language/zh-CN/user.json
@@ -19,8 +19,8 @@
     "delete_account_as_admin": "删除<strong>账号</strong>",
     "delete_content": "删除账号内容",
     "delete_all": "删除账号和内容",
-    "delete_account_confirm": "您确定要匿名化您的所有帖子,并删除您的账户吗?<br /><strong>此操作不可撤销,您将无法恢复您的任何数据</strong><br /><br />请输入您的密码,以确认删除此帐户",
-    "delete_this_account_confirm": "您确定要删除账户同时保留其发布的内容吗? <br /><strong>此操作不可逆,帖子将被匿名化,而且您无法恢复被删除账户的任何帖子</strong><br /><br />",
+    "delete_account_confirm": "您确定要匿名化您的所有帖子并删除账号吗?<br /><strong>此操作不可撤销,您将无法恢复您的任何数据</strong><br /><br />请输入您的密码,以确认您要删除这个账号。",
+    "delete_this_account_confirm": "您确定您要删除此账号同时保留其发布的内容吗? <br /><strong>此操作不可逆,帖子将被匿名化,而且您将无法恢复帖子和被删除账号的联系</strong><br /><br />",
     "delete_account_content_confirm": "您确定要删除账户内容(帖子/主题/上传)吗? <br /><strong>此操作不可逆,而且您无法恢复任何数据</strong><br /><br />",
     "delete_all_confirm": "您确定要删除此账号和它的所有内容(帖子/主题/上传)吗? <br /><strong>此操作不可逆,而且您无法恢复任何数据</strong><br /><br />",
     "account-deleted": "帐号已删除",
@@ -43,6 +43,7 @@
     "followers": "粉丝",
     "following": "关注",
     "blocks": "屏蔽",
+    "blocked-users": "Blocked users",
     "block_toggle": "屏蔽该用户",
     "block_user": "屏蔽用户",
     "unblock_user": "解除屏蔽用户",
@@ -68,6 +69,7 @@
     "upload_new_picture": "上传新头像",
     "upload_new_picture_from_url": "上传来自URL的新头像",
     "current_password": "当前密码",
+    "new_password": "New Password",
     "change_password": "更改密码",
     "change_password_error": "无效的密码!",
     "change_password_error_wrong_current": "您的当前密码不正确!",
@@ -97,7 +99,7 @@
     "digest_off": "关闭",
     "digest_daily": "每天",
     "digest_weekly": "每周",
-    "digest_biweekly": "Bi-Weekly",
+    "digest_biweekly": "每两周",
     "digest_monthly": "每月",
     "has_no_follower": "此用户还没有粉丝 :(",
     "follows_no_one": "此用户尚未关注任何人 :(",
@@ -115,6 +117,8 @@
     "paginate_description": "使用分页式版块浏览",
     "topics_per_page": "每页主题数",
     "posts_per_page": "每页帖子数",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "最大值 %1",
     "acp_language": "管理员页面语言",
     "notifications": "通知",
@@ -133,7 +137,7 @@
     "scroll_to_my_post": "在提交回复之后显示新回复",
     "follow_topics_you_reply_to": "关注您回复过的主题",
     "follow_topics_you_create": "关注您创建的主题",
-    "grouptitle": "群组称号",
+    "grouptitle": "用户组称号",
     "group-order-help": "选择群组然后使用箭头排列称号",
     "no-group-title": "不展示群组称号",
     "select-skin": "选择皮肤",
@@ -141,13 +145,13 @@
     "homepage": "首页",
     "homepage_description": "选择一个页面作为论坛的首页,否则设置为 ‘空’ 使用默认首页。",
     "custom_route": "自定义首页路由",
-    "custom_route_help": "输入路由名称,前面不需要斜杠 ( 例如, \"recent\" 或 \"category/2/general-discussion\" )",
+    "custom_route_help": "输入路由名称,前面不需要斜杠 ( 例如 \"recent\" 或 \"category/2/general-discussion\" )",
     "sso.title": "单点登录服务",
     "sso.associated": "已关联到",
     "sso.not-associated": "点击这里来关联",
     "sso.dissociate": "解除关联",
     "sso.dissociate-confirm-title": "确认解除关联",
-    "sso.dissociate-confirm": "您确定要将您的账户与 %1 解除关联吗?",
+    "sso.dissociate-confirm": "您确定您要将您的账号与 %1 解除关联吗?",
     "info.latest-flags": "最新举报",
     "info.no-flags": "没有找到被举报的帖子",
     "info.ban-history": "最近封禁历史",
@@ -158,9 +162,9 @@
     "info.banned-reason-label": "原因",
     "info.banned-no-reason": "没有原因",
     "info.mute-history": "最近禁言历史",
-    "info.no-mute-history": "该用户从未被禁言",
+    "info.no-mute-history": "此用户从未被禁言",
     "info.muted-until": "禁言到 %1",
-    "info.muted-expiry": "Expiry",
+    "info.muted-expiry": "到期时间",
     "info.muted-no-reason": "没有原因",
     "info.username-history": "历史用户名",
     "info.email-history": "历史邮箱",
@@ -168,23 +172,25 @@
     "info.moderation-note.success": "版主备注已保存",
     "info.moderation-note.add": "添加备注",
     "sessions.description": "此页面允许您查看当前论坛的所有激活的会话(active session),并在需要的时候关闭它们.您可以通过注销您的账户来关闭自己的会话(session)",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "您的权利与许可",
     "consent.lead": "本论坛将会收集与处理您的个人信息。",
-    "consent.intro": "我们收集这些信息将仅用于个性化您于本社区的体验,和关联您的账户与您所发表的帖子。在注册过程中您需要提供一个用户名和邮箱地址,您也可以选择是否提供额外的个人信息,以完善您的用户资料。<br /><br />在您的用户账户有效期内,我们将保留您的信息。您可以在任何时候通过删除您的账号,以撤回您的许可。您可以在任何时候通过您的权力与许可页面,获取一份您对本论坛的贡献的副本。<br /><br />如果您有任何疑问,我们鼓励您与本论坛管理团队联系。",
-    "consent.email_intro": "我们有时可能会向您的注册邮箱发送电子邮件,以向您提供有关于您的新动态和/或新活动。您可以通过您的用户设置页面自定义(包括直接禁用)社区摘要的发送频率,以及选择性地接收哪些类型的通知。",
+    "consent.intro": "我们收集这些信息将仅用于个性化您于本社区的体验,和关联您的用户账号与您所发表的帖子。在注册过程中您需要提供一个用户名和邮箱地址,您也可以选择是否提供额外的个人信息,以完善您的用户资料。<br /><br />在您的用户账号有效期内,我们将保留您的信息。您可以在任何时候通过删除您的账号,以撤回您的许可。您可以在任何时候通过您的权力与许可页面,获取一份您对本论坛的贡献的副本。<br /><br />如果您有任何疑问,我们鼓励您与本论坛管理团队联系。",
+    "consent.email_intro": "我们有时可能会向您的注册邮件地址发送电子邮件,以向您提供有关于您的新动态和/或新活动。您可以通过您的用户设置页面自定义(包括直接禁用)社区摘要的发送频率,以及选择性地接收哪些类型的通知。",
     "consent.digest_frequency": "本社区默认每 %1 发送一封摘要邮件,除非您在用户设置中明确更改了此项。",
     "consent.digest_off": "本社区默认不发送摘要邮件,除非您在用户设置中明确更改了此项。",
     "consent.received": "您已许可本网站收集与处理您的个人数据。无需其他额外操作。",
-    "consent.not_received": "您未许可本网站收集与处理您的个人数据。本网站的管理团队可能于任何时候删除您的账户,以符合通用数据保护条例的要求。",
+    "consent.not_received": "您未许可本网站收集与处理您的个人数据。本网站的管理团队可能于任何时候删除您的账号,以符合通用数据保护条例的要求。",
     "consent.give": "授予许可",
     "consent.right_of_access": "您拥有数据访问权",
-    "consent.right_of_access_description": "您有权访问本网站根据需求收集的您的任何数据。您可以点击下方相应按钮,获取这些数据的副本。",
+    "consent.right_of_access_description": "您有权在您的要求下访问本网站根据需求收集的您的任何数据。您可以点击下方相应按钮,获取这些数据的副本。",
     "consent.right_to_rectification": "您拥有纠正权",
     "consent.right_to_rectification_description": "您拥有修改或更新提供给我们的任何不准确的个人数据的权力。您可以通过编辑以更新个人资料,并可以修改您发表的内容。若非如此,请联系本网站的管理团队。",
     "consent.right_to_erasure": "您拥有被遗忘权",
-    "consent.right_to_erasure_description": "您随时都可以通过删除帐号,来撤销数据收集和处理的许可。您的个人资料可以被删除,但是您发表的内容仍然会保留。如果您想要同时删除您的帐号<strong>和</strong>内容,请联系此网站的管理团队。",
+    "consent.right_to_erasure_description": "您随时都可以通过删除账号,来撤销数据收集和处理的许可。您的个人资料可以被删除,但是您发表的内容仍然会保留。如果您想要同时删除您的账号<strong>和</strong>内容,请联系此网站的管理团队。",
     "consent.right_to_data_portability": "您拥有数据转移权",
-    "consent.right_to_data_portability_description": "您也许想导出有关您和您的账号的机器可读副本。您可以点击下方的按钮来获取它们。",
+    "consent.right_to_data_portability_description": "您可以向我们要一份有关您和您的账号收集的数据的的机器可读输出。您可以点击下方的按钮来获取它们。",
     "consent.export_profile": "导出个人资料 (.json)",
     "consent.export-profile-success": "资料导出完成后,您将会收到一条通知。",
     "consent.export_uploads": "导出上传文件 (.zip)",
@@ -192,8 +198,8 @@
     "consent.export_posts": "导出帖子 (.csv)",
     "consent.export-posts-success": "帖子导出完成后,您将会收到一条通知。",
     "emailUpdate.intro": "请在下方输入您的电子邮箱地址。此论坛使用您的电子邮箱地址用于定时发送摘要和通知,以及用于忘记密码时找回账号。",
-    "emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
+    "emailUpdate.optional": "<strong>此项为可选</strong>。您不必提供您的电子邮件地址,但如果没有一个经过验证的电子邮件地址,您将无法恢复您的账号或使用电子邮件登录。",
     "emailUpdate.required": "<strong>此字段为必填</strong>。",
     "emailUpdate.change-instructions": "将向输入的电子邮箱地址发送一封带有唯一链接的确认电子邮件。访问该链接将验证您对该电子邮箱的所有权,它将在您的账号上处于活动状态。在任何时候,您都可以在您的账号页面更新存档的电子邮箱地址。",
-    "emailUpdate.password-challenge": "Please enter your password in order to verify account ownership."
+    "emailUpdate.password-challenge": "请输入您的密码以验证账号所有权。"
 }
\ No newline at end of file
diff --git a/public/language/zh-CN/users.json b/public/language/zh-CN/users.json
index 055a7028e1..711ced9253 100644
--- a/public/language/zh-CN/users.json
+++ b/public/language/zh-CN/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "所有用户",
     "latest_users": "最新用户",
     "top_posters": "发帖排行",
     "most_reputation": "声望排行",
     "most_flags": "举报最多",
     "search": "搜索",
     "enter_username": "输入用户名搜索",
-    "search-user-for-chat": "搜索用户以开始聊天",
+    "search-user-for-chat": "搜索一个用户开始聊天:",
     "load_more": "加载更多",
     "users-found-search-took": "找到 %1 位用户!耗时 %2 秒。",
     "filter-by": "过滤选项",
diff --git a/public/language/zh-TW/admin/admin.json b/public/language/zh-TW/admin/admin.json
index 4d707e36bf..86960c8017 100644
--- a/public/language/zh-TW/admin/admin.json
+++ b/public/language/zh-TW/admin/admin.json
@@ -4,8 +4,6 @@
 
 	"acp-title": "%1 | NodeBB 管理控制台",
 	"settings-header-contents": "内容",
-	"changes-saved": "Changes Saved",
-	"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
 	"changes-not-saved": "Changes Not Saved",
 	"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
 }
\ No newline at end of file
diff --git a/public/language/zh-TW/admin/appearance/customise.json b/public/language/zh-TW/admin/appearance/customise.json
index 9797ee69c7..acc46d0a9a 100644
--- a/public/language/zh-TW/admin/appearance/customise.json
+++ b/public/language/zh-TW/admin/appearance/customise.json
@@ -1,7 +1,7 @@
 {
-	"custom-css": "自訂 CSS/LESS",
-	"custom-css.description": "在這裡輸入您想應用於所有其它風格的 CSS/LESS,",
-	"custom-css.enable": "啟用自訂 CSS/LESS",
+	"custom-css": "Custom CSS/SASS",
+	"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
+	"custom-css.enable": "Enable Custom CSS/SASS",
 
 	"custom-js": "自訂 Javascript",
 	"custom-js.description": "在這裡輸入您想在頁面加載完成後執行的 Javascript 程式碼。",
diff --git a/public/language/zh-TW/admin/dashboard.json b/public/language/zh-TW/admin/dashboard.json
index 4b9601493e..01509f41b8 100644
--- a/public/language/zh-TW/admin/dashboard.json
+++ b/public/language/zh-TW/admin/dashboard.json
@@ -83,8 +83,11 @@
 	"back-to-dashboard": "回到儀表板",
 	"details.no-users": "沒有使用者有在選定的時間內註冊",
 	"details.no-topics": "沒有新增的主題在選定的時間內",
-	"details.no-searches": "No searches have been made yet",
+	"details.no-searches": "No searches have been made within the selected timeframe",
 	"details.no-logins": "No logins have been recorded within the selected timeframe",
 	"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
-	"details.logins-login-time": "登入時間"
+	"details.logins-login-time": "登入時間",
+	"start": "Start",
+	"end": "End",
+	"filter": "Filter"
 }
diff --git a/public/language/zh-TW/admin/extend/widgets.json b/public/language/zh-TW/admin/extend/widgets.json
index b2814cdff5..a89a37eb55 100644
--- a/public/language/zh-TW/admin/extend/widgets.json
+++ b/public/language/zh-TW/admin/extend/widgets.json
@@ -8,9 +8,9 @@
 	"containers.none": "無",
 	"container.well": "Well",
 	"container.jumbotron": "超大屏幕",
-	"container.panel": "面板",
-	"container.panel-header": "面板標題",
-	"container.panel-body": "面板內容",
+	"container.card": "Card",
+	"container.card-header": "Card Header",
+	"container.card-body": "Card Body",
 	"container.alert": "警示",
 
 	"alert.confirm-delete": "確認刪除此小工具?",
diff --git a/public/language/zh-TW/admin/manage/groups.json b/public/language/zh-TW/admin/manage/groups.json
index 99f07175bf..4e6c8c7236 100644
--- a/public/language/zh-TW/admin/manage/groups.json
+++ b/public/language/zh-TW/admin/manage/groups.json
@@ -39,6 +39,5 @@
 	"revert": "重置",
 
 	"edit.no-users-found": "沒有找到使用者",
-	"edit.confirm-remove-user": "確認刪除此使用者嗎?",
-	"edit.save-success": "設定已儲存!"
+	"edit.confirm-remove-user": "確認刪除此使用者嗎?"
 }
\ No newline at end of file
diff --git a/public/language/zh-TW/admin/manage/privileges.json b/public/language/zh-TW/admin/manage/privileges.json
index b4e1a30bda..6d9e48d3f3 100644
--- a/public/language/zh-TW/admin/manage/privileges.json
+++ b/public/language/zh-TW/admin/manage/privileges.json
@@ -49,7 +49,6 @@
 	"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
 	"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
 	"alert.confirm-save": "Please confirm your intention to save these privileges",
-	"alert.saved": "Privilege changes saved and applied",
 	"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
 	"alert.discarded": "Privilege changes discarded",
 	"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
diff --git a/public/language/zh-TW/admin/settings/api.json b/public/language/zh-TW/admin/settings/api.json
index 50892925f3..746b99068b 100644
--- a/public/language/zh-TW/admin/settings/api.json
+++ b/public/language/zh-TW/admin/settings/api.json
@@ -11,6 +11,9 @@
 	"uid": "User ID",
 	"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
 	"description": "Description",
+	"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.",
+	"last-seen-never": "This key has never been used.",
 	"no-description": "No description specified.",
 	"token-on-save": "Token will be generated once form is saved"
 }
\ No newline at end of file
diff --git a/public/language/zh-TW/admin/settings/navigation.json b/public/language/zh-TW/admin/settings/navigation.json
index de20547ab9..fd062ccc74 100644
--- a/public/language/zh-TW/admin/settings/navigation.json
+++ b/public/language/zh-TW/admin/settings/navigation.json
@@ -12,7 +12,7 @@
 	"groups": "群組:",
 	"open-new-window": "在新窗口中打開",
 	"dropdown": "Dropdown",
-	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
+	"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a class=&quot;dropdown-item&quot; href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
 
 	"btn.delete": "刪除",
 	"btn.disable": "禁用",
diff --git a/public/language/zh-TW/admin/settings/user.json b/public/language/zh-TW/admin/settings/user.json
index 6848e90747..2e725725ea 100644
--- a/public/language/zh-TW/admin/settings/user.json
+++ b/public/language/zh-TW/admin/settings/user.json
@@ -29,6 +29,8 @@
 	"session-time-days": "天",
 	"session-time-seconds": "秒",
 	"session-time-help": "這些值將用於控制使用者在登入時選中&quot;記住我&quot;後能夠保持登入的持續時間。注意以下數字中只有一個將被使用。若<i>秒</i>值為空我們將改為使用<i>天</i>。若<i>天</i>值為空我們將使用預設值<i>14天</i>。",
+	"session-duration": "Session length if \"Remember Me\" is not checked (seconds)",
+	"session-duration-help": "By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
 	"online-cutoff": "分鐘後認定使用者已離線",
 	"online-cutoff-help": "若使用者在此時間後未作出任何動作,他們將被視為不活躍狀態且不會收到即時更新。",
 	"registration": "使用者註冊",
diff --git a/public/language/zh-TW/error.json b/public/language/zh-TW/error.json
index 1b1381b91f..4f4577f29c 100644
--- a/public/language/zh-TW/error.json
+++ b/public/language/zh-TW/error.json
@@ -101,6 +101,7 @@
     "guest-upload-disabled": "訪客不允許上傳",
     "cors-error": "由於CORS設定錯誤,無法上傳圖片。",
     "upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
+    "upload-error-fallback": "Unable to upload image — %1",
     "scheduling-to-past": "Please select a date in the future.",
     "invalid-schedule-date": "Please enter a valid date and time.",
     "cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
@@ -134,6 +135,8 @@
     "group-already-requested": "已提交您的請求",
     "group-join-disabled": "您目前無法加入此群組",
     "group-leave-disabled": "您目前無法離開此群組",
+    "group-user-not-pending": "User does not have a pending request to join this group.",
+    "gorup-user-not-invited": "User has not been invited to join this group.",
     "post-already-deleted": "此貼文已被刪除",
     "post-already-restored": "此貼文已經恢復",
     "topic-already-deleted": "此主題已被刪除",
@@ -224,5 +227,6 @@
     "api.429": "You have made too many requests, please try again later",
     "api.500": "An unexpected error was encountered while attempting to service your request.",
     "api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
-    "api.503": "The route you are trying to call is not currently available due to a server configuration"
+    "api.503": "The route you are trying to call is not currently available due to a server configuration",
+    "api.reauth-required": "The resource you are trying to access requires (re-)authentication."
 }
\ No newline at end of file
diff --git a/public/language/zh-TW/flags.json b/public/language/zh-TW/flags.json
index bfb22a77a3..213dc72259 100644
--- a/public/language/zh-TW/flags.json
+++ b/public/language/zh-TW/flags.json
@@ -3,25 +3,27 @@
 	"reports": "Reports",
 	"first-reported": "First Reported",
 	"no-flags": "帥!沒發現任何的舉報。",
+	"x-flags-found": "%1 flag(s) found.",
 	"assignee": "受指派人",
 	"update": "更新",
 	"updated": "已更新",
 	"resolved": "Resolved",
 	"target-purged": "被舉報的內容已經被清除,不再可用。",
+	"target-aboutme-empty": "This user has no &quot;About Me&quot; set.",
 
 	"graph-label": "日舉報",
 	"quick-filters": "快速過濾器",
 	"filter-active": "該列中有一個或更多啟用的過濾器",
 	"filter-reset": "刪除過濾器",
 	"filters": "過濾器選項",
-	"filter-reporterId": "舉報者UID",
-	"filter-targetUid": "被舉報者 UID",
+	"filter-reporterId": "Reporter",
+	"filter-targetUid": "Reportee",
 	"filter-type": "舉報類型",
 	"filter-type-all": "所有內容",
 	"filter-type-post": "貼文",
 	"filter-type-user": "使用者",
 	"filter-state": "狀態",
-	"filter-assignee": "受指派人 UID",
+	"filter-assignee": "Assignee",
 	"filter-cid": "版面",
 	"filter-quick-mine": "指派給我",
 	"filter-cid-all": "全部版面",
@@ -45,6 +47,7 @@
 
 	"notes": "舉報備註",
 	"add-note": "新增備註",
+	"edit-note": "Edit Note",
 	"no-notes": "沒有共享的備註內容。",
 	"delete-note-confirm": "Are you sure you want to delete this flag note?",
 	"delete-flag-confirm": "Are you sure you want to delete this flag?",
diff --git a/public/language/zh-TW/global.json b/public/language/zh-TW/global.json
index bc492eda30..25e4d71f3c 100644
--- a/public/language/zh-TW/global.json
+++ b/public/language/zh-TW/global.json
@@ -4,13 +4,13 @@
     "buttons.close": "關閉",
     "403.title": "禁止訪問",
     "403.message": "您似乎沒有訪問此頁面的權限。",
-    "403.login": "或許您應該先 <a href='%1/login'>登入</a>試試?",
+    "403.login": "Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
     "404.title": "未找到",
-    "404.message": "您訪問的頁面不存在。返回<a href='%1/'>首頁</a>。",
+    "404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "500.title": "內部錯誤",
     "500.message": "哎呀!看來是哪裡出錯了!",
     "400.title": "錯誤的請求",
-    "400.message": "看起來這個連結的格式不正確,請再次檢查並重試。或者返回<a href='%1/'>首頁</a>。",
+    "400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a class=\"alert-link\" href='%1/'>home page</a>.",
     "register": "註冊",
     "login": "登入",
     "please_log_in": "請登入",
@@ -37,9 +37,13 @@
     "header.notifications": "通知",
     "header.search": "搜尋",
     "header.profile": "個人檔案",
+    "header.account": "Account",
     "header.navigation": "導航",
+    "header.manage": "Manage",
+    "header.drafts": "Drafts",
     "notifications.loading": "正在載入通知",
     "chats.loading": "正在載入聊天",
+    "drafts.loading": "Loading Drafts",
     "motd.welcome": "歡迎來到 NodeBB,未來的社區論壇平臺。",
     "previouspage": "上一頁",
     "nextpage": "下一頁",
@@ -54,7 +58,8 @@
     "users": "使用者",
     "topics": "主題",
     "posts": "貼文",
-    "x-posts": "%1 posts",
+    "x-posts": "<span class=\"formatted-number\">%1</span> posts",
+    "x-topics": "<span class=\"formatted-number\">%1</span> topics",
     "best": "最佳",
     "controversial": "Controversial",
     "votes": "評價",
@@ -69,6 +74,7 @@
     "reputation": "聲望",
     "lastpost": "上一個貼文",
     "firstpost": "第一個貼文",
+    "about": "About",
     "read_more": "閱讀更多",
     "more": "更多",
     "none": "None",
@@ -82,11 +88,13 @@
     "user_posted_ago": "%1 發佈於 %2",
     "guest_posted_ago": "訪客發佈於 %1",
     "last_edited_by": "最後由 %1 編輯",
+    "edited-timestamp": "Edited %1",
     "norecentposts": "暫無新貼文",
     "norecenttopics": "暫無新主題",
     "recentposts": "新貼文",
     "recentips": "最近登入的 IP",
     "moderator_tools": "版主工具",
+    "status": "Status",
     "online": "線上",
     "away": "離開",
     "dnd": "請勿打擾",
@@ -122,5 +130,7 @@
     "edited": "已編輯",
     "disabled": "停用",
     "select": "選擇",
-    "user-search-prompt": "輸入以搜尋使用者"
+    "user-search-prompt": "輸入以搜尋使用者",
+    "hidden": "Hidden",
+    "sort": "Sort"
 }
\ No newline at end of file
diff --git a/public/language/zh-TW/groups.json b/public/language/zh-TW/groups.json
index 26bfb74072..4d1e84b991 100644
--- a/public/language/zh-TW/groups.json
+++ b/public/language/zh-TW/groups.json
@@ -1,5 +1,6 @@
 {
     "groups": "群組",
+    "members": "Members",
     "view_group": "檢視群組",
     "owner": "群組所有者",
     "new_group": "新增群組",
diff --git a/public/language/zh-TW/modules.json b/public/language/zh-TW/modules.json
index 4f0edc5ac1..fb5da0fd3a 100644
--- a/public/language/zh-TW/modules.json
+++ b/public/language/zh-TW/modules.json
@@ -1,7 +1,11 @@
 {
     "chat.chatting_with": "與<span id=\"chat-with-name\"></span>聊天",
     "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
+    "chat.placeholder.mobile": "Type chat message here",
     "chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
+    "chat.usernames-and-x-others": "%1 & %2 others",
+    "chat.chat-with-usernames": "Chat with %1",
+    "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
     "chat.send": "發送",
     "chat.no_active": "暫無聊天",
     "chat.user_typing": "%1 正在輸入……",
@@ -42,6 +46,7 @@
     "composer.compose": "撰寫",
     "composer.show_preview": "顯示預覽",
     "composer.hide_preview": "隱藏預覽",
+    "composer.help": "Help",
     "composer.user_said_in": "%1 在 %2 中說:",
     "composer.user_said": "%1 說:",
     "composer.discard": "確定想要取消此貼文?",
@@ -65,6 +70,9 @@
     "composer.schedule-time": "Time",
     "composer.cancel-scheduling": "Cancel Scheduling",
     "composer.set-schedule-date": "Set Date",
+    "composer.discard-all-drafts": "Discard all drafts",
+    "composer.no-drafts": "You have no drafts",
+    "composer.discard-draft-confirm": "Do you want to discard this draft?",
     "bootbox.ok": "確認",
     "bootbox.cancel": "取消",
     "bootbox.confirm": "確認",
diff --git a/public/language/zh-TW/pages.json b/public/language/zh-TW/pages.json
index 9516c568cb..4b1f1568cc 100644
--- a/public/language/zh-TW/pages.json
+++ b/public/language/zh-TW/pages.json
@@ -49,6 +49,7 @@
     "account/watched_categories": "%1 關注的版面",
     "account/bookmarks": "%1 收藏的貼文",
     "account/settings": "使用者設定",
+    "account/settings-of": "Changing settings of %1",
     "account/watched": "主題已被 %1 關注",
     "account/ignored": "主題已被 %1 忽略",
     "account/upvoted": "貼文被 %1 點贊",
diff --git a/public/language/zh-TW/post-queue.json b/public/language/zh-TW/post-queue.json
index a2723b14db..d1d3bff1e5 100644
--- a/public/language/zh-TW/post-queue.json
+++ b/public/language/zh-TW/post-queue.json
@@ -1,8 +1,12 @@
 
 {
 	"post-queue": "貼文隊列",
-	"description": "貼文隊列中暫無新貼文。啟用此功能,請前往設定&rarr;貼文&rarr;貼文隊列,然後啟用貼文隊列。",
+	"no-queued-posts": "There are no posts in the post queue.",
+	"no-single-post": "The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
+	"enabling-help": "To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
+	"back-to-list": "Back to Post Queue",
 	"user": "使用者",
+	"when": "When",
 	"category": "版面",
 	"title": "標題",
 	"content": "內容",
@@ -19,6 +23,7 @@
 	"notify": "Notify",
 	"notify-user": "Notify User",
 	"confirm-reject": "Do you want to reject this post?",
+	"confirm-remove": "Do you want to remove this post?",
 	"bulk-actions": "Bulk Actions",
 	"accept-all": "Accept All",
 	"accept-selected": "Accept Selected",
@@ -26,6 +31,10 @@
 	"reject-all-confirm": "Do you want to reject all posts?",
 	"reject-selected": "Reject Selected",
 	"reject-selected-confirm": "Do you want to reject %1 selected posts?",
+	"remove-all": "Remove all",
+	"remove-all-confirm": "Do you want to remove all posts?",
+	"remove-selected": "Remove Selected",
+	"remove-selected-confirm": "Do you want to remove %1 selected posts?",
 	"bulk-accept-success": "%1 posts accepted",
 	"bulk-reject-success": "%1 posts rejected"
 }
\ No newline at end of file
diff --git a/public/language/zh-TW/recent.json b/public/language/zh-TW/recent.json
index 7045c6752d..4f8b25f117 100644
--- a/public/language/zh-TW/recent.json
+++ b/public/language/zh-TW/recent.json
@@ -7,13 +7,5 @@
     "alltime": "總計",
     "no_recent_topics": "暫無主題。",
     "no_popular_topics": "暫無熱門主題。",
-    "there-is-a-new-topic": "共計 1 個新主題。",
-    "there-is-a-new-topic-and-a-new-post": "共計 1 個新主題和 1 個新回覆。",
-    "there-is-a-new-topic-and-new-posts": "共計 1 個新主題和 %1 個新回覆。",
-    "there-are-new-topics": "共計 %1 個新主題。",
-    "there-are-new-topics-and-a-new-post": "共計 %1 個新主題和 1 個新回覆。",
-    "there-are-new-topics-and-new-posts": "共計 %1 個新主題和 %2 個新回覆。",
-    "there-is-a-new-post": "共計 1 個新回覆。",
-    "there-are-new-posts": "共計 %1 個新回覆。",
-    "click-here-to-reload": "點擊這裡重新載入。"
+    "load-new-posts": "Load new posts"
 }
\ No newline at end of file
diff --git a/public/language/zh-TW/register.json b/public/language/zh-TW/register.json
index 9258b76735..fe142b9f6e 100644
--- a/public/language/zh-TW/register.json
+++ b/public/language/zh-TW/register.json
@@ -1,5 +1,6 @@
 {
     "register": "註冊",
+    "already-have-account": "Already have an account?",
     "cancel_registration": "取消註冊",
     "help.email": "預設情況下,您的電子信箱不會公開。",
     "help.username_restrictions": "全站唯一的登入名稱,長度 %1 到 %2 個字元。其他人可以使用 @<span id='yourUsername'>使用者名</span> 提及您。",
diff --git a/public/language/zh-TW/search.json b/public/language/zh-TW/search.json
index c42a6f599e..a0b96c2b89 100644
--- a/public/language/zh-TW/search.json
+++ b/public/language/zh-TW/search.json
@@ -1,21 +1,41 @@
 {
+    "type-to-search": "Type to search",
     "results_matching": "共 %1 條結果符合 \"%2\",(耗時 %3 秒)",
     "no-matches": "無符合的結果",
     "advanced-search": "進階搜尋",
     "in": "在",
-    "titles": "標題",
-    "titles-posts": "標題和貼文",
+    "in-titles": "In titles",
+    "in-titles-posts": "In titles and posts",
+    "in-posts": "In posts",
+    "in-categories": "In categories",
+    "in-users": "In users",
+    "in-tags": "In tags",
+    "categories": "Categories",
+    "all-categories": "All categories",
+    "categories-x": "Categories: %1",
+    "categories-watched-categories": "Categories: Watched categories",
+    "type-a-category": "Type a category",
+    "tags": "Tags",
+    "tags-x": "Tags: %1",
+    "type-a-tag": "Type a tag",
     "match-words": "關鍵字匹配",
+    "match-all-words": "Match all words",
+    "match-any-word": "Match any word",
     "all": "所有",
     "any": "任何",
     "posted-by": "發表",
-    "in-categories": "在版面",
+    "posted-by-usernames": "Posted by: %1",
+    "type-a-username": "Type a username",
     "search-child-categories": "搜索子版面",
     "has-tags": "有標籤",
     "reply-count": "回覆數",
+    "replies": "Replies",
+    "replies-atleast-count": "Replies: At least %1",
+    "replies-atmost-count": "Replies: At most %1",
     "at-least": "至少",
     "at-most": "至多",
     "relevance": "關聯性",
+    "time": "Time",
     "post-time": "貼文時間",
     "votes": "點贊數",
     "newer-than": "晚於",
@@ -28,7 +48,22 @@
     "three-months": "三個月",
     "six-months": "六個月",
     "one-year": "一年",
+    "time-newer-than-86400": "Time: Newer than yesterday",
+    "time-older-than-86400": "Time: Older than yesterday",
+    "time-newer-than-604800": "Time: Newer than one week",
+    "time-older-than-604800": "Time: Older than one week",
+    "time-newer-than-1209600": "Time: Newer than two weeks",
+    "time-older-than-1209600": "Time: Older than two weeks",
+    "time-newer-than-2592000": "Time: Newer than one month",
+    "time-older-than-2592000": "Time: Older than one month",
+    "time-newer-than-7776000": "Time: Newer than three months",
+    "time-older-than-7776000": "Time: Older than three months",
+    "time-newer-than-15552000": "Time: Newer than six months",
+    "time-older-than-15552000": "Time: Older than six months",
+    "time-newer-than-31104000": "Time: Newer than one year",
+    "time-older-than-31104000": "Time: Older than one year",
     "sort-by": "排序",
+    "sort": "Sort",
     "last-reply-time": "最後回覆時間",
     "topic-title": "主題標題",
     "topic-votes": "主題點贊數",
@@ -39,11 +74,36 @@
     "category": "版面",
     "descending": "降冪排序",
     "ascending": "升冪排序",
+    "sort-by-relevance-desc": "Sort by: Relevance in descending order",
+    "sort-by-relevance-asc": "Sort by: Relevance in ascending order",
+    "sort-by-timestamp-desc": "Sort by: Post time in descending order",
+    "sort-by-timestamp-asc": "Sort by: Post time in ascending order",
+    "sort-by-votes-desc": "Sort by: Votes in descending order",
+    "sort-by-votes-asc": "Sort by: Votes in ascending order",
+    "sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
+    "sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order",
+    "sort-by-topic.title-desc": "Sort by: Topic title in descending order",
+    "sort-by-topic.title-asc": "Sort by: Topic title in ascending order",
+    "sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
+    "sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order",
+    "sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
+    "sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order",
+    "sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
+    "sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order",
+    "sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
+    "sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order",
+    "sort-by-user.username-desc": "Sort by: Username in descending order",
+    "sort-by-user.username-asc": "Sort by: Username in ascending order",
+    "sort-by-category.name-desc": "Sort by: Category in descending order",
+    "sort-by-category.name-asc": "Sort by: Category in ascending order",
+    "save": "Save",
     "save-preferences": "存為偏好設定",
     "clear-preferences": "清除偏好設定",
     "search-preferences-saved": "搜尋偏好設定已儲存",
     "search-preferences-cleared": "搜尋偏好設定已清除",
     "show-results-as": "結果顯示為",
+    "show-results-as-topics": "Show results as topics",
+    "show-results-as-posts": "Show results as posts",
     "see-more-results": "查看更多結果 (%1)",
     "search-in-category": "Search in \"%1\""
 }
\ No newline at end of file
diff --git a/public/language/zh-TW/social.json b/public/language/zh-TW/social.json
new file mode 100644
index 0000000000..7ebb50c0c7
--- /dev/null
+++ b/public/language/zh-TW/social.json
@@ -0,0 +1,10 @@
+{
+	"sign-in-with-twitter": "Sign in with Twitter",
+	"sign-up-with-twitter": "Sign up with Twitter",
+	"sign-in-with-github": "Sign in with Github",
+	"sign-up-with-github": "Sign up with Github",
+	"sign-in-with-google": "Sign in with Google",
+	"sign-up-with-google": "Sign up with Google",
+	"log-in-with-facebook": "Log in with Facebook",
+	"continue-with-facebook": "Continue with Facebook"
+}
\ No newline at end of file
diff --git a/public/language/zh-TW/tags.json b/public/language/zh-TW/tags.json
index 08d3c49cae..2c8351838a 100644
--- a/public/language/zh-TW/tags.json
+++ b/public/language/zh-TW/tags.json
@@ -1,5 +1,7 @@
 {
+    "all-tags": "All tags",
     "no_tag_topics": "此標籤還沒有主題貼文。",
+    "no-tags-found": "No tags found",
     "tags": "標籤",
     "enter_tags_here": "在這裡輸入標籤,每個標籤 %1 到 %2 個字元。",
     "enter_tags_here_short": "輸入標籤...",
diff --git a/public/language/zh-TW/topic.json b/public/language/zh-TW/topic.json
index b519872d63..c36672ff37 100644
--- a/public/language/zh-TW/topic.json
+++ b/public/language/zh-TW/topic.json
@@ -39,16 +39,30 @@
     "copy-ip": "複製IP",
     "ban-ip": "禁用IP",
     "view-history": "編輯歷史",
-    "locked-by": "Locked by",
-    "unlocked-by": "Unlocked by",
-    "pinned-by": "Pinned by",
-    "unpinned-by": "Unpinned by",
-    "deleted-by": "Deleted by",
-    "restored-by": "Restored by",
-    "moved-from-by": "Moved from %1 by",
-    "queued-by": "Post queued for approval &rarr;",
-    "backlink": "Referenced by",
-    "forked-by": "Forked by",
+    "wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
+    "replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a hrf=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
+    "user-locked-topic-ago": "%1 locked this topic %2",
+    "user-locked-topic-on": "%1 locked this topic on %2",
+    "user-unlocked-topic-ago": "%1 unlocked this topic %2",
+    "user-unlocked-topic-on": "%1 unlocked this topic on %2",
+    "user-pinned-topic-ago": "%1 pinned this topic %2",
+    "user-pinned-topic-on": "%1 pinned this topic on %2",
+    "user-unpinned-topic-ago": "%1 unpinned this topic %2",
+    "user-unpinned-topic-on": "%1 unpinned this topic on %2",
+    "user-deleted-topic-ago": "%1 deleted this topic %2",
+    "user-deleted-topic-on": "%1 deleted this topic on %2",
+    "user-restored-topic-ago": "%1 restored this topic %2",
+    "user-restored-topic-on": "%1 restored this topic on %2",
+    "user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
+    "user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
+    "user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
+    "user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
+    "user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
+    "user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
+    "user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
+    "user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
     "bookmark_instructions": "點擊閱讀本主題貼文中的最新回覆",
     "flag-post": "Flag this post",
     "flag-user": "Flag this user",
@@ -95,7 +109,7 @@
     "thread_tools.purge": "清除主題",
     "thread_tools.purge_confirm": "確認清除此主題嗎?",
     "thread_tools.merge_topics": "合併主題",
-    "thread_tools.merge": "合併",
+    "thread_tools.merge": "Merge Topic",
     "topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
     "topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
@@ -121,7 +135,7 @@
     "post_moved": "回覆已移動!",
     "fork_topic": "分割主題",
     "enter-new-topic-title": "Enter new topic title",
-    "fork_topic_instruction": "點擊將分割的貼文",
+    "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
     "fork_no_pids": "未選中貼文!",
     "no-posts-selected": "No posts selected!",
     "x-posts-selected": "%1 post(s) selected",
@@ -136,12 +150,15 @@
     "merge-new-title-for-topic": "New title for topic",
     "topic-id": "Topic ID",
     "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
+    "move_topic_instruction": "Select the target category and then click move",
     "change_owner_instruction": "點擊您想轉移給其他使用者的貼文",
     "composer.title_placeholder": "在此輸入您主題的標題...",
     "composer.handle_placeholder": "在此輸入您的名稱/代稱",
+    "composer.hide": "Hide",
     "composer.discard": "撤銷",
     "composer.submit": "提交",
     "composer.additional-options": "Additional Options",
+    "composer.post-later": "Post Later",
     "composer.schedule": "Schedule",
     "composer.replying_to": "正在回覆 %1",
     "composer.new_topic": "新主題",
@@ -184,5 +201,7 @@
     "last-post": "Last post",
     "go-to-my-next-post": "Go to my next post",
     "no-more-next-post": "You don't have more posts in this topic",
-    "post-quick-reply": "Post quick reply"
+    "post-quick-reply": "Quick reply",
+    "navigator.index": "Post %1 of %2",
+    "navigator.unread": "%1 unread"
 }
\ No newline at end of file
diff --git a/public/language/zh-TW/user.json b/public/language/zh-TW/user.json
index 7f4e9db7f1..3dcf6f7d8a 100644
--- a/public/language/zh-TW/user.json
+++ b/public/language/zh-TW/user.json
@@ -43,6 +43,7 @@
     "followers": "追隨者",
     "following": "追隨",
     "blocks": "屏蔽",
+    "blocked-users": "Blocked users",
     "block_toggle": "封鎖該使用者",
     "block_user": "封鎖使用者",
     "unblock_user": "解封使用者",
@@ -68,6 +69,7 @@
     "upload_new_picture": "上傳新頭像",
     "upload_new_picture_from_url": "上傳來自URL的新頭像",
     "current_password": "當前密碼",
+    "new_password": "New Password",
     "change_password": "更改密碼",
     "change_password_error": "無效的密碼!",
     "change_password_error_wrong_current": "您的當前密碼不正確!",
@@ -115,6 +117,8 @@
     "paginate_description": "使用分頁式版面瀏覽",
     "topics_per_page": "每頁主題數",
     "posts_per_page": "每頁貼文數",
+    "category-topic-sort": "Category topic sort",
+    "topic-post-sort": "Topic post sort",
     "max_items_per_page": "最大值 %1",
     "acp_language": "控制台頁面語言",
     "notifications": "Notifications",
@@ -168,6 +172,8 @@
     "info.moderation-note.success": "版主備註已儲存",
     "info.moderation-note.add": "新增備註",
     "sessions.description": "此頁面允許您查看當前論壇的所有當前的會話(active session),並在需要的時候關閉它們.您可以通過登出您的帳戶來關閉自己的會話(session)",
+    "revoke-session": "Revoke Session",
+    "browser-version-on-platform": "%1 %2 on %3",
     "consent.title": "您的權利與許可",
     "consent.lead": "本論壇將會收集與處理您的個人資料。",
     "consent.intro": "我們收集這些資料將僅用於個人化您於本社區的體驗,和關聯您的帳戶與您所發表的貼文。在註冊過程中您需要提供一個使用者名和信箱地址,您也可以選擇是否提供額外的個人資料,以完善您的使用者檔案。<br /><br />在您的帳戶有效期內,我們將保留您的資料。您可以在任何時候通過刪除您的帳戶,以撤回您的許可。您可以在任何時候通過您的權力與許可頁面,獲取一份您對本論壇的貢獻的副本。<br /><br />如果您有任何疑問,我們鼓勵您與本論壇管理團隊聯繫。",
diff --git a/public/language/zh-TW/users.json b/public/language/zh-TW/users.json
index 2e67d9c826..380b89d3f5 100644
--- a/public/language/zh-TW/users.json
+++ b/public/language/zh-TW/users.json
@@ -1,11 +1,12 @@
 {
+    "all-users": "All Users",
     "latest_users": "最新使用者",
     "top_posters": "發文排行",
     "most_reputation": "聲望排行",
     "most_flags": "舉報最多",
     "search": "搜尋",
     "enter_username": "輸入使用者名搜索",
-    "search-user-for-chat": "Search a user to start chat",
+    "search-user-for-chat": "Search for a user to start chat:",
     "load_more": "載入更多",
     "users-found-search-took": "找到 %1 位使用者!耗時 %2 秒。",
     "filter-by": "過濾選項",
diff --git a/public/less/admin/advanced/errors.less b/public/less/admin/advanced/errors.less
deleted file mode 100644
index 89b9dda540..0000000000
--- a/public/less/admin/advanced/errors.less
+++ /dev/null
@@ -1,26 +0,0 @@
-
-.page-advanced-errors {
-	.table {
-		table-layout: fixed;
-
-		th {
-			&:first-child {
-				width: 90%;
-			}
-
-			&:last-child {
-				text-align: center;
-			}
-		}
-
-		td {
-			&:first-child {
-				word-wrap: break-word;
-			}
-
-			&:last-child {
-				text-align: center;
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/public/less/admin/advanced/events.less b/public/less/admin/advanced/events.less
deleted file mode 100644
index 4f4c95afbb..0000000000
--- a/public/less/admin/advanced/events.less
+++ /dev/null
@@ -1,8 +0,0 @@
-.events-list {
-	.delete-event {
-		i {
-			cursor: pointer;
-			margin-left: 10px;
-		}
-	}
-}
diff --git a/public/less/admin/advanced/hooks.less b/public/less/admin/advanced/hooks.less
deleted file mode 100644
index ef8ca579f4..0000000000
--- a/public/less/admin/advanced/hooks.less
+++ /dev/null
@@ -1,3 +0,0 @@
-.admin .hooks-list .panel.panel-default .panel-heading .panel-title a {
-    text-transform: none;
-}
diff --git a/public/less/admin/advanced/logs.less b/public/less/admin/advanced/logs.less
deleted file mode 100644
index 3a1023130b..0000000000
--- a/public/less/admin/advanced/logs.less
+++ /dev/null
@@ -1,8 +0,0 @@
-
-.logs {
-	.panel-body {
-		pre {
-			height: 600px;
-		}
-	}
-}
\ No newline at end of file
diff --git a/public/less/admin/appearance/themes.less b/public/less/admin/appearance/themes.less
deleted file mode 100644
index f69222999b..0000000000
--- a/public/less/admin/appearance/themes.less
+++ /dev/null
@@ -1,77 +0,0 @@
-.themes, .skins {
-	ul.directory {
-		margin: 0;
-		padding: 0;
-
-		li {
-			padding: 10px 16px;
-			margin: 0.25em 1em;
-			list-style-type: none;
-			.pointer;
-
-			img {
-				max-width: 150px;
-				float: left;
-			}
-
-			h4, p {
-				margin-left: 170px;
-			}
-
-			p {
-				font-size: 0.9em;
-			}
-
-			&.no-themes {
-				font-style: italic;
-			}
-		}
-	}
-
-	.theme-card {
-		margin-bottom: 30px;
-		margin-left: auto;
-		margin-right: auto;
-
-		.mdl-card__title {
-			height: 223px;
-			background-size: contain;
-		}
-
-		.mdl-card__supporting-text {
-			font-size: 1.5rem;
-			margin: 0 auto;
-
-			.mdl-card__title-text {
-				display: inline-block;
-				margin-bottom: 15px;
-			}
-		}
-	}
-
-	[data-theme].selected .mdl-button {
-		color: black;
-	}
-
-	[data-type="bootswatch"] {
-		.mdl-card__title {
-			height: 198px;
-		}
-
-		.mdl-card__title-text {
-			display: none;
-		}
-	}
-
-	[data-type="local"] {
-		.mdl-card__supporting-text {
-			height: 150px;
-		}
-	}
-
-	textarea[data-field] {
-		min-height: 450px;
-		width: 100%;
-		resize: vertical;
-	}
-}
\ No newline at end of file
diff --git a/public/less/admin/development/info.less b/public/less/admin/development/info.less
deleted file mode 100644
index 188d0a1118..0000000000
--- a/public/less/admin/development/info.less
+++ /dev/null
@@ -1,3 +0,0 @@
-.page-admin-info #content {
-    width: auto;
-}
\ No newline at end of file
diff --git a/public/less/admin/manage/admins-mods.less b/public/less/admin/manage/admins-mods.less
deleted file mode 100644
index a8efbf00a1..0000000000
--- a/public/less/admin/manage/admins-mods.less
+++ /dev/null
@@ -1,30 +0,0 @@
-.admins-mods {
-	.user-card {
-		background: #eeeeee;
-		border-radius: 4px;
-		margin: 5px;
-		padding: 5px;
-		height: 35px;
-	}
-
-	.remove-user-icon {
-		margin-right: 5px;
-		margin-left: 5px;
-	}
-
-	.category-depth-1 {
-		margin-left: 30px;
-	}
-	.category-depth-2 {
-		margin-left: 60px;
-	}
-	.category-depth-3 {
-		margin-left: 90px;
-	}
-	.category-depth-4 {
-		margin-left: 120px;
-	}
-	.category-depth-5 {
-		margin-left: 150px;
-	}
-}
\ No newline at end of file
diff --git a/public/less/admin/manage/privileges.less b/public/less/admin/manage/privileges.less
deleted file mode 100644
index 8614373b0b..0000000000
--- a/public/less/admin/manage/privileges.less
+++ /dev/null
@@ -1,36 +0,0 @@
-.page-admin-privileges {
-	@keyframes fadeOut {
-		0% {background-color: @brand-primary;}
-		100% {background-color: white;}
-	}
-
-	[data-group-name].selected, [data-uid].selected {
-		animation-name: fadeOut;
-		animation-duration: 5s;
-		animation-fill-mode: both;
-		animation-timing-function: ease-out;
-	}
-
-	.privilege-table {
-		td:first-child {
-			white-space: nowrap;
-		}
-
-		td[data-delta="true"] > input {
-			&:after {
-				border-color: @state-success-text;
-				background-color: @state-success-text;
-			}
-		}
-
-		td[data-delta="false"] > input {
-			&:after {
-				border-color: @state-danger-bg;
-			}
-
-			&:indeterminate:after {
-				background-color: @state-danger-bg;
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/public/less/admin/manage/registration.less b/public/less/admin/manage/registration.less
deleted file mode 100644
index ea483e727d..0000000000
--- a/public/less/admin/manage/registration.less
+++ /dev/null
@@ -1,7 +0,0 @@
-@media screen and (max-width: @screen-sm-max) {
-	.page-manage-registration {
-		.users-list {
-			font-size: 10px;
-		}
-	}
-}
\ No newline at end of file
diff --git a/public/less/admin/manage/users.less b/public/less/admin/manage/users.less
deleted file mode 100644
index 097c13d4ac..0000000000
--- a/public/less/admin/manage/users.less
+++ /dev/null
@@ -1,19 +0,0 @@
-.manage-users {
-	min-height: 500px;
-	.search {
-		.form-control {
-			width: 100%;
-		}
-	}
-}
-
-.page-admin-users {
-	.group-card {
-		margin: 2px;
-		padding: 2px;
-	}
-
-	.remove-group-icon {
-		margin-left: 5px;
-	}
-}
\ No newline at end of file
diff --git a/public/less/admin/modules/alerts.less b/public/less/admin/modules/alerts.less
deleted file mode 100644
index 6463576efc..0000000000
--- a/public/less/admin/modules/alerts.less
+++ /dev/null
@@ -1,95 +0,0 @@
-.alert-window {
-	position: fixed;
-	width: 300px;
-	z-index: 10002;
-
-	right: 20px;
-	bottom: 0px;
-
-	.alert {
-		.close {
-			color: inherit;
-		}
-
-		&::before {
-			position: relative;
-			top: -15px;
-			left: -15px;
-			display: block;
-			height: 2px;
-			width: 0;
-			transition: inherit;
-		}
-
-		&.alert-info::before {
-			background-color: @brand-info;
-		}
-
-		&.alert-warning::before {
-			background-color: @brand-warning;
-		}
-
-		&.alert-success::before {
-			background-color: @brand-success;
-		}
-
-		&.alert-danger::before {
-			background-color: @brand-danger;
-		}
-
-		&.animate {
-			&.alert-info::before {
-				background-color: lighten(@brand-info, 25%);
-			}
-			
-			&.alert-warning::before {
-				background-color: lighten(@brand-warning, 25%);
-			}
-			
-			&.alert-success::before {
-				background-color: lighten(@brand-success, 25%);
-			}
-			
-			&.alert-danger::before {
-				background-color: lighten(@brand-danger, 25%);
-			}
-			
-			&::before {
-				width: ~"calc(100% + 50px)";
-			}
-		}
-
-		background-color: white;
-		border: 0;
-		border-left: 5px solid !important;
-		box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.25), 0px 2px 10px 0px rgba(0, 0, 0, 0.25);
-
-		strong {
-			text-transform: uppercase;
-		}
-
-		p {
-			padding: 10px 0px 0px;
-		}
-
-		&.alert-info {
-			color: @brand-info;
-			border-color: @brand-info;
-		}
-
-		&.alert-warning {
-			color: @brand-warning;
-			border-color: @brand-warning;
-		}
-
-		&.alert-success {
-			color: @brand-success;
-			border-color: @brand-success;
-		}
-
-		&.alert-danger {
-			color: @brand-danger;
-			border-color: @brand-danger;
-		}
-	}
-}
diff --git a/public/less/admin/modules/nprogress.less b/public/less/admin/modules/nprogress.less
deleted file mode 100644
index c1b6effe02..0000000000
--- a/public/less/admin/modules/nprogress.less
+++ /dev/null
@@ -1,80 +0,0 @@
-#nprogress {
-  pointer-events: none;
-}
-
-#nprogress .bar {
-  background: #29d;
-
-  position: fixed;
-  z-index: 1031;
-  top: 0;
-  left: 0;
-
-  width: 100%;
-  height: 2px;
-}
-
-#nprogress .peg {
-  display: block;
-  position: absolute;
-  right: 0px;
-  width: 100px;
-  height: 100%;
-  box-shadow: 0 0 10px #29d, 0 0 5px #29d;
-  opacity: 1.0;
-
-  -webkit-transform: rotate(3deg) translate(0px, -4px);
-      -ms-transform: rotate(3deg) translate(0px, -4px);
-          transform: rotate(3deg) translate(0px, -4px);
-}
-
-#nprogress .spinner {
-  display: block;
-  position: fixed;
-  z-index: 1031;
-  top: 165px;
-  right: 35px;
-}
-
-@media (max-width: @screen-xs-max) {
-  #nprogress .spinner {
-    bottom: 15px;
-    right: 15px;
-    top: initial;
-  }
-}
-
-
-#nprogress .spinner-icon {
-  width: 18px;
-  height: 18px;
-  box-sizing: border-box;
-
-  border: solid 2px transparent;
-  border-top-color: #29d;
-  border-left-color: #29d;
-  border-radius: 50%;
-
-  -webkit-animation: nprogress-spinner 400ms linear infinite;
-          animation: nprogress-spinner 400ms linear infinite;
-}
-
-.nprogress-custom-parent {
-  overflow: hidden;
-  position: relative;
-}
-
-.nprogress-custom-parent #nprogress .spinner,
-.nprogress-custom-parent #nprogress .bar {
-  position: absolute;
-}
-
-@-webkit-keyframes nprogress-spinner {
-  0%   { -webkit-transform: rotate(0deg); }
-  100% { -webkit-transform: rotate(360deg); }
-}
-@keyframes nprogress-spinner {
-  0%   { transform: rotate(0deg); }
-  100% { transform: rotate(360deg); }
-}
-
diff --git a/public/less/admin/paper/bootswatch.less b/public/less/admin/paper/bootswatch.less
deleted file mode 100644
index 024e48970b..0000000000
--- a/public/less/admin/paper/bootswatch.less
+++ /dev/null
@@ -1,621 +0,0 @@
-// Paper 3.3.5
-// Bootswatch
-// -----------------------------------------------------
-
-// Navbar =====================================================================
-
-.navbar {
-  border: none;
-  .box-shadow(0 1px 2px rgba(0,0,0,.3));
-
-  &-brand {
-    font-size: 24px;
-  }
-
-  &-inverse {
-    .form-control {
-      color: #fff;
-      .placeholder(@navbar-inverse-link-color);
-
-      &[type=text],
-      &[type=password] {
-        .box-shadow(inset 0 -1px 0 @navbar-inverse-link-color);
-
-        &:focus {
-          .box-shadow(inset 0 -2px 0 #fff);
-        }
-      }
-    }
-  }
-}
-
-// Buttons ====================================================================
-
-#btn(@class,@bg) {
-  .btn-@{class} {
-    background-size: 200%;
-    background-position: 50%;
-
-    &:focus {
-      background-color: @bg;
-    }
-
-    &:hover,
-    &:active:hover {
-      background-color: darken(@bg, 6%);
-    }
-
-    &:active {
-      background-color: darken(@bg, 12%);
-      #gradient > .radial(darken(@bg, 12%) 10%, @bg 11%);
-      background-size: 1000%;
-      .box-shadow(2px 2px 4px rgba(0,0,0,.4));
-    }
-  }
-}
-
-#btn(default,@btn-default-bg);
-#btn(primary,@btn-primary-bg);
-#btn(success,@btn-success-bg);
-#btn(info,@btn-info-bg);
-#btn(warning,@btn-warning-bg);
-#btn(danger,@btn-danger-bg);
-#btn(link,#fff);
-
-.btn {
-  text-transform: uppercase;
-  border: none;
-  .box-shadow(1px 1px 4px rgba(0,0,0,.4));
-  .transition(all 0.4s);
-
-  &-link {
-    border-radius: @btn-border-radius-base;
-    .box-shadow(none);
-    color: @btn-default-color;
-
-    &:hover,
-    &:focus {
-      .box-shadow(none);
-      color: @btn-default-color;
-      text-decoration: none;
-    }
-  }
-
-  &-default {
-
-    &.disabled {
-      background-color: rgba(0, 0, 0, 0.1);
-      color: rgba(0, 0, 0, 0.4);
-      opacity: 1;
-    }
-  }
-}
-
-.btn-group {
-  .btn + .btn,
-  .btn + .btn-group,
-  .btn-group + .btn,
-  .btn-group + .btn-group {
-    margin-left: 0;
-  }
-
-  &-vertical {
-    > .btn + .btn,
-    > .btn + .btn-group,
-    > .btn-group + .btn,
-    > .btn-group + .btn-group {
-      margin-top: 0;
-    }
-  }
-}
-
-// Typography =================================================================
-
-body {
-  -webkit-font-smoothing: antialiased;
-  letter-spacing: .1px;
-}
-
-p {
-  margin: 0 0 1em;
-}
-
-input,
-button {
-  -webkit-font-smoothing: antialiased;
-  letter-spacing: .1px;
-}
-
-a {
-  .transition(all 0.2s);
-}
-
-// Tables =====================================================================
-
-.table-hover {
-  > tbody > tr,
-  > tbody > tr > th,
-  > tbody > tr > td {
-    .transition(all 0.2s);
-  }
-}
-
-// Forms ======================================================================
-
-label {
-  font-weight: normal;
-}
-
-textarea,
-textarea.form-control,
-input.form-control,
-input[type=text],
-input[type=password],
-input[type=email],
-input[type=number],
-[type=text].form-control,
-[type=password].form-control,
-[type=email].form-control,
-[type=tel].form-control,
-[contenteditable].form-control {
-  padding: 0;
-  border: none;
-  border-radius: 0;
-  -webkit-appearance: none;
-  .box-shadow(inset 0 -1px 0 #ddd);
-  font-size: 16px;
-
-  &:focus {
-    .box-shadow(inset 0 -2px 0 @brand-primary);
-  }
-
-  &[disabled],
-  &[readonly] {
-    .box-shadow(none);
-    border-bottom: 1px dotted #ddd;
-  }
-
-  &.input {
-    &-sm {
-      font-size: @font-size-small;
-    }
-
-    &-lg {
-      font-size: @font-size-large;
-    }
-  }
-}
-
-select,
-select.form-control {
-  border: 0;
-  border-radius: 0;
-  -webkit-appearance: none;
-  -moz-appearance: none;
-  appearance: none;
-  padding-left: 0;
-  padding-right: 0\9; // remove padding for < ie9 since default arrow can't be removed
-  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmaP/QSjAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=);
-  background-size: 13px;
-  background-repeat: no-repeat;
-  background-position: right center;
-  .box-shadow(inset 0 -1px 0 #ddd);
-  font-size: 16px;
-  line-height: 1.5;
-
-  &::-ms-expand {
-    display: none;
-  }
-
-  &.input {
-    &-sm {
-      font-size: @font-size-small;
-    }
-
-    &-lg {
-      font-size: @font-size-large;
-    }
-  }
-
-  &:focus {
-    .box-shadow(inset 0 -2px 0 @brand-primary);
-    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEUhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISF8S9ewAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=);
-  }
-
-  &[multiple] {
-    background: none;
-  }
-}
-
-.radio,
-.radio-inline,
-.checkbox,
-.checkbox-inline {
-  label {
-    padding-left: 25px;
-  }
-
-  input[type="radio"],
-  input[type="checkbox"] {
-    margin-left: -25px;
-  }
-}
-
-input[type="radio"],
-.radio input[type="radio"],
-.radio-inline input[type="radio"] {
-  position: relative;
-  margin-top: 6px;
-  margin-right: 4px;
-  vertical-align: top;
-  border: none;
-  background-color: transparent;
-  -webkit-appearance: none;
-  appearance: none;
-  cursor: pointer;
-
-  &:focus {
-    outline: none;
-  }
-
-  &:before,
-  &:after {
-    content: "";
-    display: block;
-    width: 18px;
-    height: 18px;
-    border-radius: 50%;
-    .transition(240ms);
-  }
-
-  &:before {
-    position: absolute;
-    left: 0;
-    top: -3px;
-    background-color: @brand-primary;
-    .scale(0);
-  }
-
-  &:after {
-    position: relative;
-    top: -3px;
-    border: 2px solid @gray;
-  }
-
-  &:checked:before {
-    .scale(0.5);
-  }
-
-  &:disabled:checked:before {
-    background-color: @gray-light;
-  }
-
-  &:checked:after {
-    border-color: @brand-primary;
-  }
-
-  &:disabled:after,
-  &:disabled:checked:after {
-    border-color: @gray-light;
-  }
-}
-
-input[type="checkbox"],
-.checkbox input[type="checkbox"],
-.checkbox-inline input[type="checkbox"] {
-  position: relative;
-  border: none;
-  margin-bottom: -4px;
-  -webkit-appearance: none;
-  appearance: none;
-  cursor: pointer;
-
-  &:focus {
-    outline: none;
-  }
-
-  &:after {
-    content: "";
-    display: block;
-    width: 18px;
-    height: 18px;
-    margin-top: -2px;
-    margin-right: 5px;
-    border: 2px solid @gray;
-    border-radius: 2px;
-    .transition(240ms);
-  }
-
-  &:indeterminate:before {
-    content: "";
-    position: absolute;
-    top: 6px;
-    left: 6px;
-    display: table;
-    width: 6px;
-    height: 12px;
-    border-top: 2px solid #fff;
-  }
-
-  &:indeterminate:after {
-    background-color: @brand-primary;
-    border-color: @brand-primary;
-  }
-
-  &:checked:before {
-    content: "";
-    position: absolute;
-    top: 0;
-    left: 6px;
-    display: table;
-    width: 6px;
-    height: 12px;
-    border: 2px solid #fff;
-    border-top-width: 0;
-    border-left-width: 0;
-    .rotate(45deg);
-  }
-
-  &:checked:after {
-    background-color: @brand-primary;
-    border-color: @brand-primary;
-  }
-
-  &:disabled:after {
-    border-color: @gray-light;
-  }
-
-  &:disabled:checked:after {
-    background-color: @gray-light;
-    border-color: transparent;
-  }
-}
-
-.has-warning {
-  input:not([type=checkbox]),
-  .form-control,
-  input.form-control[readonly],
-  input[type=text][readonly],
-  [type=text].form-control[readonly],
-  input:not([type=checkbox]):focus,
-  .form-control:focus {
-    border-bottom: none;
-    .box-shadow(inset 0 -2px 0 @brand-warning);
-  }
-}
-
-.has-error {
-  input:not([type=checkbox]),
-  .form-control,
-  input.form-control[readonly],
-  input[type=text][readonly],
-  [type=text].form-control[readonly],
-  input:not([type=checkbox]):focus,
-  .form-control:focus {
-    border-bottom: none;
-    .box-shadow(inset 0 -2px 0 @brand-danger);
-  }
-}
-
-.has-success {
-  input:not([type=checkbox]),
-  .form-control,
-  input.form-control[readonly],
-  input[type=text][readonly],
-  [type=text].form-control[readonly],
-  input:not([type=checkbox]):focus,
-  .form-control:focus {
-    border-bottom: none;
-    .box-shadow(inset 0 -2px 0 @brand-success);
-  }
-}
-
-// Remove the Bootstrap feedback styles for input addons
-.input-group-addon {
-  .has-warning &, .has-error &, .has-success & {
-    color: @input-color;
-    border-color: @input-group-addon-border-color;
-    background-color: @input-group-addon-bg;
-  }
-}
-
-// Navs =======================================================================
-
-.nav-tabs {
-  > li > a,
-  > li > a:focus {
-    margin-right: 0;
-    background-color: transparent;
-    border: none;
-    color: @navbar-default-link-color;
-    .box-shadow(inset 0 -1px 0 #ddd);
-    .transition(all 0.2s);
-
-    &:hover {
-      background-color: transparent;
-      .box-shadow(inset 0 -2px 0 @brand-primary);
-      color: @brand-primary;
-    }
-  }
-
-  & > li.active > a,
-  & > li.active > a:focus {
-    border: none;
-    .box-shadow(inset 0 -2px 0 @brand-primary);
-    color: @brand-primary;
-
-    &:hover {
-      border: none;
-      color: @brand-primary;
-    }
-  }
-
-  & > li.disabled > a {
-    .box-shadow(inset 0 -1px 0 #ddd);
-  }
-
-  &.nav-justified {
-
-    & > li > a,
-    & > li > a:hover,
-    & > li > a:focus,
-    & > .active > a,
-    & > .active > a:hover,
-    & > .active > a:focus {
-      border: none;
-    }
-  }
-
-  .dropdown-menu {
-    margin-top: 0;
-  }
-}
-
-.dropdown-menu {
-  margin-top: 0;
-  border: none;
-  .box-shadow(0 1px 4px rgba(0,0,0,.3));
-}
-
-// Indicators =================================================================
-
-.alert {
-  border: none;
-  color: #fff;
-
-  &-success {
-    background-color: @brand-success;
-  }
-
-  &-info {
-    background-color: @brand-info;
-  }
-
-  &-warning {
-    background-color: @brand-warning;
-  }
-
-  &-danger {
-    background-color: @brand-danger;
-  }
-
-  a:not(.close),
-  .alert-link {
-    color: #fff;
-    font-weight: bold;
-  }
-
-  .close {
-    color: #fff;
-  }
-}
-
-.badge {
-  padding: 3px 6px 5px;
-}
-
-.progress {
-  position: relative;
-  z-index: 1;
-  height: 6px;
-  border-radius: 0;
-
-  .box-shadow(none);
-
-  &-bar {
-    .box-shadow(none);
-
-    &:last-child {
-      border-radius: 0 3px 3px 0;
-    }
-
-    &:last-child {
-      &:before {
-        display: block;
-        content: "";
-        position: absolute;
-        width: 100%;
-        height: 100%;
-        left: 0;
-        right: 0;
-        z-index: -1;
-        background-color: lighten(@progress-bar-bg, 35%);
-      }
-    }
-
-    &-success:last-child.progress-bar:before {
-      background-color: lighten(@brand-success, 35%);
-    }
-
-    &-info:last-child.progress-bar:before {
-      background-color: lighten(@brand-info, 45%);
-    }
-    &-warning:last-child.progress-bar:before {
-      background-color: lighten(@brand-warning, 35%);
-    }
-
-    &-danger:last-child.progress-bar:before {
-      background-color: lighten(@brand-danger, 25%);
-    }
-  }
-}
-
-// Progress bars ==============================================================
-
-// Containers =================================================================
-
-.close {
-  font-size: 34px;
-  font-weight: 300;
-  line-height: 24px;
-  opacity: 0.6;
-  .transition(all 0.2s);
-
-  &:hover {
-    opacity: 1;
-  }
-}
-
-.list-group {
-
-  &-item {
-    padding: 15px;
-  }
-
-  &-item-text {
-    color: @gray-light;
-  }
-}
-
-.well {
-  border-radius: 0;
-  .box-shadow(none);
-}
-
-.panel {
-  border: none;
-  border-radius: 2px;
-  .box-shadow(0 1px 4px rgba(0,0,0,.3));
-
-  &-heading {
-    border-bottom: none;
-  }
-
-  &-footer {
-    border-top: none;
-  }
-}
-
-.popover {
-  border: none;
-  .box-shadow(0 1px 4px rgba(0,0,0,.3));
-}
-
-.carousel {
-  &-caption {
-    h1, h2, h3, h4, h5, h6 {
-      color: inherit;
-    }
-  }
-}
-
diff --git a/public/less/admin/paper/variables.less b/public/less/admin/paper/variables.less
deleted file mode 100644
index eed5b3cfae..0000000000
--- a/public/less/admin/paper/variables.less
+++ /dev/null
@@ -1,869 +0,0 @@
-// Paper 3.3.7
-// Variables
-// --------------------------------------------------
-
-
-//== Colors
-//
-//## Gray and brand colors for use across Bootstrap.
-
-@gray-base:              #000;
-@gray-darker:            lighten(@gray-base, 13.5%); // #222
-@gray-dark:              #212121;
-@gray:                   #666;
-@gray-light:             #bbb;
-@gray-lighter:           lighten(@gray-base, 93.5%); // #eee
-
-@brand-primary:         #2196F3;
-@brand-success:         #4CAF50;
-@brand-info:            #9C27B0;
-@brand-warning:         #ff9800;
-@brand-danger:          #e51c23;
-
-
-//== Scaffolding
-//
-//## Settings for some of the most global styles.
-
-//** Background color for `<body>`.
-@body-bg:               #fff;
-//** Global text color on `<body>`.
-@text-color:            @gray;
-
-//** Global textual link color.
-@link-color:            @brand-primary;
-//** Link hover color set via `darken()` function.
-@link-hover-color:      darken(@link-color, 15%);
-//** Link hover decoration.
-@link-hover-decoration: underline;
-
-
-//== Typography
-//
-//## Font, line-height, and color for body text, headings, and more.
-
-@font-family-sans-serif:  "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
-@font-family-serif:       Georgia, "Times New Roman", Times, serif;
-//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
-@font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
-@font-family-base:        @font-family-sans-serif;
-
-@font-size-base:          13px;
-@font-size-large:         ceil((@font-size-base * 1.25)); // ~18px
-@font-size-small:         ceil((@font-size-base * 0.85)); // ~12px
-
-@font-size-h1:            56px;
-@font-size-h2:            45px;
-@font-size-h3:            34px;
-@font-size-h4:            24px;
-@font-size-h5:            20px;
-@font-size-h6:            14px;
-
-//** Unit-less `line-height` for use in components like buttons.
-@line-height-base:        1.846; // 20/14
-//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
-@line-height-computed:    floor((@font-size-base * @line-height-base)); // ~20px
-
-//** By default, this inherits from the `<body>`.
-@headings-font-family:    inherit;
-@headings-font-weight:    400;
-@headings-line-height:    1.1;
-@headings-color:          #444;
-
-
-//== Iconography
-//
-//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
-
-//** Load fonts from this directory.
-@icon-font-path:          "../fonts/";
-//** File name for all font files.
-@icon-font-name:          "glyphicons-halflings-regular";
-//** Element ID within SVG icon file.
-@icon-font-svg-id:        "glyphicons_halflingsregular";
-
-
-//== Components
-//
-//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
-
-@padding-base-vertical:     6px;
-@padding-base-horizontal:   16px;
-
-@padding-large-vertical:    10px;
-@padding-large-horizontal:  16px;
-
-@padding-small-vertical:    5px;
-@padding-small-horizontal:  10px;
-
-@padding-xs-vertical:       1px;
-@padding-xs-horizontal:     5px;
-
-@line-height-large:         1.3333333; // extra decimals for Win 8.1 Chrome
-@line-height-small:         1.5;
-
-@border-radius-base:        3px;
-@border-radius-large:       3px;
-@border-radius-small:       3px;
-
-//** Global color for active items (e.g., navs or dropdowns).
-@component-active-color:    #fff;
-//** Global background color for active items (e.g., navs or dropdowns).
-@component-active-bg:       @brand-primary;
-
-//** Width of the `border` for generating carets that indicate dropdowns.
-@caret-width-base:          4px;
-//** Carets increase slightly in size for larger components.
-@caret-width-large:         5px;
-
-
-//== Tables
-//
-//## Customizes the `.table` component with basic values, each used across all table variations.
-
-//** Padding for `<th>`s and `<td>`s.
-@table-cell-padding:            8px;
-//** Padding for cells in `.table-condensed`.
-@table-condensed-cell-padding:  5px;
-
-//** Default background color used for all tables.
-@table-bg:                      transparent;
-//** Background color used for `.table-striped`.
-@table-bg-accent:               #f9f9f9;
-//** Background color used for `.table-hover`.
-@table-bg-hover:                #f5f5f5;
-@table-bg-active:               @table-bg-hover;
-
-//** Border color for table and cell borders.
-@table-border-color:            #ddd;
-
-
-//== Buttons
-//
-//## For each of Bootstrap's buttons, define text, background and border color.
-
-@btn-font-weight:                normal;
-
-@btn-default-color:              #444;
-@btn-default-bg:                 #fff;
-@btn-default-border:             transparent;
-
-@btn-primary-color:              #fff;
-@btn-primary-bg:                 @brand-primary;
-@btn-primary-border:             transparent;
-
-@btn-success-color:              #fff;
-@btn-success-bg:                 @brand-success;
-@btn-success-border:             transparent;
-
-@btn-info-color:                 #fff;
-@btn-info-bg:                    @brand-info;
-@btn-info-border:                transparent;
-
-@btn-warning-color:              #fff;
-@btn-warning-bg:                 @brand-warning;
-@btn-warning-border:             transparent;
-
-@btn-danger-color:               #fff;
-@btn-danger-bg:                  @brand-danger;
-@btn-danger-border:              transparent;
-
-@btn-link-disabled-color:        @gray-light;
-
-// Allows for customizing button radius independently from global border radius
-@btn-border-radius-base:         @border-radius-base;
-@btn-border-radius-large:        @border-radius-large;
-@btn-border-radius-small:        @border-radius-small;
-
-
-//== Forms
-//
-//##
-
-//** `<input>` background color
-@input-bg:                       transparent;
-//** `<input disabled>` background color
-@input-bg-disabled:              transparent;
-
-//** Text color for `<input>`s
-@input-color:                    @gray;
-//** `<input>` border color
-@input-border:                   transparent;
-
-// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
-//** Default `.form-control` border radius
-// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.
-@input-border-radius:            @border-radius-base;
-//** Large `.form-control` border radius
-@input-border-radius-large:      @border-radius-large;
-//** Small `.form-control` border radius
-@input-border-radius-small:      @border-radius-small;
-
-//** Border color for inputs on focus
-@input-border-focus:             #66afe9;
-
-//** Placeholder text color
-@input-color-placeholder:        @gray-light;
-
-//** Default `.form-control` height
-@input-height-base:              (@line-height-computed + (@padding-base-vertical * 2) + 2);
-//** Large `.form-control` height
-@input-height-large:             (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
-//** Small `.form-control` height
-@input-height-small:             (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
-
-//** `.form-group` margin
-@form-group-margin-bottom:       15px;
-
-@legend-color:                   @gray-dark;
-@legend-border-color:            #e5e5e5;
-
-//** Background color for textual input addons
-@input-group-addon-bg:           transparent;
-//** Border color for textual input addons
-@input-group-addon-border-color: @input-border;
-
-//** Disabled cursor for form controls and buttons.
-@cursor-disabled:                not-allowed;
-
-
-//== Dropdowns
-//
-//## Dropdown menu container and contents.
-
-//** Background for the dropdown menu.
-@dropdown-bg:                    #fff;
-//** Dropdown menu `border-color`.
-@dropdown-border:                rgba(0,0,0,.15);
-//** Dropdown menu `border-color` **for IE8**.
-@dropdown-fallback-border:       #ccc;
-//** Divider color for between dropdown items.
-@dropdown-divider-bg:            #e5e5e5;
-
-//** Dropdown link text color.
-@dropdown-link-color:            @text-color;
-//** Hover color for dropdown links.
-@dropdown-link-hover-color:      darken(@gray-dark, 5%);
-//** Hover background for dropdown links.
-@dropdown-link-hover-bg:         @gray-lighter;
-
-//** Active dropdown menu item text color.
-@dropdown-link-active-color:     @component-active-color;
-//** Active dropdown menu item background color.
-@dropdown-link-active-bg:        @component-active-bg;
-
-//** Disabled dropdown menu item background color.
-@dropdown-link-disabled-color:   @gray-light;
-
-//** Text color for headers within dropdown menus.
-@dropdown-header-color:          @gray-light;
-
-//** Deprecated `@dropdown-caret-color` as of v3.1.0
-@dropdown-caret-color:           @gray-light;
-
-
-//-- Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-//
-// Note: These variables are not generated into the Customizer.
-
-@zindex-navbar:            1000;
-@zindex-dropdown:          1000;
-@zindex-popover:           1060;
-@zindex-tooltip:           1070;
-@zindex-navbar-fixed:      1030;
-@zindex-modal-background:  1040;
-@zindex-modal:             1050;
-
-
-//== Media queries breakpoints
-//
-//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
-
-// Extra small screen / phone
-//** Deprecated `@screen-xs` as of v3.0.1
-@screen-xs:                  480px;
-//** Deprecated `@screen-xs-min` as of v3.2.0
-@screen-xs-min:              @screen-xs;
-//** Deprecated `@screen-phone` as of v3.0.1
-@screen-phone:               @screen-xs-min;
-
-// Small screen / tablet
-//** Deprecated `@screen-sm` as of v3.0.1
-@screen-sm:                  768px;
-@screen-sm-min:              @screen-sm;
-//** Deprecated `@screen-tablet` as of v3.0.1
-@screen-tablet:              @screen-sm-min;
-
-// Medium screen / desktop
-//** Deprecated `@screen-md` as of v3.0.1
-@screen-md:                  992px;
-@screen-md-min:              @screen-md;
-//** Deprecated `@screen-desktop` as of v3.0.1
-@screen-desktop:             @screen-md-min;
-
-// Large screen / wide desktop
-//** Deprecated `@screen-lg` as of v3.0.1
-@screen-lg:                  1200px;
-@screen-lg-min:              @screen-lg;
-//** Deprecated `@screen-lg-desktop` as of v3.0.1
-@screen-lg-desktop:          @screen-lg-min;
-
-// So media queries don't overlap when required, provide a maximum
-@screen-xs-max:              (@screen-sm-min - 1);
-@screen-sm-max:              (@screen-md-min - 1);
-@screen-md-max:              (@screen-lg-min - 1);
-
-
-//== Grid system
-//
-//## Define your custom responsive grid.
-
-//** Number of columns in the grid.
-@grid-columns:              12;
-//** Padding between columns. Gets divided in half for the left and right.
-@grid-gutter-width:         30px;
-// Navbar collapse
-//** Point at which the navbar becomes uncollapsed.
-@grid-float-breakpoint:     @screen-sm-min;
-//** Point at which the navbar begins collapsing.
-@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
-
-
-//== Container sizes
-//
-//## Define the maximum width of `.container` for different screen sizes.
-
-// Small screen / tablet
-@container-tablet:             (720px + @grid-gutter-width);
-//** For `@screen-sm-min` and up.
-@container-sm:                 @container-tablet;
-
-// Medium screen / desktop
-@container-desktop:            (940px + @grid-gutter-width);
-//** For `@screen-md-min` and up.
-@container-md:                 @container-desktop;
-
-// Large screen / wide desktop
-@container-large-desktop:      (1140px + @grid-gutter-width);
-//** For `@screen-lg-min` and up.
-@container-lg:                 @container-large-desktop;
-
-
-//== Navbar
-//
-//##
-
-// Basics of a navbar
-@navbar-height:                    64px;
-@navbar-margin-bottom:             @line-height-computed;
-@navbar-border-radius:             @border-radius-base;
-@navbar-padding-horizontal:        floor((@grid-gutter-width / 2));
-@navbar-padding-vertical:          ((@navbar-height - @line-height-computed) / 2);
-@navbar-collapse-max-height:       340px;
-
-@navbar-default-color:             @gray-light;
-@navbar-default-bg:                #fff;
-@navbar-default-border:            transparent;
-
-// Navbar links
-@navbar-default-link-color:                @gray;
-@navbar-default-link-hover-color:          @gray-dark;
-@navbar-default-link-hover-bg:             transparent;
-@navbar-default-link-active-color:         @gray-dark;
-@navbar-default-link-active-bg:            darken(@navbar-default-bg, 6.5%);
-@navbar-default-link-disabled-color:       #ccc;
-@navbar-default-link-disabled-bg:          transparent;
-
-// Navbar brand label
-@navbar-default-brand-color:               @navbar-default-link-color;
-@navbar-default-brand-hover-color:         @navbar-default-link-hover-color;
-@navbar-default-brand-hover-bg:            transparent;
-
-// Navbar toggle
-@navbar-default-toggle-hover-bg:           transparent;
-@navbar-default-toggle-icon-bar-bg:        rgba(0,0,0,0.5);
-@navbar-default-toggle-border-color:       transparent;
-
-
-//=== Inverted navbar
-// Reset inverted navbar basics
-@navbar-inverse-color:                      @gray-light;
-@navbar-inverse-bg:                         @brand-primary;
-@navbar-inverse-border:                     transparent;
-
-// Inverted navbar links
-@navbar-inverse-link-color:                 lighten(@brand-primary, 30%);
-@navbar-inverse-link-hover-color:           #fff;
-@navbar-inverse-link-hover-bg:              transparent;
-@navbar-inverse-link-active-color:          @navbar-inverse-link-hover-color;
-@navbar-inverse-link-active-bg:             darken(@navbar-inverse-bg, 10%);
-@navbar-inverse-link-disabled-color:        #444;
-@navbar-inverse-link-disabled-bg:           transparent;
-
-// Inverted navbar brand label
-@navbar-inverse-brand-color:                @navbar-inverse-link-color;
-@navbar-inverse-brand-hover-color:          #fff;
-@navbar-inverse-brand-hover-bg:             transparent;
-
-// Inverted navbar toggle\
-@navbar-inverse-toggle-hover-bg:            transparent;
-@navbar-inverse-toggle-icon-bar-bg:         rgba(0,0,0,0.5);
-@navbar-inverse-toggle-border-color:        transparent;
-
-
-//== Navs
-//
-//##
-
-//=== Shared nav styles
-@nav-link-padding:                          10px 15px;
-@nav-link-hover-bg:                         @gray-lighter;
-
-@nav-disabled-link-color:                   @gray-light;
-@nav-disabled-link-hover-color:             @gray-light;
-
-//== Tabs
-@nav-tabs-border-color:                     transparent;
-
-@nav-tabs-link-hover-border-color:          @gray-lighter;
-
-@nav-tabs-active-link-hover-bg:             transparent;
-@nav-tabs-active-link-hover-color:          @gray;
-@nav-tabs-active-link-hover-border-color:   transparent;
-
-@nav-tabs-justified-link-border-color:            @nav-tabs-border-color;
-@nav-tabs-justified-active-link-border-color:     @body-bg;
-
-//== Pills
-@nav-pills-border-radius:                   @border-radius-base;
-@nav-pills-active-link-hover-bg:            @component-active-bg;
-@nav-pills-active-link-hover-color:         @component-active-color;
-
-
-//== Pagination
-//
-//##
-
-@pagination-color:                     @link-color;
-@pagination-bg:                        #fff;
-@pagination-border:                    #ddd;
-
-@pagination-hover-color:               @link-hover-color;
-@pagination-hover-bg:                  @gray-lighter;
-@pagination-hover-border:              #ddd;
-
-@pagination-active-color:              #fff;
-@pagination-active-bg:                 @brand-primary;
-@pagination-active-border:             @brand-primary;
-
-@pagination-disabled-color:            @gray-light;
-@pagination-disabled-bg:               #fff;
-@pagination-disabled-border:           #ddd;
-
-
-//== Pager
-//
-//##
-
-@pager-bg:                             @pagination-bg;
-@pager-border:                         @pagination-border;
-@pager-border-radius:                  15px;
-
-@pager-hover-bg:                       @pagination-hover-bg;
-
-@pager-active-bg:                      @pagination-active-bg;
-@pager-active-color:                   @pagination-active-color;
-
-@pager-disabled-color:                 @pagination-disabled-color;
-
-
-//== Jumbotron
-//
-//##
-
-@jumbotron-padding:              30px;
-@jumbotron-color:                inherit;
-@jumbotron-bg:                   #f5f5f5;
-@jumbotron-heading-color:        @headings-color;
-@jumbotron-font-size:            ceil((@font-size-base * 1.5));
-@jumbotron-heading-font-size:    ceil((@font-size-base * 4.5));
-
-
-//== Form states and alerts
-//
-//## Define colors for form feedback states and, by default, alerts.
-
-@state-success-text:             @brand-success;
-@state-success-bg:               #dff0d8;
-@state-success-border:           darken(spin(@state-success-bg, -10), 5%);
-
-@state-info-text:                @brand-info;
-@state-info-bg:                  #e1bee7;
-@state-info-border:              darken(spin(@state-info-bg, -10), 7%);
-
-@state-warning-text:             @brand-warning;
-@state-warning-bg:               #ffe0b2;
-@state-warning-border:           darken(spin(@state-warning-bg, -10), 5%);
-
-@state-danger-text:              @brand-danger;
-@state-danger-bg:                #f9bdbb;
-@state-danger-border:            darken(spin(@state-danger-bg, -10), 5%);
-
-
-//== Tooltips
-//
-//##
-
-//** Tooltip max width
-@tooltip-max-width:           200px;
-//** Tooltip text color
-@tooltip-color:               #fff;
-//** Tooltip background color
-@tooltip-bg:                  #727272;
-@tooltip-opacity:             .9;
-
-//** Tooltip arrow width
-@tooltip-arrow-width:         5px;
-//** Tooltip arrow color
-@tooltip-arrow-color:         @tooltip-bg;
-
-
-//== Popovers
-//
-//##
-
-//** Popover body background color
-@popover-bg:                          #fff;
-//** Popover maximum width
-@popover-max-width:                   276px;
-//** Popover border color
-@popover-border-color:                transparent;
-//** Popover fallback border color
-@popover-fallback-border-color:       transparent;
-
-//** Popover title background color
-@popover-title-bg:                    darken(@popover-bg, 3%);
-
-//** Popover arrow width
-@popover-arrow-width:                 10px;
-//** Popover arrow color
-@popover-arrow-color:                 @popover-bg;
-
-//** Popover outer arrow width
-@popover-arrow-outer-width:           (@popover-arrow-width + 1);
-//** Popover outer arrow color
-@popover-arrow-outer-color:           fadein(@popover-border-color, 12%);
-//** Popover outer arrow fallback color
-@popover-arrow-outer-fallback-color:  darken(@popover-fallback-border-color, 20%);
-
-
-//== Labels
-//
-//##
-
-//** Default label background color
-@label-default-bg:            @gray-light;
-//** Primary label background color
-@label-primary-bg:            @brand-primary;
-//** Success label background color
-@label-success-bg:            @brand-success;
-//** Info label background color
-@label-info-bg:               @brand-info;
-//** Warning label background color
-@label-warning-bg:            @brand-warning;
-//** Danger label background color
-@label-danger-bg:             @brand-danger;
-
-//** Default label text color
-@label-color:                 #fff;
-//** Default text color of a linked label
-@label-link-hover-color:      #fff;
-
-
-//== Modals
-//
-//##
-
-//** Padding applied to the modal body
-@modal-inner-padding:         15px;
-
-//** Padding applied to the modal title
-@modal-title-padding:         15px;
-//** Modal title line-height
-@modal-title-line-height:     @line-height-base;
-
-//** Background color of modal content area
-@modal-content-bg:                             #fff;
-//** Modal content border color
-@modal-content-border-color:                   transparent;
-//** Modal content border color **for IE8**
-@modal-content-fallback-border-color:          #999;
-
-//** Modal backdrop background color
-@modal-backdrop-bg:           #000;
-//** Modal backdrop opacity
-@modal-backdrop-opacity:      .5;
-//** Modal header border color
-@modal-header-border-color:   transparent;
-//** Modal footer border color
-@modal-footer-border-color:   @modal-header-border-color;
-
-@modal-lg:                    900px;
-@modal-md:                    600px;
-@modal-sm:                    300px;
-
-
-//== Alerts
-//
-//## Define alert colors, border radius, and padding.
-
-@alert-padding:               15px;
-@alert-border-radius:         @border-radius-base;
-@alert-link-font-weight:      bold;
-
-@alert-success-bg:            @state-success-bg;
-@alert-success-text:          @state-success-text;
-@alert-success-border:        @state-success-border;
-
-@alert-info-bg:               @state-info-bg;
-@alert-info-text:             @state-info-text;
-@alert-info-border:           @state-info-border;
-
-@alert-warning-bg:            @state-warning-bg;
-@alert-warning-text:          @state-warning-text;
-@alert-warning-border:        @state-warning-border;
-
-@alert-danger-bg:             @state-danger-bg;
-@alert-danger-text:           @state-danger-text;
-@alert-danger-border:         @state-danger-border;
-
-
-//== Progress bars
-//
-//##
-
-//** Background color of the whole progress component
-@progress-bg:                 #f5f5f5;
-//** Progress bar text color
-@progress-bar-color:          #fff;
-//** Variable for setting rounded corners on progress bar.
-@progress-border-radius:      @border-radius-base;
-
-//** Default progress bar color
-@progress-bar-bg:             @brand-primary;
-//** Success progress bar color
-@progress-bar-success-bg:     @brand-success;
-//** Warning progress bar color
-@progress-bar-warning-bg:     @brand-warning;
-//** Danger progress bar color
-@progress-bar-danger-bg:      @brand-danger;
-//** Info progress bar color
-@progress-bar-info-bg:        @brand-info;
-
-
-//== List group
-//
-//##
-
-//** Background color on `.list-group-item`
-@list-group-bg:                 #fff;
-//** `.list-group-item` border color
-@list-group-border:             #ddd;
-//** List group border radius
-@list-group-border-radius:      @border-radius-base;
-
-//** Background color of single list items on hover
-@list-group-hover-bg:           #f5f5f5;
-//** Text color of active list items
-@list-group-active-color:       @component-active-color;
-//** Background color of active list items
-@list-group-active-bg:          @component-active-bg;
-//** Border color of active list elements
-@list-group-active-border:      @list-group-active-bg;
-//** Text color for content within active list items
-@list-group-active-text-color:  lighten(@list-group-active-bg, 40%);
-
-//** Text color of disabled list items
-@list-group-disabled-color:      @gray-light;
-//** Background color of disabled list items
-@list-group-disabled-bg:         @gray-lighter;
-//** Text color for content within disabled list items
-@list-group-disabled-text-color: @list-group-disabled-color;
-
-@list-group-link-color:         #555;
-@list-group-link-hover-color:   @list-group-link-color;
-@list-group-link-heading-color: #333;
-
-
-//== Panels
-//
-//##
-
-@panel-bg:                    #fff;
-@panel-body-padding:          15px;
-@panel-heading-padding:       10px 15px;
-@panel-footer-padding:        @panel-heading-padding;
-@panel-border-radius:         @border-radius-base;
-
-//** Border color for elements within panels
-@panel-inner-border:          #ddd;
-@panel-footer-bg:             #f5f5f5;
-
-@panel-default-text:          @gray-dark;
-@panel-default-border:        #ddd;
-@panel-default-heading-bg:    #f5f5f5;
-
-@panel-primary-text:          #fff;
-@panel-primary-border:        @brand-primary;
-@panel-primary-heading-bg:    @brand-primary;
-
-@panel-success-text:          #fff;
-@panel-success-border:        @state-success-border;
-@panel-success-heading-bg:    @brand-success;
-
-@panel-info-text:             #fff;
-@panel-info-border:           @state-info-border;
-@panel-info-heading-bg:       @brand-info;
-
-@panel-warning-text:          #fff;
-@panel-warning-border:        @state-warning-border;
-@panel-warning-heading-bg:    @brand-warning;
-
-@panel-danger-text:           #fff;
-@panel-danger-border:         @state-danger-border;
-@panel-danger-heading-bg:     @brand-danger;
-
-
-//== Thumbnails
-//
-//##
-
-//** Padding around the thumbnail image
-@thumbnail-padding:           4px;
-//** Thumbnail background color
-@thumbnail-bg:                @body-bg;
-//** Thumbnail border color
-@thumbnail-border:            #ddd;
-//** Thumbnail border radius
-@thumbnail-border-radius:     @border-radius-base;
-
-//** Custom text color for thumbnail captions
-@thumbnail-caption-color:     @text-color;
-//** Padding around the thumbnail caption
-@thumbnail-caption-padding:   9px;
-
-
-//== Wells
-//
-//##
-
-@well-bg:                     #f5f5f5;
-@well-border:                 transparent;
-
-
-//== Badges
-//
-//##
-
-@badge-color:                 #fff;
-//** Linked badge text color on hover
-@badge-link-hover-color:      #fff;
-@badge-bg:                    @gray-light;
-
-//** Badge text color in active nav link
-@badge-active-color:          @link-color;
-//** Badge background color in active nav link
-@badge-active-bg:             #fff;
-
-@badge-font-weight:           normal;
-@badge-line-height:           1;
-@badge-border-radius:         10px;
-
-
-//== Breadcrumbs
-//
-//##
-
-@breadcrumb-padding-vertical:   8px;
-@breadcrumb-padding-horizontal: 15px;
-//** Breadcrumb background color
-@breadcrumb-bg:                 #f5f5f5;
-//** Breadcrumb text color
-@breadcrumb-color:              #ccc;
-//** Text color of current page in the breadcrumb
-@breadcrumb-active-color:       @gray-light;
-//** Textual separator for between breadcrumb elements
-@breadcrumb-separator:          "/";
-
-
-//== Carousel
-//
-//##
-
-@carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6);
-
-@carousel-control-color:                      #fff;
-@carousel-control-width:                      15%;
-@carousel-control-opacity:                    .5;
-@carousel-control-font-size:                  20px;
-
-@carousel-indicator-active-bg:                #fff;
-@carousel-indicator-border-color:             #fff;
-
-@carousel-caption-color:                      #fff;
-
-
-//== Close
-//
-//##
-
-@close-font-weight:           normal;
-@close-color:                 #000;
-@close-text-shadow:           none;
-
-
-//== Code
-//
-//##
-
-@code-color:                  #c7254e;
-@code-bg:                     #f9f2f4;
-
-@kbd-color:                   #fff;
-@kbd-bg:                      #333;
-
-@pre-bg:                      #f5f5f5;
-@pre-color:                   @gray-dark;
-@pre-border-color:            #ccc;
-@pre-scrollable-max-height:   340px;
-
-
-//== Type
-//
-//##
-
-//** Horizontal offset for forms and lists.
-@component-offset-horizontal: 180px;
-//** Text muted color
-@text-muted:                  @gray-light;
-//** Abbreviations and acronyms border color
-@abbr-border-color:           @gray-light;
-//** Headings small color
-@headings-small-color:        @gray-light;
-//** Blockquote small color
-@blockquote-small-color:      @gray-light;
-//** Blockquote font size
-@blockquote-font-size:        (@font-size-base * 1.25);
-//** Blockquote border color
-@blockquote-border-color:     @gray-lighter;
-//** Page header border color
-@page-header-border-color:    @gray-lighter;
-//** Width of horizontal description list titles
-@dl-horizontal-offset:        @component-offset-horizontal;
-//** Point at which .dl-horizontal becomes horizontal
-@dl-horizontal-breakpoint:    @grid-float-breakpoint;
-//** Horizontal line color.
-@hr-border:                   @gray-lighter;
\ No newline at end of file
diff --git a/public/less/admin/settings.less b/public/less/admin/settings.less
deleted file mode 100644
index b4fe92432e..0000000000
--- a/public/less/admin/settings.less
+++ /dev/null
@@ -1,35 +0,0 @@
-.settings {
-	> .row {
-		margin-bottom: 30px;
-	}
-
-	.section-content {
-		border-left: 3px solid @brand-primary;
-
-		ul {
-			list-style-type: none;
-			font-size: 16px;
-			padding-left: 20px;
-		}
-	}
-
-	[data-action="upload"][type="text"] {
-		width: 95%;
-	}
-
-	.bootstrap-tagsinput {
-		width: 100%;
-		border: 0;
-		box-shadow: none;
-		padding-left: 0;
-
-		input {
-			width: 100%;
-			margin-left: 1px;
-			margin-top: 9px;
-			border-bottom: 1px dotted #ccc !important;
-			padding-bottom: 5px;
-			padding-left: 0;
-		}
-	}
-}
\ No newline at end of file
diff --git a/public/less/generics.less b/public/less/generics.less
deleted file mode 100644
index ec8b0c1adf..0000000000
--- a/public/less/generics.less
+++ /dev/null
@@ -1,184 +0,0 @@
-.define-if-not-set() {
-	@gray-base:              #000;
-	@gray-darker:            lighten(@gray-base, 13.5%); // #222
-	@gray-dark:              lighten(@gray-base, 20%);   // #333
-	@gray:                   lighten(@gray-base, 33.5%); // #555
-	@gray-light:             lighten(@gray-base, 46.7%); // #777
-	@gray-lighter:           lighten(@gray-base, 93.5%); // #eee
-
-	@brand-primary:         darken(#428bca, 6.5%); // #337ab7
-	@brand-success:         #5cb85c;
-	@brand-info:            #5bc0de;
-	@brand-warning:         #f0ad4e;
-	@brand-danger:          #d9534f;
-}
-
-.define-if-not-set();
-
-#move_thread_modal .category-list {
-	height: 500px;
-	overflow-y: auto;
-	overflow-x: hidden;
-}
-
-.topic-watch-dropdown {
-	.help-text {
-		margin-left: 20px;
-	}
-}
-
-.category-list {
-	padding: 0;
-
-	li {
-		.inline-block;
-		.pointer;
-		padding: 0.5em;
-		margin: 0.25em;
-		.border-radius(3px);
-
-		&.disabled {
-			background-color: #888!important;
-			opacity: 0.5;
-		}
-	}
-}
-
-.user-list {
-	padding-left: 2rem;
-	padding-top: 1rem;
-
-	li {
-		.pointer;
-		display: inline-block;
-		list-style-type: none;
-		padding: 0.5rem 1rem;
-
-		&:hover {
-			background: #eee;
-		}
-
-		.avatar  {
-			float: left;
-			margin-right: 1rem;
-		}
-
-		span {
-			vertical-align: middle;
-			display: inline-block;
-		}
-	}
-}
-
-.user-icon {
-	display: inline-block;
-	text-align: center;
-	color: @gray-lighter;
-	font-weight: normal;
-	vertical-align: middle;
-	overflow: hidden;	/* stops alt text from overflowing past boundaries if image does not load */
-	white-space: nowrap;
-
-	&:before {
-		content: '';
-		display: inline-block;
-		height: 100%;
-		vertical-align: middle;
-	}
-}
-
-.avatar {
-	/* Contains the user icon class as a mixin, so there's no need to include that in the template */
-	.user-icon;
-
-	&.avatar-xs {
-		width: 16px;
-		height: 16px;
-		.user-icon-style(16px, 1rem);
-	}
-
-	&.avatar-sm {
-		width: 24px;
-		height: 24px;
-		.user-icon-style(24px, 1.5rem);
-	}
-
-	&.avatar-sm2x {
-		width: 48px;
-		height: 48px;
-		.user-icon-style(48px, 1.5rem);
-	}
-
-	&.avatar-md {
-		width: 32px;
-		height: 32px;
-		.user-icon-style(32px, 1.5rem);
-	}
-
-	&.avatar-lg {
-		width: 64px;
-		height: 64px;
-		.user-icon-style(64px, 4rem);
-	}
-
-	&.avatar-xl {
-		width: 128px;
-		height: 128px;
-		.user-icon-style(128px, 7.5rem);
-	}
-
-	&.avatar-rounded {
-		border-radius: 50%;
-	}
-}
-
-.ban-modal {
-	.form-inline, .form-group {
-		width: 100%;
-	}
-
-	.units {
-		line-height: 5rem;
-	}
-}
-
-.admin .ban-modal .units {
-	line-height: 1.846;
-}
-
-#crop-picture-modal {
-	#cropped-image {
-		max-width: 100%;
-	}
-
-	.cropper-container.cropper-bg {
-		max-width: 100%;
-	}
-}
-
-.necro-post {
-	color: rgba(127,127,127,.5);
-	font-size: 1.5em;
-	margin-bottom: 20px;
-	text-align: center;
-	text-transform: uppercase;
-}
-
-.timeline-event {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-
-	.timeline-badge {
-		padding: 1rem;
-	}
-}
-
-.imagedrop {
-	position: absolute;
-	text-align: center;
-	font-size: 24px;
-	color: @gray-light;
-	width: 100%;
-	display: none;
-}
\ No newline at end of file
diff --git a/public/less/jquery-ui.less b/public/less/jquery-ui.less
deleted file mode 100644
index 1f6e7ae03c..0000000000
--- a/public/less/jquery-ui.less
+++ /dev/null
@@ -1,10 +0,0 @@
-@import (inline) 'jquery-ui/themes/base/core.css';
-@import (inline) 'jquery-ui/themes/base/menu.css';
-@import (inline) 'jquery-ui/themes/base/button.css';
-@import (inline) 'jquery-ui/themes/base/datepicker.css';
-@import (inline) 'jquery-ui/themes/base/autocomplete.css';
-@import (inline) 'jquery-ui/themes/base/resizable.css';
-@import (inline) 'jquery-ui/themes/base/selectable.css';
-@import (inline) 'jquery-ui/themes/base/draggable.css';
-@import (inline) 'jquery-ui/themes/base/sortable.css';
-@import (inline) 'jquery-ui/themes/base/theme.css';
diff --git a/public/less/mixins.less b/public/less/mixins.less
deleted file mode 100644
index 04259bb089..0000000000
--- a/public/less/mixins.less
+++ /dev/null
@@ -1,80 +0,0 @@
-.no-select {
-	-webkit-touch-callout: none;
-	-webkit-user-select: none;
-	-khtml-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-}
-
-.pointer {
-	cursor: pointer;
-	*cursor: hand;
-}
-
-.inline-block {
-	display: inline-block;
-	*display: inline;
-	zoom: 1;
-}
-
-.clear {
-	clear: both;
-}
-
-.zebra {
-	&:nth-child(even) {
-		background: rgba(191,191,191,0.2);
-	}
-
-	&:nth-child(odd) {
-		background: rgba(223,223,223,0.2);
-	}
-}
-
-.border-radius (@radius: 5px) {
-	-webkit-border-radius: @radius;
-	-moz-border-radius: @radius;
-	-ms-border-radius: @radius;
-	-o-border-radius: @radius;
-	border-radius: @radius;
-}
-
-.text-ellipsis {
-	overflow: hidden;
-	text-overflow: ellipsis;
-	white-space: nowrap;
-}
-
-.fix-lists {
-	ul {
-		> li {
-			list-style-type: disc;
-
-			ul > li {
-				list-style-type: circle;
-
-				ul > li {
-					list-style-type: square;
-				}
-			}
-		}
-	}
-
-	> ul, > ol {
-		margin-bottom: 10px;
-	}
-}
-
-.user-icon-style(@size: 32px, @font-size: 1.5rem, @border-radius: inherit) {
-	border-radius: @border-radius;
-	width: @size;
-	height: @size;
-	line-height: @size;
-	font-size: @font-size;
-}
-
-.box-shadow(@shadow) {
-	-webkit-box-shadow: @shadow;
-	box-shadow: @shadow;
-}
\ No newline at end of file
diff --git a/public/less/modals.less b/public/less/modals.less
deleted file mode 100644
index 8bf0da402e..0000000000
--- a/public/less/modals.less
+++ /dev/null
@@ -1,18 +0,0 @@
-.tool-modal {
-	position: fixed;
-	bottom: 10%;
-	right: 2rem;
-	z-index: 1;
-}
-
-@media screen and (min-width: @screen-sm-min) {
-	.tool-modal {
-		max-width: 33%;
-	}
-}
-
-.topic-thumbs-modal {
-	img.media-object {
-		max-width: 20rem;
-	}
-}
\ No newline at end of file
diff --git a/public/openapi/components/schemas/CommonProps.yaml b/public/openapi/components/schemas/CommonProps.yaml
index 8428791791..bf8572b286 100644
--- a/public/openapi/components/schemas/CommonProps.yaml
+++ b/public/openapi/components/schemas/CommonProps.yaml
@@ -4,6 +4,9 @@ CommonProps:
     loggedIn:
       type: boolean
       description: True if user is logged in, false otherwise
+    loggedInUser:
+      type: object
+      description: The logged in user object
     relative_path:
       type: string
       description: |
@@ -65,6 +68,10 @@ CommonProps:
                     type: string
                   as:
                     type: string
+                  crossorigin:
+                    type: string
+                    enum: ['', 'anonymous', 'use-credentials']
+                    description: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin
                 required:
                   - rel
                   - href
diff --git a/public/openapi/components/schemas/FlagObject.yaml b/public/openapi/components/schemas/FlagObject.yaml
index 388ae7f2a9..7c488198d3 100644
--- a/public/openapi/components/schemas/FlagObject.yaml
+++ b/public/openapi/components/schemas/FlagObject.yaml
@@ -165,8 +165,13 @@ FlagNotesObject:
                 type: string
                 description: An URL-safe variant of the username (i.e. lower-cased, spaces
                   removed, etc.)
+              displayname:
+                type: string
+                description: This is either username or fullname depending on forum and user settings
+                example: Dragon Fruit
               picture:
                 type: string
+                nullable: true
               uid:
                 type: number
                 description: A user identifier
diff --git a/public/openapi/components/schemas/GroupObject.yaml b/public/openapi/components/schemas/GroupObject.yaml
index c1b28479d5..99148f249d 100644
--- a/public/openapi/components/schemas/GroupObject.yaml
+++ b/public/openapi/components/schemas/GroupObject.yaml
@@ -74,8 +74,72 @@ GroupFullObject:
       type: number
     pending:
       type: array
+      items:
+        type: object
+        properties:
+          uid:
+            type: number
+            description: A user identifier
+            example: 1
+          username:
+            type: string
+            description: A friendly name for a given user account
+            example: Dragon Fruit
+          userslug:
+            type: string
+            description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.)
+            example: dragon-fruit
+          picture:
+            type: string
+            description: A URL pointing to a picture to be used as the user's avatar
+            example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
+            nullable: true
+          displayname:
+            type: string
+            description: This is either username or fullname depending on forum and user settings
+            example: Dragon Fruit
+          'icon:text':
+            type: string
+            description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
+            example: D
+          'icon:bgColor':
+            type: string
+            description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
+            example: '#9c27b0'
     invited:
       type: array
+      items:
+        type: object
+        properties:
+          uid:
+            type: number
+            description: A user identifier
+            example: 1
+          username:
+            type: string
+            description: A friendly name for a given user account
+            example: Dragon Fruit
+          userslug:
+            type: string
+            description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.)
+            example: dragon-fruit
+          picture:
+            type: string
+            description: A URL pointing to a picture to be used as the user's avatar
+            example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
+            nullable: true
+          displayname:
+            type: string
+            description: This is either username or fullname depending on forum and user settings
+            example: Dragon Fruit
+          'icon:text':
+            type: string
+            description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
+            example: D
+          'icon:bgColor':
+            type: string
+            description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
+            example: '#9c27b0'
     isMember:
       type: boolean
     isPending:
diff --git a/public/openapi/components/schemas/NotificationFilters.yaml b/public/openapi/components/schemas/NotificationFilters.yaml
new file mode 100644
index 0000000000..03eae4325d
--- /dev/null
+++ b/public/openapi/components/schemas/NotificationFilters.yaml
@@ -0,0 +1,23 @@
+FiltersObject:
+  type: object
+  properties:
+    name:
+      type: string
+    filter:
+      type: string
+    selected:
+      type: boolean
+    count:
+      type: number
+  required:
+    - name
+    - filter
+FiltersArray:
+  type: array
+  items:
+    anyOf:
+      - $ref: '#/FiltersObject'
+      - type: object
+        properties:
+          separator:
+            type: boolean
\ No newline at end of file
diff --git a/public/openapi/components/schemas/Pagination.yaml b/public/openapi/components/schemas/Pagination.yaml
index 290eb95971..f9b79408cc 100644
--- a/public/openapi/components/schemas/Pagination.yaml
+++ b/public/openapi/components/schemas/Pagination.yaml
@@ -1,64 +1,77 @@
+PaginationProps:
+  allOf:
+    - type: object
+      description: Optional properties that may or may not be present (except for `page`, which is always present, and is only here as a hack to pass validation)
+      properties:
+        page:
+          type: number
+        qs:
+          type: string
+      required:
+        - cid
 Pagination:
   type: object
   properties:
     pagination:
-      type: object
-      properties:
-        prev:
-          type: object
-          properties:
-            page:
-              type: number
-            active:
-              type: boolean
-        next:
-          type: object
+      allOf:
+        - $ref: '#/PaginationProps'
+        - type: object
           properties:
-            page:
+            prev:
+              type: object
+              properties:
+                page:
+                  type: number
+                active:
+                  type: boolean
+            next:
+              type: object
+              properties:
+                page:
+                  type: number
+                active:
+                  type: boolean
+            first:
+              type: object
+              properties:
+                page:
+                  type: number
+                active:
+                  type: boolean
+            last:
+              type: object
+              properties:
+                page:
+                  type: number
+                active:
+                  type: boolean
+            rel:
+              type: array
+              description: A collection of objects used to build the link tags pointing to adjacent pages, if any.
+              items:
+                type: object
+                properties:
+                  rel:
+                    type: string
+                    enum: [prev, next]
+                  href:
+                    type: string
+                    description: A query string that points to the previous or next page
+            pages:
+              type: array
+              items:
+                type: object
+                properties:
+                  page:
+                    type: number
+                    description: The current page
+                  active:
+                    type: boolean
+                    description: If the page noted in this array is the current page
+                  qs:
+                    type: string
+                    description: A query string that points to the page noted in this array
+            currentPage:
               type: number
-            active:
-              type: boolean
-        first:
-          type: object
-          properties:
-            page:
-              type: number
-            active:
-              type: boolean
-        last:
-          type: object
-          properties:
-            page:
-              type: number
-            active:
-              type: boolean
-        rel:
-          type: array
-          description: A collection of objects used to build the link tags pointing to adjacent pages, if any.
-          items:
-            type: object
-            properties:
-              rel:
-                type: string
-                enum: [prev, next]
-              href:
-                type: string
-                description: A query string that points to the previous or next page
-        pages:
-          type: array
-          items:
-            type: object
-            properties:
-              page:
-                type: number
-                description: The current page
-              active:
-                type: boolean
-                description: If the page noted in this array is the current page
-              qs:
-                type: string
-                description: A query string that points to the page noted in this array
-        currentPage:
-          type: number
-        pageCount:
-          type: number
\ No newline at end of file
+            pageCount:
+              type: number
\ No newline at end of file
diff --git a/public/openapi/components/schemas/UserObject.yaml b/public/openapi/components/schemas/UserObject.yaml
index 593ba63fd9..3b40834f73 100644
--- a/public/openapi/components/schemas/UserObject.yaml
+++ b/public/openapi/components/schemas/UserObject.yaml
@@ -133,6 +133,15 @@ UserObject:
       example:
         - administrators
         - Staff
+    muted:
+      type: boolean
+      description: Whether or not the user has been muted.
+    mutedUntil:
+      type: number
+      description: A UNIX timestamp representing the moment a muted state will be lifted.
+    mutedReason:
+      type: string
+      description: The admin-provided reason for being muted.
     'icon:text':
       type: string
       description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
@@ -322,6 +331,17 @@ UserObjectFull:
       example:
         - administrators
         - Staff
+    muted:
+      type: boolean
+      description: Whether or not the user has been muted.
+    mutedUntil:
+      type: number
+      description: A UNIX timestamp representing the moment a muted state will be lifted.
+      nullable: true
+    mutedReason:
+      type: string
+      description: The admin-provided reason for being muted.
+      nullable: true
     'icon:text':
       type: string
       description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
@@ -348,6 +368,8 @@ UserObjectFull:
       type: string
     age:
       type: number
+    emailHidden:
+      type: boolean
     emailClass:
       type: string
     ips:
@@ -361,6 +383,8 @@ UserObjectFull:
       properties:
         best:
           type: number
+        controversial:
+          type: number
         blocks:
           type: number
         bookmarks:
@@ -413,6 +437,8 @@ UserObjectFull:
       type: boolean
     canBan:
       type: boolean
+    canMute:
+      type: boolean
     canFlag:
       type: boolean
     canChangePassword:
@@ -425,10 +451,22 @@ UserObjectFull:
       type: number
     showHidden:
       type: boolean
+    allowProfilePicture:
+      type: boolean
+    allowCoverPicture:
+      type: boolean
+    allowProfileImageUploads:
+      type: number
+    allowedProfileImageExtensions:
+      type: string
     groups:
       type: array
       items:
         $ref: ./GroupObject.yaml#/GroupFullObject
+    selectedGroup:
+      type: array
+      items:
+        $ref: ./GroupObject.yaml#/GroupFullObject
     disableSignatures:
       type: boolean
     reputation:disabled:
@@ -444,6 +482,9 @@ UserObjectFull:
             type: string
           route:
             type: string
+          url:
+            type: string
+            description: The relative path to the profile link route from the root of the forum
           name:
             type: string
           visibility:
@@ -659,3 +700,53 @@ UserObjectACP:
       nullable: true
     ips:
       type: array
+BanMuteArray:
+  type: array
+  items:
+    type: object
+    properties:
+      uid:
+        type: number
+      timestamp:
+        type: number
+      expire:
+        type: number
+      fromUid:
+        type: number
+      user:
+        type: object
+        properties:
+          username:
+            type: string
+            description: A friendly name for a given user account
+          userslug:
+            type: string
+            description: An URL-safe variant of the username (i.e. lower-cased, spaces
+              removed, etc.)
+          picture:
+            type: string
+          uid:
+            type: number
+            description: A user identifier
+          icon:text:
+            type: string
+            description: A single-letter representation of a username. This is used in the
+              auto-generated icon given to users without
+              an avatar
+          icon:bgColor:
+            type: string
+            description: A six-character hexadecimal colour code assigned to the user. This
+              value is used in conjunction with
+              `icon:text` for the user's auto-generated
+              icon
+            example: "#f44336"
+      until:
+        type: number
+      untilReadable:
+        type: string
+      timestampReadable:
+        type: string
+      timestampISO:
+        type: string
+      reason:
+        type: string
\ No newline at end of file
diff --git a/public/openapi/read.yaml b/public/openapi/read.yaml
index ce6c0936fe..5343d130ae 100644
--- a/public/openapi/read.yaml
+++ b/public/openapi/read.yaml
@@ -1,7 +1,7 @@
 openapi: 3.0.0
 info:
   title: NodeBB Read API
-  version: 1.15.0
+  version: 3.0.0
   contact:
     email: support@nodebb.org
   license:
@@ -90,6 +90,8 @@ paths:
     $ref: 'read/admin/settings/homepage.yaml'
   /api/admin/settings/social:
     $ref: 'read/admin/settings/social.yaml'
+  /api/admin/settings/api:
+    $ref: 'read/admin/settings/api.yaml'
   /api/admin/settings/email:
     $ref: 'read/admin/settings/email.yaml'
   /api/admin/settings/user:
@@ -182,14 +184,6 @@ paths:
     $ref: 'read/user/username/username.yaml'
   "/api/user/email/{email}":
     $ref: 'read/user/email/email.yaml'
-  "/api/user/{userslug}/export/posts":
-    $ref: 'read/user/userslug/export/posts.yaml'
-  "/api/user/{userslug}/export/uploads":
-    $ref: 'read/user/userslug/export/uploads.yaml'
-  "/api/user/{userslug}/export/profile":
-    $ref: 'read/user/userslug/export/profile.yaml'
-  "/api/user/uid/{userslug}/export/{type}":
-    $ref: 'read/user/uid/userslug/export/type.yaml'
   /api/categories:
     $ref: 'read/categories.yaml'
   "/api/categories/{cid}/moderators":
diff --git a/public/openapi/read/admin/advanced/cache.yaml b/public/openapi/read/admin/advanced/cache.yaml
index c6daf4fbea..c80fe41937 100644
--- a/public/openapi/read/admin/advanced/cache.yaml
+++ b/public/openapi/read/admin/advanced/cache.yaml
@@ -20,83 +20,107 @@ get:
             allOf:
               - type: object
                 properties:
-                  postCache:
+                  caches:
                     type: object
                     properties:
-                      length:
-                        type: number
-                      max:
-                        type: number
-                        nullable: true
-                      itemCount:
-                        type: number
-                      percentFull:
-                        type: number
-                      hits:
-                        type: string
-                      misses:
-                        type: string
-                      hitRatio:
-                        type: string
-                      enabled:
-                        type: boolean
-                  groupCache:
-                    type: object
-                    properties:
-                      length:
-                        type: number
-                      max:
-                        type: number
-                      itemCount:
-                        type: number
-                      percentFull:
-                        type: number
-                      hits:
-                        type: string
-                      misses:
-                        type: string
-                      hitRatio:
-                        type: string
-                      enabled:
-                        type: boolean
-                  localCache:
-                    type: object
-                    properties:
-                      length:
-                        type: number
-                      max:
-                        type: number
-                      itemCount:
-                        type: number
-                      percentFull:
-                        type: number
-                      hits:
-                        type: string
-                      misses:
-                        type: string
-                      hitRatio:
-                        type: string
-                      enabled:
-                        type: boolean
-                  objectCache:
-                    type: object
-                    properties:
-                      length:
-                        type: number
-                      max:
-                        type: number
-                      itemCount:
-                        type: number
-                      percentFull:
-                        type: number
-                      hits:
-                        type: string
-                      misses:
-                        type: string
-                      hitRatio:
-                        type: string
-                      enabled:
-                        type: boolean
+                      postCache:
+                        type: object
+                        properties:
+                          length:
+                            type: number
+                          max:
+                            type: number
+                            nullable: true
+                          maxSize:
+                            type: number
+                          itemCount:
+                            type: number
+                          percentFull:
+                            type: number
+                          hits:
+                            type: string
+                          hitsPerSecond:
+                            type: number
+                          misses:
+                            type: string
+                          hitRatio:
+                            type: string
+                          enabled:
+                            type: boolean
+                          ttl:
+                            type: number
+                      groupCache:
+                        type: object
+                        properties:
+                          length:
+                            type: number
+                          max:
+                            type: number
+                            nullable: true
+                          maxSize:
+                            type: number
+                          itemCount:
+                            type: number
+                          percentFull:
+                            type: number
+                          hits:
+                            type: string
+                          misses:
+                            type: string
+                          hitRatio:
+                            type: string
+                          enabled:
+                            type: boolean
+                          ttl:
+                            type: number
+                      localCache:
+                        type: object
+                        properties:
+                          length:
+                            type: number
+                          max:
+                            type: number
+                            nullable: true
+                          maxSize:
+                            type: number
+                          itemCount:
+                            type: number
+                          percentFull:
+                            type: number
+                          hits:
+                            type: string
+                          misses:
+                            type: string
+                          hitRatio:
+                            type: string
+                          enabled:
+                            type: boolean
+                          ttl:
+                            type: number
+                      objectCache:
+                        type: object
+                        properties:
+                          length:
+                            type: number
+                          max:
+                            type: number
+                            nullable: true
+                          maxSize:
+                            type: number
+                          itemCount:
+                            type: number
+                          percentFull:
+                            type: number
+                          hits:
+                            type: string
+                          misses:
+                            type: string
+                          hitRatio:
+                            type: string
+                          enabled:
+                            type: boolean
+                          ttl:
+                            type: number
                 required:
                   - postCache
                   - groupCache
diff --git a/public/openapi/read/admin/advanced/events.yaml b/public/openapi/read/admin/advanced/events.yaml
index 72ce4be7e2..362dec53c2 100644
--- a/public/openapi/read/admin/advanced/events.yaml
+++ b/public/openapi/read/admin/advanced/events.yaml
@@ -59,6 +59,8 @@ get:
                           type: string
                         selected:
                           type: boolean
+                        count:
+                          type: number
                   query:
                     additionalProperties:
                       description: An object containing the query string parameters, if any
diff --git a/public/openapi/read/admin/dashboard.yaml b/public/openapi/read/admin/dashboard.yaml
index a281150473..a416d51b56 100644
--- a/public/openapi/read/admin/dashboard.yaml
+++ b/public/openapi/read/admin/dashboard.yaml
@@ -60,5 +60,16 @@ get:
                         description: An ISO 8601 formatted date string (complementing `timestamp`)
                   showSystemControls:
                     type: boolean
+                  popularSearches:
+                    type: array
+                    items:
+                      type: object
+                      properties:
+                        value:
+                          type: string
+                          description: The search term
+                        score:
+                          type: number
+                          description: How many times it has been queried
               - $ref: ../../components/schemas/admin/dashboard.yaml#/Stats
               - $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/admin/dashboard/searches.yaml b/public/openapi/read/admin/dashboard/searches.yaml
index 7097c8bcb8..1fda6f8423 100644
--- a/public/openapi/read/admin/dashboard/searches.yaml
+++ b/public/openapi/read/admin/dashboard/searches.yaml
@@ -1,7 +1,7 @@
 get:
   tags:
     - admin
-  summary: Get detailed user registration analytics
+  summary: Get detailed search analytics
   responses:
     "200":
       description: A JSON object containing popular searches.
@@ -22,4 +22,12 @@ get:
                         score:
                           type: number
                           description: Number of times this string has been searched
+                  startDate:
+                    type: string
+                    description: A UNIX timestamp of the start date
+                    nullable: true
+                  endDate:
+                    type: string
+                    description: A UNIX timestamp of the end date
+                    nullable: true
               - $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/admin/dashboard/topics.yaml b/public/openapi/read/admin/dashboard/topics.yaml
index 2a787893c1..7b3ffab7b7 100644
--- a/public/openapi/read/admin/dashboard/topics.yaml
+++ b/public/openapi/read/admin/dashboard/topics.yaml
@@ -1,10 +1,10 @@
 get:
   tags:
     - admin
-  summary: Get detailed user registration analytics
+  summary: Get detailed topic creation analytics
   responses:
     "200":
-      description: A JSON object containing more detailed analytics related to user registrations.
+      description: A JSON object containing more detailed analytics related to topic creations.
       content:
         application/json:
           schema:
diff --git a/public/openapi/read/admin/development/info.yaml b/public/openapi/read/admin/development/info.yaml
index 23d277fc3f..493958b564 100644
--- a/public/openapi/read/admin/development/info.yaml
+++ b/public/openapi/read/admin/development/info.yaml
@@ -64,12 +64,7 @@ get:
                             uptimeHumanReadable:
                               type: string
                             cpuUsage:
-                              type: object
-                              properties:
-                                user:
-                                  type: string
-                                system:
-                                  type: string
+                              type: number
                         os:
                           type: object
                           properties:
@@ -90,6 +85,8 @@ get:
                               type: string
                             totalmem:
                               type: string
+                            usedmem:
+                              type: string
                         nodebb:
                           type: object
                           properties:
diff --git a/public/openapi/read/admin/extend/plugins.yaml b/public/openapi/read/admin/extend/plugins.yaml
index 8613d267fb..cd36a779fa 100644
--- a/public/openapi/read/admin/extend/plugins.yaml
+++ b/public/openapi/read/admin/extend/plugins.yaml
@@ -72,6 +72,8 @@ get:
                     type: number
                   inactiveCount:
                     type: number
+                  canChangeState:
+                    type: boolean
                   upgradeCount:
                     type: number
                   download:
diff --git a/public/openapi/read/admin/manage/admins-mods.yaml b/public/openapi/read/admin/manage/admins-mods.yaml
index ba922850e9..c5db50d839 100644
--- a/public/openapi/read/admin/manage/admins-mods.yaml
+++ b/public/openapi/read/admin/manage/admins-mods.yaml
@@ -97,11 +97,11 @@ get:
                           type: array
                           items:
                             $ref: ../../../components/schemas/UserObject.yaml#/UserObjectSlim
+                        subCategoryCount:
+                          type: number
                   selectedCategory:
-                    $ref: ../../../components/schemas/CategoryObject.yaml#/CategoryObject
-                  allPrivileges:
-                    type: array
-                    items:
-                      type: string
-                      description: A simple array containing user privilege names (used client-side when giving mod privilege)
+                    nullable: true
+                    anyOf:
+                      - $ref: ../../../components/schemas/CategoryObject.yaml#/CategoryObject
+              - $ref: ../../../components/schemas/Pagination.yaml#/Pagination
               - $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/admin/manage/categories.yaml b/public/openapi/read/admin/manage/categories.yaml
index 7cfc8753ff..36b8d4f9a8 100644
--- a/public/openapi/read/admin/manage/categories.yaml
+++ b/public/openapi/read/admin/manage/categories.yaml
@@ -49,5 +49,11 @@ get:
                         children:
                           type: array
                           description: Array of children categories
+                        subCategoriesLeft:
+                          type: number
+                        hasMoreSubCategories:
+                          type: boolean
+                        showMorePage:
+                          type: number
               - $ref: ../../../components/schemas/Pagination.yaml#/Pagination
               - $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/admin/manage/privileges/cid.yaml b/public/openapi/read/admin/manage/privileges/cid.yaml
index 2ef7c8d891..75aad276fc 100644
--- a/public/openapi/read/admin/manage/privileges/cid.yaml
+++ b/public/openapi/read/admin/manage/privileges/cid.yaml
@@ -119,4 +119,6 @@ get:
                     description: A category identifier
                   group:
                     type: string
+                  isAdminPriv:
+                    type: boolean
               - $ref: ../../../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/admin/settings/api.yaml b/public/openapi/read/admin/settings/api.yaml
new file mode 100644
index 0000000000..c36f11d9a6
--- /dev/null
+++ b/public/openapi/read/admin/settings/api.yaml
@@ -0,0 +1,24 @@
+get:
+  tags:
+    - admin
+  summary: Get API token settings
+  responses:
+    "200":
+      description: "A JSON object containing API tokens and settings"
+      content:
+        application/json:
+          schema:
+            allOf:
+              - type: object
+                properties:
+                  lastSeen:
+                    type: object
+                    description: A key-value set of API tokens and a UNIX timestamp of when it was last used
+                    properties: {}
+                    additionalProperties: {}
+                  lastSeenISO:
+                    type: object
+                    description: A key-value set of API tokens and an ISO 8601 formatted date string of when it was last used
+                    properties: {}
+                    additionalProperties: {}
+              - $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/admin/settings/navigation.yaml b/public/openapi/read/admin/settings/navigation.yaml
index 9f75f9aa28..05ffbc6bf7 100644
--- a/public/openapi/read/admin/settings/navigation.yaml
+++ b/public/openapi/read/admin/settings/navigation.yaml
@@ -87,11 +87,18 @@ get:
                                 type: string
                               displayName:
                                 type: string
-                        properties:
-                          type: object
-                          properties:
-                            targetBlank:
-                              type: boolean
+                        targetBlank:
+                          type: boolean
+                      required:
+                        - id
+                        - route
+                        - title
+                        - enabled
+                        - iconClass
+                        - textClass
+                        - text
+                        - core
+                        - groups
                   groups:
                     type: array
                     items:
diff --git a/public/openapi/read/categories.yaml b/public/openapi/read/categories.yaml
index 74e2a9d486..278ab8a7c1 100644
--- a/public/openapi/read/categories.yaml
+++ b/public/openapi/read/categories.yaml
@@ -193,6 +193,9 @@ get:
                                   description: An ISO 8601 formatted date string (complementing `timestamp`)
                                 pid:
                                   type: number
+                                index:
+                                  type: number
+                                  description: The index of the post
                                 topic:
                                   type: object
                                   properties:
@@ -200,6 +203,32 @@ get:
                                       type: string
                                     title:
                                       type: string
+                                user:
+                                  type: object
+                                  properties:
+                                      uid:
+                                        type: number
+                                        example: 1
+                                      username:
+                                        type: string
+                                        example: Dragon Fruit
+                                      userslug:
+                                        type: string
+                                        example: dragon-fruit
+                                      picture:
+                                        type: string
+                                        example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
+                                        nullable: true
+                                      displayname:
+                                        type: string
+                                        description: This is either username or fullname depending on forum and user settings
+                                        example: Dragon Fruit
+                                      'icon:text':
+                                        type: string
+                                        example: D
+                                      'icon:bgColor':
+                                        type: string
+                                        example: '#9c27b0'
                             imageClass:
                               type: string
               - $ref: ../components/schemas/Pagination.yaml#/Pagination
diff --git a/public/openapi/read/category/category_id.yaml b/public/openapi/read/category/category_id.yaml
index 10a8523774..2735ce5e90 100644
--- a/public/openapi/read/category/category_id.yaml
+++ b/public/openapi/read/category/category_id.yaml
@@ -99,6 +99,16 @@ get:
                     type: number
                   reputation:disabled:
                     type: number
+                  selectedTag:
+                    type: object
+                    properties:
+                      label:
+                        type: string
+                    nullable: true
+                  selectedTags:
+                    type: array
+                    items:
+                      type: string
               - $ref: ../../components/schemas/Pagination.yaml#/Pagination
               - $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
               - $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/config.yaml b/public/openapi/read/config.yaml
index 2d8d2ff07b..e4b44456d5 100644
--- a/public/openapi/read/config.yaml
+++ b/public/openapi/read/config.yaml
@@ -17,6 +17,8 @@ get:
                 type: string
               assetBaseUrl:
                 type: string
+              asset_base_url:
+                type: string
               siteTitle:
                 type: string
               browserTitle:
@@ -100,8 +102,14 @@ get:
                 type: string
               searchEnabled:
                 type: boolean
+              searchDefaultInQuick:
+                type: string
+              disableCustomUserSkins:
+                type: boolean
               bootswatchSkin:
                 type: string
+              composer:showHelpTab:
+                type: boolean
               enablePostHistory:
                 type: boolean
               timeagoCutoff:
@@ -145,4 +153,123 @@ get:
                 items:
                   type: string
                   description: A valid CSS colour code
-                  example: '#fff'
\ No newline at end of file
+                  example: '#fff'
+              emailPrompt:
+                type: number
+              useragent:
+                type: object
+                properties:
+                  isYaBrowser:
+                    type: boolean
+                  isAuthoritative:
+                    type: boolean
+                  isMobile:
+                    type: boolean
+                  isMobileNative:
+                    type: boolean
+                  isTablet:
+                    type: boolean
+                  isiPad:
+                    type: boolean
+                  isiPod:
+                    type: boolean
+                  isiPhone:
+                    type: boolean
+                  isiPhoneNative:
+                    type: boolean
+                  isAndroid:
+                    type: boolean
+                  isAndroidNative:
+                    type: boolean
+                  isBlackberry:
+                    type: boolean
+                  isOpera:
+                    type: boolean
+                  isIE:
+                    type: boolean
+                  isEdge:
+                    type: boolean
+                  isIECompatibilityMode:
+                    type: boolean
+                  isSafari:
+                    type: boolean
+                  isFirefox:
+                    type: boolean
+                  isWebkit:
+                    type: boolean
+                  isChrome:
+                    type: boolean
+                  isKonqueror:
+                    type: boolean
+                  isOmniWeb:
+                    type: boolean
+                  isSeaMonkey:
+                    type: boolean
+                  isFlock:
+                    type: boolean
+                  isAmaya:
+                    type: boolean
+                  isPhantomJS:
+                    type: boolean
+                  isEpiphany:
+                    type: boolean
+                  isDesktop:
+                    type: boolean
+                  isWindows:
+                    type: boolean
+                  isLinux:
+                    type: boolean
+                  isLinux64:
+                    type: boolean
+                  isMac:
+                    type: boolean
+                  isChromeOS:
+                    type: boolean
+                  isBada:
+                    type: boolean
+                  isSamsung:
+                    type: boolean
+                  isRaspberry:
+                    type: boolean
+                  isBot:
+                    type: boolean
+                  isCurl:
+                    type: boolean
+                  isAndroidTablet:
+                    type: boolean
+                  isWinJs:
+                    type: boolean
+                  isKindleFire:
+                    type: boolean
+                  isSilk:
+                    type: boolean
+                  isCaptive:
+                    type: boolean
+                  isSmartTV:
+                    type: boolean
+                  isUC:
+                    type: boolean
+                  isFacebook:
+                    type: boolean
+                  isAlamoFire:
+                    type: boolean
+                  isElectron:
+                    type: boolean
+                  silkAccelerated:
+                    type: boolean
+                  browser:
+                    type: string
+                  version:
+                    type: string
+                  os:
+                    type: string
+                  platform:
+                    type: string
+                  geoIp:
+                    type: object
+                  source:
+                    type: string
+                  isWechat:
+                    type: boolean
+              composer-default:
+                type: object
diff --git a/public/openapi/read/confirm/code.yaml b/public/openapi/read/confirm/code.yaml
index c3e75649b8..9d55b016c1 100644
--- a/public/openapi/read/confirm/code.yaml
+++ b/public/openapi/read/confirm/code.yaml
@@ -2,6 +2,14 @@ get:
   tags:
     - authentication
   summary: Verify an email address
+  parameters:
+    - in: path
+      name: code
+      schema:
+        type: string
+      required: true
+      description: a valid confirmation code
+      example: f8c4a54a-47ae-40f5-a0a5-356d6a35c24e
   responses:
     "200":
       description: Email address verified, or confirmation code was incorrect
diff --git a/public/openapi/read/flags.yaml b/public/openapi/read/flags.yaml
index 696a61afab..b354f09226 100644
--- a/public/openapi/read/flags.yaml
+++ b/public/openapi/read/flags.yaml
@@ -42,6 +42,9 @@ get:
                         assignee:
                           type: string
                           nullable: true
+                  count:
+                    type: number
+                    description: The count of returned flags (irrespective of the page count or number of flags per page).
                   analytics:
                     type: array
                     items:
@@ -71,6 +74,105 @@ get:
                       bgColor:
                         type: string
                     nullable: true
+                  selected:
+                    type: object
+                    properties:
+                      assignee:
+                        type: array
+                        items:
+                          type: object
+                          properties:
+                            uid:
+                              type: number
+                              description: A user identifier
+                            username:
+                              type: string
+                              description: A friendly name for a given user account
+                            userslug:
+                              type: string
+                              description: An URL-safe variant of the username (i.e. lower-cased, spaces
+                                removed, etc.)
+                            displayname:
+                              type: string
+                            picture:
+                              nullable: true
+                              type: string
+                            icon:text:
+                              type: string
+                              description: A single-letter representation of a username. This is used in the
+                                auto-generated icon given to users without
+                                an avatar
+                            icon:bgColor:
+                              type: string
+                              description: A six-character hexadecimal colour code assigned to the user. This
+                                value is used in conjunction with
+                                `icon:text` for the user's auto-generated
+                                icon
+                              example: "#f44336"
+                      reporterId:
+                        type: array
+                        items:
+                          type: object
+                          properties:
+                            uid:
+                              type: number
+                              description: A user identifier
+                            username:
+                              type: string
+                              description: A friendly name for a given user account
+                            userslug:
+                              type: string
+                              description: An URL-safe variant of the username (i.e. lower-cased, spaces
+                                removed, etc.)
+                            displayname:
+                              type: string
+                            picture:
+                              nullable: true
+                              type: string
+                            icon:text:
+                              type: string
+                              description: A single-letter representation of a username. This is used in the
+                                auto-generated icon given to users without
+                                an avatar
+                            icon:bgColor:
+                              type: string
+                              description: A six-character hexadecimal colour code assigned to the user. This
+                                value is used in conjunction with
+                                `icon:text` for the user's auto-generated
+                                icon
+                              example: "#f44336"
+                      targetUid:
+                        type: array
+                        items:
+                          type: object
+                          properties:
+                            uid:
+                              type: number
+                              description: A user identifier
+                            username:
+                              type: string
+                              description: A friendly name for a given user account
+                            userslug:
+                              type: string
+                              description: An URL-safe variant of the username (i.e. lower-cased, spaces
+                                removed, etc.)
+                            displayname:
+                              type: string
+                            picture:
+                              nullable: true
+                              type: string
+                            icon:text:
+                              type: string
+                              description: A single-letter representation of a username. This is used in the
+                                auto-generated icon given to users without
+                                an avatar
+                            icon:bgColor:
+                              type: string
+                              description: A six-character hexadecimal colour code assigned to the user. This
+                                value is used in conjunction with
+                                `icon:text` for the user's auto-generated
+                                icon
+                              example: "#f44336"
               - $ref: ../components/schemas/Pagination.yaml#/Pagination
               - $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
               - $ref: ../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/flags/flagId.yaml b/public/openapi/read/flags/flagId.yaml
index 0939124937..509d5e5204 100644
--- a/public/openapi/read/flags/flagId.yaml
+++ b/public/openapi/read/flags/flagId.yaml
@@ -42,5 +42,39 @@ get:
                     additionalProperties:
                       description: "A list of global and admin privileges, and whether the calling user has (or has inherited) them"
                       type: boolean
+                  states:
+                    type: object
+                    properties:
+                      open:
+                        type: object
+                        properties:
+                          label:
+                            type: string
+                          class:
+                            type: string
+                      wip:
+                        type: object
+                        properties:
+                          label:
+                            type: string
+                          class:
+                            type: string
+                      resolved:
+                        type: object
+                        properties:
+                          label:
+                            type: string
+                          class:
+                            type: string
+                      rejected:
+                        type: object
+                        properties:
+                          label:
+                            type: string
+                          class:
+                            type: string
+                    additionalProperties:
+                      type: object
+                      description: Plugins are able to add additional flag states, and so their values would also be present here if so.
               - $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
               - $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/groups.yaml b/public/openapi/read/groups.yaml
index 8fc121708b..68173fed4f 100644
--- a/public/openapi/read/groups.yaml
+++ b/public/openapi/read/groups.yaml
@@ -101,6 +101,8 @@ get:
                           type: boolean
                   allowGroupCreation:
                     type: boolean
+                  sort:
+                    type: string
                   nextStart:
                     type: number
                   title:
diff --git a/public/openapi/read/index.yaml b/public/openapi/read/index.yaml
index 4e6c6e446b..41848f596b 100644
--- a/public/openapi/read/index.yaml
+++ b/public/openapi/read/index.yaml
@@ -195,6 +195,9 @@ get:
                                   description: An ISO 8601 formatted date string (complementing `timestamp`)
                                 pid:
                                   type: number
+                                index:
+                                  type: number
+                                  description: The index of the post
                                 topic:
                                   type: object
                                   properties:
@@ -202,6 +205,32 @@ get:
                                       type: string
                                     title:
                                       type: string
+                                user:
+                                  type: object
+                                  properties:
+                                      uid:
+                                        type: number
+                                        example: 1
+                                      username:
+                                        type: string
+                                        example: Dragon Fruit
+                                      userslug:
+                                        type: string
+                                        example: dragon-fruit
+                                      picture:
+                                        type: string
+                                        example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
+                                        nullable: true
+                                      displayname:
+                                        type: string
+                                        description: This is either username or fullname depending on forum and user settings
+                                        example: Dragon Fruit
+                                      'icon:text':
+                                        type: string
+                                        example: D
+                                      'icon:bgColor':
+                                        type: string
+                                        example: '#9c27b0'
                             imageClass:
                               type: string
               - $ref: ../components/schemas/Pagination.yaml#/Pagination
diff --git a/public/openapi/read/notifications.yaml b/public/openapi/read/notifications.yaml
index 59acc0ad62..14c0d054ce 100644
--- a/public/openapi/read/notifications.yaml
+++ b/public/openapi/read/notifications.yaml
@@ -69,42 +69,13 @@ get:
                         readClass:
                           type: string
                   filters:
-                    type: array
-                    items:
-                      type: object
-                      additionalProperties: {}
+                    $ref: ../components/schemas/NotificationFilters.yaml#/FiltersArray
                   regularFilters:
-                    type: array
-                    items:
-                      type: object
-                      properties:
-                        name:
-                          type: string
-                        filter:
-                          type: string
-                        selected:
-                          type: boolean
-                      required:
-                        - name
-                        - filter
+                    $ref: ../components/schemas/NotificationFilters.yaml#/FiltersArray
                   moderatorFilters:
-                    type: array
-                    items:
-                      type: object
-                      properties:
-                        name:
-                          type: string
-                        filter:
-                          type: string
+                    $ref: ../components/schemas/NotificationFilters.yaml#/FiltersArray
                   selectedFilter:
-                    type: object
-                    properties:
-                      name:
-                        type: string
-                      filter:
-                        type: string
-                      selected:
-                        type: boolean
+                    $ref: ../components/schemas/NotificationFilters.yaml#/FiltersObject
                   title:
                     type: string
               - $ref: ../components/schemas/Pagination.yaml#/Pagination
diff --git a/public/openapi/read/popular.yaml b/public/openapi/read/popular.yaml
index 4d870249f6..67c7d5030f 100644
--- a/public/openapi/read/popular.yaml
+++ b/public/openapi/read/popular.yaml
@@ -48,6 +48,16 @@ get:
                     type: array
                     items:
                       type: number
+                  selectedTag:
+                    type: object
+                    properties:
+                      label:
+                        type: string
+                    nullable: true
+                  selectedTags:
+                    type: array
+                    items:
+                      type: string
                   feeds:disableRSS:
                     type: number
                   rssFeedUrl:
diff --git a/public/openapi/read/post-queue.yaml b/public/openapi/read/post-queue.yaml
index 2edffc67d5..0ecb95500c 100644
--- a/public/openapi/read/post-queue.yaml
+++ b/public/openapi/read/post-queue.yaml
@@ -162,6 +162,20 @@ get:
                                 titleRaw:
                                   type: string
                         - $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
+                  isAdmin:
+                    type: boolean
+                  canAccept:
+                    type: boolean
+                  enabled:
+                    type: number
+                  singlePost:
+                    type: boolean
+                  privileges:
+                    type: object
+                    properties: {}
+                    additionalProperties:
+                      description: "A list of global and admin privileges, and whether the calling user has (or has inherited) them"
+                      type: boolean
               - $ref: ../components/schemas/Pagination.yaml#/Pagination
               - $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
               - $ref: ../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/recent.yaml b/public/openapi/read/recent.yaml
index 4e019cf157..74d3d91a27 100644
--- a/public/openapi/read/recent.yaml
+++ b/public/openapi/read/recent.yaml
@@ -46,6 +46,16 @@ get:
                     type: array
                     items:
                       type: number
+                  selectedTag:
+                    type: object
+                    properties:
+                      label:
+                        type: string
+                    nullable: true
+                  selectedTags:
+                    type: array
+                    items:
+                      type: string
                   feeds:disableRSS:
                     type: number
                   rssFeedUrl:
diff --git a/public/openapi/read/search.yaml b/public/openapi/read/search.yaml
index 9ada567f59..6e36fc3891 100644
--- a/public/openapi/read/search.yaml
+++ b/public/openapi/read/search.yaml
@@ -23,31 +23,65 @@ get:
                     type: boolean
                   search_query:
                     type: string
-                  term:
+                  showAsPosts:
+                    type: boolean
+                  showAsTopics:
+                    type: boolean
+                  title:
                     type: string
-                  allCategories:
+                  filters:
+                    type: object
+                  userFilterSelected:
+                    type: array
+                    items:
+                      type: object
+                      properties:
+                        uid:
+                          type: number
+                          description: A user identifier
+                          example: 1
+                        username:
+                          type: string
+                          description: A friendly name for a given user account
+                          example: Dragon Fruit
+                        displayname:
+                          type: string
+                          description: This is either username or fullname depending on forum and user settings
+                          example: Dragon Fruit
+                        userslug:
+                          type: string
+                          description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.)
+                          example: dragon-fruit
+                        picture:
+                          type: string
+                          description: A URL pointing to a picture to be used as the user's avatar
+                          example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
+                          nullable: true
+                        'icon:text':
+                          type: string
+                          description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
+                          example: D
+                        'icon:bgColor':
+                          type: string
+                          description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
+                          example: '#9c27b0'
+                  tagFilterSelected:
                     type: array
                     items:
                       type: object
                       properties:
                         value:
-                          oneOf:
-                            - type: string
-                            - type: number
-                        text:
                           type: string
-                  allCategoriesCount:
-                    type: number
-                  expandSearch:
-                    type: boolean
-                  showAsPosts:
-                    type: boolean
-                  showAsTopics:
-                    type: boolean
-                  title:
-                    type: string
+                        valueEscaped:
+                          type: string
+                        valueEncoded:
+                          type: string
+                        class:
+                          type: string
                   searchDefaultSortBy:
                     type: string
+                  searchDefaultIn:
+                    type: string
                   privileges:
                     type: object
                     properties:
diff --git a/public/openapi/read/tags/tag.yaml b/public/openapi/read/tags/tag.yaml
index 41557d7c61..cae02d0082 100644
--- a/public/openapi/read/tags/tag.yaml
+++ b/public/openapi/read/tags/tag.yaml
@@ -227,6 +227,8 @@ get:
                     type: string
                   title:
                     type: string
+                  canPost:
+                    type: boolean
                   showSelect:
                     type: boolean
                   showTopicTools:
diff --git a/public/openapi/read/top.yaml b/public/openapi/read/top.yaml
index e9b552ffcf..8594ca9f14 100644
--- a/public/openapi/read/top.yaml
+++ b/public/openapi/read/top.yaml
@@ -59,6 +59,16 @@ get:
                     type: array
                     items:
                       type: number
+                  selectedTag:
+                    type: object
+                    properties:
+                      label:
+                        type: string
+                    nullable: true
+                  selectedTags:
+                    type: array
+                    items:
+                      type: string
                   feeds:disableRSS:
                     type: number
                   rssFeedUrl:
diff --git a/public/openapi/read/topic/topic_id.yaml b/public/openapi/read/topic/topic_id.yaml
index 4b890143f7..ea163e05b4 100644
--- a/public/openapi/read/topic/topic_id.yaml
+++ b/public/openapi/read/topic/topic_id.yaml
@@ -126,6 +126,13 @@ get:
                               type: array
                               items:
                                 type: string
+                            muted:
+                              type: boolean
+                              description: Whether or not the user has been muted.
+                            mutedUntil:
+                              type: number
+                              description: A UNIX timestamp representing the moment a muted state will be lifted.
+                              nullable: true
                             icon:text:
                               type: string
                               description: A single-letter representation of a username. This is used in the
@@ -219,6 +226,19 @@ get:
                               type: number
                         selfPost:
                           type: boolean
+                        events:
+                          type: array
+                          items:
+                            type: object
+                            properties:
+                              type:
+                                type: string
+                              id:
+                                type: number
+                              timestamp:
+                                type: number
+                              timestampISO:
+                                type: string
                         topicOwnerPost:
                           type: boolean
                         display_edit_tools:
@@ -311,6 +331,8 @@ get:
                         type: boolean
                       topics:read:
                         type: boolean
+                      topics:schedule:
+                        type: boolean
                       topics:tag:
                         type: boolean
                       topics:delete:
@@ -354,6 +376,8 @@ get:
                     type: number
                   feeds:disableRSS:
                     type: number
+                  signatures:hideDuplicates:
+                    type: number
                   bookmarkThreshold:
                     type: number
                   necroThreshold:
@@ -370,12 +394,12 @@ get:
                     type: boolean
                   privateUploads:
                     type: boolean
+                  showPostPreviewsOnHover:
+                    type: boolean
                   rssFeedUrl:
                     type: string
                   postIndex:
                     type: number
-                  loggedInUser:
-                    $ref: ../../components/schemas/UserObject.yaml#/UserObject
               - type: object
                 description: Optional properties that may or may not be present (except for `tid`, which is always present, and is only here as a hack to pass validation)
                 properties:
@@ -385,6 +409,8 @@ get:
                   thumb:
                     type: string
                     description: An uploaded topic thumbnail
+                  loggedInUser:
+                    $ref: ../../components/schemas/UserObject.yaml#/UserObject
                 required:
                   - tid
               - $ref: ../../components/schemas/Pagination.yaml#/Pagination
diff --git a/public/openapi/read/unread.yaml b/public/openapi/read/unread.yaml
index 4d6ad5d902..e63242729c 100644
--- a/public/openapi/read/unread.yaml
+++ b/public/openapi/read/unread.yaml
@@ -13,6 +13,8 @@ get:
             allOf:
               - type: object
                 properties:
+                  canPost:
+                    type: boolean
                   showSelect:
                     type: boolean
                   showTopicTools:
@@ -206,10 +208,24 @@ get:
                     nullable: true
                   selectCategoryLabel:
                     type: string
+                  selectCategoryIcon:
+                    type: string
+                  showCategorySelectLabel:
+                    type: boolean
                   selectedCids:
                     type: array
                     items:
                       type: number
+                  selectedTag:
+                    type: object
+                    properties:
+                      label:
+                        type: string
+                    nullable: true
+                  selectedTags:
+                    type: array
+                    items:
+                      type: string
                   filters:
                     type: array
                     items:
diff --git a/public/openapi/read/user/userslug/chats/roomid.yaml b/public/openapi/read/user/userslug/chats/roomid.yaml
index 72fc62a125..767ea88d0c 100644
--- a/public/openapi/read/user/userslug/chats/roomid.yaml
+++ b/public/openapi/read/user/userslug/chats/roomid.yaml
@@ -298,6 +298,8 @@ get:
                               type: string
                         usernames:
                           type: string
+                        chatWithMessage:
+                          type: string
                   nextStart:
                     type: number
                   title:
@@ -311,4 +313,6 @@ get:
                       removed, etc.)
                   canViewInfo:
                     type: boolean
+                  chatWithMessage:
+                    type: string
               - $ref: ../../../../components/schemas/CommonProps.yaml#/CommonProps
\ No newline at end of file
diff --git a/public/openapi/read/user/userslug/export/posts.yaml b/public/openapi/read/user/userslug/export/posts.yaml
deleted file mode 100644
index 80132ab8ad..0000000000
--- a/public/openapi/read/user/userslug/export/posts.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-get:
-  tags:
-    - users
-  summary: Export a user's posts (.csv)
-  description: This route retrieves an existing export of user's posts. To create one go to `/user/{userslug}/consent`
-  parameters:
-    - name: userslug
-      in: path
-      required: true
-      schema:
-        type: string
-      example: admin
-  responses:
-    "200":
-      description: "A CSV file containing a user's posts"
-      content:
-        text/csv:
-          schema:
-            type: string
-            format: binary
\ No newline at end of file
diff --git a/public/openapi/read/user/userslug/export/profile.yaml b/public/openapi/read/user/userslug/export/profile.yaml
deleted file mode 100644
index da0b6bec45..0000000000
--- a/public/openapi/read/user/userslug/export/profile.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-get:
-  tags:
-    - users
-  summary: Export a user's profile data (.json)
-  description: This route retrieves an existing export of user's profile data. To create one go to `/user/{userslug}/consent`
-  parameters:
-    - name: userslug
-      in: path
-      required: true
-      schema:
-        type: string
-      example: admin
-  responses:
-    "200":
-      description: "A JSON file containing the user profile"
-      content:
-        text/json:
-          schema:
-            type: string
-            format: binary
\ No newline at end of file
diff --git a/public/openapi/read/user/userslug/export/uploads.yaml b/public/openapi/read/user/userslug/export/uploads.yaml
deleted file mode 100644
index cbe7a9aefa..0000000000
--- a/public/openapi/read/user/userslug/export/uploads.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-get:
-  tags:
-    - users
-  summary: Export a user's uploads (.zip)
-  description: This route retrieves an existing export of user's profile data. To create one go to `/user/{userslug}/consent`
-  parameters:
-    - name: userslug
-      in: path
-      required: true
-      schema:
-        type: string
-      example: admin
-  responses:
-    "200":
-      description: Successful export of user uploads
-      content:
-        application/zip:
-          schema:
-            type: string
-            format: binary
\ No newline at end of file
diff --git a/public/openapi/read/user/userslug/info.yaml b/public/openapi/read/user/userslug/info.yaml
index e56f76ec84..afec9bc2bd 100644
--- a/public/openapi/read/user/userslug/info.yaml
+++ b/public/openapi/read/user/userslug/info.yaml
@@ -40,55 +40,9 @@ get:
                           additionalProperties:
                             description: Contextual data is added to this object (such as topic data, etc.)
                       bans:
-                        type: array
-                        items:
-                          type: object
-                          properties:
-                            uid:
-                              type: number
-                            timestamp:
-                              type: number
-                            expire:
-                              type: number
-                            fromUid:
-                              type: number
-                            user:
-                              type: object
-                              properties:
-                                username:
-                                  type: string
-                                  description: A friendly name for a given user account
-                                userslug:
-                                  type: string
-                                  description: An URL-safe variant of the username (i.e. lower-cased, spaces
-                                    removed, etc.)
-                                picture:
-                                  type: string
-                                uid:
-                                  type: number
-                                  description: A user identifier
-                                icon:text:
-                                  type: string
-                                  description: A single-letter representation of a username. This is used in the
-                                    auto-generated icon given to users without
-                                    an avatar
-                                icon:bgColor:
-                                  type: string
-                                  description: A six-character hexadecimal colour code assigned to the user. This
-                                    value is used in conjunction with
-                                    `icon:text` for the user's auto-generated
-                                    icon
-                                  example: "#f44336"
-                            until:
-                              type: number
-                            untilReadable:
-                              type: string
-                            timestampReadable:
-                              type: string
-                            timestampISO:
-                              type: string
-                            reason:
-                              type: string
+                        $ref: ../../../components/schemas/UserObject.yaml#/BanMuteArray
+                      mutes:
+                        $ref: ../../../components/schemas/UserObject.yaml#/BanMuteArray
                   sessions:
                     type: array
                     items:
diff --git a/public/openapi/write.yaml b/public/openapi/write.yaml
index 6f55dbcfc0..30ec5c326a 100644
--- a/public/openapi/write.yaml
+++ b/public/openapi/write.yaml
@@ -4,22 +4,26 @@ info:
   description: >-
     # Overview
 
-    The following document outlines every route exposed by the NodeBB Write API. As of NodeBB v1.15.0, NodeBB will use these routes to make changes to the database (e.g. creating new posts, editing user profiles, etc.)
+    The following document outlines every route exposed by the NodeBB Write API.
+    Since NodeBB v1.15.0, NodeBB has used these routes to make changes to the database (e.g. creating new posts, editing user profiles, etc.)
 
     We invite you to build external integrations with NodeBB using this document as a guide.
 
     # History
 
-    Up until v1.15.0, NodeBB utilised the [WebSocket](https://en.wikipedia.org/wiki/WebSocket) protocol to communicate with the backend. However, it was decided in early 2020 that this usage of WebSocket &ndash; while functional &ndash; led to occasional wheel reinvention and disregarded an otherwise fully-featured technology (that is, REST).
+    Up until v1.15.0, NodeBB utilised the [WebSocket](https://en.wikipedia.org/wiki/WebSocket) protocol to communicate with the backend.
+    However, it was decided in early 2020 that this usage of WebSocket &mdash; while functional &mdash; led to occasional wheel reinvention and disregarded an otherwise fully-featured technology (that is, REST).
 
-    Years prior to this determination, many users of NodeBB had asked for a RESTful API to call against NodeBB, which led to the creation of [`nodebb-plugin-write-api`](https://github.com/NodeBB/nodebb-plugin-write-api). In tandem with the above decision, the Write API was merged into NodeBB core in late 2020.
+    Years prior to this determination, many users of NodeBB had asked for a RESTful API to call against NodeBB, which led to the creation of [`nodebb-plugin-write-api`](https://github.com/NodeBB/nodebb-plugin-write-api).
+    In tandem with the above decision, the Write API was merged into NodeBB core in late 2020.
 
-    v3 of the Write API (this document) achieves rough feature parity with v2 of the Write API plugin.
+    v3 of the Write API (this document) supercedes v2 of the Write API plugin, and is currently maintained.
 
     # Authentication
 
+    Similarly to the Read API, the Write API support both session-based (cookie) and Bearer token authentication.
     Please see the ["Authentication" section under the Read API](../read/#section/Overview/Authentication) for more information on how to authenticate against this API in order to make calls.
-  version: 1.19.0
+  version: 3.0.0
   contact:
     email: support@nodebb.org
   license:
@@ -96,6 +100,14 @@ paths:
     $ref: 'write/groups/slug/membership/uid.yaml'
   /groups/{slug}/ownership/{uid}:
     $ref: 'write/groups/slug/ownership/uid.yaml'
+  /groups/{slug}/pending:
+    $ref: 'write/groups/slug/pending.yaml'
+  /groups/{slug}/pending/{uid}:
+    $ref: 'write/groups/slug/pending/uid.yaml'
+  /groups/{slug}/invites:
+    $ref: 'write/groups/slug/invites.yaml'
+  /groups/{slug}/invites/{uid}:
+    $ref: 'write/groups/slug/invites/uid.yaml'
   /categories/:
     $ref: 'write/categories.yaml'
   /categories/{cid}:
@@ -150,6 +162,8 @@ paths:
     $ref: 'write/chats.yaml'
   /chats/{roomId}:
     $ref: 'write/chats/roomId.yaml'
+  /chats/{roomId}/state:
+    $ref: 'write/chats/roomId/state.yaml'
   /chats/{roomId}/users:
     $ref: 'write/chats/roomId/users.yaml'
   /chats/{roomId}/users/{uid}:
diff --git a/public/openapi/write/categories/cid/moderator/uid.yaml b/public/openapi/write/categories/cid/moderator/uid.yaml
index 4dc5e576ae..189c431e0b 100644
--- a/public/openapi/write/categories/cid/moderator/uid.yaml
+++ b/public/openapi/write/categories/cid/moderator/uid.yaml
@@ -30,6 +30,100 @@ put:
                 $ref: ../../../../components/schemas/Status.yaml#/Status
               response:
                 type: object
+                properties:
+                  labels:
+                    type: object
+                    properties:
+                      users:
+                        type: array
+                        items:
+                          type: string
+                          description: Language key of the privilege name's user-friendly name
+                      groups:
+                        type: array
+                        items:
+                          type: string
+                          description: Language key of the privilege name's user-friendly name
+                  users:
+                    type: array
+                    items:
+                      type: object
+                      properties:
+                        uid:
+                          type: number
+                          description: A user identifier
+                          example: 1
+                        username:
+                          type: string
+                          description: A friendly name for a given user account
+                          example: Dragon Fruit
+                        displayname:
+                          type: string
+                          description: This is either username or fullname depending on forum and user settings
+                          example: Dragon Fruit
+                        picture:
+                          type: string
+                          description: A URL pointing to a picture to be used as the user's avatar
+                          example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
+                          nullable: true
+                        'icon:text':
+                          type: string
+                          description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
+                          example: D
+                        'icon:bgColor':
+                          type: string
+                          description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
+                          example: '#9c27b0'
+                        banned:
+                          type: number
+                          description: A Boolean representing whether a user is banned or not
+                          example: 0
+                        banned_until_readable:
+                          type: string
+                          description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned"
+                          example: Not Banned
+                        privileges:
+                          type: object
+                          additionalProperties:
+                            type: boolean
+                            description: A set of privileges with either true or false
+                  groups:
+                    type: array
+                    items:
+                      type: object
+                      properties:
+                        name:
+                          type: string
+                        nameEscaped:
+                          type: string
+                        privileges:
+                          type: object
+                          additionalProperties:
+                            type: boolean
+                            description: A set of privileges with either true or false
+                        isPrivate:
+                          type: boolean
+                        isSystem:
+                          type: boolean
+                  keys:
+                    type: object
+                    properties:
+                      users:
+                        type: array
+                        items:
+                          type: string
+                          description: "Privilege name"
+                      groups:
+                        type: array
+                        items:
+                          type: string
+                          description: "Privilege name"
+                  columnCountUserOther:
+                    type: number
+                    description: "The number of additional user privileges added by plugins"
+                  columnCountGroupOther:
+                    type: number
+                    description: "The number of additional user privileges added by plugins"
 delete:
   tags:
     - categories
diff --git a/public/openapi/write/categories/cid/privileges/privilege.yaml b/public/openapi/write/categories/cid/privileges/privilege.yaml
index 1303640b19..6cc1ff7336 100644
--- a/public/openapi/write/categories/cid/privileges/privilege.yaml
+++ b/public/openapi/write/categories/cid/privileges/privilege.yaml
@@ -59,19 +59,44 @@ put:
                     items:
                       type: object
                       properties:
-                        name:
+                        uid:
+                          type: number
+                          description: A user identifier
+                          example: 1
+                        username:
                           type: string
-                        nameEscaped:
+                          description: A friendly name for a given user account
+                          example: Dragon Fruit
+                        displayname:
+                          type: string
+                          description: This is either username or fullname depending on forum and user settings
+                          example: Dragon Fruit
+                        picture:
+                          type: string
+                          description: A URL pointing to a picture to be used as the user's avatar
+                          example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
+                          nullable: true
+                        'icon:text':
+                          type: string
+                          description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
+                          example: D
+                        'icon:bgColor':
                           type: string
+                          description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
+                          example: '#9c27b0'
+                        banned:
+                          type: number
+                          description: A Boolean representing whether a user is banned or not
+                          example: 0
+                        banned_until_readable:
+                          type: string
+                          description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned"
+                          example: Not Banned
                         privileges:
                           type: object
                           additionalProperties:
                             type: boolean
                             description: A set of privileges with either true or false
-                        isPrivate:
-                          type: boolean
-                        isSystem:
-                          type: boolean
                   groups:
                     type: array
                     items:
@@ -170,19 +195,44 @@ delete:
                     items:
                       type: object
                       properties:
-                        name:
+                        uid:
+                          type: number
+                          description: A user identifier
+                          example: 1
+                        username:
                           type: string
-                        nameEscaped:
+                          description: A friendly name for a given user account
+                          example: Dragon Fruit
+                        displayname:
+                          type: string
+                          description: This is either username or fullname depending on forum and user settings
+                          example: Dragon Fruit
+                        picture:
+                          type: string
+                          description: A URL pointing to a picture to be used as the user's avatar
+                          example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
+                          nullable: true
+                        'icon:text':
+                          type: string
+                          description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
+                          example: D
+                        'icon:bgColor':
                           type: string
+                          description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
+                          example: '#9c27b0'
+                        banned:
+                          type: number
+                          description: A Boolean representing whether a user is banned or not
+                          example: 0
+                        banned_until_readable:
+                          type: string
+                          description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned"
+                          example: Not Banned
                         privileges:
                           type: object
                           additionalProperties:
                             type: boolean
                             description: A set of privileges with either true or false
-                        isPrivate:
-                          type: boolean
-                        isSystem:
-                          type: boolean
                   groups:
                     type: array
                     items:
diff --git a/public/openapi/write/chats/roomId/state.yaml b/public/openapi/write/chats/roomId/state.yaml
new file mode 100644
index 0000000000..4a98edcaf2
--- /dev/null
+++ b/public/openapi/write/chats/roomId/state.yaml
@@ -0,0 +1,50 @@
+put:
+  tags:
+    - chats
+  summary: mark chat room as unread
+  description: This operation marks a chat room as unread.
+  parameters:
+    - in: path
+      name: roomId
+      schema:
+        type: number
+      required: true
+      description: a valid room id
+      example: 1
+  responses:
+    '200':
+      description: Chat room marked
+      content:
+        application/json:
+          schema:
+            type: object
+            properties:
+              status:
+                $ref: ../../../components/schemas/Status.yaml#/Status
+              response:
+                $ref: ../../../components/schemas/Chats.yaml#/RoomObjectFull
+delete:
+  tags:
+    - chats
+  summary: mark chat room as read
+  description: This operation marks a chat room as read.
+  parameters:
+    - in: path
+      name: roomId
+      schema:
+        type: number
+      required: true
+      description: a valid room id
+      example: 1
+  responses:
+    '200':
+      description: Chat room marked
+      content:
+        application/json:
+          schema:
+            type: object
+            properties:
+              status:
+                $ref: ../../../components/schemas/Status.yaml#/Status
+              response:
+                $ref: ../../../components/schemas/Chats.yaml#/RoomObjectFull
\ No newline at end of file
diff --git a/public/openapi/write/groups/slug/invites.yaml b/public/openapi/write/groups/slug/invites.yaml
new file mode 100644
index 0000000000..aec049a8a1
--- /dev/null
+++ b/public/openapi/write/groups/slug/invites.yaml
@@ -0,0 +1,60 @@
+get:
+  tags:
+    - groups
+  summary: get invited users
+  description: This operation lists users that have been invited to join a specific group
+  parameters:
+    - in: path
+      name: slug
+      schema:
+        type: string
+      required: true
+      description: a group slug
+      example: test-group
+  responses:
+    '200':
+      description: invited users successfully retrieved
+      content:
+        application/json:
+          schema:
+            type: object
+            properties:
+              status:
+                $ref: ../../../components/schemas/Status.yaml#/Status
+              response:
+                type: object
+                properties:
+                  invites:
+                    type: array
+                    items:
+                      type: object
+                      properties:
+                        uid:
+                          type: number
+                          description: A user identifier
+                          example: 1
+                        username:
+                          type: string
+                          description: A friendly name for a given user account
+                          example: Dragon Fruit
+                        userslug:
+                          type: string
+                          description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.)
+                          example: dragon-fruit
+                        picture:
+                          type: string
+                          description: A URL pointing to a picture to be used as the user's avatar
+                          example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
+                          nullable: true
+                        displayname:
+                          type: string
+                          description: This is either username or fullname depending on forum and user settings
+                          example: Dragon Fruit
+                        'icon:text':
+                          type: string
+                          description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
+                          example: D
+                        'icon:bgColor':
+                          type: string
+                          description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
+                          example: '#9c27b0'
\ No newline at end of file
diff --git a/public/openapi/write/groups/slug/invites/uid.yaml b/public/openapi/write/groups/slug/invites/uid.yaml
new file mode 100644
index 0000000000..702eee77ca
--- /dev/null
+++ b/public/openapi/write/groups/slug/invites/uid.yaml
@@ -0,0 +1,106 @@
+post:
+  tags:
+    - group
+  summary: issue group invitation
+  description: |
+    This operation issues an invitation for a user to join a group.
+  parameters:
+    - in: path
+      name: slug
+      schema:
+        type: string
+      required: true
+      description: a group slug
+      example: invitations-only
+    - in: path
+      name: uid
+      schema:
+        type: number
+      required: true
+      description: a user id
+      example: 1
+  responses:
+    '200':
+      description: Membership invitation issued.
+      content:
+        application/json:
+          schema:
+            type: object
+            properties:
+              status:
+                $ref: ../../../../components/schemas/Status.yaml#/Status
+              response:
+                type: object
+                properties: {}
+put:
+  tags:
+    - group
+  summary: accept group invitation
+  description: |
+    This operation accepts an invitation to join a group.
+    > **N.B.** This route can only be called by the invited user.
+  parameters:
+    - in: path
+      name: slug
+      schema:
+        type: string
+      required: true
+      description: a group slug
+      example: invitations-only
+    - in: path
+      name: uid
+      schema:
+        type: number
+      required: true
+      description: a user id
+      example: 1
+  responses:
+    '200':
+      description: Membership invitation accepted.
+      content:
+        application/json:
+          schema:
+            type: object
+            properties:
+              status:
+                $ref: ../../../../components/schemas/Status.yaml#/Status
+              response:
+                type: object
+                properties: {}
+delete:
+  tags:
+    - group
+  summary: reject group invitation
+  description: |
+    This operation rejects an invitation to join a group.
+    > **N.B.** This route can be called by both the invited user and a group's owner.
+    > When called by the latter, the membership request is considered "rescinded", not "rejected"
+    > Functionally, however, they do the same thing, which is why the route is the same.
+  parameters:
+    - in: path
+      name: slug
+      schema:
+        type: string
+      required: true
+      description: a group slug
+      example: invitations-only
+    - in: path
+      name: uid
+      schema:
+        type: number
+      required: true
+      description: a user id
+      example: 1
+  responses:
+    '200':
+      description: Membership invitation declined.
+      content:
+        application/json:
+          schema:
+            type: object
+            properties:
+              status:
+                $ref: ../../../../components/schemas/Status.yaml#/Status
+              response:
+                type: object
+                properties: {}
\ No newline at end of file
diff --git a/public/openapi/write/groups/slug/membership/uid.yaml b/public/openapi/write/groups/slug/membership/uid.yaml
index 9a5fd7df47..d08039504d 100644
--- a/public/openapi/write/groups/slug/membership/uid.yaml
+++ b/public/openapi/write/groups/slug/membership/uid.yaml
@@ -2,7 +2,10 @@ put:
   tags:
     - groups
   summary: join a group
-  description: This operation joins an existing group, or causes another user to join a group. If the group is private and you are not an administrator, this method will cause that user to request membership, instead. For user _invitations_, you'll want to call `PUT /groups/{slug}/invites/{uid}`.
+  description: |
+    This operation joins an existing group, or causes another user to join a group.
+    If the group is private and you are not an administrator, this method will cause that user to request membership, instead.
+    For user _invitations_, you'll want to call `POST /groups/{slug}/invites/{uid}`.
   parameters:
     - in: path
       name: slug
diff --git a/public/openapi/write/groups/slug/pending.yaml b/public/openapi/write/groups/slug/pending.yaml
new file mode 100644
index 0000000000..89a729970a
--- /dev/null
+++ b/public/openapi/write/groups/slug/pending.yaml
@@ -0,0 +1,60 @@
+get:
+  tags:
+    - groups
+  summary: get pending users
+  description: This operation lists users that have requested membership to a specific group
+  parameters:
+    - in: path
+      name: slug
+      schema:
+        type: string
+      required: true
+      description: a group slug
+      example: test-group
+  responses:
+    '200':
+      description: pending users successfully retrieved
+      content:
+        application/json:
+          schema:
+            type: object
+            properties:
+              status:
+                $ref: ../../../components/schemas/Status.yaml#/Status
+              response:
+                type: object
+                properties:
+                  pending:
+                    type: array
+                    items:
+                      type: object
+                      properties:
+                        uid:
+                          type: number
+                          description: A user identifier
+                          example: 1
+                        username:
+                          type: string
+                          description: A friendly name for a given user account
+                          example: Dragon Fruit
+                        userslug:
+                          type: string
+                          description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.)
+                          example: dragon-fruit
+                        picture:
+                          type: string
+                          description: A URL pointing to a picture to be used as the user's avatar
+                          example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
+                          nullable: true
+                        displayname:
+                          type: string
+                          description: This is either username or fullname depending on forum and user settings
+                          example: Dragon Fruit
+                        'icon:text':
+                          type: string
+                          description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
+                          example: D
+                        'icon:bgColor':
+                          type: string
+                          description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
+                          example: '#9c27b0'
\ No newline at end of file
diff --git a/public/openapi/write/groups/slug/pending/uid.yaml b/public/openapi/write/groups/slug/pending/uid.yaml
new file mode 100644
index 0000000000..51f1f4b2b4
--- /dev/null
+++ b/public/openapi/write/groups/slug/pending/uid.yaml
@@ -0,0 +1,66 @@
+put:
+  tags:
+    - group
+  summary: approve pending membership
+  description: This operation approves a pending membership request for a group.
+  parameters:
+    - in: path
+      name: slug
+      schema:
+        type: string
+      required: true
+      description: a group slug
+      example: private-group
+    - in: path
+      name: uid
+      schema:
+        type: number
+      required: true
+      description: a user id
+      example: 1
+  responses:
+    '200':
+      description: Membership request approved.
+      content:
+        application/json:
+          schema:
+            type: object
+            properties:
+              status:
+                $ref: ../../../../components/schemas/Status.yaml#/Status
+              response:
+                type: object
+                properties: {}
+delete:
+  tags:
+    - group
+  summary: reject pending membership
+  description: This operation rejects a pending membership request for a group.
+  parameters:
+    - in: path
+      name: slug
+      schema:
+        type: string
+      required: true
+      description: a group slug
+      example: private-group
+    - in: path
+      name: uid
+      schema:
+        type: number
+      required: true
+      description: a user id
+      example: 1
+  responses:
+    '200':
+      description: Membership request rejected.
+      content:
+        application/json:
+          schema:
+            type: object
+            properties:
+              status:
+                $ref: ../../../../components/schemas/Status.yaml#/Status
+              response:
+                type: object
+                properties: {}
\ No newline at end of file
diff --git a/public/openapi/write/topics/tid/events.yaml b/public/openapi/write/topics/tid/events.yaml
index 0bf03cd604..2217bd5b15 100644
--- a/public/openapi/write/topics/tid/events.yaml
+++ b/public/openapi/write/topics/tid/events.yaml
@@ -22,64 +22,67 @@ get:
               status:
                 $ref: ../../../components/schemas/Status.yaml#/Status
               response:
-                type: array
-                description: A list of the topic events that still remain
-                items:
-                  type: object
-                  properties:
-                    type:
-                      type: string
-                      description: A valid event type
-                    id:
-                      type: number
-                      description: Unique identifier for this topic event
-                    timestamp:
-                      type: number
-                    timestampISO:
-                      type: string
-                      description: An ISO 8601 formatted date string (complementing `timestamp`)
-                    icon:
-                      type: string
-                      description: FontAwesome icon name
-                      example: fa-bullhorn
-                    text:
-                      type: string
-                      description: A language key
-                    uid:
-                      type: number
-                    user:
+                type: object
+                properties:
+                  events:
+                    type: array
+                    description: A list of the topic events that still remain
+                    items:
                       type: object
                       properties:
-                        uid:
-                          type: number
-                          description: A user identifier
-                        username:
-                          type: string
-                          description: A friendly name for a given user account
-                        displayname:
-                          type: string
-                          description: This is either username or fullname depending on forum and user settings
-                        userslug:
+                        type:
                           type: string
-                          description: An URL-safe variant of the username (i.e. lower-cased, spaces
-                            removed, etc.)
-                        picture:
-                          nullable: true
+                          description: A valid event type
+                        id:
+                          type: number
+                          description: Unique identifier for this topic event
+                        timestamp:
+                          type: number
+                        timestampISO:
                           type: string
-                        icon:text:
+                          description: An ISO 8601 formatted date string (complementing `timestamp`)
+                        icon:
                           type: string
-                          description: A single-letter representation of a username. This is used in the
-                            auto-generated icon given to users
-                            without an avatar
-                        icon:bgColor:
+                          description: FontAwesome icon name
+                          example: fa-bullhorn
+                        text:
                           type: string
-                          description: A six-character hexadecimal colour code assigned to the user. This
-                            value is used in conjunction with
-                            `icon:text` for the user's
-                            auto-generated icon
-                          example: "#f44336"
-                  required:
-                    - type
-                    - id
-                    - timestamp
-                    - timestampISO
\ No newline at end of file
+                          description: A language key
+                        uid:
+                          type: number
+                        user:
+                          type: object
+                          properties:
+                            uid:
+                              type: number
+                              description: A user identifier
+                            username:
+                              type: string
+                              description: A friendly name for a given user account
+                            displayname:
+                              type: string
+                              description: This is either username or fullname depending on forum and user settings
+                            userslug:
+                              type: string
+                              description: An URL-safe variant of the username (i.e. lower-cased, spaces
+                                removed, etc.)
+                            picture:
+                              nullable: true
+                              type: string
+                            icon:text:
+                              type: string
+                              description: A single-letter representation of a username. This is used in the
+                                auto-generated icon given to users
+                                without an avatar
+                            icon:bgColor:
+                              type: string
+                              description: A six-character hexadecimal colour code assigned to the user. This
+                                value is used in conjunction with
+                                `icon:text` for the user's
+                                auto-generated icon
+                              example: "#f44336"
+                      required:
+                        - type
+                        - id
+                        - timestamp
+                        - timestampISO
\ No newline at end of file
diff --git a/public/openapi/write/topics/tid/thumbs.yaml b/public/openapi/write/topics/tid/thumbs.yaml
index 075bc29ed2..133da0c20e 100644
--- a/public/openapi/write/topics/tid/thumbs.yaml
+++ b/public/openapi/write/topics/tid/thumbs.yaml
@@ -111,8 +111,20 @@ put:
               status:
                 $ref: ../../../components/schemas/Status.yaml#/Status
               response:
-                type: object
-                properties: {}
+                type: array
+                description: A list of the topic thumbnails in the destination topic
+                items:
+                  type: object
+                  properties:
+                    id:
+                      type: string
+                    name:
+                      type: string
+                    path:
+                      type: string
+                    url:
+                      type: string
+                      description: Path to a topic thumbnail
 delete:
   tags:
     - topics
diff --git a/public/openapi/write/topics/tid/thumbs/order.yaml b/public/openapi/write/topics/tid/thumbs/order.yaml
index 2fac638a23..a0f1602bc8 100644
--- a/public/openapi/write/topics/tid/thumbs/order.yaml
+++ b/public/openapi/write/topics/tid/thumbs/order.yaml
@@ -37,5 +37,17 @@ put:
               status:
                 $ref: ../../../../components/schemas/Status.yaml#/Status
               response:
-                type: object
-                properties: {}
+                type: array
+                description: A list of the topic thumbnails in the new order
+                items:
+                  type: object
+                  properties:
+                    id:
+                      type: string
+                    name:
+                      type: string
+                    path:
+                      type: string
+                    url:
+                      type: string
+                      description: Path to a topic thumbnail
diff --git a/public/openapi/write/users/uid/emails.yaml b/public/openapi/write/users/uid/emails.yaml
index 8bd00809c0..c6b67acf9e 100644
--- a/public/openapi/write/users/uid/emails.yaml
+++ b/public/openapi/write/users/uid/emails.yaml
@@ -16,6 +16,57 @@ get:
   responses:
     '200':
       description: user emails successfully listed
+      content:
+        application/json:
+          schema:
+            type: object
+            properties:
+              status:
+                $ref: ../../../components/schemas/Status.yaml#/Status
+              response:
+                type: object
+                properties:
+                  emails:
+                    type: array
+                    items:
+                      type: string
+                      description: An email address
+post:
+  tags:
+    - users
+  summary: add email to user
+  description: |
+    This operation adds an email to the user account, optionally bypassing the confirmation step if requested.
+
+    **Note**: The confirmation bypass can only be called by super administrators or users with the `admin:users` privilege.
+  parameters:
+  - in: path
+    name: uid
+    schema:
+      type: integer
+    required: true
+    description: uid of the account to add the email
+    example: 1
+  requestBody:
+    required: true
+    content:
+      application/json:
+        schema:
+          type: object
+          properties:
+            email:
+              type: string
+              description: A single email address
+              example: test@example.org
+            skipConfirmation:
+              type: boolean
+              description: If truthy, will automatically confirm the user's email.
+              example: 1
+          required:
+            - email
+  responses:
+    '200':
+      description: email successfully added to user account
       content:
         application/json:
           schema:
diff --git a/public/less/admin/admin.less b/public/scss/admin/admin.scss
similarity index 60%
rename from public/less/admin/admin.less
rename to public/scss/admin/admin.scss
index 26432e1226..c244fe3498 100644
--- a/public/less/admin/admin.less
+++ b/public/scss/admin/admin.scss
@@ -1,8 +1,4 @@
-@import "bootstrap/less/bootstrap";
-@import "./paper/variables";
-@import "./paper/bootswatch";
 @import "./mixins";
-@import "./vars";
 
 @import "./header";
 @import "./mobile";
@@ -13,24 +9,13 @@
 @import "./manage/privileges";
 @import "./manage/tags";
 @import "./manage/groups";
-@import "./manage/registration";
-@import "./manage/users";
-@import "./manage/admins-mods";
 @import "./appearance/customise";
-@import "./appearance/themes";
 @import "./extend/plugins";
 @import "./extend/rewards";
 @import "./extend/widgets";
 @import "./advanced/database";
-@import "./advanced/events";
-@import "./advanced/logs";
-@import "./advanced/errors";
-@import "./advanced/hooks";
-@import "./development/info";
 @import "./settings";
 
-@import "../flags";
-
 @import "./modules/alerts";
 @import "./modules/selectable";
 @import "./modules/nprogress";
@@ -46,21 +31,19 @@ body {
 
 	h1 {
 		font-size: 35px;
-		margin-bottom: 50px;
 	}
-
-	label {
+	.form-label, .form-check-label {
 		font-weight: 700;
-		height: auto;
 	}
-
-
 	.btn {
 		border-radius: 0;
 	}
-
-	.btn-link {
-		color: @link-color;
+	.btn-outline-secondary {
+		color: $gray-700;
+		box-shadow: 0 1px 4px rgba(0, 0, 0, .4) !important;
+		&:hover {
+			background-color: $gray-200 !important;
+		}
 	}
 
 	// .floating-button can either be a container or the button itself
@@ -68,16 +51,16 @@ body {
 		position: fixed;
 		right: 30px;
 		bottom: 30px;
-		z-index: 1;
+		z-index: 2;
 		max-width: 56px;
 
 		button {
 			&.primary {
-				background: @brand-primary !important;
+				background: $primary !important;
 			}
 
 			&.success {
-				background: @brand-success !important;
+				background: $success !important;
 			}
 
 			&:not(:last-child) {
@@ -86,12 +69,7 @@ body {
 		}
 	}
 	button.floating-button {
-		background: @brand-primary !important;
-	}
-
-	.user-img {
-		width:24px;
-		height:24px;
+		background: $primary !important;
 	}
 
 	.nodebb-logo {
@@ -102,7 +80,7 @@ body {
 			vertical-align: -43%;
 		}
 
-		.box-header-font;
+		@include box-header-font;
 		color: #fff;
 	}
 
@@ -110,48 +88,52 @@ body {
 		cursor: default;
 	}
 
-	.acp-panel-heading {
+	@mixin acp-panel-heading() {
 		padding: 7px 14px;
 		border: 0;
-		.box-header-font;
+		@include box-header-font;
 	}
 
-	.panel:not([data-container-html]) {
+	.card:not([data-container-html]) {
 		background-color: #FFF;
 		box-sizing: border-box;
 		border-radius: 3px;
+		border-width: 0px;
 		box-shadow: 0px 1px 3px 0px rgba(165, 165, 165, 0.75);
 		margin-bottom: 20px;
 
-		&.panel-default >.panel-heading {
-			.acp-panel-heading;
+		>.card-header {
+			@include acp-panel-heading;
 			background: #fefefe;
 			color: #333;
 		}
 
-		&.panel-danger >.panel-heading {
-			.acp-panel-heading;
+		&.card-danger >.card-header {
+			@include acp-panel-heading;
 		}
 	}
 
 	.nav-header {
-		.box-header-font
+		@include box-header-font;
 	}
 
 	.icon-container {
-		.row {
+		.fa-nbb-none {
+			border: 1px dotted black;
+		}
+		.nbb-fa-icons {
 			margin: 0;
 			i {
-				width:20px;
-				height:20px;
-				margin: 1px;
-				.pointer;
-				line-height: 20px;
+				width: 36px;
+				height: 36px;
+				cursor: pointer;
+				line-height: 36px;
 				text-align: center;
-				color: @gray-dark;
+				color: $gray-800;
+				margin: 4px;
 
 				&:hover, &.selected {
-					background: @brand-primary;
+					background: $primary;
 					color: white;
 				}
 			}
@@ -167,26 +149,13 @@ body {
     }
 
     .navbar-nav {
-        margin-top: 0;
-        margin-bottom: 0;
-
-        >li {
-            >a {
-                padding-top: 15px;
-                padding-bottom: 15px;
-            }
-
-            >a:hover, >a:focus {
-                color: @gray-dark;
-                background-color: @gray-light;
-            }
-
+	    >li {
             >#reconnect {
-                color: @gray-light;
+                color: $gray-700;
             }
 
             >#reconnect:focus, >#reconnect:hover {
-                color: @gray-light;
+                color: $gray-700;
                 background-color: transparent;
             }
         }
@@ -198,7 +167,23 @@ body {
 
 	/* Allows the autocomplete dropbox to appear on top of a modal's backdrop */
 	.ui-autocomplete {
-		z-index: @zindex-popover;
+		z-index: $zindex-popover;
+	}
+
+	.bootstrap-tagsinput {
+		width: 100%;
+		border: 0;
+		box-shadow: none;
+		padding-left: 0;
+
+		input {
+			width: 100%;
+			margin-left: 1px;
+			margin-top: 9px;
+			border-bottom: 1px dotted #ccc !important;
+			padding-bottom: 5px;
+			padding-left: 0;
+		}
 	}
 }
 
@@ -211,16 +196,16 @@ body {
 .category-settings-form {
 	h3 {
 		margin-top: 0;
-		.pointer;
+		cursor: pointer;
 	}
 
 	h4 {
-		.pointer;
+		cursor: pointer;
 	}
 }
 
 .category-preview {
-	.pointer;
+	cursor: pointer;
 	width: 100%;
 	height: 100px;
 	text-align: center;
@@ -235,13 +220,16 @@ body {
 		margin: 35px 5px 0 5px;
 	}
 }
+
+.category-dropdown-container.right .category-dropdown-menu {
+	--bs-position: end;
+}
+
 [component="category-selector"] {
-	.fa-stack {
-		border-radius: 50%;
-	}
 	.category-dropdown-menu {
-		max-height: 400px;
+		max-height: 500px;
 		overflow-y: auto;
+		overflow-x: hidden;
 	}
 }
 
@@ -262,32 +250,38 @@ body {
 	}
 }
 
-.mdl-switch.is-checked .mdl-switch__ripple-container {
-	cursor: pointer !important;
+* > .checkbox:first-child {
+	margin-top: 0px;
 }
 
-.mdl-switch.is-checked .mdl-switch__thumb {
-	background: @brand-primary !important;
+.ui-selectable-helper {
+	border: 1px dashed $success;
+	background: lighten($success, 10%);
+	opacity: 0.5;
 }
 
-.mdl-switch.is-checked .mdl-switch__track {
-	background: lighten(@brand-primary, 20%) !important;
+form small {
+	color: $gray-700;
 }
 
-* > .checkbox:first-child {
-	margin-top: 0px;
+.caret {
+    display: inline-block;
+    width: 0;
+    height: 0;
+    vertical-align: middle;
+    border-top: 4px dashed;
+    border-right: 4px solid transparent;
+    border-left: 4px solid transparent;
 }
 
-[class^="col-"] .mdl-switch__label {
-	padding-right: 15px;
-}
+#save {
+	transition: background-color 500ms linear;
 
-.ui-selectable-helper {
-	border: 1px dashed @brand-success;
-	background: lighten(@brand-success, 10%);
-	opacity: 0.5;
-}
+	&.saved {
+		background-color: $success;
 
-form small {
-	color: @gray-light;
+		i {
+			@include fa-icon-solid($fa-var-check);
+		}
+	}
 }
\ No newline at end of file
diff --git a/public/less/admin/advanced/database.less b/public/scss/admin/advanced/database.scss
similarity index 80%
rename from public/less/admin/advanced/database.less
rename to public/scss/admin/advanced/database.scss
index 3799ced20a..a68332708c 100644
--- a/public/less/admin/advanced/database.less
+++ b/public/scss/admin/advanced/database.scss
@@ -4,20 +4,3 @@
 		width:220px;
 	}
 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/less/admin/appearance/customise.less b/public/scss/admin/appearance/customise.scss
similarity index 99%
rename from public/less/admin/appearance/customise.less
rename to public/scss/admin/appearance/customise.scss
index 3bef7fa560..ee4e4b0dd4 100644
--- a/public/less/admin/appearance/customise.less
+++ b/public/scss/admin/appearance/customise.scss
@@ -6,4 +6,4 @@
 // ACP text colour when searching through custom CSS or JS.
 .ace_search_field {
  color: #000 !important;
-}
+}
\ No newline at end of file
diff --git a/public/less/admin/extend/plugins.less b/public/scss/admin/extend/plugins.scss
similarity index 81%
rename from public/less/admin/extend/plugins.less
rename to public/scss/admin/extend/plugins.scss
index d7e4584f02..70c441c190 100644
--- a/public/less/admin/extend/plugins.less
+++ b/public/scss/admin/extend/plugins.scss
@@ -21,7 +21,7 @@
 
 	.plugin-list.ui-sortable {
 		li {
-			.pointer;
+			cursor: pointer;
 
 			.fa-chevron-up {
 				margin-right: 10px;
@@ -37,22 +37,14 @@
 
 			&:first-child .fa-chevron-up, &:last-child .fa-chevron-down {
 				pointer-events: none;
-				color: @gray-light;
+				color: $gray-300;
 			}
 		}
 	}
 	.controls .btn {
 		display: list-item;
-		width: 120px;
+		width: 150px;
 		margin-bottom: 3px;
 		margin-left: 10px;
 	}
-
-	.acp-sidebar {
-		.mdl-switch__label {
-			margin-left: 24px;
-    		display: block;
-			left: 0;
-		}
-	}
 }
\ No newline at end of file
diff --git a/public/less/admin/extend/rewards.less b/public/scss/admin/extend/rewards.scss
similarity index 64%
rename from public/less/admin/extend/rewards.less
rename to public/scss/admin/extend/rewards.scss
index e90eb3e717..4f20b44bf2 100644
--- a/public/less/admin/extend/rewards.less
+++ b/public/scss/admin/extend/rewards.scss
@@ -1,13 +1,4 @@
 #rewards {
-	.well, .panel-body {
-		vertical-align: top;
-		min-height: 100px;
-
-		&.pull-right {
-			min-height: 0px;
-		}
-	}
-
 	ul {
 		list-style-type: none;
 		padding: 0px;
@@ -24,26 +15,26 @@
 
 	.rewards { width: 100%; }
 
-	.well {
+	.card {
 		border-radius: 2px;
 		border-width: 2px;
 		color: #333;
 
 		&.if-block {
-			border-color: @brand-primary;
+			border-color: $primary;
 			max-width: 33%;
 		}
 		&.this-block {
-			border-color: @brand-warning;
+			border-color: $warning;
 			max-width: 33%;
 		}
 		&.then-block {
-			border-color: @brand-success;
+			border-color: $success;
 			max-width: 33%;
 		}
 		&.reward-block {
-			border-color: @brand-success;
-			background-color: lighten(@brand-success, 15%);
+			border-color: $success;
+			background-color: lighten($success, 15%);
 			color: #fff;
 			a, select, input { color: #fff; }
 			select > option { color: #333; }
@@ -51,4 +42,11 @@
 			min-height: 110px;
 		}
 	}
+}
+
+.page-admin-rewards {
+	#new {
+		bottom: calc(64px + $spacer);
+		background-color: $success;
+	}
 }
\ No newline at end of file
diff --git a/public/less/admin/extend/widgets.less b/public/scss/admin/extend/widgets.scss
similarity index 58%
rename from public/less/admin/extend/widgets.less
rename to public/scss/admin/extend/widgets.scss
index 8316030446..5eca898822 100644
--- a/public/less/admin/extend/widgets.less
+++ b/public/scss/admin/extend/widgets.scss
@@ -1,4 +1,4 @@
-.page-extend-widgets {
+.page-admin-extend.page-admin-widgets {
 	[component="clone"] {
 		display: flex;
 		align-items: stretch;
@@ -16,4 +16,13 @@
 			border-radius: 0;
 		}
 	}
-}
\ No newline at end of file
+	.container-hover {
+		.container-html {
+			// border: 1px solid red!important;
+			@extend .border;
+			@extend .border-2;
+			@extend .border-primary;
+		}
+	}
+
+}
diff --git a/public/less/admin/general/dashboard.less b/public/scss/admin/general/dashboard.scss
similarity index 91%
rename from public/less/admin/general/dashboard.less
rename to public/scss/admin/general/dashboard.scss
index f7e3f8ff72..cb20576dd3 100644
--- a/public/less/admin/general/dashboard.less
+++ b/public/scss/admin/general/dashboard.scss
@@ -1,25 +1,25 @@
 .dashboard {
 	max-width: 1680px;
 
-	.panel {
+	.card {
 		max-width: 100% !important;
 	}
 
-	#analytics-panel .panel-heading > div {
+	#analytics-panel .card-header > div {
 		&.fa-expand {
 			display: none;
 		}
 
-		font-family: @font-family-sans-serif;
+		font-family: $font-family-sans-serif;
 		font-weight: 600;
-		color: @gray-dark;
+		color: $gray-300;
 		padding-left: .5em;
 
 		padding: .75em;
-		background-color: @gray-lighter;
-		color: @gray-base;
+		background-color: $gray-200;
+		color: $black;
 		cursor: pointer;
-		.transition(all .4s);
+		transition: all .4s;
 
 		&.active {
 			display: inline;
@@ -29,12 +29,12 @@
 	.graph-container {
 		padding-right: 50px;
 		position: relative;
-		background: @body-bg;
+		background: $body-bg;
 
 		&:hover {
 			.fa-expand {
-				color: @gray-lighter;
-				background-color: @gray-base;
+				color: $gray-800;
+				background-color: $black;
 			}
 		}
 
@@ -94,7 +94,7 @@
 		}
 
 		.graph-legend {
-			.box-header-font;
+			@include box-header-font;
 			display: inline-block;
 			max-width: 100%;
 			position: absolute;
diff --git a/public/less/admin/general/navigation.less b/public/scss/admin/general/navigation.scss
similarity index 85%
rename from public/less/admin/general/navigation.less
rename to public/scss/admin/general/navigation.scss
index 9d0316ee3a..ada36aeeea 100644
--- a/public/less/admin/general/navigation.less
+++ b/public/scss/admin/general/navigation.scss
@@ -24,6 +24,10 @@
 
 		li {
 			display: inline-block;
+			>a:hover, >a:focus {
+                color: $gray-300;
+                background-color: $gray-700;
+            }
 		}
 	}
 
diff --git a/public/less/admin/header.less b/public/scss/admin/header.scss
similarity index 85%
rename from public/less/admin/header.less
rename to public/scss/admin/header.scss
index 63d8e8bcdb..1d9b08b4b9 100644
--- a/public/less/admin/header.less
+++ b/public/scss/admin/header.scss
@@ -1,5 +1,5 @@
 .header {
-	.no-select;
+	user-select: none;
 	position: relative;
 	background: #333;
 	width: 100%;
@@ -10,7 +10,7 @@
 	#main-page-title {
 		position: absolute;
 		left: 48px;
-		bottom: 17px;
+		bottom: 50px;
 		color: #aaa;
 		font-size: 47px;
 		font-weight: 300;
@@ -23,10 +23,6 @@
 		flex-direction: row-reverse;
 		margin: 0;
 
-		li {
-			align-self: end;
-		}
-
 		> * {
 			margin-right: 20px;
 		}
@@ -38,7 +34,7 @@
 
 		.alert {
 			font-size: 14px;
-			margin-bottom: 5px;
+			margin-bottom: 0px;
 
 			&.alert-info {
 				background-color: #eee;
@@ -75,10 +71,10 @@
 			padding: 10px 20px;
 			width: 250px;
 			height: 44px;
-			background-color: rgba(0, 0, 0, 0.2);
+			background-color: rgba(0,0,0,.2);
 			border-radius: 3px;
 			box-shadow: none;
-			.transition(.4s ease background-color);
+			transition: .4s ease background-color;
 
 			&:focus {
 				background-color: #eee;
@@ -89,7 +85,7 @@
 		.dropdown:not(.open) {
 			&:before {
 				content: '/';
-				border: 1px solid @gray;
+				border: 1px solid $gray-500;
 				border-radius: 5px;
 				padding: 0px 6px;
 				font-size: 12px;
@@ -97,14 +93,14 @@
 				pointer-events: none;
 
 				position: absolute;
-				top: 10px;
+				top: 13px;
 				left: 1em;
 			}
 
 			&:after {
 				content: attr(data-text);
 				position: absolute;
-				top: 10px;
+				top: 13px;
 				left: 3em;
 				font-size: small;
 				font-weight: 600;
@@ -130,7 +126,7 @@
 		list-style-type: none;
 		padding: 0px;
 		position: absolute;
-		bottom: -11px;
+		bottom: -16px;
 		left: 50px;
 
 		> li {
@@ -140,11 +136,11 @@
 			transition: border-color 150ms linear;
 
 			&:hover {
-				border-color: darken(@brand-primary, 20%);
+				border-color: darken($primary, 20%);
 			}
 
 			&.active {
-				border-color: @brand-primary;
+				border-color: $primary;
 			}
 
 			> a {
diff --git a/public/less/admin/manage/categories.less b/public/scss/admin/manage/categories.scss
similarity index 67%
rename from public/less/admin/manage/categories.less
rename to public/scss/admin/manage/categories.scss
index 8350b574c8..8c5117990f 100644
--- a/public/less/admin/manage/categories.less
+++ b/public/scss/admin/manage/categories.scss
@@ -1,6 +1,6 @@
 div.categories {
 	ul[data-cid] {
-		.no-select;
+		user-select: none;
 		list-style-type: none;
 		margin: 0;
 		padding: 0;
@@ -73,22 +73,6 @@ div.categories {
 	.information {
 		cursor: move;
 		padding-left: 3rem;
-
-		.icon {
-			width: 24px;
-			height: 24px;
-			border-radius: 50%;
-			line-height: 24px;
-			text-align: center;
-			vertical-align: bottom;
-			background-size: cover;
-			float: left;
-			margin-right: 1rem;
-
-			.fa {
-				font-size: 85%;
-			}
-		}
 	}
 
 	.category-header {
@@ -111,25 +95,5 @@ div.categories {
 		tr > th:first-child {
 			min-width: 150px;
 		}
-
-		.privilege-table-header {
-			background: white;
-
-			th {
-				text-align: center;
-				border-top: 0;
-				text-transform: uppercase;
-				font-size: 9px;
-				vertical-align: bottom;
-			}
-
-			.arrowed:after {
-				border-bottom: 1px dashed #ccc;
-				content: "";
-				width: 100%;
-				display: block;
-				padding-top: 5px;
-			}
-		}
 	}
 }
\ No newline at end of file
diff --git a/public/less/admin/manage/groups.less b/public/scss/admin/manage/groups.scss
similarity index 78%
rename from public/less/admin/manage/groups.less
rename to public/scss/admin/manage/groups.scss
index 2183cc748c..8cad8083b2 100644
--- a/public/less/admin/manage/groups.less
+++ b/public/scss/admin/manage/groups.scss
@@ -35,16 +35,6 @@
 	[component="category/list"] li {
 		cursor: pointer;
 	}
-	
-	.fa-nbb-none {
-		border: 1px dotted black;
-		height: 35px;
-		width: 35px;
-	}
-
-	.fa-icons .fa-nbb-none {
-		vertical-align: -6px;
-	}
 
 	#group-icon-preview.fa-nbb-none {
 		display: none;
diff --git a/public/scss/admin/manage/privileges.scss b/public/scss/admin/manage/privileges.scss
new file mode 100644
index 0000000000..e411bd94e6
--- /dev/null
+++ b/public/scss/admin/manage/privileges.scss
@@ -0,0 +1,19 @@
+.page-admin-privileges {
+	@keyframes fadeOut {
+		0% {background-color: $primary;}
+		100% {background-color: white;}
+	}
+
+	[data-group-name].selected, [data-uid].selected {
+		animation-name: fadeOut;
+		animation-duration: 5s;
+		animation-fill-mode: both;
+		animation-timing-function: ease-out;
+	}
+
+	.privilege-table {
+		td:first-child {
+			white-space: nowrap;
+		}
+	}
+}
\ No newline at end of file
diff --git a/public/less/admin/manage/tags.less b/public/scss/admin/manage/tags.scss
similarity index 77%
rename from public/less/admin/manage/tags.less
rename to public/scss/admin/manage/tags.scss
index fc4ea9f2e1..dc7d608129 100644
--- a/public/less/admin/manage/tags.less
+++ b/public/scss/admin/manage/tags.scss
@@ -16,11 +16,11 @@
 			}
 
 			&.ui-selected {
-				background: lighten(@brand-success, 25%);
+				background: lighten($success, 25%);
 			}
 
 			&.ui-selecting {
-				background: lighten(@brand-success, 40%);
+				background: lighten($success, 40%);
 			}
 		}
 	}
diff --git a/public/less/admin/mixins.less b/public/scss/admin/mixins.scss
similarity index 75%
rename from public/less/admin/mixins.less
rename to public/scss/admin/mixins.scss
index 36315ce5f2..f3725617ef 100644
--- a/public/less/admin/mixins.less
+++ b/public/scss/admin/mixins.scss
@@ -1,6 +1,6 @@
 @import "../mixins";
 
-.box-header-font {
+@mixin box-header-font() {
 	font-size: 11px;
 	text-transform: uppercase;
 	font-weight: 700;
diff --git a/public/less/admin/mobile.less b/public/scss/admin/mobile.scss
similarity index 97%
rename from public/less/admin/mobile.less
rename to public/scss/admin/mobile.scss
index 021145b1ae..d0a509e8ac 100644
--- a/public/less/admin/mobile.less
+++ b/public/scss/admin/mobile.scss
@@ -6,7 +6,7 @@
 	body {
 		height: 100%;
 	}
-	
+
 	#panel {
 		background-color: inherit;
 		min-height: 100%;
@@ -31,11 +31,6 @@
 			font-weight: 400;
 		}
 
-		#user_label {
-			right: 0px;
-			bottom: 7px;
-		}
-
 		#main-menu {
 			display: none;
 		}
@@ -93,7 +88,7 @@
 				display: flex;
 				justify-content: center;
 			}
-			
+
 			.alert {
 				border-radius: 0;
 
@@ -152,7 +147,6 @@
 
 	.slideout-panel {
 		position: relative;
-		z-index: 1;
 	}
 
 	.slideout-open,
@@ -170,7 +164,7 @@
 		height: 100%;
 		overflow-y: hidden;
 	}
-	
+
 	.slideout-open {
 		overflow-y: hidden;
 		height: 100%;
diff --git a/public/scss/admin/modules/alerts.scss b/public/scss/admin/modules/alerts.scss
new file mode 100644
index 0000000000..a42b684a5f
--- /dev/null
+++ b/public/scss/admin/modules/alerts.scss
@@ -0,0 +1,124 @@
+.alert-window {
+	position: fixed;
+	width: 300px;
+	z-index: 10002;
+
+	right: 20px;
+	bottom: 0px;
+
+	.alert {
+		.close {
+			color: inherit;
+		}
+
+		&::before {
+			position: relative;
+			top: -15px;
+			left: -15px;
+			display: block;
+			height: 2px;
+			width: 0;
+			transition: inherit;
+		}
+
+		&.alert-info {
+			.btn-close {
+				$btn-close-color: $info;
+				background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"));
+			}
+
+			&::before {
+				background-color: $info;
+			}
+		}
+
+		&.alert-warning {
+			.btn-close {
+				$btn-close-color: $warning;
+				background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"));
+			}
+
+			::before {
+				background-color: $warning;
+			}
+		}
+
+		&.alert-success {
+			.btn-close {
+				$btn-close-color: $success;
+				background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"));
+			}
+
+			::before {
+				background-color: $success;
+			}
+		}
+
+		&.alert-danger {
+			.btn-close {
+				$btn-close-color: $danger;
+				background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"));
+			}
+
+			::before {
+				background-color: $danger;
+			}
+		}
+
+		&.animate {
+			&.alert-info::before {
+				background-color: lighten($info, 25%);
+			}
+
+			&.alert-warning::before {
+				background-color: lighten($warning, 25%);
+			}
+
+			&.alert-success::before {
+				background-color: lighten($success, 25%);
+			}
+
+			&.alert-danger::before {
+				background-color: lighten($danger, 25%);
+			}
+
+			&::before {
+				width: calc(100% + 50px);
+			}
+		}
+
+		background-color: white;
+		padding-right: 16px;
+		border: 0;
+		border-left: 5px solid !important;
+		box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.25), 0px 2px 10px 0px rgba(0, 0, 0, 0.25);
+
+		strong {
+			text-transform: uppercase;
+		}
+
+		p {
+			padding: 10px 0px 0px;
+		}
+
+		&.alert-info {
+			color: $info;
+			border-color: $info;
+		}
+
+		&.alert-warning {
+			color: $warning;
+			border-color: $warning;
+		}
+
+		&.alert-success {
+			color: $success;
+			border-color: $success;
+		}
+
+		&.alert-danger {
+			color: $danger;
+			border-color: $danger;
+		}
+	}
+}
diff --git a/public/scss/admin/modules/nprogress.scss b/public/scss/admin/modules/nprogress.scss
new file mode 100644
index 0000000000..4584a127d7
--- /dev/null
+++ b/public/scss/admin/modules/nprogress.scss
@@ -0,0 +1,80 @@
+#nprogress {
+	pointer-events: none;
+  }
+
+  #nprogress .bar {
+	background: #29d;
+
+	position: fixed;
+	z-index: 1031;
+	top: 0;
+	left: 0;
+
+	width: 100%;
+	height: 2px;
+  }
+
+  #nprogress .peg {
+	display: block;
+	position: absolute;
+	right: 0px;
+	width: 100px;
+	height: 100%;
+	box-shadow: 0 0 10px #29d, 0 0 5px #29d;
+	opacity: 1.0;
+
+	-webkit-transform: rotate(3deg) translate(0px, -4px);
+		-ms-transform: rotate(3deg) translate(0px, -4px);
+			transform: rotate(3deg) translate(0px, -4px);
+  }
+
+  #nprogress .spinner {
+	display: block;
+	position: fixed;
+	z-index: 1031;
+	top: 165px;
+	right: 35px;
+  }
+
+  @include media-breakpoint-down(sm) {
+	#nprogress .spinner {
+	  bottom: 15px;
+	  right: 15px;
+	  top: initial;
+	}
+  }
+
+
+  #nprogress .spinner-icon {
+	width: 18px;
+	height: 18px;
+	box-sizing: border-box;
+
+	border: solid 2px transparent;
+	border-top-color: #29d;
+	border-left-color: #29d;
+	border-radius: 50%;
+
+	-webkit-animation: nprogress-spinner 400ms linear infinite;
+			animation: nprogress-spinner 400ms linear infinite;
+  }
+
+  .nprogress-custom-parent {
+	overflow: hidden;
+	position: relative;
+  }
+
+  .nprogress-custom-parent #nprogress .spinner,
+  .nprogress-custom-parent #nprogress .bar {
+	position: absolute;
+  }
+
+  @-webkit-keyframes nprogress-spinner {
+	0%   { -webkit-transform: rotate(0deg); }
+	100% { -webkit-transform: rotate(360deg); }
+  }
+  @keyframes nprogress-spinner {
+	0%   { transform: rotate(0deg); }
+	100% { transform: rotate(360deg); }
+  }
+
diff --git a/public/less/admin/modules/search.less b/public/scss/admin/modules/search.scss
similarity index 88%
rename from public/less/admin/modules/search.less
rename to public/scss/admin/modules/search.scss
index d2286005bf..57b8d8613e 100644
--- a/public/less/admin/modules/search.less
+++ b/public/scss/admin/modules/search.scss
@@ -4,9 +4,9 @@
         overflow-y: auto;
 
         > li > a {
-            &.focus {
-                &:extend(.dropdown-menu>li>a:focus);
-            }
+            // &.focus {
+            //     &:extend(.dropdown-menu>li>a:focus);
+            // }
             &:focus {
                 outline: none;
             }
diff --git a/public/less/admin/modules/selectable.less b/public/scss/admin/modules/selectable.scss
similarity index 92%
rename from public/less/admin/modules/selectable.less
rename to public/scss/admin/modules/selectable.scss
index 7a1721fe23..938a459932 100644
--- a/public/less/admin/modules/selectable.less
+++ b/public/scss/admin/modules/selectable.scss
@@ -1,5 +1,5 @@
 .selectable {
-	.user-select(none);
+	user-select: none;
 	position: relative;
 
 	.selector {
@@ -19,5 +19,5 @@
 			background-color: #ECF1DB;
 			border: 1px dashed #9B8;
 		}
-	}	
+	}
 }
\ No newline at end of file
diff --git a/public/scss/admin/settings.scss b/public/scss/admin/settings.scss
new file mode 100644
index 0000000000..e760d71787
--- /dev/null
+++ b/public/scss/admin/settings.scss
@@ -0,0 +1,20 @@
+.settings {
+	.section-content {
+		border-left: 3px solid $primary;
+
+		ul {
+			list-style-type: none;
+			font-size: 16px;
+			padding-left: 20px;
+			li:not(:last-child) {
+				margin-bottom: 5px;
+			}
+			a {
+				text-decoration: none;
+				&:hover{
+					text-decoration: underline;
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/public/less/admin/vars.less b/public/scss/admin/vars.scss
similarity index 64%
rename from public/less/admin/vars.less
rename to public/scss/admin/vars.scss
index dda7ed1fe8..e5330b8924 100644
--- a/public/less/admin/vars.less
+++ b/public/scss/admin/vars.scss
@@ -16,5 +16,30 @@
 //   "Apple Color Emoji"                 : Emoji on iOS and MacOS
 //   "Segoe UI Emoji", "Segoe UI Symbol" : Emoji on Windows
 //   "Noto Color Emoji"                  : Emoji on Android
-@font-family-system: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
-@font-family-sans-serif: @font-family-system;
+$font-family-system: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+$font-family-sans-serif: $font-family-system;
+$font-size-base: 0.875rem!default;
+
+$body-color: #666!default;
+$light: #f5f5f5;
+
+// options
+$enable-gradients: false;
+// no caret on dropdown-toggle
+$enable-caret: false;
+
+$font-size-base:            1rem !default;
+$font-weight-base:          400 !default;
+
+// Buttons
+$input-btn-padding-y:       .4rem !default;
+$input-btn-padding-x:       1rem !default;
+
+// Forms
+
+$input-padding-y:                0.4rem !default;
+$input-padding-x:                0 !default;
+$input-padding-y-sm:             0 !default;
+$input-padding-x-sm:             0 !default;
+$input-padding-y-lg:             ($font-size-base * 1.25) !default;
+$input-padding-x-lg:             0 !default;
\ No newline at end of file
diff --git a/public/scss/client.scss b/public/scss/client.scss
new file mode 100644
index 0000000000..11e2d14c2f
--- /dev/null
+++ b/public/scss/client.scss
@@ -0,0 +1,7 @@
+// core scss files shared by all themes
+@import "flags";
+@import "global";
+@import "modals";
+@import "modules/picture-switcher";
+@import "modules/bottom-sheet";
+@import "modules/icon-picker";
\ No newline at end of file
diff --git a/public/less/flags.less b/public/scss/flags.scss
similarity index 85%
rename from public/less/flags.less
rename to public/scss/flags.scss
index 0edccd7819..5acc0c4beb 100644
--- a/public/less/flags.less
+++ b/public/scss/flags.scss
@@ -6,7 +6,7 @@
 
 .page-flags {
 	// hide the all categories li element
-	[component="flags/filters"] [component="category/dropdown"] [data-all="all"] {
+	[component="flags/filters"] [component="category/dropdown"] [data-cid="all"] {
 		display: none;
 	}
 }
@@ -26,7 +26,7 @@
 				list-style-type: none;
 
 				img, .user-icon {
-					.user-icon-style(18px, 1rem);
+					@include user-icon-style(18px, 1rem);
 					margin-right: 1rem;
 				}
 			}
@@ -35,7 +35,7 @@
 
 	.flag-post-body {
 		img, .user-icon {
-			.user-icon-style(24px, 1.5rem);
+			@include user-icon-style(24px, 1.5rem);
 		}
 	}
 
diff --git a/public/scss/fontawesome.scss b/public/scss/fontawesome.scss
new file mode 100644
index 0000000000..cbe2a7e504
--- /dev/null
+++ b/public/scss/fontawesome.scss
@@ -0,0 +1,7 @@
+$fa-font-path: "vendor/fontawesome/webfonts/6.2.0";
+@import "../public/vendor/fontawesome/scss/fontawesome";
+@import "../public/vendor/fontawesome/scss/regular";
+@import "../public/vendor/fontawesome/scss/solid";
+@import "../public/vendor/fontawesome/scss/brands";
+@import "../public/vendor/fontawesome/scss/v4-shims";
+@import "../public/vendor/fontawesome/scss/nodebb-shims";
\ No newline at end of file
diff --git a/public/scss/generics.scss b/public/scss/generics.scss
new file mode 100644
index 0000000000..017d872434
--- /dev/null
+++ b/public/scss/generics.scss
@@ -0,0 +1,154 @@
+
+.flex-1 {
+	flex: 1 1 0%!important;
+}
+.flex-0 {
+	flex: 0!important;
+}
+
+.pointer {
+	@include pointer;
+}
+
+.text-md { font-size: 1.125rem!important; } // 18px on harmony
+.text-sm { font-size: 0.875rem!important; } // 14px on harmony
+.text-xs { font-size: 0.75rem!important; } // 12px on harmony
+
+.overscroll-behavior-contain {
+	overscroll-behavior: contain;
+}
+
+[component="category-selector"], .category-dropdown-container {
+	#category-dropdown-check:checked + .dropdown-menu {
+		display: block;
+	}
+}
+
+.dropdown-right .dropdown-menu {
+	--bs-position: end;
+}
+
+.category-dropdown-menu {
+	max-height: 500px;
+	overflow-y: auto;
+	overflow-x: hidden;
+}
+
+.bootstrap-tagsinput {
+	@extend .form-control;
+	box-shadow: none;
+	input {
+		&::placeholder{
+			color: $input-placeholder-color;
+		}
+		color: $input-color;
+	}
+}
+
+@mixin user-icon() {
+	display: inline-flex;
+	justify-content: center;
+	align-items: center;
+	color: $white;
+	font-weight: normal;
+	overflow: hidden;	/* stops alt text from overflowing past boundaries if image does not load */
+	white-space: nowrap;
+}
+
+.avatar {
+	/* Contains the user icon class as a mixin, so there's no need to include that in the template */
+	@include user-icon;
+
+	$size: var(--avatar-size);
+	@include user-icon-style($size, calc($size * 0.6));
+
+	&.avatar-rounded {
+		border-radius: 50%;
+	}
+
+	&+.avatar {
+		display: none;
+	}
+}
+
+#crop-picture-modal {
+	#cropped-image {
+		max-width: 100%;
+	}
+
+	.cropper-container.cropper-bg {
+		max-width: 100%;
+	}
+}
+
+blockquote {
+	background-color: $light;
+	font-style: italic;
+	border-left: 4px solid $primary;
+	padding: 1rem;
+	p:last-child {
+		margin-bottom: 0;
+	}
+}
+
+.necro-post {
+	text-align: center;
+	text-transform: uppercase;
+}
+
+.timeline-event {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+
+	.timeline-badge {
+		padding: 1rem;
+	}
+}
+
+.imagedrop {
+	position: absolute;
+	text-align: center;
+	font-size: 24px;
+	color: $gray-600;
+	width: 100%;
+	display: none;
+}
+
+.hover-parent {
+	.hover-d-block, .hover-d-flex {
+		display: none!important;
+	}
+	.hover-visible {
+		visibility: hidden;
+	}
+	&:hover {
+		.hover-d-block {
+			display: block!important;
+		}
+		.hover-d-flex {
+			display: flex!important;
+		}
+		.hover-visible {
+			visibility: visible;
+		}
+	}
+}
+
+.border-muted {
+	border-color: $text-muted!important;
+}
+
+// some classes that are used commonly in themes from bs3
+.hidden, .hide {
+    display: none!important;
+}
+
+// for backwards compat, replace with float-start, float-end respectively
+.pull-left {
+	float: left!important;
+}
+
+.pull-right {
+	float: right!important;
+}
\ No newline at end of file
diff --git a/public/less/global.less b/public/scss/global.scss
similarity index 100%
rename from public/less/global.less
rename to public/scss/global.scss
diff --git a/public/less/install.less b/public/scss/install.scss
similarity index 92%
rename from public/less/install.less
rename to public/scss/install.scss
index ffd98e9f30..831d2a84e1 100644
--- a/public/less/install.less
+++ b/public/scss/install.scss
@@ -1,5 +1,9 @@
 @import "./admin/vars";
 
+.hidden, .hide {
+    display: none!important;
+}
+
 .working {
   width: 24px;
   height: 24px;
@@ -7,7 +11,7 @@
   position: relative;
 	display: inline-block;
 	vertical-align: bottom;
-	
+
 	&::before, &::after {
 		content: ' ';
 
@@ -19,11 +23,11 @@
 		position: absolute;
 		top: 0;
 		left: 0;
-		
+
 		-webkit-animation: sk-bounce 2.0s infinite ease-in-out;
 		animation: sk-bounce 2.0s infinite ease-in-out;
 	}
-	
+
 	&::after {
 		-webkit-animation-delay: -1.0s;
 		animation-delay: -1.0s;
@@ -36,10 +40,10 @@
 }
 
 @keyframes sk-bounce {
-  0%, 100% { 
+  0%, 100% {
     transform: scale(0.0);
     -webkit-transform: scale(0.0);
-  } 50% { 
+  } 50% {
     transform: scale(1.0);
     -webkit-transform: scale(1.0);
   }
@@ -55,7 +59,7 @@
 }
 
 body, small, p, div {
-	font-family: @font-family-sans-serif;
+	font-family: $font-family-sans-serif;
 }
 
 .input-row {
diff --git a/public/scss/jquery-ui.scss b/public/scss/jquery-ui.scss
new file mode 100644
index 0000000000..ea14c5ca97
--- /dev/null
+++ b/public/scss/jquery-ui.scss
@@ -0,0 +1,10 @@
+@import 'jquery-ui/themes/base/core';
+@import 'jquery-ui/themes/base/menu';
+@import 'jquery-ui/themes/base/button';
+@import 'jquery-ui/themes/base/datepicker';
+@import 'jquery-ui/themes/base/autocomplete';
+@import 'jquery-ui/themes/base/resizable';
+@import 'jquery-ui/themes/base/selectable';
+@import 'jquery-ui/themes/base/draggable';
+@import 'jquery-ui/themes/base/sortable';
+@import 'jquery-ui/themes/base/theme';
diff --git a/public/scss/mixins.scss b/public/scss/mixins.scss
new file mode 100644
index 0000000000..c38a4d13b3
--- /dev/null
+++ b/public/scss/mixins.scss
@@ -0,0 +1,118 @@
+@mixin no-select() {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+@mixin pointer() {
+	cursor: pointer;
+	*cursor: hand;
+}
+
+@mixin inline-block() {
+	display: inline-block;
+	*display: inline;
+	zoom: 1;
+}
+
+@mixin clear() {
+	clear: both;
+}
+
+@mixin zebra() {
+	&:nth-child(even) {
+		background: rgba(191,191,191,0.2);
+	}
+
+	&:nth-child(odd) {
+		background: rgba(223,223,223,0.2);
+	}
+}
+
+@mixin border-radius($radius: 5px){
+	-webkit-border-radius: $radius;
+	-moz-border-radius: $radius;
+	-ms-border-radius: $radius;
+	-o-border-radius: $radius;
+	border-radius: $radius;
+}
+
+@mixin text-ellipsis() {
+	overflow: hidden;
+	text-overflow: ellipsis;
+	white-space: nowrap;
+}
+
+@mixin fix-lists() {
+	ul {
+		> li {
+			list-style-type: disc;
+
+			ul > li {
+				list-style-type: circle;
+
+				ul > li {
+					list-style-type: square;
+				}
+			}
+		}
+	}
+
+	ol,
+	ul {
+		padding-left: 2rem;
+	}
+
+	ol,
+	ul,
+	dl {
+		margin-top: 0;
+		margin-bottom: 1rem;
+	}
+
+	ol ol,
+	ul ul,
+	ol ul,
+	ul ol {
+		margin-bottom: 0;
+	}
+}
+
+@mixin user-icon-style($size: 32px, $font-size: 1.5rem, $border-radius: inherit){
+	border-radius: $border-radius;
+	width: $size;
+	height: $size;
+	line-height: $size;
+	font-size: $font-size;
+}
+
+@mixin line-clamp($lines, $line-height: 1.5em) {
+	overflow: hidden;
+	display: -webkit-box;
+	-webkit-box-orient: vertical;
+	-webkit-line-clamp: $lines;
+	white-space: initial;
+	max-height: calc($line-height * $lines);
+	> p {
+		margin-bottom: $line-height;
+	}
+}
+
+@for $i from 1 through 6 {
+	.line-clamp-#{$i} {
+		@include line-clamp($i, #{$line-height-base}em);
+	}
+	// use with elements that have `lh-sm` applied
+	.line-clamp-sm-#{$i} {
+		@include line-clamp($i, #{$line-height-sm}em);
+	}
+}
+
+@each $color, $value in $grays {
+	.border-gray-#{$color} {
+		border-color: $value !important;
+	}
+}
\ No newline at end of file
diff --git a/public/scss/modals.scss b/public/scss/modals.scss
new file mode 100644
index 0000000000..dcdd2ad465
--- /dev/null
+++ b/public/scss/modals.scss
@@ -0,0 +1,22 @@
+.tool-modal {
+	position: fixed;
+	bottom: 10%;
+	right: 2rem;
+	z-index: $zindex-modal;
+	[component="category-selector-selected"] span {
+		display: inline-flex!important;
+	}
+}
+
+@include media-breakpoint-down(md) {
+	.tool-modal {
+		margin: 0 $spacer;
+		right: 0;
+	}
+}
+
+@include media-breakpoint-up(md) {
+	.tool-modal {
+		max-width: 400px;
+	}
+}
diff --git a/public/scss/modules/bottom-sheet.scss b/public/scss/modules/bottom-sheet.scss
new file mode 100644
index 0000000000..ae51326979
--- /dev/null
+++ b/public/scss/modules/bottom-sheet.scss
@@ -0,0 +1,51 @@
+.bottom-sheet {
+	@include media-breakpoint-down(sm) {
+		.dropdown-menu {
+			display: block;
+			visibility: hidden;
+
+			position: fixed!important;
+			inset: auto 0 0 0!important;
+
+			margin: 0 -1px -1px -1px;
+			padding: 0 5px;
+			max-height: 60%;
+
+			box-shadow: 0 2px 6px rgba(0,0,0,0.35);
+			overflow: auto;
+			-webkit-overflow-scrolling: touch;
+			transform: translate3d(0, 350px, 0);
+			transition: transform 0.3s, visibility 0s 0.3s;
+			z-index: $zindex-popover;
+			padding: 5px 0 10px;
+
+			border-bottom-left-radius: 0;
+			border-bottom-right-radius: 0;
+
+			> li {
+				> a {
+					padding: 10px 20px;
+					overflow: hidden;
+					text-overflow: ellipsis;
+					white-space: nowrap;
+				}
+
+				&.divider {
+					padding: 0;
+				}
+			}
+		}
+
+		.dropdown-menu.show {
+			transform: none!important;
+			visibility: visible;
+			transition-delay: 0s;
+			top: auto;
+			width: auto;
+		}
+
+		.dropdown-backdrop {
+			background-color: rgba(0, 0, 0, .3);
+		}
+	}
+}
diff --git a/public/scss/modules/icon-picker.scss b/public/scss/modules/icon-picker.scss
new file mode 100644
index 0000000000..d92b1152be
--- /dev/null
+++ b/public/scss/modules/icon-picker.scss
@@ -0,0 +1,21 @@
+.icon-container {
+	.fa-nbb-none {
+		border: 1px dotted $black;
+	}
+	.nbb-fa-icons {
+		margin: 0;
+		i {
+			width: 36px;
+			height: 36px;
+			cursor: pointer;
+			line-height: 36px;
+			text-align: center;
+			color: $body-color;
+			margin: 4px;
+
+			&:hover, &.selected {
+				background: $component-active-bg;
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/public/scss/modules/picture-switcher.scss b/public/scss/modules/picture-switcher.scss
new file mode 100644
index 0000000000..218f826690
--- /dev/null
+++ b/public/scss/modules/picture-switcher.scss
@@ -0,0 +1,59 @@
+.picture-switcher {
+	h4 {
+		line-height: 46px;
+		margin: 0;
+	}
+
+	.modal-body .btn {
+		padding: 10px 5px;
+		font-size: 13px;
+	}
+
+	label {
+		vertical-align: top;
+		line-height: 26px;
+
+		> input[type="radio"] {
+			display: none;
+
+			&:checked {
+				+ span:before {
+					border-radius: 50%;
+					border: 2px solid $primary;
+					position: relative;
+					top: -4px;
+					left: -4px;
+				}
+			}
+
+			&[value="transparent"] {
+				&:checked + span:before {
+					padding-top: 2px;
+					padding-left: 2px;
+				}
+
+				+ span:before {
+					content: '\f05e';
+					font-family: FontAwesome;
+					color: $gray-200;
+					font-size: 28px;
+				}
+			}
+		}
+
+		span {
+			display: inline-block;
+			width: 24px;
+			height: 24px;
+			border-radius: 50%;
+			margin-right: .5em;
+
+			&:before {
+				content: '';
+				display: inline-block;
+				width: 32px;
+				height: 32px;
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/public/scss/overrides.scss b/public/scss/overrides.scss
new file mode 100644
index 0000000000..7c733e7ad6
--- /dev/null
+++ b/public/scss/overrides.scss
@@ -0,0 +1 @@
+// global bs5 overrides if necessary
\ No newline at end of file
diff --git a/public/scss/responsive-utilities.scss b/public/scss/responsive-utilities.scss
new file mode 100644
index 0000000000..ea91213edf
--- /dev/null
+++ b/public/scss/responsive-utilities.scss
@@ -0,0 +1,189 @@
+//
+// Responsive: Utility classes
+// --------------------------------------------------
+
+// borders, see https://getbootstrap.com/docs/5.2/utilities/api/#enable-responsive
+$utilities: map-merge(
+  $utilities, (
+    "border": map-merge(
+      map-get($utilities, "border"),
+      ( responsive: true ),
+    ),
+	"border-start": map-merge(
+      map-get($utilities, "border-start"),
+      ( responsive: true ),
+    ),
+	"border-end": map-merge(
+      map-get($utilities, "border-end"),
+      ( responsive: true ),
+    ),
+	"border-top": map-merge(
+		map-get($utilities, "border-top"),
+		( responsive: true ),
+	  ),
+	"border-bottom": map-merge(
+		map-get($utilities, "border-bottom"),
+		( responsive: true ),
+	),
+  )
+);
+
+// ported to scss from bs3 less
+@mixin responsive-visibility() {
+	display: block !important;
+	// TODO: fix for scss
+	// table&  { display: table; }
+	// tr&     { display: table-row !important; }
+	// th&,
+	// td&     { display: table-cell !important; }
+}
+
+@mixin responsive-invisibility() {
+	display: none !important;
+}
+
+
+// Visibility utilities
+// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
+.visible-xs,
+.visible-sm,
+.visible-md,
+.visible-lg {
+	@include responsive-invisibility();
+}
+
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+	display: none !important;
+}
+
+.visible-xs {
+	@include media-breakpoint-down(sm) {
+		@include responsive-visibility();
+	}
+}
+
+.visible-xs-block {
+	@include media-breakpoint-down(sm) {
+		display: block !important;
+	}
+}
+.visible-xs-inline {
+	@include media-breakpoint-down(sm) {
+		display: inline !important;
+	}
+}
+.visible-xs-inline-block {
+	@include media-breakpoint-down(sm) {
+		display: inline-block !important;
+	}
+}
+
+.visible-sm {
+	// @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+	@include media-breakpoint-between(sm, md) {
+		@include responsive-visibility();
+	}
+}
+.visible-sm-block {
+	// @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+	@include media-breakpoint-between(sm, md) {
+		display: block !important;
+	}
+}
+.visible-sm-inline {
+	// @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+	@include media-breakpoint-between(sm, md) {
+		display: inline !important;
+	}
+}
+.visible-sm-inline-block {
+	// @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+	@include media-breakpoint-between(sm, md) {
+		display: inline-block !important;
+	}
+}
+
+.visible-md {
+	// @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+	@include media-breakpoint-between(md, lg) {
+		@include responsive-visibility();
+	}
+}
+.visible-md-block {
+	// @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+	@include media-breakpoint-between(md, lg) {
+		display: block !important;
+	}
+}
+.visible-md-inline {
+	// @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+	@include media-breakpoint-between(md, lg) {
+		display: inline !important;
+	}
+}
+.visible-md-inline-block {
+	// @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+	@include media-breakpoint-between(md, lg) {
+		display: inline-block !important;
+	}
+}
+
+.visible-lg {
+	// @media (min-width: @screen-lg-min) {
+	@include media-breakpoint-up(lg) {
+		@include responsive-visibility();
+	}
+}
+.visible-lg-block {
+	// @media (min-width: @screen-lg-min) {
+	@include media-breakpoint-up(lg) {
+		display: block !important;
+	}
+}
+.visible-lg-inline {
+	// @media (min-width: @screen-lg-min) {
+	@include media-breakpoint-up(lg) {
+		display: inline !important;
+	}
+}
+.visible-lg-inline-block {
+	// @media (min-width: @screen-lg-min) {
+	@include media-breakpoint-up(lg) {
+		display: inline-block !important;
+	}
+}
+
+.hidden-xs {
+	@include media-breakpoint-down(sm) {
+		@include responsive-invisibility();
+	}
+}
+.hidden-sm {
+	@include media-breakpoint-between(sm, md) {
+	// @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+		@include responsive-invisibility();
+	}
+}
+.hidden-md {
+	@include media-breakpoint-between(md, lg) {
+	//@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+		@include responsive-invisibility();
+	}
+}
+.hidden-lg {
+	@include media-breakpoint-up(lg) {
+	//@media (min-width: @screen-lg-min) {
+		@include responsive-invisibility();
+	}
+}
diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js
index dd1b80b05e..d65e291ea7 100644
--- a/public/src/admin/admin.js
+++ b/public/src/admin/admin.js
@@ -2,9 +2,9 @@
 
 require('../app');
 
-// scripts-admin.js contains javascript files
+// scripts-admin.js is generated during build, it contains javascript files
 // from plugins that add files to "acpScripts" block in plugin.json
-// eslint-disable-next-line import/no-unresolved
+// eslint-disable-next-line
 require('../../scripts-admin');
 
 app.onDomReady();
@@ -163,7 +163,7 @@ app.onDomReady();
 			// need to preload the compiled alert template
 			// otherwise it can be unloaded when rebuild & restart is run
 			// the client can't fetch the template file, resulting in an error
-			benchpress.render('alert', {}).then(function () {
+			benchpress.render('partials/toast', {}).then(function () {
 				$('.rebuild-and-restart').off('click').on('click', function () {
 					bootbox.confirm('[[admin/admin:alert.confirm-rebuild-and-restart]]', function (confirm) {
 						if (confirm) {
@@ -210,8 +210,7 @@ app.onDomReady();
 				slideout.close();
 
 				env = utils.findBootstrapEnvironment();
-
-				if (env === 'md' || env === 'lg') {
+				if (['xxl', 'xl', 'lg'].includes(env)) {
 					slideout.disableTouch();
 					$('#header').css({
 						position: 'relative',
diff --git a/public/src/admin/advanced/cache.js b/public/src/admin/advanced/cache.js
index 98073fafee..4b77cfb42b 100644
--- a/public/src/admin/advanced/cache.js
+++ b/public/src/admin/advanced/cache.js
@@ -17,7 +17,7 @@ define('admin/advanced/cache', ['alerts'], function (alerts) {
 			});
 		});
 
-		$('.checkbox').on('change', function () {
+		$('.form-check').on('change', function () {
 			const input = $(this).find('input');
 			const flag = input.is(':checked');
 			const name = $(this).attr('data-name');
diff --git a/public/src/admin/advanced/logs.js b/public/src/admin/advanced/logs.js
index 15705bb8a0..9d3be96752 100644
--- a/public/src/admin/advanced/logs.js
+++ b/public/src/admin/advanced/logs.js
@@ -7,8 +7,6 @@ define('admin/advanced/logs', ['alerts'], function (alerts) {
 	Logs.init = function () {
 		const logsEl = $('.logs pre');
 		logsEl.scrollTop(logsEl.prop('scrollHeight'));
-		// Affix menu
-		$('.affix').affix();
 
 		$('.logs').find('button[data-action]').on('click', function () {
 			const btnEl = $(this);
@@ -16,21 +14,14 @@ define('admin/advanced/logs', ['alerts'], function (alerts) {
 
 			switch (action) {
 				case 'reload':
-					socket.emit('admin.logs.get', function (err, logs) {
-						if (!err) {
-							logsEl.text(logs);
-							logsEl.scrollTop(logsEl.prop('scrollHeight'));
-						} else {
-							alerts.error(err);
-						}
-					});
+					loadLogs();
 					break;
 
 				case 'clear':
 					socket.emit('admin.logs.clear', function (err) {
 						if (!err) {
 							alerts.success('[[admin/advanced/logs:clear-success]]');
-							btnEl.prev().click();
+							loadLogs();
 						} else {
 							alerts.error(err);
 						}
@@ -40,5 +31,17 @@ define('admin/advanced/logs', ['alerts'], function (alerts) {
 		});
 	};
 
+	function loadLogs() {
+		const logsEl = $('.logs pre');
+		socket.emit('admin.logs.get', function (err, logs) {
+			if (!err) {
+				logsEl.text(logs);
+				logsEl.scrollTop(logsEl.prop('scrollHeight'));
+			} else {
+				alerts.error(err);
+			}
+		});
+	}
+
 	return Logs;
 });
diff --git a/public/src/admin/appearance/customise.js b/public/src/admin/appearance/customise.js
index 5e9a943e79..31a156cf3b 100644
--- a/public/src/admin/appearance/customise.js
+++ b/public/src/admin/appearance/customise.js
@@ -9,7 +9,7 @@ define('admin/appearance/customise', ['admin/settings', 'ace/ace'], function (Se
 			$('#customJS').text($('#customJS-holder').val());
 			$('#customHTML').text($('#customHTML-holder').val());
 
-			initACE('customCSS', 'less', '#customCSS-holder');
+			initACE('customCSS', 'scss', '#customCSS-holder');
 			initACE('customJS', 'javascript', '#customJS-holder');
 			initACE('customHTML', 'html', '#customHTML-holder');
 
diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js
index ea1336bd36..eb3574206d 100644
--- a/public/src/admin/appearance/skins.js
+++ b/public/src/admin/appearance/skins.js
@@ -8,7 +8,7 @@ define('admin/appearance/skins', ['translator', 'alerts'], function (translator,
 		// Populate skins from Bootswatch API
 		$.ajax({
 			method: 'get',
-			url: 'https://bootswatch.com/api/3.json',
+			url: 'https://bootswatch.com/api/5.json',
 		}).done(Skins.render);
 
 		$('#skins').on('click', function (e) {
@@ -69,12 +69,11 @@ define('admin/appearance/skins', ['translator', 'alerts'], function (translator,
 		}, function (html) {
 			themeContainer.html(html);
 
-			if (config['theme:src']) {
-				const skin = config['theme:src']
-					.match(/latest\/(\S+)\/bootstrap.min.css/)[1]
-					.replace(/(^|\s)([a-z])/g, function (m, p1, p2) { return p1 + p2.toUpperCase(); });
-
-				highlightSelectedTheme(skin);
+			if (app.config.bootswatchSkin) {
+				const skin = app.config.bootswatchSkin;
+				highlightSelectedTheme(
+					skin.charAt(0).toUpperCase() + skin.slice(1)
+				);
 			}
 		});
 	};
diff --git a/public/src/admin/dashboard.js b/public/src/admin/dashboard.js
index 43897e8c14..d8bdd5386d 100644
--- a/public/src/admin/dashboard.js
+++ b/public/src/admin/dashboard.js
@@ -43,7 +43,9 @@ define('admin/dashboard', [
 
 		isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
 
-		$('[data-toggle="tooltip"]').tooltip();
+		$('[data-bs-toggle="tooltip"]').tooltip({
+			animation: false,
+		});
 
 		setupRealtimeButton();
 		setupGraphs(function () {
@@ -64,19 +66,19 @@ define('admin/dashboard', [
 
 		graphData.rooms = data;
 
-		const html = '<div class="text-center pull-left">' +
+		const html = '<div class="text-center float-start">' +
 						'<span class="formatted-number">' + data.onlineRegisteredCount + '</span>' +
 						'<div class="stat">[[admin/dashboard:active-users.users]]</div>' +
 					'</div>' +
-					'<div class="text-center pull-left">' +
+					'<div class="text-center float-start">' +
 						'<span class="formatted-number">' + data.onlineGuestCount + '</span>' +
 						'<div class="stat">[[admin/dashboard:active-users.guests]]</div>' +
 					'</div>' +
-					'<div class="text-center pull-left">' +
+					'<div class="text-center float-start">' +
 						'<span class="formatted-number">' + (data.onlineRegisteredCount + data.onlineGuestCount) + '</span>' +
 						'<div class="stat">[[admin/dashboard:active-users.total]]</div>' +
 					'</div>' +
-					'<div class="text-center pull-left">' +
+					'<div class="text-center float-start">' +
 						'<span class="formatted-number">' + data.socketCount + '</span>' +
 						'<div class="stat">[[admin/dashboard:active-users.connections]]</div>' +
 					'</div>';
diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js
index 7067133826..6cd34a26d3 100644
--- a/public/src/admin/extend/plugins.js
+++ b/public/src/admin/extend/plugins.js
@@ -21,6 +21,10 @@ define('admin/extend/plugins', [
 			return;
 		}
 
+		if (window.location.hash) {
+			$(`.nav-pills button[data-bs-target="${window.location.hash}"]`).trigger('click');
+		}
+
 		const searchInputEl = document.querySelector('#plugin-search');
 		searchInputEl.value = '';
 
@@ -191,7 +195,7 @@ define('admin/extend/plugins', [
 				}
 				let html = '';
 				activePlugins.forEach(function (plugin) {
-					html += '<li class="">' + plugin + '<span class="pull-right"><i class="fa fa-chevron-up"></i><i class="fa fa-chevron-down"></i></span></li>';
+					html += '<li class="">' + plugin + '<span class="float-end"><i class="fa fa-chevron-up"></i><i class="fa fa-chevron-down"></i></span></li>';
 				});
 				if (!activePlugins.length) {
 					translator.translate('[[admin/extend/plugins:none-active]]', function (text) {
@@ -244,7 +248,6 @@ define('admin/extend/plugins', [
 
 		populateUpgradeablePlugins();
 		populateActivePlugins();
-		searchInputEl.focus();
 	};
 
 	function confirmInstall(pluginID, callback) {
diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js
index 698f89b032..900ff3549a 100644
--- a/public/src/admin/extend/rewards.js
+++ b/public/src/admin/extend/rewards.js
@@ -169,16 +169,21 @@ define('admin/extend/rewards', ['alerts'], function (alerts) {
 
 		socket.emit('admin.rewards.save', activeRewards, function (err, result) {
 			if (err) {
-				alerts.error(err);
-			} else {
-				alerts.success('[[admin/extend/rewards:alert.save-success]]');
-				// newly added rewards are missing data-id, update to prevent rewards getting duplicated
-				$('#active li').each(function (index) {
-					if (!$(this).attr('data-id')) {
-						$(this).attr('data-id', result[index].id);
-					}
-				});
+				return alerts.error(err);
 			}
+
+			const saveBtn = document.getElementById('save');
+			saveBtn.classList.toggle('saved', true);
+			setTimeout(() => {
+				saveBtn.classList.toggle('saved', false);
+			}, 5000);
+
+			// newly added rewards are missing data-id, update to prevent rewards getting duplicated
+			$('#active li').each(function (index) {
+				if (!$(this).attr('data-id')) {
+					$(this).attr('data-id', result[index].id);
+				}
+			});
 		});
 	}
 
diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js
index 029bdc4a85..2f608b3620 100644
--- a/public/src/admin/extend/widgets.js
+++ b/public/src/admin/extend/widgets.js
@@ -12,13 +12,13 @@ define('admin/extend/widgets', [
 	const Widgets = {};
 
 	Widgets.init = function () {
-		$('#widgets .nav-pills .dropdown-menu a').on('click', function (ev) {
+		$('#widgets .dropdown .dropdown-menu a').on('click', function (ev) {
 			const $this = $(this);
 			$('#widgets .tab-pane').removeClass('active');
 			const templateName = $this.attr('data-template');
 			$('#widgets .tab-pane[data-template="' + templateName + '"]').addClass('active');
 			$('#widgets .selected-template').text(templateName);
-			$('#widgets .nav-pills .dropdown').trigger('click');
+			$('#widgets .dropdown').trigger('click');
 			ev.preventDefault();
 			return false;
 		});
@@ -73,9 +73,9 @@ define('admin/extend/widgets', [
 					panel.remove();
 				}
 			});
-		}).on('mouseup', '> .panel > .panel-heading', function (evt) {
+		}).on('mouseup', '> .card > .card-header', function (evt) {
 			if (!($(this).parent().is('.ui-sortable-helper') || $(evt.target).closest('.delete-widget').length)) {
-				$(this).parent().children('.panel-body').toggleClass('hidden');
+				$(this).parent().children('.card-body').toggleClass('hidden');
 			}
 		});
 
@@ -127,16 +127,14 @@ define('admin/extend/widgets', [
 
 			socket.emit('admin.widgets.set', saveData, function (err) {
 				if (err) {
-					alerts.error(err);
+					return alerts.error(err);
 				}
 
-				alerts.alert({
-					alert_id: 'admin:widgets',
-					type: 'success',
-					title: '[[admin/extend/widgets:alert.updated]]',
-					message: '[[admin/extend/widgets:alert.update-success]]',
-					timeout: 2500,
-				});
+				const saveBtn = document.getElementById('save');
+				saveBtn.classList.toggle('saved', true);
+				setTimeout(() => {
+					saveBtn.classList.toggle('saved', false);
+				}, 5000);
 			});
 		}
 
@@ -176,13 +174,13 @@ define('admin/extend/widgets', [
 					drop: function (event, ui) {
 						const el = $(this);
 
-						el.find('.panel-body .container-html').val(ui.draggable.attr('data-container-html'));
-						el.find('.panel-body').removeClass('hidden');
+						el.find('.card-body .container-html').val(ui.draggable.attr('data-container-html'));
+						el.find('.card-body').removeClass('hidden');
 					},
-					hoverClass: 'panel-info',
+					hoverClass: 'container-hover',
 				})
-				.children('.panel-heading')
-				.append('<div class="pull-right pointer"><span class="delete-widget"><i class="fa fa-times-circle"></i></span></div><div class="pull-left pointer"><span class="toggle-widget"><i class="fa fa-chevron-circle-down"></i></span>&nbsp;</div>')
+				.children('.card-header')
+				.append('<div class="float-end pointer"><span class="delete-widget"><i class="fa fa-times-circle"></i></span></div><div class="float-start pointer"><span class="toggle-widget"><i class="fa fa-chevron-circle-down"></i></span>&nbsp;</div>')
 				.children('small')
 				.html('');
 		}
@@ -191,7 +189,7 @@ define('admin/extend/widgets', [
 	function loadWidgetData() {
 		function populateWidget(widget, data) {
 			if (data.title) {
-				const title = widget.find('.panel-heading strong');
+				const title = widget.find('.card-header strong');
 				title.text(title.text() + ' - ' + data.title);
 			}
 
diff --git a/public/src/admin/manage/admins-mods.js b/public/src/admin/manage/admins-mods.js
index 1f7ff012e2..ab873b7251 100644
--- a/public/src/admin/manage/admins-mods.js
+++ b/public/src/admin/manage/admins-mods.js
@@ -114,7 +114,7 @@ define('admin/manage/admins-mods', [
 
 			bootbox.confirm('[[admin/manage/users:alerts.confirm-remove-moderator]]', function (confirm) {
 				if (confirm) {
-					api.delete(`/categories/${cid}/moderator/${uid}`, {}, function (err) {
+					api.del(`/categories/${cid}/moderator/${uid}`, {}, function (err) {
 						if (err) {
 							return alerts.error(err);
 						}
diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js
index d00c8f737a..25479a0879 100644
--- a/public/src/admin/manage/categories.js
+++ b/public/src/admin/manage/categories.js
@@ -51,7 +51,7 @@ define('admin/manage/categories', [
 			const order = $(this).attr('data-order');
 			const modal = bootbox.dialog({
 				title: '[[admin/manage/categories:set-order]]',
-				message: '<input type="number" min="1" class="form-control input-lg" value=' + order + ' /><p class="help-block">[[admin/manage/categories:set-order-help]]</p>',
+				message: '<input type="number" min="1" class="form-control input-lg" value=' + order + ' /><p class="form-text">[[admin/manage/categories:set-order-help]]</p>',
 				show: true,
 				buttons: {
 					save: {
diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js
index 13a2e6a18b..065c1dcaeb 100644
--- a/public/src/admin/manage/category.js
+++ b/public/src/admin/manage/category.js
@@ -8,7 +8,8 @@ define('admin/manage/category', [
 	'api',
 	'bootbox',
 	'alerts',
-], function (uploader, iconSelect, categorySelector, Benchpress, api, bootbox, alerts) {
+	'admin/settings',
+], function (uploader, iconSelect, categorySelector, Benchpress, api, bootbox, alerts, settings) {
 	const Category = {};
 	let updateHash = {};
 
@@ -54,14 +55,9 @@ define('admin/manage/category', [
 			}
 
 			const cid = ajaxify.data.category.cid;
-			api.put('/categories/' + cid, updateHash).then((res) => {
+			api.put('/categories/' + cid, updateHash).then(() => {
 				app.flags._unsaved = false;
-				alerts.alert({
-					title: 'Updated Categories',
-					message: 'Category "' + res.name + '" was successfully updated.',
-					type: 'success',
-					timeout: 5000,
-				});
+				settings.toggleSaveSuccess($('#save'));
 				updateHash = {};
 			}).catch(alerts.error);
 
@@ -266,6 +262,7 @@ define('admin/manage/category', [
 	function handleTags() {
 		const tagEl = $('#tag-whitelist');
 		tagEl.tagsinput({
+			tagClass: 'badge bg-info',
 			confirmKeys: [13, 44],
 			trimValue: true,
 		});
diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js
index 82b5734c5e..4c73451a37 100644
--- a/public/src/admin/manage/group.js
+++ b/public/src/admin/manage/group.js
@@ -10,7 +10,11 @@ define('admin/manage/group', [
 	'api',
 	'bootbox',
 	'alerts',
-], function (memberList, iconSelect, translator, categorySelector, groupSearch, slugify, api, bootbox, alerts) {
+	'admin/settings',
+], function (
+	memberList, iconSelect, translator, categorySelector, groupSearch,
+	slugify, api, bootbox, alerts, settings
+) {
 	const Groups = {};
 
 	Groups.init = function () {
@@ -104,8 +108,7 @@ define('admin/manage/group', [
 				if (groupName !== newName) {
 					ajaxify.go('admin/manage/groups/' + encodeURIComponent(newName), undefined, true);
 				}
-
-				alerts.success('[[admin/manage/groups:edit.save-success]]');
+				settings.toggleSaveSuccess($('#save'));
 			}).catch(alerts.error);
 			return false;
 		});
diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js
index 28b00a00da..11b079ac3b 100644
--- a/public/src/admin/manage/groups.js
+++ b/public/src/admin/manage/groups.js
@@ -10,48 +10,10 @@ define('admin/manage/groups', [
 	const Groups = {};
 
 	Groups.init = function () {
-		const createModal = $('#create-modal');
-		const createGroupName = $('#create-group-name');
-		const createModalGo = $('#create-modal-go');
-		const createModalError = $('#create-modal-error');
+		handleCreate();
 
 		handleSearch();
 
-		createModal.on('keypress', function (e) {
-			if (e.keyCode === 13) {
-				createModalGo.click();
-			}
-		});
-
-		$('#create').on('click', function () {
-			createModal.modal('show');
-			setTimeout(function () {
-				createGroupName.focus();
-			}, 250);
-		});
-
-		createModalGo.on('click', function () {
-			const submitObj = {
-				name: createGroupName.val(),
-				description: $('#create-group-desc').val(),
-				private: $('#create-group-private').is(':checked') ? 1 : 0,
-				hidden: $('#create-group-hidden').is(':checked') ? 1 : 0,
-			};
-
-			api.post('/groups', submitObj).then((response) => {
-				createModalError.addClass('hide');
-				createGroupName.val('');
-				createModal.on('hidden.bs.modal', function () {
-					ajaxify.go('admin/manage/groups/' + response.name);
-				});
-				createModal.modal('hide');
-			}).catch((err) => {
-				if (!utils.hasLanguageKey(err.status.message)) {
-					err.status.message = '[[admin/manage/groups:alerts.create-failure]]';
-				}
-				createModalError.translateHtml(err.status.message).removeClass('hide');
-			});
-		});
 
 		$('.groups-list').on('click', '[data-action]', function () {
 			const el = $(this);
@@ -84,6 +46,54 @@ define('admin/manage/groups', [
 		});
 	}
 
+	function handleCreate() {
+		$('#create').on('click', function () {
+			app.parseAndTranslate('admin/partials/create_group_modal', {}).then((html) => {
+				html.modal('show');
+
+				html.on('shown.bs.modal', function () {
+					const createModal = $('#create-modal');
+					const createGroupName = $('#create-group-name');
+					const createModalGo = $('#create-modal-go');
+					const createModalError = $('#create-modal-error');
+
+					createGroupName.trigger('focus');
+					createModal.on('keypress', function (e) {
+						if (e.key === 'Enter') {
+							createModalGo.trigger('click');
+						}
+					});
+					html.on('hidden.bs.modal', function () {
+						html.modal('hide');
+						createModal.remove();
+					});
+					createModalGo.on('click', function () {
+						const submitObj = {
+							name: createGroupName.val(),
+							description: $('#create-group-desc').val(),
+							private: $('#create-group-private').is(':checked') ? 1 : 0,
+							hidden: $('#create-group-hidden').is(':checked') ? 1 : 0,
+						};
+
+						api.post('/groups', submitObj).then((response) => {
+							createModalError.addClass('hide');
+							createGroupName.val('');
+							createModal.on('hidden.bs.modal', function () {
+								ajaxify.go('admin/manage/groups/' + response.name);
+							});
+							createModal.modal('hide');
+						}).catch((err) => {
+							if (!utils.hasLanguageKey(err.status.message)) {
+								err.status.message = '[[admin/manage/groups:alerts.create-failure]]';
+							}
+							createModalError.translateHtml(err.status.message).removeClass('hide');
+						});
+					});
+				});
+			});
+		});
+	}
+
 	function handleSearch() {
 		const queryEl = $('#group-search');
 
diff --git a/public/src/admin/manage/privileges.js b/public/src/admin/manage/privileges.js
index aca65c513b..3e3a0a9b8d 100644
--- a/public/src/admin/manage/privileges.js
+++ b/public/src/admin/manage/privileges.js
@@ -9,7 +9,11 @@ define('admin/manage/privileges', [
 	'categorySelector',
 	'mousetrap',
 	'admin/modules/checkboxRowSelector',
-], function (api, autocomplete, bootbox, alerts, translator, categorySelector, mousetrap, checkboxRowSelector) {
+	'admin/settings',
+], function (
+	api, autocomplete, bootbox, alerts, translator,
+	categorySelector, mousetrap, checkboxRowSelector, settings
+) {
 	const Privileges = {};
 
 	let cid;
@@ -36,13 +40,14 @@ define('admin/manage/privileges', [
 		Privileges.setupPrivilegeTable();
 
 		highlightRow();
-		$('.privilege-filters button:last-child').click();
+		$('.privilege-filters button:first-child').click();
 	};
 
 	Privileges.setupPrivilegeTable = function () {
 		$('.privilege-table-container').on('change', 'input[type="checkbox"]:not(.checkbox-helper)', function () {
+			const checkboxEl = this;
 			const $checkboxEl = $(this);
-			const $wrapperEl = $checkboxEl.parent();
+			const $wrapperEl = $checkboxEl.parents('[data-privilege]');
 			const columnNo = $wrapperEl.index() + 1;
 			const privilege = $wrapperEl.attr('data-privilege');
 			const state = $checkboxEl.prop('checked');
@@ -59,6 +64,7 @@ define('admin/manage/privileges', [
 					bootbox.confirm('[[admin/manage/privileges:alert.confirm-moderate]]', function (confirm) {
 						if (confirm) {
 							$wrapperEl.attr('data-delta', delta);
+							Privileges.applyDeltaState(checkboxEl, delta);
 							Privileges.exposeSingleAssumedPriv(columnNo, sourceGroupName);
 						} else {
 							$checkboxEl.prop('checked', !$checkboxEl.prop('checked'));
@@ -68,6 +74,7 @@ define('admin/manage/privileges', [
 					bootbox.confirm('[[admin/manage/privileges:alert.confirm-admins-mods]]', function (confirm) {
 						if (confirm) {
 							$wrapperEl.attr('data-delta', delta);
+							Privileges.applyDeltaState(checkboxEl, delta);
 							Privileges.exposeSingleAssumedPriv(columnNo, sourceGroupName);
 						} else {
 							$checkboxEl.prop('checked', !$checkboxEl.prop('checked'));
@@ -75,6 +82,7 @@ define('admin/manage/privileges', [
 					});
 				} else {
 					$wrapperEl.attr('data-delta', delta);
+					Privileges.applyDeltaState(checkboxEl, delta);
 					Privileges.exposeSingleAssumedPriv(columnNo, sourceGroupName);
 				}
 				checkboxRowSelector.updateState($checkboxEl);
@@ -88,6 +96,15 @@ define('admin/manage/privileges', [
 		Privileges.addEvents(); // events with confirmation modals
 	};
 
+	Privileges.applyDeltaState = (checkboxEl, delta) => {
+		['bg-success', 'bg-opacity-75', 'border-success'].forEach((className) => {
+			checkboxEl.classList.toggle(className, delta === true);
+		});
+		['bg-danger', 'bg-opacity-50', 'border-danger'].forEach((className) => {
+			checkboxEl.classList.toggle(className, delta === false);
+		});
+	};
+
 	Privileges.addEvents = function () {
 		document.getElementById('save').addEventListener('click', function () {
 			throwConfirmModal('save', Privileges.commit);
@@ -133,7 +150,7 @@ define('admin/manage/privileges', [
 			throwConfirmModal('copyToAllGroup', Privileges.copyPrivilegesToAllCategories.bind(null, cid, groupName));
 		});
 
-		$privTableCon.on('click', '.privilege-filters > button', filterPrivileges);
+		$privTableCon.on('click', '.privilege-filters button', filterPrivileges);
 
 		mousetrap.bind('ctrl+s', function (ev) {
 			throwConfirmModal('save', Privileges.commit);
@@ -170,7 +187,7 @@ define('admin/manage/privileges', [
 					alerts.error(result.reason);
 				});
 			} else {
-				alerts.success('[[admin/manage/privileges:alert.saved]]');
+				settings.toggleSaveSuccess($('#save'));
 			}
 		});
 	};
@@ -191,9 +208,7 @@ define('admin/manage/privileges', [
 				$('.privilege-table-container').html(html);
 				Privileges.exposeAssumedPrivileges();
 				document.querySelectorAll('.privilege-filters').forEach((con, i) => {
-					// Three buttons, placed in reverse order
-					const lastIdx = $('.privilege-filters').first().find('button').length - 1;
-					const idx = btnIndices[i] === undefined ? lastIdx : btnIndices[i];
+					const idx = btnIndices[i] === undefined ? 0 : btnIndices[i];
 					con.querySelectorAll('button')[idx].click();
 				});
 
@@ -234,7 +249,7 @@ define('admin/manage/privileges', [
 		applyPrivilegesToColumn(inputSelectorFn, sourceChecked);
 	};
 
-	Privileges.setPrivilege = (member, privilege, state) => api[state ? 'put' : 'delete'](`/categories/${isNaN(cid) ? 0 : cid}/privileges/${encodeURIComponent(privilege)}`, { member });
+	Privileges.setPrivilege = (member, privilege, state) => api[state ? 'put' : 'del'](`/categories/${isNaN(cid) ? 0 : cid}/privileges/${encodeURIComponent(privilege)}`, { member });
 
 	Privileges.addUserToPrivilegeTable = function () {
 		const modal = bootbox.dialog({
@@ -330,7 +345,7 @@ define('admin/manage/privileges', [
 	function getPrivilegesFromRow(sourceGroupName) {
 		const privs = [];
 		$(`.privilege-table tr[data-group-name="${sourceGroupName}"] td input[type="checkbox"]:not(.checkbox-helper)`)
-			.parent()
+			.parents('[data-privilege]')
 			.each(function (idx, el) {
 				if ($(el).find('input').prop('checked')) {
 					privs.push(el.getAttribute('data-privilege'));
diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js
index 5111eab7fc..ea6ab15c59 100644
--- a/public/src/admin/manage/tags.js
+++ b/public/src/admin/manage/tags.js
@@ -54,20 +54,27 @@ define('admin/manage/tags', [
 
 	function handleSearch() {
 		$('#tag-search').on('input propertychange', utils.debounce(function () {
-			socket.emit('topics.searchAndLoadTags', {
-				query: $('#tag-search').val(),
-			}, function (err, result) {
-				if (err) {
-					return alerts.error(err);
-				}
-
+			function renderTags(tags) {
 				app.parseAndTranslate('admin/manage/tags', 'tags', {
-					tags: result.tags,
+					tags: tags,
 				}, function (html) {
 					$('.tag-list').html(html);
 					utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
 					selectable.enable('.tag-management', '.tag-row');
 				});
+			}
+			const query = $('#tag-search').val();
+			if (!query) {
+				return renderTags(ajaxify.data.tags);
+			}
+			socket.emit('topics.searchAndLoadTags', {
+				query: query,
+			}, function (err, result) {
+				if (err) {
+					return alerts.error(err);
+				}
+
+				renderTags(result.tags);
 			});
 		}, 250));
 	}
diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js
index cf2acb75f5..811c6a00d7 100644
--- a/public/src/admin/manage/users.js
+++ b/public/src/admin/manage/users.js
@@ -166,7 +166,7 @@ define('admin/manage/users', [
 				return false; // specifically to keep the menu open
 			}
 
-			Benchpress.render('admin/partials/temporary-ban', {}).then(function (html) {
+			Benchpress.render('modals/temporary-ban', {}).then(function (html) {
 				bootbox.dialog({
 					className: 'ban-modal',
 					title: '[[user:ban_account]]',
diff --git a/public/src/admin/modules/colorpicker.js b/public/src/admin/modules/colorpicker.js
deleted file mode 100644
index 3b64164647..0000000000
--- a/public/src/admin/modules/colorpicker.js
+++ /dev/null
@@ -1,31 +0,0 @@
-'use strict';
-
-// TODO: no longer used remove in 1.19.0
-define('admin/modules/colorpicker', function () {
-	const colorpicker = {};
-
-	colorpicker.enable = function (inputEl, callback) {
-		(inputEl instanceof jQuery ? inputEl : $(inputEl)).each(function () {
-			const $this = $(this);
-
-			$this.ColorPicker({
-				color: $this.val() || '#000',
-				onChange: function (hsb, hex) {
-					$this.val('#' + hex);
-					if (typeof callback === 'function') {
-						callback(hsb, hex);
-					}
-				},
-				onShow: function (colpkr) {
-					$(colpkr).css('z-index', 1051);
-				},
-			});
-
-			$(window).one('action:ajaxify.start', function () {
-				$this.ColorPickerHide();
-			});
-		});
-	};
-
-	return colorpicker;
-});
diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js
index ddf0eedaf7..16fe21a26d 100644
--- a/public/src/admin/modules/search.js
+++ b/public/src/admin/modules/search.js
@@ -33,7 +33,7 @@ define('admin/modules/search', ['mousetrap', 'alerts'], function (mousetrap, ale
 			);
 
 			return '<li role="presentation" class="result">' +
-				'<a role= "menuitem" href= "' + config.relative_path + '/' + namespace + '" >' +
+				'<a class="dropdown-item" role="menuitem" href= "' + config.relative_path + '/' + namespace + '" >' +
 					title +
 					'<br>' + (!results ? '' :
 				('<small><code>' +
diff --git a/public/src/admin/settings.js b/public/src/admin/settings.js
index 3c271657d2..26a2f53545 100644
--- a/public/src/admin/settings.js
+++ b/public/src/admin/settings.js
@@ -52,7 +52,6 @@ define('admin/settings', ['uploader', 'mousetrap', 'hooks', 'alerts', 'settings'
 				if (field.is('input') && inputType === 'checkbox') {
 					const checked = parseInt(app.config[key], 10) === 1;
 					field.prop('checked', checked);
-					field.parents('.mdl-switch').toggleClass('is-checked', checked);
 				} else if (field.is('textarea') || field.is('select') || (field.is('input') && defaultInputs.indexOf(inputType) !== -1)) {
 					field.val(app.config[key]);
 				}
@@ -83,15 +82,7 @@ define('admin/settings', ['uploader', 'mousetrap', 'hooks', 'alerts', 'settings'
 				}
 
 				app.flags._unsaved = false;
-
-				alerts.alert({
-					alert_id: 'config_status',
-					timeout: 2500,
-					title: '[[admin/admin:changes-saved]]',
-					message: '[[admin/admin:changes-saved-message]]',
-					type: 'success',
-				});
-
+				Settings.toggleSaveSuccess(saveBtn);
 				hooks.fire('action:admin.settingsSaved');
 			});
 		});
@@ -120,6 +111,16 @@ define('admin/settings', ['uploader', 'mousetrap', 'hooks', 'alerts', 'settings'
 		}, 0);
 	};
 
+	Settings.toggleSaveSuccess = function (saveBtn) {
+		const saveBtnEl = saveBtn.get(0);
+		if (saveBtnEl) {
+			saveBtnEl.classList.toggle('saved', true);
+			setTimeout(() => {
+				saveBtnEl.classList.toggle('saved', false);
+			}, 5000);
+		}
+	};
+
 	function handleUploads() {
 		$('#content input[data-action="upload"]').each(function () {
 			const uploadBtn = $(this);
@@ -140,6 +141,7 @@ define('admin/settings', ['uploader', 'mousetrap', 'hooks', 'alerts', 'settings'
 
 	function setupTagsInput() {
 		$('[data-field-type="tagsinput"]').tagsinput({
+			tagClass: 'badge bg-info',
 			confirmKeys: [13, 44],
 			trimValue: true,
 		});
diff --git a/public/src/admin/settings/api.js b/public/src/admin/settings/api.js
index 52734bdaef..ba3667e40e 100644
--- a/public/src/admin/settings/api.js
+++ b/public/src/admin/settings/api.js
@@ -7,6 +7,26 @@ define('admin/settings/api', ['settings', 'alerts', 'hooks'], function (settings
 		settings.load('core.api', $('.core-api-settings'));
 		$('#save').on('click', saveSettings);
 
+		hooks.on('filter:settings.sorted-list.loadItem', ({ item }) => {
+			if (!ajaxify.data.lastSeen[item.token]) {
+				item.lastSeen = '[[admin/settings/api:last-seen-never]]';
+				return { item };
+			}
+
+			const cutoffMs = 1000 * 60 * 60 * 24 * Math.max(0, parseInt(config.timeagoCutoff, 10));
+			let translationSuffix = 'ago';
+			if (cutoffMs > 0 && Date.now() - ajaxify.data.lastSeen[item.token] > cutoffMs) {
+				translationSuffix = 'on';
+			}
+			item.lastSeen = `[[admin/settings/api:last-seen-${translationSuffix}, ${ajaxify.data.lastSeenISO[item.token]}]]`;
+
+			return { item };
+		});
+
+		hooks.on('action:settings.sorted-list.loaded', ({ listEl }) => {
+			$(listEl).find('.timeago').timeago();
+		});
+
 		hooks.on('action:settings.sorted-list.itemLoaded', ({ element }) => {
 			element.addEventListener('click', (ev) => {
 				if (ev.target.closest('input[readonly]')) {
diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js
index c1b3ee33b5..d514f2a482 100644
--- a/public/src/admin/settings/email.js
+++ b/public/src/admin/settings/email.js
@@ -125,7 +125,6 @@ define('admin/settings/email', ['ace/ace', 'alerts', 'admin/settings'], function
 			const enabledEl = document.getElementById('email:smtpTransport:enabled');
 			if (enabledEl) {
 				if (!enabledEl.checked) {
-					$('label[for="email:smtpTransport:enabled"]').toggleClass('is-checked', true);
 					enabledEl.checked = true;
 					alerts.alert({
 						message: '[[admin/settings/email:smtp-transport.auto-enable-toast]]',
diff --git a/public/src/admin/settings/navigation.js b/public/src/admin/settings/navigation.js
index fe54beb2a4..6ae9fa1918 100644
--- a/public/src/admin/settings/navigation.js
+++ b/public/src/admin/settings/navigation.js
@@ -55,16 +55,20 @@ define('admin/settings/navigation', [
 
 	function onSelect() {
 		const clickedIndex = $(this).attr('data-index');
+		selectIndex(clickedIndex);
+		return false;
+	}
+
+	function selectIndex(index) {
 		$('#active-navigation li').removeClass('active');
-		$(this).addClass('active');
+		$('#active-navigation [data-index="' + index + '"]').addClass('active');
 
-		const detailsForm = $('#enabled').children('[data-index="' + clickedIndex + '"]');
+		const detailsForm = $('#enabled').children('[data-index="' + index + '"]');
 		$('#enabled li').addClass('hidden');
 
 		if (detailsForm.length) {
 			detailsForm.removeClass('hidden');
 		}
-		return false;
 	}
 
 	function drop(ev, ui) {
@@ -80,20 +84,32 @@ define('admin/settings/navigation', [
 		data.title = translator.escape(data.title);
 		data.text = translator.escape(data.text);
 		data.groups = ajaxify.data.groups;
-		Benchpress.parse('admin/settings/navigation', 'navigation', { navigation: [data] }, function (li) {
-			translator.translate(li, function (li) {
-				li = $(translator.unescape(li));
-				el.after(li);
-				el.remove();
+
+		const renderNav = new Promise((resolve) => {
+			Benchpress.parse('admin/settings/navigation', 'navigation', { navigation: [data] }, function (li) {
+				translator.translate(li, function (li) {
+					li = $(translator.unescape(li));
+					el.after(li);
+					el.remove();
+					resolve();
+				});
 			});
 		});
-		Benchpress.parse('admin/settings/navigation', 'enabled', { enabled: [data] }, function (li) {
-			translator.translate(li, function (li) {
-				li = $(translator.unescape(li));
-				$('#enabled').append(li);
-				componentHandler.upgradeDom();
+		const renderForm = new Promise((resolve) => {
+			Benchpress.parse('admin/settings/navigation', 'enabled', { enabled: [data] }, function (li) {
+				translator.translate(li, function (li) {
+					li = $(translator.unescape(li));
+					$('#enabled').append(li);
+					componentHandler.upgradeDom();
+					resolve();
+				});
 			});
 		});
+
+		Promise.all([
+			renderNav,
+			renderForm,
+		]).then(() => selectIndex(data.index));
 	}
 
 	function save() {
@@ -129,7 +145,11 @@ define('admin/settings/navigation', [
 			if (err) {
 				alerts.error(err);
 			} else {
-				alerts.success('Successfully saved navigation');
+				const saveBtn = document.getElementById('save');
+				saveBtn.classList.toggle('saved', true);
+				setTimeout(() => {
+					saveBtn.classList.toggle('saved', false);
+				}, 5000);
 			}
 		});
 	}
diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js
index d7fcac6eb5..882013e189 100644
--- a/public/src/ajaxify.js
+++ b/public/src/ajaxify.js
@@ -14,7 +14,11 @@ ajaxify.widgets = { render: render };
 
 	ajaxify.count = 0;
 	ajaxify.currentPage = null;
-
+	// disables scroll to top when back button is clicked
+	// https://developer.chrome.com/blog/history-api-scroll-restoration/
+	if ('scrollRestoration' in history) {
+		history.scrollRestoration = 'manual';
+	}
 	ajaxify.go = function (url, callback, quiet) {
 		// Automatically reconnect to socket and re-ajaxify on success
 		if (!socket.connected) {
@@ -297,6 +301,13 @@ ajaxify.widgets = { render: render };
 		// Scroll back to top of page
 		if (!ajaxify.isCold()) {
 			window.scrollTo(0, 0);
+			// if on topic page, scroll to the correct post,
+			// this is here to avoid a flash of the wrong posts at the top of the page
+			if (ajaxify.data.template.topic && ajaxify.data.postIndex > 1) {
+				require(['navigator'], function (navigator) {
+					navigator.scrollToPostIndex(ajaxify.data.postIndex - 1, true, 0);
+				});
+			}
 		}
 		ajaxify.loadScript(tpl_url, function done() {
 			hooks.fire('action:ajaxify.end', { url: url, tpl_url: tpl_url, title: ajaxify.data.title });
@@ -460,7 +471,7 @@ ajaxify.widgets = { render: render };
 		hooks.fire('action:ajaxify.cleanup', { url, tpl_url });
 	};
 
-	require(['translator', 'benchpress'], function (translator, Benchpress) {
+	require(['translator', 'benchpress', 'navigator'], function (translator, Benchpress) {
 		translator.translate('[[error:no-connection]]');
 		translator.translate('[[error:socket-reconnect-failed]]');
 		translator.translate(`[[global:reconnecting-message, ${config.siteTitle}]]`);
diff --git a/public/src/app.js b/public/src/app.js
index c116765a6b..295555f19f 100644
--- a/public/src/app.js
+++ b/public/src/app.js
@@ -10,6 +10,7 @@ window.utils = require('./utils');
 require('timeago');
 
 const Benchpress = require('benchpressjs');
+
 Benchpress.setGlobal('config', config);
 
 require('./sockets');
@@ -21,7 +22,7 @@ app = window.app || {};
 Object.defineProperty(app, 'isFocused', {
 	get() {
 		return document.visibilityState === 'visible';
-	}
+	},
 });
 app.currentRoom = null;
 app.widgets = {};
@@ -148,41 +149,6 @@ if (document.readyState === 'loading') {
 		}
 		const result = await Promise.all(modules.map(requireModule));
 		return single ? result.pop() : result;
-	}
-
-	app.logout = function (redirect) {
-		console.warn('[deprecated] app.logout is deprecated, please use logout module directly');
-		require(['logout'], function (logout) {
-			logout(redirect);
-		});
-	};
-
-	app.alert = function (params) {
-		console.warn('[deprecated] app.alert is deprecated, please use alerts.alert');
-		require(['alerts'], function (alerts) {
-			alerts.alert(params);
-		});
-	};
-
-	app.removeAlert = function (id) {
-		console.warn('[deprecated] app.removeAlert is deprecated, please use alerts.remove');
-		require(['alerts'], function (alerts) {
-			alerts.remove(id);
-		});
-	};
-
-	app.alertSuccess = function (message, timeout) {
-		console.warn('[deprecated] app.alertSuccess is deprecated, please use alerts.success');
-		require(['alerts'], function (alerts) {
-			alerts.success(message, timeout);
-		});
-	};
-
-	app.alertError = function (message, timeout) {
-		console.warn('[deprecated] app.alertError is deprecated, please use alerts.error');
-		require(['alerts'], function (alerts) {
-			alerts.error(message, timeout);
-		});
 	};
 
 	app.enterRoom = function (room, callback) {
@@ -223,36 +189,43 @@ if (document.readyState === 'loading') {
 	};
 
 	function highlightNavigationLink() {
+		const pageParams = utils.params();
+		function queryMatch(search) {
+			const mySearchParams = new URLSearchParams(search);
+			// eslint-disable-next-line no-restricted-syntax
+			for (const [key, value] of mySearchParams) {
+				if (pageParams[key] === value) {
+					return true;
+				}
+			}
+			return false;
+		}
 		$('#main-nav li')
-			.removeClass('active')
 			.find('a')
+			.removeClass('active')
 			.filter(function (i, a) {
-				return $(a).attr('href') !== '#' && window.location.hostname === a.hostname &&
+				const hasHref = $(a).attr('href') !== '#';
+				const removeByQueryString = a.search && hasHref && !queryMatch(a.search);
+				return hasHref && window.location.hostname === a.hostname &&
+					!removeByQueryString &&
 					(
 						window.location.pathname === a.pathname ||
 						window.location.pathname.startsWith(a.pathname + '/')
 					);
 			})
-			.parent()
 			.addClass('active');
 	}
 
 	app.createUserTooltips = function (els, placement) {
-		if (isTouchDevice) {
-			return;
-		}
-		els = els || $('body');
-		els.find('.avatar,img[title].teaser-pic,img[title].user-img,div.user-icon,span.user-icon').one('mouseenter', function (ev) {
-			const $this = $(this);
-			// perf: create tooltips on demand
-			$this.tooltip({
-				placement: placement || $this.attr('title-placement') || 'top',
-				title: $this.attr('title'),
+		if (!isTouchDevice) {
+			els = els || $('body');
+			els.tooltip({
+				selector: '.avatar.avatar-tooltip',
+				placement: placement || 'top',
 				container: '#content',
+				animation: false,
 			});
-			// this will cause the tooltip to show up
-			$this.trigger(ev);
-		});
+		}
 	};
 
 	app.createStatusTooltips = function () {
@@ -260,6 +233,18 @@ if (document.readyState === 'loading') {
 			$('body').tooltip({
 				selector: '.fa-circle.status',
 				placement: 'top',
+				container: '#content',
+				animation: false,
+			});
+
+			$('#content').on('inserted.bs.tooltip', function (ev) {
+				const target = $(ev.target);
+				if (target.attr('component') === 'user/status') {
+					const newTitle = target.attr('data-new-title');
+					if (newTitle) {
+						$('.tooltip .tooltip-inner').text(newTitle);
+					}
+				}
 			});
 		}
 	};
@@ -274,20 +259,6 @@ if (document.readyState === 'loading') {
 		app.createStatusTooltips();
 	};
 
-	app.openChat = function (roomId, uid) {
-		console.warn('[deprecated] app.openChat is deprecated, please use chat.openChat');
-		require(['chat'], function (chat) {
-			chat.openChat(roomId, uid);
-		});
-	};
-
-	app.newChat = function (touid, callback) {
-		console.warn('[deprecated] app.newChat is deprecated, please use chat.newChat');
-		require(['chat'], function (chat) {
-			chat.newChat(touid, callback);
-		});
-	};
-
 	app.toggleNavbar = function (state) {
 		require(['components'], (components) => {
 			const navbarEl = components.get('navbar');
@@ -295,28 +266,6 @@ if (document.readyState === 'loading') {
 		});
 	};
 
-	app.enableTopicSearch = function (options) {
-		console.warn('[deprecated] app.enableTopicSearch is deprecated, please use search.enableQuickSearch(options)');
-		require(['search'], function (search) {
-			search.enableQuickSearch(options);
-		});
-	};
-
-	app.handleSearch = function (searchOptions) {
-		console.warn('[deprecated] app.handleSearch is deprecated, please use search.init(options)');
-		require(['search'], function (search) {
-			search.init(searchOptions);
-		});
-	};
-
-	app.prepareSearch = function () {
-		console.warn('[deprecated] app.prepareSearch is deprecated, please use search.showAndFocusInput()');
-		require(['search'], function (search) {
-			search.showAndFocusInput();
-		});
-	};
-
-
 	app.updateUserStatus = function (el, status) {
 		if (!el.length) {
 			return;
@@ -326,8 +275,7 @@ if (document.readyState === 'loading') {
 			translator.translate('[[global:' + status + ']]', function (translated) {
 				el.removeClass('online offline dnd away')
 					.addClass(status)
-					.attr('title', translated)
-					.attr('data-original-title', translated);
+					.attr('data-new-title', translated);
 			});
 		});
 	};
diff --git a/public/src/client.js b/public/src/client.js
index 67a641e4e4..b16c9e184e 100644
--- a/public/src/client.js
+++ b/public/src/client.js
@@ -2,9 +2,9 @@
 
 require('./app');
 
-// scripts-client.js contains javascript files
+// scripts-client.js is generated during build, it contains javascript files
 // from plugins that add files to "scripts" block in plugin.json
-// eslint-disable-next-line import/no-unresolved
+// eslint-disable-next-line
 require('../scripts-client');
 
 app.onDomReady();
diff --git a/public/src/client/account/best.js b/public/src/client/account/best.js
index b8327a3e39..4a6e212c38 100644
--- a/public/src/client/account/best.js
+++ b/public/src/client/account/best.js
@@ -7,7 +7,7 @@ define('forum/account/best', ['forum/account/header', 'forum/account/posts'], fu
 	Best.init = function () {
 		header.init();
 
-		$('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive');
+		$('[component="post/content"] img:not(.not-responsive)').addClass('img-fluid');
 
 		posts.handleInfiniteScroll('account/best');
 	};
diff --git a/public/src/client/account/blocks.js b/public/src/client/account/blocks.js
index a50cd83372..375e7a5ff9 100644
--- a/public/src/client/account/blocks.js
+++ b/public/src/client/account/blocks.js
@@ -10,10 +10,13 @@ define('forum/account/blocks', [
 
 	Blocks.init = function () {
 		header.init();
+		const blockListEl = $('[component="blocks/search/list"]');
 
 		$('#user-search').on('keyup', function () {
 			const username = this.value;
-
+			if (!username) {
+				return blockListEl.translateHtml('<li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>');
+			}
 			api.get('/api/users', {
 				query: username,
 				searchBy: 'username',
@@ -22,7 +25,9 @@ define('forum/account/blocks', [
 				if (err) {
 					return alerts.error(err);
 				}
-
+				if (!data.users.length) {
+					return blockListEl.translateHtml('<li><a href="#" class="dropdown-item">[[users:no-users-found]]</a></li>');
+				}
 				// Only show first 10 matches
 				if (data.matchCount > 10) {
 					data.users.length = 10;
@@ -53,6 +58,7 @@ define('forum/account/blocks', [
 		$.get(config.relative_path + '/api/' + ajaxify.currentPage)
 			.done(function (payload) {
 				app.parseAndTranslate('account/blocks', 'users', payload, function (html) {
+					html.find('.timeago').timeago();
 					$('#users-container').html(html);
 					$('#users-container').siblings('div.alert')[html.length ? 'hide' : 'show']();
 				});
diff --git a/public/src/client/account/bookmarks.js b/public/src/client/account/bookmarks.js
index 4959a24d73..913edd8edd 100644
--- a/public/src/client/account/bookmarks.js
+++ b/public/src/client/account/bookmarks.js
@@ -7,7 +7,7 @@ define('forum/account/bookmarks', ['forum/account/header', 'forum/account/posts'
 	Bookmarks.init = function () {
 		header.init();
 
-		$('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive');
+		$('[component="post/content"] img:not(.not-responsive)').addClass('img-fluid');
 
 		posts.handleInfiniteScroll('account/bookmarks');
 	};
diff --git a/public/src/client/account/downvoted.js b/public/src/client/account/downvoted.js
index 4ebf742237..113376bc3c 100644
--- a/public/src/client/account/downvoted.js
+++ b/public/src/client/account/downvoted.js
@@ -7,7 +7,7 @@ define('forum/account/downvoted', ['forum/account/header', 'forum/account/posts'
 	Downvoted.init = function () {
 		header.init();
 
-		$('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive');
+		$('[component="post/content"] img:not(.not-responsive)').addClass('img-fluid');
 
 		posts.handleInfiniteScroll('account/downvoted');
 	};
diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js
index a982b4ad40..929767bb4a 100644
--- a/public/src/client/account/edit.js
+++ b/public/src/client/account/edit.js
@@ -20,7 +20,6 @@ define('forum/account/edit', [
 			$('#groupTitle option[value=""]').attr('selected', true);
 		}
 
-		handleImageChange();
 		handleAccountDelete();
 		handleEmailConfirm();
 		updateSignature();
@@ -51,12 +50,7 @@ define('forum/account/edit', [
 		return false;
 	}
 
-	function handleImageChange() {
-		$('#changePictureBtn').on('click', function () {
-			picture.openChangeModal();
-			return false;
-		});
-	}
+
 
 	function handleAccountDelete() {
 		$('#deleteAccountBtn').on('click', function () {
diff --git a/public/src/client/account/header.js b/public/src/client/account/header.js
index ed443cf81a..dfc20ee3e8 100644
--- a/public/src/client/account/header.js
+++ b/public/src/client/account/header.js
@@ -6,32 +6,30 @@ define('forum/account/header', [
 	'pictureCropper',
 	'components',
 	'translator',
-	'benchpress',
 	'accounts/delete',
+	'accounts/moderate',
+	'accounts/picture',
 	'api',
 	'bootbox',
 	'alerts',
-], function (coverPhoto, pictureCropper, components, translator, Benchpress, AccountsDelete, api, bootbox, alerts) {
+], function (coverPhoto, pictureCropper, components, translator,
+	AccountsDelete, AccountsModerate, AccountsPicture, api, bootbox, alerts) {
 	const AccountHeader = {};
 	let isAdminOrSelfOrGlobalMod;
 
 	AccountHeader.init = function () {
 		isAdminOrSelfOrGlobalMod = ajaxify.data.isAdmin || ajaxify.data.isSelf || ajaxify.data.isGlobalModerator;
 
-		hidePrivateLinks();
 		selectActivePill();
 
+		handleImageChange();
+
 		if (isAdminOrSelfOrGlobalMod) {
 			setupCoverPhoto();
 		}
 
-		components.get('account/follow').on('click', function () {
-			toggleFollow('follow');
-		});
-
-		components.get('account/unfollow').on('click', function () {
-			toggleFollow('unfollow');
-		});
+		components.get('account/follow').on('click', () => toggleFollow('follow'));
+		components.get('account/unfollow').on('click', () => toggleFollow('unfollow'));
 
 		components.get('account/chat').on('click', async function () {
 			const roomId = await socket.emit('modules.chats.hasPrivateChat', ajaxify.data.uid);
@@ -50,45 +48,21 @@ define('forum/account/header', [
 			});
 		});
 
-
-		components.get('account/ban').on('click', function () {
-			banAccount(ajaxify.data.theirid);
-		});
-		components.get('account/mute').on('click', function () {
-			muteAccount(ajaxify.data.theirid);
-		});
-		components.get('account/unban').on('click', function () {
-			unbanAccount(ajaxify.data.theirid);
-		});
-		components.get('account/unmute').on('click', function () {
-			unmuteAccount(ajaxify.data.theirid);
-		});
-		components.get('account/delete-account').on('click', handleDeleteEvent.bind(null, 'account'));
-		components.get('account/delete-content').on('click', handleDeleteEvent.bind(null, 'content'));
-		components.get('account/delete-all').on('click', handleDeleteEvent.bind(null, 'purge'));
+		components.get('account/ban').on('click', () => AccountsModerate.banAccount(ajaxify.data.theirid));
+		components.get('account/mute').on('click', () => AccountsModerate.muteAccount(ajaxify.data.theirid));
+		components.get('account/unban').on('click', () => AccountsModerate.unbanAccount(ajaxify.data.theirid));
+		components.get('account/unmute').on('click', () => AccountsModerate.unmuteAccount(ajaxify.data.theirid));
+		components.get('account/delete-account').on('click', () => AccountsDelete.account(ajaxify.data.theirid));
+		components.get('account/delete-content').on('click', () => AccountsDelete.content(ajaxify.data.theirid));
+		components.get('account/delete-all').on('click', () => AccountsDelete.purge(ajaxify.data.theirid));
 		components.get('account/flag').on('click', flagAccount);
 		components.get('account/block').on('click', toggleBlockAccount);
+		components.get('account/unblock').on('click', toggleBlockAccount);
 	};
 
-	function handleDeleteEvent(type) {
-		AccountsDelete[type](ajaxify.data.theirid);
-	}
-
-	// TODO: This exported method is used in forum/flags/detail -- refactor??
-	AccountHeader.banAccount = banAccount;
-	AccountHeader.muteAccount = muteAccount;
-	AccountHeader.unbanAccount = unbanAccount;
-	AccountHeader.unmuteAccount = unmuteAccount;
-
-	function hidePrivateLinks() {
-		if (!app.user.uid || app.user.uid !== parseInt(ajaxify.data.theirid, 10)) {
-			$('.account-sub-links .plugin-link.private').addClass('hide');
-		}
-	}
-
 	function selectActivePill() {
-		$('.account-sub-links li').removeClass('active').each(function () {
-			const href = $(this).find('a').attr('href');
+		$('.account-sub-links li a').removeClass('active').each(function () {
+			const href = $(this).attr('href');
 
 			if (decodeURIComponent(href) === decodeURIComponent(window.location.pathname)) {
 				$(this).addClass('active');
@@ -97,6 +71,13 @@ define('forum/account/header', [
 		});
 	}
 
+	function handleImageChange() {
+		$('[component="profile/change/picture"]').on('click', function () {
+			AccountsPicture.openChangeModal();
+			return false;
+		});
+	}
+
 	function setupCoverPhoto() {
 		coverPhoto.init(
 			components.get('account/cover'),
@@ -139,102 +120,6 @@ define('forum/account/header', [
 		return false;
 	}
 
-	function banAccount(theirid, onSuccess) {
-		theirid = theirid || ajaxify.data.theirid;
-
-		Benchpress.render('admin/partials/temporary-ban', {}).then(function (html) {
-			bootbox.dialog({
-				className: 'ban-modal',
-				title: '[[user:ban_account]]',
-				message: html,
-				show: true,
-				buttons: {
-					close: {
-						label: '[[global:close]]',
-						className: 'btn-link',
-					},
-					submit: {
-						label: '[[user:ban_account]]',
-						callback: function () {
-							const formData = $('.ban-modal form').serializeArray().reduce(function (data, cur) {
-								data[cur.name] = cur.value;
-								return data;
-							}, {});
-
-							const until = formData.length > 0 ? (
-								Date.now() + (formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1))
-							) : 0;
-
-							api.put('/users/' + theirid + '/ban', {
-								until: until,
-								reason: formData.reason || '',
-							}).then(() => {
-								if (typeof onSuccess === 'function') {
-									return onSuccess();
-								}
-
-								ajaxify.refresh();
-							}).catch(alerts.error);
-						},
-					},
-				},
-			});
-		});
-	}
-
-	function unbanAccount(theirid) {
-		api.del('/users/' + theirid + '/ban').then(() => {
-			ajaxify.refresh();
-		}).catch(alerts.error);
-	}
-
-	function muteAccount(theirid, onSuccess) {
-		theirid = theirid || ajaxify.data.theirid;
-		Benchpress.render('admin/partials/temporary-mute', {}).then(function (html) {
-			bootbox.dialog({
-				className: 'mute-modal',
-				title: '[[user:mute_account]]',
-				message: html,
-				show: true,
-				buttons: {
-					close: {
-						label: '[[global:close]]',
-						className: 'btn-link',
-					},
-					submit: {
-						label: '[[user:mute_account]]',
-						callback: function () {
-							const formData = $('.mute-modal form').serializeArray().reduce(function (data, cur) {
-								data[cur.name] = cur.value;
-								return data;
-							}, {});
-
-							const until = formData.length > 0 ? (
-								Date.now() + (formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1))
-							) : 0;
-
-							api.put('/users/' + theirid + '/mute', {
-								until: until,
-								reason: formData.reason || '',
-							}).then(() => {
-								if (typeof onSuccess === 'function') {
-									return onSuccess();
-								}
-								ajaxify.refresh();
-							}).catch(alerts.error);
-						},
-					},
-				},
-			});
-		});
-	}
-
-	function unmuteAccount(theirid) {
-		api.del('/users/' + theirid + '/mute').then(() => {
-			ajaxify.refresh();
-		}).catch(alerts.error);
-	}
-
 	function flagAccount() {
 		require(['flags'], function (flags) {
 			flags.showFlagModal({
@@ -245,7 +130,6 @@ define('forum/account/header', [
 	}
 
 	function toggleBlockAccount() {
-		const targetEl = this;
 		socket.emit('user.toggleBlock', {
 			blockeeUid: ajaxify.data.uid,
 			blockerUid: app.user.uid,
@@ -253,10 +137,8 @@ define('forum/account/header', [
 			if (err) {
 				return alerts.error(err);
 			}
-
-			translator.translate('[[user:' + (blocked ? 'unblock' : 'block') + '_user]]', function (label) {
-				$(targetEl).text(label);
-			});
+			components.get('account/block').toggleClass('hidden', blocked);
+			components.get('account/unblock').toggleClass('hidden', !blocked);
 		});
 
 		// Keep dropdown open
diff --git a/public/src/client/account/posts.js b/public/src/client/account/posts.js
index a4dbb619e1..fbd7f555c7 100644
--- a/public/src/client/account/posts.js
+++ b/public/src/client/account/posts.js
@@ -10,7 +10,7 @@ define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll', '
 	AccountPosts.init = function () {
 		header.init();
 
-		$('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive');
+		$('[component="post/content"] img:not(.not-responsive)').addClass('img-fluid');
 
 		AccountPosts.handleInfiniteScroll('account/posts');
 	};
@@ -43,9 +43,8 @@ define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll', '
 	function onPostsLoaded(posts, callback) {
 		app.parseAndTranslate(template, 'posts', { posts: posts }, function (html) {
 			$('[component="posts"]').append(html);
-			html.find('img:not(.not-responsive)').addClass('img-responsive');
+			html.find('img:not(.not-responsive)').addClass('img-fluid');
 			html.find('.timeago').timeago();
-			app.createUserTooltips(html);
 			utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
 			hooks.fire('action:posts.loaded', { posts: posts });
 			callback();
diff --git a/public/src/client/account/profile.js b/public/src/client/account/profile.js
index 63024e4d04..03a91066e1 100644
--- a/public/src/client/account/profile.js
+++ b/public/src/client/account/profile.js
@@ -23,7 +23,7 @@ define('forum/account/profile', [
 	};
 
 	function processPage() {
-		$('[component="posts"] [component="post/content"] img:not(.not-responsive), [component="aboutme"] img:not(.not-responsive)').addClass('img-responsive');
+		$('[component="posts"] [component="post/content"] img:not(.not-responsive), [component="aboutme"] img:not(.not-responsive)').addClass('img-fluid');
 	}
 
 	function onUserStatusChange(data) {
diff --git a/public/src/client/account/settings.js b/public/src/client/account/settings.js
index 57b82151ee..67c2329ed3 100644
--- a/public/src/client/account/settings.js
+++ b/public/src/client/account/settings.js
@@ -2,8 +2,8 @@
 
 
 define('forum/account/settings', [
-	'forum/account/header', 'components', 'translator', 'api', 'alerts',
-], function (header, components, translator, api, alerts) {
+	'forum/account/header', 'components', 'api', 'alerts', 'hooks',
+], function (header, components, api, alerts, hooks) {
 	const AccountSettings = {};
 
 	// If page skin is changed but not saved, switch the skin back
@@ -83,16 +83,7 @@ define('forum/account/settings', [
 			}
 
 			if (languageChanged && parseInt(app.user.uid, 10) === parseInt(ajaxify.data.theirid, 10)) {
-				translator.translate('[[language:dir]]', config.userLang, function (translated) {
-					const htmlEl = $('html');
-					htmlEl.attr('data-dir', translated);
-					htmlEl.css('direction', translated);
-				});
-
-				translator.switchTimeagoLanguage(utils.userLangToTimeagoCode(config.userLang), function () {
-					overrides.overrideTimeago();
-					ajaxify.refresh();
-				});
+				window.location.reload();
 			}
 		});
 	}
@@ -125,23 +116,36 @@ define('forum/account/settings', [
 
 		// Stop execution if skin didn't change
 		if (skinName === currentSkin) {
+			hooks.fire('action:skin.change', { skin: skinName, currentSkin });
 			return;
 		}
-
+		const langDir = $('html').attr('data-dir');
 		const linkEl = document.createElement('link');
 		linkEl.rel = 'stylesheet';
 		linkEl.type = 'text/css';
-		linkEl.href = config.relative_path + '/assets/client' + (skinName ? '-' + skinName : '') + '.css';
+		linkEl.href = config.relative_path +
+			'/assets/client' + (skinName ? '-' + skinName : '') +
+			(langDir === 'rtl' ? '-rtl' : '') +
+			'.css?' + config['cache-buster'];
 		linkEl.onload = function () {
 			clientEl.parentNode.removeChild(clientEl);
 
 			// Update body class with proper skin name
 			$('body').removeClass(currentSkinClassName.join(' '));
 			$('body').addClass('skin-' + (skinName || 'noskin'));
+			hooks.fire('action:skin.change', { skin: skinName, currentSkin });
 		};
 
 		document.head.appendChild(linkEl);
 	}
 
+	AccountSettings.changeSkin = async function (skin) {
+		if (app.user.uid) {
+			await api.put(`/users/${app.user.uid}/settings`, { settings: { bootswatchSkin: skin } });
+		}
+		config.bootswatchSkin = skin;
+		reskin(skin);
+	};
+
 	return AccountSettings;
 });
diff --git a/public/src/client/account/topics.js b/public/src/client/account/topics.js
index 0bebfdac2f..565bb9b170 100644
--- a/public/src/client/account/topics.js
+++ b/public/src/client/account/topics.js
@@ -46,7 +46,6 @@ define('forum/account/topics', [
 		app.parseAndTranslate(template, 'topics', { topics: topics }, function (html) {
 			$('[component="category"]').append(html);
 			html.find('.timeago').timeago();
-			app.createUserTooltips(html);
 			utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
 			hooks.fire('action:topics.loaded', { topics: topics });
 			callback();
diff --git a/public/src/client/account/upvoted.js b/public/src/client/account/upvoted.js
index 274cdfb025..a2712c229e 100644
--- a/public/src/client/account/upvoted.js
+++ b/public/src/client/account/upvoted.js
@@ -7,7 +7,7 @@ define('forum/account/upvoted', ['forum/account/header', 'forum/account/posts'],
 	Upvoted.init = function () {
 		header.init();
 
-		$('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive');
+		$('[component="post/content"] img:not(.not-responsive)').addClass('img-fluid');
 
 		posts.handleInfiniteScroll('account/upvoted');
 	};
diff --git a/public/src/client/categories.js b/public/src/client/categories.js
index f07730278f..e5ac479692 100644
--- a/public/src/client/categories.js
+++ b/public/src/client/categories.js
@@ -1,71 +1,19 @@
 'use strict';
 
 
-define('forum/categories', ['components', 'categorySelector', 'hooks'], function (components, categorySelector, hooks) {
+define('forum/categories', ['categorySelector'], function (categorySelector) {
 	const categories = {};
 
-	$(window).on('action:ajaxify.start', function (ev, data) {
-		if (ajaxify.currentPage !== data.url) {
-			socket.removeListener('event:new_post', categories.onNewPost);
-		}
-	});
-
 	categories.init = function () {
 		app.enterRoom('categories');
 
-		socket.removeListener('event:new_post', categories.onNewPost);
-		socket.on('event:new_post', categories.onNewPost);
 		categorySelector.init($('[component="category-selector"]'), {
 			privilege: 'find',
 			onSelect: function (category) {
 				ajaxify.go('/category/' + category.cid);
 			},
 		});
-
-		$('.category-header').tooltip({
-			placement: 'bottom',
-		});
 	};
 
-	categories.onNewPost = function (data) {
-		if (data && data.posts && data.posts.length && data.posts[0].topic) {
-			renderNewPost(data.posts[0].topic.cid, data.posts[0]);
-		}
-	};
-
-	function renderNewPost(cid, post) {
-		const category = components.get('categories/category', 'cid', cid);
-		const numRecentReplies = category.attr('data-numRecentReplies');
-		if (!numRecentReplies || !parseInt(numRecentReplies, 10)) {
-			return;
-		}
-		if (!category.find('[component="topic/teaser"]').length) {
-			return;
-		}
-
-		const recentPosts = category.find('[component="category/posts"]');
-
-		app.parseAndTranslate('partials/categories/lastpost', 'posts', { posts: [post] }, function (html) {
-			html.find('.post-content img:not(.not-responsive)').addClass('img-responsive');
-			html.hide();
-			if (recentPosts.length === 0) {
-				html.appendTo(category);
-			} else {
-				html.insertBefore(recentPosts.first());
-			}
-
-			html.fadeIn();
-
-			app.createUserTooltips(html);
-			html.find('.timeago').timeago();
-
-			if (category.find('[component="category/posts"]').length > parseInt(numRecentReplies, 10)) {
-				recentPosts.last().remove();
-			}
-
-			hooks.fire('action:posts.loaded', { posts: [post] });
-		});
-	}
-
 	return categories;
 });
diff --git a/public/src/client/category.js b/public/src/client/category.js
index e17f37c490..991f4eb85e 100644
--- a/public/src/client/category.js
+++ b/public/src/client/category.js
@@ -30,7 +30,7 @@ define('forum/category', [
 		sort.handleSort('categoryTopicSort', 'category/' + ajaxify.data.slug);
 
 		if (!config.usePagination) {
-			navigator.init('[component="category/topic"]', ajaxify.data.topic_count, Category.toTop, Category.toBottom, Category.navigatorCallback);
+			navigator.init('[component="category/topic"]', ajaxify.data.topic_count, Category.toTop, Category.toBottom);
 		} else {
 			navigator.disable();
 		}
@@ -105,7 +105,6 @@ define('forum/category', [
 					html.find('.timeago').timeago();
 					$('[component="category/subcategory/container"]').append(html);
 					utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
-					app.createUserTooltips(html);
 					ajaxify.data.nextSubCategoryStart += ajaxify.data.subCategoriesPerPage;
 					ajaxify.data.subCategoriesLeft -= data.length;
 					btn.toggleClass('hidden', ajaxify.data.subCategoriesLeft <= 0)
@@ -130,10 +129,6 @@ define('forum/category', [
 		});
 	};
 
-	Category.navigatorCallback = function (topIndex, bottomIndex) {
-		return bottomIndex;
-	};
-
 	function loadTopicsAfter(after, direction, callback) {
 		callback = callback || function () {};
 
diff --git a/public/src/client/category/tools.js b/public/src/client/category/tools.js
index 385255760b..3d95a87e27 100644
--- a/public/src/client/category/tools.js
+++ b/public/src/client/category/tools.js
@@ -17,6 +17,10 @@ define('forum/category/tools', [
 
 		handlePinnedTopicSort();
 
+		$('[component="category/topic"]').each((index, el) => {
+			threadTools.observeTopicLabels($(el).find('[component="topic/labels"]'));
+		});
+
 		components.get('topic/delete').on('click', function () {
 			categoryCommand('del', '/state', 'delete', onDeletePurgeComplete);
 			return false;
@@ -247,20 +251,20 @@ define('forum/category/tools', [
 	function setDeleteState(data) {
 		const topic = getTopicEl(data.tid);
 		topic.toggleClass('deleted', data.isDeleted);
-		topic.find('[component="topic/locked"]').toggleClass('hide', !data.isDeleted);
+		topic.find('[component="topic/locked"]').toggleClass('hidden', !data.isDeleted);
 	}
 
 	function setPinnedState(data) {
 		const topic = getTopicEl(data.tid);
 		topic.toggleClass('pinned', data.isPinned);
-		topic.find('[component="topic/pinned"]').toggleClass('hide', !data.isPinned);
+		topic.find('[component="topic/pinned"]').toggleClass('hidden', !data.isPinned);
 		ajaxify.refresh();
 	}
 
 	function setLockedState(data) {
 		const topic = getTopicEl(data.tid);
 		topic.toggleClass('locked', data.isLocked);
-		topic.find('[component="topic/locked"]').toggleClass('hide', !data.isLocked);
+		topic.find('[component="topic/locked"]').toggleClass('hidden', !data.isLocked);
 	}
 
 	function onTopicMoved(data) {
@@ -286,6 +290,7 @@ define('forum/category/tools', [
 			});
 			let baseIndex = 0;
 			topicListEl.sortable({
+				axis: 'y',
 				handle: '[component="topic/pinned"]',
 				items: '[component="category/topic"].pinned',
 				start: function () {
diff --git a/public/src/client/chats.js b/public/src/client/chats.js
index 1c27176959..4c54e750a4 100644
--- a/public/src/client/chats.js
+++ b/public/src/client/chats.js
@@ -23,10 +23,15 @@ define('forum/chats', [
 ) {
 	const Chats = {
 		initialised: false,
+		activeAutocomplete: {},
 	};
 
 	let newMessage = false;
 
+	$(window).on('action:ajaxify.start', function () {
+		Chats.destroyAutoComplete(ajaxify.data.roomId);
+	});
+
 	Chats.init = function () {
 		const env = utils.findBootstrapEnvironment();
 
@@ -40,7 +45,7 @@ define('forum/chats', [
 		Chats.addEventListeners();
 		Chats.setActive();
 
-		if (env === 'md' || env === 'lg') {
+		if (env === 'md' || env === 'lg' || env === 'xl' || env === 'xxl') {
 			Chats.addHotkeys();
 		}
 
@@ -52,10 +57,6 @@ define('forum/chats', [
 		messages.scrollToBottom($('.expanded-chat ul.chat-content'));
 
 		search.init();
-
-		if (ajaxify.data.hasOwnProperty('roomId')) {
-			components.get('chat/input').focus();
-		}
 	};
 
 	Chats.addEventListeners = function () {
@@ -69,11 +70,12 @@ define('forum/chats', [
 		Chats.addScrollBottomHandler($('.chat-content'));
 		Chats.addCharactersLeftHandler($('[component="chat/main-wrapper"]'));
 		Chats.addIPHandler($('[component="chat/main-wrapper"]'));
-		Chats.createAutoComplete($('[component="chat/input"]'));
+		Chats.createAutoComplete(ajaxify.data.roomId, $('[component="chat/input"]'));
 		Chats.addUploadHandler({
 			dragDropAreaEl: $('.chats-full'),
 			pasteEl: $('[component="chat/input"]'),
 			uploadFormEl: $('[component="chat/upload"]'),
+			uploadBtnEl: $('[component="chat/upload/button"]'),
 			inputEl: $('[component="chat/input"]'),
 		});
 
@@ -87,14 +89,15 @@ define('forum/chats', [
 			dragDropAreaEl: options.dragDropAreaEl,
 			pasteEl: options.pasteEl,
 			uploadFormEl: options.uploadFormEl,
+			uploadBtnEl: options.uploadBtnEl,
 			route: '/api/post/upload', // using same route as post uploads
 			callback: function (uploads) {
 				const inputEl = options.inputEl;
 				let text = inputEl.val();
 				uploads.forEach((upload) => {
-					text = text + (text ? '\n' : '') + (upload.isImage ? '!' : '') + `[${upload.filename}](${upload.url})`;
+					text = text + (!text.endsWith('\n') ? '\n' : '') + (upload.isImage ? '!' : '') + `[${upload.filename}](${upload.url})\n`;
 				});
-				inputEl.val(text);
+				inputEl.val(text).trigger('input');
 			},
 		});
 	};
@@ -166,7 +169,7 @@ define('forum/chats', [
 					html = $(html);
 					el.prepend(html);
 					html.find('.timeago').timeago();
-					html.find('img:not(.not-responsive)').addClass('img-responsive');
+					html.find('img:not(.not-responsive)').addClass('img-fluid');
 					el.scrollTop((el[0].scrollHeight - previousHeight) + currentScrollTop);
 					loading = false;
 				});
@@ -247,7 +250,7 @@ define('forum/chats', [
 		let modal;
 
 		buttonEl.on('click', function () {
-			app.parseAndTranslate('partials/modals/manage_room', {}, function (html) {
+			app.parseAndTranslate('modals/manage-room', {}, function (html) {
 				modal = bootbox.dialog({
 					title: '[[modules:chat.manage-room]]',
 					message: html,
@@ -283,7 +286,7 @@ define('forum/chats', [
 		modal.on('click', '[data-action="kick"]', function () {
 			const uid = parseInt(this.getAttribute('data-uid'), 10);
 
-			api.delete(`/chats/${roomId}/users/${uid}`, {}).then((body) => {
+			api.del(`/chats/${roomId}/users/${uid}`, {}).then((body) => {
 				Chats.refreshParticipantsList(roomId, modal, body);
 			}).catch(alerts.error);
 		});
@@ -294,15 +297,16 @@ define('forum/chats', [
 			bootbox.confirm({
 				size: 'small',
 				title: '[[modules:chat.leave]]',
-				message: '<p>[[modules:chat.leave-prompt]]</p><p class="help-block">[[modules:chat.leave-help]]</p>',
+				message: '<p>[[modules:chat.leave-prompt]]</p><p class="form-text">[[modules:chat.leave-help]]</p>',
 				callback: function (ok) {
 					if (ok) {
-						api.delete(`/chats/${roomId}/users/${app.user.uid}`, {}).then(() => {
+						api.del(`/chats/${roomId}/users/${app.user.uid}`, {}).then(() => {
 							// Return user to chats page. If modal, close modal.
 							const modal = buttonEl.parents('.chat-modal');
 							if (modal.length) {
 								chatModule.close(modal);
 							} else {
+								Chats.destroyAutoComplete(roomId);
 								ajaxify.go('chats');
 							}
 						}).catch(alerts.error);
@@ -325,7 +329,7 @@ define('forum/chats', [
 			}
 		}
 
-		app.parseAndTranslate('partials/modals/manage_room_users', data, function (html) {
+		app.parseAndTranslate('partials/chats/manage-room-users', data, function (html) {
 			listEl.html(html);
 		});
 	};
@@ -334,7 +338,7 @@ define('forum/chats', [
 		let modal;
 
 		buttonEl.on('click', function () {
-			app.parseAndTranslate('partials/modals/rename_room', {
+			app.parseAndTranslate('modals/rename-room', {
 				name: roomName || ajaxify.data.roomName,
 			}, function (html) {
 				modal = bootbox.dialog({
@@ -359,12 +363,14 @@ define('forum/chats', [
 	};
 
 	Chats.addSendHandlers = function (roomId, inputEl, sendEl) {
-		inputEl.off('keypress').on('keypress', function (e) {
-			if (e.which === 13 && !e.shiftKey) {
-				messages.sendMessage(roomId, inputEl);
-				return false;
-			}
-		});
+		if (!utils.isMobile()) {
+			inputEl.off('keypress').on('keypress', function (e) {
+				if (e.which === 13 && !e.shiftKey) {
+					messages.sendMessage(roomId, inputEl);
+					return false;
+				}
+			});
+		}
 
 		sendEl.off('click').on('click', function () {
 			messages.sendMessage(roomId, inputEl);
@@ -373,7 +379,7 @@ define('forum/chats', [
 		});
 	};
 
-	Chats.createAutoComplete = function (element) {
+	Chats.createAutoComplete = function (roomId, element) {
 		if (!element.length) {
 			return;
 		}
@@ -388,24 +394,32 @@ define('forum/chats', [
 					top: 'inherit',
 				},
 				placement: 'top',
+				className: `chat-autocomplete-dropdown-${roomId} dropdown-menu textcomplete-dropdown`,
 			},
 		};
 
 		$(window).trigger('chat:autocomplete:init', data);
 		if (data.strategies.length) {
-			autocomplete.setup(data);
+			Chats.activeAutocomplete[roomId] = autocomplete.setup(data);
+		}
+	};
+
+	Chats.destroyAutoComplete = function (roomId) {
+		if (Chats.activeAutocomplete[roomId]) {
+			Chats.activeAutocomplete[roomId].destroy();
+			delete Chats.activeAutocomplete[roomId];
 		}
 	};
 
 	Chats.leave = function (el) {
 		const roomId = el.attr('data-roomid');
-		api.delete(`/chats/${roomId}/users/${app.user.uid}`, {}).then(() => {
+		api.del(`/chats/${roomId}/users/${app.user.uid}`, {}).then(() => {
 			if (parseInt(roomId, 10) === parseInt(ajaxify.data.roomId, 10)) {
 				ajaxify.go('user/' + ajaxify.data.userslug + '/chats');
 			} else {
 				el.remove();
 			}
-
+			Chats.destroyAutoComplete(roomId);
 			const modal = chatModule.getModal(roomId);
 			if (modal.length) {
 				chatModule.close(modal);
@@ -418,7 +432,7 @@ define('forum/chats', [
 		if (!roomid) {
 			roomid = '';
 		}
-
+		Chats.destroyAutoComplete(ajaxify.data.roomId);
 		const url = 'user/' + ajaxify.data.userslug + '/chats/' + roomid + window.location.search;
 		if (self.fetch) {
 			fetch(config.relative_path + '/api/' + url, { credentials: 'include' })
@@ -455,7 +469,7 @@ define('forum/chats', [
 	Chats.addGlobalEventListeners = function () {
 		$(window).on('mousemove keypress click', function () {
 			if (newMessage && ajaxify.data.roomId) {
-				socket.emit('modules.chats.markRead', ajaxify.data.roomId);
+				api.del(`/chats/${ajaxify.data.roomId}/state`, {});
 				newMessage = false;
 			}
 		});
@@ -464,15 +478,24 @@ define('forum/chats', [
 	Chats.addSocketListeners = function () {
 		socket.on('event:chats.receive', function (data) {
 			if (parseInt(data.roomId, 10) === parseInt(ajaxify.data.roomId, 10)) {
-				newMessage = data.self === 0;
+				if (!newMessage) {
+					newMessage = data.self === 0;
+				}
 				data.message.self = data.self;
-
+				data.message.timestamp = Math.min(Date.now(), data.message.timestamp);
+				data.message.timestampISO = utils.toISOString(data.message.timestamp);
 				messages.appendChatMessage($('.expanded-chat .chat-content'), data.message);
 			} else if (ajaxify.data.template.chats) {
 				const roomEl = $('[data-roomid=' + data.roomId + ']');
 
 				if (roomEl.length > 0) {
 					roomEl.addClass('unread');
+
+					const markEl = roomEl.find('.mark-read').get(0);
+					if (markEl) {
+						markEl.querySelector('.read').classList.add('hidden');
+						markEl.querySelector('.unread').classList.remove('hidden');
+					}
 				} else {
 					const recentEl = components.get('chat/recent');
 					app.parseAndTranslate('partials/chats/recent_room', {
@@ -502,16 +525,37 @@ define('forum/chats', [
 
 			titleEl.text(data.newName);
 		});
+
+		socket.on('event:chats.mark', ({ roomId, state }) => {
+			const roomEls = document.querySelectorAll(`[component="chat/recent"] [data-roomid="${roomId}"], [component="chat/list"] [data-roomid="${roomId}"]`);
+
+			roomEls.forEach((roomEl) => {
+				roomEl.classList[state ? 'add' : 'remove']('unread');
+
+				const markEl = roomEl.querySelector('.mark-read');
+				if (markEl) {
+					markEl.querySelector('.read').classList[state ? 'add' : 'remove']('hidden');
+					markEl.querySelector('.unread').classList[state ? 'remove' : 'add']('hidden');
+				}
+			});
+		});
 	};
 
 	Chats.setActive = function () {
 		if (ajaxify.data.roomId) {
-			socket.emit('modules.chats.markRead', ajaxify.data.roomId);
-			$('[data-roomid="' + ajaxify.data.roomId + '"]').toggleClass('unread', false);
-			$('.expanded-chat [component="chat/input"]').focus();
+			const chatEl = document.querySelector(`[component="chat/recent"] [data-roomid="${ajaxify.data.roomId}"]`);
+			if (chatEl.classList.contains('unread')) {
+				api.del(`/chats/${ajaxify.data.roomId}/state`, {});
+				chatEl.classList.remove('unread');
+			}
+
+			if (!utils.isMobile()) {
+				$('.expanded-chat [component="chat/input"]').focus();
+			}
+			messages.updateTextAreaHeight($(`[component="chat/messages"][data-roomid="${ajaxify.data.roomId}"]`));
 		}
-		$('.chats-list li').removeClass('bg-info');
-		$('.chats-list li[data-roomid="' + ajaxify.data.roomId + '"]').addClass('bg-info');
+		$('.chats-list [data-roomid]').removeClass('active');
+		$('.chats-list [data-roomid="' + ajaxify.data.roomId + '"]').addClass('active');
 
 		components.get('chat/nav-wrapper').attr('data-loaded', ajaxify.data.roomId ? '1' : '0');
 	};
diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js
index 06ebd8f1a0..a0c05cae9f 100644
--- a/public/src/client/chats/messages.js
+++ b/public/src/client/chats/messages.js
@@ -14,18 +14,19 @@ define('forum/chats/messages', [
 		if (!message.trim().length) {
 			return;
 		}
-
-		inputEl.val('');
+		const chatContent = inputEl.parents(`[component="chat/messages"][data-roomid="${roomId}"]`);
+		inputEl.val('').trigger('input');
 		inputEl.removeAttr('data-mid');
 		messages.updateRemainingLength(inputEl.parent());
+		messages.updateTextAreaHeight(chatContent);
 		const payload = { roomId, message, mid };
-		// TODO: move this to success callback of api.post/put call?
-		hooks.fire('action:chat.sent', payload);
 		({ roomId, message, mid } = await hooks.fire('filter:chat.send', payload));
 
 		if (!mid) {
-			api.post(`/chats/${roomId}`, { message }).catch((err) => {
-				inputEl.val(message);
+			api.post(`/chats/${roomId}`, { message }).then(() => {
+				hooks.fire('action:chat.sent', { roomId, message, mid });
+			}).catch((err) => {
+				inputEl.val(message).trigger('input');
 				messages.updateRemainingLength(inputEl.parent());
 				if (err.message === '[[error:email-not-confirmed-chat]]') {
 					return messagesModule.showEmailConfirmWarning(err.message);
@@ -40,8 +41,10 @@ define('forum/chats/messages', [
 				});
 			});
 		} else {
-			api.put(`/chats/${roomId}/messages/${mid}`, { message }).catch((err) => {
-				inputEl.val(message);
+			api.put(`/chats/${roomId}/messages/${mid}`, { message }).then(() => {
+				hooks.fire('action:chat.edited', { roomId, message, mid });
+			}).catch((err) => {
+				inputEl.val(message).trigger('input');
 				inputEl.attr('data-mid', mid);
 				messages.updateRemainingLength(inputEl.parent());
 				return alerts.error(err);
@@ -58,6 +61,21 @@ define('forum/chats/messages', [
 		});
 	};
 
+	messages.updateTextAreaHeight = function (chatContentEl) {
+		// https://stackoverflow.com/questions/454202/creating-a-textarea-with-auto-resize
+		const textarea = chatContentEl.find('[component="chat/input"]');
+		const scrollHeight = textarea.prop('scrollHeight');
+		textarea.css({ height: scrollHeight + 'px' });
+		textarea.on('input', function () {
+			const isAtBottom = messages.isAtBottom(chatContentEl.find('.chat-content'));
+			textarea.css({ height: 0 });
+			textarea.css({ height: textarea.prop('scrollHeight') + 'px' });
+			if (isAtBottom) {
+				messages.scrollToBottom(chatContentEl.find('.chat-content'));
+			}
+		});
+	};
+
 	messages.appendChatMessage = function (chatContentEl, data) {
 		const lastSpeaker = parseInt(chatContentEl.find('.chat-message').last().attr('data-uid'), 10);
 		const lasttimestamp = parseInt(chatContentEl.find('.chat-message').last().attr('data-timestamp'), 10);
@@ -76,7 +94,7 @@ define('forum/chats/messages', [
 		const isAtBottom = messages.isAtBottom(chatContentEl);
 		newMessage.appendTo(chatContentEl);
 		newMessage.find('.timeago').timeago();
-		newMessage.find('img:not(.not-responsive)').addClass('img-responsive');
+		newMessage.find('img:not(.not-responsive)').addClass('img-fluid');
 		if (isAtBottom) {
 			messages.scrollToBottom(chatContentEl);
 		}
@@ -91,15 +109,14 @@ define('forum/chats/messages', [
 		function done(html) {
 			translator.translate(html, callback);
 		}
-
+		const tplData = {
+			messages: data,
+			isAdminOrGlobalMod: app.user.isAdmin || app.user.isGlobalMod,
+		};
 		if (Array.isArray(data)) {
-			Benchpress.render('partials/chats/message' + (Array.isArray(data) ? 's' : ''), {
-				messages: data,
-			}).then(done);
+			Benchpress.render('partials/chats/messages', tplData).then(done);
 		} else {
-			Benchpress.render('partials/chats/' + (data.system ? 'system-message' : 'message'), {
-				messages: data,
-			}).then(done);
+			Benchpress.render('partials/chats/' + (data.system ? 'system-message' : 'message'), tplData).then(done);
 		}
 	};
 
@@ -138,7 +155,7 @@ define('forum/chats/messages', [
 				// By setting the `data-mid` attribute, I tell the chat code that I am editing a
 				// message, instead of posting a new one.
 				inputEl.attr('data-mid', messageId).addClass('editing');
-				inputEl.val(raw).focus();
+				inputEl.val(raw).trigger('input').focus();
 
 				hooks.fire('action:chat.prepEdit', {
 					inputEl: inputEl,
@@ -193,7 +210,7 @@ define('forum/chats/messages', [
 					return;
 				}
 
-				api.delete(`/chats/${roomId}/messages/${messageId}`, {}).then(() => {
+				api.del(`/chats/${roomId}/messages/${messageId}`, {}).then(() => {
 					components.get('chat/message', messageId).toggleClass('deleted', true);
 				}).catch(alerts.error);
 			});
diff --git a/public/src/client/chats/recent.js b/public/src/client/chats/recent.js
index e95625743f..720523dcc0 100644
--- a/public/src/client/chats/recent.js
+++ b/public/src/client/chats/recent.js
@@ -1,14 +1,37 @@
 'use strict';
 
 
-define('forum/chats/recent', ['alerts'], function (alerts) {
+define('forum/chats/recent', ['alerts', 'api'], function (alerts, api) {
 	const recent = {};
 
 	recent.init = function () {
 		require(['forum/chats'], function (Chats) {
-			$('[component="chat/recent"]').on('click', '[component="chat/recent/room"]', function () {
-				Chats.switchChat($(this).attr('data-roomid'));
-			});
+			$('[component="chat/recent"]')
+				.on('click', '[component="chat/recent/room"]', function (e) {
+					e.stopPropagation();
+					e.preventDefault();
+					const roomId = this.getAttribute('data-roomid');
+					Chats.switchChat(roomId);
+				})
+				.on('click', '.mark-read', function (e) {
+					e.stopPropagation();
+					const chatEl = this.closest('[data-roomid]');
+					const state = !chatEl.classList.contains('unread'); // this is the new state
+					const roomId = chatEl.getAttribute('data-roomid');
+					api[state ? 'put' : 'del'](`/chats/${roomId}/state`, {}).catch((err) => {
+						alerts.error(err);
+
+						// Revert on failure
+						chatEl.classList[state ? 'remove' : 'add']('unread');
+						this.querySelector('.unread').classList[state ? 'add' : 'remove']('hidden');
+						this.querySelector('.read').classList[!state ? 'add' : 'remove']('hidden');
+					});
+
+					// Immediate feedback
+					chatEl.classList[state ? 'add' : 'remove']('unread');
+					this.querySelector('.unread').classList[!state ? 'add' : 'remove']('hidden');
+					this.querySelector('.read').classList[state ? 'add' : 'remove']('hidden');
+				});
 
 			$('[component="chat/recent"]').on('scroll', function () {
 				const $this = $(this);
diff --git a/public/src/client/chats/search.js b/public/src/client/chats/search.js
index 7a991f9c31..d5e7632793 100644
--- a/public/src/client/chats/search.js
+++ b/public/src/client/chats/search.js
@@ -1,7 +1,9 @@
 'use strict';
 
 
-define('forum/chats/search', ['components', 'api', 'alerts'], function (components, api, alerts) {
+define('forum/chats/search', [
+	'components', 'api', 'alerts', 'helpers',
+], function (components, api, alerts, helpers) {
 	const search = {};
 
 	search.init = function () {
@@ -11,7 +13,7 @@ define('forum/chats/search', ['components', 'api', 'alerts'], function (componen
 	function doSearch() {
 		const username = components.get('chat/search').val();
 		if (!username) {
-			return $('[component="chat/search/list"]').empty();
+			return $('[component="chat/search/list"]').translateHtml('<li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>');
 		}
 
 		api.get('/api/users', {
@@ -31,7 +33,7 @@ define('forum/chats/search', ['components', 'api', 'alerts'], function (componen
 		});
 
 		if (!data.users.length) {
-			return chatsListEl.translateHtml('<li><div><span>[[users:no-users-found]]</span></div></li>');
+			return chatsListEl.translateHtml('<li><a href="#" class="dropdown-item">[[users:no-users-found]]</a></li>');
 		}
 
 		data.users.forEach(function (userObj) {
@@ -44,10 +46,8 @@ define('forum/chats/search', ['components', 'api', 'alerts'], function (componen
 
 	function displayUser(chatsListEl, userObj) {
 		function createUserImage() {
-			return (userObj.picture ?
-				'<img src="' + userObj.picture + '" title="' + userObj.username + '" />' :
-				'<div class="user-icon" style="background-color: ' + userObj['icon:bgColor'] + '">' + userObj['icon:text'] + '</div>') +
-				'<i class="fa fa-circle status ' + userObj.status + '"></i> ' + userObj.username;
+			const img = helpers.buildAvatar(userObj, '24px', true);
+			return `<a href="#" class="dropdown-item">${img} ${userObj.username}<a>`;
 		}
 
 		const chatEl = $('<li component="chat/search/user"></li>')
diff --git a/public/src/client/flags/detail.js b/public/src/client/flags/detail.js
index 782304f318..c8223c1bde 100644
--- a/public/src/client/flags/detail.js
+++ b/public/src/client/flags/detail.js
@@ -1,8 +1,8 @@
 'use strict';
 
 define('forum/flags/detail', [
-	'components', 'translator', 'benchpress', 'forum/account/header', 'accounts/delete', 'api', 'bootbox', 'alerts',
-], function (components, translator, Benchpress, AccountHeader, AccountsDelete, api, bootbox, alerts) {
+	'components', 'translator', 'benchpress', 'accounts/moderate', 'accounts/delete', 'api', 'bootbox', 'alerts',
+], function (components, translator, Benchpress, AccountModerate, AccountsDelete, api, bootbox, alerts) {
 	const Detail = {};
 
 	Detail.init = function () {
@@ -33,6 +33,42 @@ define('forum/flags/detail', [
 					break;
 				}
 
+				case 'addEditNote': {
+					const noteEl = this.closest('[component="flag/note"]');
+					let datetime;
+					let value;
+					if (noteEl) {
+						datetime = noteEl.getAttribute('data-datetime');
+						const index = noteEl.getAttribute('data-index');
+						value = ajaxify.data.notes[index].content;
+					}
+
+					bootbox.prompt({
+						title: `[[flags:${datetime ? 'edit' : 'add'}-note]]`,
+						inputType: 'textarea',
+						rows: 3,
+						value,
+						callback: (result) => {
+							if (!result) {
+								return;
+							}
+
+							api.post(`/flags/${ajaxify.data.flagId}/notes`, {
+								note: result,
+								datetime,
+							}).then((payload) => {
+								alerts.success('[[flags:note-added]]');
+								Detail.reloadNotes(payload.notes);
+								Detail.reloadHistory(payload.history);
+							}).catch(alerts.error);
+						},
+						onShown: (e) => {
+							console.log(e);
+						},
+					});
+					break;
+				}
+
 				case 'appendNote':
 					api.post(`/flags/${ajaxify.data.flagId}/notes`, {
 						note: noteEl.value,
@@ -50,7 +86,7 @@ define('forum/flags/detail', [
 					const datetime = parseInt(this.closest('[data-datetime]').getAttribute('data-datetime'), 10);
 					bootbox.confirm('[[flags:delete-note-confirm]]', function (ok) {
 						if (ok) {
-							api.delete(`/flags/${ajaxify.data.flagId}/notes/${datetime}`, {}).then((payload) => {
+							api.del(`/flags/${ajaxify.data.flagId}/notes/${datetime}`, {}).then((payload) => {
 								alerts.success('[[flags:note-deleted]]');
 								Detail.reloadNotes(payload.notes);
 								Detail.reloadHistory(payload.history);
@@ -66,19 +102,19 @@ define('forum/flags/detail', [
 					break;
 
 				case 'ban':
-					AccountHeader.banAccount(uid, ajaxify.refresh);
+					AccountModerate.banAccount(uid, ajaxify.refresh);
 					break;
 
 				case 'unban':
-					AccountHeader.unbanAccount(uid);
+					AccountModerate.unbanAccount(uid);
 					break;
 
 				case 'mute':
-					AccountHeader.muteAccount(uid, ajaxify.refresh);
+					AccountModerate.muteAccount(uid, ajaxify.refresh);
 					break;
 
 				case 'unmute':
-					AccountHeader.unmuteAccount(uid);
+					AccountModerate.unmuteAccount(uid);
 					break;
 
 				case 'delete-account':
@@ -105,28 +141,10 @@ define('forum/flags/detail', [
 					postAction('restore', api.put, `/posts/${ajaxify.data.target.pid}/state`);
 					break;
 
-				case 'prepare-edit': {
-					const selectedNoteEl = this.closest('[data-index]');
-					const index = selectedNoteEl.getAttribute('data-index');
-					const textareaEl = document.getElementById('note');
-					textareaEl.value = ajaxify.data.notes[index].content;
-					textareaEl.setAttribute('data-datetime', ajaxify.data.notes[index].datetime);
-
-					const siblings = selectedNoteEl.parentElement.children;
-					for (const el in siblings) {
-						if (siblings.hasOwnProperty(el)) {
-							siblings[el].classList.remove('editing');
-						}
-					}
-					selectedNoteEl.classList.add('editing');
-					textareaEl.focus();
-					break;
-				}
-
 				case 'delete-flag': {
 					bootbox.confirm('[[flags:delete-flag-confirm]]', function (ok) {
 						if (ok) {
-							api.delete(`/flags/${ajaxify.data.flagId}`, {}).then(() => {
+							api.del(`/flags/${ajaxify.data.flagId}`, {}).then(() => {
 								alerts.success('[[flags:flag-deleted]]');
 								ajaxify.go('flags');
 							}).catch(alerts.error);
@@ -159,7 +177,6 @@ define('forum/flags/detail', [
 			wrapperEl.empty();
 			wrapperEl.html(html);
 			wrapperEl.find('span.timeago').timeago();
-			document.getElementById('note').value = '';
 		});
 	};
 
diff --git a/public/src/client/flags/list.js b/public/src/client/flags/list.js
index f2e15cedab..8c13b240e8 100644
--- a/public/src/client/flags/list.js
+++ b/public/src/client/flags/list.js
@@ -1,31 +1,59 @@
 'use strict';
 
 define('forum/flags/list', [
-	'components', 'Chart', 'categoryFilter', 'autocomplete', 'api', 'alerts',
-], function (components, Chart, categoryFilter, autocomplete, api, alerts) {
+	'components', 'Chart', 'categoryFilter',
+	'autocomplete', 'api', 'alerts',
+	'userFilter',
+], function (
+	components, Chart, categoryFilter,
+	autocomplete, api, alerts,
+	userFilter
+) {
 	const Flags = {};
-
-	let selectedCids;
+	const selected = new Map([
+		['cids', []],
+		['assignee', []],
+		['targetUid', []],
+		['reporterId', []],
+	]);
 
 	Flags.init = function () {
 		Flags.enableFilterForm();
 		Flags.enableCheckboxes();
 		Flags.handleBulkActions();
 
-		selectedCids = [];
 		if (ajaxify.data.filters.hasOwnProperty('cid')) {
-			selectedCids = Array.isArray(ajaxify.data.filters.cid) ?
-				ajaxify.data.filters.cid : [ajaxify.data.filters.cid];
+			selected.set('cids', Array.isArray(ajaxify.data.filters.cid) ?
+				ajaxify.data.filters.cid : [ajaxify.data.filters.cid]);
 		}
 
 		categoryFilter.init($('[component="category/dropdown"]'), {
 			privilege: 'moderate',
-			selectedCids: selectedCids,
-			onHidden: function (data) {
-				selectedCids = data.selectedCids;
+			selectedCids: selected.get('cids'),
+			updateButton: function ({ selectedCids: cids }) {
+				selected.set('cids', cids);
+				applyFilters();
 			},
 		});
 
+		['assignee', 'targetUid', 'reporterId'].forEach((filter) => {
+			if (ajaxify.data.filters.hasOwnProperty('filter')) {
+				selected.set(filter, ajaxify.data.selected[filter]);
+			}
+			const filterEl = $(`[component="flags/filter/${filter}"]`);
+			userFilter.init(filterEl, {
+				selectedUsers: selected.get(filter),
+				template: 'partials/flags/filters',
+				selectedBlock: `selected.${filter}`,
+				onSelect: function (_selectedUsers) {
+					selected.set(filter, _selectedUsers);
+				},
+				onHidden: function () {
+					applyFilters();
+				},
+			});
+		});
+
 		components.get('flags/list')
 			.on('click', '[data-flag-id]', function (e) {
 				if (['BUTTON', 'A'].includes(e.target.nodeName)) {
@@ -47,34 +75,76 @@ define('forum/flags/list', [
 
 	Flags.enableFilterForm = function () {
 		const $filtersEl = components.get('flags/filters');
+		if ($filtersEl && $filtersEl.get(0).nodeName !== 'FORM') {
+			// Harmony; update hidden form and submit on change
+			const filtersEl = $filtersEl.get(0);
+			const formEl = filtersEl.querySelector('form');
+
+			filtersEl.addEventListener('click', (e) => {
+				const subselector = e.target.closest('[data-value]');
+				if (!subselector) {
+					return;
+				}
+
+				const name = subselector.getAttribute('data-name');
+				const value = subselector.getAttribute('data-value');
 
-		// Parse ajaxify data to set form values to reflect current filters
-		for (const filter in ajaxify.data.filters) {
-			if (ajaxify.data.filters.hasOwnProperty(filter)) {
-				$filtersEl.find('[name="' + filter + '"]').val(ajaxify.data.filters[filter]);
+				formEl[name].value = value;
+
+				applyFilters();
+			});
+		} else {
+			// Persona; parse ajaxify data to set form values to reflect current filters
+			for (const filter in ajaxify.data.filters) {
+				if (ajaxify.data.filters.hasOwnProperty(filter)) {
+					$filtersEl.find('[name="' + filter + '"]').val(ajaxify.data.filters[filter]);
+				}
 			}
-		}
-		$filtersEl.find('[name="sort"]').val(ajaxify.data.sort);
+			$filtersEl.find('[name="sort"]').val(ajaxify.data.sort);
 
-		document.getElementById('apply-filters').addEventListener('click', function () {
-			const payload = $filtersEl.serializeArray();
-			// cid is special comes from categoryFilter module
-			selectedCids.forEach(function (cid) {
-				payload.push({ name: 'cid', value: cid });
+			document.getElementById('apply-filters').addEventListener('click', function () {
+				applyFilters();
 			});
 
-			ajaxify.go('flags?' + (payload.length ? $.param(payload) : 'reset=1'));
+			$filtersEl.find('button[data-target="#more-filters"]').click((ev) => {
+				const textVariant = ev.target.getAttribute('data-text-variant');
+				if (!textVariant) {
+					return;
+				}
+				ev.target.setAttribute('data-text-variant', ev.target.textContent);
+				ev.target.firstChild.textContent = textVariant;
+			});
+		}
+	};
+
+	function applyFilters() {
+		let formEl = components.get('flags/filters').get(0);
+		if (!formEl) {
+			return;
+		}
+		if (formEl.nodeName !== 'FORM') {
+			formEl = formEl.querySelector('form');
+		}
+
+		const payload = new FormData(formEl);
+
+		// cid is special comes from categoryFilter module
+		selected.get('cids').forEach(function (cid) {
+			payload.append('cid', cid);
 		});
 
-		$filtersEl.find('button[data-target="#more-filters"]').click((ev) => {
-			const textVariant = ev.target.getAttribute('data-text-variant');
-			if (!textVariant) {
-				return;
-			}
-			ev.target.setAttribute('data-text-variant', ev.target.textContent);
-			ev.target.firstChild.textContent = textVariant;
+		// these three fields are special; comes from userFilter module
+		['assignee', 'targetUid', 'reporterId'].forEach((filter) => {
+			selected.get(filter).forEach(({ uid }) => {
+				payload.append(filter, uid);
+			});
 		});
-	};
+
+		const length = Array.from(payload.values()).filter(Boolean);
+		const qs = new URLSearchParams(payload).toString();
+
+		ajaxify.go('flags?' + (length ? qs : 'reset=1'));
+	}
 
 	Flags.enableCheckboxes = function () {
 		const flagsList = document.querySelector('[component="flags/list"]');
diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js
index 4942e0b3e1..d6ae4df78c 100644
--- a/public/src/client/groups/details.js
+++ b/public/src/client/groups/details.js
@@ -67,13 +67,13 @@ define('forum/groups/details', [
 
 		handleMemberInvitations();
 
-		components.get('groups/activity').find('.content img:not(.not-responsive)').addClass('img-responsive');
+		components.get('groups/activity').find('.content img:not(.not-responsive)').addClass('img-fluid');
 
 		detailsPage.on('click', '[data-action]', function () {
 			const btnEl = $(this);
 			const userRow = btnEl.parents('[data-uid]');
-			const ownerFlagEl = userRow.find('.member-name > i');
-			const isOwner = !ownerFlagEl.hasClass('invisible');
+			const ownerFlagEl = userRow.find('[component="groups/owner/icon"]');
+			const isOwner = !!parseInt(userRow.attr('data-isowner'), 10);
 			const uid = userRow.attr('data-uid');
 			const action = btnEl.attr('data-action');
 
@@ -112,26 +112,55 @@ define('forum/groups/details', [
 					api.del('/groups/' + ajaxify.data.group.slug + '/membership/' + (uid || app.user.uid), undefined).then(() => ajaxify.refresh()).catch(alerts.error);
 					break;
 
-				// TODO (14/10/2020): rewrite these to use api module and merge with above 2 case blocks
-				case 'accept': // intentional fall-throughs!
+				case 'accept':
+					api.put(`/groups/${ajaxify.data.group.slug}/pending/${uid}`).then(() => ajaxify.refresh()).catch(alerts.error);
+					break;
+
 				case 'reject':
+					api.del(`/groups/${ajaxify.data.group.slug}/pending/${uid}`).then(() => ajaxify.refresh()).catch(alerts.error);
+					break;
+
 				case 'issueInvite':
-				case 'rescindInvite':
+					api.post(`/groups/${ajaxify.data.group.slug}/invites/${uid}`).then(() => ajaxify.refresh()).catch(alerts.error);
+					break;
+
 				case 'acceptInvite':
-				case 'rejectInvite':
-				case 'acceptAll':
-				case 'rejectAll':
-					socket.emit('groups.' + action, {
-						toUid: uid,
-						groupName: groupName,
-					}, function (err) {
-						if (!err) {
+					api.put(`/groups/${ajaxify.data.group.slug}/invites/${app.user.uid}`).then(() => {
+						if (uid) {
+							userRow.remove();
+						} else {
 							ajaxify.refresh();
+						}
+					}).catch(alerts.error);
+					break;
+
+				case 'rescindInvite': // falls through
+				case 'rejectInvite':
+					api.del(`/groups/${ajaxify.data.group.slug}/invites/${uid || app.user.uid}`).then(() => {
+						if (uid) {
+							userRow.remove();
 						} else {
-							alerts.error(err);
+							ajaxify.refresh();
 						}
-					});
+					}).catch(alerts.error);
 					break;
+
+				case 'acceptAll': // falls throughs
+				case 'rejectAll': {
+					const listEl = document.querySelector('[component="groups/pending"]');
+					if (!listEl) {
+						return;
+					}
+
+					const method = action === 'acceptAll' ? 'put' : 'del';
+					let uids = Array.prototype.map.call(listEl.querySelectorAll('[data-uid]'), el => parseInt(el.getAttribute('data-uid'), 10));
+					uids = uids.filter((uid, idx) => uids.indexOf(uid) === idx);
+
+					Promise.all(uids.map(async uid => api[method](`/groups/${ajaxify.data.group.slug}/pending/${uid}`))).then(() => {
+						ajaxify.refresh();
+					}).catch(alerts.error);
+					break;
+				}
 			}
 		});
 	};
@@ -141,8 +170,8 @@ define('forum/groups/details', [
 		const labelColorValueEl = settingsFormEl.find('[name="labelColor"]');
 		const textColorValueEl = settingsFormEl.find('[name="textColor"]');
 		const iconBtn = settingsFormEl.find('[data-action="icon-select"]');
-		const previewEl = settingsFormEl.find('.label');
-		const previewElText = settingsFormEl.find('.label-text');
+		const previewEl = settingsFormEl.find('.badge');
+		const previewElText = settingsFormEl.find('.badge-text');
 		const previewIcon = previewEl.find('i');
 		const userTitleEl = settingsFormEl.find('[name="userTitle"]');
 		const userTitleEnabledEl = settingsFormEl.find('[name="userTitleEnabled"]');
@@ -165,7 +194,7 @@ define('forum/groups/details', [
 
 		// If the user title changes, update that too
 		userTitleEl.on('keyup', function () {
-			previewElText.translateText((this.value || settingsFormEl.find('#name').val()));
+			previewElText.translateText((userTitleEl.val()));
 		});
 
 		// Disable user title customisation options if the the user title itself is disabled
@@ -213,12 +242,10 @@ define('forum/groups/details', [
 			});
 
 			api.put(`/groups/${ajaxify.data.group.slug}`, settings).then(() => {
-				if (settings.name) {
+				if (settings.name !== ajaxify.data.group.name) {
 					let pathname = window.location.pathname;
 					pathname = pathname.slice(1, pathname.lastIndexOf('/') + 1);
 					ajaxify.go(pathname + slugify(settings.name));
-				} else {
-					ajaxify.refresh();
 				}
 
 				alerts.success('[[groups:event.updated]]');
@@ -245,37 +272,35 @@ define('forum/groups/details', [
 		if (!ajaxify.data.group.isOwner) {
 			return;
 		}
-
+		async function updateList() {
+			const data = await api.get(`/api/groups/${ajaxify.data.group.slug}`);
+			const html = await app.parseAndTranslate('groups/details', 'group.invited', { group: data.group });
+			$('[component="groups/invited"] tbody tr').remove();
+			$('[component="groups/invited"] tbody').html(html);
+		}
 		const searchInput = $('[component="groups/members/invite"]');
 		require(['autocomplete'], function (autocomplete) {
 			autocomplete.user(searchInput, function (event, selected) {
-				socket.emit('groups.issueInvite', {
-					toUid: selected.item.user.uid,
-					groupName: ajaxify.data.group.name,
-				}, function (err) {
-					if (err) {
-						return alerts.error(err);
-					}
-					ajaxify.refresh();
-				});
+				api.post(`/groups/${ajaxify.data.group.slug}/invites/${selected.item.user.uid}`).then(() => updateList()).catch(alerts.error);
 			});
 		});
 
-		$('[component="groups/members/bulk-invite-button"]').on('click', function () {
-			const usernames = $('[component="groups/members/bulk-invite"]').val();
+		$('[component="groups/members/bulk-invite-button"]').on('click', async () => {
+			let usernames = $('[component="groups/members/bulk-invite"]').val();
 			if (!usernames) {
 				return false;
 			}
-			socket.emit('groups.issueMassInvite', {
-				usernames: usernames,
-				groupName: ajaxify.data.group.name,
-			}, function (err) {
-				if (err) {
-					return alerts.error(err);
-				}
-				ajaxify.refresh();
-			});
-			return false;
+
+			// Filter out bad usernames
+			usernames = usernames.split(',').map(username => slugify(username));
+			usernames = await Promise.all(usernames.map(slug => api.head(`/users/bySlug/${slug}`).then(() => slug).catch(() => false)));
+			usernames = usernames.filter(Boolean);
+
+			const uids = await Promise.all(usernames.map(slug => api.get(`/users/bySlug/${slug}`).then(({ uid }) => uid)));
+
+			await Promise.all(uids.map(async uid => api.post(`/groups/${ajaxify.data.group.slug}/invites/${uid}`))).then(() => {
+				updateList();
+			}).catch(alerts.error);
 		});
 	}
 
diff --git a/public/src/client/header.js b/public/src/client/header.js
index 31de3bc475..f0ef69cf42 100644
--- a/public/src/client/header.js
+++ b/public/src/client/header.js
@@ -30,7 +30,7 @@ define('forum/header', [
 					.removeClass('away online dnd offline')
 					.addClass(status);
 				$('[component="header/usercontrol"] [data-status]').each(function () {
-					$(this).find('span').toggleClass('bold', $(this).attr('data-status') === status);
+					$(this).toggleClass('selected', $(this).attr('data-status') === status);
 				});
 				app.user.status = status;
 			});
@@ -43,31 +43,18 @@ define('forum/header', [
 		if (env === 'xs' || env === 'sm' || utils.isTouchDevice()) {
 			return;
 		}
-		$('#header-menu li a[title]').each(function () {
-			$(this).tooltip({
-				placement: 'bottom',
-				trigger: 'hover',
-				title: $(this).attr('title'),
-			});
-		});
-
-
-		$('#search-form').tooltip({
-			placement: 'bottom',
-			trigger: 'hover',
-			title: $('#search-button i').attr('title'),
-		});
-
 
-		$('#user_dropdown').tooltip({
+		$('#header-menu #main-nav').tooltip({
+			selector: '.nav-item',
 			placement: 'bottom',
 			trigger: 'hover',
-			title: $('#user_dropdown').attr('title'),
+			container: 'body',
+			animation: false,
 		});
 	}
 
 	function handleLogout() {
-		$('#header-menu .container').on('click', '[component="user/logout"]', function () {
+		$('body').on('click', '[component="user/logout"]', function () {
 			require(['logout'], function (logout) {
 				logout();
 			});
diff --git a/public/src/client/header/chat.js b/public/src/client/header/chat.js
index 8f87e2c513..6b4a04aaf9 100644
--- a/public/src/client/header/chat.js
+++ b/public/src/client/header/chat.js
@@ -1,22 +1,24 @@
 'use strict';
 
-define('forum/header/chat', ['components'], function (components) {
+define('forum/header/chat', ['components', 'hooks'], function (components, hooks) {
 	const chat = {};
 
 	chat.prepareDOM = function () {
-		const chatsToggleEl = components.get('chat/dropdown');
-		const chatsListEl = components.get('chat/list');
+		const chatsToggleEl = $('[component="chat/dropdown"]');
+		if (!chatsToggleEl.length) {
+			return;
+		}
 
-		chatsToggleEl.on('click', function () {
-			if (chatsToggleEl.parent().hasClass('open')) {
-				return;
-			}
-			requireAndCall('loadChatsDropdown', chatsListEl);
+		chatsToggleEl.on('show.bs.dropdown', (ev) => {
+			requireAndCall('loadChatsDropdown', $(ev.target).parent().find('[component="chat/list"]'));
 		});
 
-		if (chatsToggleEl.parents('.dropdown').hasClass('open')) {
-			requireAndCall('loadChatsDropdown', chatsListEl);
-		}
+		chatsToggleEl.each((index, el) => {
+			const dropdownEl = $(el).parent().find('.dropdown-menu');
+			if (dropdownEl.hasClass('show')) {
+				requireAndCall('loadChatsDropdown', dropdownEl.find('[component="chat/list"]'));
+			}
+		});
 
 		socket.removeListener('event:chats.receive', onChatMessageReceived);
 		socket.on('event:chats.receive', onChatMessageReceived);
@@ -28,9 +30,17 @@ define('forum/header/chat', ['components'], function (components) {
 		socket.on('event:chats.roomRename', onRoomRename);
 
 		socket.on('event:unread.updateChatCount', function (count) {
+			const chatIcon = components.get('chat/icon');
+			count = Math.max(0, count);
+			chatIcon.toggleClass('fa-comment', count > 0)
+				.toggleClass('fa-comment-o', count <= 0);
+
+			const countText = count > 99 ? '99+' : count;
 			components.get('chat/icon')
 				.toggleClass('unread-count', count > 0)
-				.attr('data-content', count > 99 ? '99+' : count);
+				.attr('data-content', countText);
+			components.get('chat/count').toggleClass('hidden', count <= 0).text(countText);
+			hooks.fire('action:chat.updateCount', { count });
 		});
 	};
 
diff --git a/public/src/client/header/unread.js b/public/src/client/header/unread.js
index 40e8e143cf..0d67c22526 100644
--- a/public/src/client/header/unread.js
+++ b/public/src/client/header/unread.js
@@ -1,6 +1,6 @@
 'use strict';
 
-define('forum/header/unread', function () {
+define('forum/header/unread', ['hooks'], function (hooks) {
 	const unread = {};
 	const watchStates = {
 		ignoring: 1,
@@ -83,12 +83,30 @@ define('forum/header/unread', function () {
 		if (!utils.isNumber(count)) {
 			return;
 		}
+		count = Math.max(0, count);
+		const countText = count > 99 ? '99+' : count;
 
-		$('a[href="' + config.relative_path + url + '"].navigation-link i')
+		const navLink = $('a[href="' + config.relative_path + url + '"].navigation-link');
+		// persona uses i with :after element
+		navLink.find('i')
 			.toggleClass('unread-count', count > 0)
-			.attr('data-content', count > 99 ? '99+' : count);
+			.attr('data-content', countText);
 
-		$('#mobile-menu [data-unread-url="' + url + '"]').attr('data-content', count > 99 ? '99+' : count);
+		// harmony uses BS5 absolute positioned element
+		navLink.find('[component="navigation/count"]')
+			.toggleClass('hidden', count <= 0)
+			.text(count);
+
+		// persona mobile menu uses data-content
+		$('#mobile-menu [data-unread-url="' + url + '"]')
+			.attr('data-content', countText);
+
+		// harmony mobile unread badge, doesn't use data-content
+		$('[component="unread/count"][data-unread-url="' + url + '"]')
+			.toggleClass('hidden', count <= 0)
+			.text(countText);
+
+		hooks.fire('action:unread.updateCount', { url, count });
 	}
 	unread.updateUnreadTopicCount = updateUnreadTopicCount;
 
diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js
index 25607d5d6d..32f5708a1c 100644
--- a/public/src/client/infinitescroll.js
+++ b/public/src/client/infinitescroll.js
@@ -39,7 +39,7 @@ define('forum/infinitescroll', ['hooks', 'alerts'], function (hooks, alerts) {
 	function onScroll() {
 		const bsEnv = utils.findBootstrapEnvironment();
 		const mobileComposerOpen = (bsEnv === 'xs' || bsEnv === 'sm') && $('html').hasClass('composing');
-		if (loadingMore || mobileComposerOpen) {
+		if (loadingMore || mobileComposerOpen || app.flags._glance) {
 			return;
 		}
 		const currentScrollTop = $(window).scrollTop();
diff --git a/public/src/client/notifications.js b/public/src/client/notifications.js
index 979d9d974b..af509a1edd 100644
--- a/public/src/client/notifications.js
+++ b/public/src/client/notifications.js
@@ -1,26 +1,19 @@
 'use strict';
 
 
-define('forum/notifications', ['components', 'alerts'], function (components, alerts) {
+define('forum/notifications', ['components', 'notifications'], function (components, notifications) {
 	const Notifications = {};
 
 	Notifications.init = function () {
 		const listEl = $('.notifications-list');
 		listEl.on('click', '[component="notifications/item/link"]', function () {
 			const nid = $(this).parents('[data-nid]').attr('data-nid');
-			socket.emit('notifications.markRead', nid, function (err) {
-				if (err) {
-					return alerts.error(err);
-				}
-			});
+			Notifications.markNotification(nid, true);
 		});
+		notifications.handleUnreadButton(listEl);
 
 		components.get('notifications/mark_all').on('click', function () {
-			socket.emit('notifications.markAllRead', function (err) {
-				if (err) {
-					return alerts.error(err);
-				}
-
+			notifications.markAllRead(function () {
 				components.get('notifications/item').removeClass('unread');
 			});
 		});
diff --git a/public/src/client/post-queue.js b/public/src/client/post-queue.js
index c33fa0486a..fa12e43017 100644
--- a/public/src/client/post-queue.js
+++ b/public/src/client/post-queue.js
@@ -3,105 +3,32 @@
 
 define('forum/post-queue', [
 	'categoryFilter', 'categorySelector', 'api', 'alerts', 'bootbox',
-], function (categoryFilter, categorySelector, api, alerts, bootbox) {
+	'accounts/moderate', 'accounts/delete',
+], function (
+	categoryFilter, categorySelector, api, alerts, bootbox,
+	AccountModerate, AccountsDelete
+) {
 	const PostQueue = {};
 
 	PostQueue.init = function () {
-		$('[data-toggle="tooltip"]').tooltip();
+		$('[data-bs-toggle="tooltip"]').tooltip();
 
 		categoryFilter.init($('[component="category/dropdown"]'), {
 			privilege: 'moderate',
 		});
 
+		handleActions();
 		handleBulkActions();
+		handleContentEdit('[data-action="editContent"]', '.post-content-editable', 'textarea', '.post-content');
+		handleContentEdit('[data-action="editTitle"]', '.topic-title-editable', 'input', '.topic-title');
 
-		$('.posts-list').on('click', '[data-action]', async function () {
-			function getMessage() {
-				return new Promise((resolve) => {
-					const modal = bootbox.dialog({
-						title: '[[post-queue:notify-user]]',
-						message: '<textarea class="form-control"></textarea>',
-						buttons: {
-							OK: {
-								label: '[[modules:bootbox.send]]',
-								callback: function () {
-									const val = modal.find('textarea').val();
-									if (val) {
-										resolve(val);
-									}
-								},
-							},
-						},
-					});
-				});
-			}
-
-			const parent = $(this).parents('[data-id]');
-			const action = $(this).attr('data-action');
-			const id = parent.attr('data-id');
-			const listContainer = parent.get(0).parentNode;
-
-			if ((!['accept', 'reject', 'notify'].includes(action)) || (action === 'reject' && !await confirmReject('[[post-queue:confirm-reject]]'))) {
-				return;
-			}
-
-			socket.emit('posts.' + action, {
-				id: id,
-				message: action === 'notify' ? await getMessage() : undefined,
-			}, function (err) {
-				if (err) {
-					return alerts.error(err);
-				}
-				if (action === 'accept' || action === 'reject') {
-					parent.remove();
-				}
-
-				if (listContainer.childElementCount === 0) {
-					if (ajaxify.data.singlePost) {
-						ajaxify.go('/post-queue' + window.location.search);
-					} else {
-						ajaxify.refresh();
-					}
-				}
-			});
-			return false;
+		$('.posts-list').on('click', '.topic-category[data-editable]', function (e) {
+			handleCategoryChange(this);
+			e.stopPropagation();
+			e.preventDefault();
 		});
 
-		handleContentEdit('.post-content', '.post-content-editable', 'textarea');
-		handleContentEdit('.topic-title', '.topic-title-editable', 'input');
-
-		$('.posts-list').on('click', '.topic-category[data-editable]', function () {
-			const $this = $(this);
-			const id = $this.parents('[data-id]').attr('data-id');
-			categorySelector.modal({
-				onSubmit: function (selectedCategory) {
-					Promise.all([
-						api.get(`/categories/${selectedCategory.cid}`, {}),
-						socket.emit('posts.editQueuedContent', {
-							id: id,
-							cid: selectedCategory.cid,
-						}),
-					]).then(function (result) {
-						const category = result[0];
-						app.parseAndTranslate('post-queue', 'posts', {
-							posts: [{
-								category: category,
-							}],
-						}, function (html) {
-							if ($this.find('.category-text').length) {
-								$this.find('.category-text').text(html.find('.topic-category .category-text').text());
-							} else {
-								// for backwards compatibility, remove in 1.16.0
-								$this.replaceWith(html.find('.topic-category'));
-							}
-						});
-					}).catch(alerts.error);
-				},
-			});
-			return false;
-		});
-
-		$('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive');
+		$('[component="post/content"] img:not(.not-responsive)').addClass('img-fluid');
 	};
 
 	function confirmReject(msg) {
@@ -110,12 +37,13 @@ define('forum/post-queue', [
 		});
 	}
 
-	function handleContentEdit(displayClass, editableClass, inputSelector) {
-		$('.posts-list').on('click', displayClass, function () {
+	function handleContentEdit(triggerClass, editableClass, inputSelector, displayClass) {
+		$('.posts-list').on('click', triggerClass, function () {
 			const el = $(this);
-			const inputEl = el.parent().find(editableClass);
+			const inputEl = el.parents('[data-id]').find(editableClass);
+			const displayEl = el.parents('[data-id]').find(displayClass);
 			if (inputEl.length) {
-				el.addClass('hidden');
+				displayEl.addClass('hidden');
 				inputEl.removeClass('hidden').find(inputSelector).focus();
 			}
 		});
@@ -124,7 +52,7 @@ define('forum/post-queue', [
 			const textarea = $(this);
 			const preview = textarea.parent().parent().find(displayClass);
 			const id = textarea.parents('[data-id]').attr('data-id');
-			const titleEdit = displayClass === '.topic-title';
+			const titleEdit = triggerClass === '[data-action="editTitle"]';
 
 			socket.emit('posts.editQueuedContent', {
 				id: id,
@@ -135,12 +63,7 @@ define('forum/post-queue', [
 					return alerts.error(err);
 				}
 				if (titleEdit) {
-					if (preview.find('.title-text').length) {
-						preview.find('.title-text').text(data.postData.title);
-					} else {
-						// for backwards compatibility, remove in 1.16.0
-						preview.html(data.postData.title);
-					}
+					preview.find('.title-text').text(data.postData.title);
 				} else {
 					preview.html(data.postData.content);
 				}
@@ -151,6 +74,144 @@ define('forum/post-queue', [
 		});
 	}
 
+	function handleCategoryChange(categoryEl) {
+		const $this = $(categoryEl);
+		const id = $this.parents('[data-id]').attr('data-id');
+		categorySelector.modal({
+			onSubmit: function (selectedCategory) {
+				Promise.all([
+					api.get(`/categories/${selectedCategory.cid}`, {}),
+					socket.emit('posts.editQueuedContent', {
+						id: id,
+						cid: selectedCategory.cid,
+					}),
+				]).then(function (result) {
+					const category = result[0];
+					app.parseAndTranslate('post-queue', 'posts', {
+						posts: [{
+							category: category,
+						}],
+					}, function (html) {
+						if ($this.find('.category-text').length) {
+							$this.find('.category-text').text(html.find('.topic-category .category-text').text());
+						} else {
+							// for backwards compatibility, remove in 1.16.0
+							$this.replaceWith(html.find('.topic-category'));
+						}
+					});
+				}).catch(alerts.error);
+			},
+		});
+		return false;
+	}
+
+	function handleActions() {
+		const listEl = document.querySelector('.posts-list');
+		if (listEl) {
+			listEl.addEventListener('click', (e) => {
+				const subselector = e.target.closest('[data-action]');
+				if (subselector) {
+					const action = subselector.getAttribute('data-action');
+					const uid = subselector.closest('[data-uid]').getAttribute('data-uid');
+
+					switch (action) {
+						case 'editCategory': {
+							const categoryEl = e.target.closest('[data-id]').querySelector('.topic-category');
+							handleCategoryChange(categoryEl);
+							break;
+						}
+
+						case 'ban':
+							AccountModerate.banAccount(uid, ajaxify.refresh);
+							break;
+
+						case 'unban':
+							AccountModerate.unbanAccount(uid);
+							break;
+
+						case 'mute':
+							AccountModerate.muteAccount(uid, ajaxify.refresh);
+							break;
+
+						case 'unmute':
+							AccountModerate.unmuteAccount(uid);
+							break;
+
+						case 'delete-account':
+							AccountsDelete.account(uid, ajaxify.refresh);
+							break;
+
+						case 'delete-content':
+							AccountsDelete.content(uid, ajaxify.refresh);
+							break;
+
+						case 'delete-all':
+							AccountsDelete.purge(uid, ajaxify.refresh);
+							break;
+
+						default:
+							handleQueueActions.call(e.target);
+							break;
+					}
+				}
+			});
+		}
+	}
+
+	async function handleQueueActions() {
+		// accept, reject, notify
+		function getMessage() {
+			return new Promise((resolve) => {
+				const modal = bootbox.dialog({
+					title: '[[post-queue:notify-user]]',
+					message: '<textarea class="form-control"></textarea>',
+					buttons: {
+						OK: {
+							label: '[[modules:bootbox.send]]',
+							callback: function () {
+								const val = modal.find('textarea').val();
+								if (val) {
+									resolve(val);
+								}
+							},
+						},
+					},
+				});
+			});
+		}
+
+		const parent = $(this).parents('[data-id]');
+		const action = $(this).attr('data-action');
+		const id = parent.attr('data-id');
+		const listContainer = parent.get(0).parentNode;
+
+		if ((!['accept', 'reject', 'notify'].includes(action)) ||
+			(action === 'reject' && !await confirmReject(ajaxify.data.canAccept ? '[[post-queue:confirm-reject]]' : '[[post-queue:confirm-remove]]'))) {
+			return;
+		}
+
+		socket.emit('posts.' + action, {
+			id: id,
+			message: action === 'notify' ? await getMessage() : undefined,
+		}, function (err) {
+			if (err) {
+				return alerts.error(err);
+			}
+			if (action === 'accept' || action === 'reject') {
+				parent.remove();
+			}
+
+			if (listContainer.childElementCount === 0) {
+				if (ajaxify.data.singlePost) {
+					ajaxify.go('/post-queue' + window.location.search);
+				} else {
+					ajaxify.refresh();
+				}
+			}
+		});
+		return false;
+	}
+
 	function handleBulkActions() {
 		$('[component="post-queue/bulk-actions"]').on('click', '[data-action]', async function () {
 			const bulkAction = $(this).attr('data-action');
@@ -162,7 +223,10 @@ define('forum/post-queue', [
 			}
 			const ids = queueEls.map((i, el) => $(el).attr('data-id')).get();
 			const showConfirm = bulkAction === 'reject-all' || bulkAction === 'reject-selected';
-			if (!ids.length || (showConfirm && !(await confirmReject(`[[post-queue:${bulkAction}-confirm, ${ids.length}]]`)))) {
+			const translationString = ajaxify.data.canAccept ?
+				`${bulkAction}-confirm` :
+				`${bulkAction.replace(/^reject/, 'remove')}-confirm`;
+			if (!ids.length || (showConfirm && !(await confirmReject(`[[post-queue:${translationString}, ${ids.length}]]`)))) {
 				return;
 			}
 			const action = bulkAction.split('-')[0];
diff --git a/public/src/client/search.js b/public/src/client/search.js
index 6615b5f6ea..f9d7bdbc6d 100644
--- a/public/src/client/search.js
+++ b/public/src/client/search.js
@@ -3,25 +3,32 @@
 
 define('forum/search', [
 	'search',
-	'autocomplete',
 	'storage',
 	'hooks',
 	'alerts',
-], function (searchModule, autocomplete, storage, hooks, alerts) {
+	'api',
+	'translator',
+	'categoryFilter',
+	'userFilter',
+], function (searchModule, storage, hooks, alerts, api, translator, categoryFilter, userFilter) {
 	const Search = {};
+	let selectedUsers = [];
+	let selectedTags = [];
+	let selectedCids = [];
 
 	Search.init = function () {
-		const searchQuery = $('#results').attr('data-search-query');
-
 		const searchIn = $('#search-in');
-
 		searchIn.on('change', function () {
 			updateFormItemVisiblity(searchIn.val());
 		});
 
-		searchModule.highlightMatches(searchQuery, $('.search-result-text p, .search-result-text.search-result-title a'));
+		const searchQuery = $('#results').attr('data-search-query');
+		searchModule.highlightMatches(
+			searchQuery,
+			$('.search-results .content p, .search-results .topic-title')
+		);
 
-		$('#advanced-search').off('submit').on('submit', function (e) {
+		$('#advanced-search form').off('submit').on('submit', function (e) {
 			e.preventDefault();
 			searchModule.query(getSearchDataFromDOM(), function () {
 				$('#search-input').val('');
@@ -31,11 +38,75 @@ define('forum/search', [
 
 		handleSavePreferences();
 
-		enableAutoComplete();
+		categoryFilterDropdown(ajaxify.data.selectedCids);
+		userFilterDropdown($('[component="user/filter"]'), ajaxify.data.userFilterSelected);
+		tagFilterDropdown($('[component="tag/filter"]'), ajaxify.data.tagFilterSelected);
+
+		$('[component="search/filters"]').on('hidden.bs.dropdown', '.dropdown', function () {
+			const updateFns = {
+				replies: updateReplyCountFilter,
+				time: updateTimeFilter,
+				sort: updateSortFilter,
+				tag: updateTagFilter,
+			};
+
+			if (updateFns[$(this).attr('data-filter-name')]) {
+				updateFns[$(this).attr('data-filter-name')]();
+			}
+		});
 
 		fillOutForm();
+		updateTimeFilter();
+		updateReplyCountFilter();
+		updateSortFilter();
 	};
 
+	function updateTagFilter() {
+		const isActive = selectedTags.length > 0;
+		let labelText = '[[search:tags]]';
+		if (selectedTags.length) {
+			labelText = translator.compile(
+				'search:tags-x', selectedTags.map(u => u.valueEscaped).join(', ')
+			);
+		}
+		$('[component="tag/filter/button"]').toggleClass(
+			'active-filter', isActive
+		).find('.filter-label').translateText(labelText);
+	}
+
+	function updateTimeFilter() {
+		const isActive = $('#post-time-range').val() > 0;
+		$('#post-time-button').toggleClass(
+			'active-filter', isActive
+		).find('.filter-label').translateText(
+			isActive ?
+				`[[search:time-${$('#post-time-filter').val()}-than-${$('#post-time-range').val()}]]` :
+				`[[search:time]]`
+		);
+	}
+
+	function updateSortFilter() {
+		const isActive = $('#post-sort-by').val() !== 'relevance' || $('#post-sort-direction').val() !== 'desc';
+		$('#sort-by-button').toggleClass(
+			'active-filter', isActive
+		).find('.filter-label').translateText(
+			isActive ?
+				`[[search:sort-by-${$('#post-sort-by').val()}-${$('#post-sort-direction').val()}]]` :
+				`[[search:sort]]`
+		);
+	}
+
+	function updateReplyCountFilter() {
+		const isActive = $('#reply-count').val() > 0;
+		$('#reply-count-button').toggleClass(
+			'active-filter', isActive
+		).find('.filter-label').translateText(
+			isActive ?
+				`[[search:replies-${$('#reply-count-filter').val()}-count, ${$('#reply-count').val()}]]` :
+				`[[search:replies]]`
+		);
+	}
+
 	function getSearchDataFromDOM() {
 		const form = $('#advanced-search');
 		const searchData = {
@@ -44,17 +115,17 @@ define('forum/search', [
 		searchData.term = $('#search-input').val();
 		if (searchData.in === 'posts' || searchData.in === 'titlesposts' || searchData.in === 'titles') {
 			searchData.matchWords = form.find('#match-words-filter').val();
-			searchData.by = form.find('#posted-by-user').tagsinput('items');
-			searchData.categories = form.find('#posted-in-categories').val();
+			searchData.by = selectedUsers.length ? selectedUsers.map(u => u.username) : undefined;
+			searchData.categories = selectedCids.length ? selectedCids : undefined;
 			searchData.searchChildren = form.find('#search-children').is(':checked');
-			searchData.hasTags = form.find('#has-tags').tagsinput('items');
+			searchData.hasTags = selectedTags.length ? selectedTags.map(t => t.value) : undefined;
 			searchData.replies = form.find('#reply-count').val();
 			searchData.repliesFilter = form.find('#reply-count-filter').val();
 			searchData.timeFilter = form.find('#post-time-filter').val();
 			searchData.timeRange = form.find('#post-time-range').val();
 			searchData.sortBy = form.find('#post-sort-by').val();
 			searchData.sortDirection = form.find('#post-sort-direction').val();
-			searchData.showAs = form.find('#show-as-topics').is(':checked') ? 'topics' : 'posts';
+			searchData.showAs = form.find('#show-results-as').val();
 		}
 
 		hooks.fire('action:search.getSearchDataFromDOM', {
@@ -66,8 +137,8 @@ define('forum/search', [
 	}
 
 	function updateFormItemVisiblity(searchIn) {
-		const hide = searchIn.indexOf('posts') === -1 && searchIn.indexOf('titles') === -1;
-		$('.post-search-item').toggleClass('hide', hide);
+		const hideTitlePostFilters = !searchIn.includes('posts') && !searchIn.includes('titles');
+		$('.post-search-item').toggleClass('hidden', hideTitlePostFilters);
 	}
 
 	function fillOutForm() {
@@ -90,6 +161,10 @@ define('forum/search', [
 				$('#match-words-filter').val(formData.matchWords);
 			}
 
+			if (formData.showAs) {
+				$('#show-results-as').val(formData.showAs);
+			}
+
 			if (formData.by) {
 				formData.by = Array.isArray(formData.by) ? formData.by : [formData.by];
 				formData.by.forEach(function (by) {
@@ -127,13 +202,6 @@ define('forum/search', [
 			}
 			$('#post-sort-direction').val(formData.sortDirection || 'desc');
 
-			if (formData.showAs) {
-				const isTopic = formData.showAs === 'topics';
-				const isPost = formData.showAs === 'posts';
-				$('#show-as-topics').prop('checked', isTopic).parent().toggleClass('active', isTopic);
-				$('#show-as-posts').prop('checked', isPost).parent().toggleClass('active', isPost);
-			}
-
 			hooks.fire('action:search.fillOutForm', {
 				form: formData,
 			});
@@ -142,39 +210,180 @@ define('forum/search', [
 
 	function handleSavePreferences() {
 		$('#save-preferences').on('click', function () {
-			storage.setItem('search-preferences', JSON.stringify(getSearchDataFromDOM()));
+			const data = getSearchDataFromDOM();
+			const fieldsToSave = [
+				'matchWords', 'in', 'showAs',
+				'replies', 'repliesFilter',
+				'timeFilter', 'timeRange',
+				'sortBy', 'sortDirection',
+			];
+			const saveData = {};
+			fieldsToSave.forEach((key) => {
+				saveData[key] = data[key];
+			});
+			storage.setItem('search-preferences', JSON.stringify(saveData));
 			alerts.success('[[search:search-preferences-saved]]');
 			return false;
 		});
 
-		$('#clear-preferences').on('click', function () {
+		$('#clear-preferences').on('click', async function () {
 			storage.removeItem('search-preferences');
-			const query = $('#search-input').val();
-			$('#advanced-search')[0].reset();
-			$('#search-input').val(query);
+			const html = await app.parseAndTranslate('partials/search-filters', {});
+			$('[component="search/filters"]').replaceWith(html);
+			$('#search-in').val(ajaxify.data.searchDefaultIn);
+			$('#post-sort-by').val(ajaxify.data.searchDefaultSortBy);
+			$('#match-words-filter').val('all');
+			$('#show-results-as').val('posts');
+			// clearing dom removes all event handlers, reinitialize
+			userFilterDropdown($('[component="user/filter"]'), []);
+			tagFilterDropdown($('[component="tag/filter"]'), []);
+			categoryFilterDropdown([]);
 			alerts.success('[[search:search-preferences-cleared]]');
 			return false;
 		});
 	}
 
-	function enableAutoComplete() {
-		const userEl = $('#posted-by-user');
-		userEl.tagsinput({
-			confirmKeys: [13, 44],
-			trimValue: true,
+
+	function categoryFilterDropdown(_selectedCids) {
+		ajaxify.data.allCategoriesUrl = '';
+		const dropdownEl = $('[component="category/filter"]');
+		categoryFilter.init(dropdownEl, {
+			selectedCids: _selectedCids,
+			updateButton: false, // prevent categoryFilter module from updating the button
+			onHidden: async function (data) {
+				const isActive = data.selectedCids.length > 0 && data.selectedCids[0] !== 'all';
+				let labelText = '[[search:categories]]';
+				ajaxify.data.selectedCids = data.selectedCids;
+				selectedCids = data.selectedCids;
+				if (data.selectedCids.length === 1 && data.selectedCids[0] === 'watched') {
+					ajaxify.data.selectedCategory = { cid: 'watched' };
+					labelText = `[[search:categories-watched-categories]]`;
+				} else if (data.selectedCids.length === 1 && data.selectedCids[0] === 'all') {
+					ajaxify.data.selectedCategory = null;
+				} else if (data.selectedCids.length > 0) {
+					const categoryData = await api.get(`/categories/${data.selectedCids[0]}`);
+					ajaxify.data.selectedCategory = categoryData;
+					labelText = `[[search:categories-x, ${categoryData.name}]]`;
+				}
+				if (data.selectedCids.length > 1) {
+					labelText = `[[search:categories-x, ${data.selectedCids.length}]]`;
+				}
+
+				$('[component="category/filter/button"]').toggleClass(
+					'active-filter', isActive
+				).find('.filter-label').translateText(labelText);
+			},
+			localCategories: [
+				{
+					cid: 'watched',
+					name: '[[category:watched-categories]]',
+					icon: '',
+				},
+			],
 		});
-		if (app.user.privileges['search:users']) {
-			autocomplete.user(userEl.siblings('.bootstrap-tagsinput').find('input'));
-		}
+	}
 
-		const tagEl = $('#has-tags');
-		tagEl.tagsinput({
-			confirmKeys: [13, 44],
-			trimValue: true,
+	function userFilterDropdown(el, _selectedUsers) {
+		userFilter.init(el, {
+			selectedUsers: _selectedUsers,
+			template: 'partials/search-filters',
+			onSelect: function (_selectedUsers) {
+				selectedUsers = _selectedUsers;
+			},
+			onHidden: function (_selectedUsers) {
+				const isActive = _selectedUsers.length > 0;
+				let labelText = '[[search:posted-by]]';
+				if (isActive) {
+					labelText = translator.compile(
+						'search:posted-by-usernames', selectedUsers.map(u => u.username).join(', ')
+					);
+				}
+				el.find('[component="user/filter/button"]').toggleClass(
+					'active-filter', isActive
+				).find('.filter-label').translateText(labelText);
+			},
 		});
-		if (app.user.privileges['search:tags']) {
-			autocomplete.tag(tagEl.siblings('.bootstrap-tagsinput').find('input'));
+	}
+
+	function tagFilterDropdown(el, _selectedTags) {
+		selectedTags = _selectedTags;
+		async function renderSelectedTags() {
+			const html = await app.parseAndTranslate('partials/search-filters', 'tagFilterSelected', {
+				tagFilterSelected: selectedTags,
+			});
+			el.find('[component="tag/filter/selected"]').html(html);
+		}
+		function tagValueToObject(value) {
+			const escapedTag = utils.escapeHTML(value);
+			return {
+				value: value,
+				valueEscaped: escapedTag,
+				valueEncoded: encodeURIComponent(escapedTag),
+				class: escapedTag.replace(/\s/g, '-'),
+			};
+		}
+
+		async function doSearch() {
+			let result = { tags: [] };
+			const query = el.find('[component="tag/filter/search"]').val();
+			if (query && query.length > 1) {
+				if (app.user.privileges['search:tags']) {
+					result = await socket.emit('topics.searchAndLoadTags', { query: query });
+				} else {
+					result = {
+						tags: [tagValueToObject(query)],
+					};
+				}
+			}
+
+			if (!result.tags.length) {
+				el.find('[component="tag/filter/results"]').translateHtml(
+					'[[tags:no-tags-found]]'
+				);
+				return;
+			}
+			result.tags = result.tags.slice(0, 20);
+			const tagMap = {};
+			result.tags.forEach((tag) => {
+				tagMap[tag.valueEscaped] = tag;
+			});
+
+			const html = await app.parseAndTranslate('partials/search-filters', 'tagFilterResults', {
+				tagFilterResults: result.tags,
+			});
+			el.find('[component="tag/filter/results"]').html(html);
+			el.find('[component="tag/filter/results"] [data-tag]').on('click', async function () {
+				selectedTags.push(tagMap[$(this).attr('data-tag')]);
+				renderSelectedTags();
+			});
 		}
+
+		el.find('[component="tag/filter/search"]').on('keyup', utils.debounce(function () {
+			if (app.user.privileges['search:tags']) {
+				doSearch();
+			}
+		}, 1000));
+
+		el.on('click', '[component="tag/filter/delete"]', function () {
+			const deleteTag = $(this).attr('data-tag');
+			selectedTags = selectedTags.filter(tag => tag.valueEscaped !== deleteTag);
+			renderSelectedTags();
+		});
+
+		el.find('[component="tag/filter/search"]').on('keyup', (e) => {
+			if (e.key === 'Enter' && !app.user.privileges['search:tags']) {
+				const value = el.find('[component="tag/filter/search"]').val();
+				if (value && selectedTags.every(tag => tag.value !== value)) {
+					selectedTags.push(tagValueToObject(value));
+					renderSelectedTags();
+				}
+				el.find('[component="tag/filter/search"]').val('');
+			}
+		});
+
+		el.on('shown.bs.dropdown', function () {
+			el.find('[component="tag/filter/search"]').trigger('focus');
+		});
 	}
 
 	return Search;
diff --git a/public/src/client/tags.js b/public/src/client/tags.js
index d2b3ff3725..ca8036ee76 100644
--- a/public/src/client/tags.js
+++ b/public/src/client/tags.js
@@ -6,7 +6,6 @@ define('forum/tags', ['forum/infinitescroll', 'alerts'], function (infinitescrol
 
 	Tags.init = function () {
 		app.enterRoom('tags');
-		$('#tag-search').focus();
 		$('#tag-search').on('input propertychange', utils.debounce(function () {
 			if (!$('#tag-search').val().length) {
 				return resetSearch();
diff --git a/public/src/client/topic.js b/public/src/client/topic.js
index 8f0bf52f25..d249447f3a 100644
--- a/public/src/client/topic.js
+++ b/public/src/client/topic.js
@@ -9,6 +9,7 @@ define('forum/topic', [
 	'forum/topic/posts',
 	'navigator',
 	'sort',
+	'quickreply',
 	'components',
 	'storage',
 	'hooks',
@@ -16,7 +17,7 @@ define('forum/topic', [
 	'alerts',
 ], function (
 	infinitescroll, threadTools, postTools,
-	events, posts, navigator, sort,
+	events, posts, navigator, sort, quickreply,
 	components, storage, hooks, api, alerts
 ) {
 	const Topic = {};
@@ -33,7 +34,7 @@ define('forum/topic', [
 		}
 	});
 
-	Topic.init = function () {
+	Topic.init = async function () {
 		const tidChanged = !tid || parseInt(tid, 10) !== parseInt(ajaxify.data.tid, 10);
 		tid = ajaxify.data.tid;
 		currentUrl = ajaxify.currentPage;
@@ -44,8 +45,8 @@ define('forum/topic', [
 		if (tidChanged) {
 			posts.signaturesShown = {};
 		}
-		posts.onTopicPageLoad(components.get('post'));
-		navigator.init('[component="post"]', ajaxify.data.postcount, Topic.toTop, Topic.toBottom, utils.debounce(Topic.navigatorCallback, 500));
+		await posts.onTopicPageLoad(components.get('post'));
+		navigator.init('[component="post"]', ajaxify.data.postcount, Topic.toTop, Topic.toBottom, Topic.navigatorCallback);
 
 		postTools.init(tid);
 		threadTools.init(tid, $('.topic'));
@@ -62,7 +63,7 @@ define('forum/topic', [
 		addDropupHandler();
 		addRepliesHandler();
 		addPostsPreviewHandler();
-
+		setupQuickReply();
 		handleBookmark(tid);
 
 		$(window).on('scroll', utils.debounce(updateTopicTitle, 250));
@@ -78,8 +79,9 @@ define('forum/topic', [
 				require(['search'], function (search) {
 					mousetrap.bind(['command+f', 'ctrl+f'], function (e) {
 						e.preventDefault();
-						$('#search-fields input').val('in:topic-' + ajaxify.data.tid + ' ');
-						search.showAndFocusInput();
+						const form = $('[component="navbar"] [component="search/form"]');
+						form.find('[component="search/fields"] input[name="query"]').val('in:topic-' + ajaxify.data.tid + ' ');
+						search.showAndFocusInput(form);
 					});
 
 					hooks.onPage('action:ajaxify.cleanup', () => {
@@ -134,12 +136,13 @@ define('forum/topic', [
 		if (window.location.hash) {
 			const el = $(utils.escapeHTML(window.location.hash));
 			if (el.length) {
-				return navigator.scrollToElement(el, true, 0);
+				const postEl = el.parents('[data-pid]');
+				return navigator.scrollToElement(postEl, true, 0);
 			}
 		}
 		const bookmark = ajaxify.data.bookmark || storage.getItem('topic:' + tid + ':bookmark');
 		const postIndex = ajaxify.data.postIndex;
-
+		updateUserBookmark(postIndex);
 		if (postIndex > 1) {
 			if (components.get('post/anchor', postIndex - 1).length) {
 				return navigator.scrollToPostIndex(postIndex - 1, true, 0);
@@ -204,7 +207,8 @@ define('forum/topic', [
 
 	function addDropupHandler() {
 		// Locate all dropdowns
-		const target = $('#content .dropdown-menu').parent();
+		const topicEl = components.get('topic');
+		const target = topicEl.find('.dropdown-menu').parent();
 		$(target).on('shown.bs.dropdown', function () {
 			const dropdownEl = this.querySelector('.dropdown-menu');
 			if (dropdownEl.innerHTML) {
@@ -233,13 +237,17 @@ define('forum/topic', [
 			return;
 		}
 		let timeoutId = 0;
+		let destroyed = false;
 		const postCache = {};
-		$(window).one('action:ajaxify.start', function () {
+		function destroyTooltip() {
 			clearTimeout(timeoutId);
 			$('#post-tooltip').remove();
-		});
+			destroyed = true;
+		}
+		$(window).one('action:ajaxify.start', destroyTooltip);
 		$('[component="topic"]').on('mouseenter', '[component="post"] a, [component="topic/event"] a', async function () {
 			const link = $(this);
+			destroyed = false;
 
 			async function renderPost(pid) {
 				const postData = postCache[pid] || await socket.emit('posts.getPostSummaryByPid', { pid: pid });
@@ -247,6 +255,9 @@ define('forum/topic', [
 				if (postData && ajaxify.data.template.topic) {
 					postCache[pid] = postData;
 					const tooltip = await app.parseAndTranslate('partials/topic/post-preview', { post: postData });
+					if (destroyed) {
+						return;
+					}
 					tooltip.hide().find('.timeago').timeago();
 					tooltip.appendTo($('body')).fadeIn(300);
 					const postContent = link.parents('[component="topic"]').find('[component="post/content"]').first();
@@ -284,10 +295,13 @@ define('forum/topic', [
 					renderPost(topicData.mainPid);
 				}, 300);
 			}
-		}).on('mouseleave', '[component="post"] a, [component="topic/event"] a', function () {
-			clearTimeout(timeoutId);
-			$('#post-tooltip').remove();
-		});
+		}).on('mouseleave', '[component="post"] a, [component="topic/event"] a', destroyTooltip);
+	}
+
+	function setupQuickReply() {
+		if (config.enableQuickReply || config.theme.enableQuickReply) {
+			quickreply.init();
+		}
 	}
 
 	function updateTopicTitle() {
@@ -317,7 +331,6 @@ define('forum/topic', [
 
 			updateUserBookmark(index);
 
-			Topic.replaceURLTimeout = 0;
 			if (ajaxify.data.updateUrlWithPostIndex && history.replaceState) {
 				let search = window.location.search || '';
 				if (!config.usePagination) {
@@ -347,14 +360,16 @@ define('forum/topic', [
 			)
 		) {
 			if (app.user.uid) {
+				ajaxify.data.bookmark = Math.min(index, ajaxify.data.postcount);
+
 				socket.emit('topics.bookmark', {
 					tid: ajaxify.data.tid,
-					index: index,
+					index: ajaxify.data.bookmark,
 				}, function (err) {
 					if (err) {
+						ajaxify.data.bookmark = currentBookmark;
 						return alerts.error(err);
 					}
-					ajaxify.data.bookmark = index + 1;
 				});
 			} else {
 				storage.setItem(bookmarkKey, index);
diff --git a/public/src/client/topic/change-owner.js b/public/src/client/topic/change-owner.js
index 09c875d2f4..725080db6f 100644
--- a/public/src/client/topic/change-owner.js
+++ b/public/src/client/topic/change-owner.js
@@ -15,14 +15,14 @@ define('forum/topic/change-owner', [
 		if (modal) {
 			return;
 		}
-		app.parseAndTranslate('partials/change_owner_modal', {}, function (html) {
+		app.parseAndTranslate('modals/change-owner', {}, function (html) {
 			modal = html;
 
 			commit = modal.find('#change_owner_commit');
 
 			$('body').append(modal);
 
-			modal.find('.close,#change_owner_cancel').on('click', closeModal);
+			modal.find('#change_owner_cancel').on('click', closeModal);
 			modal.find('#username').on('keyup', checkButtonEnable);
 			postSelect.init(onPostToggled, {
 				allowMainPostSelect: true,
diff --git a/public/src/client/topic/delete-posts.js b/public/src/client/topic/delete-posts.js
index 93d3e0259e..0f5a1c1d9d 100644
--- a/public/src/client/topic/delete-posts.js
+++ b/public/src/client/topic/delete-posts.js
@@ -18,7 +18,7 @@ define('forum/topic/delete-posts', [
 			return;
 		}
 
-		app.parseAndTranslate('partials/delete_posts_modal', {}, function (html) {
+		app.parseAndTranslate('modals/delete-posts', {}, function (html) {
 			modal = html;
 
 			$('body').append(modal);
@@ -26,7 +26,7 @@ define('forum/topic/delete-posts', [
 			deleteBtn = modal.find('#delete_posts_confirm');
 			purgeBtn = modal.find('#purge_posts_confirm');
 
-			modal.find('.close,#delete_posts_cancel').on('click', closeModal);
+			modal.find('#delete_posts_cancel').on('click', closeModal);
 
 			postSelect.init(function () {
 				checkButtonEnable();
@@ -52,7 +52,7 @@ define('forum/topic/delete-posts', [
 
 	function deletePosts(btn, route) {
 		btn.attr('disabled', true);
-		Promise.all(postSelect.pids.map(pid => api.delete(route(pid), {})))
+		Promise.all(postSelect.pids.map(pid => api.del(route(pid), {})))
 			.then(closeModal)
 			.catch(alerts.error)
 			.finally(() => {
diff --git a/public/src/client/topic/diffs.js b/public/src/client/topic/diffs.js
index ea492348cb..d635c4e0f6 100644
--- a/public/src/client/topic/diffs.js
+++ b/public/src/client/topic/diffs.js
@@ -109,7 +109,7 @@ define('forum/topic/diffs', ['api', 'bootbox', 'alerts', 'forum/topic/images'],
 				params.unshift(blockName);
 			}
 
-			app.parseAndTranslate('partials/modals/post_history', ...params);
+			app.parseAndTranslate('modals/post-history', ...params);
 		});
 	}
 
diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js
index 53037e8bfa..5e0c311f6b 100644
--- a/public/src/client/topic/events.js
+++ b/public/src/client/topic/events.js
@@ -138,7 +138,7 @@ define('forum/topic/events', [
 		if (data.post.changed) {
 			editedPostEl.fadeOut(250, function () {
 				editedPostEl.html(translator.unescape(data.post.content));
-				editedPostEl.find('img:not(.not-responsive)').addClass('img-responsive');
+				editedPostEl.find('img:not(.not-responsive)').addClass('img-fluid');
 				images.wrapImagesInLinks(editedPostEl.parent());
 				posts.addBlockquoteEllipses(editedPostEl.parent());
 				editedPostEl.fadeIn(250);
@@ -160,9 +160,9 @@ define('forum/topic/events', [
 
 		if (data.topic.tags && data.topic.tagsupdated) {
 			Benchpress.render('partials/topic/tags', { tags: data.topic.tags }).then(function (html) {
-				const tags = $('.tags');
-
+				const tags = $('[data-pid="' + data.post.pid + '"] .tags');
 				tags.fadeOut(250, function () {
+					tags.toggleClass('hidden', data.topic.tags.length === 0);
 					tags.html(html).fadeIn(250);
 				});
 			});
diff --git a/public/src/client/topic/fork.js b/public/src/client/topic/fork.js
index 28d2573fc8..c0e67b6adf 100644
--- a/public/src/client/topic/fork.js
+++ b/public/src/client/topic/fork.js
@@ -16,14 +16,14 @@ define('forum/topic/fork', ['components', 'postSelect', 'alerts'], function (com
 			return;
 		}
 
-		app.parseAndTranslate('partials/fork_thread_modal', {}, function (html) {
+		app.parseAndTranslate('modals/fork-topic', {}, function (html) {
 			forkModal = html;
 
 			forkCommit = forkModal.find('#fork_thread_commit');
 
 			$('body').append(forkModal);
 
-			forkModal.find('.close,#fork_thread_cancel').on('click', closeForkModal);
+			forkModal.find('#fork_thread_cancel').on('click', closeForkModal);
 			forkModal.find('#fork-title').on('keyup', checkForkButtonEnable);
 
 			postSelect.init(function () {
diff --git a/public/src/client/topic/merge.js b/public/src/client/topic/merge.js
index 2be7e35378..1dce760c1b 100644
--- a/public/src/client/topic/merge.js
+++ b/public/src/client/topic/merge.js
@@ -13,14 +13,14 @@ define('forum/topic/merge', ['search', 'alerts', 'api'], function (search, alert
 		if (modal) {
 			return;
 		}
-		app.parseAndTranslate('partials/merge_topics_modal', {}, function (html) {
+		app.parseAndTranslate('modals/merge-topic', {}, function (html) {
 			modal = html;
 
 			$('body').append(modal);
 
 			mergeBtn = modal.find('#merge_topics_confirm');
 
-			modal.find('.close,#merge_topics_cancel').on('click', closeModal);
+			modal.find('#merge_topics_cancel').on('click', closeModal);
 
 			$('#content').on('click', '[component="topic/select"]', onTopicClicked);
 
@@ -111,7 +111,7 @@ define('forum/topic/merge', ['search', 'alerts', 'api'], function (search, alert
 		});
 
 		if (tids.length) {
-			app.parseAndTranslate('partials/merge_topics_modal', {
+			app.parseAndTranslate('modals/merge-topic', {
 				config: config,
 				topics: topics,
 			}, function (html) {
diff --git a/public/src/client/topic/move-post.js b/public/src/client/topic/move-post.js
index 707c99d449..5d02be63ee 100644
--- a/public/src/client/topic/move-post.js
+++ b/public/src/client/topic/move-post.js
@@ -22,7 +22,7 @@ define('forum/topic/move-post', [
 
 			$('body').append(moveModal);
 
-			moveModal.find('.close,#move_posts_cancel').on('click', closeMoveModal);
+			moveModal.find('#move_posts_cancel').on('click', closeMoveModal);
 			moveModal.find('#topicId').on('keyup', utils.debounce(checkMoveButtonEnable, 200));
 			postSelect.init(onPostToggled);
 			showPostsSelected();
diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js
index a22ff6ef25..c856c8a27b 100644
--- a/public/src/client/topic/move.js
+++ b/public/src/client/topic/move.js
@@ -1,12 +1,17 @@
 'use strict';
 
 
-define('forum/topic/move', ['categorySelector', 'alerts', 'hooks'], function (categorySelector, alerts, hooks) {
+define('forum/topic/move', [
+	'categorySelector', 'alerts', 'hooks',
+], function (categorySelector, alerts, hooks) {
 	const Move = {};
 	let modal;
 	let selectedCategory;
 
 	Move.init = function (tids, currentCid, onComplete) {
+		if (modal) {
+			return;
+		}
 		Move.tids = tids;
 		Move.currentCid = currentCid;
 		Move.onComplete = onComplete;
@@ -16,16 +21,12 @@ define('forum/topic/move', ['categorySelector', 'alerts', 'hooks'], function (ca
 	};
 
 	function showModal() {
-		app.parseAndTranslate('partials/move_thread_modal', {}, function (html) {
+		app.parseAndTranslate('modals/move-topic', {}, function (html) {
 			modal = html;
-			modal.on('hidden.bs.modal', function () {
-				modal.remove();
-			});
-
-			modal.find('#move-confirm').addClass('hide');
+			$('body').append(modal);
 
 			if (Move.moveAll || (Move.tids && Move.tids.length > 1)) {
-				modal.find('.modal-header h3').translateText('[[topic:move_topics]]');
+				modal.find('.card-header').translateText('[[topic:move_topics]]');
 			}
 
 			categorySelector.init(modal.find('[component="category-selector"]'), {
@@ -34,8 +35,7 @@ define('forum/topic/move', ['categorySelector', 'alerts', 'hooks'], function (ca
 			});
 
 			modal.find('#move_thread_commit').on('click', onCommitClicked);
-
-			modal.modal('show');
+			modal.find('#move_topic_cancel').on('click', closeMoveModal);
 		});
 	}
 
@@ -49,8 +49,7 @@ define('forum/topic/move', ['categorySelector', 'alerts', 'hooks'], function (ca
 
 		if (!commitEl.prop('disabled') && selectedCategory && selectedCategory.cid) {
 			commitEl.prop('disabled', true);
-
-			modal.modal('hide');
+			closeMoveModal();
 			let message = '[[topic:topic_move_success, ' + selectedCategory.name + ']]';
 			if (Move.tids && Move.tids.length > 1) {
 				message = '[[topic:topic_move_multiple_success, ' + selectedCategory.name + ']]';
@@ -98,5 +97,12 @@ define('forum/topic/move', ['categorySelector', 'alerts', 'hooks'], function (ca
 		});
 	}
 
+	function closeMoveModal() {
+		if (modal) {
+			modal.remove();
+			modal = null;
+		}
+	}
+
 	return Move;
 });
diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js
index c9d57854b8..8873e4525b 100644
--- a/public/src/client/topic/postTools.js
+++ b/public/src/client/topic/postTools.js
@@ -31,10 +31,14 @@ define('forum/topic/postTools', [
 	};
 
 	function renderMenu() {
+		const container = document.querySelector('[component="topic"]');
+		if (!container) {
+			return;
+		}
 		$('[component="topic"]').on('show.bs.dropdown', '.moderator-tools', function () {
 			const $this = $(this);
 			const dropdownMenu = $this.find('.dropdown-menu');
-			if (dropdownMenu.html()) {
+			if (dropdownMenu.attr('data-loaded')) {
 				return;
 			}
 			const postEl = $this.parents('[data-pid]');
@@ -50,8 +54,8 @@ define('forum/topic/postTools', [
 				const html = await app.parseAndTranslate('partials/topic/post-menu-list', data);
 				const clipboard = require('clipboard');
 
-				dropdownMenu.html(html);
-				dropdownMenu.get(0).classList.toggle('hidden', false);
+				dropdownMenu.attr('data-loaded', 'true').html(html);
+
 				new clipboard('[data-clipboard-text]');
 
 				hooks.fire('action:post.tools.load', {
@@ -75,7 +79,8 @@ define('forum/topic/postTools', [
 	};
 
 	PostTools.removeMenu = function (postEl) {
-		postEl.find('[component="post/tools"] .dropdown-menu').html('');
+		postEl.find('[component="post/tools"] .dropdown-menu')
+			.removeAttr('data-loaded').html('');
 	};
 
 	PostTools.updatePostCount = function (postCount) {
@@ -331,22 +336,11 @@ define('forum/topic/postTools', [
 			}
 		});
 
-		if (content) {
-			const bounds = document.createRange();
-			bounds.selectNodeContents(content);
-			const range = selection.getRangeAt(0).cloneRange();
-			if (range.compareBoundaryPoints(Range.START_TO_START, bounds) < 0) {
-				range.setStart(bounds.startContainer, bounds.startOffset);
-			}
-			if (range.compareBoundaryPoints(Range.END_TO_END, bounds) > 0) {
-				range.setEnd(bounds.endContainer, bounds.endOffset);
-			}
-			bounds.detach();
-			selectedText = range.toString();
+		if (content && selection) {
+			selectedText = selection.toString();
 			const postEl = $(content).parents('[component="post"]');
 			selectedPid = postEl.attr('data-pid');
 			username = await getUserSlug($(content));
-			range.detach();
 		}
 		return { text: selectedText, pid: selectedPid, username: username };
 	}
@@ -473,7 +467,7 @@ define('forum/topic/postTools', [
 		warning.modal();
 	}
 
-	const selectionChangeFn = utils.debounce(selectionChange, 100);
+	const selectionChangeFn = utils.debounce(selectionChange, 250);
 
 	function handleSelectionTooltip() {
 		if (!ajaxify.data.privileges['topics:reply']) {
@@ -481,15 +475,19 @@ define('forum/topic/postTools', [
 		}
 
 		hooks.onPage('action:posts.loaded', delayedTooltip);
-
-		$(document).off('selectionchange', selectionChangeFn).on('selectionchange', selectionChangeFn);
+		$(document).off('selectionchange');
+		$(document).on('selectionchange', function () {
+			const selectionEmpty = window.getSelection().toString() === '';
+			if (selectionEmpty) {
+				$('[component="selection/tooltip"]').addClass('hidden');
+			}
+		});
+		$(document).on('selectionchange', selectionChangeFn);
 	}
 
 	function selectionChange() {
 		const selectionEmpty = window.getSelection().toString() === '';
-		if (selectionEmpty) {
-			$('[component="selection/tooltip"]').addClass('hidden');
-		} else {
+		if (!selectionEmpty) {
 			delayedTooltip();
 		}
 	}
@@ -521,6 +519,7 @@ define('forum/topic/postTools', [
 
 			if (!selectionTooltip.length) {
 				selectionTooltip = await app.parseAndTranslate('partials/topic/selection-tooltip', ajaxify.data);
+				$('[component="selection/tooltip"]').remove();
 				selectionTooltip.addClass('hidden').appendTo('body');
 			}
 			selectionTooltip.off('click').on('click', '[component="selection/tooltip/quote"]', function () {
diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js
index 4e9e8501ae..bf4eb868f6 100644
--- a/public/src/client/topic/posts.js
+++ b/public/src/client/topic/posts.js
@@ -10,11 +10,11 @@ define('forum/topic/posts', [
 	'components',
 	'translator',
 	'hooks',
-	'helpers',
-], function (pagination, infinitescroll, postTools, images, navigator, components, translator, hooks, helpers) {
+], function (pagination, infinitescroll, postTools, images, navigator, components, translator, hooks) {
 	const Posts = { };
 
 	Posts.signaturesShown = {};
+	const $window = $(window);
 
 	Posts.onNewPost = function (data) {
 		if (
@@ -36,7 +36,7 @@ define('forum/topic/posts', [
 		Posts.modifyPostsByPrivileges(data.posts);
 
 		updatePostCounts(data.posts);
-
+		updateNavigatorLastPostTimestamp(data.posts[0]);
 		updatePostIndices(data.posts);
 
 		ajaxify.data.postcount += 1;
@@ -53,6 +53,10 @@ define('forum/topic/posts', [
 		});
 	};
 
+	function updateNavigatorLastPostTimestamp(post) {
+		$('.pagination-block .pagebottom .timeago').timeago('update', post.timestampISO);
+	}
+
 	Posts.modifyPostsByPrivileges = function (posts) {
 		posts.forEach(function (post) {
 			post.selfPost = !!app.user.uid && parseInt(post.uid, 10) === parseInt(app.user.uid, 10);
@@ -206,7 +210,7 @@ define('forum/topic/posts', [
 
 		hooks.fire('action:posts.loading', { posts: data.posts, after: after, before: before });
 
-		app.parseAndTranslate('topic', 'posts', Object.assign({}, ajaxify.data, data), function (html) {
+		app.parseAndTranslate('topic', 'posts', Object.assign({}, ajaxify.data, data), async function (html) {
 			html = html.filter(function () {
 				const $this = $(this);
 				const pid = $this.attr('data-pid');
@@ -215,30 +219,29 @@ define('forum/topic/posts', [
 				return !isPost || index === -1 || (pid && $('[component="post"][data-pid="' + pid + '"]').length === 0);
 			});
 
+			const removedEls = infinitescroll.removeExtra($('[component="post"]'), direction, Math.max(20, config.postsPerPage * 2));
+
 			if (after) {
 				html.insertAfter(after);
 			} else if (before) {
 				// Save document height and position for future reference (about 5 lines down)
 				const height = $(document).height();
-				const scrollTop = $(window).scrollTop();
+				const scrollTop = $window.scrollTop();
 
 				html.insertBefore(before);
 
 				// Now restore the relative position the user was on prior to new post insertion
 				if (userScrolled || scrollTop > 0) {
-					$(window).scrollTop(scrollTop + ($(document).height() - height));
+					$window.scrollTop(scrollTop + ($(document).height() - height));
 				}
 			} else {
 				components.get('topic').append(html);
 			}
 
-			const removedEls = infinitescroll.removeExtra($('[component="post"]'), direction, Math.max(20, config.postsPerPage * 2));
+			await Posts.onNewPostsAddedToDom(html);
 			removeNecroPostMessages(removedEls);
-
 			hooks.fire('action:posts.loaded', { posts: data.posts });
 
-			Posts.onNewPostsAddedToDom(html);
-
 			callback(html);
 		});
 	}
@@ -281,23 +284,23 @@ define('forum/topic/posts', [
 		});
 	};
 
-	Posts.onTopicPageLoad = function (posts) {
+	Posts.onTopicPageLoad = async function (posts) {
 		handlePrivateUploads(posts);
 		images.wrapImagesInLinks(posts);
 		hideDuplicateSignatures(posts);
 		Posts.showBottomPostBar();
-		posts.find('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive');
+		posts.find('[component="post/content"] img:not(.not-responsive)').addClass('img-fluid');
 		Posts.addBlockquoteEllipses(posts);
 		hidePostToolsForDeletedPosts(posts);
-		addNecroPostMessage();
+		await addNecroPostMessage();
 	};
 
 	Posts.addTopicEvents = function (events) {
 		if (config.topicPostSort === 'most_votes') {
 			return;
 		}
-		const html = helpers.renderEvents.call(ajaxify.data, events);
-		translator.translate(html, (translated) => {
+		const event = events[0];
+		app.parseAndTranslate('partials/topic/event', event).then(function (translated) {
 			if (config.topicPostSort === 'oldest_to_newest') {
 				$('[component="topic"]').append(translated);
 			} else if (config.topicPostSort === 'newest_to_oldest') {
@@ -313,14 +316,15 @@ define('forum/topic/posts', [
 		});
 	};
 
-	function addNecroPostMessage() {
+	async function addNecroPostMessage() {
 		const necroThreshold = ajaxify.data.necroThreshold * 24 * 60 * 60 * 1000;
 		if (!necroThreshold || (config.topicPostSort !== 'newest_to_oldest' && config.topicPostSort !== 'oldest_to_newest')) {
 			return;
 		}
 
+		const scrollTop = $window.scrollTop();
 		const postEls = $('[component="post"]').toArray();
-		postEls.forEach(function (post) {
+		await Promise.all(postEls.map(async function (post) {
 			post = $(post);
 			const prev = post.prev('[component="post"]');
 			if (post.is(':has(.necro-post)') || !prev.length) {
@@ -348,12 +352,17 @@ define('forum/topic/posts', [
 				$.timeago.settings.strings.prefixAgo = prefixAgo;
 				$.timeago.settings.strings.suffixFromNow = suffixFromNow;
 				$.timeago.settings.strings.prefixFromNow = prefixFromNow;
-				app.parseAndTranslate('partials/topic/necro-post', { text: translationText }, function (html) {
-					html.attr('data-necro-post-index', prev.attr('data-index'));
-					html.insertBefore(post);
-				});
+				const html = await app.parseAndTranslate('partials/topic/necro-post', { text: translationText });
+				html.attr('data-necro-post-index', prev.attr('data-index'));
+				html.insertBefore(post);
 			}
-		});
+		}));
+		if (scrollTop > 0) {
+			const newScrollTop = $window.scrollTop();
+			if (newScrollTop < scrollTop) {
+				$window.scrollTop(scrollTop);
+			}
+		}
 	}
 
 	function hideDuplicateSignatures(posts) {
@@ -399,11 +408,8 @@ define('forum/topic/posts', [
 		});
 	}
 
-	Posts.onNewPostsAddedToDom = function (posts) {
-		Posts.onTopicPageLoad(posts);
-
-		app.createUserTooltips(posts);
-
+	Posts.onNewPostsAddedToDom = async function (posts) {
+		await Posts.onTopicPageLoad(posts);
 		utils.addCommasToNumbers(posts.find('.formatted-number'));
 		utils.makeNumbersHumanReadable(posts.find('.human-readable-number'));
 		posts.find('.timeago').timeago();
diff --git a/public/src/client/topic/replies.js b/public/src/client/topic/replies.js
index 25bab6c71d..8e0573ab04 100644
--- a/public/src/client/topic/replies.js
+++ b/public/src/client/topic/replies.js
@@ -15,7 +15,7 @@ define('forum/topic/replies', ['forum/topic/posts', 'hooks', 'alerts'], function
 			open.addClass('hidden');
 			loading.removeClass('hidden');
 
-			socket.emit('posts.getReplies', pid, function (err, data) {
+			socket.emit('posts.getReplies', pid, function (err, postData) {
 				loading.addClass('hidden');
 				if (err) {
 					open.removeClass('hidden');
@@ -23,18 +23,22 @@ define('forum/topic/replies', ['forum/topic/posts', 'hooks', 'alerts'], function
 				}
 
 				close.removeClass('hidden');
-
-				posts.modifyPostsByPrivileges(data);
+				postData.forEach((post, index) => {
+					if (post) {
+						post.index = index;
+					}
+				});
+				posts.modifyPostsByPrivileges(postData);
 				const tplData = {
-					posts: data,
+					posts: postData,
 					privileges: ajaxify.data.privileges,
 					'downvote:disabled': ajaxify.data['downvote:disabled'],
 					'reputation:disabled': ajaxify.data['reputation:disabled'],
 					loggedIn: !!app.user.uid,
 					hideReplies: config.hasOwnProperty('showNestedReplies') ? !config.showNestedReplies : true,
 				};
-				app.parseAndTranslate('topic', 'posts', tplData, function (html) {
-					const repliesEl = $('<div>', { component: 'post/replies' }).html(html).hide();
+				app.parseAndTranslate('topic', 'posts', tplData, async function (html) {
+					const repliesEl = $('<ul>', { component: 'post/replies', class: 'list-unstyled' }).html(html).hide();
 					if (button.attr('data-target-component')) {
 						post.find('[component="' + button.attr('data-target-component') + '"]').html(repliesEl);
 					} else {
@@ -42,8 +46,8 @@ define('forum/topic/replies', ['forum/topic/posts', 'hooks', 'alerts'], function
 					}
 
 					repliesEl.slideDown('fast');
-					posts.onNewPostsAddedToDom(html);
-					hooks.fire('action:posts.loaded', { posts: data });
+					await posts.onNewPostsAddedToDom(html);
+					hooks.fire('action:posts.loaded', { posts: postData });
 				});
 			});
 		} else if (close.is(':not(.hidden)')) {
@@ -63,7 +67,7 @@ define('forum/topic/replies', ['forum/topic/posts', 'hooks', 'alerts'], function
 		}
 		incrementCount(post, 1);
 		data.hideReplies = config.hasOwnProperty('showNestedReplies') ? !config.showNestedReplies : true;
-		app.parseAndTranslate('topic', 'posts', data, function (html) {
+		app.parseAndTranslate('topic', 'posts', data, async function (html) {
 			const replies = $('[component="post"][data-pid="' + post.toPid + '"] [component="post/replies"]').first();
 			if (replies.length) {
 				if (config.topicPostSort === 'newest_to_oldest') {
@@ -71,7 +75,7 @@ define('forum/topic/replies', ['forum/topic/posts', 'hooks', 'alerts'], function
 				} else {
 					replies.append(html);
 				}
-				posts.onNewPostsAddedToDom(html);
+				await posts.onNewPostsAddedToDom(html);
 			}
 		});
 	};
@@ -84,7 +88,7 @@ define('forum/topic/replies', ['forum/topic/posts', 'hooks', 'alerts'], function
 		const replyCount = $('[component="post"][data-pid="' + post.toPid + '"]').find('[component="post/reply-count"]').first();
 		const countEl = replyCount.find('[component="post/reply-count/text"]');
 		const avatars = replyCount.find('[component="post/reply-count/avatars"]');
-		const count = Math.max(0, parseInt(countEl.attr('data-replies'), 10) + inc);
+		const count = Math.max(0, (parseInt(countEl.attr('data-replies'), 10) || 0) + inc);
 		const timestamp = replyCount.find('.timeago').attr('title', post.timestampISO);
 
 		countEl.attr('data-replies', count);
@@ -96,8 +100,10 @@ define('forum/topic/replies', ['forum/topic/posts', 'hooks', 'alerts'], function
 		}
 
 		if (!avatars.find('[data-uid="' + post.uid + '"]').length && count < 7) {
-			app.parseAndTranslate('topic', 'posts', { posts: [{ replies: { users: [post.user] } }] }, function (html) {
-				avatars.prepend(html.find('[component="post/reply-count/avatars"] [component="avatar/picture"]'));
+			app.parseAndTranslate('topic', 'posts', {
+				posts: [{ replies: { count: count, hasMore: false, users: [post.user] } }],
+			}, function (html) {
+				avatars.prepend(html.find('[component="post/reply-count/avatars"]').html());
 			});
 		}
 
diff --git a/public/src/client/topic/threadTools.js b/public/src/client/topic/threadTools.js
index 0a6daa1030..4a44418273 100644
--- a/public/src/client/topic/threadTools.js
+++ b/public/src/client/topic/threadTools.js
@@ -10,12 +10,20 @@ define('forum/topic/threadTools', [
 	'hooks',
 	'bootbox',
 	'alerts',
-], function (components, translator, handleBack, posts, api, hooks, bootbox, alerts) {
+	'bootstrap',
+], function (components, translator, handleBack, posts, api, hooks, bootbox, alerts, bootstrap) {
 	const ThreadTools = {};
 
 	ThreadTools.init = function (tid, topicContainer) {
 		renderMenu(topicContainer);
 
+		$('.topic-main-buttons [title]').tooltip({
+			container: '#content',
+			animation: false,
+		});
+
+		ThreadTools.observeTopicLabels($('[component="topic/labels"]'));
+
 		// function topicCommand(method, path, command, onComplete) {
 		topicContainer.on('click', '[component="topic/delete"]', function () {
 			topicCommand('del', '/state', 'delete');
@@ -117,6 +125,14 @@ define('forum/topic/threadTools', [
 			});
 		});
 
+		topicContainer.on('click', '[component="topic/merge"]', function () {
+			require(['forum/topic/merge'], function (merge) {
+				merge.init(function () {
+					merge.addTopic(ajaxify.data.tid);
+				});
+			});
+		});
+
 		topicContainer.on('click', '[component="topic/move-posts"]', function () {
 			require(['forum/topic/move-post'], function (movePosts) {
 				movePosts.init();
@@ -172,27 +188,47 @@ define('forum/topic/threadTools', [
 		}
 	};
 
-	function renderMenu(container) {
-		container.on('show.bs.dropdown', '.thread-tools', function () {
-			const $this = $(this);
-			const dropdownMenu = $this.find('.dropdown-menu');
-			if (dropdownMenu.html()) {
-				return;
+	ThreadTools.observeTopicLabels = function (labels) {
+		// show or hide topic/labels container depending on children visibility
+		const mut = new MutationObserver(function (mutations) {
+			const first = mutations[0];
+			if (first && first.attributeName === 'class') {
+				const visibleChildren = labels.children().filter((index, el) => !$(el).hasClass('hidden'));
+				labels.toggleClass('hidden', !visibleChildren.length);
 			}
+		});
 
-			dropdownMenu.toggleClass('hidden', true);
-			socket.emit('topics.loadTopicTools', { tid: ajaxify.data.tid, cid: ajaxify.data.cid }, function (err, data) {
-				if (err) {
-					return alerts.error(err);
+		labels.children().each((index, el) => {
+			mut.observe(el, { attributes: true });
+		});
+	};
+
+	function renderMenu(container) {
+		container = container.get(0);
+		if (!container) {
+			return;
+		}
+
+		container.querySelectorAll('.thread-tools').forEach((toolsEl) => {
+			toolsEl.addEventListener('show.bs.dropdown', (e) => {
+				const dropdownMenu = e.target.nextElementSibling;
+				if (!dropdownMenu) {
+					return;
 				}
-				app.parseAndTranslate('partials/topic/topic-menu-list', data, function (html) {
-					dropdownMenu.html(html);
-					dropdownMenu.toggleClass('hidden', false);
 
-					hooks.fire('action:topic.tools.load', {
-						element: dropdownMenu,
+				socket.emit('topics.loadTopicTools', { tid: ajaxify.data.tid, cid: ajaxify.data.cid }, function (err, data) {
+					if (err) {
+						return alerts.error(err);
+					}
+					app.parseAndTranslate('partials/topic/topic-menu-list', data, function (html) {
+						$(dropdownMenu).html(html);
+						hooks.fire('action:topic.tools.load', {
+							element: $(dropdownMenu),
+						});
 					});
 				});
+			}, {
+				once: true,
 			});
 		});
 	}
@@ -358,10 +394,12 @@ define('forum/topic/threadTools', [
 			unfollow: '[[topic:not-watching]]',
 			ignore: '[[topic:ignoring]]',
 		};
+
 		translator.translate(titles[state], function (translatedTitle) {
-			$('[component="topic/watch"] button')
-				.attr('title', translatedTitle)
-				.tooltip('fixTitle');
+			const tooltip = bootstrap.Tooltip.getInstance('[component="topic/watch"]');
+			if (tooltip) {
+				tooltip.setContent({ '.tooltip-inner': translatedTitle });
+			}
 		});
 
 		let menu = components.get('topic/following/menu');
diff --git a/public/src/client/topic/votes.js b/public/src/client/topic/votes.js
index dcc225bd89..7f8a08b500 100644
--- a/public/src/client/topic/votes.js
+++ b/public/src/client/topic/votes.js
@@ -2,38 +2,55 @@
 
 
 define('forum/topic/votes', [
-	'components', 'translator', 'api', 'hooks', 'bootbox', 'alerts',
-], function (components, translator, api, hooks, bootbox, alerts) {
+	'components', 'translator', 'api', 'hooks', 'bootbox', 'alerts', 'bootstrap',
+], function (components, translator, api, hooks, bootbox, alerts, bootstrap) {
 	const Votes = {};
+	let _showTooltip = {};
 
 	Votes.addVoteHandler = function () {
+		_showTooltip = {};
 		components.get('topic').on('mouseenter', '[data-pid] [component="post/vote-count"]', loadDataAndCreateTooltip);
+		components.get('topic').on('mouseleave', '[data-pid] [component="post/vote-count"]', destroyTooltip);
 	};
 
-	function loadDataAndCreateTooltip(e) {
-		e.stopPropagation();
+	function destroyTooltip() {
+		const $this = $(this);
+		const pid = $this.parents('[data-pid]').attr('data-pid');
+		const tooltip = bootstrap.Tooltip.getInstance(this);
+		if (tooltip) {
+			tooltip.dispose();
+			$this.attr('title', '');
+		}
+		_showTooltip[pid] = false;
+	}
 
+	function loadDataAndCreateTooltip() {
 		const $this = $(this);
 		const el = $this.parent();
-		el.find('.tooltip').css('display', 'none');
 		const pid = el.parents('[data-pid]').attr('data-pid');
+		_showTooltip[pid] = true;
+		const tooltip = bootstrap.Tooltip.getInstance(this);
+		if (tooltip) {
+			tooltip.dispose();
+			$this.attr('title', '');
+		}
 
 		socket.emit('posts.getUpvoters', [pid], function (err, data) {
 			if (err) {
 				return alerts.error(err);
 			}
-
-			if (data.length) {
+			if (_showTooltip[pid] && data.length) {
 				createTooltip($this, data[0]);
 			}
 		});
-		return false;
 	}
 
 	function createTooltip(el, data) {
 		function doCreateTooltip(title) {
-			el.attr('title', title).tooltip('fixTitle').tooltip('show');
-			el.parent().find('.tooltip').css('display', '');
+			el.attr('title', title);
+			(new bootstrap.Tooltip(el, {
+				container: '#content',
+			})).show();
 		}
 		let usernames = data.usernames
 			.filter(name => name !== '[[global:former_user]]');
@@ -90,7 +107,7 @@ define('forum/topic/votes', [
 				return alerts.error(err);
 			}
 
-			app.parseAndTranslate('partials/modals/votes_modal', data, function (html) {
+			app.parseAndTranslate('modals/votes', data, function (html) {
 				const dialog = bootbox.dialog({
 					title: '[[global:voters]]',
 					message: html,
diff --git a/public/src/client/users.js b/public/src/client/users.js
index e0d70748e4..d9bc4be595 100644
--- a/public/src/client/users.js
+++ b/public/src/client/users.js
@@ -2,8 +2,8 @@
 
 
 define('forum/users', [
-	'translator', 'benchpress', 'api', 'alerts', 'accounts/invite',
-], function (translator, Benchpress, api, alerts, AccountInvite) {
+	'benchpress', 'api', 'alerts', 'accounts/invite',
+], function (Benchpress, api, alerts, AccountInvite) {
 	const Users = {};
 
 	let searchResultCount = 0;
@@ -12,7 +12,9 @@ define('forum/users', [
 		app.enterRoom('user_list');
 
 		const section = utils.param('section') ? ('?section=' + utils.param('section')) : '';
-		$('.nav-pills li').removeClass('active').find('a[href="' + window.location.pathname + section + '"]').parent()
+		const navItems = $('[component="user/list/menu"]');
+		navItems.find('a').removeClass('active');
+		navItems.find('a[href="' + window.location.pathname + section + '"]')
 			.addClass('active');
 
 		Users.handleSearch();
@@ -97,7 +99,7 @@ define('forum/users', [
 		data.isAdminOrGlobalMod = app.user.isAdmin || app.user.isGlobalMod;
 		app.parseAndTranslate('users', 'users', data, function (html) {
 			$('#users-container').html(html);
-			html.find('span.timeago').timeago();
+			html.find('.timeago').timeago();
 			$('[component="user/search/icon"]').addClass('fa-search').removeClass('fa-spinner fa-spin');
 		});
 	}
diff --git a/public/src/installer/install.js b/public/src/installer/install.js
index 8dcf8f211d..b18743f39f 100644
--- a/public/src/installer/install.js
+++ b/public/src/installer/install.js
@@ -3,6 +3,7 @@
 'use strict';
 
 const $ = require('jquery');
+require('bootstrap');
 const zxcvbn = require('zxcvbn');
 const utils = require('../utils');
 const slugify = require('../modules/slugify');
@@ -35,7 +36,7 @@ $('document').ready(function () {
 			$('.input-row.active').removeClass('active');
 			parent.addClass('active').removeClass('error');
 
-			const help = parent.find('.help-text');
+			const help = parent.find('.form-text');
 			help.html(help.attr('data-help'));
 		});
 
@@ -63,7 +64,7 @@ $('document').ready(function () {
 	function activate(type, el) {
 		const field = el.val();
 		const parent = el.parents('.input-row');
-		const help = parent.children('.help-text');
+		const help = parent.children('.form-text');
 
 		function validateUsername(field) {
 			if (!utils.isUserNameValid(field) || !slugify(field)) {
diff --git a/public/src/modules/accounts/moderate.js b/public/src/modules/accounts/moderate.js
new file mode 100644
index 0000000000..fe882b5ded
--- /dev/null
+++ b/public/src/modules/accounts/moderate.js
@@ -0,0 +1,108 @@
+'use strict';
+
+define('forum/account/moderate', [
+	'benchpress',
+	'api',
+	'bootbox',
+	'alerts',
+], function (Benchpress, api, bootbox, alerts) {
+	const AccountModerate = {};
+
+	AccountModerate.banAccount = function (theirid, onSuccess) {
+		theirid = theirid || ajaxify.data.theirid;
+
+		Benchpress.render('modals/temporary-ban', {}).then(function (html) {
+			bootbox.dialog({
+				className: 'ban-modal',
+				title: '[[user:ban_account]]',
+				message: html,
+				show: true,
+				buttons: {
+					close: {
+						label: '[[global:close]]',
+						className: 'btn-link',
+					},
+					submit: {
+						label: '[[user:ban_account]]',
+						callback: function () {
+							const formData = $('.ban-modal form').serializeArray().reduce(function (data, cur) {
+								data[cur.name] = cur.value;
+								return data;
+							}, {});
+
+							const until = formData.length > 0 ? (
+								Date.now() + (formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1))
+							) : 0;
+
+							api.put('/users/' + theirid + '/ban', {
+								until: until,
+								reason: formData.reason || '',
+							}).then(() => {
+								if (typeof onSuccess === 'function') {
+									return onSuccess();
+								}
+
+								ajaxify.refresh();
+							}).catch(alerts.error);
+						},
+					},
+				},
+			});
+		});
+	};
+
+	AccountModerate.unbanAccount = function (theirid) {
+		api.del('/users/' + theirid + '/ban').then(() => {
+			ajaxify.refresh();
+		}).catch(alerts.error);
+	};
+
+	AccountModerate.muteAccount = function (theirid, onSuccess) {
+		theirid = theirid || ajaxify.data.theirid;
+		Benchpress.render('modals/temporary-mute', {}).then(function (html) {
+			bootbox.dialog({
+				className: 'mute-modal',
+				title: '[[user:mute_account]]',
+				message: html,
+				show: true,
+				buttons: {
+					close: {
+						label: '[[global:close]]',
+						className: 'btn-link',
+					},
+					submit: {
+						label: '[[user:mute_account]]',
+						callback: function () {
+							const formData = $('.mute-modal form').serializeArray().reduce(function (data, cur) {
+								data[cur.name] = cur.value;
+								return data;
+							}, {});
+
+							const until = formData.length > 0 ? (
+								Date.now() + (formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1))
+							) : 0;
+
+							api.put('/users/' + theirid + '/mute', {
+								until: until,
+								reason: formData.reason || '',
+							}).then(() => {
+								if (typeof onSuccess === 'function') {
+									return onSuccess();
+								}
+								ajaxify.refresh();
+							}).catch(alerts.error);
+						},
+					},
+				},
+			});
+		});
+	};
+
+	AccountModerate.unmuteAccount = function (theirid) {
+		api.del('/users/' + theirid + '/mute').then(() => {
+			ajaxify.refresh();
+		}).catch(alerts.error);
+	};
+
+	return AccountModerate;
+});
diff --git a/public/src/modules/accounts/picture.js b/public/src/modules/accounts/picture.js
index 79f2a876e5..d8a64ac7c7 100644
--- a/public/src/modules/accounts/picture.js
+++ b/public/src/modules/accounts/picture.js
@@ -21,7 +21,7 @@ define('accounts/picture', [
 				return memo || cur.type === 'uploaded';
 			}, false);
 
-			app.parseAndTranslate('partials/modals/change_picture_modal', {
+			app.parseAndTranslate('modals/change-picture', {
 				pictures: pictures,
 				uploaded: uploaded,
 				icon: { text: ajaxify.data['icon:text'], bgColor: ajaxify.data['icon:bgColor'] },
@@ -41,6 +41,7 @@ define('accounts/picture', [
 					title: '[[user:change_picture]]',
 					message: html,
 					show: true,
+					size: 'large',
 					buttons: {
 						close: {
 							label: '[[global:close]]',
@@ -61,7 +62,7 @@ define('accounts/picture', [
 				});
 				modal.on('change', 'input[type="radio"][name="icon:bgColor"]', (e) => {
 					const value = e.target.value;
-					modal.find('.user-icon').css('background-color', value);
+					modal.find('[component="avatar/icon"]').css('background-color', value);
 				});
 
 				handleImageUpload(modal);
@@ -69,7 +70,7 @@ define('accounts/picture', [
 				function updateImages() {
 					// Check to see which one is the active picture
 					if (!ajaxify.data.picture) {
-						modal.find('.list-group-item .user-icon').parents('.list-group-item').addClass('active');
+						modal.find('[data-type="default"]').addClass('active');
 					} else {
 						modal.find('.list-group-item img').each(function () {
 							if (this.getAttribute('src') === ajaxify.data.picture) {
@@ -112,15 +113,26 @@ define('accounts/picture', [
 		if (!picture && ajaxify.data.defaultAvatar) {
 			picture = ajaxify.data.defaultAvatar;
 		}
-		$('#header [component="avatar/picture"]')[picture ? 'show' : 'hide']();
-		$('#header [component="avatar/icon"]')[!picture ? 'show' : 'hide']();
+		const headerPictureEl = $(`[component="header/avatar"] [component="avatar/picture"]`);
+		const headerIconEl = $(`[component="header/avatar"] [component="avatar/icon"]`);
+
 		if (picture) {
-			$('#header [component="avatar/picture"]').attr('src', picture);
+			if (!headerPictureEl.length && headerIconEl.length) {
+				const img = $('<img/>');
+				$(headerIconEl[0].attributes).each(function () {
+					img.attr(this.nodeName, this.nodeValue);
+				});
+				img.attr('component', 'avatar/picture')
+					.attr('src', picture)
+					.insertBefore(headerIconEl);
+			}
+		} else {
+			headerPictureEl.remove();
 		}
 
 		if (iconBgColor) {
-			document.querySelectorAll('[component="navbar"] [component="avatar/icon"]').forEach((el) => {
-				el.style['background-color'] = iconBgColor;
+			headerIconEl.css({
+				'background-color': iconBgColor,
 			});
 		}
 	};
@@ -171,7 +183,7 @@ define('accounts/picture', [
 
 		modal.find('[data-action="upload-url"]').on('click', function () {
 			modal.modal('hide');
-			app.parseAndTranslate('partials/modals/upload_picture_from_url_modal', {}, function (uploadModal) {
+			app.parseAndTranslate('modals/upload-picture-from-url', {}, function (uploadModal) {
 				uploadModal.modal('show');
 
 				uploadModal.find('.upload-btn').on('click', function () {
diff --git a/public/src/modules/ace-editor.js b/public/src/modules/ace-editor.js
index 7c88771a9f..867fd197ed 100644
--- a/public/src/modules/ace-editor.js
+++ b/public/src/modules/ace-editor.js
@@ -1,8 +1,10 @@
+/* eslint-disable import/first */
+
 export * from 'ace-builds';
 
 // only import the modes and theme we use
 import 'ace-builds/src-noconflict/mode-javascript';
-import 'ace-builds/src-noconflict/mode-less';
+import 'ace-builds/src-noconflict/mode-scss';
 import 'ace-builds/src-noconflict/mode-html';
 import 'ace-builds/src-noconflict/ext-searchbox';
 import 'ace-builds/src-noconflict/theme-twilight';
diff --git a/public/src/modules/alerts.js b/public/src/modules/alerts.js
index a5fbbc8a8d..4dc9d1aba5 100644
--- a/public/src/modules/alerts.js
+++ b/public/src/modules/alerts.js
@@ -1,155 +1,152 @@
 'use strict';
 
+import * as components from './components';
+import * as hooks from './hooks';
+
+export function alert(params) {
+	params.alert_id = 'alert_button_' + (params.alert_id ? params.alert_id : new Date().getTime());
+	params.title = params.title ? params.title.trim() || '' : '';
+	params.message = params.message ? params.message.trim() : '';
+	params.type = params.type || 'info';
+
+	const alert = $('#' + params.alert_id);
+	if (alert.length) {
+		updateAlert(alert, params);
+	} else {
+		createNew(params);
+	}
+}
+
+export function success(message, timeout) {
+	alert({
+		alert_id: utils.generateUUID(),
+		title: '[[global:alert.success]]',
+		message: message,
+		type: 'success',
+		timeout: timeout || 5000,
+	});
+}
+
+export function error(message, timeout) {
+	message = (message && message.message) || message;
+
+	if (message === '[[error:revalidate-failure]]') {
+		socket.disconnect();
+		app.reconnect();
+		return;
+	}
+
+	alert({
+		alert_id: utils.generateUUID(),
+		title: '[[global:alert.error]]',
+		message: message,
+		type: 'danger',
+		timeout: timeout || 10000,
+	});
+}
+
+export function remove(id) {
+	$('#alert_button_' + id).remove();
+}
+
+function updateAlert(alert, params) {
+	alert.find('strong').translateHtml(params.title);
+	alert.find('p').translateHtml(params.message);
+	alert.attr('class', 'alert alert-dismissable alert-' + params.type + ' clearfix');
+
+	clearTimeout(parseInt(alert.attr('timeoutId'), 10));
+	if (params.timeout) {
+		startTimeout(alert, params);
+	}
 
-define('alerts', ['translator', 'components', 'hooks'], function (translator, components, hooks) {
-	const module = {};
+	hooks.fire('action:alert.update', { alert, params });
 
-	module.alert = function (params) {
-		params.alert_id = 'alert_button_' + (params.alert_id ? params.alert_id : new Date().getTime());
-		params.title = params.title ? params.title.trim() || '' : '';
-		params.message = params.message ? params.message.trim() : '';
-		params.type = params.type || 'info';
+	// Handle changes in the clickfn
+	alert.off('click').removeClass('pointer');
+	if (typeof params.clickfn === 'function') {
+		alert
+			.addClass('pointer')
+			.on('click', function (e) {
+				if (!$(e.target).is('.close')) {
+					params.clickfn();
+				}
+				fadeOut(alert);
+			});
+	}
+}
 
-		const alert = $('#' + params.alert_id);
+function createNew(params) {
+	app.parseAndTranslate('partials/toast', params, function (html) {
+		let alert = $('#' + params.alert_id);
 		if (alert.length) {
-			updateAlert(alert, params);
-		} else {
-			createNew(params);
+			return updateAlert(alert, params);
 		}
-	};
-
-	module.success = function (message, timeout) {
-		module.alert({
-			alert_id: utils.generateUUID(),
-			title: '[[global:alert.success]]',
-			message: message,
-			type: 'success',
-			timeout: timeout || 5000,
-		});
-	};
+		alert = html;
+		alert.fadeIn(200);
 
-	module.error = function (message, timeout) {
-		message = (message && message.message) || message;
+		components.get('toaster/tray').prepend(alert);
 
-		if (message === '[[error:revalidate-failure]]') {
-			socket.disconnect();
-			app.reconnect();
-			return;
+		if (typeof params.closefn === 'function') {
+			alert.find('button').on('click', function () {
+				params.closefn();
+				fadeOut(alert);
+				return false;
+			});
 		}
 
-		module.alert({
-			alert_id: utils.generateUUID(),
-			title: '[[global:alert.error]]',
-			message: message,
-			type: 'danger',
-			timeout: timeout || 10000,
-		});
-	};
-
-	module.remove = function (id) {
-		$('#alert_button_' + id).remove();
-	};
-
-	function createNew(params) {
-		app.parseAndTranslate('alert', params, function (html) {
-			let alert = $('#' + params.alert_id);
-			if (alert.length) {
-				return updateAlert(alert, params);
-			}
-			alert = html;
-			alert.fadeIn(200);
-
-			components.get('toaster/tray').prepend(alert);
-
-			if (typeof params.closefn === 'function') {
-				alert.find('button').on('click', function () {
-					params.closefn();
-					fadeOut(alert);
-					return false;
-				});
-			}
-
-			if (params.timeout) {
-				startTimeout(alert, params);
-			}
-
-			if (typeof params.clickfn === 'function') {
-				alert
-					.addClass('pointer')
-					.on('click', function (e) {
-						if (!$(e.target).is('.close')) {
-							params.clickfn(alert, params);
-						}
-						fadeOut(alert);
-					});
-			}
-
-			hooks.fire('action:alert.new', { alert, params });
-		});
-	}
-
-	function updateAlert(alert, params) {
-		alert.find('strong').translateHtml(params.title);
-		alert.find('p').translateHtml(params.message);
-		alert.attr('class', 'alert alert-dismissable alert-' + params.type + ' clearfix');
-
-		clearTimeout(parseInt(alert.attr('timeoutId'), 10));
 		if (params.timeout) {
 			startTimeout(alert, params);
 		}
 
-		hooks.fire('action:alert.update', { alert, params });
-
-		// Handle changes in the clickfn
-		alert.off('click').removeClass('pointer');
 		if (typeof params.clickfn === 'function') {
 			alert
 				.addClass('pointer')
 				.on('click', function (e) {
 					if (!$(e.target).is('.close')) {
-						params.clickfn();
+						params.clickfn(alert, params);
 					}
 					fadeOut(alert);
 				});
 		}
-	}
 
-	function fadeOut(alert) {
-		alert.fadeOut(500, function () {
-			$(this).remove();
-		});
-	}
+		hooks.fire('action:alert.new', { alert, params });
+	});
+}
 
-	function startTimeout(alert, params) {
-		const timeout = params.timeout;
+function fadeOut(alert) {
+	alert.fadeOut(500, function () {
+		$(this).remove();
+	});
+}
 
-		const timeoutId = setTimeout(function () {
-			fadeOut(alert);
+function startTimeout(alert, params) {
+	const timeout = params.timeout;
 
-			if (typeof params.timeoutfn === 'function') {
-				params.timeoutfn(alert, params);
-			}
-		}, timeout);
+	const timeoutId = setTimeout(function () {
+		fadeOut(alert);
 
-		alert.attr('timeoutId', timeoutId);
+		if (typeof params.timeoutfn === 'function') {
+			params.timeoutfn(alert, params);
+		}
+	}, timeout);
 
-		// Reset and start animation
-		alert.css('transition-property', 'none');
-		alert.removeClass('animate');
+	alert.attr('timeoutId', timeoutId);
 
-		setTimeout(function () {
-			alert.css('transition-property', '');
-			alert.css('transition', 'width ' + (timeout + 450) + 'ms linear, background-color ' + (timeout + 450) + 'ms ease-in');
-			alert.addClass('animate');
-			hooks.fire('action:alert.animate', { alert, params });
-		}, 50);
+	// Reset and start animation
+	alert.css('transition-property', 'none');
+	alert.removeClass('animate');
 
-		// Handle mouseenter/mouseleave
-		alert
-			.on('mouseenter', function () {
-				$(this).css('transition-duration', 0);
-			});
-	}
+	setTimeout(function () {
+		alert.css('transition-property', '');
+		alert.css('transition', 'width ' + (timeout + 450) + 'ms linear, background-color ' + (timeout + 450) + 'ms ease-in');
+		alert.addClass('animate');
+		hooks.fire('action:alert.animate', { alert, params });
+	}, 50);
+
+	// Handle mouseenter/mouseleave
+	alert
+		.on('mouseenter', function () {
+			$(this).css('transition-duration', 0);
+		});
+}
 
-	return module;
-});
diff --git a/public/src/modules/api.js b/public/src/modules/api.js
index 78c144ed62..ed0c7c2d2b 100644
--- a/public/src/modules/api.js
+++ b/public/src/modules/api.js
@@ -1,61 +1,80 @@
+/* eslint-disable import/no-unresolved */
+
 'use strict';
 
-define('api', ['hooks'], (hooks) => {
-	const api = {};
-	const baseUrl = config.relative_path + '/api/v3';
-
-	function call(options, callback) {
-		options.url = options.url.startsWith('/api') ?
-			config.relative_path + options.url :
-			baseUrl + options.url;
-
-		async function doAjax(cb) {
-			// Allow options to be modified by plugins, etc.
-			({ options } = await hooks.fire('filter:api.options', { options }));
-
-			$.ajax(options)
-				.done((res) => {
-					cb(null, (
-						res &&
-						res.hasOwnProperty('status') &&
-						res.hasOwnProperty('response') ? res.response : (res || {})
-					));
-				})
-				.fail((ev) => {
-					let errMessage;
-					if (ev.responseJSON) {
-						errMessage = ev.responseJSON.status && ev.responseJSON.status.message ?
-							ev.responseJSON.status.message :
-							ev.responseJSON.error;
-					}
-
-					cb(new Error(errMessage || ev.statusText));
-				});
-		}
-
-		if (typeof callback === 'function') {
-			doAjax(callback);
-			return;
-		}
-
-		return new Promise((resolve, reject) => {
-			doAjax(function (err, data) {
-				if (err) reject(err);
-				else resolve(data);
-			});
-		});
+import { fire as fireHook } from 'hooks';
+import { confirm } from 'bootbox';
+
+const baseUrl = config.relative_path + '/api/v3';
+
+function call(options, callback) {
+	options.url = options.url.startsWith('/api') ?
+		config.relative_path + options.url :
+		baseUrl + options.url;
+
+	if (typeof callback === 'function') {
+		xhr(options, callback);
+		return;
 	}
 
-	api.get = (route, payload, onSuccess) => call({
+	return new Promise((resolve, reject) => {
+		xhr(options, function (err, data) {
+			if (err) {
+				if (err.message === 'A valid login session was not found. Please log in and try again.') {
+					return confirm('[[error:api.reauth-required]]', (ok) => {
+						if (ok) {
+							ajaxify.go('login');
+						}
+					});
+				}
+
+				return reject(err);
+			}
+
+			resolve(data);
+		});
+	});
+}
+
+async function xhr(options, cb) {
+	// Allow options to be modified by plugins, etc.
+	({ options } = await fireHook('filter:api.options', { options }));
+
+	$.ajax(options)
+		.done((res) => {
+			cb(null, (
+				res &&
+				res.hasOwnProperty('status') &&
+				res.hasOwnProperty('response') ? res.response : (res || {})
+			));
+		})
+		.fail((ev) => {
+			let errMessage;
+			if (ev.responseJSON) {
+				errMessage = ev.responseJSON.status && ev.responseJSON.status.message ?
+					ev.responseJSON.status.message :
+					ev.responseJSON.error;
+			}
+
+			cb(new Error(errMessage || ev.statusText));
+		});
+}
+
+export function get(route, payload, onSuccess) {
+	return call({
 		url: route + (payload && Object.keys(payload).length ? ('?' + $.param(payload)) : ''),
 	}, onSuccess);
+}
 
-	api.head = (route, payload, onSuccess) => call({
+export function head(route, payload, onSuccess) {
+	return call({
 		url: route + (payload && Object.keys(payload).length ? ('?' + $.param(payload)) : ''),
 		method: 'head',
 	}, onSuccess);
+}
 
-	api.post = (route, payload, onSuccess) => call({
+export function post(route, payload, onSuccess) {
+	return call({
 		url: route,
 		method: 'post',
 		data: JSON.stringify(payload || {}),
@@ -64,8 +83,10 @@ define('api', ['hooks'], (hooks) => {
 			'x-csrf-token': config.csrf_token,
 		},
 	}, onSuccess);
+}
 
-	api.patch = (route, payload, onSuccess) => call({
+export function patch(route, payload, onSuccess) {
+	return call({
 		url: route,
 		method: 'patch',
 		data: JSON.stringify(payload || {}),
@@ -74,8 +95,10 @@ define('api', ['hooks'], (hooks) => {
 			'x-csrf-token': config.csrf_token,
 		},
 	}, onSuccess);
+}
 
-	api.put = (route, payload, onSuccess) => call({
+export function put(route, payload, onSuccess) {
+	return call({
 		url: route,
 		method: 'put',
 		data: JSON.stringify(payload || {}),
@@ -84,8 +107,10 @@ define('api', ['hooks'], (hooks) => {
 			'x-csrf-token': config.csrf_token,
 		},
 	}, onSuccess);
+}
 
-	api.del = (route, payload, onSuccess) => call({
+export function del(route, payload, onSuccess) {
+	return call({
 		url: route,
 		method: 'delete',
 		data: JSON.stringify(payload),
@@ -94,7 +119,4 @@ define('api', ['hooks'], (hooks) => {
 			'x-csrf-token': config.csrf_token,
 		},
 	}, onSuccess);
-	api.delete = api.del;
-
-	return api;
-});
+}
diff --git a/public/src/modules/categoryFilter.js b/public/src/modules/categoryFilter.js
index b1593a5dec..284c735448 100644
--- a/public/src/modules/categoryFilter.js
+++ b/public/src/modules/categoryFilter.js
@@ -9,7 +9,7 @@ define('categoryFilter', ['categorySearch', 'api', 'hooks'], function (categoryS
 		}
 		options = options || {};
 		options.states = options.states || ['watching', 'notwatching', 'ignoring'];
-		options.template = 'partials/category-filter';
+		options.template = 'partials/category/filter-dropdown-left';
 
 		hooks.fire('action:category.filter.options', { el: el, options: options });
 
@@ -18,9 +18,9 @@ define('categoryFilter', ['categorySearch', 'api', 'hooks'], function (categoryS
 		let selectedCids = [];
 		let initialCids = [];
 		if (Array.isArray(options.selectedCids)) {
-			selectedCids = options.selectedCids.map(cid => parseInt(cid, 10));
+			selectedCids = options.selectedCids.map(String);
 		} else if (Array.isArray(ajaxify.data.selectedCids)) {
-			selectedCids = ajaxify.data.selectedCids.map(cid => parseInt(cid, 10));
+			selectedCids = ajaxify.data.selectedCids.map(String);
 		}
 		initialCids = selectedCids.slice();
 
@@ -31,8 +31,14 @@ define('categoryFilter', ['categorySearch', 'api', 'hooks'], function (categoryS
 					changed = true;
 				}
 			});
+			initialCids = selectedCids.slice();
+
 			if (changed) {
-				updateFilterButton(el, selectedCids);
+				if (options.updateButton) {
+					options.updateButton({ el, changed: changed, selectedCids: selectedCids.slice() });
+				} else if (options.updateButton !== false) {
+					updateFilterButton(el, selectedCids);
+				}
 			}
 			if (options.onHidden) {
 				options.onHidden({ changed: changed, selectedCids: selectedCids.slice() });
@@ -43,6 +49,10 @@ define('categoryFilter', ['categorySearch', 'api', 'hooks'], function (categoryS
 				const currentParams = utils.params();
 				if (selectedCids.length) {
 					currentParams.cid = selectedCids;
+				} else {
+					delete currentParams.cid;
+				}
+				if (Object.keys(currentParams).length) {
 					url += '?' + decodeURIComponent($.param(currentParams));
 				}
 				ajaxify.go(url);
@@ -56,21 +66,26 @@ define('categoryFilter', ['categorySearch', 'api', 'hooks'], function (categoryS
 			if (link && link !== '#' && link.length) {
 				return;
 			}
-			const cid = parseInt(categoryEl.attr('data-cid'), 10);
+			const cid = categoryEl.attr('data-cid');
 			const icon = categoryEl.find('[component="category/select/icon"]');
 
-			if (selectedCids.includes(cid)) {
-				selectedCids.splice(selectedCids.indexOf(cid), 1);
+			if (cid !== 'all') {
+				if (selectedCids.includes(cid)) {
+					selectedCids.splice(selectedCids.indexOf(cid), 1);
+				} else {
+					selectedCids.push(cid);
+				}
+				selectedCids.sort(function (a, b) {
+					return a - b;
+				});
 			} else {
-				selectedCids.push(cid);
+				el.find('[component="category/select/icon"]').addClass('invisible');
+				selectedCids = [cid];
 			}
-			selectedCids.sort(function (a, b) {
-				return a - b;
-			});
-			options.selectedCids = selectedCids;
 
+			options.selectedCids = selectedCids;
+			listEl.find('[data-cid="all"] i').toggleClass('invisible', !!selectedCids.length);
 			icon.toggleClass('invisible');
-			listEl.find('li[data-all="all"] i').toggleClass('invisible', !!selectedCids.length);
 			if (options.onSelect) {
 				options.onSelect({ cid: cid, selectedCids: selectedCids.slice() });
 			}
@@ -91,7 +106,7 @@ define('categoryFilter', ['categorySearch', 'api', 'hooks'], function (categoryS
 			renderButton();
 		}
 		function renderButton(category) {
-			app.parseAndTranslate('partials/category-filter-content', {
+			app.parseAndTranslate('partials/category/filter-dropdown-content', {
 				selectedCategory: category,
 			}, function (html) {
 				el.find('button').replaceWith($('<div/>').html(html).find('button'));
diff --git a/public/src/modules/categorySearch.js b/public/src/modules/categorySearch.js
index 8fe32a44d5..608ed21275 100644
--- a/public/src/modules/categorySearch.js
+++ b/public/src/modules/categorySearch.js
@@ -1,6 +1,6 @@
 'use strict';
 
-define('categorySearch', ['alerts'], function (alerts) {
+define('categorySearch', ['alerts', 'bootstrap'], function (alerts, bootstrap) {
 	const categorySearch = {};
 
 	categorySearch.init = function (el, options) {
@@ -25,8 +25,11 @@ define('categorySearch', ['alerts'], function (alerts) {
 
 		el.on('show.bs.dropdown', function () {
 			if (toggleVisibility) {
-				el.find('.dropdown-toggle').addClass('hidden');
+				el.find('.dropdown-toggle').css({ visibility: 'hidden' });
 				searchEl.removeClass('hidden');
+				searchEl.css({
+					'z-index': el.find('.dropdown-toggle').css('z-index') + 1,
+				});
 			}
 
 			function doSearch() {
@@ -37,9 +40,6 @@ define('categorySearch', ['alerts'], function (alerts) {
 						renderList(categories);
 					});
 				} else if (!val && categoriesList) {
-					categoriesList.forEach(function (c) {
-						c.selected = options.selectedCids.includes(c.cid);
-					});
 					renderList(categoriesList);
 				}
 			}
@@ -53,12 +53,14 @@ define('categorySearch', ['alerts'], function (alerts) {
 		});
 
 		el.on('shown.bs.dropdown', function () {
-			searchEl.find('input').focus();
+			if (!['xs', 'sm'].includes(utils.findBootstrapEnvironment())) {
+				searchEl.find('input').focus();
+			}
 		});
 
 		el.on('hide.bs.dropdown', function () {
 			if (toggleVisibility) {
-				el.find('.dropdown-toggle').removeClass('hidden');
+				el.find('.dropdown-toggle').css({ visibility: 'inherit' });
 				searchEl.addClass('hidden');
 			}
 
@@ -84,15 +86,24 @@ define('categorySearch', ['alerts'], function (alerts) {
 		}
 
 		function renderList(categories) {
+			const selectedCids = options.selectedCids.map(String);
+			categories.forEach(function (c) {
+				c.selected = selectedCids.includes(String(c.cid));
+			});
 			app.parseAndTranslate(options.template, {
 				categoryItems: categories.slice(0, 200),
 				selectedCategory: ajaxify.data.selectedCategory,
 				allCategoriesUrl: ajaxify.data.allCategoriesUrl,
 			}, function (html) {
 				el.find('[component="category/list"]')
-					.replaceWith(html.find('[component="category/list"]'));
+					.html(html.find('[component="category/list"]').html());
 				el.find('[component="category/list"] [component="category/no-matches"]')
 					.toggleClass('hidden', !!categories.length);
+
+				const bsDropdown = bootstrap.Dropdown.getInstance(el.find('.dropdown-toggle').get(0));
+				if (bsDropdown) {
+					bsDropdown.update();
+				}
 			});
 		}
 	};
diff --git a/public/src/modules/categorySelector.js b/public/src/modules/categorySelector.js
index c0a36931a3..1713c28747 100644
--- a/public/src/modules/categorySelector.js
+++ b/public/src/modules/categorySelector.js
@@ -13,7 +13,7 @@ define('categorySelector', [
 		const onSelect = options.onSelect || function () {};
 
 		options.states = options.states || ['watching', 'notwatching', 'ignoring'];
-		options.template = 'partials/category-selector';
+		options.template = 'partials/category/selector-dropdown-left';
 		hooks.fire('action:category.selector.options', { el: el, options: options });
 
 		categorySearch.init(el, options);
diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js
index 80f22a9b24..c7158b4e02 100644
--- a/public/src/modules/chat.js
+++ b/public/src/modules/chat.js
@@ -16,21 +16,29 @@ define('chat', [
 			module.center(chatModal);
 			module.focusInput(chatModal);
 		}
-
-		if (module.modalExists(roomId)) {
-			loadAndCenter(module.getModal(roomId));
-		} else {
-			api.get(`/chats/${roomId}`, {
-				uid: uid || app.user.uid,
-			}).then((roomData) => {
-				roomData.users = roomData.users.filter(function (user) {
-					return user && parseInt(user.uid, 10) !== parseInt(app.user.uid, 10);
-				});
-				roomData.uid = uid || app.user.uid;
-				roomData.isSelf = true;
-				module.createModal(roomData, loadAndCenter);
-			}).catch(alerts.error);
-		}
+		hooks.fire('filter:chat.openChat', {
+			modal: true,
+			roomId: roomId,
+			uid: uid,
+		}).then((hookData) => {
+			if (!hookData.modal) {
+				return ajaxify.go(`/chats/${roomId}`);
+			}
+			if (module.modalExists(roomId)) {
+				loadAndCenter(module.getModal(roomId));
+			} else {
+				api.get(`/chats/${roomId}`, {
+					uid: uid || app.user.uid,
+				}).then((roomData) => {
+					roomData.users = roomData.users.filter(function (user) {
+						return user && parseInt(user.uid, 10) !== parseInt(app.user.uid, 10);
+					});
+					roomData.uid = uid || app.user.uid;
+					roomData.isSelf = true;
+					module.createModal(roomData, loadAndCenter);
+				}).catch(alerts.error);
+			}
+		});
 	};
 
 	module.newChat = function (touid, callback) {
@@ -85,17 +93,23 @@ define('chat', [
 				return room.teaser;
 			});
 
+			for (let i = 0; i < rooms.length; i += 1) {
+				rooms[i].teaser.timeagoLong = $.timeago(new Date(parseInt(rooms[i].teaser.timestamp, 10)));
+			}
+
 			translator.toggleTimeagoShorthand(function () {
 				for (let i = 0; i < rooms.length; i += 1) {
 					rooms[i].teaser.timeago = $.timeago(new Date(parseInt(rooms[i].teaser.timestamp, 10)));
+					rooms[i].teaser.timeagoShort = rooms[i].teaser.timeago;
 				}
 				translator.toggleTimeagoShorthand();
 				app.parseAndTranslate('partials/chats/dropdown', { rooms: rooms }, function (html) {
+					const listEl = chatsListEl.get(0);
+
 					chatsListEl.find('*').not('.navigation-link').remove();
 					chatsListEl.prepend(html);
-					app.createUserTooltips(chatsListEl, 'right');
 					chatsListEl.off('click').on('click', '[data-roomid]', function (ev) {
-						if ($(ev.target).parents('.user-link').length) {
+						if (['.user-link', '.mark-read'].some(className => ev.target.closest(className))) {
 							return;
 						}
 						const roomId = $(this).attr('data-roomid');
@@ -106,6 +120,9 @@ define('chat', [
 						}
 					});
 
+					listEl.removeEventListener('click', onMarkReadClicked);
+					listEl.addEventListener('click', onMarkReadClicked);
+
 					$('[component="chats/mark-all-read"]').off('click').on('click', function () {
 						socket.emit('modules.chats.markAllRead', function (err) {
 							if (err) {
@@ -118,24 +135,40 @@ define('chat', [
 		});
 	};
 
+	function onMarkReadClicked(e) {
+		const subselector = e.target.closest('.mark-read');
+		if (!subselector) {
+			return;
+		}
 
-	module.onChatMessageReceived = function (data) {
-		const isSelf = data.self === 1;
-		data.message.self = data.self;
+		e.stopPropagation();
+		const chatEl = e.target.closest('[data-roomid]');
+		const state = !chatEl.classList.contains('unread');
+		const roomId = chatEl.getAttribute('data-roomid');
+		api[state ? 'put' : 'del'](`/chats/${roomId}/state`, {}).catch((err) => {
+			alerts.error(err);
+
+			// Revert on failure
+			chatEl.classList[state ? 'remove' : 'add']('unread');
+			chatEl.querySelector('.unread').classList[state ? 'add' : 'remove']('hidden');
+			chatEl.querySelector('.read').classList[!state ? 'add' : 'remove']('hidden');
+		});
+
+		// Immediate feedback
+		chatEl.classList[state ? 'add' : 'remove']('unread');
+		chatEl.querySelector('.unread').classList[!state ? 'add' : 'remove']('hidden');
+		chatEl.querySelector('.read').classList[state ? 'add' : 'remove']('hidden');
+	}
 
-		newMessage = data.self === 0;
+	module.onChatMessageReceived = function (data) {
+		if (!newMessage) {
+			newMessage = data.self === 0;
+		}
 		if (module.modalExists(data.roomId)) {
+			data.message.self = data.self;
+			data.message.timestamp = Math.min(Date.now(), data.message.timetamp);
+			data.message.timestampISO = utils.toISOString(data.message.timestamp);
 			addMessageToModal(data);
-		} else if (!ajaxify.data.template.chats) {
-			api.get(`/chats/${data.roomId}`, {}).then((roomData) => {
-				roomData.users = roomData.users.filter(function (user) {
-					return user && parseInt(user.uid, 10) !== parseInt(app.user.uid, 10);
-				});
-				roomData.silent = true;
-				roomData.uid = app.user.uid;
-				roomData.isSelf = isSelf;
-				module.createModal(roomData);
-			}).catch(alerts.error);
 		}
 	};
 
@@ -242,10 +275,10 @@ define('chat', [
 					});
 				});
 
-				scrollStop.apply(chatModal.find('[component="chat/messages"]'));
+				scrollStop.apply(chatModal.find('[component="chat/messages"] .chat-content'));
 
 				chatModal.find('#chat-close-btn').on('click', function () {
-					module.close(chatModal);
+					module.close(uuid);
 				});
 
 				function gotoChats() {
@@ -255,7 +288,7 @@ define('chat', [
 					});
 
 					ajaxify.go('user/' + app.user.userslug + '/chats/' + chatModal.attr('data-roomid'));
-					module.close(chatModal);
+					module.close(uuid);
 				}
 
 				chatModal.find('.modal-header').on('dblclick', gotoChats);
@@ -281,7 +314,7 @@ define('chat', [
 
 				chatModal.on('mousemove keypress click', function () {
 					if (newMessage) {
-						socket.emit('modules.chats.markRead', data.roomId);
+						api.del(`/chats/${data.roomId}/state`, {});
 						newMessage = false;
 					}
 				});
@@ -292,7 +325,7 @@ define('chat', [
 				Chats.addSendHandlers(chatModal.attr('data-roomid'), chatModal.find('.chat-input'), chatModal.find('[data-action="send"]'));
 				Chats.addMemberHandler(chatModal.attr('data-roomid'), chatModal.find('[data-action="members"]'));
 
-				Chats.createAutoComplete(chatModal.find('[component="chat/input"]'));
+				Chats.createAutoComplete(chatModal.attr('data-roomid'), chatModal.find('[component="chat/input"]'));
 
 				Chats.addScrollHandler(chatModal.attr('data-roomid'), data.uid, chatModal.find('.chat-content'));
 				Chats.addScrollBottomHandler(chatModal.find('.chat-content'));
@@ -304,6 +337,7 @@ define('chat', [
 					dragDropAreaEl: chatModal.find('.modal-content'),
 					pasteEl: chatModal,
 					uploadFormEl: chatModal.find('[component="chat/upload"]'),
+					uploadBtnEl: chatModal.find('[component="chat/upload/button"]'),
 					inputEl: chatModal.find('[component="chat/input"]'),
 				});
 
@@ -333,8 +367,8 @@ define('chat', [
 		}, 20);
 	};
 
-	module.close = function (chatModal) {
-		const uuid = chatModal.attr('data-uuid');
+	module.close = function (uuid) {
+		const chatModal = $('.chat-modal[data-uuid="' + uuid + '"]');
 		clearInterval(chatModal.attr('intervalId'));
 		chatModal.attr('intervalId', 0);
 		chatModal.remove();
@@ -344,6 +378,9 @@ define('chat', [
 		if (chatModal.attr('data-mobile')) {
 			module.disableMobileBehaviour(chatModal);
 		}
+		require(['forum/chats'], function (chats) {
+			chats.destroyAutoComplete(chatModal.attr('data-roomid'));
+		});
 
 		hooks.fire('action:chat.closed', {
 			uuid: uuid,
@@ -351,12 +388,6 @@ define('chat', [
 		});
 	};
 
-	// TODO: see taskbar.js:44
-	module.closeByUUID = function (uuid) {
-		const chatModal = $('.chat-modal[data-uuid="' + uuid + '"]');
-		module.close(chatModal);
-	};
-
 	module.center = function (chatModal) {
 		let hideAfter = false;
 		if (chatModal.hasClass('hide')) {
@@ -379,7 +410,7 @@ define('chat', [
 			taskbar.updateActive(uuid);
 			ChatsMessages.scrollToBottom(chatModal.find('.chat-content'));
 			module.focusInput(chatModal);
-			socket.emit('modules.chats.markRead', chatModal.attr('data-roomid'));
+			api.del(`/chats/${chatModal.attr('data-roomid')}/state`, {});
 
 			const env = utils.findBootstrapEnvironment();
 			if (env === 'xs' || env === 'sm') {
@@ -402,7 +433,7 @@ define('chat', [
 
 		$(window).on('resize', resize);
 		$(window).one('action:ajaxify.start', function () {
-			module.close(modalEl);
+			module.close(modalEl.attr('data-uuid'));
 			$(window).off('resize', resize);
 		});
 	};
diff --git a/public/src/modules/flags.js b/public/src/modules/flags.js
index 820dad9a7a..bff55bf8b5 100644
--- a/public/src/modules/flags.js
+++ b/public/src/modules/flags.js
@@ -8,7 +8,7 @@ define('flags', ['hooks', 'components', 'api', 'alerts'], function (hooks, compo
 	let flagReason;
 
 	Flag.showFlagModal = function (data) {
-		app.parseAndTranslate('partials/modals/flag_modal', data, function (html) {
+		app.parseAndTranslate('modals/flag', data, function (html) {
 			flagModal = html;
 			flagModal.on('hidden.bs.modal', function () {
 				flagModal.remove();
diff --git a/public/src/modules/groupSearch.js b/public/src/modules/groupSearch.js
index b77e559757..66e19a1665 100644
--- a/public/src/modules/groupSearch.js
+++ b/public/src/modules/groupSearch.js
@@ -31,8 +31,11 @@ define('groupSearch', function () {
 				el.find('[component="group-list"] [component="group-no-matches"]').toggleClass('hidden', !noMatch);
 			}
 			if (toggleVisibility) {
-				el.find('.dropdown-toggle').addClass('hidden');
+				el.find('.dropdown-toggle').css({ visibility: 'hidden' });
 				searchEl.removeClass('hidden');
+				searchEl.css({
+					'z-index': el.find('.dropdown-toggle').css('z-index') + 1,
+				});
 			}
 
 			searchEl.on('click', function (ev) {
@@ -49,7 +52,7 @@ define('groupSearch', function () {
 
 		el.on('hide.bs.dropdown', function () {
 			if (toggleVisibility) {
-				el.find('.dropdown-toggle').removeClass('hidden');
+				el.find('.dropdown-toggle').css({ visibility: 'inherit' });
 				searchEl.addClass('hidden');
 			}
 			searchEl.off('click').find('input').off('keyup');
diff --git a/public/src/modules/helpers.common.js b/public/src/modules/helpers.common.js
index 25907fb446..e424d650b6 100644
--- a/public/src/modules/helpers.common.js
+++ b/public/src/modules/helpers.common.js
@@ -3,6 +3,7 @@
 module.exports = function (utils, Benchpress, relative_path) {
 	Benchpress.setGlobal('true', true);
 	Benchpress.setGlobal('false', false);
+	const oneDayInMs = 24 * 60 * 60 * 1000;
 
 	const helpers = {
 		displayMenuItem,
@@ -11,6 +12,8 @@ module.exports = function (utils, Benchpress, relative_path) {
 		stringify,
 		escape,
 		stripTags,
+		buildCategoryIcon,
+		buildCategoryLabel,
 		generateCategoryBackground,
 		generateChildrenCategories,
 		generateTopicClass,
@@ -18,11 +21,12 @@ module.exports = function (utils, Benchpress, relative_path) {
 		spawnPrivilegeStates,
 		localeToHTML,
 		renderTopicImage,
-		renderTopicEvents,
-		renderEvents,
 		renderDigestAvatar,
 		userAgentIcons,
 		buildAvatar,
+		increment,
+		generateRepliedTo,
+		generateWrote,
 		register,
 		__escape: identity,
 	};
@@ -81,6 +85,25 @@ module.exports = function (utils, Benchpress, relative_path) {
 		return utils.stripHTMLTags(str);
 	}
 
+	function buildCategoryIcon(category, size, rounded) {
+		if (!category) {
+			return '';
+		}
+
+		return `<span class="icon d-inline-flex justify-content-center align-items-center align-middle ${rounded}" style="${generateCategoryBackground(category)} width:${size}; height: ${size}; font-size: ${parseInt(size, 10) / 2}px;">${category.icon ? `<i class="fa fa-fw ${category.icon}"></i>` : ''}</span>`;
+	}
+
+	function buildCategoryLabel(category, className = '') {
+		if (!category) {
+			return '';
+		}
+
+		return `<span class="badge px-1 ${className}" style="color: ${category.color};background-color: ${category.bgColor};border-color: ${category.bgColor}!important;">
+			${category.icon && category.icon !== 'fa-nbb-none' ? `<i class="fa fa-fw ${category.icon}"></i>` : ''}
+			${category.name}
+		</span>`;
+	}
+
 	function generateCategoryBackground(category) {
 		if (!category) {
 			return '';
@@ -89,6 +112,7 @@ module.exports = function (utils, Benchpress, relative_path) {
 
 		if (category.bgColor) {
 			style.push('background-color: ' + category.bgColor);
+			style.push(`border-color: ${category.bgColor}!important`);
 		}
 
 		if (category.color) {
@@ -113,8 +137,8 @@ module.exports = function (utils, Benchpress, relative_path) {
 		category.children.forEach(function (child) {
 			if (child && !child.isSection) {
 				const link = child.link ? child.link : (relative_path + '/category/' + child.slug);
-				html += '<span class="category-children-item pull-left">' +
-					'<div role="presentation" class="icon pull-left" style="' + generateCategoryBackground(child) + '">' +
+				html += '<span class="category-children-item float-start">' +
+					'<div role="presentation" class="icon float-start" style="' + generateCategoryBackground(child) + '">' +
 					'<i class="fa fa-fw ' + child.icon + '"></i>' +
 					'</div>' +
 					'<a href="' + link + '"><small>' + child.name + '</small></a></span>';
@@ -130,17 +154,17 @@ module.exports = function (utils, Benchpress, relative_path) {
 	}
 
 	// Groups helpers
-	function membershipBtn(groupObj) {
+	function membershipBtn(groupObj, btnClass = '') {
 		if (groupObj.isMember && groupObj.name !== 'administrators') {
-			return '<button class="btn btn-danger" data-action="leave" data-group="' + groupObj.displayName + '"' + (groupObj.disableLeave ? ' disabled' : '') + '><i class="fa fa-times"></i> [[groups:membership.leave-group]]</button>';
+			return `<button class="btn btn-danger ${btnClass}" data-action="leave" data-group="${groupObj.displayName}" ${(groupObj.disableLeave ? ' disabled' : '')}><i class="fa fa-times"></i> [[groups:membership.leave-group]]</button>`;
 		}
 
 		if (groupObj.isPending && groupObj.name !== 'administrators') {
-			return '<button class="btn btn-warning disabled"><i class="fa fa-clock-o"></i> [[groups:membership.invitation-pending]]</button>';
+			return `<button class="btn btn-warning disabled ${btnClass}"><i class="fa fa-clock-o"></i> [[groups:membership.invitation-pending]]</button>`;
 		} else if (groupObj.isInvited) {
-			return '<button class="btn btn-link" data-action="rejectInvite" data-group="' + groupObj.displayName + '">[[groups:membership.reject]]</button><button class="btn btn-success" data-action="acceptInvite" data-group="' + groupObj.name + '"><i class="fa fa-plus"></i> [[groups:membership.accept-invitation]]</button>';
+			return `<button class="btn btn-link" data-action="rejectInvite" data-group="${groupObj.displayName}">[[groups:membership.reject]]</button><button class="btn btn-success" data-action="acceptInvite" data-group="${groupObj.name}"><i class="fa fa-plus"></i> [[groups:membership.accept-invitation]]</button>`;
 		} else if (!groupObj.disableJoinRequests && groupObj.name !== 'administrators') {
-			return '<button class="btn btn-success" data-action="join" data-group="' + groupObj.displayName + '"><i class="fa fa-plus"></i> [[groups:membership.join-group]]</button>';
+			return `<button class="btn btn-success" data-action="join" data-group="${groupObj.displayName}"><i class="fa fa-plus"></i> [[groups:membership.join-group]]</button>`;
 		}
 		return '';
 	}
@@ -164,7 +188,13 @@ module.exports = function (utils, Benchpress, relative_path) {
 				(member === 'spiders' && !spidersEnabled.includes(priv.name)) ||
 				(member === 'Global Moderators' && globalModDisabled.includes(priv.name));
 
-			return '<td class="text-center" data-privilege="' + priv.name + '" data-value="' + priv.state + '"><input autocomplete="off" type="checkbox"' + (priv.state ? ' checked' : '') + (disabled ? ' disabled="disabled"' : '') + ' /></td>';
+			return `
+				<td data-privilege="${priv.name}" data-value="${priv.state}">
+					<div class="form-check text-center">
+						<input class="form-check-input float-none" autocomplete="off" type="checkbox"${(priv.state ? ' checked' : '')}${(disabled ? ' disabled="disabled"' : '')} />
+					</div>
+				</td>
+			`;
 		}).join('');
 	}
 
@@ -180,49 +210,6 @@ module.exports = function (utils, Benchpress, relative_path) {
 		return '<img component="user/picture" data-uid="' + topicObj.user.uid + '" src="' + topicObj.user.picture + '" class="user-img" title="' + topicObj.user.username + '" />';
 	}
 
-	function renderTopicEvents(index, sort) {
-		if (sort === 'most_votes') {
-			return '';
-		}
-		const start = this.posts[index].eventStart;
-		const end = this.posts[index].eventEnd;
-		const events = this.events.filter(event => event.timestamp >= start && event.timestamp < end);
-		if (!events.length) {
-			return '';
-		}
-
-		return renderEvents.call(this, events);
-	}
-
-	function renderEvents(events) {
-		return events.reduce((html, event) => {
-			html += `<li component="topic/event" class="timeline-event" data-topic-event-id="${event.id}" data-topic-event-type="${event.type}">
-				<div class="timeline-badge">
-					<i class="fa ${event.icon || 'fa-circle'}"></i>
-				</div>
-				<span class="timeline-text">
-					${event.href ? `<a href="${relative_path}${event.href}">${event.text}</a>` : event.text}&nbsp;
-				</span>
-			`;
-
-			if (event.user) {
-				if (!event.user.system) {
-					html += `<span><a href="${relative_path}/user/${event.user.userslug}">${buildAvatar(event.user, 'xs', true)}&nbsp;${event.user.username}</a></span>&nbsp;`;
-				} else {
-					html += `<span class="timeline-text">[[global:system-user]]</span>&nbsp;`;
-				}
-			}
-
-			html += `<span class="timeago timeline-text" title="${event.timestampISO}"></span>`;
-
-			if (this.privileges.isAdminOrMod) {
-				html += `&nbsp;<span component="topic/event/delete" data-topic-event-id="${event.id}" data-topic-event-type="${event.type} class="timeline-text pointer" title="[[topic:delete-event]]"><i class="fa fa-trash"></i></span>`;
-			}
-
-			return html;
-		}, '');
-	}
-
 	function renderDigestAvatar(block) {
 		if (block.teaser) {
 			if (block.teaser.user.picture) {
@@ -292,7 +279,7 @@ module.exports = function (utils, Benchpress, relative_path) {
 		/**
 		 * userObj requires:
 		 *   - uid, picture, icon:bgColor, icon:text (getUserField w/ "picture" should return all 4), username
-		 * size: one of "xs", "sm", "md", "lg", or "xl" (required), or an integer
+		 * size: a picture size in the form of a value with units (e.g. 64px, 4rem, etc.)
 		 * rounded: true or false (optional, default false)
 		 * classNames: additional class names to prepend (optional, default none)
 		 * component: overrides the default component (optional, default none)
@@ -303,38 +290,51 @@ module.exports = function (utils, Benchpress, relative_path) {
 			userObj = this;
 		}
 
-		const attributes = [
-			'alt="' + userObj.username + '"',
-			'title="' + userObj.username + '"',
-			'data-uid="' + userObj.uid + '"',
-			'loading="lazy"',
-		];
-		const styles = [];
+		const attributes = new Map([
+			['alt', userObj.username],
+			['title', userObj.username],
+			['data-uid', userObj.uid],
+			['loading', 'lazy'],
+		]);
+		const styles = [`--avatar-size: ${size};`];
+		const attr2String = attributes => Array.from(attributes).reduce((output, [prop, value]) => {
+			output += ` ${prop}="${value}"`;
+			return output;
+		}, '');
 		classNames = classNames || '';
 
-		// Validate sizes, handle integers, otherwise fall back to `avatar-sm`
-		if (['xs', 'sm', 'sm2x', 'md', 'lg', 'xl'].includes(size)) {
-			classNames += ' avatar-' + size;
-		} else if (!isNaN(parseInt(size, 10))) {
-			styles.push('width: ' + size + 'px;', 'height: ' + size + 'px;', 'line-height: ' + size + 'px;', 'font-size: ' + (parseInt(size, 10) / 16) + 'rem;');
-		} else {
-			classNames += ' avatar-sm';
-		}
-		attributes.unshift('class="avatar ' + classNames + (rounded ? ' avatar-rounded' : '') + '"');
+		attributes.set('class', `avatar ${classNames}${rounded ? ' avatar-rounded' : ''}`);
 
-		// Component override
-		if (component) {
-			attributes.push('component="' + component + '"');
-		} else {
-			attributes.push('component="avatar/' + (userObj.picture ? 'picture' : 'icon') + '"');
-		}
+		let output = '';
 
 		if (userObj.picture) {
-			return '<img ' + attributes.join(' ') + ' src="' + userObj.picture + '" style="' + styles.join(' ') + '" />';
+			attributes.set('component', component || 'avatar/picture');
+			output += '<img ' + attr2String(attributes) + ' src="' + userObj.picture + '" style="' + styles.join(' ') + '" onError="this.remove();" itemprop="image" />';
 		}
 
+		attributes.set('component', component || 'avatar/icon');
 		styles.push('background-color: ' + userObj['icon:bgColor'] + ';');
-		return '<span ' + attributes.join(' ') + ' style="' + styles.join(' ') + '">' + userObj['icon:text'] + '</span>';
+		output += '<span ' + attr2String(attributes) + ' style="' + styles.join(' ') + '">' + userObj['icon:text'] + '</span>';
+
+		return output;
+	}
+
+	function increment(value, inc) {
+		return value + parseInt(inc, 10);
+	}
+
+	function generateRepliedTo(post, timeagoCutoff) {
+		const username = post.parent && post.parent.username ?
+			post.parent.username : '[[global:guest]]';
+		const isBeforeCutoff = post.timestamp < (Date.now() - (timeagoCutoff * oneDayInMs));
+		const langSuffix = isBeforeCutoff ? 'on' : 'ago';
+		return `[[topic:replied-to-user-${langSuffix}, ${post.toPid}, ${relative_path}/post/${post.toPid}, ${username}, ${relative_path}/post/${post.pid}, ${post.timestampISO}]]`;
+	}
+
+	function generateWrote(post, timeagoCutoff) {
+		const isBeforeCutoff = post.timestamp < (Date.now() - (timeagoCutoff * oneDayInMs));
+		const langSuffix = isBeforeCutoff ? 'on' : 'ago';
+		return `[[topic:wrote-${langSuffix}, ${relative_path}/post/${post.pid}, ${post.timestampISO}]]`;
 	}
 
 	function register() {
diff --git a/public/src/modules/hooks.js b/public/src/modules/hooks.js
index 4092c6b9f2..dbd0af9698 100644
--- a/public/src/modules/hooks.js
+++ b/public/src/modules/hooks.js
@@ -25,15 +25,14 @@ define('hooks', [], () => {
 		if (Hooks.logs._collection) {
 			Hooks.logs._collection.add(args);
 		} else {
-			console.log.apply(console, args);
+			console.debug.apply(console, args);
 		}
 	};
 
 	Hooks.logs.flush = () => {
 		if (Hooks.logs._collection && Hooks.logs._collection.size) {
-			console.groupCollapsed('[hooks] Changes to hooks on this page …');
 			Hooks.logs._collection.forEach((args) => {
-				console.log.apply(console, args);
+				console.debug.apply(console, args);
 			});
 			console.groupEnd();
 		}
diff --git a/public/src/modules/iconSelect.js b/public/src/modules/iconSelect.js
index b901372a18..b85fd5af1c 100644
--- a/public/src/modules/iconSelect.js
+++ b/public/src/modules/iconSelect.js
@@ -3,42 +3,257 @@
 
 define('iconSelect', ['benchpress', 'bootbox'], function (Benchpress, bootbox) {
 	const iconSelect = {};
-
+	const initialIcons = [
+		{ id: 'nbb-none', label: 'None (NodeBB)', style: 'nodebb' },
+		{ id: 'youtube', label: 'YouTube (brands)', style: 'brands' },
+		{ id: 'window-restore', label: 'Window Restore (solid)', style: 'solid' },
+		{ id: 'window-maximize', label: 'Window Maximize (solid)', style: 'solid' },
+		{ id: 'rectangle-xmark', label: 'Rectangle X Mark (solid)', style: 'solid' },
+		{ id: 'triangle-exclamation', label: 'Triangle exclamation (solid)', style: 'solid' },
+		{ id: 'phone-volume', label: 'Phone Volume (solid)', style: 'solid' },
+		{ id: 'video', label: 'Video (solid)', style: 'solid' },
+		{ id: 'address-card', label: 'Address Card (solid)', style: 'solid' },
+		{ id: 'user', label: 'User (solid)', style: 'solid' },
+		{ id: 'circle-user', label: 'Circle user (solid)', style: 'solid' },
+		{ id: 'usb', label: 'USB (brands)', style: 'brands' },
+		{ id: 'sort', label: 'Sort (solid)', style: 'solid' },
+		{ id: 'unlock', label: 'unlock (solid)', style: 'solid' },
+		{ id: 'link-slash', label: 'Link Slash (solid)', style: 'solid' },
+		{ id: 'trash-can', label: 'Trash can (solid)', style: 'solid' },
+		{ id: 'transgender', label: 'Transgender (solid)', style: 'solid' },
+		{ id: 'mars-and-venus', label: 'Mars and Venus (solid)', style: 'solid' },
+		{ id: 'square-caret-up', label: 'Square caret up (solid)', style: 'solid' },
+		{ id: 'square-caret-right', label: 'Square caret right (solid)', style: 'solid' },
+		{ id: 'square-caret-left', label: 'Square caret left (solid)', style: 'solid' },
+		{ id: 'square-caret-down', label: 'Square caret down (solid)', style: 'solid' },
+		{ id: 'circle-xmark', label: 'Circle X Mark (solid)', style: 'solid' },
+		{ id: 'thumbs-up', label: 'thumbs-up (solid)', style: 'solid' },
+		{ id: 'thumbs-down', label: 'thumbs-down (solid)', style: 'solid' },
+		{ id: 'thumbtack', label: 'Thumbtack (solid)', style: 'solid' },
+		{ id: 'temperature-full', label: 'Temperature full (solid)', style: 'solid' },
+		{ id: 'temperature-three-quarters', label: 'Temperature three quarters (solid)', style: 'solid' },
+		{ id: 'temperature-half', label: 'Temperature half (solid)', style: 'solid' },
+		{ id: 'temperature-quarter', label: 'Temperature quarter (solid)', style: 'solid' },
+		{ id: 'temperature-empty', label: 'Temperature empty (solid)', style: 'solid' },
+		{ id: 'tv', label: 'Television (solid)', style: 'solid' },
+		{ id: 'bars-progress', label: 'Bars progress (solid)', style: 'solid' },
+		{ id: 'gauge-high', label: 'Gauge (solid)', style: 'solid' },
+		{ id: 'tablet-screen-button', label: 'Tablet screen button (solid)', style: 'solid' },
+		{ id: 'life-ring', label: 'Life Ring (solid)', style: 'solid' },
+		{ id: 'sun', label: 'Sun (solid)', style: 'solid' },
+		{ id: 'circle-stop', label: 'Circle stop (solid)', style: 'solid' },
+		{ id: 'note-sticky', label: 'Note sticky (solid)', style: 'solid' },
+		{ id: 'star', label: 'Star (solid)', style: 'solid' },
+		{ id: 'star-half-stroke', label: 'Star half stroke (solid)', style: 'solid' },
+		{ id: 'square', label: 'Square (solid)', style: 'solid' },
+		{ id: 'arrow-down-9-1', label: 'Arrow down 9 1 (solid)', style: 'solid' },
+		{ id: 'arrow-down-1-9', label: 'Arrow down 1 9 (solid)', style: 'solid' },
+		{ id: 'sort-down', label: 'Sort Down (Descending) (solid)', style: 'solid' },
+		{ id: 'sort-up', label: 'Sort Up (Ascending) (solid)', style: 'solid' },
+		{ id: 'arrow-down-wide-short', label: 'Arrow down wide short (solid)', style: 'solid' },
+		{ id: 'arrow-down-short-wide', label: 'Arrow down short wide (solid)', style: 'solid' },
+		{ id: 'arrow-down-z-a', label: 'Arrow down z a (solid)', style: 'solid' },
+		{ id: 'arrow-down-a-z', label: 'Arrow down a z (solid)', style: 'solid' },
+		{ id: 'futbol', label: 'Futbol ball (solid)', style: 'solid' },
+		{ id: 'snowflake', label: 'Snowflake (solid)', style: 'solid' },
+		{ id: 'face-smile', label: 'Face Smile (solid)', style: 'solid' },
+		{ id: 'hands', label: 'Hands (solid)', style: 'solid' },
+		{ id: 'right-from-bracket', label: 'Right from bracket (solid)', style: 'solid' },
+		{ id: 'right-to-bracket', label: 'Right to bracket (solid)', style: 'solid' },
+		{ id: 'share-from-square', label: 'Share from square (solid)', style: 'solid' },
+		{ id: 'paper-plane', label: 'Paper Plane (solid)', style: 'solid' },
+		{ id: 'floppy-disk', label: 'Floppy Disk (solid)', style: 'solid' },
+		{ id: 'safari', label: 'Safari (brands)', style: 'brands' },
+		{ id: 'bath', label: 'Bath (solid)', style: 'solid' },
+		{ id: 'arrow-rotate-right', label: 'Arrow Rotate Right (solid)', style: 'solid' },
+		{ id: 'arrow-rotate-left', label: 'Arrow Rotate Left (solid)', style: 'solid' },
+		{ id: 'bars', label: 'Bars (solid)', style: 'solid' },
+		{ id: 'xmark', label: 'X Mark (solid)', style: 'solid' },
+		{ id: 'registered', label: 'Registered Trademark (solid)', style: 'solid' },
+		{ id: 'arrows-rotate', label: 'Arrows rotate (solid)', style: 'solid' },
+		{ id: 'circle-question', label: 'Circle question (solid)', style: 'solid' },
+		{ id: 'square-plus', label: 'Square plus (solid)', style: 'solid' },
+		{ id: 'circle-play', label: 'Circle play (solid)', style: 'solid' },
+		{ id: 'chart-pie', label: 'Pie Chart (solid)', style: 'solid' },
+		{ id: 'image', label: 'Image (solid)', style: 'solid' },
+		{ id: 'pen-to-square', label: 'Pen to square (solid)', style: 'solid' },
+		{ id: 'square-pen', label: 'Square pen (solid)', style: 'solid' },
+		{ id: 'circle-pause', label: 'Circle pause (solid)', style: 'solid' },
+		{ id: 'opera', label: 'Opera (brands)', style: 'brands' },
+		{ id: 'openid', label: 'OpenID (brands)', style: 'brands' },
+		{ id: 'object-ungroup', label: 'Object Ungroup (solid)', style: 'solid' },
+		{ id: 'object-group', label: 'Object Group (solid)', style: 'solid' },
+		{ id: 'newspaper', label: 'Newspaper (solid)', style: 'solid' },
+		{ id: 'graduation-cap', label: 'Graduation Cap (solid)', style: 'solid' },
+		{ id: 'moon', label: 'Moon (solid)', style: 'solid' },
+		{ id: 'money-bill-1', label: 'Money bill 1 (solid)', style: 'solid' },
+		{ id: 'mobile-screen-button', label: 'Mobile screen button (solid)', style: 'solid' },
+		{ id: 'square-minus', label: 'Square minus (solid)', style: 'solid' },
+		{ id: 'face-meh', label: 'Face meh (solid)', style: 'solid' },
+		{ id: 'map', label: 'Map (solid)', style: 'solid' },
+		{ id: 'location-dot', label: 'Location dot (solid)', style: 'solid' },
+		{ id: 'reply-all', label: 'reply-all (solid)', style: 'solid' },
+		{ id: 'reply', label: 'Reply (solid)', style: 'solid' },
+		{ id: 'share', label: 'Share (solid)', style: 'solid' },
+		{ id: 'wand-magic-sparkles', label: 'Wand magic sparkles (solid)', style: 'solid' },
+		{ id: 'up-long', label: 'Up long (solid)', style: 'solid' },
+		{ id: 'right-long', label: 'Right long (solid)', style: 'solid' },
+		{ id: 'left-long', label: 'Left long (solid)', style: 'solid' },
+		{ id: 'down-long', label: 'Down long (solid)', style: 'solid' },
+		{ id: 'rectangle-list', label: 'Rectangle list (solid)', style: 'solid' },
+		{ id: 'chart-line', label: 'Line Chart (solid)', style: 'solid' },
+		{ id: 'lightbulb', label: 'Lightbulb (solid)', style: 'solid' },
+		{ id: 'turn-up', label: 'Turn up (solid)', style: 'solid' },
+		{ id: 'turn-down', label: 'Turn down (solid)', style: 'solid' },
+		{ id: 'lemon', label: 'Lemon (solid)', style: 'solid' },
+		{ id: 'gavel', label: 'Gavel (solid)', style: 'solid' },
+		{ id: 'keyboard', label: 'Keyboard (solid)', style: 'solid' },
+		{ id: 'building-columns', label: 'Building with Columns (solid)', style: 'solid' },
+		{ id: 'id-card', label: 'Identification Card (solid)', style: 'solid' },
+		{ id: 'id-badge', label: 'Identification Badge (solid)', style: 'solid' },
+		{ id: 'hourglass', label: 'Hourglass (solid)', style: 'solid' },
+		{ id: 'hourglass-end', label: 'Hourglass End (solid)', style: 'solid' },
+		{ id: 'hourglass-half', label: 'Hourglass Half (solid)', style: 'solid' },
+		{ id: 'hourglass-start', label: 'Hourglass Start (solid)', style: 'solid' },
+		{ id: 'bed', label: 'Bed (solid)', style: 'solid' },
+		{ id: 'hospital', label: 'hospital (solid)', style: 'solid' },
+		{ id: 'house', label: 'House (solid)', style: 'solid' },
+		{ id: 'heart', label: 'Heart (solid)', style: 'solid' },
+		{ id: 'heading', label: 'heading (solid)', style: 'solid' },
+		{ id: 'hard-drive', label: 'Hard drive (solid)', style: 'solid' },
+		{ id: 'ear-deaf', label: 'Ear deaf (solid)', style: 'solid' },
+		{ id: 'handshake', label: 'Handshake (solid)', style: 'solid' },
+		{ id: 'hand', label: 'Paper (Hand) (solid)', style: 'solid' },
+		{ id: 'hand-spock', label: 'Spock (Hand) (solid)', style: 'solid' },
+		{ id: 'hand-scissors', label: 'Scissors (Hand) (solid)', style: 'solid' },
+		{ id: 'hand-back-fist', label: 'Rock (Hand) (solid)', style: 'solid' },
+		{ id: 'hand-pointer', label: 'Pointer (Hand) (solid)', style: 'solid' },
+		{ id: 'hand-peace', label: 'Peace (Hand) (solid)', style: 'solid' },
+		{ id: 'hand-point-up', label: 'Hand Pointing Up (solid)', style: 'solid' },
+		{ id: 'hand-point-right', label: 'Hand Pointing Right (solid)', style: 'solid' },
+		{ id: 'hand-point-left', label: 'Hand Pointing Left (solid)', style: 'solid' },
+		{ id: 'hand-point-down', label: 'Hand Pointing Down (solid)', style: 'solid' },
+		{ id: 'hand-lizard', label: 'Lizard (Hand) (solid)', style: 'solid' },
+		{ id: 'users', label: 'Users (solid)', style: 'solid' },
+		{ id: 'gears', label: 'Gears (solid)', style: 'solid' },
+		{ id: 'gear', label: 'Gear (solid)', style: 'solid' },
+		{ id: 'face-frown', label: 'Face frown (solid)', style: 'solid' },
+		{ id: 'font-awesome', label: 'Font Awesome (brands)', style: 'brands' },
+		{ id: 'folder-open', label: 'Folder Open (solid)', style: 'solid' },
+		{ id: 'folder', label: 'Folder (solid)', style: 'solid' },
+		{ id: 'bolt', label: 'Bolt (solid)', style: 'solid' },
+		{ id: 'flag', label: 'flag (solid)', style: 'solid' },
+		{ id: 'firefox', label: 'Firefox (brands)', style: 'brands' },
+		{ id: 'copy', label: 'Copy (solid)', style: 'solid' },
+		{ id: 'file-zipper', label: 'File zipper (solid)', style: 'solid' },
+		{ id: 'file-video', label: 'Video File (solid)', style: 'solid' },
+		{ id: 'file-lines', label: 'File lines (solid)', style: 'solid' },
+		{ id: 'file-audio', label: 'Audio File (solid)', style: 'solid' },
+		{ id: 'file-image', label: 'Image File (solid)', style: 'solid' },
+		{ id: 'file', label: 'File (solid)', style: 'solid' },
+		{ id: 'file-code', label: 'Code File (solid)', style: 'solid' },
+		{ id: 'eye-dropper', label: 'Eye Dropper (solid)', style: 'solid' },
+		{ id: 'eye-slash', label: 'Eye Slash (solid)', style: 'solid' },
+		{ id: 'eye', label: 'Eye (solid)', style: 'solid' },
+		{ id: 'square-up-right', label: 'Square up right (solid)', style: 'solid' },
+		{ id: 'up-right-from-square', label: 'Up right from square (solid)', style: 'solid' },
+		{ id: 'up-right-and-down-left-from-center', label: 'Up right and down left from center (solid)', style: 'solid' },
+		{ id: 'right-left', label: 'Right left (solid)', style: 'solid' },
+		{ id: 'envelope-open', label: 'Envelope Open (solid)', style: 'solid' },
+		{ id: 'envelope', label: 'Envelope (solid)', style: 'solid' },
+		{ id: 'edge', label: 'Edge Browser (brands)', style: 'brands' },
+		{ id: 'circle-dot', label: 'Circle dot (solid)', style: 'solid' },
+		{ id: 'gem', label: 'Gem (solid)', style: 'solid' },
+		{ id: 'outdent', label: 'Outdent (solid)', style: 'solid' },
+		{ id: 'utensils', label: 'Utensils (solid)', style: 'solid' },
+		{ id: 'scissors', label: 'Scissors (solid)', style: 'solid' },
+		{ id: 'credit-card', label: 'Credit Card (solid)', style: 'solid' },
+		{ id: 'creative-commons', label: 'Creative Commons (brands)', style: 'brands' },
+		{ id: 'copyright', label: 'Copyright (solid)', style: 'solid' },
+		{ id: 'down-left-and-up-right-to-center', label: 'Down left and up right to center (solid)', style: 'solid' },
+		{ id: 'compass', label: 'Compass (solid)', style: 'solid' },
+		{ id: 'comments', label: 'comments (solid)', style: 'solid' },
+		{ id: 'comment-dots', label: 'Comment Dots (solid)', style: 'solid' },
+		{ id: 'comment', label: 'comment (solid)', style: 'solid' },
+		{ id: 'code-branch', label: 'Code Branch (solid)', style: 'solid' },
+		{ id: 'cloud-arrow-up', label: 'Cloud arrow up (solid)', style: 'solid' },
+		{ id: 'cloud-arrow-down', label: 'Cloud arrow down (solid)', style: 'solid' },
+		{ id: 'clone', label: 'Clone (solid)', style: 'solid' },
+		{ id: 'clock', label: 'Clock (solid)', style: 'solid' },
+		{ id: 'paste', label: 'Paste (solid)', style: 'solid' },
+		{ id: 'circle', label: 'Circle (solid)', style: 'solid' },
+		{ id: 'circle-notch', label: 'Circle Notched (solid)', style: 'solid' },
+		{ id: 'chrome', label: 'Chrome (brands)', style: 'brands' },
+		{ id: 'square-check', label: 'Square check (solid)', style: 'solid' },
+		{ id: 'circle-check', label: 'Circle check (solid)', style: 'solid' },
+		{ id: 'link', label: 'Link (solid)', style: 'solid' },
+		{ id: 'closed-captioning', label: 'Closed Captioning (solid)', style: 'solid' },
+		{ id: 'calendar-xmark', label: 'Calendar X Mark (solid)', style: 'solid' },
+		{ id: 'calendar-plus', label: 'Calendar Plus (solid)', style: 'solid' },
+		{ id: 'calendar', label: 'Calendar (solid)', style: 'solid' },
+		{ id: 'calendar-minus', label: 'Calendar Minus (solid)', style: 'solid' },
+		{ id: 'calendar-check', label: 'Calendar Check (solid)', style: 'solid' },
+		{ id: 'calendar-days', label: 'Calendar Days (solid)', style: 'solid' },
+		{ id: 'taxi', label: 'Taxi (solid)', style: 'solid' },
+		{ id: 'building', label: 'Building (solid)', style: 'solid' },
+		{ id: 'bookmark', label: 'bookmark (solid)', style: 'solid' },
+		{ id: 'bluetooth', label: 'Bluetooth (brands)', style: 'brands' },
+		{ id: 'bell-slash', label: 'Bell Slash (solid)', style: 'solid' },
+		{ id: 'bell', label: 'bell (solid)', style: 'solid' },
+		{ id: 'battery-full', label: 'Battery Full (solid)', style: 'solid' },
+		{ id: 'battery-three-quarters', label: 'Battery 3/4 Full (solid)', style: 'solid' },
+		{ id: 'battery-half', label: 'Battery 1/2 Full (solid)', style: 'solid' },
+		{ id: 'battery-quarter', label: 'Battery 1/4 Full (solid)', style: 'solid' },
+		{ id: 'battery-empty', label: 'Battery Empty (solid)', style: 'solid' },
+		{ id: 'chart-column', label: 'Chart Column (solid)', style: 'solid' },
+		{ id: 'car', label: 'Car (solid)', style: 'solid' },
+		{ id: 'hands-asl-interpreting', label: 'Hands american sign language interpreting (solid)', style: 'solid' },
+		{ id: 'up-down', label: 'Up down (solid)', style: 'solid' },
+		{ id: 'left-right', label: 'Left right (solid)', style: 'solid' },
+		{ id: 'maximize', label: 'Maximize (solid)', style: 'solid' },
+		{ id: 'up-down-left-right', label: 'Up down left right (solid)', style: 'solid' },
+		{ id: 'circle-up', label: 'Circle up (solid)', style: 'solid' },
+		{ id: 'circle-right', label: 'Circle right (solid)', style: 'solid' },
+		{ id: 'circle-left', label: 'Circle left (solid)', style: 'solid' },
+		{ id: 'circle-down', label: 'Circle down (solid)', style: 'solid' },
+		{ id: 'chart-area', label: 'Area Chart (solid)', style: 'solid' },
+		{ id: 'apple', label: 'Apple (brands)', style: 'brands' },
+		{ id: 'android', label: 'Android (brands)', style: 'brands' },
+		{ id: 'address-book', label: 'Address Book (solid)', style: 'solid' },
+	];
 	iconSelect.init = function (el, onModified) {
 		onModified = onModified || function () {};
-		const doubleSize = el.hasClass('fa-2x');
-		let selected = el.attr('class').replace('fa-2x', '').replace('fa', '').replace(/\s+/g, '');
+		let selected = cleanFAClass(el.attr('class'));
 
 		$('#icons .selected').removeClass('selected');
 
 		if (selected) {
 			try {
-				$('#icons .fa-icons .fa.' + selected).addClass('selected');
+				$('#icons .nbb-fa-icons .fa.' + selected).addClass('selected');
 			} catch (err) {
 				selected = '';
 			}
 		}
 
-		Benchpress.render('partials/fontawesome', {}).then(function (html) {
+		Benchpress.render('partials/fontawesome', { icons: initialIcons }).then(function (html) {
 			html = $(html);
-			html.find('.fa-icons').prepend($('<i class="fa fa-nbb-none"></i>'));
 
 			const picker = bootbox.dialog({
 				onEscape: true,
 				backdrop: true,
 				show: false,
 				message: html,
+				size: 'large',
 				title: 'Select an Icon',
 				buttons: {
 					noIcon: {
 						label: 'No Icon',
 						className: 'btn-default',
 						callback: function () {
-							el.attr('class', 'fa ' + (doubleSize ? 'fa-2x ' : ''));
+							el.removeClass(selected);
 							el.val('');
 							el.attr('value', '');
-
-							onModified(el);
+							onModified(el, '');
 						},
 					},
 					success: {
@@ -46,21 +261,15 @@ define('iconSelect', ['benchpress', 'bootbox'], function (Benchpress, bootbox) {
 						className: 'btn-primary',
 						callback: function () {
 							const iconClass = $('.bootbox .selected').attr('class') || `fa fa-${$('.bootbox #fa-filter').val()}`;
-							const categoryIconClass = $('<div></div>').addClass(iconClass).removeClass('fa').removeClass('selected')
-								.attr('class');
-							const searchElVal = picker.find('input').val();
-
-							if (categoryIconClass) {
-								el.attr('class', 'fa ' + (doubleSize ? 'fa-2x ' : '') + categoryIconClass);
-								el.val(categoryIconClass);
-								el.attr('value', categoryIconClass);
-							} else if (searchElVal) {
-								el.attr('class', searchElVal);
-								el.val(searchElVal);
-								el.attr('value', searchElVal);
+							const newIconClass = cleanFAClass(iconClass);
+
+							if (newIconClass) {
+								el.removeClass(selected).addClass(newIconClass);
+								el.val(newIconClass);
+								el.attr('value', newIconClass);
 							}
 
-							onModified(el);
+							onModified(el, newIconClass);
 						},
 					},
 				},
@@ -79,8 +288,10 @@ define('iconSelect', ['benchpress', 'bootbox'], function (Benchpress, bootbox) {
 			picker.on('shown.bs.modal', function () {
 				const modalEl = $(this);
 				const searchEl = modalEl.find('input');
-				const icons = modalEl.find('.fa-icons i');
+				const iconContainer = modalEl.find('.nbb-fa-icons');
+				let icons = modalEl.find('.nbb-fa-icons i');
 				const submitEl = modalEl.find('button.btn-primary');
+				let lastSearch = '';
 
 				function changeSelection(newSelection) {
 					modalEl.find('i.selected').removeClass('selected');
@@ -99,26 +310,78 @@ define('iconSelect', ['benchpress', 'bootbox'], function (Benchpress, bootbox) {
 				searchEl.selectRange(0, searchEl.val().length);
 
 				modalEl.find('.icon-container').on('click', 'i', function () {
-					searchEl.val($(this).attr('class').replace('fa fa-', '').replace('selected', ''));
+					searchEl.val(cleanFAClass($(this).attr('class')).replace('fa-', ''));
 					changeSelection($(this));
 				});
-
+				const debouncedSearch = utils.debounce(async () => {
+					// Search
+					let iconData;
+					if (lastSearch.length) {
+						iconData = await iconSelect.findIcons(lastSearch);
+					} else {
+						iconData = initialIcons;
+					}
+					icons.remove();
+					iconData.forEach((iconData) => {
+						iconContainer.append($(`<i class="fa fa-xl fa-${iconData.style} fa-${iconData.id}" data-label="${iconData.label}"></i>`));
+					});
+					icons = modalEl.find('.nbb-fa-icons i');
+					changeSelection();
+				}, 200);
 				searchEl.on('keyup', function (e) {
-					if (e.keyCode !== 13) {
-						// Filter
-						icons.show();
-						icons.each(function (idx, el) {
-							if (!el.className.match(new RegExp('^fa fa-.*' + searchEl.val() + '.*$'))) {
-								$(el).hide();
+					if (e.code !== 'Enter' && searchEl.val() !== lastSearch) {
+						lastSearch = searchEl.val();
+						debouncedSearch();
+					} else if (e.code === 'Enter') {
+						submitEl.trigger('click');
+					}
+				});
+			});
+		});
+	};
+
+	// turns "fa fa-2x fa-solid fa-heart" into "fa-heart"
+	function cleanFAClass(className) {
+		className = className.replace(/fa-(solid|regular|brands|light|thin|duotone|nodebb) /, '');
+		const filterNames = ['fa-2x', 'fa-xl', 'fa', 'fa-'];
+		return className.split(' ')
+			.filter(c => !filterNames.includes(c))
+			.filter(c => c && c.startsWith('fa-')).join('');
+	}
+
+	iconSelect.findIcons = async function (searchString) {
+		const request = await fetch('https://api.fontawesome.com', {
+			method: 'POST',
+			headers: {
+				'Content-Type': 'application/json',
+			},
+			body: JSON.stringify({
+				query: `query {
+					search(version: "6.2.0", query: "${searchString}", first: 200) {
+						id,
+						label,
+						familyStylesByLicense {
+							free {
+								style
 							}
-						});
-						changeSelection();
-					} else {
-						submitEl.click();
+						}
 					}
+				}`,
+			}),
+		});
+		const response = await request.json();
+		const icons = response.data.search.filter(icon => icon.familyStylesByLicense.free.length > 0).flatMap((icon) => {
+			const result = [];
+			icon.familyStylesByLicense.free.forEach((style) => {
+				result.push({
+					id: icon.id,
+					label: `${icon.label} (${style.style})`,
+					style: style.style,
 				});
 			});
+			return result;
 		});
+		return icons;
 	};
 
 	return iconSelect;
diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js
index 75ac147621..d85a51491c 100644
--- a/public/src/modules/navigator.js
+++ b/public/src/modules/navigator.js
@@ -1,9 +1,12 @@
 'use strict';
 
-define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], function (pagination, components, hooks, alerts) {
+define('navigator', [
+	'forum/pagination', 'components', 'hooks', 'alerts', 'translator', 'storage',
+], function (pagination, components, hooks, alerts, translator, storage) {
 	const navigator = {};
 	let index = 0;
 	let count = 0;
+	let remaining = 0;
 	let navigatorUpdateTimeoutId;
 
 	let renderPostIntervalId;
@@ -12,18 +15,15 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 	let renderPostIndex;
 	let isNavigating = false;
 	let firstMove = true;
-
+	let bsEnv = '';
 	navigator.scrollActive = false;
 
 	let paginationBlockEl = $('.pagination-block');
 	let paginationTextEl = paginationBlockEl.find('.pagination-text');
 	let paginationBlockMeterEl = paginationBlockEl.find('meter');
 	let paginationBlockProgressEl = paginationBlockEl.find('.progress-bar');
-	let thumb;
-	let thumbText;
-	let thumbIcon;
-	let thumbIconHeight;
-	let thumbIconHalfHeight;
+	let paginationBlockUnreadEl = paginationBlockEl.find('.unread');
+	let thumbs;
 
 	$(window).on('action:ajaxify.start', function () {
 		$(window).off('keydown', onKeyDown);
@@ -40,12 +40,10 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 		paginationTextEl = paginationBlockEl.find('.pagination-text');
 		paginationBlockMeterEl = paginationBlockEl.find('meter');
 		paginationBlockProgressEl = paginationBlockEl.find('.progress-bar');
+		paginationBlockUnreadEl = paginationBlockEl.find('.unread');
 
-		thumbIcon = $('.scroller-thumb-icon');
-		thumbIconHeight = thumbIcon.height();
-		thumbIconHalfHeight = thumbIconHeight / 2;
-		thumb = $('.scroller-thumb');
-		thumbText = thumb.find('.thumb-text');
+		thumbs = $('.scroller-thumb');
+		bsEnv = utils.findBootstrapEnvironment();
 
 		$(window).off('scroll', navigator.delayedUpdate).on('scroll', navigator.delayedUpdate);
 
@@ -54,9 +52,10 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 		});
 
 		paginationBlockEl.off('shown.bs.dropdown', '.wrapper').on('shown.bs.dropdown', '.wrapper', function () {
+			const el = $(this);
 			setTimeout(async function () {
-				if (utils.findBootstrapEnvironment() === 'lg') {
-					$('.pagination-block input').focus();
+				if (['lg', 'xl', 'xxl'].includes(utils.findBootstrapEnvironment())) {
+					el.find('input').trigger('focus');
 				}
 				const postCountInTopic = await socket.emit('topics.getPostCountInTopic', ajaxify.data.tid);
 				if (postCountInTopic > 0) {
@@ -68,6 +67,8 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 		paginationBlockEl.find('.pagedown').off('click').on('click', navigator.scrollDown);
 		paginationBlockEl.find('.pagetop').off('click').on('click', navigator.toTop);
 		paginationBlockEl.find('.pagebottom').off('click').on('click', navigator.toBottom);
+		paginationBlockEl.find('.pageprev').off('click').on('click', pagination.previousPage);
+		paginationBlockEl.find('.pagenext').off('click').on('click', pagination.nextPage);
 		paginationBlockEl.find('#myNextPostBtn').off('click').on('click', gotoMyNextPost);
 
 		paginationBlockEl.find('input').on('keydown', function (e) {
@@ -81,19 +82,21 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 				const index = parseInt(input.val(), 10);
 				const url = generateUrl(index);
 				input.val('');
-				$('.pagination-block .dropdown-toggle').trigger('click');
+				paginationBlockEl.find('.dopdown-menu.show').removeClass('show');
 				ajaxify.go(url);
 			}
 		});
 
 		if (ajaxify.data.template.topic) {
 			handleScrollNav();
+			remaining = ajaxify.data.postcount;
+			updateUnreadIndicator(ajaxify.data.postIndex);
 		}
 
 		handleKeys();
 
 		navigator.setCount(count);
-		navigator.update(0);
+		navigator.update();
 	};
 
 	let lastNextIndex = 0;
@@ -129,9 +132,11 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 		}
 	}
 
-	function clampTop(newTop) {
+	function clampTop(thumb, newTop) {
 		const parent = thumb.parent();
 		const parentOffset = parent.offset();
+		const thumbIcon = thumb.find('.scroller-thumb-icon');
+		const thumbIconHeight = thumbIcon.height();
 		if (newTop < parentOffset.top) {
 			newTop = parentOffset.top;
 		} else if (newTop > parentOffset.top + parent.height() - thumbIconHeight) {
@@ -141,55 +146,129 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 	}
 
 	function setThumbToIndex(index) {
-		if (!thumb.length || thumb.is(':hidden')) {
+		if (!thumbs || !thumbs.length || !thumbs.is(':visible')) {
 			return;
 		}
-		const parent = thumb.parent();
-		const parentOffset = parent.offset();
-		let percent = (index - 1) / ajaxify.data.postcount;
-		if (index === count) {
-			percent = 1;
-		}
-		const newTop = clampTop(parentOffset.top + ((parent.height() - thumbIconHeight) * percent));
 
-		const offset = { top: newTop, left: thumb.offset().left };
-		thumb.offset(offset);
-		thumbText.text(index + '/' + ajaxify.data.postcount);
+		thumbs.each((i, el) => {
+			const thumb = $(el);
+			if (thumb.is(':hidden')) {
+				return;
+			}
+
+			const parent = thumb.parent();
+			const parentOffset = parent.offset();
+			const thumbIcon = thumb.find('.scroller-thumb-icon');
+			const thumbIconHeight = thumbIcon.height();
+			const gap = (parent.height() - thumbIconHeight) / (ajaxify.data.postcount - 1);
+			const newTop = clampTop(thumb, parentOffset.top + ((index - 1) * gap));
+			const offset = { top: newTop, left: thumb.offset().left };
+			thumb.offset(offset);
+			updateThumbTextToIndex(thumb, index);
+			updateThumbTimestampToIndex(thumb, index);
+		});
+
+		updateUnreadIndicator(index);
 		renderPost(index);
 	}
 
+	function updateThumbTextToIndex(thumb, index) {
+		if (bsEnv === 'xs' || bsEnv === 'sm' || bsEnv === 'md') {
+			thumb.find('.thumb-text').text(`${index}/${ajaxify.data.postcount}`);
+		} else {
+			thumb.find('.thumb-text').translateText(`[[topic:navigator.index, ${index}, ${ajaxify.data.postcount}]]`);
+		}
+	}
+
+	async function updateThumbTimestampToIndex(thumb, index) {
+		const el = thumb.find('.thumb-timestamp');
+		if (el.length) {
+			const timestamp = await getPostTimestampByIndex(index);
+			el.attr('title', utils.toISOString(timestamp)).timeago();
+		}
+	}
+
+	async function getPostTimestampByIndex(index) {
+		// load timestamp of post from DOM if it exists
+		// if not load from server
+		const postEl = $(`[component="post"][data-index=${index - 1}]`);
+		if (postEl.length) {
+			return parseInt(postEl.attr('data-timestamp'), 10);
+		}
+		return await socket.emit('posts.getPostTimestampByIndex', {
+			tid: ajaxify.data.tid,
+			index: index - 1,
+		});
+	}
+
+
 	function handleScrollNav() {
-		if (!thumb.length) {
+		if (!thumbs.length) {
 			return;
 		}
 
-		const parent = thumb.parent();
-		parent.on('click', function (ev) {
+		const parents = thumbs.parent();
+		parents.off('click').on('click', function (ev) {
 			if ($(ev.target).hasClass('scroller-container')) {
-				const index = calculateIndexFromY(ev.pageY);
+				const thumb = $(ev.target).find('.scroller-thumb');
+				const index = calculateIndexFromY(thumb, ev.pageY);
 				navigator.scrollToIndex(index - 1, true, 0);
 				return false;
 			}
 		});
 
-		function calculateIndexFromY(y) {
-			const newTop = clampTop(y - thumbIconHalfHeight);
+		function calculateIndexFromY(thumb, y) {
+			const parent = thumb.parent();
+			const thumbIcon = thumb.find('.scroller-thumb-icon');
+			const thumbIconHeight = thumbIcon.height();
+			const newTop = clampTop(thumb, y - (thumbIconHeight / 2));
 			const parentOffset = parent.offset();
 			const percent = (newTop - parentOffset.top) / (parent.height() - thumbIconHeight);
 			index = Math.max(1, Math.ceil(ajaxify.data.postcount * percent));
-			return index > ajaxify.data.postcount ? ajaxify.data.count : index;
+			return index > ajaxify.data.postcount ? ajaxify.data.postcount : index;
 		}
 
 		let mouseDragging = false;
 		hooks.on('action:ajaxify.end', function () {
 			renderPostIndex = null;
 		});
-		$('.pagination-block .dropdown-menu').parent().on('shown.bs.dropdown', function () {
-			setThumbToIndex(index);
-		});
+		paginationBlockEl.find('.dropdown-menu').parent()
+			.off('shown.bs.dropdown')
+			.on('shown.bs.dropdown', function () {
+				setThumbToIndex(index);
+			});
+
+		// the thumb that's being dragged, there can be more than on on the DOM
+		let dragThumb = null;
+		const debounceUpdateThumbTimestamp = utils.debounce(updateThumbTimestampToIndex, 50);
+		function mousemove(ev) {
+			if (!dragThumb || !dragThumb.length) {
+				return;
+			}
+			const thumbIcon = dragThumb.find('.scroller-thumb-icon');
+			const thumbIconHeight = thumbIcon.height();
+			const newTop = clampTop(dragThumb, ev.pageY - (thumbIconHeight / 2));
+			dragThumb.offset({ top: newTop, left: dragThumb.offset().left });
+			const index = calculateIndexFromY(dragThumb, ev.pageY);
+			navigator.updateTextAndProgressBar();
+			updateThumbTextToIndex(dragThumb, index);
+			debounceUpdateThumbTimestamp(dragThumb, index);
+			if (firstMove) {
+				delayedRenderPost();
+			}
+			firstMove = false;
+			ev.stopPropagation();
+			return false;
+		}
+
+		thumbs.off('mousedown').on('mousedown', function (e) {
+			if (e.originalEvent.button !== 0) {
+				return;
+			}
 
-		thumb.on('mousedown', function () {
 			mouseDragging = true;
+			dragThumb = $(this);
+			dragThumb.addClass('active');
 			$(window).on('mousemove', mousemove);
 			firstMove = true;
 		});
@@ -198,25 +277,15 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 			$(window).off('mousemove', mousemove);
 			if (mouseDragging) {
 				navigator.scrollToIndex(index - 1, true, 0);
-				paginationBlockEl.find('[data-toggle="dropdown"]').trigger('click');
+				paginationBlockEl.find('.dropdown-menu.show').removeClass('show');
 			}
 			clearRenderInterval();
 			mouseDragging = false;
 			firstMove = false;
-		}
-
-		function mousemove(ev) {
-			const newTop = clampTop(ev.pageY - thumbIconHalfHeight);
-			thumb.offset({ top: newTop, left: thumb.offset().left });
-			const index = calculateIndexFromY(ev.pageY);
-			navigator.updateTextAndProgressBar();
-			thumbText.text(index + '/' + ajaxify.data.postcount);
-			if (firstMove) {
-				delayedRenderPost();
+			if (dragThumb && dragThumb.length) {
+				dragThumb.removeClass('active');
 			}
-			firstMove = false;
-			ev.stopPropagation();
-			return false;
+			dragThumb = null;
 		}
 
 		function delayedRenderPost() {
@@ -229,51 +298,89 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 		$(window).off('mousemove', mousemove);
 		$(window).off('mouseup', mouseup).on('mouseup', mouseup);
 
-		thumb.on('touchstart', function (ev) {
-			isNavigating = true;
-			touchX = Math.min($(window).width(), Math.max(0, ev.touches[0].clientX));
-			touchY = Math.min($(window).height(), Math.max(0, ev.touches[0].clientY));
-			firstMove = true;
-		});
-
-		thumb.on('touchmove', function (ev) {
-			const windowWidth = $(window).width();
-			const windowHeight = $(window).height();
-			const deltaX = Math.abs(touchX - Math.min(windowWidth, Math.max(0, ev.touches[0].clientX)));
-			const deltaY = Math.abs(touchY - Math.min(windowHeight, Math.max(0, ev.touches[0].clientY)));
-			touchX = Math.min(windowWidth, Math.max(0, ev.touches[0].clientX));
-			touchY = Math.min(windowHeight, Math.max(0, ev.touches[0].clientY));
+		thumbs.each((i, el) => {
+			const thumb = $(el);
 
-			if (deltaY >= deltaX && firstMove) {
+			thumb.off('touchstart').on('touchstart', function (ev) {
 				isNavigating = true;
-				delayedRenderPost();
-			}
+				touchX = Math.min($(window).width(), Math.max(0, ev.touches[0].clientX));
+				touchY = Math.min($(window).height(), Math.max(0, ev.touches[0].clientY));
+				firstMove = true;
+				thumb.addClass('active');
+			});
 
-			if (isNavigating && ev.cancelable) {
-				ev.preventDefault();
-				ev.stopPropagation();
-				const newTop = clampTop(touchY + $(window).scrollTop() - thumbIconHalfHeight);
-				thumb.offset({ top: newTop, left: thumb.offset().left });
-				const index = calculateIndexFromY(touchY + $(window).scrollTop());
-				navigator.updateTextAndProgressBar();
-				thumbText.text(index + '/' + ajaxify.data.postcount);
-				if (firstMove) {
-					renderPost(index);
+			thumb.off('touchmove').on('touchmove', function (ev) {
+				const windowWidth = $(window).width();
+				const windowHeight = $(window).height();
+				const deltaX = Math.abs(touchX - Math.min(windowWidth, Math.max(0, ev.touches[0].clientX)));
+				const deltaY = Math.abs(touchY - Math.min(windowHeight, Math.max(0, ev.touches[0].clientY)));
+				touchX = Math.min(windowWidth, Math.max(0, ev.touches[0].clientX));
+				touchY = Math.min(windowHeight, Math.max(0, ev.touches[0].clientY));
+
+				if (deltaY >= deltaX && firstMove) {
+					isNavigating = true;
+					delayedRenderPost();
 				}
-			}
-			firstMove = false;
-		});
 
-		thumb.on('touchend', function () {
-			clearRenderInterval();
-			if (isNavigating) {
-				navigator.scrollToIndex(index - 1, true, 0);
-				isNavigating = false;
-				paginationBlockEl.find('[data-toggle="dropdown"]').trigger('click');
-			}
+				if (isNavigating && ev.cancelable) {
+					ev.preventDefault();
+					ev.stopPropagation();
+					const thumbIcon = thumb.find('.scroller-thumb-icon');
+					const thumbIconHeight = thumbIcon.height();
+					const newTop = clampTop(thumb, touchY + $(window).scrollTop() - (thumbIconHeight / 2));
+					thumb.offset({ top: newTop, left: thumb.offset().left });
+					const index = calculateIndexFromY(thumb, touchY + $(window).scrollTop());
+					navigator.updateTextAndProgressBar();
+					updateThumbTextToIndex(thumb, index);
+					debounceUpdateThumbTimestamp(thumb, index);
+					if (firstMove) {
+						renderPost(index);
+					}
+				}
+				firstMove = false;
+			});
+
+			thumb.off('touchend').on('touchend', function () {
+				clearRenderInterval();
+				if (isNavigating) {
+					thumb.removeClass('active');
+					navigator.scrollToIndex(index - 1, true, 0);
+					isNavigating = false;
+					paginationBlockEl.find('.dropdown-menu.show').removeClass('show');
+				}
+			});
 		});
 	}
 
+	async function updateUnreadIndicator(index) {
+		if (!paginationBlockUnreadEl.length || ajaxify.data.postcount <= ajaxify.data.bookmarkThreshold) {
+			return;
+		}
+		const currentBookmark = ajaxify.data.bookmark || storage.getItem('topic:' + ajaxify.data.tid + ':bookmark');
+		index = Math.max(index, Math.min(currentBookmark, ajaxify.data.postcount));
+		const unreadEl = paginationBlockUnreadEl.get(0);
+		const trackEl = unreadEl.parentNode;
+		const trackHeight = trackEl.getBoundingClientRect().height;
+
+		const percentage = 1 - (index / ajaxify.data.postcount);
+		unreadEl.style.height = `${trackHeight * percentage}px`;
+
+		const thumbEl = trackEl.querySelector('.scroller-thumb');
+		const thumbHeight = parseInt(thumbEl.style.height, 10);
+		const thumbBottom = parseInt(thumbEl.style.top || 0, 10) + thumbHeight;
+		const anchorEl = unreadEl.querySelector('.meta a');
+		remaining = Math.min(remaining, ajaxify.data.postcount - index);
+
+		if (remaining > 0 && (trackHeight - thumbBottom) >= thumbHeight) {
+			const text = await translator.translate(`[[topic:navigator.unread, ${remaining}]]`);
+			anchorEl.href = `${config.relative_path}/topic/${ajaxify.data.slug}/${Math.min(index + 1, ajaxify.data.postcount)}`;
+			anchorEl.innerText = text;
+		} else {
+			anchorEl.href = ajaxify.data.url;
+			anchorEl.innerText = '';
+		}
+	}
+
 	function clearRenderInterval() {
 		if (renderPostIntervalId) {
 			clearInterval(renderPostIntervalId);
@@ -281,26 +388,19 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 		}
 	}
 
-	function renderPost(index, callback) {
-		callback = callback || function () {};
-		if (renderPostIndex === index || paginationBlockEl.find('.post-content').is(':hidden')) {
+	async function renderPost(index) {
+		if (!index || renderPostIndex === index || !paginationBlockEl.find('.post-content').is(':visible')) {
 			return;
 		}
 		renderPostIndex = index;
 
-		socket.emit('posts.getPostSummaryByIndex', { tid: ajaxify.data.tid, index: index - 1 }, function (err, postData) {
-			if (err) {
-				return alerts.error(err);
-			}
-			app.parseAndTranslate('partials/topic/navigation-post', { post: postData }, function (html) {
-				paginationBlockEl
-					.find('.post-content')
-					.html(html)
-					.find('.timeago').timeago();
-			});
+		const postData = await socket.emit('posts.getPostSummaryByIndex', { tid: ajaxify.data.tid, index: index - 1 });
 
-			callback();
-		});
+		const html = await app.parseAndTranslate('partials/topic/navigation-post', { post: postData });
+		paginationBlockEl
+			.find('.post-content')
+			.html(html)
+			.find('.timeago').timeago();
 	}
 
 	function handleKeys() {
@@ -373,12 +473,7 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 		}
 	};
 
-	navigator.update = function (threshold) {
-		/*
-			The "threshold" is defined as the distance from the top of the page to
-			a spot where a user is expecting to begin reading.
-		*/
-		threshold = typeof threshold === 'number' ? threshold : undefined;
+	navigator.update = function () {
 		let newIndex = index;
 		const els = $(navigator.selector);
 		if (els.length) {
@@ -415,24 +510,12 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 			newIndex = count;
 		}
 
-		// If a threshold is undefined, try to determine one based on new index
-		if (threshold === undefined && ajaxify.data.template.topic) {
-			if (atTop) {
-				threshold = 0;
-			} else {
-				const anchorEl = components.get('post/anchor', index - 1);
-				if (anchorEl.length) {
-					const anchorRect = anchorEl.get(0).getBoundingClientRect();
-					threshold = anchorRect.top;
-				}
-			}
-		}
-
-		if (typeof navigator.callback === 'function') {
-			navigator.callback(newIndex, count, threshold);
-		}
+		hooks.fire('action:navigator.update', { newIndex, index });
 
 		if (newIndex !== index) {
+			if (typeof navigator.callback === 'function') {
+				navigator.callback(newIndex, count);
+			}
 			index = newIndex;
 			navigator.updateTextAndProgressBar();
 			setThumbToIndex(index);
@@ -445,6 +528,9 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 
 	navigator.setIndex = (newIndex) => {
 		index = newIndex + 1;
+		if (typeof navigator.callback === 'function') {
+			navigator.callback(index, count);
+		}
 		navigator.updateTextAndProgressBar();
 		setThumbToIndex(index);
 	};
@@ -454,7 +540,12 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 			return;
 		}
 		index = index > count ? count : index;
-		paginationTextEl.translateHtml('[[global:pagination.out_of, ' + index + ', ' + count + ']]');
+		if (config.usePagination) {
+			paginationTextEl.html(`<i class="fa fa-file"></i> ${ajaxify.data.pagination.currentPage} / ${ajaxify.data.pagination.pageCount}`);
+		} else {
+			paginationTextEl.translateHtml('[[global:pagination.out_of, ' + index + ', ' + count + ']]');
+		}
+
 		const fraction = (index - 1) / (count - 1 || 1);
 		paginationBlockMeterEl.val(fraction);
 		paginationBlockProgressEl.width((fraction * 100) + '%');
@@ -567,7 +658,7 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 			return;
 		}
 
-		await hooks.fire('filter:navigator.scroll', { scrollTo, highlight, duration, newIndex });
+		await hooks.fire('filter:navigator.scroll', { scrollTo, highlight, duration, newIndex: newIndex + 1 });
 
 		const postHeight = scrollTo.outerHeight(true);
 		const navbarHeight = components.get('navbar').outerHeight(true) || 0;
@@ -585,9 +676,10 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 			function reenableScroll() {
 				// Re-enable onScroll behaviour
 				setTimeout(() => { // fixes race condition from jQuery — onAnimateComplete called too quickly
-					$(window).on('scroll', navigator.delayedUpdate);
+					$(window).off('scroll', navigator.delayedUpdate)
+						.on('scroll', navigator.delayedUpdate);
 
-					hooks.fire('action:navigator.scrolled', { scrollTo, highlight, duration, newIndex });
+					hooks.fire('action:navigator.scrolled', { scrollTo, highlight, duration, newIndex: newIndex + 1 });
 				}, 50);
 			}
 			function onAnimateComplete() {
@@ -600,9 +692,8 @@ define('navigator', ['forum/pagination', 'components', 'hooks', 'alerts'], funct
 				navigator.scrollActive = false;
 				highlightPost();
 
-				const scrollToRect = scrollTo.get(0).getBoundingClientRect();
 				if (!newIndex) {
-					navigator.update(scrollToRect.top);
+					navigator.update();
 				} else {
 					navigator.setIndex(newIndex);
 				}
diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js
index 314502914b..e0679b8e1b 100644
--- a/public/src/modules/notifications.js
+++ b/public/src/modules/notifications.js
@@ -13,16 +13,20 @@ define('notifications', [
 
 	let unreadNotifs = {};
 
-	const _addShortTimeagoString = ({ notifications: notifs }) => new Promise((resolve) => {
+	const _addTimeagoString = ({ notifications: notifs }) => new Promise((resolve) => {
+		for (let i = 0; i < notifs.length; i += 1) {
+			notifs[i].timeagoLong = $.timeago(new Date(parseInt(notifs[i].datetime, 10)));
+		}
 		translator.toggleTimeagoShorthand(function () {
 			for (let i = 0; i < notifs.length; i += 1) {
 				notifs[i].timeago = $.timeago(new Date(parseInt(notifs[i].datetime, 10)));
+				notifs[i].timeagoShort = notifs[i].timeago;
 			}
 			translator.toggleTimeagoShorthand();
 			resolve({ notifications: notifs });
 		});
 	});
-	hooks.on('filter:notifications.load', _addShortTimeagoString);
+	hooks.on('filter:notifications.load', _addTimeagoString);
 
 	Notifications.loadNotifications = function (notifList, callback) {
 		callback = callback || function () {};
@@ -55,15 +59,7 @@ define('notifications', [
 					});
 					components.get('notifications').on('click', '.mark-all-read', Notifications.markAllRead);
 
-					notifList.on('click', '.mark-read', function () {
-						const liEl = $(this).parents('li');
-						const unread = liEl.hasClass('unread');
-						const nid = liEl.attr('data-nid');
-						markNotification(nid, unread, function () {
-							liEl.toggleClass('unread');
-						});
-						return false;
-					});
+					Notifications.handleUnreadButton(notifList);
 
 					hooks.fire('action:notifications.loaded', {
 						notifications: notifs,
@@ -75,6 +71,21 @@ define('notifications', [
 		});
 	};
 
+	Notifications.handleUnreadButton = function (notifList) {
+		notifList.on('click', '.mark-read', function () {
+			const $this = $(this);
+			const liEl = $this.parents('li[data-nid]');
+			const unread = liEl.hasClass('unread');
+			const nid = liEl.attr('data-nid');
+			markNotification(nid, unread, function () {
+				liEl.toggleClass('unread');
+				$this.find('.unread').toggleClass('hidden', unread);
+				$this.find('.read').toggleClass('hidden', !unread);
+			});
+			return false;
+		});
+	};
+
 	Notifications.onNewNotification = function (notifData) {
 		if (ajaxify.currentPage === 'notifications') {
 			ajaxify.refresh();
@@ -93,6 +104,10 @@ define('notifications', [
 		}
 	};
 
+	Notifications.markNotification = function (nid, read, callback) {
+		markNotification(nid, read, callback);
+	};
+
 	function markNotification(nid, read, callback) {
 		socket.emit('notifications.mark' + (read ? 'Read' : 'Unread'), nid, function (err) {
 			if (err) {
@@ -123,15 +138,13 @@ define('notifications', [
 	Notifications.updateNotifCount = function (count) {
 		const notifIcon = components.get('notifications/icon');
 		count = Math.max(0, count);
-		if (count > 0) {
-			notifIcon.removeClass('fa-bell-o').addClass('fa-bell');
-		} else {
-			notifIcon.removeClass('fa-bell').addClass('fa-bell-o');
-		}
+		notifIcon.toggleClass('fa-bell', count > 0)
+			.toggleClass('fa-bell-o', count <= 0);
 
+		const countText = count > 99 ? '99+' : count;
 		notifIcon.toggleClass('unread-count', count > 0);
-		notifIcon.attr('data-content', count > 99 ? '99+' : count);
-
+		notifIcon.attr('data-content', countText);
+		components.get('notifications/count').toggleClass('hidden', count <= 0).text(countText);
 		const payload = {
 			count: count,
 			updateFavicon: true,
@@ -139,7 +152,7 @@ define('notifications', [
 		hooks.fire('action:notification.updateCount', payload);
 
 		if (payload.updateFavicon) {
-			Tinycon.setBubble(count > 99 ? '99+' : count);
+			Tinycon.setBubble(countText);
 		}
 
 		if (navigator.setAppBadge) { // feature detection
@@ -153,6 +166,10 @@ define('notifications', [
 				alerts.error(err);
 			}
 			unreadNotifs = {};
+			const notifEls = $('[component="notifications/list"] [data-nid]');
+			notifEls.removeClass('unread');
+			notifEls.find('.mark-read .unread').addClass('hidden');
+			notifEls.find('.mark-read .read').removeClass('hidden');
 		});
 	};
 
diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js
index cb1201ba29..c6b7185406 100644
--- a/public/src/modules/pictureCropper.js
+++ b/public/src/modules/pictureCropper.js
@@ -5,7 +5,7 @@ define('pictureCropper', ['alerts'], function (alerts) {
 
 	module.show = function (data, callback) {
 		const fileSize = data.hasOwnProperty('fileSize') && data.fileSize !== undefined ? parseInt(data.fileSize, 10) : false;
-		app.parseAndTranslate('partials/modals/upload_file_modal', {
+		app.parseAndTranslate('modals/upload-file', {
 			showHelp: data.hasOwnProperty('showHelp') && data.showHelp !== undefined ? data.showHelp : true,
 			fileSize: fileSize,
 			title: data.title || '[[global:upload_file]]',
diff --git a/public/src/modules/postSelect.js b/public/src/modules/postSelect.js
index 893d7c6142..3df63d9d8a 100644
--- a/public/src/modules/postSelect.js
+++ b/public/src/modules/postSelect.js
@@ -30,7 +30,7 @@ define('postSelect', ['components'], function (components) {
 
 	PostSelect.disable = function () {
 		PostSelect.pids.forEach(function (pid) {
-			components.get('post', 'pid', pid).toggleClass('bg-success', false);
+			components.get('post', 'pid', pid).toggleClass('selected', false);
 		});
 
 		$('#content').off('click', '[component="topic"] [component="post"]', onPostClicked);
@@ -42,10 +42,10 @@ define('postSelect', ['components'], function (components) {
 			const index = PostSelect.pids.indexOf(pid);
 			if (index === -1) {
 				PostSelect.pids.push(pid);
-				postEls.toggleClass('bg-success', true);
+				postEls.toggleClass('selected', true);
 			} else {
 				PostSelect.pids.splice(index, 1);
-				postEls.toggleClass('bg-success', false);
+				postEls.toggleClass('selected', false);
 			}
 
 			if (PostSelect.pids.length) {
diff --git a/public/src/modules/quickreply.js b/public/src/modules/quickreply.js
new file mode 100644
index 0000000000..b63dabcacb
--- /dev/null
+++ b/public/src/modules/quickreply.js
@@ -0,0 +1,132 @@
+'use strict';
+
+define('quickreply', [
+	'components', 'composer', 'composer/autocomplete', 'api',
+	'alerts', 'uploadHelpers', 'mousetrap', 'storage',
+], function (
+	components, composer, autocomplete, api,
+	alerts, uploadHelpers, mousetrap, storage
+) {
+	const QuickReply = {};
+
+	QuickReply.init = function () {
+		const element = components.get('topic/quickreply/text');
+		const qrDraftId = `qr:draft:tid:${ajaxify.data.tid}`;
+		const data = {
+			element: element,
+			strategies: [],
+			options: {
+				style: {
+					'z-index': 100,
+				},
+			},
+		};
+
+		destroyAutoComplete();
+		$(window).one('action:ajaxify.start', () => {
+			destroyAutoComplete();
+		});
+		$(window).trigger('composer:autocomplete:init', data);
+		autocomplete._active.core_qr = autocomplete.setup(data);
+
+		mousetrap.bind('ctrl+return', (e) => {
+			if (e.target === element.get(0)) {
+				components.get('topic/quickreply/button').get(0).click();
+			}
+		});
+
+		uploadHelpers.init({
+			dragDropAreaEl: $('[component="topic/quickreply/container"] .quickreply-message'),
+			pasteEl: element,
+			uploadFormEl: $('[component="topic/quickreply/upload"]'),
+			inputEl: element,
+			route: '/api/post/upload',
+			callback: function (uploads) {
+				let text = element.val();
+				uploads.forEach((upload) => {
+					text = text + (text ? '\n' : '') + (upload.isImage ? '!' : '') + `[${upload.filename}](${upload.url})`;
+				});
+				element.val(text);
+			},
+		});
+
+		let ready = true;
+		components.get('topic/quickreply/button').on('click', function (e) {
+			e.preventDefault();
+			if (!ready) {
+				return;
+			}
+
+			const replyMsg = components.get('topic/quickreply/text').val();
+			const replyData = {
+				tid: ajaxify.data.tid,
+				handle: undefined,
+				content: replyMsg,
+			};
+			const replyLen = replyMsg.length;
+			if (replyLen < parseInt(config.minimumPostLength, 10)) {
+				return alerts.error('[[error:content-too-short, ' + config.minimumPostLength + ']]');
+			} else if (replyLen > parseInt(config.maximumPostLength, 10)) {
+				return alerts.error('[[error:content-too-long, ' + config.maximumPostLength + ']]');
+			}
+
+			ready = false;
+			api.post(`/topics/${ajaxify.data.tid}`, replyData, function (err, data) {
+				ready = true;
+				if (err) {
+					return alerts.error(err);
+				}
+				if (data && data.queued) {
+					alerts.alert({
+						type: 'success',
+						title: '[[global:alert.success]]',
+						message: data.message,
+						timeout: 10000,
+						clickfn: function () {
+							ajaxify.go(`/post-queue/${data.id}`);
+						},
+					});
+				}
+
+				components.get('topic/quickreply/text').val('');
+				storage.removeItem(qrDraftId);
+				autocomplete._active.core_qr.hide();
+			});
+		});
+
+		const draft = storage.getItem(qrDraftId);
+		if (draft) {
+			element.val(draft);
+		}
+
+		element.on('keyup', utils.debounce(function () {
+			const text = element.val();
+			if (text) {
+				storage.setItem(qrDraftId, text);
+			} else {
+				storage.removeItem(qrDraftId);
+			}
+		}, 1000));
+
+		components.get('topic/quickreply/expand').on('click', (e) => {
+			e.preventDefault();
+			storage.removeItem(qrDraftId);
+			const textEl = components.get('topic/quickreply/text');
+			composer.newReply({
+				tid: ajaxify.data.tid,
+				title: ajaxify.data.title,
+				body: utils.escapeHTML(textEl.val()),
+			});
+			textEl.val('');
+		});
+	};
+
+	function destroyAutoComplete() {
+		if (autocomplete._active.core_qr) {
+			autocomplete._active.core_qr.destroy();
+			autocomplete._active.core_qr = null;
+		}
+	}
+
+	return QuickReply;
+});
diff --git a/public/src/modules/search.js b/public/src/modules/search.js
index 20e3a02d33..879fe274ae 100644
--- a/public/src/modules/search.js
+++ b/public/src/modules/search.js
@@ -11,26 +11,35 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 		}
 
 		searchOptions = searchOptions || { in: config.searchDefaultInQuick || 'titles' };
-		const searchButton = $('#search-button');
-		const searchFields = $('#search-fields');
-		const searchInput = $('#search-fields input');
-		const quickSearchContainer = $('#quick-search-container');
+		const searchForm = $('[component="search/form"]');
+		searchForm.each((index, form) => {
+			init($(form), searchOptions);
+		});
+	};
+
+	function init(searchForm, searchOptions) {
+		const searchButton = searchForm.find('[component="search/button"]');
+		const searchFields = searchForm.find('[component="search/fields"]');
+		const searchInput = searchFields.find('input[name="query"]');
 
-		$('#search-form .advanced-search-link').off('mousedown').on('mousedown', function () {
+		const quickSearchContainer = searchFields.find('#quick-search-container');
+		const toggleVisibility = searchFields.hasClass('hidden');
+
+		searchForm.find('.advanced-search-link').off('mousedown').on('mousedown', function () {
 			ajaxify.go('/search');
 		});
 
-		$('#search-form').off('submit').on('submit', function () {
-			searchInput.blur();
-		});
-		searchInput.off('blur').on('blur', function dismissSearch() {
-			setTimeout(function () {
-				if (!searchInput.is(':focus')) {
-					searchFields.addClass('hidden');
-					searchButton.removeClass('hidden');
-				}
-			}, 200);
-		});
+		if (toggleVisibility) {
+			searchInput.off('blur').on('blur', function dismissSearch() {
+				setTimeout(function () {
+					if (!searchInput.is(':focus')) {
+						searchFields.addClass('hidden');
+						searchButton.removeClass('hidden');
+					}
+				}, 200);
+			});
+		}
+
 		searchInput.off('focus');
 
 		const searchElements = {
@@ -54,12 +63,12 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 			}
 			e.stopPropagation();
 
-			Search.showAndFocusInput();
+			Search.showAndFocusInput(searchForm);
 			return false;
 		});
 
-		$('#search-form').off('submit').on('submit', function () {
-			const input = $(this).find('input');
+		searchForm.off('submit').on('submit', function () {
+			const input = $(this).find('input[name="query"]');
 			const data = Search.getSearchPreferences();
 			data.term = input.val();
 			data.in = searchOptions.in;
@@ -69,11 +78,12 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 			});
 			Search.query(data, function () {
 				input.val('');
+				searchInput.trigger('blur');
 			});
 
 			return false;
 		});
-	};
+	}
 
 	Search.enableQuickSearch = function (options) {
 		if (!config.searchEnabled || !app.user.privileges['search:content']) {
@@ -108,8 +118,11 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 				}
 			}
 
-			quickSearchResults.removeClass('hidden').find('.quick-search-results-container').html('');
-			quickSearchResults.find('.loading-indicator').removeClass('hidden');
+			if (!options.hideDuringSearch) {
+				quickSearchResults.removeClass('hidden').find('.quick-search-results-container').html('');
+				quickSearchResults.find('.loading-indicator').removeClass('hidden');
+			}
+
 			hooks.fire('action:search.quick.start', options);
 			options.searchOptions.searchOnly = 1;
 			Search.api(options.searchOptions, function (data) {
@@ -166,16 +179,18 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 		}, 500));
 
 		let mousedownOnResults = false;
-		quickSearchResults.on('mousedown', function () {
+		quickSearchResults.on('mousedown', '.quick-search-results > *', function () {
 			$(window).one('mouseup', function () {
 				quickSearchResults.addClass('hidden');
 			});
 			mousedownOnResults = true;
 		});
 		inputEl.on('blur', function () {
-			if (!inputEl.is(':focus') && !mousedownOnResults && !quickSearchResults.hasClass('hidden')) {
-				quickSearchResults.addClass('hidden');
-			}
+			setTimeout(function () {
+				if (!inputEl.is(':focus') && !mousedownOnResults && !quickSearchResults.hasClass('hidden')) {
+					quickSearchResults.addClass('hidden');
+				}
+			}, 200);
 		});
 
 		let ajaxified = false;
@@ -209,10 +224,10 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 		});
 	};
 
-	Search.showAndFocusInput = function () {
-		$('#search-fields').removeClass('hidden');
-		$('#search-button').addClass('hidden');
-		$('#search-fields input').focus();
+	Search.showAndFocusInput = function (form) {
+		form.find('[component="search/fields"]').removeClass('hidden');
+		form.find('[component="search/button"]').addClass('hidden');
+		form.find('[component="search/fields"] input[name="query"]').trigger('focus');
 	};
 
 	Search.query = function (data, callback) {
@@ -223,7 +238,9 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 
 	Search.api = function (data, callback) {
 		const apiURL = config.relative_path + '/api/search?' + createQueryString(data);
-		data.searchOnly = undefined;
+		if (data.hasOwnProperty('searchOnly')) {
+			delete data.searchOnly;
+		}
 		const searchURL = config.relative_path + '/search?' + createQueryString(data);
 		$.get(apiURL, function (result) {
 			result.url = searchURL;
@@ -233,7 +250,6 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 
 	function createQueryString(data) {
 		const searchIn = data.in || 'titles';
-		const postedBy = data.by || '';
 		let term = data.term.replace(/^[ ?#]*/, '');
 		try {
 			term = encodeURIComponent(term);
@@ -242,52 +258,11 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 		}
 
 		const query = {
+			...data,
 			term: term,
 			in: searchIn,
 		};
 
-		if (data.matchWords) {
-			query.matchWords = data.matchWords;
-		}
-
-		if (postedBy && postedBy.length && (searchIn === 'posts' || searchIn === 'titles' || searchIn === 'titlesposts')) {
-			query.by = postedBy;
-		}
-
-		if (data.categories && data.categories.length) {
-			query.categories = data.categories;
-			if (data.searchChildren) {
-				query.searchChildren = data.searchChildren;
-			}
-		}
-
-		if (data.hasTags && data.hasTags.length) {
-			query.hasTags = data.hasTags;
-		}
-
-		if (parseInt(data.replies, 10) > 0) {
-			query.replies = data.replies;
-			query.repliesFilter = data.repliesFilter || 'atleast';
-		}
-
-		if (data.timeRange) {
-			query.timeRange = data.timeRange;
-			query.timeFilter = data.timeFilter || 'newer';
-		}
-
-		if (data.sortBy) {
-			query.sortBy = data.sortBy;
-			query.sortDirection = data.sortDirection;
-		}
-
-		if (data.showAs) {
-			query.showAs = data.showAs;
-		}
-
-		if (data.searchOnly) {
-			query.searchOnly = data.searchOnly;
-		}
-
 		hooks.fire('action:search.createQueryString', {
 			query: query,
 			data: data,
@@ -310,6 +285,7 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 		}
 		searchQuery = utils.escapeHTML(searchQuery.replace(/^"/, '').replace(/"$/, '').trim());
 		const regexStr = searchQuery.split(' ')
+			.filter(word => word.length > 1)
 			.map(function (word) { return utils.escapeRegexChars(word); })
 			.join('|');
 		const regex = new RegExp('(' + regexStr + ')', 'gi');
@@ -324,7 +300,7 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 			});
 
 			result.html(result.html().replace(regex, function (match, p1) {
-				return '<strong class="search-match">' + p1 + '</strong>';
+				return '<strong class="search-match fw-bold text-decoration-underline">' + p1 + '</strong>';
 			}));
 
 			nested.forEach(function (nestedEl, i) {
@@ -334,7 +310,7 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
 			});
 		});
 
-		$('.search-result-text').find('img:not(.not-responsive)').addClass('img-responsive');
+		$('.search-result-text').find('img:not(.not-responsive)').addClass('img-fluid');
 	};
 
 	return Search;
diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js
index 8e43fc1d3c..4f90161bc3 100644
--- a/public/src/modules/settings.js
+++ b/public/src/modules/settings.js
@@ -490,9 +490,6 @@ define('settings', ['hooks', 'alerts'], function (hooks, alerts) {
 				});
 
 				$(formEl).deserialize(values);
-				$(formEl).find('input[type="checkbox"]').each(function () {
-					$(this).parents('.mdl-switch').toggleClass('is-checked', $(this).is(':checked'));
-				});
 				hooks.fire('action:admin.settingsLoaded');
 
 				// Handle unsaved changes
@@ -556,11 +553,11 @@ define('settings', ['hooks', 'alerts'], function (hooks, alerts) {
 							timeout: 2500,
 						});
 					} else {
-						alerts.alert({
-							title: '[[admin/admin:changes-saved]]',
-							type: 'success',
-							timeout: 2500,
-						});
+						const saveBtn = document.getElementById('save');
+						saveBtn.classList.toggle('saved', true);
+						setTimeout(() => {
+							saveBtn.classList.toggle('saved', false);
+						}, 5000);
 					}
 				});
 			}
diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js
index 6c1ee1395e..58a5f9b507 100644
--- a/public/src/modules/settings/array.js
+++ b/public/src/modules/settings/array.js
@@ -11,7 +11,7 @@ define('settings/array', function () {
 	 */
 	function createRemoveButton(elements) {
 		const rm = $(helper.createElement('button', {
-			class: 'btn btn-xs btn-primary remove',
+			class: 'btn btn-sm btn-primary remove',
 			title: 'Remove Item',
 		}, '-'));
 		rm.click(function (event) {
diff --git a/public/src/modules/settings/checkbox.js b/public/src/modules/settings/checkbox.js
index 8657eeda9f..8918c00e89 100644
--- a/public/src/modules/settings/checkbox.js
+++ b/public/src/modules/settings/checkbox.js
@@ -15,7 +15,6 @@ define('settings/checkbox', function () {
 		},
 		set: function (element, value) {
 			element.prop('checked', value);
-			element.closest('.mdl-switch').toggleClass('is-checked', element.is(':checked'));
 		},
 		get: function (element, trim, empty) {
 			const value = element.prop('checked');
diff --git a/public/src/modules/settings/sorted-list.js b/public/src/modules/settings/sorted-list.js
index 1dfcb6196e..2ff9bbc82f 100644
--- a/public/src/modules/settings/sorted-list.js
+++ b/public/src/modules/settings/sorted-list.js
@@ -67,8 +67,8 @@ define('settings/sorted-list', [
 				// eslint-disable-next-line no-restricted-syntax
 				for (const { itemUUID, item } of items) {
 					// eslint-disable-next-line no-await-in-loop
-					await parse($container, itemUUID, item);
-					hooks.fire('action:settings.sorted-list.itemLoaded', { element: listEl.get(0) });
+					const element = await parse($container, itemUUID, item);
+					hooks.fire('action:settings.sorted-list.itemLoaded', { element });
 				}
 
 				hooks.fire('action:settings.sorted-list.loaded', {
@@ -157,7 +157,7 @@ define('settings/sorted-list', [
 				setupRemoveButton($container, itemUUID);
 				setupEditButton($container, itemUUID);
 				hooks.fire('action:settings.sorted-list.parse', { itemHtml });
-				resolve();
+				resolve(itemHtml.get(0));
 			});
 		});
 	}
diff --git a/public/src/modules/sort.js b/public/src/modules/sort.js
index e9307e863e..c7e5e8900a 100644
--- a/public/src/modules/sort.js
+++ b/public/src/modules/sort.js
@@ -1,36 +1,24 @@
 'use strict';
 
 
-define('sort', ['components', 'api'], function (components, api) {
+define('sort', ['components'], function (components) {
 	const module = {};
 
 	module.handleSort = function (field, gotoOnSave) {
 		const threadSort = components.get('thread/sort');
 		threadSort.find('i').removeClass('fa-check');
-		const currentSetting = threadSort.find('a[data-sort="' + config[field] + '"]');
+		const currentSort = utils.params().sort || config[field];
+		const currentSetting = threadSort.find('a[data-sort="' + currentSort + '"]');
 		currentSetting.find('i').addClass('fa-check');
 
 		$('body')
 			.off('click', '[component="thread/sort"] a')
 			.on('click', '[component="thread/sort"] a', function () {
-				function refresh(newSetting, params) {
-					config[field] = newSetting;
-					const qs = decodeURIComponent($.param(params));
-					ajaxify.go(gotoOnSave + (qs ? '?' + qs : ''));
-				}
 				const newSetting = $(this).attr('data-sort');
-				if (app.user.uid) {
-					const payload = { settings: {} };
-					payload.settings[field] = newSetting;
-					api.put(`/users/${app.user.uid}/settings`, payload).then(() => {
-						// Yes, this is normal. If you are logged in, sort is not added to qs since it's saved to user settings
-						refresh(newSetting, utils.params());
-					});
-				} else {
-					const urlParams = utils.params();
-					urlParams.sort = newSetting;
-					refresh(newSetting, urlParams);
-				}
+				const urlParams = utils.params();
+				urlParams.sort = newSetting;
+				const qs = decodeURIComponent($.param(urlParams));
+				ajaxify.go(gotoOnSave + (qs ? '?' + qs : ''));
 			});
 	};
 
diff --git a/public/src/modules/tagFilter.js b/public/src/modules/tagFilter.js
new file mode 100644
index 0000000000..9a544ecd92
--- /dev/null
+++ b/public/src/modules/tagFilter.js
@@ -0,0 +1,202 @@
+'use strict';
+
+define('tagFilter', ['hooks', 'alerts', 'bootstrap'], function (hooks, alerts, bootstrap) {
+	const tagFilter = {};
+
+	tagFilter.init = function (el, options) {
+		if (!el || !el.length) {
+			return;
+		}
+		options = options || {};
+		options.template = 'partials/tags/filter-dropdown-left';
+
+		hooks.fire('action:tag.filter.options', { el: el, options: options });
+
+		const searchEl = el.find('[component="tag/filter/search"]');
+
+		options.selectedTags = options.selectedTags || ajaxify.data.selectedTags || [];
+
+		let tagList = null;
+
+		let selectedTags = [];
+		let initialTags = [];
+		if (Array.isArray(options.selectedTags)) {
+			selectedTags = options.selectedTags.map(String);
+		} else if (Array.isArray(ajaxify.data.selectedTags)) {
+			selectedTags = ajaxify.data.selectedTags.map(String);
+		}
+		initialTags = selectedTags.slice();
+
+		const toggleSearchVisibilty = searchEl.parent('[component="tag/filter"]').length &&
+			app.user.privileges['search:tags'];
+
+		el.on('show.bs.dropdown', function () {
+			if (toggleSearchVisibilty) {
+				el.find('.dropdown-toggle').css({ visibility: 'hidden' });
+				searchEl.removeClass('hidden');
+				searchEl.css({
+					'z-index': el.find('.dropdown-toggle').css('z-index') + 1,
+				});
+			}
+
+			function doSearch() {
+				const val = searchEl.find('input').val();
+				if (val.length > 1 || (!val && !tagList)) {
+					loadList(val, function (tags) {
+						tagList = tagList || tags;
+						renderList(tags);
+					});
+				} else if (!val && tagList) {
+					renderList(tagList);
+				}
+			}
+
+			searchEl.on('click', function (ev) {
+				ev.preventDefault();
+				ev.stopPropagation();
+			});
+			searchEl.find('input').val('').on('keyup', utils.debounce(doSearch, 300));
+			doSearch();
+		});
+
+		el.on('shown.bs.dropdown', function () {
+			if (!['xs', 'sm'].includes(utils.findBootstrapEnvironment())) {
+				searchEl.find('input').focus();
+			}
+		});
+
+		el.on('hidden.bs.dropdown', function () {
+			if (toggleSearchVisibilty) {
+				el.find('.dropdown-toggle').css({ visibility: 'inherit' });
+				searchEl.addClass('hidden');
+			}
+
+			searchEl.off('click');
+			searchEl.find('input').off('keyup');
+
+
+			let changed = initialTags.length !== selectedTags.length;
+			initialTags.forEach(function (tag, index) {
+				if (tag !== selectedTags[index]) {
+					changed = true;
+				}
+			});
+			initialTags = selectedTags.slice();
+			if (changed) {
+				if (options.updateButton) {
+					options.updateButton({ el, changed: changed, selectedTags: selectedTags.slice() });
+				} else if (options.updateButton !== false) {
+					updateFilterButton(el, selectedTags);
+				}
+			}
+			if (options.onHidden) {
+				options.onHidden({ changed: changed, selectedTags: selectedTags.slice() });
+				return;
+			}
+			if (changed) {
+				let url = window.location.pathname;
+				const currentParams = utils.params();
+				if (selectedTags.length) {
+					currentParams.tag = selectedTags.length ? selectedTags : undefined;
+				} else {
+					delete currentParams.tag;
+				}
+				if (Object.keys(currentParams).length) {
+					url += '?' + decodeURIComponent($.param(currentParams));
+				}
+				ajaxify.go(url);
+			}
+		});
+
+		el.on('click', '[component="tag/filter/list"] [data-tag]', function () {
+			const listEl = el.find('[component="tag/filter/list"]');
+			const tagEl = $(this);
+			const link = tagEl.find('a').attr('href');
+			if (link && link !== '#' && link.length) {
+				return;
+			}
+			const tag = tagEl.attr('data-tag');
+			const icon = tagEl.find('[component="tag/select/icon"]');
+
+			if (tag !== '') {
+				if (selectedTags.includes(tag)) {
+					selectedTags.splice(selectedTags.indexOf(tag), 1);
+				} else {
+					selectedTags.push(tag);
+				}
+				selectedTags.sort(function (a, b) {
+					return a - b;
+				});
+				icon.toggleClass('invisible');
+			} else {
+				el.find('[component="tag/select/icon"]').addClass('invisible');
+				selectedTags = [];
+			}
+
+			listEl.find('[data-tag=""] i').toggleClass('invisible', !!selectedTags.length);
+			options.selectedTags = selectedTags;
+			if (options.onSelect) {
+				options.onSelect({ tag: tag, selectedTags: selectedTags.slice() });
+			}
+			return false;
+		});
+
+		function loadList(query, callback) {
+			let cids = null;
+			if (ajaxify.data.template.category) {
+				cids = [ajaxify.data.cid];
+			// selectedCids is avaiable on /recent, /unread, /popular etc.
+			} else if (Array.isArray(ajaxify.data.selectedCids) && ajaxify.data.selectedCids.length) {
+				cids = ajaxify.data.selectedCids;
+			}
+			socket.emit('topics.tagFilterSearch', {
+				query: query,
+				cids: cids,
+			}, function (err, data) {
+				if (err) {
+					return alerts.error(err);
+				}
+				callback(data);
+			});
+		}
+
+		function renderList(tags) {
+			const selectedTags = options.selectedTags;
+			tags.forEach(function (tag) {
+				tag.selected = selectedTags.includes(tag.valueEscaped);
+			});
+
+			app.parseAndTranslate(options.template, {
+				tagItems: tags.slice(0, 200),
+				selectedTag: ajaxify.data.selectedTag,
+			}, function (html) {
+				el.find('[component="tag/filter/list"]')
+					.html(html.find('[component="tag/filter/list"]').html());
+
+				const bsDropdown = bootstrap.Dropdown.getInstance(el.find('.dropdown-toggle').get(0));
+				if (bsDropdown) {
+					bsDropdown.update();
+				}
+			});
+		}
+	};
+
+	function updateFilterButton(el, selectedTags) {
+		if (selectedTags.length > 0) {
+			renderButton({
+				label: selectedTags.join(', '),
+			});
+		} else {
+			renderButton();
+		}
+		function renderButton(selectedTag) {
+			app.parseAndTranslate('partials/tags/filter-dropdown-content', {
+				selectedTag: selectedTag,
+			}, function (html) {
+				el.find('button').replaceWith($('<div/>').html(html).find('button'));
+			});
+		}
+	}
+
+	return tagFilter;
+});
diff --git a/public/src/modules/taskbar.js b/public/src/modules/taskbar.js
index 9fa8fd0fb8..768dd8820b 100644
--- a/public/src/modules/taskbar.js
+++ b/public/src/modules/taskbar.js
@@ -40,17 +40,11 @@ define('taskbar', ['benchpress', 'translator', 'hooks'], function (Benchpress, t
 	taskbar.close = async function (moduleName, uuid) {
 		// Sends signal to the appropriate module's .close() fn (if present)
 		const btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]');
-		let fnName = 'close';
-
-		// TODO: Refactor chat module to not take uuid in close instead of by jQuery element
-		if (moduleName === 'chat') {
-			fnName = 'closeByUUID';
-		}
 
 		if (btnEl.length) {
 			const module = await app.require(moduleName);
-			if (module && typeof module[fnName] === 'function') {
-				module[fnName](uuid);
+			if (module && typeof module.close === 'function') {
+				module.close(uuid);
 			}
 		}
 	};
@@ -118,6 +112,10 @@ define('taskbar', ['benchpress', 'translator', 'hooks'], function (Benchpress, t
 	};
 
 	taskbar.updateActive = function (uuid) {
+		if (!taskbar.tasklist) {
+			return;
+		}
+
 		const tasks = taskbar.tasklist.find('li');
 		tasks.removeClass('active');
 		tasks.filter('[data-uuid="' + uuid + '"]').addClass('active');
@@ -191,6 +189,9 @@ define('taskbar', ['benchpress', 'translator', 'hooks'], function (Benchpress, t
 			case 'background-color':
 				element.find('a').css('background-color', value);
 				break;
+			case 'color':
+				element.find('a').css('color', value);
+				break;
 		}
 	};
 
diff --git a/public/src/modules/topicList.js b/public/src/modules/topicList.js
index bf4532346e..5d1ea52a62 100644
--- a/public/src/modules/topicList.js
+++ b/public/src/modules/topicList.js
@@ -5,9 +5,10 @@ define('topicList', [
 	'handleBack',
 	'topicSelect',
 	'categoryFilter',
+	'tagFilter',
 	'forum/category/tools',
 	'hooks',
-], function (infinitescroll, handleBack, topicSelect, categoryFilter, categoryTools, hooks) {
+], function (infinitescroll, handleBack, topicSelect, categoryFilter, tagFilter, categoryTools, hooks) {
 	const TopicList = {};
 	let templateName = '';
 
@@ -44,6 +45,8 @@ define('topicList', [
 			states: states,
 		});
 
+		tagFilter.init($('[component="tag/filter"]'));
+
 		if (!config.usePagination) {
 			infinitescroll.init(TopicList.loadMoreTopics);
 		}
@@ -75,9 +78,6 @@ define('topicList', [
 	}
 
 	TopicList.watchForNewPosts = function () {
-		$('#new-topics-alert').on('click', function () {
-			$(this).addClass('hide');
-		});
 		newPostCount = 0;
 		newTopicCount = 0;
 		TopicList.removeListeners();
@@ -147,36 +147,10 @@ define('topicList', [
 	}
 
 	function updateAlertText() {
-		let text = '';
-
-		if (newTopicCount === 0) {
-			if (newPostCount === 1) {
-				text = '[[recent:there-is-a-new-post]]';
-			} else if (newPostCount > 1) {
-				text = '[[recent:there-are-new-posts, ' + newPostCount + ']]';
-			}
-		} else if (newTopicCount === 1) {
-			if (newPostCount === 0) {
-				text = '[[recent:there-is-a-new-topic]]';
-			} else if (newPostCount === 1) {
-				text = '[[recent:there-is-a-new-topic-and-a-new-post]]';
-			} else if (newPostCount > 1) {
-				text = '[[recent:there-is-a-new-topic-and-new-posts, ' + newPostCount + ']]';
-			}
-		} else if (newTopicCount > 1) {
-			if (newPostCount === 0) {
-				text = '[[recent:there-are-new-topics, ' + newTopicCount + ']]';
-			} else if (newPostCount === 1) {
-				text = '[[recent:there-are-new-topics-and-a-new-post, ' + newTopicCount + ']]';
-			} else if (newPostCount > 1) {
-				text = '[[recent:there-are-new-topics-and-new-posts, ' + newTopicCount + ', ' + newPostCount + ']]';
-			}
+		if (newTopicCount > 0 || newPostCount > 0) {
+			$('#new-topics-alert').removeClass('hide').fadeIn('slow');
+			$('#category-no-topics').addClass('hide');
 		}
-
-		text += ' [[recent:click-here-to-reload]]';
-
-		$('#new-topics-alert').translateText(text).removeClass('hide').fadeIn('slow');
-		$('#category-no-topics').addClass('hide');
 	}
 
 	TopicList.loadMoreTopics = function (direction) {
@@ -268,7 +242,6 @@ define('topicList', [
 			}
 
 			html.find('.timeago').timeago();
-			app.createUserTooltips(html);
 			utils.makeNumbersHumanReadable(html.find('.human-readable-number'));
 			hooks.fire('action:topics.loaded', { topics: topics, template: templateName });
 			callback();
diff --git a/public/src/modules/topicSelect.js b/public/src/modules/topicSelect.js
index 526dd530bc..1dd231b8c9 100644
--- a/public/src/modules/topicSelect.js
+++ b/public/src/modules/topicSelect.js
@@ -3,7 +3,7 @@
 
 define('topicSelect', ['components'], function (components) {
 	const TopicSelect = {};
-	let lastSelected;
+	let lastSelectedTopic;
 
 	let topicsContainer;
 
@@ -15,26 +15,36 @@ define('topicSelect', ['components'], function (components) {
 
 		topicsContainer.on('click', '[component="topic/select"]', function (ev) {
 			const select = $(this);
-
+			const topicEl = select.parents('[component="category/topic"]');
 			if (ev.shiftKey) {
-				selectRange($(this).parents('[component="category/topic"]').attr('data-tid'));
-				lastSelected = select;
+				selectRange(topicEl.attr('data-tid'));
+				lastSelectedTopic = topicEl;
 				return false;
 			}
 
-			const isSelected = select.parents('[data-tid]').hasClass('selected');
-			toggleSelect(select, !isSelected);
-			lastSelected = select;
+			const isSelected = topicEl.hasClass('selected');
+			toggleSelected(topicEl, !isSelected);
+			lastSelectedTopic = topicEl;
 			if (typeof onSelect === 'function') {
 				onSelect();
 			}
 		});
 	};
 
-	function toggleSelect(select, isSelected) {
+	function toggleSelected(topicEl, isSelected) {
+		const select = topicEl.find('[component="topic/select"]');
 		select.toggleClass('fa-check-square-o', isSelected);
 		select.toggleClass('fa-square-o', !isSelected);
 		select.parents('[component="category/topic"]').toggleClass('selected', isSelected);
+		updateSelectedBadgeCount();
+	}
+
+	function updateSelectedBadgeCount() {
+		const badge = $('[component="topic/selected/badge"]');
+		if (badge.length) {
+			const count = topicsContainer.find('[component="category/topic"].selected').length;
+			badge.text(count > 0 ? count : '');
+		}
 	}
 
 	TopicSelect.getSelectedTids = function () {
@@ -52,18 +62,19 @@ define('topicSelect', ['components'], function (components) {
 		if (topicsContainer) {
 			topicsContainer.find('[component="category/topic"].selected').removeClass('selected');
 			topicsContainer.find('[component="topic/select"]').toggleClass('fa-check-square-o', false).toggleClass('fa-square-o', true);
+			updateSelectedBadgeCount();
 		}
 	};
 
 	function selectRange(clickedTid) {
-		if (!lastSelected) {
-			lastSelected = $('[component="category/topic"]').first().find('[component="topic/select"]');
+		if (!lastSelectedTopic) {
+			lastSelectedTopic = $('[component="category/topic"]').first();
 		}
 
 		const isClickedSelected = components.get('category/topic', 'tid', clickedTid).hasClass('selected');
 
 		const clickedIndex = getIndex(clickedTid);
-		const lastIndex = getIndex(lastSelected.parents('[component="category/topic"]').attr('data-tid'));
+		const lastIndex = getIndex(lastSelectedTopic.attr('data-tid'));
 		selectIndexRange(clickedIndex, lastIndex, !isClickedSelected);
 	}
 
@@ -76,7 +87,7 @@ define('topicSelect', ['components'], function (components) {
 
 		for (let i = start; i <= end; i += 1) {
 			const topic = $('[component="category/topic"]').eq(i);
-			toggleSelect(topic.find('[component="topic/select"]'), isSelected);
+			toggleSelected(topic, isSelected);
 		}
 	}
 
diff --git a/public/src/modules/topicThumbs.js b/public/src/modules/topicThumbs.js
index 904a366d52..c7f7c10898 100644
--- a/public/src/modules/topicThumbs.js
+++ b/public/src/modules/topicThumbs.js
@@ -93,8 +93,8 @@ define('topicThumbs', [
 						return;
 					}
 
-					const id = ev.target.closest('.media[data-id]').getAttribute('data-id');
-					const path = ev.target.closest('.media[data-path]').getAttribute('data-path');
+					const id = ev.target.closest('[data-id]').getAttribute('data-id');
+					const path = ev.target.closest('[data-path]').getAttribute('data-path');
 					api.del(`/topics/${id}/thumbs`, {
 						path: path,
 					}).then(() => {
diff --git a/public/src/modules/uploadHelpers.js b/public/src/modules/uploadHelpers.js
index 46d08d96b8..e532054288 100644
--- a/public/src/modules/uploadHelpers.js
+++ b/public/src/modules/uploadHelpers.js
@@ -36,6 +36,27 @@ define('uploadHelpers', ['alerts'], function (alerts) {
 				},
 			});
 		}
+
+		if (options.uploadBtnEl) {
+			const fileInput = formEl.find('input[name="files[]"]');
+			options.uploadBtnEl.on('click', function () {
+				fileInput.trigger('click');
+			});
+			fileInput.on('change', function (e) {
+				const files = (e.target || {}).files ||
+					($(this).val() ? [{ name: $(this).val(), type: utils.fileMimeType($(this).val()) }] : null);
+				if (files) {
+					uploadHelpers.ajaxSubmit({
+						uploadForm: formEl,
+						upload: {
+							files: files,
+							fileNames: Array.from(files).map(f => f.name),
+						},
+						callback: options.callback,
+					});
+				}
+			});
+		}
 	};
 
 	uploadHelpers.handleDragDrop = function (options) {
diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js
index c8d5351e7e..a9e91e7631 100644
--- a/public/src/modules/uploader.js
+++ b/public/src/modules/uploader.js
@@ -6,7 +6,7 @@ define('uploader', ['jquery-form'], function () {
 
 	module.show = function (data, callback) {
 		const fileSize = data.hasOwnProperty('fileSize') && data.fileSize !== undefined ? parseInt(data.fileSize, 10) : false;
-		app.parseAndTranslate('partials/modals/upload_file_modal', {
+		app.parseAndTranslate('modals/upload-file', {
 			showHelp: data.hasOwnProperty('showHelp') && data.showHelp !== undefined ? data.showHelp : true,
 			fileSize: fileSize,
 			title: data.title || '[[global:upload_file]]',
@@ -72,7 +72,7 @@ define('uploader', ['jquery-form'], function () {
 			},
 			error: function (xhr) {
 				xhr = maybeParse(xhr);
-				showAlert(uploadModal, 'error', xhr.responseJSON ? (xhr.responseJSON.error || xhr.statusText) : 'error uploading, code : ' + xhr.status);
+				showAlert(uploadModal, 'error', xhr.responseJSON?.status?.message || `[[error:upload-error-fallback, ${xhr.status} ${xhr.statusText}]]`);
 			},
 			uploadProgress: function (event, position, total, percent) {
 				uploadModal.find('#upload-progress-bar').css('width', percent + '%');
diff --git a/public/src/modules/userFilter.js b/public/src/modules/userFilter.js
new file mode 100644
index 0000000000..20b1483ed3
--- /dev/null
+++ b/public/src/modules/userFilter.js
@@ -0,0 +1,122 @@
+'use strict';
+
+define('userFilter', ['api', 'hooks', 'slugify', 'benchpress'], function (api, hooks, slugify, benchpress) {
+	const userFilter = {};
+
+	userFilter.init = function (el, options) {
+		if (!el || !el.length) {
+			return;
+		}
+		options = options || {};
+
+		let placeholderHtml;
+		let selectedUsers = [];
+		if (options.selectedUsers) {
+			selectedUsers = options.selectedUsers.map(u => ({ ...u }));
+		}
+		hooks.fire('action:user.filter.options', { el: el, options: options });
+
+		async function renderSelectedUsers() {
+			const block = options.selectedBlock || 'userFilterSelected';
+			const payload = {};
+
+			// This allows `selectedBlock` to be a nested object via dot notation.
+			// It's hacky and only works one level.
+			if (block.indexOf('.') !== -1) {
+				const split = block.split('.');
+				payload[split[0]] = {};
+				payload[split[0]][split[1]] = selectedUsers;
+			} else {
+				payload[block] = selectedUsers;
+			}
+
+			const html = await app.parseAndTranslate(options.template, block, payload);
+			el.find('[component="user/filter/selected"]').html(html);
+		}
+
+		async function onSelectionChange() {
+			await renderSelectedUsers();
+			if (options.onSelect) {
+				options.onSelect(selectedUsers);
+			}
+		}
+
+		async function doSearch() {
+			let result = { users: [] };
+			const query = el.find('[component="user/filter/search"]').val();
+			if (query && query.length > 1) {
+				if (app.user.privileges['search:users']) {
+					result = await api.get('/api/users', { query: query });
+				} else {
+					try {
+						const userData = await api.get(`/api/user/${slugify(query)}`);
+						result.users.push(userData);
+					} catch (err) {}
+				}
+			}
+			if (!result.users.length) {
+				el.find('[component="user/filter/results"]').translateHtml(
+					'[[users:no-users-found]]'
+				);
+				return;
+			}
+			result.users = result.users.slice(0, 20);
+			const uidToUser = {};
+			result.users.forEach((user) => {
+				uidToUser[user.uid] = user;
+			});
+
+			const html = await app.parseAndTranslate(options.template, 'userFilterResults', {
+				userFilterResults: result.users,
+			});
+			el.find('[component="user/filter/results"]').html(html);
+
+			el.find('[component="user/filter/results"] [data-uid]').on('click', async function () {
+				const clickedUid = parseInt($(this).attr('data-uid'), 10);
+				if (!selectedUsers.find(u => u.uid === clickedUid)) {
+					selectedUsers.push(uidToUser[clickedUid]);
+					await onSelectionChange();
+				}
+			});
+		}
+
+		el.find('[component="user/filter/search"]').on('keyup', () => {
+			el.find('[component="user/filter/results"]').html(placeholderHtml);
+		});
+
+		el.find('[component="user/filter/search"]').on('keyup', utils.debounce(function () {
+			if (app.user.privileges['search:users']) {
+				doSearch();
+			}
+		}, 1000));
+
+		el.on('click', '[component="user/filter/delete"]', async function () {
+			const uid = $(this).attr('data-uid');
+			selectedUsers = selectedUsers.filter(u => parseInt(u.uid, 10) !== parseInt(uid, 10));
+			await onSelectionChange();
+		});
+
+		el.find('[component="user/filter/search"]').on('keyup', (e) => {
+			if (e.key === 'Enter' && !app.user.privileges['search:users']) {
+				doSearch();
+			}
+		});
+
+		el.on('shown.bs.dropdown', function () {
+			el.find('[component="user/filter/search"]').trigger('focus');
+		});
+
+		el.on('hidden.bs.dropdown', function () {
+			if (options.onHidden) {
+				options.onHidden(selectedUsers);
+			}
+		});
+
+		// Pre-render placeholders for search
+		benchpress.render(options.placeholderTemplate || 'partials/userFilter-placeholders').then((html) => {
+			placeholderHtml = html;
+		});
+	};
+
+	return userFilter;
+});
diff --git a/public/src/overrides.js b/public/src/overrides.js
index 4e02be3d9d..f933f5f7ec 100644
--- a/public/src/overrides.js
+++ b/public/src/overrides.js
@@ -85,28 +85,6 @@ if (typeof window !== 'undefined') {
 		};
 	}(jQuery || { fn: {} }));
 
-	(function () {
-		// FIX FOR #1245 - https://github.com/NodeBB/NodeBB/issues/1245
-		// from http://stackoverflow.com/questions/15931962/bootstrap-dropdown-disappear-with-right-click-on-firefox
-		// obtain a reference to the original handler
-		let _clearMenus = $._data(document, 'events').click.filter(function (el) {
-			return el.namespace === 'bs.data-api.dropdown' && el.selector === undefined;
-		});
-
-		if (_clearMenus.length) {
-			_clearMenus = _clearMenus[0].handler;
-		}
-
-		// disable the old listener
-		$(document)
-			.off('click.data-api.dropdown', _clearMenus)
-			.on('click.data-api.dropdown', function (e) {
-				// call the handler only when not right-click
-				if (e.button !== 2) {
-					_clearMenus();
-				}
-			});
-	}());
 	let timeagoFn;
 	overrides.overrideTimeagoCutoff = function () {
 		const cutoff = parseInt(ajaxify.data.timeagoCutoff || config.timeagoCutoff, 10);
diff --git a/public/src/sockets.js b/public/src/sockets.js
index 2927c21619..6d3ccfbb80 100644
--- a/public/src/sockets.js
+++ b/public/src/sockets.js
@@ -162,7 +162,7 @@ app = window.app || {};
 			const reconnectEl = $('#reconnect');
 			const reconnectAlert = $('#reconnect-alert');
 
-			reconnectEl.tooltip('destroy');
+			reconnectEl.tooltip('dispose');
 			reconnectEl.html('<i class="fa fa-check text-success"></i>');
 			reconnectAlert.addClass('hide');
 			reconnecting = false;
@@ -199,6 +199,7 @@ app = window.app || {};
 
 		reconnectEl.addClass('active').removeClass('hide').tooltip({
 			placement: 'bottom',
+			animation: false,
 		});
 	}
 
diff --git a/public/src/utils.common.js b/public/src/utils.common.js
index da1c24c010..f83b3924a2 100644
--- a/public/src/utils.common.js
+++ b/public/src/utils.common.js
@@ -439,15 +439,15 @@ const utils = {
 		return !utils.isAbsoluteUrl(url);
 	},
 
-	makeNumberHumanReadable: function (num) {
+	makeNumberHumanReadable: function (num, toFixed = 1) {
 		const n = parseInt(num, 10);
 		if (!n) {
 			return num;
 		}
 		if (n > 999999) {
-			return (n / 1000000).toFixed(1) + 'm';
+			return (n / 1000000).toFixed(toFixed) + 'm';
 		} else if (n > 999) {
-			return (n / 1000).toFixed(1) + 'k';
+			return (n / 1000).toFixed(toFixed) + 'k';
 		}
 		return n;
 	},
@@ -517,31 +517,6 @@ const utils = {
 		return 'ontouchstart' in document.documentElement;
 	},
 
-	findBootstrapEnvironment: function () {
-		// http://stackoverflow.com/questions/14441456/how-to-detect-which-device-view-youre-on-using-twitter-bootstrap-api
-		const envs = ['xs', 'sm', 'md', 'lg'];
-		const $el = $('<div>');
-
-		$el.appendTo($('body'));
-
-		for (let i = envs.length - 1; i >= 0; i -= 1) {
-			const env = envs[i];
-
-			$el.addClass('hidden-' + env);
-			if ($el.is(':hidden')) {
-				$el.remove();
-				return env;
-			}
-		}
-	},
-
-	isMobile: function () {
-		const env = utils.findBootstrapEnvironment();
-		return ['xs', 'sm'].some(function (targetEnv) {
-			return targetEnv === env;
-		});
-	},
-
 	getHoursArray: function () {
 		const currentHour = new Date().getHours();
 		const labels = [];
@@ -745,6 +720,9 @@ const utils = {
 			}
 		};
 	},
+	generateSaveId: function (uid) {
+		return ['composer', uid, Date.now()].join(':');
+	},
 };
 
 module.exports = utils;
diff --git a/public/src/utils.js b/public/src/utils.js
index 03eee8f493..863b8f0c40 100644
--- a/public/src/utils.js
+++ b/public/src/utils.js
@@ -8,8 +8,8 @@ const utils = { ...require('./utils.common') };
 
 utils.getLanguage = function () {
 	let lang = 'en-GB';
-	if (typeof window === 'object' && window.config && window.utils) {
-		lang = utils.params().lang || config.userLang || config.defaultLang || 'en-GB';
+	if (typeof window === 'object' && window.config) {
+		lang = utils.params().lang || window.config.userLang || window.config.defaultLang || 'en-GB';
 	}
 	return lang;
 };
@@ -17,8 +17,9 @@ utils.getLanguage = function () {
 
 utils.makeNumbersHumanReadable = function (elements) {
 	elements.each(function () {
-		$(this)
-			.html(utils.makeNumberHumanReadable($(this).attr('title')))
+		const $this = $(this);
+		const toFixed = $this.attr('data-toFixed') || 1;
+		$this.html(utils.makeNumberHumanReadable($(this).attr('title'), toFixed))
 			.removeClass('hidden');
 	});
 };
@@ -33,20 +34,21 @@ utils.addCommasToNumbers = function (elements) {
 
 utils.findBootstrapEnvironment = function () {
 	// http://stackoverflow.com/questions/14441456/how-to-detect-which-device-view-youre-on-using-twitter-bootstrap-api
-	const envs = ['xs', 'sm', 'md', 'lg'];
-	const $el = $('<div>');
-
-	$el.appendTo($('body'));
-
+	const envs = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
+	const el = document.createElement('div');
+	document.body.appendChild(el);
+	let curEnv = envs[0];
 	for (let i = envs.length - 1; i >= 0; i -= 1) {
 		const env = envs[i];
-
-		$el.addClass('hidden-' + env);
-		if ($el.is(':hidden')) {
-			$el.remove();
-			return env;
+		el.classList.add(`d-${env}-none`);
+		if (window.getComputedStyle(el).display === 'none') {
+			curEnv = env;
+			break;
 		}
 	}
+
+	document.body.removeChild(el);
+	return curEnv;
 };
 
 utils.isMobile = function () {
diff --git a/public/src/widgets.js b/public/src/widgets.js
index e6612a2952..6f4b030b4c 100644
--- a/public/src/widgets.js
+++ b/public/src/widgets.js
@@ -9,35 +9,36 @@ module.exports.render = function (template) {
 
 	locations.forEach(function (location) {
 		let area = $('#content [widget-area="' + location + '"],#content [data-widget-area="' + location + '"]').eq(0);
-		if (area.length) {
+		const widgetsAtLocation = ajaxify.data.widgets[location] || [];
+		if (area.length || !widgetsAtLocation.length) {
 			return;
 		}
 
-		const widgetsAtLocation = ajaxify.data.widgets[location] || [];
 		let html = '';
-
 		widgetsAtLocation.forEach(function (widget) {
 			html += widget.html;
 		});
-
+		if (!html) {
+			return;
+		}
 		if (location === 'footer' && !$('#content [widget-area="footer"],#content [data-widget-area="footer"]').length) {
-			$('#content').append($('<div class="row"><div data-widget-area="footer" class="col-xs-12"></div></div>'));
+			$('#content').append($('<div data-widget-area="footer"></div>'));
 		} else if (location === 'sidebar' && !$('#content [widget-area="sidebar"],#content [data-widget-area="sidebar"]').length) {
 			if ($('[component="account/cover"]').length) {
-				$('[component="account/cover"]').nextAll().wrapAll($('<div class="row"><div class="col-lg-9 col-xs-12"></div><div data-widget-area="sidebar" class="col-lg-3 col-xs-12"></div></div></div>'));
+				$('[component="account/cover"]').nextAll().wrapAll($('<div class="row"><div class="col-lg-9 col-12"></div><div data-widget-area="sidebar" class="col-lg-3 col-12"></div></div></div>'));
 			} else if ($('[component="groups/cover"]').length) {
-				$('[component="groups/cover"]').nextAll().wrapAll($('<div class="row"><div class="col-lg-9 col-xs-12"></div><div data-widget-area="sidebar" class="col-lg-3 col-xs-12"></div></div></div>'));
+				$('[component="groups/cover"]').nextAll().wrapAll($('<div class="row"><div class="col-lg-9 col-12"></div><div data-widget-area="sidebar" class="col-lg-3 col-12"></div></div></div>'));
 			} else {
-				$('#content > *').wrapAll($('<div class="row"><div class="col-lg-9 col-xs-12"></div><div data-widget-area="sidebar" class="col-lg-3 col-xs-12"></div></div></div>'));
+				$('#content > *').wrapAll($('<div class="row"><div class="col-lg-9 col-12"></div><div data-widget-area="sidebar" class="col-lg-3 col-12"></div></div></div>'));
 			}
 		} else if (location === 'header' && !$('#content [widget-area="header"],#content [data-widget-area="header"]').length) {
-			$('#content').prepend($('<div class="row"><div data-widget-area="header" class="col-xs-12"></div></div>'));
+			$('#content').prepend($('<div class="row"><div data-widget-area="header" class="col-12"></div></div>'));
 		}
 
 		area = $('#content [widget-area="' + location + '"],#content [data-widget-area="' + location + '"]').eq(0);
 		if (html && area.length) {
 			area.html(html);
-			area.find('img:not(.not-responsive)').addClass('img-responsive');
+			area.find('img:not(.not-responsive)').addClass('img-fluid');
 		}
 
 		if (widgetsAtLocation.length) {
diff --git a/public/vendor/fontawesome/LICENSE.txt b/public/vendor/fontawesome/LICENSE.txt
index f31bef92b6..cc557ece45 100644
--- a/public/vendor/fontawesome/LICENSE.txt
+++ b/public/vendor/fontawesome/LICENSE.txt
@@ -1,23 +1,151 @@
+Fonticons, Inc. (https://fontawesome.com)
+
+--------------------------------------------------------------------------------
+
 Font Awesome Free License
--------------------------
 
 Font Awesome Free is free, open source, and GPL friendly. You can use it for
 commercial projects, open source projects, or really almost whatever you want.
 Full Font Awesome Free license: https://fontawesome.com/license/free.
 
+--------------------------------------------------------------------------------
+
 # Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
-In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
-packaged as SVG and JS file types.
 
-# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
+The Font Awesome Free download is licensed under a Creative Commons
+Attribution 4.0 International License and applies to all icons packaged
+as SVG and JS file types.
+
+--------------------------------------------------------------------------------
+
+# Fonts: SIL OFL 1.1 License
+
 In the Font Awesome Free download, the SIL OFL license applies to all icons
 packaged as web and desktop font files.
 
+Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com)
+with Reserved Font Name: "Font Awesome".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+SIL OPEN FONT LICENSE
+Version 1.1 - 26 February 2007
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting — in part or in whole — any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+--------------------------------------------------------------------------------
+
 # Code: MIT License (https://opensource.org/licenses/MIT)
+
 In the Font Awesome Free download, the MIT license applies to all non-font and
 non-icon files.
 
+Copyright 2022 Fonticons, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in the
+Software without restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+--------------------------------------------------------------------------------
+
 # Attribution
+
 Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
 Awesome Free files already contain embedded comments with sufficient
 attribution, so you shouldn't need to do anything additional when using these
@@ -27,7 +155,10 @@ We've kept attribution comments terse, so we ask that you do not actively work
 to remove them from files, especially code. They're a great way for folks to
 learn about Font Awesome.
 
+--------------------------------------------------------------------------------
+
 # Brand Icons
+
 All brand icons are trademarks of their respective owners. The use of these
 trademarks does not indicate endorsement of the trademark holder by Font
 Awesome, nor vice versa. **Please do not use brand logos for any purpose except
diff --git a/public/vendor/fontawesome/attribution.js b/public/vendor/fontawesome/attribution.js
index 2d28cc90d6..a659606c8d 100644
--- a/public/vendor/fontawesome/attribution.js
+++ b/public/vendor/fontawesome/attribution.js
@@ -1,3 +1,3 @@
-console.log(`Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com
+console.log(`Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
 License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 `)
\ No newline at end of file
diff --git a/public/vendor/fontawesome/less/_animated.less b/public/vendor/fontawesome/less/_animated.less
deleted file mode 100644
index 704ec95103..0000000000
--- a/public/vendor/fontawesome/less/_animated.less
+++ /dev/null
@@ -1,19 +0,0 @@
-// Animated Icons
-// --------------------------
-
-.@{fa-css-prefix}-spin {
-  animation: fa-spin 2s infinite linear;
-}
-
-.@{fa-css-prefix}-pulse {
-  animation: fa-spin 1s infinite steps(8);
-}
-
-@keyframes fa-spin {
-  0% {
-    transform: rotate(0deg);
-  }
-  100% {
-    transform: rotate(360deg);
-  }
-}
diff --git a/public/vendor/fontawesome/less/_bordered-pulled.less b/public/vendor/fontawesome/less/_bordered-pulled.less
deleted file mode 100644
index 29a356b423..0000000000
--- a/public/vendor/fontawesome/less/_bordered-pulled.less
+++ /dev/null
@@ -1,16 +0,0 @@
-// Bordered & Pulled
-// -------------------------
-
-.@{fa-css-prefix}-border {
-  border-radius: .1em;
-  border: solid .08em @fa-border-color;
-  padding: .2em .25em .15em;
-}
-
-.@{fa-css-prefix}-pull-left { float: left; }
-.@{fa-css-prefix}-pull-right { float: right; }
-
-.@{fa-css-prefix}, .fas, .far, .fal, .fab {
-  &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
-  &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
-}
diff --git a/public/vendor/fontawesome/less/_core.less b/public/vendor/fontawesome/less/_core.less
deleted file mode 100644
index e8c2ff3898..0000000000
--- a/public/vendor/fontawesome/less/_core.less
+++ /dev/null
@@ -1,12 +0,0 @@
-// Base Class Definition
-// -------------------------
-
-.@{fa-css-prefix}, .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;
-}
diff --git a/public/vendor/fontawesome/less/_fixed-width.less b/public/vendor/fontawesome/less/_fixed-width.less
deleted file mode 100644
index be817c6375..0000000000
--- a/public/vendor/fontawesome/less/_fixed-width.less
+++ /dev/null
@@ -1,6 +0,0 @@
-// Fixed Width Icons
-// -------------------------
-.@{fa-css-prefix}-fw {
-  text-align: center;
-  width: (20em / 16);
-}
diff --git a/public/vendor/fontawesome/less/_icons.less b/public/vendor/fontawesome/less/_icons.less
deleted file mode 100644
index 5dc7df5ebb..0000000000
--- a/public/vendor/fontawesome/less/_icons.less
+++ /dev/null
@@ -1,1462 +0,0 @@
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-   readers do not read off random characters that represent icons */
-
-.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }
-.@{fa-css-prefix}-accessible-icon:before { content: @fa-var-accessible-icon; }
-.@{fa-css-prefix}-accusoft:before { content: @fa-var-accusoft; }
-.@{fa-css-prefix}-acquisitions-incorporated:before { content: @fa-var-acquisitions-incorporated; }
-.@{fa-css-prefix}-ad:before { content: @fa-var-ad; }
-.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }
-.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }
-.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }
-.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }
-.@{fa-css-prefix}-adversal:before { content: @fa-var-adversal; }
-.@{fa-css-prefix}-affiliatetheme:before { content: @fa-var-affiliatetheme; }
-.@{fa-css-prefix}-air-freshener:before { content: @fa-var-air-freshener; }
-.@{fa-css-prefix}-airbnb:before { content: @fa-var-airbnb; }
-.@{fa-css-prefix}-algolia:before { content: @fa-var-algolia; }
-.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }
-.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }
-.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }
-.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }
-.@{fa-css-prefix}-alipay:before { content: @fa-var-alipay; }
-.@{fa-css-prefix}-allergies:before { content: @fa-var-allergies; }
-.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }
-.@{fa-css-prefix}-amazon-pay:before { content: @fa-var-amazon-pay; }
-.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }
-.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }
-.@{fa-css-prefix}-amilia:before { content: @fa-var-amilia; }
-.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }
-.@{fa-css-prefix}-android:before { content: @fa-var-android; }
-.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }
-.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }
-.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }
-.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }
-.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }
-.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }
-.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }
-.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }
-.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }
-.@{fa-css-prefix}-angry:before { content: @fa-var-angry; }
-.@{fa-css-prefix}-angrycreative:before { content: @fa-var-angrycreative; }
-.@{fa-css-prefix}-angular:before { content: @fa-var-angular; }
-.@{fa-css-prefix}-ankh:before { content: @fa-var-ankh; }
-.@{fa-css-prefix}-app-store:before { content: @fa-var-app-store; }
-.@{fa-css-prefix}-app-store-ios:before { content: @fa-var-app-store-ios; }
-.@{fa-css-prefix}-apper:before { content: @fa-var-apper; }
-.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }
-.@{fa-css-prefix}-apple-alt:before { content: @fa-var-apple-alt; }
-.@{fa-css-prefix}-apple-pay:before { content: @fa-var-apple-pay; }
-.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }
-.@{fa-css-prefix}-archway:before { content: @fa-var-archway; }
-.@{fa-css-prefix}-arrow-alt-circle-down:before { content: @fa-var-arrow-alt-circle-down; }
-.@{fa-css-prefix}-arrow-alt-circle-left:before { content: @fa-var-arrow-alt-circle-left; }
-.@{fa-css-prefix}-arrow-alt-circle-right:before { content: @fa-var-arrow-alt-circle-right; }
-.@{fa-css-prefix}-arrow-alt-circle-up:before { content: @fa-var-arrow-alt-circle-up; }
-.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }
-.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }
-.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }
-.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }
-.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }
-.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }
-.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }
-.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }
-.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }
-.@{fa-css-prefix}-arrows-alt-h:before { content: @fa-var-arrows-alt-h; }
-.@{fa-css-prefix}-arrows-alt-v:before { content: @fa-var-arrows-alt-v; }
-.@{fa-css-prefix}-artstation:before { content: @fa-var-artstation; }
-.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }
-.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }
-.@{fa-css-prefix}-asymmetrik:before { content: @fa-var-asymmetrik; }
-.@{fa-css-prefix}-at:before { content: @fa-var-at; }
-.@{fa-css-prefix}-atlas:before { content: @fa-var-atlas; }
-.@{fa-css-prefix}-atlassian:before { content: @fa-var-atlassian; }
-.@{fa-css-prefix}-atom:before { content: @fa-var-atom; }
-.@{fa-css-prefix}-audible:before { content: @fa-var-audible; }
-.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }
-.@{fa-css-prefix}-autoprefixer:before { content: @fa-var-autoprefixer; }
-.@{fa-css-prefix}-avianex:before { content: @fa-var-avianex; }
-.@{fa-css-prefix}-aviato:before { content: @fa-var-aviato; }
-.@{fa-css-prefix}-award:before { content: @fa-var-award; }
-.@{fa-css-prefix}-aws:before { content: @fa-var-aws; }
-.@{fa-css-prefix}-baby:before { content: @fa-var-baby; }
-.@{fa-css-prefix}-baby-carriage:before { content: @fa-var-baby-carriage; }
-.@{fa-css-prefix}-backspace:before { content: @fa-var-backspace; }
-.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }
-.@{fa-css-prefix}-bacon:before { content: @fa-var-bacon; }
-.@{fa-css-prefix}-bacteria:before { content: @fa-var-bacteria; }
-.@{fa-css-prefix}-bacterium:before { content: @fa-var-bacterium; }
-.@{fa-css-prefix}-bahai:before { content: @fa-var-bahai; }
-.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }
-.@{fa-css-prefix}-balance-scale-left:before { content: @fa-var-balance-scale-left; }
-.@{fa-css-prefix}-balance-scale-right:before { content: @fa-var-balance-scale-right; }
-.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }
-.@{fa-css-prefix}-band-aid:before { content: @fa-var-band-aid; }
-.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }
-.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }
-.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }
-.@{fa-css-prefix}-baseball-ball:before { content: @fa-var-baseball-ball; }
-.@{fa-css-prefix}-basketball-ball:before { content: @fa-var-basketball-ball; }
-.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }
-.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }
-.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }
-.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }
-.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }
-.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }
-.@{fa-css-prefix}-battle-net:before { content: @fa-var-battle-net; }
-.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }
-.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }
-.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }
-.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }
-.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }
-.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }
-.@{fa-css-prefix}-bezier-curve:before { content: @fa-var-bezier-curve; }
-.@{fa-css-prefix}-bible:before { content: @fa-var-bible; }
-.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }
-.@{fa-css-prefix}-biking:before { content: @fa-var-biking; }
-.@{fa-css-prefix}-bimobject:before { content: @fa-var-bimobject; }
-.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }
-.@{fa-css-prefix}-biohazard:before { content: @fa-var-biohazard; }
-.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }
-.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }
-.@{fa-css-prefix}-bitcoin:before { content: @fa-var-bitcoin; }
-.@{fa-css-prefix}-bity:before { content: @fa-var-bity; }
-.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }
-.@{fa-css-prefix}-blackberry:before { content: @fa-var-blackberry; }
-.@{fa-css-prefix}-blender:before { content: @fa-var-blender; }
-.@{fa-css-prefix}-blender-phone:before { content: @fa-var-blender-phone; }
-.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }
-.@{fa-css-prefix}-blog:before { content: @fa-var-blog; }
-.@{fa-css-prefix}-blogger:before { content: @fa-var-blogger; }
-.@{fa-css-prefix}-blogger-b:before { content: @fa-var-blogger-b; }
-.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }
-.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }
-.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }
-.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }
-.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }
-.@{fa-css-prefix}-bone:before { content: @fa-var-bone; }
-.@{fa-css-prefix}-bong:before { content: @fa-var-bong; }
-.@{fa-css-prefix}-book:before { content: @fa-var-book; }
-.@{fa-css-prefix}-book-dead:before { content: @fa-var-book-dead; }
-.@{fa-css-prefix}-book-medical:before { content: @fa-var-book-medical; }
-.@{fa-css-prefix}-book-open:before { content: @fa-var-book-open; }
-.@{fa-css-prefix}-book-reader:before { content: @fa-var-book-reader; }
-.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }
-.@{fa-css-prefix}-bootstrap:before { content: @fa-var-bootstrap; }
-.@{fa-css-prefix}-border-all:before { content: @fa-var-border-all; }
-.@{fa-css-prefix}-border-none:before { content: @fa-var-border-none; }
-.@{fa-css-prefix}-border-style:before { content: @fa-var-border-style; }
-.@{fa-css-prefix}-bowling-ball:before { content: @fa-var-bowling-ball; }
-.@{fa-css-prefix}-box:before { content: @fa-var-box; }
-.@{fa-css-prefix}-box-open:before { content: @fa-var-box-open; }
-.@{fa-css-prefix}-box-tissue:before { content: @fa-var-box-tissue; }
-.@{fa-css-prefix}-boxes:before { content: @fa-var-boxes; }
-.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }
-.@{fa-css-prefix}-brain:before { content: @fa-var-brain; }
-.@{fa-css-prefix}-bread-slice:before { content: @fa-var-bread-slice; }
-.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }
-.@{fa-css-prefix}-briefcase-medical:before { content: @fa-var-briefcase-medical; }
-.@{fa-css-prefix}-broadcast-tower:before { content: @fa-var-broadcast-tower; }
-.@{fa-css-prefix}-broom:before { content: @fa-var-broom; }
-.@{fa-css-prefix}-brush:before { content: @fa-var-brush; }
-.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }
-.@{fa-css-prefix}-buffer:before { content: @fa-var-buffer; }
-.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }
-.@{fa-css-prefix}-building:before { content: @fa-var-building; }
-.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }
-.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }
-.@{fa-css-prefix}-burn:before { content: @fa-var-burn; }
-.@{fa-css-prefix}-buromobelexperte:before { content: @fa-var-buromobelexperte; }
-.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }
-.@{fa-css-prefix}-bus-alt:before { content: @fa-var-bus-alt; }
-.@{fa-css-prefix}-business-time:before { content: @fa-var-business-time; }
-.@{fa-css-prefix}-buy-n-large:before { content: @fa-var-buy-n-large; }
-.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }
-.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }
-.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }
-.@{fa-css-prefix}-calendar-alt:before { content: @fa-var-calendar-alt; }
-.@{fa-css-prefix}-calendar-check:before { content: @fa-var-calendar-check; }
-.@{fa-css-prefix}-calendar-day:before { content: @fa-var-calendar-day; }
-.@{fa-css-prefix}-calendar-minus:before { content: @fa-var-calendar-minus; }
-.@{fa-css-prefix}-calendar-plus:before { content: @fa-var-calendar-plus; }
-.@{fa-css-prefix}-calendar-times:before { content: @fa-var-calendar-times; }
-.@{fa-css-prefix}-calendar-week:before { content: @fa-var-calendar-week; }
-.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }
-.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }
-.@{fa-css-prefix}-campground:before { content: @fa-var-campground; }
-.@{fa-css-prefix}-canadian-maple-leaf:before { content: @fa-var-canadian-maple-leaf; }
-.@{fa-css-prefix}-candy-cane:before { content: @fa-var-candy-cane; }
-.@{fa-css-prefix}-cannabis:before { content: @fa-var-cannabis; }
-.@{fa-css-prefix}-capsules:before { content: @fa-var-capsules; }
-.@{fa-css-prefix}-car:before { content: @fa-var-car; }
-.@{fa-css-prefix}-car-alt:before { content: @fa-var-car-alt; }
-.@{fa-css-prefix}-car-battery:before { content: @fa-var-car-battery; }
-.@{fa-css-prefix}-car-crash:before { content: @fa-var-car-crash; }
-.@{fa-css-prefix}-car-side:before { content: @fa-var-car-side; }
-.@{fa-css-prefix}-caravan:before { content: @fa-var-caravan; }
-.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }
-.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }
-.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }
-.@{fa-css-prefix}-caret-square-down:before { content: @fa-var-caret-square-down; }
-.@{fa-css-prefix}-caret-square-left:before { content: @fa-var-caret-square-left; }
-.@{fa-css-prefix}-caret-square-right:before { content: @fa-var-caret-square-right; }
-.@{fa-css-prefix}-caret-square-up:before { content: @fa-var-caret-square-up; }
-.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }
-.@{fa-css-prefix}-carrot:before { content: @fa-var-carrot; }
-.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }
-.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }
-.@{fa-css-prefix}-cash-register:before { content: @fa-var-cash-register; }
-.@{fa-css-prefix}-cat:before { content: @fa-var-cat; }
-.@{fa-css-prefix}-cc-amazon-pay:before { content: @fa-var-cc-amazon-pay; }
-.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }
-.@{fa-css-prefix}-cc-apple-pay:before { content: @fa-var-cc-apple-pay; }
-.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }
-.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }
-.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }
-.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }
-.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }
-.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }
-.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }
-.@{fa-css-prefix}-centercode:before { content: @fa-var-centercode; }
-.@{fa-css-prefix}-centos:before { content: @fa-var-centos; }
-.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }
-.@{fa-css-prefix}-chair:before { content: @fa-var-chair; }
-.@{fa-css-prefix}-chalkboard:before { content: @fa-var-chalkboard; }
-.@{fa-css-prefix}-chalkboard-teacher:before { content: @fa-var-chalkboard-teacher; }
-.@{fa-css-prefix}-charging-station:before { content: @fa-var-charging-station; }
-.@{fa-css-prefix}-chart-area:before { content: @fa-var-chart-area; }
-.@{fa-css-prefix}-chart-bar:before { content: @fa-var-chart-bar; }
-.@{fa-css-prefix}-chart-line:before { content: @fa-var-chart-line; }
-.@{fa-css-prefix}-chart-pie:before { content: @fa-var-chart-pie; }
-.@{fa-css-prefix}-check:before { content: @fa-var-check; }
-.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }
-.@{fa-css-prefix}-check-double:before { content: @fa-var-check-double; }
-.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }
-.@{fa-css-prefix}-cheese:before { content: @fa-var-cheese; }
-.@{fa-css-prefix}-chess:before { content: @fa-var-chess; }
-.@{fa-css-prefix}-chess-bishop:before { content: @fa-var-chess-bishop; }
-.@{fa-css-prefix}-chess-board:before { content: @fa-var-chess-board; }
-.@{fa-css-prefix}-chess-king:before { content: @fa-var-chess-king; }
-.@{fa-css-prefix}-chess-knight:before { content: @fa-var-chess-knight; }
-.@{fa-css-prefix}-chess-pawn:before { content: @fa-var-chess-pawn; }
-.@{fa-css-prefix}-chess-queen:before { content: @fa-var-chess-queen; }
-.@{fa-css-prefix}-chess-rook:before { content: @fa-var-chess-rook; }
-.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }
-.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }
-.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }
-.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }
-.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }
-.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }
-.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }
-.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }
-.@{fa-css-prefix}-child:before { content: @fa-var-child; }
-.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }
-.@{fa-css-prefix}-chromecast:before { content: @fa-var-chromecast; }
-.@{fa-css-prefix}-church:before { content: @fa-var-church; }
-.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }
-.@{fa-css-prefix}-circle-notch:before { content: @fa-var-circle-notch; }
-.@{fa-css-prefix}-city:before { content: @fa-var-city; }
-.@{fa-css-prefix}-clinic-medical:before { content: @fa-var-clinic-medical; }
-.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }
-.@{fa-css-prefix}-clipboard-check:before { content: @fa-var-clipboard-check; }
-.@{fa-css-prefix}-clipboard-list:before { content: @fa-var-clipboard-list; }
-.@{fa-css-prefix}-clock:before { content: @fa-var-clock; }
-.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }
-.@{fa-css-prefix}-closed-captioning:before { content: @fa-var-closed-captioning; }
-.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }
-.@{fa-css-prefix}-cloud-download-alt:before { content: @fa-var-cloud-download-alt; }
-.@{fa-css-prefix}-cloud-meatball:before { content: @fa-var-cloud-meatball; }
-.@{fa-css-prefix}-cloud-moon:before { content: @fa-var-cloud-moon; }
-.@{fa-css-prefix}-cloud-moon-rain:before { content: @fa-var-cloud-moon-rain; }
-.@{fa-css-prefix}-cloud-rain:before { content: @fa-var-cloud-rain; }
-.@{fa-css-prefix}-cloud-showers-heavy:before { content: @fa-var-cloud-showers-heavy; }
-.@{fa-css-prefix}-cloud-sun:before { content: @fa-var-cloud-sun; }
-.@{fa-css-prefix}-cloud-sun-rain:before { content: @fa-var-cloud-sun-rain; }
-.@{fa-css-prefix}-cloud-upload-alt:before { content: @fa-var-cloud-upload-alt; }
-.@{fa-css-prefix}-cloudflare:before { content: @fa-var-cloudflare; }
-.@{fa-css-prefix}-cloudscale:before { content: @fa-var-cloudscale; }
-.@{fa-css-prefix}-cloudsmith:before { content: @fa-var-cloudsmith; }
-.@{fa-css-prefix}-cloudversify:before { content: @fa-var-cloudversify; }
-.@{fa-css-prefix}-cocktail:before { content: @fa-var-cocktail; }
-.@{fa-css-prefix}-code:before { content: @fa-var-code; }
-.@{fa-css-prefix}-code-branch:before { content: @fa-var-code-branch; }
-.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }
-.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }
-.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }
-.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }
-.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }
-.@{fa-css-prefix}-coins:before { content: @fa-var-coins; }
-.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }
-.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }
-.@{fa-css-prefix}-comment-alt:before { content: @fa-var-comment-alt; }
-.@{fa-css-prefix}-comment-dollar:before { content: @fa-var-comment-dollar; }
-.@{fa-css-prefix}-comment-dots:before { content: @fa-var-comment-dots; }
-.@{fa-css-prefix}-comment-medical:before { content: @fa-var-comment-medical; }
-.@{fa-css-prefix}-comment-slash:before { content: @fa-var-comment-slash; }
-.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }
-.@{fa-css-prefix}-comments-dollar:before { content: @fa-var-comments-dollar; }
-.@{fa-css-prefix}-compact-disc:before { content: @fa-var-compact-disc; }
-.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }
-.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }
-.@{fa-css-prefix}-compress-alt:before { content: @fa-var-compress-alt; }
-.@{fa-css-prefix}-compress-arrows-alt:before { content: @fa-var-compress-arrows-alt; }
-.@{fa-css-prefix}-concierge-bell:before { content: @fa-var-concierge-bell; }
-.@{fa-css-prefix}-confluence:before { content: @fa-var-confluence; }
-.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }
-.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }
-.@{fa-css-prefix}-cookie:before { content: @fa-var-cookie; }
-.@{fa-css-prefix}-cookie-bite:before { content: @fa-var-cookie-bite; }
-.@{fa-css-prefix}-copy:before { content: @fa-var-copy; }
-.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }
-.@{fa-css-prefix}-cotton-bureau:before { content: @fa-var-cotton-bureau; }
-.@{fa-css-prefix}-couch:before { content: @fa-var-couch; }
-.@{fa-css-prefix}-cpanel:before { content: @fa-var-cpanel; }
-.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }
-.@{fa-css-prefix}-creative-commons-by:before { content: @fa-var-creative-commons-by; }
-.@{fa-css-prefix}-creative-commons-nc:before { content: @fa-var-creative-commons-nc; }
-.@{fa-css-prefix}-creative-commons-nc-eu:before { content: @fa-var-creative-commons-nc-eu; }
-.@{fa-css-prefix}-creative-commons-nc-jp:before { content: @fa-var-creative-commons-nc-jp; }
-.@{fa-css-prefix}-creative-commons-nd:before { content: @fa-var-creative-commons-nd; }
-.@{fa-css-prefix}-creative-commons-pd:before { content: @fa-var-creative-commons-pd; }
-.@{fa-css-prefix}-creative-commons-pd-alt:before { content: @fa-var-creative-commons-pd-alt; }
-.@{fa-css-prefix}-creative-commons-remix:before { content: @fa-var-creative-commons-remix; }
-.@{fa-css-prefix}-creative-commons-sa:before { content: @fa-var-creative-commons-sa; }
-.@{fa-css-prefix}-creative-commons-sampling:before { content: @fa-var-creative-commons-sampling; }
-.@{fa-css-prefix}-creative-commons-sampling-plus:before { content: @fa-var-creative-commons-sampling-plus; }
-.@{fa-css-prefix}-creative-commons-share:before { content: @fa-var-creative-commons-share; }
-.@{fa-css-prefix}-creative-commons-zero:before { content: @fa-var-creative-commons-zero; }
-.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }
-.@{fa-css-prefix}-critical-role:before { content: @fa-var-critical-role; }
-.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }
-.@{fa-css-prefix}-crop-alt:before { content: @fa-var-crop-alt; }
-.@{fa-css-prefix}-cross:before { content: @fa-var-cross; }
-.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }
-.@{fa-css-prefix}-crow:before { content: @fa-var-crow; }
-.@{fa-css-prefix}-crown:before { content: @fa-var-crown; }
-.@{fa-css-prefix}-crutch:before { content: @fa-var-crutch; }
-.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }
-.@{fa-css-prefix}-css3-alt:before { content: @fa-var-css3-alt; }
-.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }
-.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }
-.@{fa-css-prefix}-cut:before { content: @fa-var-cut; }
-.@{fa-css-prefix}-cuttlefish:before { content: @fa-var-cuttlefish; }
-.@{fa-css-prefix}-d-and-d:before { content: @fa-var-d-and-d; }
-.@{fa-css-prefix}-d-and-d-beyond:before { content: @fa-var-d-and-d-beyond; }
-.@{fa-css-prefix}-dailymotion:before { content: @fa-var-dailymotion; }
-.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }
-.@{fa-css-prefix}-database:before { content: @fa-var-database; }
-.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }
-.@{fa-css-prefix}-deezer:before { content: @fa-var-deezer; }
-.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }
-.@{fa-css-prefix}-democrat:before { content: @fa-var-democrat; }
-.@{fa-css-prefix}-deploydog:before { content: @fa-var-deploydog; }
-.@{fa-css-prefix}-deskpro:before { content: @fa-var-deskpro; }
-.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }
-.@{fa-css-prefix}-dev:before { content: @fa-var-dev; }
-.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }
-.@{fa-css-prefix}-dharmachakra:before { content: @fa-var-dharmachakra; }
-.@{fa-css-prefix}-dhl:before { content: @fa-var-dhl; }
-.@{fa-css-prefix}-diagnoses:before { content: @fa-var-diagnoses; }
-.@{fa-css-prefix}-diaspora:before { content: @fa-var-diaspora; }
-.@{fa-css-prefix}-dice:before { content: @fa-var-dice; }
-.@{fa-css-prefix}-dice-d20:before { content: @fa-var-dice-d20; }
-.@{fa-css-prefix}-dice-d6:before { content: @fa-var-dice-d6; }
-.@{fa-css-prefix}-dice-five:before { content: @fa-var-dice-five; }
-.@{fa-css-prefix}-dice-four:before { content: @fa-var-dice-four; }
-.@{fa-css-prefix}-dice-one:before { content: @fa-var-dice-one; }
-.@{fa-css-prefix}-dice-six:before { content: @fa-var-dice-six; }
-.@{fa-css-prefix}-dice-three:before { content: @fa-var-dice-three; }
-.@{fa-css-prefix}-dice-two:before { content: @fa-var-dice-two; }
-.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }
-.@{fa-css-prefix}-digital-ocean:before { content: @fa-var-digital-ocean; }
-.@{fa-css-prefix}-digital-tachograph:before { content: @fa-var-digital-tachograph; }
-.@{fa-css-prefix}-directions:before { content: @fa-var-directions; }
-.@{fa-css-prefix}-discord:before { content: @fa-var-discord; }
-.@{fa-css-prefix}-discourse:before { content: @fa-var-discourse; }
-.@{fa-css-prefix}-disease:before { content: @fa-var-disease; }
-.@{fa-css-prefix}-divide:before { content: @fa-var-divide; }
-.@{fa-css-prefix}-dizzy:before { content: @fa-var-dizzy; }
-.@{fa-css-prefix}-dna:before { content: @fa-var-dna; }
-.@{fa-css-prefix}-dochub:before { content: @fa-var-dochub; }
-.@{fa-css-prefix}-docker:before { content: @fa-var-docker; }
-.@{fa-css-prefix}-dog:before { content: @fa-var-dog; }
-.@{fa-css-prefix}-dollar-sign:before { content: @fa-var-dollar-sign; }
-.@{fa-css-prefix}-dolly:before { content: @fa-var-dolly; }
-.@{fa-css-prefix}-dolly-flatbed:before { content: @fa-var-dolly-flatbed; }
-.@{fa-css-prefix}-donate:before { content: @fa-var-donate; }
-.@{fa-css-prefix}-door-closed:before { content: @fa-var-door-closed; }
-.@{fa-css-prefix}-door-open:before { content: @fa-var-door-open; }
-.@{fa-css-prefix}-dot-circle:before { content: @fa-var-dot-circle; }
-.@{fa-css-prefix}-dove:before { content: @fa-var-dove; }
-.@{fa-css-prefix}-download:before { content: @fa-var-download; }
-.@{fa-css-prefix}-draft2digital:before { content: @fa-var-draft2digital; }
-.@{fa-css-prefix}-drafting-compass:before { content: @fa-var-drafting-compass; }
-.@{fa-css-prefix}-dragon:before { content: @fa-var-dragon; }
-.@{fa-css-prefix}-draw-polygon:before { content: @fa-var-draw-polygon; }
-.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }
-.@{fa-css-prefix}-dribbble-square:before { content: @fa-var-dribbble-square; }
-.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }
-.@{fa-css-prefix}-drum:before { content: @fa-var-drum; }
-.@{fa-css-prefix}-drum-steelpan:before { content: @fa-var-drum-steelpan; }
-.@{fa-css-prefix}-drumstick-bite:before { content: @fa-var-drumstick-bite; }
-.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }
-.@{fa-css-prefix}-dumbbell:before { content: @fa-var-dumbbell; }
-.@{fa-css-prefix}-dumpster:before { content: @fa-var-dumpster; }
-.@{fa-css-prefix}-dumpster-fire:before { content: @fa-var-dumpster-fire; }
-.@{fa-css-prefix}-dungeon:before { content: @fa-var-dungeon; }
-.@{fa-css-prefix}-dyalog:before { content: @fa-var-dyalog; }
-.@{fa-css-prefix}-earlybirds:before { content: @fa-var-earlybirds; }
-.@{fa-css-prefix}-ebay:before { content: @fa-var-ebay; }
-.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }
-.@{fa-css-prefix}-edge-legacy:before { content: @fa-var-edge-legacy; }
-.@{fa-css-prefix}-edit:before { content: @fa-var-edit; }
-.@{fa-css-prefix}-egg:before { content: @fa-var-egg; }
-.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }
-.@{fa-css-prefix}-elementor:before { content: @fa-var-elementor; }
-.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }
-.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }
-.@{fa-css-prefix}-ello:before { content: @fa-var-ello; }
-.@{fa-css-prefix}-ember:before { content: @fa-var-ember; }
-.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }
-.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }
-.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }
-.@{fa-css-prefix}-envelope-open-text:before { content: @fa-var-envelope-open-text; }
-.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }
-.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }
-.@{fa-css-prefix}-equals:before { content: @fa-var-equals; }
-.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }
-.@{fa-css-prefix}-erlang:before { content: @fa-var-erlang; }
-.@{fa-css-prefix}-ethereum:before { content: @fa-var-ethereum; }
-.@{fa-css-prefix}-ethernet:before { content: @fa-var-ethernet; }
-.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }
-.@{fa-css-prefix}-euro-sign:before { content: @fa-var-euro-sign; }
-.@{fa-css-prefix}-evernote:before { content: @fa-var-evernote; }
-.@{fa-css-prefix}-exchange-alt:before { content: @fa-var-exchange-alt; }
-.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }
-.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }
-.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }
-.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }
-.@{fa-css-prefix}-expand-alt:before { content: @fa-var-expand-alt; }
-.@{fa-css-prefix}-expand-arrows-alt:before { content: @fa-var-expand-arrows-alt; }
-.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }
-.@{fa-css-prefix}-external-link-alt:before { content: @fa-var-external-link-alt; }
-.@{fa-css-prefix}-external-link-square-alt:before { content: @fa-var-external-link-square-alt; }
-.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }
-.@{fa-css-prefix}-eye-dropper:before { content: @fa-var-eye-dropper; }
-.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }
-.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }
-.@{fa-css-prefix}-facebook-f:before { content: @fa-var-facebook-f; }
-.@{fa-css-prefix}-facebook-messenger:before { content: @fa-var-facebook-messenger; }
-.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }
-.@{fa-css-prefix}-fan:before { content: @fa-var-fan; }
-.@{fa-css-prefix}-fantasy-flight-games:before { content: @fa-var-fantasy-flight-games; }
-.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }
-.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }
-.@{fa-css-prefix}-faucet:before { content: @fa-var-faucet; }
-.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }
-.@{fa-css-prefix}-feather:before { content: @fa-var-feather; }
-.@{fa-css-prefix}-feather-alt:before { content: @fa-var-feather-alt; }
-.@{fa-css-prefix}-fedex:before { content: @fa-var-fedex; }
-.@{fa-css-prefix}-fedora:before { content: @fa-var-fedora; }
-.@{fa-css-prefix}-female:before { content: @fa-var-female; }
-.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }
-.@{fa-css-prefix}-figma:before { content: @fa-var-figma; }
-.@{fa-css-prefix}-file:before { content: @fa-var-file; }
-.@{fa-css-prefix}-file-alt:before { content: @fa-var-file-alt; }
-.@{fa-css-prefix}-file-archive:before { content: @fa-var-file-archive; }
-.@{fa-css-prefix}-file-audio:before { content: @fa-var-file-audio; }
-.@{fa-css-prefix}-file-code:before { content: @fa-var-file-code; }
-.@{fa-css-prefix}-file-contract:before { content: @fa-var-file-contract; }
-.@{fa-css-prefix}-file-csv:before { content: @fa-var-file-csv; }
-.@{fa-css-prefix}-file-download:before { content: @fa-var-file-download; }
-.@{fa-css-prefix}-file-excel:before { content: @fa-var-file-excel; }
-.@{fa-css-prefix}-file-export:before { content: @fa-var-file-export; }
-.@{fa-css-prefix}-file-image:before { content: @fa-var-file-image; }
-.@{fa-css-prefix}-file-import:before { content: @fa-var-file-import; }
-.@{fa-css-prefix}-file-invoice:before { content: @fa-var-file-invoice; }
-.@{fa-css-prefix}-file-invoice-dollar:before { content: @fa-var-file-invoice-dollar; }
-.@{fa-css-prefix}-file-medical:before { content: @fa-var-file-medical; }
-.@{fa-css-prefix}-file-medical-alt:before { content: @fa-var-file-medical-alt; }
-.@{fa-css-prefix}-file-pdf:before { content: @fa-var-file-pdf; }
-.@{fa-css-prefix}-file-powerpoint:before { content: @fa-var-file-powerpoint; }
-.@{fa-css-prefix}-file-prescription:before { content: @fa-var-file-prescription; }
-.@{fa-css-prefix}-file-signature:before { content: @fa-var-file-signature; }
-.@{fa-css-prefix}-file-upload:before { content: @fa-var-file-upload; }
-.@{fa-css-prefix}-file-video:before { content: @fa-var-file-video; }
-.@{fa-css-prefix}-file-word:before { content: @fa-var-file-word; }
-.@{fa-css-prefix}-fill:before { content: @fa-var-fill; }
-.@{fa-css-prefix}-fill-drip:before { content: @fa-var-fill-drip; }
-.@{fa-css-prefix}-film:before { content: @fa-var-film; }
-.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }
-.@{fa-css-prefix}-fingerprint:before { content: @fa-var-fingerprint; }
-.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }
-.@{fa-css-prefix}-fire-alt:before { content: @fa-var-fire-alt; }
-.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }
-.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }
-.@{fa-css-prefix}-firefox-browser:before { content: @fa-var-firefox-browser; }
-.@{fa-css-prefix}-first-aid:before { content: @fa-var-first-aid; }
-.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }
-.@{fa-css-prefix}-first-order-alt:before { content: @fa-var-first-order-alt; }
-.@{fa-css-prefix}-firstdraft:before { content: @fa-var-firstdraft; }
-.@{fa-css-prefix}-fish:before { content: @fa-var-fish; }
-.@{fa-css-prefix}-fist-raised:before { content: @fa-var-fist-raised; }
-.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }
-.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }
-.@{fa-css-prefix}-flag-usa:before { content: @fa-var-flag-usa; }
-.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }
-.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }
-.@{fa-css-prefix}-flipboard:before { content: @fa-var-flipboard; }
-.@{fa-css-prefix}-flushed:before { content: @fa-var-flushed; }
-.@{fa-css-prefix}-fly:before { content: @fa-var-fly; }
-.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }
-.@{fa-css-prefix}-folder-minus:before { content: @fa-var-folder-minus; }
-.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }
-.@{fa-css-prefix}-folder-plus:before { content: @fa-var-folder-plus; }
-.@{fa-css-prefix}-font:before { content: @fa-var-font; }
-.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }
-.@{fa-css-prefix}-font-awesome-alt:before { content: @fa-var-font-awesome-alt; }
-.@{fa-css-prefix}-font-awesome-flag:before { content: @fa-var-font-awesome-flag; }
-.@{fa-css-prefix}-font-awesome-logo-full:before { content: @fa-var-font-awesome-logo-full; }
-.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }
-.@{fa-css-prefix}-fonticons-fi:before { content: @fa-var-fonticons-fi; }
-.@{fa-css-prefix}-football-ball:before { content: @fa-var-football-ball; }
-.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }
-.@{fa-css-prefix}-fort-awesome-alt:before { content: @fa-var-fort-awesome-alt; }
-.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }
-.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }
-.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }
-.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }
-.@{fa-css-prefix}-freebsd:before { content: @fa-var-freebsd; }
-.@{fa-css-prefix}-frog:before { content: @fa-var-frog; }
-.@{fa-css-prefix}-frown:before { content: @fa-var-frown; }
-.@{fa-css-prefix}-frown-open:before { content: @fa-var-frown-open; }
-.@{fa-css-prefix}-fulcrum:before { content: @fa-var-fulcrum; }
-.@{fa-css-prefix}-funnel-dollar:before { content: @fa-var-funnel-dollar; }
-.@{fa-css-prefix}-futbol:before { content: @fa-var-futbol; }
-.@{fa-css-prefix}-galactic-republic:before { content: @fa-var-galactic-republic; }
-.@{fa-css-prefix}-galactic-senate:before { content: @fa-var-galactic-senate; }
-.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }
-.@{fa-css-prefix}-gas-pump:before { content: @fa-var-gas-pump; }
-.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }
-.@{fa-css-prefix}-gem:before { content: @fa-var-gem; }
-.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }
-.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }
-.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }
-.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }
-.@{fa-css-prefix}-ghost:before { content: @fa-var-ghost; }
-.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }
-.@{fa-css-prefix}-gifts:before { content: @fa-var-gifts; }
-.@{fa-css-prefix}-git:before { content: @fa-var-git; }
-.@{fa-css-prefix}-git-alt:before { content: @fa-var-git-alt; }
-.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }
-.@{fa-css-prefix}-github:before { content: @fa-var-github; }
-.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }
-.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }
-.@{fa-css-prefix}-gitkraken:before { content: @fa-var-gitkraken; }
-.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }
-.@{fa-css-prefix}-gitter:before { content: @fa-var-gitter; }
-.@{fa-css-prefix}-glass-cheers:before { content: @fa-var-glass-cheers; }
-.@{fa-css-prefix}-glass-martini:before { content: @fa-var-glass-martini; }
-.@{fa-css-prefix}-glass-martini-alt:before { content: @fa-var-glass-martini-alt; }
-.@{fa-css-prefix}-glass-whiskey:before { content: @fa-var-glass-whiskey; }
-.@{fa-css-prefix}-glasses:before { content: @fa-var-glasses; }
-.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }
-.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }
-.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }
-.@{fa-css-prefix}-globe-africa:before { content: @fa-var-globe-africa; }
-.@{fa-css-prefix}-globe-americas:before { content: @fa-var-globe-americas; }
-.@{fa-css-prefix}-globe-asia:before { content: @fa-var-globe-asia; }
-.@{fa-css-prefix}-globe-europe:before { content: @fa-var-globe-europe; }
-.@{fa-css-prefix}-gofore:before { content: @fa-var-gofore; }
-.@{fa-css-prefix}-golf-ball:before { content: @fa-var-golf-ball; }
-.@{fa-css-prefix}-goodreads:before { content: @fa-var-goodreads; }
-.@{fa-css-prefix}-goodreads-g:before { content: @fa-var-goodreads-g; }
-.@{fa-css-prefix}-google:before { content: @fa-var-google; }
-.@{fa-css-prefix}-google-drive:before { content: @fa-var-google-drive; }
-.@{fa-css-prefix}-google-pay:before { content: @fa-var-google-pay; }
-.@{fa-css-prefix}-google-play:before { content: @fa-var-google-play; }
-.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }
-.@{fa-css-prefix}-google-plus-g:before { content: @fa-var-google-plus-g; }
-.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }
-.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }
-.@{fa-css-prefix}-gopuram:before { content: @fa-var-gopuram; }
-.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }
-.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }
-.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }
-.@{fa-css-prefix}-greater-than:before { content: @fa-var-greater-than; }
-.@{fa-css-prefix}-greater-than-equal:before { content: @fa-var-greater-than-equal; }
-.@{fa-css-prefix}-grimace:before { content: @fa-var-grimace; }
-.@{fa-css-prefix}-grin:before { content: @fa-var-grin; }
-.@{fa-css-prefix}-grin-alt:before { content: @fa-var-grin-alt; }
-.@{fa-css-prefix}-grin-beam:before { content: @fa-var-grin-beam; }
-.@{fa-css-prefix}-grin-beam-sweat:before { content: @fa-var-grin-beam-sweat; }
-.@{fa-css-prefix}-grin-hearts:before { content: @fa-var-grin-hearts; }
-.@{fa-css-prefix}-grin-squint:before { content: @fa-var-grin-squint; }
-.@{fa-css-prefix}-grin-squint-tears:before { content: @fa-var-grin-squint-tears; }
-.@{fa-css-prefix}-grin-stars:before { content: @fa-var-grin-stars; }
-.@{fa-css-prefix}-grin-tears:before { content: @fa-var-grin-tears; }
-.@{fa-css-prefix}-grin-tongue:before { content: @fa-var-grin-tongue; }
-.@{fa-css-prefix}-grin-tongue-squint:before { content: @fa-var-grin-tongue-squint; }
-.@{fa-css-prefix}-grin-tongue-wink:before { content: @fa-var-grin-tongue-wink; }
-.@{fa-css-prefix}-grin-wink:before { content: @fa-var-grin-wink; }
-.@{fa-css-prefix}-grip-horizontal:before { content: @fa-var-grip-horizontal; }
-.@{fa-css-prefix}-grip-lines:before { content: @fa-var-grip-lines; }
-.@{fa-css-prefix}-grip-lines-vertical:before { content: @fa-var-grip-lines-vertical; }
-.@{fa-css-prefix}-grip-vertical:before { content: @fa-var-grip-vertical; }
-.@{fa-css-prefix}-gripfire:before { content: @fa-var-gripfire; }
-.@{fa-css-prefix}-grunt:before { content: @fa-var-grunt; }
-.@{fa-css-prefix}-guilded:before { content: @fa-var-guilded; }
-.@{fa-css-prefix}-guitar:before { content: @fa-var-guitar; }
-.@{fa-css-prefix}-gulp:before { content: @fa-var-gulp; }
-.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }
-.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }
-.@{fa-css-prefix}-hacker-news-square:before { content: @fa-var-hacker-news-square; }
-.@{fa-css-prefix}-hackerrank:before { content: @fa-var-hackerrank; }
-.@{fa-css-prefix}-hamburger:before { content: @fa-var-hamburger; }
-.@{fa-css-prefix}-hammer:before { content: @fa-var-hammer; }
-.@{fa-css-prefix}-hamsa:before { content: @fa-var-hamsa; }
-.@{fa-css-prefix}-hand-holding:before { content: @fa-var-hand-holding; }
-.@{fa-css-prefix}-hand-holding-heart:before { content: @fa-var-hand-holding-heart; }
-.@{fa-css-prefix}-hand-holding-medical:before { content: @fa-var-hand-holding-medical; }
-.@{fa-css-prefix}-hand-holding-usd:before { content: @fa-var-hand-holding-usd; }
-.@{fa-css-prefix}-hand-holding-water:before { content: @fa-var-hand-holding-water; }
-.@{fa-css-prefix}-hand-lizard:before { content: @fa-var-hand-lizard; }
-.@{fa-css-prefix}-hand-middle-finger:before { content: @fa-var-hand-middle-finger; }
-.@{fa-css-prefix}-hand-paper:before { content: @fa-var-hand-paper; }
-.@{fa-css-prefix}-hand-peace:before { content: @fa-var-hand-peace; }
-.@{fa-css-prefix}-hand-point-down:before { content: @fa-var-hand-point-down; }
-.@{fa-css-prefix}-hand-point-left:before { content: @fa-var-hand-point-left; }
-.@{fa-css-prefix}-hand-point-right:before { content: @fa-var-hand-point-right; }
-.@{fa-css-prefix}-hand-point-up:before { content: @fa-var-hand-point-up; }
-.@{fa-css-prefix}-hand-pointer:before { content: @fa-var-hand-pointer; }
-.@{fa-css-prefix}-hand-rock:before { content: @fa-var-hand-rock; }
-.@{fa-css-prefix}-hand-scissors:before { content: @fa-var-hand-scissors; }
-.@{fa-css-prefix}-hand-sparkles:before { content: @fa-var-hand-sparkles; }
-.@{fa-css-prefix}-hand-spock:before { content: @fa-var-hand-spock; }
-.@{fa-css-prefix}-hands:before { content: @fa-var-hands; }
-.@{fa-css-prefix}-hands-helping:before { content: @fa-var-hands-helping; }
-.@{fa-css-prefix}-hands-wash:before { content: @fa-var-hands-wash; }
-.@{fa-css-prefix}-handshake:before { content: @fa-var-handshake; }
-.@{fa-css-prefix}-handshake-alt-slash:before { content: @fa-var-handshake-alt-slash; }
-.@{fa-css-prefix}-handshake-slash:before { content: @fa-var-handshake-slash; }
-.@{fa-css-prefix}-hanukiah:before { content: @fa-var-hanukiah; }
-.@{fa-css-prefix}-hard-hat:before { content: @fa-var-hard-hat; }
-.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }
-.@{fa-css-prefix}-hat-cowboy:before { content: @fa-var-hat-cowboy; }
-.@{fa-css-prefix}-hat-cowboy-side:before { content: @fa-var-hat-cowboy-side; }
-.@{fa-css-prefix}-hat-wizard:before { content: @fa-var-hat-wizard; }
-.@{fa-css-prefix}-hdd:before { content: @fa-var-hdd; }
-.@{fa-css-prefix}-head-side-cough:before { content: @fa-var-head-side-cough; }
-.@{fa-css-prefix}-head-side-cough-slash:before { content: @fa-var-head-side-cough-slash; }
-.@{fa-css-prefix}-head-side-mask:before { content: @fa-var-head-side-mask; }
-.@{fa-css-prefix}-head-side-virus:before { content: @fa-var-head-side-virus; }
-.@{fa-css-prefix}-heading:before { content: @fa-var-heading; }
-.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }
-.@{fa-css-prefix}-headphones-alt:before { content: @fa-var-headphones-alt; }
-.@{fa-css-prefix}-headset:before { content: @fa-var-headset; }
-.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }
-.@{fa-css-prefix}-heart-broken:before { content: @fa-var-heart-broken; }
-.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }
-.@{fa-css-prefix}-helicopter:before { content: @fa-var-helicopter; }
-.@{fa-css-prefix}-highlighter:before { content: @fa-var-highlighter; }
-.@{fa-css-prefix}-hiking:before { content: @fa-var-hiking; }
-.@{fa-css-prefix}-hippo:before { content: @fa-var-hippo; }
-.@{fa-css-prefix}-hips:before { content: @fa-var-hips; }
-.@{fa-css-prefix}-hire-a-helper:before { content: @fa-var-hire-a-helper; }
-.@{fa-css-prefix}-history:before { content: @fa-var-history; }
-.@{fa-css-prefix}-hive:before { content: @fa-var-hive; }
-.@{fa-css-prefix}-hockey-puck:before { content: @fa-var-hockey-puck; }
-.@{fa-css-prefix}-holly-berry:before { content: @fa-var-holly-berry; }
-.@{fa-css-prefix}-home:before { content: @fa-var-home; }
-.@{fa-css-prefix}-hooli:before { content: @fa-var-hooli; }
-.@{fa-css-prefix}-hornbill:before { content: @fa-var-hornbill; }
-.@{fa-css-prefix}-horse:before { content: @fa-var-horse; }
-.@{fa-css-prefix}-horse-head:before { content: @fa-var-horse-head; }
-.@{fa-css-prefix}-hospital:before { content: @fa-var-hospital; }
-.@{fa-css-prefix}-hospital-alt:before { content: @fa-var-hospital-alt; }
-.@{fa-css-prefix}-hospital-symbol:before { content: @fa-var-hospital-symbol; }
-.@{fa-css-prefix}-hospital-user:before { content: @fa-var-hospital-user; }
-.@{fa-css-prefix}-hot-tub:before { content: @fa-var-hot-tub; }
-.@{fa-css-prefix}-hotdog:before { content: @fa-var-hotdog; }
-.@{fa-css-prefix}-hotel:before { content: @fa-var-hotel; }
-.@{fa-css-prefix}-hotjar:before { content: @fa-var-hotjar; }
-.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }
-.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }
-.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }
-.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }
-.@{fa-css-prefix}-house-damage:before { content: @fa-var-house-damage; }
-.@{fa-css-prefix}-house-user:before { content: @fa-var-house-user; }
-.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }
-.@{fa-css-prefix}-hryvnia:before { content: @fa-var-hryvnia; }
-.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }
-.@{fa-css-prefix}-hubspot:before { content: @fa-var-hubspot; }
-.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }
-.@{fa-css-prefix}-ice-cream:before { content: @fa-var-ice-cream; }
-.@{fa-css-prefix}-icicles:before { content: @fa-var-icicles; }
-.@{fa-css-prefix}-icons:before { content: @fa-var-icons; }
-.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }
-.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }
-.@{fa-css-prefix}-id-card-alt:before { content: @fa-var-id-card-alt; }
-.@{fa-css-prefix}-ideal:before { content: @fa-var-ideal; }
-.@{fa-css-prefix}-igloo:before { content: @fa-var-igloo; }
-.@{fa-css-prefix}-image:before { content: @fa-var-image; }
-.@{fa-css-prefix}-images:before { content: @fa-var-images; }
-.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }
-.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }
-.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }
-.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }
-.@{fa-css-prefix}-infinity:before { content: @fa-var-infinity; }
-.@{fa-css-prefix}-info:before { content: @fa-var-info; }
-.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }
-.@{fa-css-prefix}-innosoft:before { content: @fa-var-innosoft; }
-.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }
-.@{fa-css-prefix}-instagram-square:before { content: @fa-var-instagram-square; }
-.@{fa-css-prefix}-instalod:before { content: @fa-var-instalod; }
-.@{fa-css-prefix}-intercom:before { content: @fa-var-intercom; }
-.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }
-.@{fa-css-prefix}-invision:before { content: @fa-var-invision; }
-.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }
-.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }
-.@{fa-css-prefix}-itch-io:before { content: @fa-var-itch-io; }
-.@{fa-css-prefix}-itunes:before { content: @fa-var-itunes; }
-.@{fa-css-prefix}-itunes-note:before { content: @fa-var-itunes-note; }
-.@{fa-css-prefix}-java:before { content: @fa-var-java; }
-.@{fa-css-prefix}-jedi:before { content: @fa-var-jedi; }
-.@{fa-css-prefix}-jedi-order:before { content: @fa-var-jedi-order; }
-.@{fa-css-prefix}-jenkins:before { content: @fa-var-jenkins; }
-.@{fa-css-prefix}-jira:before { content: @fa-var-jira; }
-.@{fa-css-prefix}-joget:before { content: @fa-var-joget; }
-.@{fa-css-prefix}-joint:before { content: @fa-var-joint; }
-.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }
-.@{fa-css-prefix}-journal-whills:before { content: @fa-var-journal-whills; }
-.@{fa-css-prefix}-js:before { content: @fa-var-js; }
-.@{fa-css-prefix}-js-square:before { content: @fa-var-js-square; }
-.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }
-.@{fa-css-prefix}-kaaba:before { content: @fa-var-kaaba; }
-.@{fa-css-prefix}-kaggle:before { content: @fa-var-kaggle; }
-.@{fa-css-prefix}-key:before { content: @fa-var-key; }
-.@{fa-css-prefix}-keybase:before { content: @fa-var-keybase; }
-.@{fa-css-prefix}-keyboard:before { content: @fa-var-keyboard; }
-.@{fa-css-prefix}-keycdn:before { content: @fa-var-keycdn; }
-.@{fa-css-prefix}-khanda:before { content: @fa-var-khanda; }
-.@{fa-css-prefix}-kickstarter:before { content: @fa-var-kickstarter; }
-.@{fa-css-prefix}-kickstarter-k:before { content: @fa-var-kickstarter-k; }
-.@{fa-css-prefix}-kiss:before { content: @fa-var-kiss; }
-.@{fa-css-prefix}-kiss-beam:before { content: @fa-var-kiss-beam; }
-.@{fa-css-prefix}-kiss-wink-heart:before { content: @fa-var-kiss-wink-heart; }
-.@{fa-css-prefix}-kiwi-bird:before { content: @fa-var-kiwi-bird; }
-.@{fa-css-prefix}-korvue:before { content: @fa-var-korvue; }
-.@{fa-css-prefix}-landmark:before { content: @fa-var-landmark; }
-.@{fa-css-prefix}-language:before { content: @fa-var-language; }
-.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }
-.@{fa-css-prefix}-laptop-code:before { content: @fa-var-laptop-code; }
-.@{fa-css-prefix}-laptop-house:before { content: @fa-var-laptop-house; }
-.@{fa-css-prefix}-laptop-medical:before { content: @fa-var-laptop-medical; }
-.@{fa-css-prefix}-laravel:before { content: @fa-var-laravel; }
-.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }
-.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }
-.@{fa-css-prefix}-laugh:before { content: @fa-var-laugh; }
-.@{fa-css-prefix}-laugh-beam:before { content: @fa-var-laugh-beam; }
-.@{fa-css-prefix}-laugh-squint:before { content: @fa-var-laugh-squint; }
-.@{fa-css-prefix}-laugh-wink:before { content: @fa-var-laugh-wink; }
-.@{fa-css-prefix}-layer-group:before { content: @fa-var-layer-group; }
-.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }
-.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }
-.@{fa-css-prefix}-lemon:before { content: @fa-var-lemon; }
-.@{fa-css-prefix}-less:before { content: @fa-var-less; }
-.@{fa-css-prefix}-less-than:before { content: @fa-var-less-than; }
-.@{fa-css-prefix}-less-than-equal:before { content: @fa-var-less-than-equal; }
-.@{fa-css-prefix}-level-down-alt:before { content: @fa-var-level-down-alt; }
-.@{fa-css-prefix}-level-up-alt:before { content: @fa-var-level-up-alt; }
-.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }
-.@{fa-css-prefix}-lightbulb:before { content: @fa-var-lightbulb; }
-.@{fa-css-prefix}-line:before { content: @fa-var-line; }
-.@{fa-css-prefix}-link:before { content: @fa-var-link; }
-.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }
-.@{fa-css-prefix}-linkedin-in:before { content: @fa-var-linkedin-in; }
-.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }
-.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }
-.@{fa-css-prefix}-lira-sign:before { content: @fa-var-lira-sign; }
-.@{fa-css-prefix}-list:before { content: @fa-var-list; }
-.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }
-.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }
-.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }
-.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }
-.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }
-.@{fa-css-prefix}-lock-open:before { content: @fa-var-lock-open; }
-.@{fa-css-prefix}-long-arrow-alt-down:before { content: @fa-var-long-arrow-alt-down; }
-.@{fa-css-prefix}-long-arrow-alt-left:before { content: @fa-var-long-arrow-alt-left; }
-.@{fa-css-prefix}-long-arrow-alt-right:before { content: @fa-var-long-arrow-alt-right; }
-.@{fa-css-prefix}-long-arrow-alt-up:before { content: @fa-var-long-arrow-alt-up; }
-.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }
-.@{fa-css-prefix}-luggage-cart:before { content: @fa-var-luggage-cart; }
-.@{fa-css-prefix}-lungs:before { content: @fa-var-lungs; }
-.@{fa-css-prefix}-lungs-virus:before { content: @fa-var-lungs-virus; }
-.@{fa-css-prefix}-lyft:before { content: @fa-var-lyft; }
-.@{fa-css-prefix}-magento:before { content: @fa-var-magento; }
-.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }
-.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }
-.@{fa-css-prefix}-mail-bulk:before { content: @fa-var-mail-bulk; }
-.@{fa-css-prefix}-mailchimp:before { content: @fa-var-mailchimp; }
-.@{fa-css-prefix}-male:before { content: @fa-var-male; }
-.@{fa-css-prefix}-mandalorian:before { content: @fa-var-mandalorian; }
-.@{fa-css-prefix}-map:before { content: @fa-var-map; }
-.@{fa-css-prefix}-map-marked:before { content: @fa-var-map-marked; }
-.@{fa-css-prefix}-map-marked-alt:before { content: @fa-var-map-marked-alt; }
-.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }
-.@{fa-css-prefix}-map-marker-alt:before { content: @fa-var-map-marker-alt; }
-.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }
-.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }
-.@{fa-css-prefix}-markdown:before { content: @fa-var-markdown; }
-.@{fa-css-prefix}-marker:before { content: @fa-var-marker; }
-.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }
-.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }
-.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }
-.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }
-.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }
-.@{fa-css-prefix}-mask:before { content: @fa-var-mask; }
-.@{fa-css-prefix}-mastodon:before { content: @fa-var-mastodon; }
-.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }
-.@{fa-css-prefix}-mdb:before { content: @fa-var-mdb; }
-.@{fa-css-prefix}-medal:before { content: @fa-var-medal; }
-.@{fa-css-prefix}-medapps:before { content: @fa-var-medapps; }
-.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }
-.@{fa-css-prefix}-medium-m:before { content: @fa-var-medium-m; }
-.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }
-.@{fa-css-prefix}-medrt:before { content: @fa-var-medrt; }
-.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }
-.@{fa-css-prefix}-megaport:before { content: @fa-var-megaport; }
-.@{fa-css-prefix}-meh:before { content: @fa-var-meh; }
-.@{fa-css-prefix}-meh-blank:before { content: @fa-var-meh-blank; }
-.@{fa-css-prefix}-meh-rolling-eyes:before { content: @fa-var-meh-rolling-eyes; }
-.@{fa-css-prefix}-memory:before { content: @fa-var-memory; }
-.@{fa-css-prefix}-mendeley:before { content: @fa-var-mendeley; }
-.@{fa-css-prefix}-menorah:before { content: @fa-var-menorah; }
-.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }
-.@{fa-css-prefix}-meteor:before { content: @fa-var-meteor; }
-.@{fa-css-prefix}-microblog:before { content: @fa-var-microblog; }
-.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }
-.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }
-.@{fa-css-prefix}-microphone-alt:before { content: @fa-var-microphone-alt; }
-.@{fa-css-prefix}-microphone-alt-slash:before { content: @fa-var-microphone-alt-slash; }
-.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }
-.@{fa-css-prefix}-microscope:before { content: @fa-var-microscope; }
-.@{fa-css-prefix}-microsoft:before { content: @fa-var-microsoft; }
-.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }
-.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }
-.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }
-.@{fa-css-prefix}-mitten:before { content: @fa-var-mitten; }
-.@{fa-css-prefix}-mix:before { content: @fa-var-mix; }
-.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }
-.@{fa-css-prefix}-mixer:before { content: @fa-var-mixer; }
-.@{fa-css-prefix}-mizuni:before { content: @fa-var-mizuni; }
-.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }
-.@{fa-css-prefix}-mobile-alt:before { content: @fa-var-mobile-alt; }
-.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }
-.@{fa-css-prefix}-monero:before { content: @fa-var-monero; }
-.@{fa-css-prefix}-money-bill:before { content: @fa-var-money-bill; }
-.@{fa-css-prefix}-money-bill-alt:before { content: @fa-var-money-bill-alt; }
-.@{fa-css-prefix}-money-bill-wave:before { content: @fa-var-money-bill-wave; }
-.@{fa-css-prefix}-money-bill-wave-alt:before { content: @fa-var-money-bill-wave-alt; }
-.@{fa-css-prefix}-money-check:before { content: @fa-var-money-check; }
-.@{fa-css-prefix}-money-check-alt:before { content: @fa-var-money-check-alt; }
-.@{fa-css-prefix}-monument:before { content: @fa-var-monument; }
-.@{fa-css-prefix}-moon:before { content: @fa-var-moon; }
-.@{fa-css-prefix}-mortar-pestle:before { content: @fa-var-mortar-pestle; }
-.@{fa-css-prefix}-mosque:before { content: @fa-var-mosque; }
-.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }
-.@{fa-css-prefix}-mountain:before { content: @fa-var-mountain; }
-.@{fa-css-prefix}-mouse:before { content: @fa-var-mouse; }
-.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }
-.@{fa-css-prefix}-mug-hot:before { content: @fa-var-mug-hot; }
-.@{fa-css-prefix}-music:before { content: @fa-var-music; }
-.@{fa-css-prefix}-napster:before { content: @fa-var-napster; }
-.@{fa-css-prefix}-neos:before { content: @fa-var-neos; }
-.@{fa-css-prefix}-network-wired:before { content: @fa-var-network-wired; }
-.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }
-.@{fa-css-prefix}-newspaper:before { content: @fa-var-newspaper; }
-.@{fa-css-prefix}-nimblr:before { content: @fa-var-nimblr; }
-.@{fa-css-prefix}-node:before { content: @fa-var-node; }
-.@{fa-css-prefix}-node-js:before { content: @fa-var-node-js; }
-.@{fa-css-prefix}-not-equal:before { content: @fa-var-not-equal; }
-.@{fa-css-prefix}-notes-medical:before { content: @fa-var-notes-medical; }
-.@{fa-css-prefix}-npm:before { content: @fa-var-npm; }
-.@{fa-css-prefix}-ns8:before { content: @fa-var-ns8; }
-.@{fa-css-prefix}-nutritionix:before { content: @fa-var-nutritionix; }
-.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }
-.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }
-.@{fa-css-prefix}-octopus-deploy:before { content: @fa-var-octopus-deploy; }
-.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }
-.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }
-.@{fa-css-prefix}-oil-can:before { content: @fa-var-oil-can; }
-.@{fa-css-prefix}-old-republic:before { content: @fa-var-old-republic; }
-.@{fa-css-prefix}-om:before { content: @fa-var-om; }
-.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }
-.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }
-.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }
-.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }
-.@{fa-css-prefix}-orcid:before { content: @fa-var-orcid; }
-.@{fa-css-prefix}-osi:before { content: @fa-var-osi; }
-.@{fa-css-prefix}-otter:before { content: @fa-var-otter; }
-.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }
-.@{fa-css-prefix}-page4:before { content: @fa-var-page4; }
-.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }
-.@{fa-css-prefix}-pager:before { content: @fa-var-pager; }
-.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }
-.@{fa-css-prefix}-paint-roller:before { content: @fa-var-paint-roller; }
-.@{fa-css-prefix}-palette:before { content: @fa-var-palette; }
-.@{fa-css-prefix}-palfed:before { content: @fa-var-palfed; }
-.@{fa-css-prefix}-pallet:before { content: @fa-var-pallet; }
-.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }
-.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }
-.@{fa-css-prefix}-parachute-box:before { content: @fa-var-parachute-box; }
-.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }
-.@{fa-css-prefix}-parking:before { content: @fa-var-parking; }
-.@{fa-css-prefix}-passport:before { content: @fa-var-passport; }
-.@{fa-css-prefix}-pastafarianism:before { content: @fa-var-pastafarianism; }
-.@{fa-css-prefix}-paste:before { content: @fa-var-paste; }
-.@{fa-css-prefix}-patreon:before { content: @fa-var-patreon; }
-.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }
-.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }
-.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }
-.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }
-.@{fa-css-prefix}-peace:before { content: @fa-var-peace; }
-.@{fa-css-prefix}-pen:before { content: @fa-var-pen; }
-.@{fa-css-prefix}-pen-alt:before { content: @fa-var-pen-alt; }
-.@{fa-css-prefix}-pen-fancy:before { content: @fa-var-pen-fancy; }
-.@{fa-css-prefix}-pen-nib:before { content: @fa-var-pen-nib; }
-.@{fa-css-prefix}-pen-square:before { content: @fa-var-pen-square; }
-.@{fa-css-prefix}-pencil-alt:before { content: @fa-var-pencil-alt; }
-.@{fa-css-prefix}-pencil-ruler:before { content: @fa-var-pencil-ruler; }
-.@{fa-css-prefix}-penny-arcade:before { content: @fa-var-penny-arcade; }
-.@{fa-css-prefix}-people-arrows:before { content: @fa-var-people-arrows; }
-.@{fa-css-prefix}-people-carry:before { content: @fa-var-people-carry; }
-.@{fa-css-prefix}-pepper-hot:before { content: @fa-var-pepper-hot; }
-.@{fa-css-prefix}-perbyte:before { content: @fa-var-perbyte; }
-.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }
-.@{fa-css-prefix}-percentage:before { content: @fa-var-percentage; }
-.@{fa-css-prefix}-periscope:before { content: @fa-var-periscope; }
-.@{fa-css-prefix}-person-booth:before { content: @fa-var-person-booth; }
-.@{fa-css-prefix}-phabricator:before { content: @fa-var-phabricator; }
-.@{fa-css-prefix}-phoenix-framework:before { content: @fa-var-phoenix-framework; }
-.@{fa-css-prefix}-phoenix-squadron:before { content: @fa-var-phoenix-squadron; }
-.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }
-.@{fa-css-prefix}-phone-alt:before { content: @fa-var-phone-alt; }
-.@{fa-css-prefix}-phone-slash:before { content: @fa-var-phone-slash; }
-.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }
-.@{fa-css-prefix}-phone-square-alt:before { content: @fa-var-phone-square-alt; }
-.@{fa-css-prefix}-phone-volume:before { content: @fa-var-phone-volume; }
-.@{fa-css-prefix}-photo-video:before { content: @fa-var-photo-video; }
-.@{fa-css-prefix}-php:before { content: @fa-var-php; }
-.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }
-.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }
-.@{fa-css-prefix}-pied-piper-hat:before { content: @fa-var-pied-piper-hat; }
-.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }
-.@{fa-css-prefix}-pied-piper-square:before { content: @fa-var-pied-piper-square; }
-.@{fa-css-prefix}-piggy-bank:before { content: @fa-var-piggy-bank; }
-.@{fa-css-prefix}-pills:before { content: @fa-var-pills; }
-.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }
-.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }
-.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }
-.@{fa-css-prefix}-pizza-slice:before { content: @fa-var-pizza-slice; }
-.@{fa-css-prefix}-place-of-worship:before { content: @fa-var-place-of-worship; }
-.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }
-.@{fa-css-prefix}-plane-arrival:before { content: @fa-var-plane-arrival; }
-.@{fa-css-prefix}-plane-departure:before { content: @fa-var-plane-departure; }
-.@{fa-css-prefix}-plane-slash:before { content: @fa-var-plane-slash; }
-.@{fa-css-prefix}-play:before { content: @fa-var-play; }
-.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }
-.@{fa-css-prefix}-playstation:before { content: @fa-var-playstation; }
-.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }
-.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }
-.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }
-.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }
-.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }
-.@{fa-css-prefix}-poll:before { content: @fa-var-poll; }
-.@{fa-css-prefix}-poll-h:before { content: @fa-var-poll-h; }
-.@{fa-css-prefix}-poo:before { content: @fa-var-poo; }
-.@{fa-css-prefix}-poo-storm:before { content: @fa-var-poo-storm; }
-.@{fa-css-prefix}-poop:before { content: @fa-var-poop; }
-.@{fa-css-prefix}-portrait:before { content: @fa-var-portrait; }
-.@{fa-css-prefix}-pound-sign:before { content: @fa-var-pound-sign; }
-.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }
-.@{fa-css-prefix}-pray:before { content: @fa-var-pray; }
-.@{fa-css-prefix}-praying-hands:before { content: @fa-var-praying-hands; }
-.@{fa-css-prefix}-prescription:before { content: @fa-var-prescription; }
-.@{fa-css-prefix}-prescription-bottle:before { content: @fa-var-prescription-bottle; }
-.@{fa-css-prefix}-prescription-bottle-alt:before { content: @fa-var-prescription-bottle-alt; }
-.@{fa-css-prefix}-print:before { content: @fa-var-print; }
-.@{fa-css-prefix}-procedures:before { content: @fa-var-procedures; }
-.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }
-.@{fa-css-prefix}-project-diagram:before { content: @fa-var-project-diagram; }
-.@{fa-css-prefix}-pump-medical:before { content: @fa-var-pump-medical; }
-.@{fa-css-prefix}-pump-soap:before { content: @fa-var-pump-soap; }
-.@{fa-css-prefix}-pushed:before { content: @fa-var-pushed; }
-.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }
-.@{fa-css-prefix}-python:before { content: @fa-var-python; }
-.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }
-.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }
-.@{fa-css-prefix}-question:before { content: @fa-var-question; }
-.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }
-.@{fa-css-prefix}-quidditch:before { content: @fa-var-quidditch; }
-.@{fa-css-prefix}-quinscape:before { content: @fa-var-quinscape; }
-.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }
-.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }
-.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }
-.@{fa-css-prefix}-quran:before { content: @fa-var-quran; }
-.@{fa-css-prefix}-r-project:before { content: @fa-var-r-project; }
-.@{fa-css-prefix}-radiation:before { content: @fa-var-radiation; }
-.@{fa-css-prefix}-radiation-alt:before { content: @fa-var-radiation-alt; }
-.@{fa-css-prefix}-rainbow:before { content: @fa-var-rainbow; }
-.@{fa-css-prefix}-random:before { content: @fa-var-random; }
-.@{fa-css-prefix}-raspberry-pi:before { content: @fa-var-raspberry-pi; }
-.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }
-.@{fa-css-prefix}-react:before { content: @fa-var-react; }
-.@{fa-css-prefix}-reacteurope:before { content: @fa-var-reacteurope; }
-.@{fa-css-prefix}-readme:before { content: @fa-var-readme; }
-.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }
-.@{fa-css-prefix}-receipt:before { content: @fa-var-receipt; }
-.@{fa-css-prefix}-record-vinyl:before { content: @fa-var-record-vinyl; }
-.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }
-.@{fa-css-prefix}-red-river:before { content: @fa-var-red-river; }
-.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }
-.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }
-.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }
-.@{fa-css-prefix}-redhat:before { content: @fa-var-redhat; }
-.@{fa-css-prefix}-redo:before { content: @fa-var-redo; }
-.@{fa-css-prefix}-redo-alt:before { content: @fa-var-redo-alt; }
-.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }
-.@{fa-css-prefix}-remove-format:before { content: @fa-var-remove-format; }
-.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }
-.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }
-.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }
-.@{fa-css-prefix}-replyd:before { content: @fa-var-replyd; }
-.@{fa-css-prefix}-republican:before { content: @fa-var-republican; }
-.@{fa-css-prefix}-researchgate:before { content: @fa-var-researchgate; }
-.@{fa-css-prefix}-resolving:before { content: @fa-var-resolving; }
-.@{fa-css-prefix}-restroom:before { content: @fa-var-restroom; }
-.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }
-.@{fa-css-prefix}-rev:before { content: @fa-var-rev; }
-.@{fa-css-prefix}-ribbon:before { content: @fa-var-ribbon; }
-.@{fa-css-prefix}-ring:before { content: @fa-var-ring; }
-.@{fa-css-prefix}-road:before { content: @fa-var-road; }
-.@{fa-css-prefix}-robot:before { content: @fa-var-robot; }
-.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }
-.@{fa-css-prefix}-rocketchat:before { content: @fa-var-rocketchat; }
-.@{fa-css-prefix}-rockrms:before { content: @fa-var-rockrms; }
-.@{fa-css-prefix}-route:before { content: @fa-var-route; }
-.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }
-.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }
-.@{fa-css-prefix}-ruble-sign:before { content: @fa-var-ruble-sign; }
-.@{fa-css-prefix}-ruler:before { content: @fa-var-ruler; }
-.@{fa-css-prefix}-ruler-combined:before { content: @fa-var-ruler-combined; }
-.@{fa-css-prefix}-ruler-horizontal:before { content: @fa-var-ruler-horizontal; }
-.@{fa-css-prefix}-ruler-vertical:before { content: @fa-var-ruler-vertical; }
-.@{fa-css-prefix}-running:before { content: @fa-var-running; }
-.@{fa-css-prefix}-rupee-sign:before { content: @fa-var-rupee-sign; }
-.@{fa-css-prefix}-rust:before { content: @fa-var-rust; }
-.@{fa-css-prefix}-sad-cry:before { content: @fa-var-sad-cry; }
-.@{fa-css-prefix}-sad-tear:before { content: @fa-var-sad-tear; }
-.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }
-.@{fa-css-prefix}-salesforce:before { content: @fa-var-salesforce; }
-.@{fa-css-prefix}-sass:before { content: @fa-var-sass; }
-.@{fa-css-prefix}-satellite:before { content: @fa-var-satellite; }
-.@{fa-css-prefix}-satellite-dish:before { content: @fa-var-satellite-dish; }
-.@{fa-css-prefix}-save:before { content: @fa-var-save; }
-.@{fa-css-prefix}-schlix:before { content: @fa-var-schlix; }
-.@{fa-css-prefix}-school:before { content: @fa-var-school; }
-.@{fa-css-prefix}-screwdriver:before { content: @fa-var-screwdriver; }
-.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }
-.@{fa-css-prefix}-scroll:before { content: @fa-var-scroll; }
-.@{fa-css-prefix}-sd-card:before { content: @fa-var-sd-card; }
-.@{fa-css-prefix}-search:before { content: @fa-var-search; }
-.@{fa-css-prefix}-search-dollar:before { content: @fa-var-search-dollar; }
-.@{fa-css-prefix}-search-location:before { content: @fa-var-search-location; }
-.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }
-.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }
-.@{fa-css-prefix}-searchengin:before { content: @fa-var-searchengin; }
-.@{fa-css-prefix}-seedling:before { content: @fa-var-seedling; }
-.@{fa-css-prefix}-sellcast:before { content: @fa-var-sellcast; }
-.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }
-.@{fa-css-prefix}-server:before { content: @fa-var-server; }
-.@{fa-css-prefix}-servicestack:before { content: @fa-var-servicestack; }
-.@{fa-css-prefix}-shapes:before { content: @fa-var-shapes; }
-.@{fa-css-prefix}-share:before { content: @fa-var-share; }
-.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }
-.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }
-.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }
-.@{fa-css-prefix}-shekel-sign:before { content: @fa-var-shekel-sign; }
-.@{fa-css-prefix}-shield-alt:before { content: @fa-var-shield-alt; }
-.@{fa-css-prefix}-shield-virus:before { content: @fa-var-shield-virus; }
-.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }
-.@{fa-css-prefix}-shipping-fast:before { content: @fa-var-shipping-fast; }
-.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }
-.@{fa-css-prefix}-shoe-prints:before { content: @fa-var-shoe-prints; }
-.@{fa-css-prefix}-shopify:before { content: @fa-var-shopify; }
-.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }
-.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }
-.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }
-.@{fa-css-prefix}-shopware:before { content: @fa-var-shopware; }
-.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }
-.@{fa-css-prefix}-shuttle-van:before { content: @fa-var-shuttle-van; }
-.@{fa-css-prefix}-sign:before { content: @fa-var-sign; }
-.@{fa-css-prefix}-sign-in-alt:before { content: @fa-var-sign-in-alt; }
-.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }
-.@{fa-css-prefix}-sign-out-alt:before { content: @fa-var-sign-out-alt; }
-.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }
-.@{fa-css-prefix}-signature:before { content: @fa-var-signature; }
-.@{fa-css-prefix}-sim-card:before { content: @fa-var-sim-card; }
-.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }
-.@{fa-css-prefix}-sink:before { content: @fa-var-sink; }
-.@{fa-css-prefix}-sistrix:before { content: @fa-var-sistrix; }
-.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }
-.@{fa-css-prefix}-sith:before { content: @fa-var-sith; }
-.@{fa-css-prefix}-skating:before { content: @fa-var-skating; }
-.@{fa-css-prefix}-sketch:before { content: @fa-var-sketch; }
-.@{fa-css-prefix}-skiing:before { content: @fa-var-skiing; }
-.@{fa-css-prefix}-skiing-nordic:before { content: @fa-var-skiing-nordic; }
-.@{fa-css-prefix}-skull:before { content: @fa-var-skull; }
-.@{fa-css-prefix}-skull-crossbones:before { content: @fa-var-skull-crossbones; }
-.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }
-.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }
-.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }
-.@{fa-css-prefix}-slack-hash:before { content: @fa-var-slack-hash; }
-.@{fa-css-prefix}-slash:before { content: @fa-var-slash; }
-.@{fa-css-prefix}-sleigh:before { content: @fa-var-sleigh; }
-.@{fa-css-prefix}-sliders-h:before { content: @fa-var-sliders-h; }
-.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }
-.@{fa-css-prefix}-smile:before { content: @fa-var-smile; }
-.@{fa-css-prefix}-smile-beam:before { content: @fa-var-smile-beam; }
-.@{fa-css-prefix}-smile-wink:before { content: @fa-var-smile-wink; }
-.@{fa-css-prefix}-smog:before { content: @fa-var-smog; }
-.@{fa-css-prefix}-smoking:before { content: @fa-var-smoking; }
-.@{fa-css-prefix}-smoking-ban:before { content: @fa-var-smoking-ban; }
-.@{fa-css-prefix}-sms:before { content: @fa-var-sms; }
-.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }
-.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }
-.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }
-.@{fa-css-prefix}-snowboarding:before { content: @fa-var-snowboarding; }
-.@{fa-css-prefix}-snowflake:before { content: @fa-var-snowflake; }
-.@{fa-css-prefix}-snowman:before { content: @fa-var-snowman; }
-.@{fa-css-prefix}-snowplow:before { content: @fa-var-snowplow; }
-.@{fa-css-prefix}-soap:before { content: @fa-var-soap; }
-.@{fa-css-prefix}-socks:before { content: @fa-var-socks; }
-.@{fa-css-prefix}-solar-panel:before { content: @fa-var-solar-panel; }
-.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }
-.@{fa-css-prefix}-sort-alpha-down:before { content: @fa-var-sort-alpha-down; }
-.@{fa-css-prefix}-sort-alpha-down-alt:before { content: @fa-var-sort-alpha-down-alt; }
-.@{fa-css-prefix}-sort-alpha-up:before { content: @fa-var-sort-alpha-up; }
-.@{fa-css-prefix}-sort-alpha-up-alt:before { content: @fa-var-sort-alpha-up-alt; }
-.@{fa-css-prefix}-sort-amount-down:before { content: @fa-var-sort-amount-down; }
-.@{fa-css-prefix}-sort-amount-down-alt:before { content: @fa-var-sort-amount-down-alt; }
-.@{fa-css-prefix}-sort-amount-up:before { content: @fa-var-sort-amount-up; }
-.@{fa-css-prefix}-sort-amount-up-alt:before { content: @fa-var-sort-amount-up-alt; }
-.@{fa-css-prefix}-sort-down:before { content: @fa-var-sort-down; }
-.@{fa-css-prefix}-sort-numeric-down:before { content: @fa-var-sort-numeric-down; }
-.@{fa-css-prefix}-sort-numeric-down-alt:before { content: @fa-var-sort-numeric-down-alt; }
-.@{fa-css-prefix}-sort-numeric-up:before { content: @fa-var-sort-numeric-up; }
-.@{fa-css-prefix}-sort-numeric-up-alt:before { content: @fa-var-sort-numeric-up-alt; }
-.@{fa-css-prefix}-sort-up:before { content: @fa-var-sort-up; }
-.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }
-.@{fa-css-prefix}-sourcetree:before { content: @fa-var-sourcetree; }
-.@{fa-css-prefix}-spa:before { content: @fa-var-spa; }
-.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }
-.@{fa-css-prefix}-speakap:before { content: @fa-var-speakap; }
-.@{fa-css-prefix}-speaker-deck:before { content: @fa-var-speaker-deck; }
-.@{fa-css-prefix}-spell-check:before { content: @fa-var-spell-check; }
-.@{fa-css-prefix}-spider:before { content: @fa-var-spider; }
-.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }
-.@{fa-css-prefix}-splotch:before { content: @fa-var-splotch; }
-.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }
-.@{fa-css-prefix}-spray-can:before { content: @fa-var-spray-can; }
-.@{fa-css-prefix}-square:before { content: @fa-var-square; }
-.@{fa-css-prefix}-square-full:before { content: @fa-var-square-full; }
-.@{fa-css-prefix}-square-root-alt:before { content: @fa-var-square-root-alt; }
-.@{fa-css-prefix}-squarespace:before { content: @fa-var-squarespace; }
-.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }
-.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }
-.@{fa-css-prefix}-stackpath:before { content: @fa-var-stackpath; }
-.@{fa-css-prefix}-stamp:before { content: @fa-var-stamp; }
-.@{fa-css-prefix}-star:before { content: @fa-var-star; }
-.@{fa-css-prefix}-star-and-crescent:before { content: @fa-var-star-and-crescent; }
-.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }
-.@{fa-css-prefix}-star-half-alt:before { content: @fa-var-star-half-alt; }
-.@{fa-css-prefix}-star-of-david:before { content: @fa-var-star-of-david; }
-.@{fa-css-prefix}-star-of-life:before { content: @fa-var-star-of-life; }
-.@{fa-css-prefix}-staylinked:before { content: @fa-var-staylinked; }
-.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }
-.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }
-.@{fa-css-prefix}-steam-symbol:before { content: @fa-var-steam-symbol; }
-.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }
-.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }
-.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }
-.@{fa-css-prefix}-sticker-mule:before { content: @fa-var-sticker-mule; }
-.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }
-.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }
-.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }
-.@{fa-css-prefix}-stopwatch:before { content: @fa-var-stopwatch; }
-.@{fa-css-prefix}-stopwatch-20:before { content: @fa-var-stopwatch-20; }
-.@{fa-css-prefix}-store:before { content: @fa-var-store; }
-.@{fa-css-prefix}-store-alt:before { content: @fa-var-store-alt; }
-.@{fa-css-prefix}-store-alt-slash:before { content: @fa-var-store-alt-slash; }
-.@{fa-css-prefix}-store-slash:before { content: @fa-var-store-slash; }
-.@{fa-css-prefix}-strava:before { content: @fa-var-strava; }
-.@{fa-css-prefix}-stream:before { content: @fa-var-stream; }
-.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }
-.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }
-.@{fa-css-prefix}-stripe:before { content: @fa-var-stripe; }
-.@{fa-css-prefix}-stripe-s:before { content: @fa-var-stripe-s; }
-.@{fa-css-prefix}-stroopwafel:before { content: @fa-var-stroopwafel; }
-.@{fa-css-prefix}-studiovinari:before { content: @fa-var-studiovinari; }
-.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }
-.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }
-.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }
-.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }
-.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }
-.@{fa-css-prefix}-suitcase-rolling:before { content: @fa-var-suitcase-rolling; }
-.@{fa-css-prefix}-sun:before { content: @fa-var-sun; }
-.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }
-.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }
-.@{fa-css-prefix}-supple:before { content: @fa-var-supple; }
-.@{fa-css-prefix}-surprise:before { content: @fa-var-surprise; }
-.@{fa-css-prefix}-suse:before { content: @fa-var-suse; }
-.@{fa-css-prefix}-swatchbook:before { content: @fa-var-swatchbook; }
-.@{fa-css-prefix}-swift:before { content: @fa-var-swift; }
-.@{fa-css-prefix}-swimmer:before { content: @fa-var-swimmer; }
-.@{fa-css-prefix}-swimming-pool:before { content: @fa-var-swimming-pool; }
-.@{fa-css-prefix}-symfony:before { content: @fa-var-symfony; }
-.@{fa-css-prefix}-synagogue:before { content: @fa-var-synagogue; }
-.@{fa-css-prefix}-sync:before { content: @fa-var-sync; }
-.@{fa-css-prefix}-sync-alt:before { content: @fa-var-sync-alt; }
-.@{fa-css-prefix}-syringe:before { content: @fa-var-syringe; }
-.@{fa-css-prefix}-table:before { content: @fa-var-table; }
-.@{fa-css-prefix}-table-tennis:before { content: @fa-var-table-tennis; }
-.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }
-.@{fa-css-prefix}-tablet-alt:before { content: @fa-var-tablet-alt; }
-.@{fa-css-prefix}-tablets:before { content: @fa-var-tablets; }
-.@{fa-css-prefix}-tachometer-alt:before { content: @fa-var-tachometer-alt; }
-.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }
-.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }
-.@{fa-css-prefix}-tape:before { content: @fa-var-tape; }
-.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }
-.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }
-.@{fa-css-prefix}-teamspeak:before { content: @fa-var-teamspeak; }
-.@{fa-css-prefix}-teeth:before { content: @fa-var-teeth; }
-.@{fa-css-prefix}-teeth-open:before { content: @fa-var-teeth-open; }
-.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }
-.@{fa-css-prefix}-telegram-plane:before { content: @fa-var-telegram-plane; }
-.@{fa-css-prefix}-temperature-high:before { content: @fa-var-temperature-high; }
-.@{fa-css-prefix}-temperature-low:before { content: @fa-var-temperature-low; }
-.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }
-.@{fa-css-prefix}-tenge:before { content: @fa-var-tenge; }
-.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }
-.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }
-.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }
-.@{fa-css-prefix}-th:before { content: @fa-var-th; }
-.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }
-.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }
-.@{fa-css-prefix}-the-red-yeti:before { content: @fa-var-the-red-yeti; }
-.@{fa-css-prefix}-theater-masks:before { content: @fa-var-theater-masks; }
-.@{fa-css-prefix}-themeco:before { content: @fa-var-themeco; }
-.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }
-.@{fa-css-prefix}-thermometer:before { content: @fa-var-thermometer; }
-.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }
-.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }
-.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }
-.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }
-.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }
-.@{fa-css-prefix}-think-peaks:before { content: @fa-var-think-peaks; }
-.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }
-.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }
-.@{fa-css-prefix}-thumbtack:before { content: @fa-var-thumbtack; }
-.@{fa-css-prefix}-ticket-alt:before { content: @fa-var-ticket-alt; }
-.@{fa-css-prefix}-tiktok:before { content: @fa-var-tiktok; }
-.@{fa-css-prefix}-times:before { content: @fa-var-times; }
-.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }
-.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }
-.@{fa-css-prefix}-tint-slash:before { content: @fa-var-tint-slash; }
-.@{fa-css-prefix}-tired:before { content: @fa-var-tired; }
-.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }
-.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }
-.@{fa-css-prefix}-toilet:before { content: @fa-var-toilet; }
-.@{fa-css-prefix}-toilet-paper:before { content: @fa-var-toilet-paper; }
-.@{fa-css-prefix}-toilet-paper-slash:before { content: @fa-var-toilet-paper-slash; }
-.@{fa-css-prefix}-toolbox:before { content: @fa-var-toolbox; }
-.@{fa-css-prefix}-tools:before { content: @fa-var-tools; }
-.@{fa-css-prefix}-tooth:before { content: @fa-var-tooth; }
-.@{fa-css-prefix}-torah:before { content: @fa-var-torah; }
-.@{fa-css-prefix}-torii-gate:before { content: @fa-var-torii-gate; }
-.@{fa-css-prefix}-tractor:before { content: @fa-var-tractor; }
-.@{fa-css-prefix}-trade-federation:before { content: @fa-var-trade-federation; }
-.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }
-.@{fa-css-prefix}-traffic-light:before { content: @fa-var-traffic-light; }
-.@{fa-css-prefix}-trailer:before { content: @fa-var-trailer; }
-.@{fa-css-prefix}-train:before { content: @fa-var-train; }
-.@{fa-css-prefix}-tram:before { content: @fa-var-tram; }
-.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }
-.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }
-.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }
-.@{fa-css-prefix}-trash-alt:before { content: @fa-var-trash-alt; }
-.@{fa-css-prefix}-trash-restore:before { content: @fa-var-trash-restore; }
-.@{fa-css-prefix}-trash-restore-alt:before { content: @fa-var-trash-restore-alt; }
-.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }
-.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }
-.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }
-.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }
-.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }
-.@{fa-css-prefix}-truck-loading:before { content: @fa-var-truck-loading; }
-.@{fa-css-prefix}-truck-monster:before { content: @fa-var-truck-monster; }
-.@{fa-css-prefix}-truck-moving:before { content: @fa-var-truck-moving; }
-.@{fa-css-prefix}-truck-pickup:before { content: @fa-var-truck-pickup; }
-.@{fa-css-prefix}-tshirt:before { content: @fa-var-tshirt; }
-.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }
-.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }
-.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }
-.@{fa-css-prefix}-tv:before { content: @fa-var-tv; }
-.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }
-.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }
-.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }
-.@{fa-css-prefix}-typo3:before { content: @fa-var-typo3; }
-.@{fa-css-prefix}-uber:before { content: @fa-var-uber; }
-.@{fa-css-prefix}-ubuntu:before { content: @fa-var-ubuntu; }
-.@{fa-css-prefix}-uikit:before { content: @fa-var-uikit; }
-.@{fa-css-prefix}-umbraco:before { content: @fa-var-umbraco; }
-.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }
-.@{fa-css-prefix}-umbrella-beach:before { content: @fa-var-umbrella-beach; }
-.@{fa-css-prefix}-uncharted:before { content: @fa-var-uncharted; }
-.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }
-.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }
-.@{fa-css-prefix}-undo-alt:before { content: @fa-var-undo-alt; }
-.@{fa-css-prefix}-uniregistry:before { content: @fa-var-uniregistry; }
-.@{fa-css-prefix}-unity:before { content: @fa-var-unity; }
-.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }
-.@{fa-css-prefix}-university:before { content: @fa-var-university; }
-.@{fa-css-prefix}-unlink:before { content: @fa-var-unlink; }
-.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }
-.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }
-.@{fa-css-prefix}-unsplash:before { content: @fa-var-unsplash; }
-.@{fa-css-prefix}-untappd:before { content: @fa-var-untappd; }
-.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }
-.@{fa-css-prefix}-ups:before { content: @fa-var-ups; }
-.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }
-.@{fa-css-prefix}-user:before { content: @fa-var-user; }
-.@{fa-css-prefix}-user-alt:before { content: @fa-var-user-alt; }
-.@{fa-css-prefix}-user-alt-slash:before { content: @fa-var-user-alt-slash; }
-.@{fa-css-prefix}-user-astronaut:before { content: @fa-var-user-astronaut; }
-.@{fa-css-prefix}-user-check:before { content: @fa-var-user-check; }
-.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }
-.@{fa-css-prefix}-user-clock:before { content: @fa-var-user-clock; }
-.@{fa-css-prefix}-user-cog:before { content: @fa-var-user-cog; }
-.@{fa-css-prefix}-user-edit:before { content: @fa-var-user-edit; }
-.@{fa-css-prefix}-user-friends:before { content: @fa-var-user-friends; }
-.@{fa-css-prefix}-user-graduate:before { content: @fa-var-user-graduate; }
-.@{fa-css-prefix}-user-injured:before { content: @fa-var-user-injured; }
-.@{fa-css-prefix}-user-lock:before { content: @fa-var-user-lock; }
-.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }
-.@{fa-css-prefix}-user-minus:before { content: @fa-var-user-minus; }
-.@{fa-css-prefix}-user-ninja:before { content: @fa-var-user-ninja; }
-.@{fa-css-prefix}-user-nurse:before { content: @fa-var-user-nurse; }
-.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }
-.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }
-.@{fa-css-prefix}-user-shield:before { content: @fa-var-user-shield; }
-.@{fa-css-prefix}-user-slash:before { content: @fa-var-user-slash; }
-.@{fa-css-prefix}-user-tag:before { content: @fa-var-user-tag; }
-.@{fa-css-prefix}-user-tie:before { content: @fa-var-user-tie; }
-.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }
-.@{fa-css-prefix}-users:before { content: @fa-var-users; }
-.@{fa-css-prefix}-users-cog:before { content: @fa-var-users-cog; }
-.@{fa-css-prefix}-users-slash:before { content: @fa-var-users-slash; }
-.@{fa-css-prefix}-usps:before { content: @fa-var-usps; }
-.@{fa-css-prefix}-ussunnah:before { content: @fa-var-ussunnah; }
-.@{fa-css-prefix}-utensil-spoon:before { content: @fa-var-utensil-spoon; }
-.@{fa-css-prefix}-utensils:before { content: @fa-var-utensils; }
-.@{fa-css-prefix}-vaadin:before { content: @fa-var-vaadin; }
-.@{fa-css-prefix}-vector-square:before { content: @fa-var-vector-square; }
-.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }
-.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }
-.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }
-.@{fa-css-prefix}-vest:before { content: @fa-var-vest; }
-.@{fa-css-prefix}-vest-patches:before { content: @fa-var-vest-patches; }
-.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }
-.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }
-.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }
-.@{fa-css-prefix}-vial:before { content: @fa-var-vial; }
-.@{fa-css-prefix}-vials:before { content: @fa-var-vials; }
-.@{fa-css-prefix}-viber:before { content: @fa-var-viber; }
-.@{fa-css-prefix}-video:before { content: @fa-var-video; }
-.@{fa-css-prefix}-video-slash:before { content: @fa-var-video-slash; }
-.@{fa-css-prefix}-vihara:before { content: @fa-var-vihara; }
-.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }
-.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }
-.@{fa-css-prefix}-vimeo-v:before { content: @fa-var-vimeo-v; }
-.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }
-.@{fa-css-prefix}-virus:before { content: @fa-var-virus; }
-.@{fa-css-prefix}-virus-slash:before { content: @fa-var-virus-slash; }
-.@{fa-css-prefix}-viruses:before { content: @fa-var-viruses; }
-.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }
-.@{fa-css-prefix}-vnv:before { content: @fa-var-vnv; }
-.@{fa-css-prefix}-voicemail:before { content: @fa-var-voicemail; }
-.@{fa-css-prefix}-volleyball-ball:before { content: @fa-var-volleyball-ball; }
-.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }
-.@{fa-css-prefix}-volume-mute:before { content: @fa-var-volume-mute; }
-.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }
-.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }
-.@{fa-css-prefix}-vote-yea:before { content: @fa-var-vote-yea; }
-.@{fa-css-prefix}-vr-cardboard:before { content: @fa-var-vr-cardboard; }
-.@{fa-css-prefix}-vuejs:before { content: @fa-var-vuejs; }
-.@{fa-css-prefix}-walking:before { content: @fa-var-walking; }
-.@{fa-css-prefix}-wallet:before { content: @fa-var-wallet; }
-.@{fa-css-prefix}-warehouse:before { content: @fa-var-warehouse; }
-.@{fa-css-prefix}-watchman-monitoring:before { content: @fa-var-watchman-monitoring; }
-.@{fa-css-prefix}-water:before { content: @fa-var-water; }
-.@{fa-css-prefix}-wave-square:before { content: @fa-var-wave-square; }
-.@{fa-css-prefix}-waze:before { content: @fa-var-waze; }
-.@{fa-css-prefix}-weebly:before { content: @fa-var-weebly; }
-.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }
-.@{fa-css-prefix}-weight:before { content: @fa-var-weight; }
-.@{fa-css-prefix}-weight-hanging:before { content: @fa-var-weight-hanging; }
-.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }
-.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }
-.@{fa-css-prefix}-whatsapp-square:before { content: @fa-var-whatsapp-square; }
-.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }
-.@{fa-css-prefix}-whmcs:before { content: @fa-var-whmcs; }
-.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }
-.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }
-.@{fa-css-prefix}-wind:before { content: @fa-var-wind; }
-.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }
-.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }
-.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }
-.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }
-.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }
-.@{fa-css-prefix}-wine-bottle:before { content: @fa-var-wine-bottle; }
-.@{fa-css-prefix}-wine-glass:before { content: @fa-var-wine-glass; }
-.@{fa-css-prefix}-wine-glass-alt:before { content: @fa-var-wine-glass-alt; }
-.@{fa-css-prefix}-wix:before { content: @fa-var-wix; }
-.@{fa-css-prefix}-wizards-of-the-coast:before { content: @fa-var-wizards-of-the-coast; }
-.@{fa-css-prefix}-wodu:before { content: @fa-var-wodu; }
-.@{fa-css-prefix}-wolf-pack-battalion:before { content: @fa-var-wolf-pack-battalion; }
-.@{fa-css-prefix}-won-sign:before { content: @fa-var-won-sign; }
-.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }
-.@{fa-css-prefix}-wordpress-simple:before { content: @fa-var-wordpress-simple; }
-.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }
-.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }
-.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }
-.@{fa-css-prefix}-wpressr:before { content: @fa-var-wpressr; }
-.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }
-.@{fa-css-prefix}-x-ray:before { content: @fa-var-x-ray; }
-.@{fa-css-prefix}-xbox:before { content: @fa-var-xbox; }
-.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }
-.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }
-.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }
-.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }
-.@{fa-css-prefix}-yammer:before { content: @fa-var-yammer; }
-.@{fa-css-prefix}-yandex:before { content: @fa-var-yandex; }
-.@{fa-css-prefix}-yandex-international:before { content: @fa-var-yandex-international; }
-.@{fa-css-prefix}-yarn:before { content: @fa-var-yarn; }
-.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }
-.@{fa-css-prefix}-yen-sign:before { content: @fa-var-yen-sign; }
-.@{fa-css-prefix}-yin-yang:before { content: @fa-var-yin-yang; }
-.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }
-.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }
-.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }
-.@{fa-css-prefix}-zhihu:before { content: @fa-var-zhihu; }
diff --git a/public/vendor/fontawesome/less/_larger.less b/public/vendor/fontawesome/less/_larger.less
deleted file mode 100644
index 6cbb1ec6ec..0000000000
--- a/public/vendor/fontawesome/less/_larger.less
+++ /dev/null
@@ -1,27 +0,0 @@
-// Icon Sizes
-// -------------------------
-
-.larger(@factor) when (@factor > 0) {
-  .larger((@factor - 1));
-
-  .@{fa-css-prefix}-@{factor}x {
-    font-size: (@factor * 1em);
-  }
-}
-
-/* makes the font 33% larger relative to the icon container */
-.@{fa-css-prefix}-lg {
-  font-size: (4em / 3);
-  line-height: (3em / 4);
-  vertical-align: -.0667em;
-}
-
-.@{fa-css-prefix}-xs {
-  font-size: .75em;
-}
-
-.@{fa-css-prefix}-sm {
-  font-size: .875em;
-}
-
-.larger(10);
diff --git a/public/vendor/fontawesome/less/_list.less b/public/vendor/fontawesome/less/_list.less
deleted file mode 100644
index 318aaa96ac..0000000000
--- a/public/vendor/fontawesome/less/_list.less
+++ /dev/null
@@ -1,18 +0,0 @@
-// List Icons
-// -------------------------
-
-.@{fa-css-prefix}-ul {
-  list-style-type: none;
-  margin-left: (@fa-li-width * 5/4);
-  padding-left: 0;
-
-  > li { position: relative; }
-}
-
-.@{fa-css-prefix}-li {
-  left: -@fa-li-width;
-  position: absolute;
-  text-align: center;
-  width: @fa-li-width;
-  line-height: inherit;
-}
diff --git a/public/vendor/fontawesome/less/_mixins.less b/public/vendor/fontawesome/less/_mixins.less
deleted file mode 100644
index be561347ee..0000000000
--- a/public/vendor/fontawesome/less/_mixins.less
+++ /dev/null
@@ -1,56 +0,0 @@
-// Mixins
-// --------------------------
-
-.fa-icon() {
-  -moz-osx-font-smoothing: grayscale;
-  -webkit-font-smoothing: antialiased;
-  display: inline-block;
-  font-style: normal;
-  font-variant: normal;
-  font-weight: normal;
-  line-height: 1;
-}
-
-.fa-icon-rotate(@degrees, @rotation) {
-  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
-  transform: rotate(@degrees);
-}
-
-.fa-icon-flip(@horiz, @vert, @rotation) {
-  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
-  transform: scale(@horiz, @vert);
-}
-
-
-// Only display content to screen readers. A la Bootstrap 4.
-//
-// See: http://a11yproject.com/posts/how-to-hide-content/
-
-.sr-only() {
-  border: 0;
-  clip: rect(0,0,0,0);
-  height: 1px;
-  margin: -1px;
-  overflow: hidden;
-  padding: 0;
-  position: absolute;
-  width: 1px;
-}
-
-// Use in conjunction with .sr-only to only display content when it's focused.
-//
-// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
-//
-// Credit: HTML5 Boilerplate
-
-.sr-only-focusable() {
-  &:active,
-  &:focus {
-    clip: auto;
-    height: auto;
-    margin: 0;
-    overflow: visible;
-    position: static;
-    width: auto;
-  }
-}
diff --git a/public/vendor/fontawesome/less/_rotated-flipped.less b/public/vendor/fontawesome/less/_rotated-flipped.less
deleted file mode 100644
index d0c63ff80a..0000000000
--- a/public/vendor/fontawesome/less/_rotated-flipped.less
+++ /dev/null
@@ -1,24 +0,0 @@
-// Rotated & Flipped Icons
-// -------------------------
-
-.@{fa-css-prefix}-rotate-90  { .fa-icon-rotate(90deg, 1);  }
-.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
-.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
-
-.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
-.@{fa-css-prefix}-flip-vertical   { .fa-icon-flip(1, -1, 2); }
-.@{fa-css-prefix}-flip-both, .@{fa-css-prefix}-flip-horizontal.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(-1, -1, 2); }
-
-// Hook for IE8-9
-// -------------------------
-
-:root {
-  .@{fa-css-prefix}-rotate-90,
-  .@{fa-css-prefix}-rotate-180,
-  .@{fa-css-prefix}-rotate-270,
-  .@{fa-css-prefix}-flip-horizontal,
-  .@{fa-css-prefix}-flip-vertical,
-  .@{fa-css-prefix}-flip-both {
-    filter: none;
-  }
-}
diff --git a/public/vendor/fontawesome/less/_screen-reader.less b/public/vendor/fontawesome/less/_screen-reader.less
deleted file mode 100644
index 11c188196d..0000000000
--- a/public/vendor/fontawesome/less/_screen-reader.less
+++ /dev/null
@@ -1,5 +0,0 @@
-// Screen Readers
-// -------------------------
-
-.sr-only { .sr-only(); }
-.sr-only-focusable { .sr-only-focusable(); }
diff --git a/public/vendor/fontawesome/less/_shims.less b/public/vendor/fontawesome/less/_shims.less
deleted file mode 100644
index 3c8d86d744..0000000000
--- a/public/vendor/fontawesome/less/_shims.less
+++ /dev/null
@@ -1,2066 +0,0 @@
-.@{fa-css-prefix}.@{fa-css-prefix}-glass:before { content: @fa-var-glass-martini; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-meetup {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-star-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-star-o:before { content: @fa-var-star; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-remove:before { content: @fa-var-times; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-close:before { content: @fa-var-times; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-gear:before { content: @fa-var-cog; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-trash-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-o:before { content: @fa-var-file; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-clock-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-down {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-alt-circle-down; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-up {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-alt-circle-up; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-play-circle-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-repeat:before { content: @fa-var-redo; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-rotate-right:before { content: @fa-var-redo; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-refresh:before { content: @fa-var-sync; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-list-alt {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-dedent:before { content: @fa-var-outdent; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-video-camera:before { content: @fa-var-video; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-picture-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-picture-o:before { content: @fa-var-image; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-photo {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-photo:before { content: @fa-var-image; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-image {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-image:before { content: @fa-var-image; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pencil-square-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-edit; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-share-square-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-check-square-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-times-circle-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-check-circle-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-mail-forward:before { content: @fa-var-share; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-expand:before { content: @fa-var-expand-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-compress:before { content: @fa-var-compress-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-eye {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-eye-slash {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-warning:before { content: @fa-var-exclamation-triangle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-alt-v; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-alt-h; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart:before { content: @fa-var-chart-bar; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart-o:before { content: @fa-var-chart-bar; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-twitter-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-facebook-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-gears:before { content: @fa-var-cogs; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-up {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-up; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-down {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-down; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-heart-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-linkedin-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumbtack; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-github-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-lemon-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-square-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-square-o:before { content: @fa-var-square; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bookmark-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-twitter {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-facebook {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook-f; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-facebook-f {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-facebook-f:before { content: @fa-var-facebook-f; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-github {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-credit-card {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-feed:before { content: @fa-var-rss; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hdd-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-right {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-point-right; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-left {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-point-left; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-up {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-point-up; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-down {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-point-down; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-expand-arrows-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-group:before { content: @fa-var-users; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-chain:before { content: @fa-var-link; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-scissors:before { content: @fa-var-cut; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-files-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-files-o:before { content: @fa-var-copy; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-floppy-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-floppy-o:before { content: @fa-var-save; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-navicon:before { content: @fa-var-bars; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-reorder:before { content: @fa-var-bars; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pinterest {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pinterest-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-google-plus {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus-g; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-money {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-money:before { content: @fa-var-money-bill-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-unsorted:before { content: @fa-var-sort; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-down; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-up; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-linkedin {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin-in; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-rotate-left:before { content: @fa-var-undo; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-legal:before { content: @fa-var-gavel; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-dashboard:before { content: @fa-var-tachometer-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-comment-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-comments-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-flash:before { content: @fa-var-bolt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-clipboard {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-paste {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-paste:before { content: @fa-var-clipboard; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-lightbulb-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bell-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cutlery:before { content: @fa-var-utensils; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-text-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-building-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-building-o:before { content: @fa-var-building; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hospital-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-mobile-phone:before { content: @fa-var-mobile-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-circle-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-mail-reply:before { content: @fa-var-reply; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-github-alt {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-folder-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-folder-open-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-smile-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-frown-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-meh-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-keyboard-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-flag-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-mail-reply-all:before { content: @fa-var-reply-all; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-star-half-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-star-half-empty {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-star-half-empty:before { content: @fa-var-star-half; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-star-half-full {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-star-half-full:before { content: @fa-var-star-half; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-branch; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-chain-broken:before { content: @fa-var-unlink; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-shield:before { content: @fa-var-shield-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-maxcdn {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-html5 {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-css3 {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-minus-square-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pen-square; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-compass {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-down {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-down; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-toggle-down {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-toggle-down:before { content: @fa-var-caret-square-down; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-up {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-up; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-toggle-up {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-toggle-up:before { content: @fa-var-caret-square-up; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-right {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-right; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-toggle-right {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-toggle-right:before { content: @fa-var-caret-square-right; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-eur:before { content: @fa-var-euro-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-euro:before { content: @fa-var-euro-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-gbp:before { content: @fa-var-pound-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-usd:before { content: @fa-var-dollar-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-dollar:before { content: @fa-var-dollar-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-inr:before { content: @fa-var-rupee-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-rupee:before { content: @fa-var-rupee-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-jpy:before { content: @fa-var-yen-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cny:before { content: @fa-var-yen-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-rmb:before { content: @fa-var-yen-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-yen:before { content: @fa-var-yen-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-rub:before { content: @fa-var-ruble-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-ruble:before { content: @fa-var-ruble-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-rouble:before { content: @fa-var-ruble-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-krw:before { content: @fa-var-won-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-won:before { content: @fa-var-won-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-btc {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bitcoin {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-bitcoin:before { content: @fa-var-btc; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-text:before { content: @fa-var-file-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-down; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-down-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-down; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-down-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-down; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-down-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-youtube-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-youtube {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-xing {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-xing-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-youtube-play {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-dropbox {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-stack-overflow {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-instagram {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-flickr {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-adn {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bitbucket {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bitbucket-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-tumblr {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-tumblr-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-alt-down; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-alt-up; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-alt-left; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-alt-right; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-apple {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-windows {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-android {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-linux {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-dribbble {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-skype {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-foursquare {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-trello {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-gratipay {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-gittip {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-gittip:before { content: @fa-var-gratipay; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sun-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-moon-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-vk {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-weibo {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-renren {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pagelines {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-stack-exchange {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-right {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-alt-circle-right; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-left {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-alt-circle-left; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-left {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-left; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-toggle-left {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-toggle-left:before { content: @fa-var-caret-square-left; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-dot-circle-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-vimeo-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-try:before { content: @fa-var-lira-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-turkish-lira:before { content: @fa-var-lira-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-plus-square-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-slack {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-wordpress {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-openid {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-institution:before { content: @fa-var-university; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bank:before { content: @fa-var-university; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-mortar-board:before { content: @fa-var-graduation-cap; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-yahoo {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-google {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-reddit {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-reddit-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-stumbleupon-circle {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-stumbleupon {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-delicious {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-digg {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pied-piper-pp {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pied-piper-alt {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-drupal {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-joomla {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-spoon:before { content: @fa-var-utensil-spoon; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-behance {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-behance-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-steam {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-steam-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-automobile:before { content: @fa-var-car; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-envelope-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-spotify {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-deviantart {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-soundcloud {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-pdf-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-word-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-excel-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-powerpoint-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-image-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-photo-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-photo-o:before { content: @fa-var-file-image; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-picture-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-picture-o:before { content: @fa-var-file-image; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-archive-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-zip-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-zip-o:before { content: @fa-var-file-archive; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-audio-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-sound-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-sound-o:before { content: @fa-var-file-audio; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-video-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-movie-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-movie-o:before { content: @fa-var-file-video; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-file-code-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-vine {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-codepen {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-jsfiddle {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-life-ring {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-life-bouy {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-life-bouy:before { content: @fa-var-life-ring; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-life-buoy {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-life-buoy:before { content: @fa-var-life-ring; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-life-saver {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-life-saver:before { content: @fa-var-life-ring; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-support {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-support:before { content: @fa-var-life-ring; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-notch; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-rebel {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-ra {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-ra:before { content: @fa-var-rebel; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-resistance {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-resistance:before { content: @fa-var-rebel; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-empire {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-ge {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-ge:before { content: @fa-var-empire; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-git-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-git {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hacker-news {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-y-combinator-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-y-combinator-square:before { content: @fa-var-hacker-news; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-yc-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-yc-square:before { content: @fa-var-hacker-news; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-tencent-weibo {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-qq {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-weixin {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-wechat {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-wechat:before { content: @fa-var-weixin; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-send:before { content: @fa-var-paper-plane; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-paper-plane-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-send-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-send-o:before { content: @fa-var-paper-plane; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-circle-thin {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-header:before { content: @fa-var-heading; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders-h; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-futbol-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-soccer-ball-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-soccer-ball-o:before { content: @fa-var-futbol; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-slideshare {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-twitch {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-yelp {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-newspaper-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-paypal {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-google-wallet {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cc-visa {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cc-mastercard {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cc-discover {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cc-amex {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cc-paypal {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cc-stripe {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bell-slash-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-trash:before { content: @fa-var-trash-alt; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-copyright {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eye-dropper; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-area-chart:before { content: @fa-var-chart-area; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pie-chart:before { content: @fa-var-chart-pie; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-line-chart:before { content: @fa-var-chart-line; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-lastfm {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-lastfm-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-ioxhost {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-angellist {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cc {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-cc:before { content: @fa-var-closed-captioning; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-ils:before { content: @fa-var-shekel-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-shekel:before { content: @fa-var-shekel-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sheqel:before { content: @fa-var-shekel-sign; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-meanpath {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-meanpath:before { content: @fa-var-font-awesome; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-buysellads {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-connectdevelop {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-dashcube {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-forumbee {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-leanpub {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sellsy {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-shirtsinbulk {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-simplybuilt {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-skyatlas {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-diamond {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-diamond:before { content: @fa-var-gem; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-intersex:before { content: @fa-var-transgender; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-facebook-official {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pinterest-p {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-whatsapp {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hotel:before { content: @fa-var-bed; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-viacoin {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-medium {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-y-combinator {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-yc {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-yc:before { content: @fa-var-y-combinator; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-optin-monster {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-opencart {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-expeditedssl {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-battery-4:before { content: @fa-var-battery-full; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-battery:before { content: @fa-var-battery-full; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-battery-3:before { content: @fa-var-battery-three-quarters; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-battery-2:before { content: @fa-var-battery-half; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-battery-1:before { content: @fa-var-battery-quarter; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-battery-0:before { content: @fa-var-battery-empty; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-object-group {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-object-ungroup {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-sticky-note-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cc-jcb {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cc-diners-club {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-clone {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-1:before { content: @fa-var-hourglass-start; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-2:before { content: @fa-var-hourglass-half; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-3:before { content: @fa-var-hourglass-end; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-rock-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-grab-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-grab-o:before { content: @fa-var-hand-rock; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-paper-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-stop-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-stop-o:before { content: @fa-var-hand-paper; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-scissors-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-lizard-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-spock-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-pointer-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-peace-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-registered {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-creative-commons {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-gg {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-gg-circle {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-tripadvisor {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-odnoklassniki {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-odnoklassniki-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-get-pocket {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-wikipedia-w {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-safari {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-chrome {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-firefox {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-opera {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-internet-explorer {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-television:before { content: @fa-var-tv; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-contao {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-500px {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-amazon {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar-plus-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar-minus-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar-times-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar-check-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-map-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-map-o:before { content: @fa-var-map; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-commenting:before { content: @fa-var-comment-dots; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-commenting-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-commenting-o:before { content: @fa-var-comment-dots; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-houzz {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-vimeo {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo-v; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-black-tie {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-fonticons {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-reddit-alien {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-edge {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-codiepie {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-modx {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-fort-awesome {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-usb {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-product-hunt {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-mixcloud {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-scribd {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pause-circle-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-stop-circle-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bluetooth {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bluetooth-b {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-gitlab {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-wpbeginner {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-wpforms {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-envira {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-wheelchair-alt {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-accessible-icon; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-question-circle-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-phone-volume; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-asl-interpreting:before { content: @fa-var-american-sign-language-interpreting; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-deafness:before { content: @fa-var-deaf; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-hard-of-hearing:before { content: @fa-var-deaf; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-glide {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-glide-g {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-signing:before { content: @fa-var-sign-language; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-viadeo {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-viadeo-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-snapchat {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-snapchat-ghost {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-snapchat-square {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-pied-piper {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-first-order {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-yoast {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-themeisle {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-official {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-circle {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-circle:before { content: @fa-var-google-plus; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-font-awesome {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-fa {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-fa:before { content: @fa-var-font-awesome; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-handshake-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-envelope-open-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-linode {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-address-book-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-vcard:before { content: @fa-var-address-card; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-address-card-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-vcard-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-vcard-o:before { content: @fa-var-address-card; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-user-circle-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-user-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-user-o:before { content: @fa-var-user; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-id-badge {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-drivers-license:before { content: @fa-var-id-card; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-id-card-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-drivers-license-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-drivers-license-o:before { content: @fa-var-id-card; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-quora {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-free-code-camp {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-telegram {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-4:before { content: @fa-var-thermometer-full; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-thermometer:before { content: @fa-var-thermometer-full; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-3:before { content: @fa-var-thermometer-three-quarters; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-2:before { content: @fa-var-thermometer-half; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-1:before { content: @fa-var-thermometer-quarter; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-0:before { content: @fa-var-thermometer-empty; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bathtub:before { content: @fa-var-bath; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-s15:before { content: @fa-var-bath; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-window-maximize {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-window-restore {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-times-rectangle:before { content: @fa-var-window-close; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-window-close-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-times-rectangle-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-times-rectangle-o:before { content: @fa-var-window-close; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-bandcamp {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-grav {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-etsy {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-imdb {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-ravelry {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-eercast {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-eercast:before { content: @fa-var-sellcast; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-snowflake-o {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
-.@{fa-css-prefix}.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake; }
-
-.@{fa-css-prefix}.@{fa-css-prefix}-superpowers {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-wpexplorer {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
-
-.@{fa-css-prefix}.@{fa-css-prefix}-cab:before { content: @fa-var-taxi; }
-
diff --git a/public/vendor/fontawesome/less/_stacked.less b/public/vendor/fontawesome/less/_stacked.less
deleted file mode 100644
index 263b5c44fc..0000000000
--- a/public/vendor/fontawesome/less/_stacked.less
+++ /dev/null
@@ -1,22 +0,0 @@
-// Stacked Icons
-// -------------------------
-
-.@{fa-css-prefix}-stack {
-  display: inline-block;
-  height: 2em;
-  line-height: 2em;
-  position: relative;
-  vertical-align: middle;
-  width: 2em;
-}
-
-.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
-  left: 0;
-  position: absolute;
-  text-align: center;
-  width: 100%;
-}
-
-.@{fa-css-prefix}-stack-1x { line-height: inherit; }
-.@{fa-css-prefix}-stack-2x { font-size: 2em; }
-.@{fa-css-prefix}-inverse { color: @fa-inverse; }
diff --git a/public/vendor/fontawesome/less/_variables.less b/public/vendor/fontawesome/less/_variables.less
deleted file mode 100644
index f4fafb7551..0000000000
--- a/public/vendor/fontawesome/less/_variables.less
+++ /dev/null
@@ -1,1474 +0,0 @@
-// Variables
-// --------------------------
-
-@fa-font-path:         "vendor/fontawesome/webfonts";
-@fa-font-size-base:    16px;
-@fa-font-display:      block;
-@fa-line-height-base:  1;
-@fa-css-prefix:        fa;
-@fa-version:           "5.15.3";
-@fa-border-color:      #eee;
-@fa-inverse:           #fff;
-@fa-li-width:          2em;
-@fa-primary-opacity:   1;
-@fa-secondary-opacity: .4;
-
-@fa-var-500px: "\f26e";
-@fa-var-accessible-icon: "\f368";
-@fa-var-accusoft: "\f369";
-@fa-var-acquisitions-incorporated: "\f6af";
-@fa-var-ad: "\f641";
-@fa-var-address-book: "\f2b9";
-@fa-var-address-card: "\f2bb";
-@fa-var-adjust: "\f042";
-@fa-var-adn: "\f170";
-@fa-var-adversal: "\f36a";
-@fa-var-affiliatetheme: "\f36b";
-@fa-var-air-freshener: "\f5d0";
-@fa-var-airbnb: "\f834";
-@fa-var-algolia: "\f36c";
-@fa-var-align-center: "\f037";
-@fa-var-align-justify: "\f039";
-@fa-var-align-left: "\f036";
-@fa-var-align-right: "\f038";
-@fa-var-alipay: "\f642";
-@fa-var-allergies: "\f461";
-@fa-var-amazon: "\f270";
-@fa-var-amazon-pay: "\f42c";
-@fa-var-ambulance: "\f0f9";
-@fa-var-american-sign-language-interpreting: "\f2a3";
-@fa-var-amilia: "\f36d";
-@fa-var-anchor: "\f13d";
-@fa-var-android: "\f17b";
-@fa-var-angellist: "\f209";
-@fa-var-angle-double-down: "\f103";
-@fa-var-angle-double-left: "\f100";
-@fa-var-angle-double-right: "\f101";
-@fa-var-angle-double-up: "\f102";
-@fa-var-angle-down: "\f107";
-@fa-var-angle-left: "\f104";
-@fa-var-angle-right: "\f105";
-@fa-var-angle-up: "\f106";
-@fa-var-angry: "\f556";
-@fa-var-angrycreative: "\f36e";
-@fa-var-angular: "\f420";
-@fa-var-ankh: "\f644";
-@fa-var-app-store: "\f36f";
-@fa-var-app-store-ios: "\f370";
-@fa-var-apper: "\f371";
-@fa-var-apple: "\f179";
-@fa-var-apple-alt: "\f5d1";
-@fa-var-apple-pay: "\f415";
-@fa-var-archive: "\f187";
-@fa-var-archway: "\f557";
-@fa-var-arrow-alt-circle-down: "\f358";
-@fa-var-arrow-alt-circle-left: "\f359";
-@fa-var-arrow-alt-circle-right: "\f35a";
-@fa-var-arrow-alt-circle-up: "\f35b";
-@fa-var-arrow-circle-down: "\f0ab";
-@fa-var-arrow-circle-left: "\f0a8";
-@fa-var-arrow-circle-right: "\f0a9";
-@fa-var-arrow-circle-up: "\f0aa";
-@fa-var-arrow-down: "\f063";
-@fa-var-arrow-left: "\f060";
-@fa-var-arrow-right: "\f061";
-@fa-var-arrow-up: "\f062";
-@fa-var-arrows-alt: "\f0b2";
-@fa-var-arrows-alt-h: "\f337";
-@fa-var-arrows-alt-v: "\f338";
-@fa-var-artstation: "\f77a";
-@fa-var-assistive-listening-systems: "\f2a2";
-@fa-var-asterisk: "\f069";
-@fa-var-asymmetrik: "\f372";
-@fa-var-at: "\f1fa";
-@fa-var-atlas: "\f558";
-@fa-var-atlassian: "\f77b";
-@fa-var-atom: "\f5d2";
-@fa-var-audible: "\f373";
-@fa-var-audio-description: "\f29e";
-@fa-var-autoprefixer: "\f41c";
-@fa-var-avianex: "\f374";
-@fa-var-aviato: "\f421";
-@fa-var-award: "\f559";
-@fa-var-aws: "\f375";
-@fa-var-baby: "\f77c";
-@fa-var-baby-carriage: "\f77d";
-@fa-var-backspace: "\f55a";
-@fa-var-backward: "\f04a";
-@fa-var-bacon: "\f7e5";
-@fa-var-bacteria: "\e059";
-@fa-var-bacterium: "\e05a";
-@fa-var-bahai: "\f666";
-@fa-var-balance-scale: "\f24e";
-@fa-var-balance-scale-left: "\f515";
-@fa-var-balance-scale-right: "\f516";
-@fa-var-ban: "\f05e";
-@fa-var-band-aid: "\f462";
-@fa-var-bandcamp: "\f2d5";
-@fa-var-barcode: "\f02a";
-@fa-var-bars: "\f0c9";
-@fa-var-baseball-ball: "\f433";
-@fa-var-basketball-ball: "\f434";
-@fa-var-bath: "\f2cd";
-@fa-var-battery-empty: "\f244";
-@fa-var-battery-full: "\f240";
-@fa-var-battery-half: "\f242";
-@fa-var-battery-quarter: "\f243";
-@fa-var-battery-three-quarters: "\f241";
-@fa-var-battle-net: "\f835";
-@fa-var-bed: "\f236";
-@fa-var-beer: "\f0fc";
-@fa-var-behance: "\f1b4";
-@fa-var-behance-square: "\f1b5";
-@fa-var-bell: "\f0f3";
-@fa-var-bell-slash: "\f1f6";
-@fa-var-bezier-curve: "\f55b";
-@fa-var-bible: "\f647";
-@fa-var-bicycle: "\f206";
-@fa-var-biking: "\f84a";
-@fa-var-bimobject: "\f378";
-@fa-var-binoculars: "\f1e5";
-@fa-var-biohazard: "\f780";
-@fa-var-birthday-cake: "\f1fd";
-@fa-var-bitbucket: "\f171";
-@fa-var-bitcoin: "\f379";
-@fa-var-bity: "\f37a";
-@fa-var-black-tie: "\f27e";
-@fa-var-blackberry: "\f37b";
-@fa-var-blender: "\f517";
-@fa-var-blender-phone: "\f6b6";
-@fa-var-blind: "\f29d";
-@fa-var-blog: "\f781";
-@fa-var-blogger: "\f37c";
-@fa-var-blogger-b: "\f37d";
-@fa-var-bluetooth: "\f293";
-@fa-var-bluetooth-b: "\f294";
-@fa-var-bold: "\f032";
-@fa-var-bolt: "\f0e7";
-@fa-var-bomb: "\f1e2";
-@fa-var-bone: "\f5d7";
-@fa-var-bong: "\f55c";
-@fa-var-book: "\f02d";
-@fa-var-book-dead: "\f6b7";
-@fa-var-book-medical: "\f7e6";
-@fa-var-book-open: "\f518";
-@fa-var-book-reader: "\f5da";
-@fa-var-bookmark: "\f02e";
-@fa-var-bootstrap: "\f836";
-@fa-var-border-all: "\f84c";
-@fa-var-border-none: "\f850";
-@fa-var-border-style: "\f853";
-@fa-var-bowling-ball: "\f436";
-@fa-var-box: "\f466";
-@fa-var-box-open: "\f49e";
-@fa-var-box-tissue: "\e05b";
-@fa-var-boxes: "\f468";
-@fa-var-braille: "\f2a1";
-@fa-var-brain: "\f5dc";
-@fa-var-bread-slice: "\f7ec";
-@fa-var-briefcase: "\f0b1";
-@fa-var-briefcase-medical: "\f469";
-@fa-var-broadcast-tower: "\f519";
-@fa-var-broom: "\f51a";
-@fa-var-brush: "\f55d";
-@fa-var-btc: "\f15a";
-@fa-var-buffer: "\f837";
-@fa-var-bug: "\f188";
-@fa-var-building: "\f1ad";
-@fa-var-bullhorn: "\f0a1";
-@fa-var-bullseye: "\f140";
-@fa-var-burn: "\f46a";
-@fa-var-buromobelexperte: "\f37f";
-@fa-var-bus: "\f207";
-@fa-var-bus-alt: "\f55e";
-@fa-var-business-time: "\f64a";
-@fa-var-buy-n-large: "\f8a6";
-@fa-var-buysellads: "\f20d";
-@fa-var-calculator: "\f1ec";
-@fa-var-calendar: "\f133";
-@fa-var-calendar-alt: "\f073";
-@fa-var-calendar-check: "\f274";
-@fa-var-calendar-day: "\f783";
-@fa-var-calendar-minus: "\f272";
-@fa-var-calendar-plus: "\f271";
-@fa-var-calendar-times: "\f273";
-@fa-var-calendar-week: "\f784";
-@fa-var-camera: "\f030";
-@fa-var-camera-retro: "\f083";
-@fa-var-campground: "\f6bb";
-@fa-var-canadian-maple-leaf: "\f785";
-@fa-var-candy-cane: "\f786";
-@fa-var-cannabis: "\f55f";
-@fa-var-capsules: "\f46b";
-@fa-var-car: "\f1b9";
-@fa-var-car-alt: "\f5de";
-@fa-var-car-battery: "\f5df";
-@fa-var-car-crash: "\f5e1";
-@fa-var-car-side: "\f5e4";
-@fa-var-caravan: "\f8ff";
-@fa-var-caret-down: "\f0d7";
-@fa-var-caret-left: "\f0d9";
-@fa-var-caret-right: "\f0da";
-@fa-var-caret-square-down: "\f150";
-@fa-var-caret-square-left: "\f191";
-@fa-var-caret-square-right: "\f152";
-@fa-var-caret-square-up: "\f151";
-@fa-var-caret-up: "\f0d8";
-@fa-var-carrot: "\f787";
-@fa-var-cart-arrow-down: "\f218";
-@fa-var-cart-plus: "\f217";
-@fa-var-cash-register: "\f788";
-@fa-var-cat: "\f6be";
-@fa-var-cc-amazon-pay: "\f42d";
-@fa-var-cc-amex: "\f1f3";
-@fa-var-cc-apple-pay: "\f416";
-@fa-var-cc-diners-club: "\f24c";
-@fa-var-cc-discover: "\f1f2";
-@fa-var-cc-jcb: "\f24b";
-@fa-var-cc-mastercard: "\f1f1";
-@fa-var-cc-paypal: "\f1f4";
-@fa-var-cc-stripe: "\f1f5";
-@fa-var-cc-visa: "\f1f0";
-@fa-var-centercode: "\f380";
-@fa-var-centos: "\f789";
-@fa-var-certificate: "\f0a3";
-@fa-var-chair: "\f6c0";
-@fa-var-chalkboard: "\f51b";
-@fa-var-chalkboard-teacher: "\f51c";
-@fa-var-charging-station: "\f5e7";
-@fa-var-chart-area: "\f1fe";
-@fa-var-chart-bar: "\f080";
-@fa-var-chart-line: "\f201";
-@fa-var-chart-pie: "\f200";
-@fa-var-check: "\f00c";
-@fa-var-check-circle: "\f058";
-@fa-var-check-double: "\f560";
-@fa-var-check-square: "\f14a";
-@fa-var-cheese: "\f7ef";
-@fa-var-chess: "\f439";
-@fa-var-chess-bishop: "\f43a";
-@fa-var-chess-board: "\f43c";
-@fa-var-chess-king: "\f43f";
-@fa-var-chess-knight: "\f441";
-@fa-var-chess-pawn: "\f443";
-@fa-var-chess-queen: "\f445";
-@fa-var-chess-rook: "\f447";
-@fa-var-chevron-circle-down: "\f13a";
-@fa-var-chevron-circle-left: "\f137";
-@fa-var-chevron-circle-right: "\f138";
-@fa-var-chevron-circle-up: "\f139";
-@fa-var-chevron-down: "\f078";
-@fa-var-chevron-left: "\f053";
-@fa-var-chevron-right: "\f054";
-@fa-var-chevron-up: "\f077";
-@fa-var-child: "\f1ae";
-@fa-var-chrome: "\f268";
-@fa-var-chromecast: "\f838";
-@fa-var-church: "\f51d";
-@fa-var-circle: "\f111";
-@fa-var-circle-notch: "\f1ce";
-@fa-var-city: "\f64f";
-@fa-var-clinic-medical: "\f7f2";
-@fa-var-clipboard: "\f328";
-@fa-var-clipboard-check: "\f46c";
-@fa-var-clipboard-list: "\f46d";
-@fa-var-clock: "\f017";
-@fa-var-clone: "\f24d";
-@fa-var-closed-captioning: "\f20a";
-@fa-var-cloud: "\f0c2";
-@fa-var-cloud-download-alt: "\f381";
-@fa-var-cloud-meatball: "\f73b";
-@fa-var-cloud-moon: "\f6c3";
-@fa-var-cloud-moon-rain: "\f73c";
-@fa-var-cloud-rain: "\f73d";
-@fa-var-cloud-showers-heavy: "\f740";
-@fa-var-cloud-sun: "\f6c4";
-@fa-var-cloud-sun-rain: "\f743";
-@fa-var-cloud-upload-alt: "\f382";
-@fa-var-cloudflare: "\e07d";
-@fa-var-cloudscale: "\f383";
-@fa-var-cloudsmith: "\f384";
-@fa-var-cloudversify: "\f385";
-@fa-var-cocktail: "\f561";
-@fa-var-code: "\f121";
-@fa-var-code-branch: "\f126";
-@fa-var-codepen: "\f1cb";
-@fa-var-codiepie: "\f284";
-@fa-var-coffee: "\f0f4";
-@fa-var-cog: "\f013";
-@fa-var-cogs: "\f085";
-@fa-var-coins: "\f51e";
-@fa-var-columns: "\f0db";
-@fa-var-comment: "\f075";
-@fa-var-comment-alt: "\f27a";
-@fa-var-comment-dollar: "\f651";
-@fa-var-comment-dots: "\f4ad";
-@fa-var-comment-medical: "\f7f5";
-@fa-var-comment-slash: "\f4b3";
-@fa-var-comments: "\f086";
-@fa-var-comments-dollar: "\f653";
-@fa-var-compact-disc: "\f51f";
-@fa-var-compass: "\f14e";
-@fa-var-compress: "\f066";
-@fa-var-compress-alt: "\f422";
-@fa-var-compress-arrows-alt: "\f78c";
-@fa-var-concierge-bell: "\f562";
-@fa-var-confluence: "\f78d";
-@fa-var-connectdevelop: "\f20e";
-@fa-var-contao: "\f26d";
-@fa-var-cookie: "\f563";
-@fa-var-cookie-bite: "\f564";
-@fa-var-copy: "\f0c5";
-@fa-var-copyright: "\f1f9";
-@fa-var-cotton-bureau: "\f89e";
-@fa-var-couch: "\f4b8";
-@fa-var-cpanel: "\f388";
-@fa-var-creative-commons: "\f25e";
-@fa-var-creative-commons-by: "\f4e7";
-@fa-var-creative-commons-nc: "\f4e8";
-@fa-var-creative-commons-nc-eu: "\f4e9";
-@fa-var-creative-commons-nc-jp: "\f4ea";
-@fa-var-creative-commons-nd: "\f4eb";
-@fa-var-creative-commons-pd: "\f4ec";
-@fa-var-creative-commons-pd-alt: "\f4ed";
-@fa-var-creative-commons-remix: "\f4ee";
-@fa-var-creative-commons-sa: "\f4ef";
-@fa-var-creative-commons-sampling: "\f4f0";
-@fa-var-creative-commons-sampling-plus: "\f4f1";
-@fa-var-creative-commons-share: "\f4f2";
-@fa-var-creative-commons-zero: "\f4f3";
-@fa-var-credit-card: "\f09d";
-@fa-var-critical-role: "\f6c9";
-@fa-var-crop: "\f125";
-@fa-var-crop-alt: "\f565";
-@fa-var-cross: "\f654";
-@fa-var-crosshairs: "\f05b";
-@fa-var-crow: "\f520";
-@fa-var-crown: "\f521";
-@fa-var-crutch: "\f7f7";
-@fa-var-css3: "\f13c";
-@fa-var-css3-alt: "\f38b";
-@fa-var-cube: "\f1b2";
-@fa-var-cubes: "\f1b3";
-@fa-var-cut: "\f0c4";
-@fa-var-cuttlefish: "\f38c";
-@fa-var-d-and-d: "\f38d";
-@fa-var-d-and-d-beyond: "\f6ca";
-@fa-var-dailymotion: "\e052";
-@fa-var-dashcube: "\f210";
-@fa-var-database: "\f1c0";
-@fa-var-deaf: "\f2a4";
-@fa-var-deezer: "\e077";
-@fa-var-delicious: "\f1a5";
-@fa-var-democrat: "\f747";
-@fa-var-deploydog: "\f38e";
-@fa-var-deskpro: "\f38f";
-@fa-var-desktop: "\f108";
-@fa-var-dev: "\f6cc";
-@fa-var-deviantart: "\f1bd";
-@fa-var-dharmachakra: "\f655";
-@fa-var-dhl: "\f790";
-@fa-var-diagnoses: "\f470";
-@fa-var-diaspora: "\f791";
-@fa-var-dice: "\f522";
-@fa-var-dice-d20: "\f6cf";
-@fa-var-dice-d6: "\f6d1";
-@fa-var-dice-five: "\f523";
-@fa-var-dice-four: "\f524";
-@fa-var-dice-one: "\f525";
-@fa-var-dice-six: "\f526";
-@fa-var-dice-three: "\f527";
-@fa-var-dice-two: "\f528";
-@fa-var-digg: "\f1a6";
-@fa-var-digital-ocean: "\f391";
-@fa-var-digital-tachograph: "\f566";
-@fa-var-directions: "\f5eb";
-@fa-var-discord: "\f392";
-@fa-var-discourse: "\f393";
-@fa-var-disease: "\f7fa";
-@fa-var-divide: "\f529";
-@fa-var-dizzy: "\f567";
-@fa-var-dna: "\f471";
-@fa-var-dochub: "\f394";
-@fa-var-docker: "\f395";
-@fa-var-dog: "\f6d3";
-@fa-var-dollar-sign: "\f155";
-@fa-var-dolly: "\f472";
-@fa-var-dolly-flatbed: "\f474";
-@fa-var-donate: "\f4b9";
-@fa-var-door-closed: "\f52a";
-@fa-var-door-open: "\f52b";
-@fa-var-dot-circle: "\f192";
-@fa-var-dove: "\f4ba";
-@fa-var-download: "\f019";
-@fa-var-draft2digital: "\f396";
-@fa-var-drafting-compass: "\f568";
-@fa-var-dragon: "\f6d5";
-@fa-var-draw-polygon: "\f5ee";
-@fa-var-dribbble: "\f17d";
-@fa-var-dribbble-square: "\f397";
-@fa-var-dropbox: "\f16b";
-@fa-var-drum: "\f569";
-@fa-var-drum-steelpan: "\f56a";
-@fa-var-drumstick-bite: "\f6d7";
-@fa-var-drupal: "\f1a9";
-@fa-var-dumbbell: "\f44b";
-@fa-var-dumpster: "\f793";
-@fa-var-dumpster-fire: "\f794";
-@fa-var-dungeon: "\f6d9";
-@fa-var-dyalog: "\f399";
-@fa-var-earlybirds: "\f39a";
-@fa-var-ebay: "\f4f4";
-@fa-var-edge: "\f282";
-@fa-var-edge-legacy: "\e078";
-@fa-var-edit: "\f044";
-@fa-var-egg: "\f7fb";
-@fa-var-eject: "\f052";
-@fa-var-elementor: "\f430";
-@fa-var-ellipsis-h: "\f141";
-@fa-var-ellipsis-v: "\f142";
-@fa-var-ello: "\f5f1";
-@fa-var-ember: "\f423";
-@fa-var-empire: "\f1d1";
-@fa-var-envelope: "\f0e0";
-@fa-var-envelope-open: "\f2b6";
-@fa-var-envelope-open-text: "\f658";
-@fa-var-envelope-square: "\f199";
-@fa-var-envira: "\f299";
-@fa-var-equals: "\f52c";
-@fa-var-eraser: "\f12d";
-@fa-var-erlang: "\f39d";
-@fa-var-ethereum: "\f42e";
-@fa-var-ethernet: "\f796";
-@fa-var-etsy: "\f2d7";
-@fa-var-euro-sign: "\f153";
-@fa-var-evernote: "\f839";
-@fa-var-exchange-alt: "\f362";
-@fa-var-exclamation: "\f12a";
-@fa-var-exclamation-circle: "\f06a";
-@fa-var-exclamation-triangle: "\f071";
-@fa-var-expand: "\f065";
-@fa-var-expand-alt: "\f424";
-@fa-var-expand-arrows-alt: "\f31e";
-@fa-var-expeditedssl: "\f23e";
-@fa-var-external-link-alt: "\f35d";
-@fa-var-external-link-square-alt: "\f360";
-@fa-var-eye: "\f06e";
-@fa-var-eye-dropper: "\f1fb";
-@fa-var-eye-slash: "\f070";
-@fa-var-facebook: "\f09a";
-@fa-var-facebook-f: "\f39e";
-@fa-var-facebook-messenger: "\f39f";
-@fa-var-facebook-square: "\f082";
-@fa-var-fan: "\f863";
-@fa-var-fantasy-flight-games: "\f6dc";
-@fa-var-fast-backward: "\f049";
-@fa-var-fast-forward: "\f050";
-@fa-var-faucet: "\e005";
-@fa-var-fax: "\f1ac";
-@fa-var-feather: "\f52d";
-@fa-var-feather-alt: "\f56b";
-@fa-var-fedex: "\f797";
-@fa-var-fedora: "\f798";
-@fa-var-female: "\f182";
-@fa-var-fighter-jet: "\f0fb";
-@fa-var-figma: "\f799";
-@fa-var-file: "\f15b";
-@fa-var-file-alt: "\f15c";
-@fa-var-file-archive: "\f1c6";
-@fa-var-file-audio: "\f1c7";
-@fa-var-file-code: "\f1c9";
-@fa-var-file-contract: "\f56c";
-@fa-var-file-csv: "\f6dd";
-@fa-var-file-download: "\f56d";
-@fa-var-file-excel: "\f1c3";
-@fa-var-file-export: "\f56e";
-@fa-var-file-image: "\f1c5";
-@fa-var-file-import: "\f56f";
-@fa-var-file-invoice: "\f570";
-@fa-var-file-invoice-dollar: "\f571";
-@fa-var-file-medical: "\f477";
-@fa-var-file-medical-alt: "\f478";
-@fa-var-file-pdf: "\f1c1";
-@fa-var-file-powerpoint: "\f1c4";
-@fa-var-file-prescription: "\f572";
-@fa-var-file-signature: "\f573";
-@fa-var-file-upload: "\f574";
-@fa-var-file-video: "\f1c8";
-@fa-var-file-word: "\f1c2";
-@fa-var-fill: "\f575";
-@fa-var-fill-drip: "\f576";
-@fa-var-film: "\f008";
-@fa-var-filter: "\f0b0";
-@fa-var-fingerprint: "\f577";
-@fa-var-fire: "\f06d";
-@fa-var-fire-alt: "\f7e4";
-@fa-var-fire-extinguisher: "\f134";
-@fa-var-firefox: "\f269";
-@fa-var-firefox-browser: "\e007";
-@fa-var-first-aid: "\f479";
-@fa-var-first-order: "\f2b0";
-@fa-var-first-order-alt: "\f50a";
-@fa-var-firstdraft: "\f3a1";
-@fa-var-fish: "\f578";
-@fa-var-fist-raised: "\f6de";
-@fa-var-flag: "\f024";
-@fa-var-flag-checkered: "\f11e";
-@fa-var-flag-usa: "\f74d";
-@fa-var-flask: "\f0c3";
-@fa-var-flickr: "\f16e";
-@fa-var-flipboard: "\f44d";
-@fa-var-flushed: "\f579";
-@fa-var-fly: "\f417";
-@fa-var-folder: "\f07b";
-@fa-var-folder-minus: "\f65d";
-@fa-var-folder-open: "\f07c";
-@fa-var-folder-plus: "\f65e";
-@fa-var-font: "\f031";
-@fa-var-font-awesome: "\f2b4";
-@fa-var-font-awesome-alt: "\f35c";
-@fa-var-font-awesome-flag: "\f425";
-@fa-var-font-awesome-logo-full: "\f4e6";
-@fa-var-fonticons: "\f280";
-@fa-var-fonticons-fi: "\f3a2";
-@fa-var-football-ball: "\f44e";
-@fa-var-fort-awesome: "\f286";
-@fa-var-fort-awesome-alt: "\f3a3";
-@fa-var-forumbee: "\f211";
-@fa-var-forward: "\f04e";
-@fa-var-foursquare: "\f180";
-@fa-var-free-code-camp: "\f2c5";
-@fa-var-freebsd: "\f3a4";
-@fa-var-frog: "\f52e";
-@fa-var-frown: "\f119";
-@fa-var-frown-open: "\f57a";
-@fa-var-fulcrum: "\f50b";
-@fa-var-funnel-dollar: "\f662";
-@fa-var-futbol: "\f1e3";
-@fa-var-galactic-republic: "\f50c";
-@fa-var-galactic-senate: "\f50d";
-@fa-var-gamepad: "\f11b";
-@fa-var-gas-pump: "\f52f";
-@fa-var-gavel: "\f0e3";
-@fa-var-gem: "\f3a5";
-@fa-var-genderless: "\f22d";
-@fa-var-get-pocket: "\f265";
-@fa-var-gg: "\f260";
-@fa-var-gg-circle: "\f261";
-@fa-var-ghost: "\f6e2";
-@fa-var-gift: "\f06b";
-@fa-var-gifts: "\f79c";
-@fa-var-git: "\f1d3";
-@fa-var-git-alt: "\f841";
-@fa-var-git-square: "\f1d2";
-@fa-var-github: "\f09b";
-@fa-var-github-alt: "\f113";
-@fa-var-github-square: "\f092";
-@fa-var-gitkraken: "\f3a6";
-@fa-var-gitlab: "\f296";
-@fa-var-gitter: "\f426";
-@fa-var-glass-cheers: "\f79f";
-@fa-var-glass-martini: "\f000";
-@fa-var-glass-martini-alt: "\f57b";
-@fa-var-glass-whiskey: "\f7a0";
-@fa-var-glasses: "\f530";
-@fa-var-glide: "\f2a5";
-@fa-var-glide-g: "\f2a6";
-@fa-var-globe: "\f0ac";
-@fa-var-globe-africa: "\f57c";
-@fa-var-globe-americas: "\f57d";
-@fa-var-globe-asia: "\f57e";
-@fa-var-globe-europe: "\f7a2";
-@fa-var-gofore: "\f3a7";
-@fa-var-golf-ball: "\f450";
-@fa-var-goodreads: "\f3a8";
-@fa-var-goodreads-g: "\f3a9";
-@fa-var-google: "\f1a0";
-@fa-var-google-drive: "\f3aa";
-@fa-var-google-pay: "\e079";
-@fa-var-google-play: "\f3ab";
-@fa-var-google-plus: "\f2b3";
-@fa-var-google-plus-g: "\f0d5";
-@fa-var-google-plus-square: "\f0d4";
-@fa-var-google-wallet: "\f1ee";
-@fa-var-gopuram: "\f664";
-@fa-var-graduation-cap: "\f19d";
-@fa-var-gratipay: "\f184";
-@fa-var-grav: "\f2d6";
-@fa-var-greater-than: "\f531";
-@fa-var-greater-than-equal: "\f532";
-@fa-var-grimace: "\f57f";
-@fa-var-grin: "\f580";
-@fa-var-grin-alt: "\f581";
-@fa-var-grin-beam: "\f582";
-@fa-var-grin-beam-sweat: "\f583";
-@fa-var-grin-hearts: "\f584";
-@fa-var-grin-squint: "\f585";
-@fa-var-grin-squint-tears: "\f586";
-@fa-var-grin-stars: "\f587";
-@fa-var-grin-tears: "\f588";
-@fa-var-grin-tongue: "\f589";
-@fa-var-grin-tongue-squint: "\f58a";
-@fa-var-grin-tongue-wink: "\f58b";
-@fa-var-grin-wink: "\f58c";
-@fa-var-grip-horizontal: "\f58d";
-@fa-var-grip-lines: "\f7a4";
-@fa-var-grip-lines-vertical: "\f7a5";
-@fa-var-grip-vertical: "\f58e";
-@fa-var-gripfire: "\f3ac";
-@fa-var-grunt: "\f3ad";
-@fa-var-guilded: "\e07e";
-@fa-var-guitar: "\f7a6";
-@fa-var-gulp: "\f3ae";
-@fa-var-h-square: "\f0fd";
-@fa-var-hacker-news: "\f1d4";
-@fa-var-hacker-news-square: "\f3af";
-@fa-var-hackerrank: "\f5f7";
-@fa-var-hamburger: "\f805";
-@fa-var-hammer: "\f6e3";
-@fa-var-hamsa: "\f665";
-@fa-var-hand-holding: "\f4bd";
-@fa-var-hand-holding-heart: "\f4be";
-@fa-var-hand-holding-medical: "\e05c";
-@fa-var-hand-holding-usd: "\f4c0";
-@fa-var-hand-holding-water: "\f4c1";
-@fa-var-hand-lizard: "\f258";
-@fa-var-hand-middle-finger: "\f806";
-@fa-var-hand-paper: "\f256";
-@fa-var-hand-peace: "\f25b";
-@fa-var-hand-point-down: "\f0a7";
-@fa-var-hand-point-left: "\f0a5";
-@fa-var-hand-point-right: "\f0a4";
-@fa-var-hand-point-up: "\f0a6";
-@fa-var-hand-pointer: "\f25a";
-@fa-var-hand-rock: "\f255";
-@fa-var-hand-scissors: "\f257";
-@fa-var-hand-sparkles: "\e05d";
-@fa-var-hand-spock: "\f259";
-@fa-var-hands: "\f4c2";
-@fa-var-hands-helping: "\f4c4";
-@fa-var-hands-wash: "\e05e";
-@fa-var-handshake: "\f2b5";
-@fa-var-handshake-alt-slash: "\e05f";
-@fa-var-handshake-slash: "\e060";
-@fa-var-hanukiah: "\f6e6";
-@fa-var-hard-hat: "\f807";
-@fa-var-hashtag: "\f292";
-@fa-var-hat-cowboy: "\f8c0";
-@fa-var-hat-cowboy-side: "\f8c1";
-@fa-var-hat-wizard: "\f6e8";
-@fa-var-hdd: "\f0a0";
-@fa-var-head-side-cough: "\e061";
-@fa-var-head-side-cough-slash: "\e062";
-@fa-var-head-side-mask: "\e063";
-@fa-var-head-side-virus: "\e064";
-@fa-var-heading: "\f1dc";
-@fa-var-headphones: "\f025";
-@fa-var-headphones-alt: "\f58f";
-@fa-var-headset: "\f590";
-@fa-var-heart: "\f004";
-@fa-var-heart-broken: "\f7a9";
-@fa-var-heartbeat: "\f21e";
-@fa-var-helicopter: "\f533";
-@fa-var-highlighter: "\f591";
-@fa-var-hiking: "\f6ec";
-@fa-var-hippo: "\f6ed";
-@fa-var-hips: "\f452";
-@fa-var-hire-a-helper: "\f3b0";
-@fa-var-history: "\f1da";
-@fa-var-hive: "\e07f";
-@fa-var-hockey-puck: "\f453";
-@fa-var-holly-berry: "\f7aa";
-@fa-var-home: "\f015";
-@fa-var-hooli: "\f427";
-@fa-var-hornbill: "\f592";
-@fa-var-horse: "\f6f0";
-@fa-var-horse-head: "\f7ab";
-@fa-var-hospital: "\f0f8";
-@fa-var-hospital-alt: "\f47d";
-@fa-var-hospital-symbol: "\f47e";
-@fa-var-hospital-user: "\f80d";
-@fa-var-hot-tub: "\f593";
-@fa-var-hotdog: "\f80f";
-@fa-var-hotel: "\f594";
-@fa-var-hotjar: "\f3b1";
-@fa-var-hourglass: "\f254";
-@fa-var-hourglass-end: "\f253";
-@fa-var-hourglass-half: "\f252";
-@fa-var-hourglass-start: "\f251";
-@fa-var-house-damage: "\f6f1";
-@fa-var-house-user: "\e065";
-@fa-var-houzz: "\f27c";
-@fa-var-hryvnia: "\f6f2";
-@fa-var-html5: "\f13b";
-@fa-var-hubspot: "\f3b2";
-@fa-var-i-cursor: "\f246";
-@fa-var-ice-cream: "\f810";
-@fa-var-icicles: "\f7ad";
-@fa-var-icons: "\f86d";
-@fa-var-id-badge: "\f2c1";
-@fa-var-id-card: "\f2c2";
-@fa-var-id-card-alt: "\f47f";
-@fa-var-ideal: "\e013";
-@fa-var-igloo: "\f7ae";
-@fa-var-image: "\f03e";
-@fa-var-images: "\f302";
-@fa-var-imdb: "\f2d8";
-@fa-var-inbox: "\f01c";
-@fa-var-indent: "\f03c";
-@fa-var-industry: "\f275";
-@fa-var-infinity: "\f534";
-@fa-var-info: "\f129";
-@fa-var-info-circle: "\f05a";
-@fa-var-innosoft: "\e080";
-@fa-var-instagram: "\f16d";
-@fa-var-instagram-square: "\e055";
-@fa-var-instalod: "\e081";
-@fa-var-intercom: "\f7af";
-@fa-var-internet-explorer: "\f26b";
-@fa-var-invision: "\f7b0";
-@fa-var-ioxhost: "\f208";
-@fa-var-italic: "\f033";
-@fa-var-itch-io: "\f83a";
-@fa-var-itunes: "\f3b4";
-@fa-var-itunes-note: "\f3b5";
-@fa-var-java: "\f4e4";
-@fa-var-jedi: "\f669";
-@fa-var-jedi-order: "\f50e";
-@fa-var-jenkins: "\f3b6";
-@fa-var-jira: "\f7b1";
-@fa-var-joget: "\f3b7";
-@fa-var-joint: "\f595";
-@fa-var-joomla: "\f1aa";
-@fa-var-journal-whills: "\f66a";
-@fa-var-js: "\f3b8";
-@fa-var-js-square: "\f3b9";
-@fa-var-jsfiddle: "\f1cc";
-@fa-var-kaaba: "\f66b";
-@fa-var-kaggle: "\f5fa";
-@fa-var-key: "\f084";
-@fa-var-keybase: "\f4f5";
-@fa-var-keyboard: "\f11c";
-@fa-var-keycdn: "\f3ba";
-@fa-var-khanda: "\f66d";
-@fa-var-kickstarter: "\f3bb";
-@fa-var-kickstarter-k: "\f3bc";
-@fa-var-kiss: "\f596";
-@fa-var-kiss-beam: "\f597";
-@fa-var-kiss-wink-heart: "\f598";
-@fa-var-kiwi-bird: "\f535";
-@fa-var-korvue: "\f42f";
-@fa-var-landmark: "\f66f";
-@fa-var-language: "\f1ab";
-@fa-var-laptop: "\f109";
-@fa-var-laptop-code: "\f5fc";
-@fa-var-laptop-house: "\e066";
-@fa-var-laptop-medical: "\f812";
-@fa-var-laravel: "\f3bd";
-@fa-var-lastfm: "\f202";
-@fa-var-lastfm-square: "\f203";
-@fa-var-laugh: "\f599";
-@fa-var-laugh-beam: "\f59a";
-@fa-var-laugh-squint: "\f59b";
-@fa-var-laugh-wink: "\f59c";
-@fa-var-layer-group: "\f5fd";
-@fa-var-leaf: "\f06c";
-@fa-var-leanpub: "\f212";
-@fa-var-lemon: "\f094";
-@fa-var-less: "\f41d";
-@fa-var-less-than: "\f536";
-@fa-var-less-than-equal: "\f537";
-@fa-var-level-down-alt: "\f3be";
-@fa-var-level-up-alt: "\f3bf";
-@fa-var-life-ring: "\f1cd";
-@fa-var-lightbulb: "\f0eb";
-@fa-var-line: "\f3c0";
-@fa-var-link: "\f0c1";
-@fa-var-linkedin: "\f08c";
-@fa-var-linkedin-in: "\f0e1";
-@fa-var-linode: "\f2b8";
-@fa-var-linux: "\f17c";
-@fa-var-lira-sign: "\f195";
-@fa-var-list: "\f03a";
-@fa-var-list-alt: "\f022";
-@fa-var-list-ol: "\f0cb";
-@fa-var-list-ul: "\f0ca";
-@fa-var-location-arrow: "\f124";
-@fa-var-lock: "\f023";
-@fa-var-lock-open: "\f3c1";
-@fa-var-long-arrow-alt-down: "\f309";
-@fa-var-long-arrow-alt-left: "\f30a";
-@fa-var-long-arrow-alt-right: "\f30b";
-@fa-var-long-arrow-alt-up: "\f30c";
-@fa-var-low-vision: "\f2a8";
-@fa-var-luggage-cart: "\f59d";
-@fa-var-lungs: "\f604";
-@fa-var-lungs-virus: "\e067";
-@fa-var-lyft: "\f3c3";
-@fa-var-magento: "\f3c4";
-@fa-var-magic: "\f0d0";
-@fa-var-magnet: "\f076";
-@fa-var-mail-bulk: "\f674";
-@fa-var-mailchimp: "\f59e";
-@fa-var-male: "\f183";
-@fa-var-mandalorian: "\f50f";
-@fa-var-map: "\f279";
-@fa-var-map-marked: "\f59f";
-@fa-var-map-marked-alt: "\f5a0";
-@fa-var-map-marker: "\f041";
-@fa-var-map-marker-alt: "\f3c5";
-@fa-var-map-pin: "\f276";
-@fa-var-map-signs: "\f277";
-@fa-var-markdown: "\f60f";
-@fa-var-marker: "\f5a1";
-@fa-var-mars: "\f222";
-@fa-var-mars-double: "\f227";
-@fa-var-mars-stroke: "\f229";
-@fa-var-mars-stroke-h: "\f22b";
-@fa-var-mars-stroke-v: "\f22a";
-@fa-var-mask: "\f6fa";
-@fa-var-mastodon: "\f4f6";
-@fa-var-maxcdn: "\f136";
-@fa-var-mdb: "\f8ca";
-@fa-var-medal: "\f5a2";
-@fa-var-medapps: "\f3c6";
-@fa-var-medium: "\f23a";
-@fa-var-medium-m: "\f3c7";
-@fa-var-medkit: "\f0fa";
-@fa-var-medrt: "\f3c8";
-@fa-var-meetup: "\f2e0";
-@fa-var-megaport: "\f5a3";
-@fa-var-meh: "\f11a";
-@fa-var-meh-blank: "\f5a4";
-@fa-var-meh-rolling-eyes: "\f5a5";
-@fa-var-memory: "\f538";
-@fa-var-mendeley: "\f7b3";
-@fa-var-menorah: "\f676";
-@fa-var-mercury: "\f223";
-@fa-var-meteor: "\f753";
-@fa-var-microblog: "\e01a";
-@fa-var-microchip: "\f2db";
-@fa-var-microphone: "\f130";
-@fa-var-microphone-alt: "\f3c9";
-@fa-var-microphone-alt-slash: "\f539";
-@fa-var-microphone-slash: "\f131";
-@fa-var-microscope: "\f610";
-@fa-var-microsoft: "\f3ca";
-@fa-var-minus: "\f068";
-@fa-var-minus-circle: "\f056";
-@fa-var-minus-square: "\f146";
-@fa-var-mitten: "\f7b5";
-@fa-var-mix: "\f3cb";
-@fa-var-mixcloud: "\f289";
-@fa-var-mixer: "\e056";
-@fa-var-mizuni: "\f3cc";
-@fa-var-mobile: "\f10b";
-@fa-var-mobile-alt: "\f3cd";
-@fa-var-modx: "\f285";
-@fa-var-monero: "\f3d0";
-@fa-var-money-bill: "\f0d6";
-@fa-var-money-bill-alt: "\f3d1";
-@fa-var-money-bill-wave: "\f53a";
-@fa-var-money-bill-wave-alt: "\f53b";
-@fa-var-money-check: "\f53c";
-@fa-var-money-check-alt: "\f53d";
-@fa-var-monument: "\f5a6";
-@fa-var-moon: "\f186";
-@fa-var-mortar-pestle: "\f5a7";
-@fa-var-mosque: "\f678";
-@fa-var-motorcycle: "\f21c";
-@fa-var-mountain: "\f6fc";
-@fa-var-mouse: "\f8cc";
-@fa-var-mouse-pointer: "\f245";
-@fa-var-mug-hot: "\f7b6";
-@fa-var-music: "\f001";
-@fa-var-napster: "\f3d2";
-@fa-var-neos: "\f612";
-@fa-var-network-wired: "\f6ff";
-@fa-var-neuter: "\f22c";
-@fa-var-newspaper: "\f1ea";
-@fa-var-nimblr: "\f5a8";
-@fa-var-node: "\f419";
-@fa-var-node-js: "\f3d3";
-@fa-var-not-equal: "\f53e";
-@fa-var-notes-medical: "\f481";
-@fa-var-npm: "\f3d4";
-@fa-var-ns8: "\f3d5";
-@fa-var-nutritionix: "\f3d6";
-@fa-var-object-group: "\f247";
-@fa-var-object-ungroup: "\f248";
-@fa-var-octopus-deploy: "\e082";
-@fa-var-odnoklassniki: "\f263";
-@fa-var-odnoklassniki-square: "\f264";
-@fa-var-oil-can: "\f613";
-@fa-var-old-republic: "\f510";
-@fa-var-om: "\f679";
-@fa-var-opencart: "\f23d";
-@fa-var-openid: "\f19b";
-@fa-var-opera: "\f26a";
-@fa-var-optin-monster: "\f23c";
-@fa-var-orcid: "\f8d2";
-@fa-var-osi: "\f41a";
-@fa-var-otter: "\f700";
-@fa-var-outdent: "\f03b";
-@fa-var-page4: "\f3d7";
-@fa-var-pagelines: "\f18c";
-@fa-var-pager: "\f815";
-@fa-var-paint-brush: "\f1fc";
-@fa-var-paint-roller: "\f5aa";
-@fa-var-palette: "\f53f";
-@fa-var-palfed: "\f3d8";
-@fa-var-pallet: "\f482";
-@fa-var-paper-plane: "\f1d8";
-@fa-var-paperclip: "\f0c6";
-@fa-var-parachute-box: "\f4cd";
-@fa-var-paragraph: "\f1dd";
-@fa-var-parking: "\f540";
-@fa-var-passport: "\f5ab";
-@fa-var-pastafarianism: "\f67b";
-@fa-var-paste: "\f0ea";
-@fa-var-patreon: "\f3d9";
-@fa-var-pause: "\f04c";
-@fa-var-pause-circle: "\f28b";
-@fa-var-paw: "\f1b0";
-@fa-var-paypal: "\f1ed";
-@fa-var-peace: "\f67c";
-@fa-var-pen: "\f304";
-@fa-var-pen-alt: "\f305";
-@fa-var-pen-fancy: "\f5ac";
-@fa-var-pen-nib: "\f5ad";
-@fa-var-pen-square: "\f14b";
-@fa-var-pencil-alt: "\f303";
-@fa-var-pencil-ruler: "\f5ae";
-@fa-var-penny-arcade: "\f704";
-@fa-var-people-arrows: "\e068";
-@fa-var-people-carry: "\f4ce";
-@fa-var-pepper-hot: "\f816";
-@fa-var-perbyte: "\e083";
-@fa-var-percent: "\f295";
-@fa-var-percentage: "\f541";
-@fa-var-periscope: "\f3da";
-@fa-var-person-booth: "\f756";
-@fa-var-phabricator: "\f3db";
-@fa-var-phoenix-framework: "\f3dc";
-@fa-var-phoenix-squadron: "\f511";
-@fa-var-phone: "\f095";
-@fa-var-phone-alt: "\f879";
-@fa-var-phone-slash: "\f3dd";
-@fa-var-phone-square: "\f098";
-@fa-var-phone-square-alt: "\f87b";
-@fa-var-phone-volume: "\f2a0";
-@fa-var-photo-video: "\f87c";
-@fa-var-php: "\f457";
-@fa-var-pied-piper: "\f2ae";
-@fa-var-pied-piper-alt: "\f1a8";
-@fa-var-pied-piper-hat: "\f4e5";
-@fa-var-pied-piper-pp: "\f1a7";
-@fa-var-pied-piper-square: "\e01e";
-@fa-var-piggy-bank: "\f4d3";
-@fa-var-pills: "\f484";
-@fa-var-pinterest: "\f0d2";
-@fa-var-pinterest-p: "\f231";
-@fa-var-pinterest-square: "\f0d3";
-@fa-var-pizza-slice: "\f818";
-@fa-var-place-of-worship: "\f67f";
-@fa-var-plane: "\f072";
-@fa-var-plane-arrival: "\f5af";
-@fa-var-plane-departure: "\f5b0";
-@fa-var-plane-slash: "\e069";
-@fa-var-play: "\f04b";
-@fa-var-play-circle: "\f144";
-@fa-var-playstation: "\f3df";
-@fa-var-plug: "\f1e6";
-@fa-var-plus: "\f067";
-@fa-var-plus-circle: "\f055";
-@fa-var-plus-square: "\f0fe";
-@fa-var-podcast: "\f2ce";
-@fa-var-poll: "\f681";
-@fa-var-poll-h: "\f682";
-@fa-var-poo: "\f2fe";
-@fa-var-poo-storm: "\f75a";
-@fa-var-poop: "\f619";
-@fa-var-portrait: "\f3e0";
-@fa-var-pound-sign: "\f154";
-@fa-var-power-off: "\f011";
-@fa-var-pray: "\f683";
-@fa-var-praying-hands: "\f684";
-@fa-var-prescription: "\f5b1";
-@fa-var-prescription-bottle: "\f485";
-@fa-var-prescription-bottle-alt: "\f486";
-@fa-var-print: "\f02f";
-@fa-var-procedures: "\f487";
-@fa-var-product-hunt: "\f288";
-@fa-var-project-diagram: "\f542";
-@fa-var-pump-medical: "\e06a";
-@fa-var-pump-soap: "\e06b";
-@fa-var-pushed: "\f3e1";
-@fa-var-puzzle-piece: "\f12e";
-@fa-var-python: "\f3e2";
-@fa-var-qq: "\f1d6";
-@fa-var-qrcode: "\f029";
-@fa-var-question: "\f128";
-@fa-var-question-circle: "\f059";
-@fa-var-quidditch: "\f458";
-@fa-var-quinscape: "\f459";
-@fa-var-quora: "\f2c4";
-@fa-var-quote-left: "\f10d";
-@fa-var-quote-right: "\f10e";
-@fa-var-quran: "\f687";
-@fa-var-r-project: "\f4f7";
-@fa-var-radiation: "\f7b9";
-@fa-var-radiation-alt: "\f7ba";
-@fa-var-rainbow: "\f75b";
-@fa-var-random: "\f074";
-@fa-var-raspberry-pi: "\f7bb";
-@fa-var-ravelry: "\f2d9";
-@fa-var-react: "\f41b";
-@fa-var-reacteurope: "\f75d";
-@fa-var-readme: "\f4d5";
-@fa-var-rebel: "\f1d0";
-@fa-var-receipt: "\f543";
-@fa-var-record-vinyl: "\f8d9";
-@fa-var-recycle: "\f1b8";
-@fa-var-red-river: "\f3e3";
-@fa-var-reddit: "\f1a1";
-@fa-var-reddit-alien: "\f281";
-@fa-var-reddit-square: "\f1a2";
-@fa-var-redhat: "\f7bc";
-@fa-var-redo: "\f01e";
-@fa-var-redo-alt: "\f2f9";
-@fa-var-registered: "\f25d";
-@fa-var-remove-format: "\f87d";
-@fa-var-renren: "\f18b";
-@fa-var-reply: "\f3e5";
-@fa-var-reply-all: "\f122";
-@fa-var-replyd: "\f3e6";
-@fa-var-republican: "\f75e";
-@fa-var-researchgate: "\f4f8";
-@fa-var-resolving: "\f3e7";
-@fa-var-restroom: "\f7bd";
-@fa-var-retweet: "\f079";
-@fa-var-rev: "\f5b2";
-@fa-var-ribbon: "\f4d6";
-@fa-var-ring: "\f70b";
-@fa-var-road: "\f018";
-@fa-var-robot: "\f544";
-@fa-var-rocket: "\f135";
-@fa-var-rocketchat: "\f3e8";
-@fa-var-rockrms: "\f3e9";
-@fa-var-route: "\f4d7";
-@fa-var-rss: "\f09e";
-@fa-var-rss-square: "\f143";
-@fa-var-ruble-sign: "\f158";
-@fa-var-ruler: "\f545";
-@fa-var-ruler-combined: "\f546";
-@fa-var-ruler-horizontal: "\f547";
-@fa-var-ruler-vertical: "\f548";
-@fa-var-running: "\f70c";
-@fa-var-rupee-sign: "\f156";
-@fa-var-rust: "\e07a";
-@fa-var-sad-cry: "\f5b3";
-@fa-var-sad-tear: "\f5b4";
-@fa-var-safari: "\f267";
-@fa-var-salesforce: "\f83b";
-@fa-var-sass: "\f41e";
-@fa-var-satellite: "\f7bf";
-@fa-var-satellite-dish: "\f7c0";
-@fa-var-save: "\f0c7";
-@fa-var-schlix: "\f3ea";
-@fa-var-school: "\f549";
-@fa-var-screwdriver: "\f54a";
-@fa-var-scribd: "\f28a";
-@fa-var-scroll: "\f70e";
-@fa-var-sd-card: "\f7c2";
-@fa-var-search: "\f002";
-@fa-var-search-dollar: "\f688";
-@fa-var-search-location: "\f689";
-@fa-var-search-minus: "\f010";
-@fa-var-search-plus: "\f00e";
-@fa-var-searchengin: "\f3eb";
-@fa-var-seedling: "\f4d8";
-@fa-var-sellcast: "\f2da";
-@fa-var-sellsy: "\f213";
-@fa-var-server: "\f233";
-@fa-var-servicestack: "\f3ec";
-@fa-var-shapes: "\f61f";
-@fa-var-share: "\f064";
-@fa-var-share-alt: "\f1e0";
-@fa-var-share-alt-square: "\f1e1";
-@fa-var-share-square: "\f14d";
-@fa-var-shekel-sign: "\f20b";
-@fa-var-shield-alt: "\f3ed";
-@fa-var-shield-virus: "\e06c";
-@fa-var-ship: "\f21a";
-@fa-var-shipping-fast: "\f48b";
-@fa-var-shirtsinbulk: "\f214";
-@fa-var-shoe-prints: "\f54b";
-@fa-var-shopify: "\e057";
-@fa-var-shopping-bag: "\f290";
-@fa-var-shopping-basket: "\f291";
-@fa-var-shopping-cart: "\f07a";
-@fa-var-shopware: "\f5b5";
-@fa-var-shower: "\f2cc";
-@fa-var-shuttle-van: "\f5b6";
-@fa-var-sign: "\f4d9";
-@fa-var-sign-in-alt: "\f2f6";
-@fa-var-sign-language: "\f2a7";
-@fa-var-sign-out-alt: "\f2f5";
-@fa-var-signal: "\f012";
-@fa-var-signature: "\f5b7";
-@fa-var-sim-card: "\f7c4";
-@fa-var-simplybuilt: "\f215";
-@fa-var-sink: "\e06d";
-@fa-var-sistrix: "\f3ee";
-@fa-var-sitemap: "\f0e8";
-@fa-var-sith: "\f512";
-@fa-var-skating: "\f7c5";
-@fa-var-sketch: "\f7c6";
-@fa-var-skiing: "\f7c9";
-@fa-var-skiing-nordic: "\f7ca";
-@fa-var-skull: "\f54c";
-@fa-var-skull-crossbones: "\f714";
-@fa-var-skyatlas: "\f216";
-@fa-var-skype: "\f17e";
-@fa-var-slack: "\f198";
-@fa-var-slack-hash: "\f3ef";
-@fa-var-slash: "\f715";
-@fa-var-sleigh: "\f7cc";
-@fa-var-sliders-h: "\f1de";
-@fa-var-slideshare: "\f1e7";
-@fa-var-smile: "\f118";
-@fa-var-smile-beam: "\f5b8";
-@fa-var-smile-wink: "\f4da";
-@fa-var-smog: "\f75f";
-@fa-var-smoking: "\f48d";
-@fa-var-smoking-ban: "\f54d";
-@fa-var-sms: "\f7cd";
-@fa-var-snapchat: "\f2ab";
-@fa-var-snapchat-ghost: "\f2ac";
-@fa-var-snapchat-square: "\f2ad";
-@fa-var-snowboarding: "\f7ce";
-@fa-var-snowflake: "\f2dc";
-@fa-var-snowman: "\f7d0";
-@fa-var-snowplow: "\f7d2";
-@fa-var-soap: "\e06e";
-@fa-var-socks: "\f696";
-@fa-var-solar-panel: "\f5ba";
-@fa-var-sort: "\f0dc";
-@fa-var-sort-alpha-down: "\f15d";
-@fa-var-sort-alpha-down-alt: "\f881";
-@fa-var-sort-alpha-up: "\f15e";
-@fa-var-sort-alpha-up-alt: "\f882";
-@fa-var-sort-amount-down: "\f160";
-@fa-var-sort-amount-down-alt: "\f884";
-@fa-var-sort-amount-up: "\f161";
-@fa-var-sort-amount-up-alt: "\f885";
-@fa-var-sort-down: "\f0dd";
-@fa-var-sort-numeric-down: "\f162";
-@fa-var-sort-numeric-down-alt: "\f886";
-@fa-var-sort-numeric-up: "\f163";
-@fa-var-sort-numeric-up-alt: "\f887";
-@fa-var-sort-up: "\f0de";
-@fa-var-soundcloud: "\f1be";
-@fa-var-sourcetree: "\f7d3";
-@fa-var-spa: "\f5bb";
-@fa-var-space-shuttle: "\f197";
-@fa-var-speakap: "\f3f3";
-@fa-var-speaker-deck: "\f83c";
-@fa-var-spell-check: "\f891";
-@fa-var-spider: "\f717";
-@fa-var-spinner: "\f110";
-@fa-var-splotch: "\f5bc";
-@fa-var-spotify: "\f1bc";
-@fa-var-spray-can: "\f5bd";
-@fa-var-square: "\f0c8";
-@fa-var-square-full: "\f45c";
-@fa-var-square-root-alt: "\f698";
-@fa-var-squarespace: "\f5be";
-@fa-var-stack-exchange: "\f18d";
-@fa-var-stack-overflow: "\f16c";
-@fa-var-stackpath: "\f842";
-@fa-var-stamp: "\f5bf";
-@fa-var-star: "\f005";
-@fa-var-star-and-crescent: "\f699";
-@fa-var-star-half: "\f089";
-@fa-var-star-half-alt: "\f5c0";
-@fa-var-star-of-david: "\f69a";
-@fa-var-star-of-life: "\f621";
-@fa-var-staylinked: "\f3f5";
-@fa-var-steam: "\f1b6";
-@fa-var-steam-square: "\f1b7";
-@fa-var-steam-symbol: "\f3f6";
-@fa-var-step-backward: "\f048";
-@fa-var-step-forward: "\f051";
-@fa-var-stethoscope: "\f0f1";
-@fa-var-sticker-mule: "\f3f7";
-@fa-var-sticky-note: "\f249";
-@fa-var-stop: "\f04d";
-@fa-var-stop-circle: "\f28d";
-@fa-var-stopwatch: "\f2f2";
-@fa-var-stopwatch-20: "\e06f";
-@fa-var-store: "\f54e";
-@fa-var-store-alt: "\f54f";
-@fa-var-store-alt-slash: "\e070";
-@fa-var-store-slash: "\e071";
-@fa-var-strava: "\f428";
-@fa-var-stream: "\f550";
-@fa-var-street-view: "\f21d";
-@fa-var-strikethrough: "\f0cc";
-@fa-var-stripe: "\f429";
-@fa-var-stripe-s: "\f42a";
-@fa-var-stroopwafel: "\f551";
-@fa-var-studiovinari: "\f3f8";
-@fa-var-stumbleupon: "\f1a4";
-@fa-var-stumbleupon-circle: "\f1a3";
-@fa-var-subscript: "\f12c";
-@fa-var-subway: "\f239";
-@fa-var-suitcase: "\f0f2";
-@fa-var-suitcase-rolling: "\f5c1";
-@fa-var-sun: "\f185";
-@fa-var-superpowers: "\f2dd";
-@fa-var-superscript: "\f12b";
-@fa-var-supple: "\f3f9";
-@fa-var-surprise: "\f5c2";
-@fa-var-suse: "\f7d6";
-@fa-var-swatchbook: "\f5c3";
-@fa-var-swift: "\f8e1";
-@fa-var-swimmer: "\f5c4";
-@fa-var-swimming-pool: "\f5c5";
-@fa-var-symfony: "\f83d";
-@fa-var-synagogue: "\f69b";
-@fa-var-sync: "\f021";
-@fa-var-sync-alt: "\f2f1";
-@fa-var-syringe: "\f48e";
-@fa-var-table: "\f0ce";
-@fa-var-table-tennis: "\f45d";
-@fa-var-tablet: "\f10a";
-@fa-var-tablet-alt: "\f3fa";
-@fa-var-tablets: "\f490";
-@fa-var-tachometer-alt: "\f3fd";
-@fa-var-tag: "\f02b";
-@fa-var-tags: "\f02c";
-@fa-var-tape: "\f4db";
-@fa-var-tasks: "\f0ae";
-@fa-var-taxi: "\f1ba";
-@fa-var-teamspeak: "\f4f9";
-@fa-var-teeth: "\f62e";
-@fa-var-teeth-open: "\f62f";
-@fa-var-telegram: "\f2c6";
-@fa-var-telegram-plane: "\f3fe";
-@fa-var-temperature-high: "\f769";
-@fa-var-temperature-low: "\f76b";
-@fa-var-tencent-weibo: "\f1d5";
-@fa-var-tenge: "\f7d7";
-@fa-var-terminal: "\f120";
-@fa-var-text-height: "\f034";
-@fa-var-text-width: "\f035";
-@fa-var-th: "\f00a";
-@fa-var-th-large: "\f009";
-@fa-var-th-list: "\f00b";
-@fa-var-the-red-yeti: "\f69d";
-@fa-var-theater-masks: "\f630";
-@fa-var-themeco: "\f5c6";
-@fa-var-themeisle: "\f2b2";
-@fa-var-thermometer: "\f491";
-@fa-var-thermometer-empty: "\f2cb";
-@fa-var-thermometer-full: "\f2c7";
-@fa-var-thermometer-half: "\f2c9";
-@fa-var-thermometer-quarter: "\f2ca";
-@fa-var-thermometer-three-quarters: "\f2c8";
-@fa-var-think-peaks: "\f731";
-@fa-var-thumbs-down: "\f165";
-@fa-var-thumbs-up: "\f164";
-@fa-var-thumbtack: "\f08d";
-@fa-var-ticket-alt: "\f3ff";
-@fa-var-tiktok: "\e07b";
-@fa-var-times: "\f00d";
-@fa-var-times-circle: "\f057";
-@fa-var-tint: "\f043";
-@fa-var-tint-slash: "\f5c7";
-@fa-var-tired: "\f5c8";
-@fa-var-toggle-off: "\f204";
-@fa-var-toggle-on: "\f205";
-@fa-var-toilet: "\f7d8";
-@fa-var-toilet-paper: "\f71e";
-@fa-var-toilet-paper-slash: "\e072";
-@fa-var-toolbox: "\f552";
-@fa-var-tools: "\f7d9";
-@fa-var-tooth: "\f5c9";
-@fa-var-torah: "\f6a0";
-@fa-var-torii-gate: "\f6a1";
-@fa-var-tractor: "\f722";
-@fa-var-trade-federation: "\f513";
-@fa-var-trademark: "\f25c";
-@fa-var-traffic-light: "\f637";
-@fa-var-trailer: "\e041";
-@fa-var-train: "\f238";
-@fa-var-tram: "\f7da";
-@fa-var-transgender: "\f224";
-@fa-var-transgender-alt: "\f225";
-@fa-var-trash: "\f1f8";
-@fa-var-trash-alt: "\f2ed";
-@fa-var-trash-restore: "\f829";
-@fa-var-trash-restore-alt: "\f82a";
-@fa-var-tree: "\f1bb";
-@fa-var-trello: "\f181";
-@fa-var-tripadvisor: "\f262";
-@fa-var-trophy: "\f091";
-@fa-var-truck: "\f0d1";
-@fa-var-truck-loading: "\f4de";
-@fa-var-truck-monster: "\f63b";
-@fa-var-truck-moving: "\f4df";
-@fa-var-truck-pickup: "\f63c";
-@fa-var-tshirt: "\f553";
-@fa-var-tty: "\f1e4";
-@fa-var-tumblr: "\f173";
-@fa-var-tumblr-square: "\f174";
-@fa-var-tv: "\f26c";
-@fa-var-twitch: "\f1e8";
-@fa-var-twitter: "\f099";
-@fa-var-twitter-square: "\f081";
-@fa-var-typo3: "\f42b";
-@fa-var-uber: "\f402";
-@fa-var-ubuntu: "\f7df";
-@fa-var-uikit: "\f403";
-@fa-var-umbraco: "\f8e8";
-@fa-var-umbrella: "\f0e9";
-@fa-var-umbrella-beach: "\f5ca";
-@fa-var-uncharted: "\e084";
-@fa-var-underline: "\f0cd";
-@fa-var-undo: "\f0e2";
-@fa-var-undo-alt: "\f2ea";
-@fa-var-uniregistry: "\f404";
-@fa-var-unity: "\e049";
-@fa-var-universal-access: "\f29a";
-@fa-var-university: "\f19c";
-@fa-var-unlink: "\f127";
-@fa-var-unlock: "\f09c";
-@fa-var-unlock-alt: "\f13e";
-@fa-var-unsplash: "\e07c";
-@fa-var-untappd: "\f405";
-@fa-var-upload: "\f093";
-@fa-var-ups: "\f7e0";
-@fa-var-usb: "\f287";
-@fa-var-user: "\f007";
-@fa-var-user-alt: "\f406";
-@fa-var-user-alt-slash: "\f4fa";
-@fa-var-user-astronaut: "\f4fb";
-@fa-var-user-check: "\f4fc";
-@fa-var-user-circle: "\f2bd";
-@fa-var-user-clock: "\f4fd";
-@fa-var-user-cog: "\f4fe";
-@fa-var-user-edit: "\f4ff";
-@fa-var-user-friends: "\f500";
-@fa-var-user-graduate: "\f501";
-@fa-var-user-injured: "\f728";
-@fa-var-user-lock: "\f502";
-@fa-var-user-md: "\f0f0";
-@fa-var-user-minus: "\f503";
-@fa-var-user-ninja: "\f504";
-@fa-var-user-nurse: "\f82f";
-@fa-var-user-plus: "\f234";
-@fa-var-user-secret: "\f21b";
-@fa-var-user-shield: "\f505";
-@fa-var-user-slash: "\f506";
-@fa-var-user-tag: "\f507";
-@fa-var-user-tie: "\f508";
-@fa-var-user-times: "\f235";
-@fa-var-users: "\f0c0";
-@fa-var-users-cog: "\f509";
-@fa-var-users-slash: "\e073";
-@fa-var-usps: "\f7e1";
-@fa-var-ussunnah: "\f407";
-@fa-var-utensil-spoon: "\f2e5";
-@fa-var-utensils: "\f2e7";
-@fa-var-vaadin: "\f408";
-@fa-var-vector-square: "\f5cb";
-@fa-var-venus: "\f221";
-@fa-var-venus-double: "\f226";
-@fa-var-venus-mars: "\f228";
-@fa-var-vest: "\e085";
-@fa-var-vest-patches: "\e086";
-@fa-var-viacoin: "\f237";
-@fa-var-viadeo: "\f2a9";
-@fa-var-viadeo-square: "\f2aa";
-@fa-var-vial: "\f492";
-@fa-var-vials: "\f493";
-@fa-var-viber: "\f409";
-@fa-var-video: "\f03d";
-@fa-var-video-slash: "\f4e2";
-@fa-var-vihara: "\f6a7";
-@fa-var-vimeo: "\f40a";
-@fa-var-vimeo-square: "\f194";
-@fa-var-vimeo-v: "\f27d";
-@fa-var-vine: "\f1ca";
-@fa-var-virus: "\e074";
-@fa-var-virus-slash: "\e075";
-@fa-var-viruses: "\e076";
-@fa-var-vk: "\f189";
-@fa-var-vnv: "\f40b";
-@fa-var-voicemail: "\f897";
-@fa-var-volleyball-ball: "\f45f";
-@fa-var-volume-down: "\f027";
-@fa-var-volume-mute: "\f6a9";
-@fa-var-volume-off: "\f026";
-@fa-var-volume-up: "\f028";
-@fa-var-vote-yea: "\f772";
-@fa-var-vr-cardboard: "\f729";
-@fa-var-vuejs: "\f41f";
-@fa-var-walking: "\f554";
-@fa-var-wallet: "\f555";
-@fa-var-warehouse: "\f494";
-@fa-var-watchman-monitoring: "\e087";
-@fa-var-water: "\f773";
-@fa-var-wave-square: "\f83e";
-@fa-var-waze: "\f83f";
-@fa-var-weebly: "\f5cc";
-@fa-var-weibo: "\f18a";
-@fa-var-weight: "\f496";
-@fa-var-weight-hanging: "\f5cd";
-@fa-var-weixin: "\f1d7";
-@fa-var-whatsapp: "\f232";
-@fa-var-whatsapp-square: "\f40c";
-@fa-var-wheelchair: "\f193";
-@fa-var-whmcs: "\f40d";
-@fa-var-wifi: "\f1eb";
-@fa-var-wikipedia-w: "\f266";
-@fa-var-wind: "\f72e";
-@fa-var-window-close: "\f410";
-@fa-var-window-maximize: "\f2d0";
-@fa-var-window-minimize: "\f2d1";
-@fa-var-window-restore: "\f2d2";
-@fa-var-windows: "\f17a";
-@fa-var-wine-bottle: "\f72f";
-@fa-var-wine-glass: "\f4e3";
-@fa-var-wine-glass-alt: "\f5ce";
-@fa-var-wix: "\f5cf";
-@fa-var-wizards-of-the-coast: "\f730";
-@fa-var-wodu: "\e088";
-@fa-var-wolf-pack-battalion: "\f514";
-@fa-var-won-sign: "\f159";
-@fa-var-wordpress: "\f19a";
-@fa-var-wordpress-simple: "\f411";
-@fa-var-wpbeginner: "\f297";
-@fa-var-wpexplorer: "\f2de";
-@fa-var-wpforms: "\f298";
-@fa-var-wpressr: "\f3e4";
-@fa-var-wrench: "\f0ad";
-@fa-var-x-ray: "\f497";
-@fa-var-xbox: "\f412";
-@fa-var-xing: "\f168";
-@fa-var-xing-square: "\f169";
-@fa-var-y-combinator: "\f23b";
-@fa-var-yahoo: "\f19e";
-@fa-var-yammer: "\f840";
-@fa-var-yandex: "\f413";
-@fa-var-yandex-international: "\f414";
-@fa-var-yarn: "\f7e3";
-@fa-var-yelp: "\f1e9";
-@fa-var-yen-sign: "\f157";
-@fa-var-yin-yang: "\f6ad";
-@fa-var-yoast: "\f2b1";
-@fa-var-youtube: "\f167";
-@fa-var-youtube-square: "\f431";
-@fa-var-zhihu: "\f63f";
diff --git a/public/vendor/fontawesome/less/brands.less b/public/vendor/fontawesome/less/brands.less
deleted file mode 100644
index 030b7ae909..0000000000
--- a/public/vendor/fontawesome/less/brands.less
+++ /dev/null
@@ -1,23 +0,0 @@
-/*!
- * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- */
-@import "_variables.less";
-
-@font-face {
-  font-family: 'Font Awesome 5 Brands';
-  font-style: normal;
-  font-weight: 400;
-  font-display: @fa-font-display;
-  src: url('@{fa-font-path}/fa-brands-400.eot');
-  src: url('@{fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
-    url('@{fa-font-path}/fa-brands-400.woff2') format('woff2'),
-    url('@{fa-font-path}/fa-brands-400.woff') format('woff'),
-    url('@{fa-font-path}/fa-brands-400.ttf') format('truetype'),
-    url('@{fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
-}
-
-.fab {
-  font-family: 'Font Awesome 5 Brands';
-  font-weight: 400;
-}
diff --git a/public/vendor/fontawesome/less/fontawesome.less b/public/vendor/fontawesome/less/fontawesome.less
deleted file mode 100644
index 826afc5e5e..0000000000
--- a/public/vendor/fontawesome/less/fontawesome.less
+++ /dev/null
@@ -1,16 +0,0 @@
-/*!
- * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- */
-@import "_variables.less";
-@import "_mixins.less";
-@import "_core.less";
-@import "_larger.less";
-@import "_fixed-width.less";
-@import "_list.less";
-@import "_bordered-pulled.less";
-@import "_animated.less";
-@import "_rotated-flipped.less";
-@import "_stacked.less";
-@import "_icons.less";
-@import "_screen-reader.less";
diff --git a/public/vendor/fontawesome/less/nodebb-shims.less b/public/vendor/fontawesome/less/nodebb-shims.less
deleted file mode 100644
index a2621fb4ef..0000000000
--- a/public/vendor/fontawesome/less/nodebb-shims.less
+++ /dev/null
@@ -1,321 +0,0 @@
-@import "_variables.less";
-
-
-@font-face {
-    font-family: 'FontAwesome';
-    font-style: normal;
-    font-weight: 400;
-    font-display: @fa-font-display;
-    src: url('@{fa-font-path}/fa-solid-900.eot');
-    src: url('@{fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
-      url('@{fa-font-path}/fa-solid-900.woff2') format('woff2'),
-      url('@{fa-font-path}/fa-solid-900.woff') format('woff'),
-      url('@{fa-font-path}/fa-solid-900.ttf') format('truetype'),
-      url('@{fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
-}
-@font-face {
-    font-family: 'FontAwesome';
-    font-style: normal;
-    font-weight: 400;
-    font-display: @fa-font-display;
-    src: url('@{fa-font-path}/fa-brands-400.eot');
-    src: url('@{fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
-      url('@{fa-font-path}/fa-brands-400.woff2') format('woff2'),
-      url('@{fa-font-path}/fa-brands-400.woff') format('woff'),
-      url('@{fa-font-path}/fa-brands-400.ttf') format('truetype'),
-      url('@{fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
-}
-@font-face {
-  font-family: 'FontAwesome';
-  font-style: normal;
-  font-weight: 400;
-  font-display: @fa-font-display;
-  src: url('@{fa-font-path}/fa-regular-400.eot');
-  src: url('@{fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
-    url('@{fa-font-path}/fa-regular-400.woff2') format('woff2'),
-    url('@{fa-font-path}/fa-regular-400.woff') format('woff'),
-    url('@{fa-font-path}/fa-regular-400.ttf') format('truetype'),
-    url('@{fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
-}
-  
-
-@fa-var-address-book-o: @fa-var-address-book;
-@fa-var-address-card-o: @fa-var-address-card;
-@fa-var-area-chart: @fa-var-chart-area;
-@fa-var-arrow-circle-o-down: @fa-var-arrow-alt-circle-down;
-@fa-var-arrow-circle-o-left: @fa-var-arrow-alt-circle-left;
-@fa-var-arrow-circle-o-right: @fa-var-arrow-alt-circle-right;
-@fa-var-arrow-circle-o-up: @fa-var-arrow-alt-circle-up;
-@fa-var-arrows: @fa-var-arrows-alt;
-@fa-var-arrows-alt: @fa-var-expand-arrows-alt;
-@fa-var-arrows-h: @fa-var-arrows-alt-h;
-@fa-var-arrows-v: @fa-var-arrows-alt-v;
-@fa-var-asl-interpreting: @fa-var-american-sign-language-interpreting;
-@fa-var-automobile: @fa-var-car;
-@fa-var-bank: @fa-var-university;
-@fa-var-bar-chart: @fa-var-chart-bar;
-@fa-var-bar-chart-o: @fa-var-chart-bar;
-@fa-var-bathtub: @fa-var-bath;
-@fa-var-battery: @fa-var-battery-full;
-@fa-var-battery-0: @fa-var-battery-empty;
-@fa-var-battery-1: @fa-var-battery-quarter;
-@fa-var-battery-2: @fa-var-battery-half;
-@fa-var-battery-3: @fa-var-battery-three-quarters;
-@fa-var-battery-4: @fa-var-battery-full;
-@fa-var-bell-o: @fa-var-bell;
-@fa-var-bell-slash-o: @fa-var-bell-slash;
-@fa-var-bitbucket-square: @fa-var-bitbucket;
-@fa-var-bitcoin: @fa-var-btc;
-@fa-var-bookmark-o: @fa-var-bookmark;
-@fa-var-building-o: @fa-var-building;
-@fa-var-cab: @fa-var-taxi;
-@fa-var-calendar: @fa-var-calendar-alt;
-@fa-var-calendar-check-o: @fa-var-calendar-check;
-@fa-var-calendar-minus-o: @fa-var-calendar-minus;
-@fa-var-calendar-o: @fa-var-calendar;
-@fa-var-calendar-plus-o: @fa-var-calendar-plus;
-@fa-var-calendar-times-o: @fa-var-calendar-times;
-@fa-var-caret-square-o-down: @fa-var-caret-square-down;
-@fa-var-caret-square-o-left: @fa-var-caret-square-left;
-@fa-var-caret-square-o-right: @fa-var-caret-square-right;
-@fa-var-caret-square-o-up: @fa-var-caret-square-up;
-@fa-var-cc: @fa-var-closed-captioning;
-@fa-var-chain: @fa-var-link;
-@fa-var-chain-broken: @fa-var-unlink;
-@fa-var-check-circle-o: @fa-var-check-circle;
-@fa-var-check-square-o: @fa-var-check-square;
-@fa-var-circle-o: @fa-var-circle;
-@fa-var-circle-o-notch: @fa-var-circle-notch;
-@fa-var-circle-thin: @fa-var-circle;
-@fa-var-clock-o: @fa-var-clock;
-@fa-var-close: @fa-var-times;
-@fa-var-cloud-download: @fa-var-cloud-download-alt;
-@fa-var-cloud-upload: @fa-var-cloud-upload-alt;
-@fa-var-cny: @fa-var-yen-sign;
-@fa-var-code-fork: @fa-var-code-branch;
-@fa-var-comment-o: @fa-var-comment;
-@fa-var-commenting: @fa-var-comment-dots;
-@fa-var-commenting-o: @fa-var-comment-dots;
-@fa-var-comments-o: @fa-var-comments;
-@fa-var-credit-card-alt: @fa-var-credit-card;
-@fa-var-cutlery: @fa-var-utensils;
-@fa-var-dashboard: @fa-var-tachometer-alt;
-@fa-var-deafness: @fa-var-deaf;
-@fa-var-dedent: @fa-var-outdent;
-@fa-var-diamond: @fa-var-gem;
-@fa-var-dollar: @fa-var-dollar-sign;
-@fa-var-dot-circle-o: @fa-var-dot-circle;
-@fa-var-drivers-license: @fa-var-id-card;
-@fa-var-drivers-license-o: @fa-var-id-card;
-@fa-var-eercast: @fa-var-sellcast;
-@fa-var-envelope-o: @fa-var-envelope;
-@fa-var-envelope-open-o: @fa-var-envelope-open;
-@fa-var-eur: @fa-var-euro-sign;
-@fa-var-euro: @fa-var-euro-sign;
-@fa-var-exchange: @fa-var-exchange-alt;
-@fa-var-external-link: @fa-var-external-link-alt;
-@fa-var-external-link-square: @fa-var-external-link-square-alt;
-@fa-var-eyedropper: @fa-var-eye-dropper;
-@fa-var-fa: @fa-var-font-awesome;
-@fa-var-facebook: @fa-var-facebook-f;
-@fa-var-facebook-official: @fa-var-facebook;
-@fa-var-feed: @fa-var-rss;
-@fa-var-file-archive-o: @fa-var-file-archive;
-@fa-var-file-audio-o: @fa-var-file-audio;
-@fa-var-file-code-o: @fa-var-file-code;
-@fa-var-file-excel-o: @fa-var-file-excel;
-@fa-var-file-image-o: @fa-var-file-image;
-@fa-var-file-movie-o: @fa-var-file-video;
-@fa-var-file-o: @fa-var-file;
-@fa-var-file-pdf-o: @fa-var-file-pdf;
-@fa-var-file-photo-o: @fa-var-file-image;
-@fa-var-file-picture-o: @fa-var-file-image;
-@fa-var-file-powerpoint-o: @fa-var-file-powerpoint;
-@fa-var-file-sound-o: @fa-var-file-audio;
-@fa-var-file-text: @fa-var-file-alt;
-@fa-var-file-text-o: @fa-var-file-alt;
-@fa-var-file-video-o: @fa-var-file-video;
-@fa-var-file-word-o: @fa-var-file-word;
-@fa-var-file-zip-o: @fa-var-file-archive;
-@fa-var-files-o: @fa-var-copy;
-@fa-var-flag-o: @fa-var-flag;
-@fa-var-flash: @fa-var-bolt;
-@fa-var-floppy-o: @fa-var-save;
-@fa-var-folder-o: @fa-var-folder;
-@fa-var-folder-open-o: @fa-var-folder-open;
-@fa-var-frown-o: @fa-var-frown;
-@fa-var-futbol-o: @fa-var-futbol;
-@fa-var-gbp: @fa-var-pound-sign;
-@fa-var-ge: @fa-var-empire;
-@fa-var-gear: @fa-var-cog;
-@fa-var-gears: @fa-var-cogs;
-@fa-var-gittip: @fa-var-gratipay;
-@fa-var-glass: @fa-var-glass-martini;
-@fa-var-google-plus: @fa-var-google-plus-g;
-@fa-var-google-plus-circle: @fa-var-google-plus;
-@fa-var-google-plus-official: @fa-var-google-plus;
-@fa-var-group: @fa-var-users;
-@fa-var-hand-grab-o: @fa-var-hand-rock;
-@fa-var-hand-lizard-o: @fa-var-hand-lizard;
-@fa-var-hand-o-down: @fa-var-hand-point-down;
-@fa-var-hand-o-left: @fa-var-hand-point-left;
-@fa-var-hand-o-right: @fa-var-hand-point-right;
-@fa-var-hand-o-up: @fa-var-hand-point-up;
-@fa-var-hand-paper-o: @fa-var-hand-paper;
-@fa-var-hand-peace-o: @fa-var-hand-peace;
-@fa-var-hand-pointer-o: @fa-var-hand-pointer;
-@fa-var-hand-rock-o: @fa-var-hand-rock;
-@fa-var-hand-scissors-o: @fa-var-hand-scissors;
-@fa-var-hand-spock-o: @fa-var-hand-spock;
-@fa-var-hand-stop-o: @fa-var-hand-paper;
-@fa-var-handshake-o: @fa-var-handshake;
-@fa-var-hard-of-hearing: @fa-var-deaf;
-@fa-var-hdd-o: @fa-var-hdd;
-@fa-var-header: @fa-var-heading;
-@fa-var-heart-o: @fa-var-heart;
-@fa-var-hospital-o: @fa-var-hospital;
-@fa-var-hotel: @fa-var-bed;
-@fa-var-hourglass-1: @fa-var-hourglass-start;
-@fa-var-hourglass-2: @fa-var-hourglass-half;
-@fa-var-hourglass-3: @fa-var-hourglass-end;
-@fa-var-hourglass-o: @fa-var-hourglass;
-@fa-var-id-card-o: @fa-var-id-card;
-@fa-var-ils: @fa-var-shekel-sign;
-@fa-var-inr: @fa-var-rupee-sign;
-@fa-var-institution: @fa-var-university;
-@fa-var-intersex: @fa-var-transgender;
-@fa-var-jpy: @fa-var-yen-sign;
-@fa-var-keyboard-o: @fa-var-keyboard;
-@fa-var-krw: @fa-var-won-sign;
-@fa-var-legal: @fa-var-gavel;
-@fa-var-lemon-o: @fa-var-lemon;
-@fa-var-level-down: @fa-var-level-down-alt;
-@fa-var-level-up: @fa-var-level-up-alt;
-@fa-var-life-bouy: @fa-var-life-ring;
-@fa-var-life-buoy: @fa-var-life-ring;
-@fa-var-life-saver: @fa-var-life-ring;
-@fa-var-lightbulb-o: @fa-var-lightbulb;
-@fa-var-line-chart: @fa-var-chart-line;
-@fa-var-linkedin: @fa-var-linkedin-in;
-@fa-var-linkedin-square: @fa-var-linkedin;
-@fa-var-long-arrow-down: @fa-var-long-arrow-alt-down;
-@fa-var-long-arrow-left: @fa-var-long-arrow-alt-left;
-@fa-var-long-arrow-right: @fa-var-long-arrow-alt-right;
-@fa-var-long-arrow-up: @fa-var-long-arrow-alt-up;
-@fa-var-mail-forward: @fa-var-share;
-@fa-var-mail-reply: @fa-var-reply;
-@fa-var-mail-reply-all: @fa-var-reply-all;
-@fa-var-map-marker: @fa-var-map-marker-alt;
-@fa-var-map-o: @fa-var-map;
-@fa-var-meanpath: @fa-var-font-awesome;
-@fa-var-meh-o: @fa-var-meh;
-@fa-var-minus-square-o: @fa-var-minus-square;
-@fa-var-mobile: @fa-var-mobile-alt;
-@fa-var-mobile-phone: @fa-var-mobile-alt;
-@fa-var-money: @fa-var-money-bill-alt;
-@fa-var-moon-o: @fa-var-moon;
-@fa-var-mortar-board: @fa-var-graduation-cap;
-@fa-var-navicon: @fa-var-bars;
-@fa-var-newspaper-o: @fa-var-newspaper;
-@fa-var-paper-plane-o: @fa-var-paper-plane;
-@fa-var-paste: @fa-var-clipboard;
-@fa-var-pause-circle-o: @fa-var-pause-circle;
-@fa-var-pencil: @fa-var-pencil-alt;
-@fa-var-pencil-square: @fa-var-pen-square;
-@fa-var-pencil-square-o: @fa-var-edit;
-@fa-var-photo: @fa-var-image;
-@fa-var-picture-o: @fa-var-image;
-@fa-var-pie-chart: @fa-var-chart-pie;
-@fa-var-play-circle-o: @fa-var-play-circle;
-@fa-var-plus-square-o: @fa-var-plus-square;
-@fa-var-question-circle-o: @fa-var-question-circle;
-@fa-var-ra: @fa-var-rebel;
-@fa-var-refresh: @fa-var-sync;
-@fa-var-remove: @fa-var-times;
-@fa-var-reorder: @fa-var-bars;
-@fa-var-repeat: @fa-var-redo;
-@fa-var-resistance: @fa-var-rebel;
-@fa-var-rmb: @fa-var-yen-sign;
-@fa-var-rotate-left: @fa-var-undo;
-@fa-var-rotate-right: @fa-var-redo;
-@fa-var-rouble: @fa-var-ruble-sign;
-@fa-var-rub: @fa-var-ruble-sign;
-@fa-var-ruble: @fa-var-ruble-sign;
-@fa-var-rupee: @fa-var-rupee-sign;
-@fa-var-s15: @fa-var-bath;
-@fa-var-scissors: @fa-var-cut;
-@fa-var-send: @fa-var-paper-plane;
-@fa-var-send-o: @fa-var-paper-plane;
-@fa-var-share-square-o: @fa-var-share-square;
-@fa-var-shekel: @fa-var-shekel-sign;
-@fa-var-sheqel: @fa-var-shekel-sign;
-@fa-var-shield: @fa-var-shield-alt;
-@fa-var-sign-in: @fa-var-sign-in-alt;
-@fa-var-sign-out: @fa-var-sign-out-alt;
-@fa-var-signing: @fa-var-sign-language;
-@fa-var-sliders: @fa-var-sliders-h;
-@fa-var-smile-o: @fa-var-smile;
-@fa-var-snowflake-o: @fa-var-snowflake;
-@fa-var-soccer-ball-o: @fa-var-futbol;
-@fa-var-sort-alpha-asc: @fa-var-sort-alpha-down;
-@fa-var-sort-alpha-desc: @fa-var-sort-alpha-up;
-@fa-var-sort-amount-asc: @fa-var-sort-amount-down;
-@fa-var-sort-amount-desc: @fa-var-sort-amount-up;
-@fa-var-sort-asc: @fa-var-sort-up;
-@fa-var-sort-desc: @fa-var-sort-down;
-@fa-var-sort-numeric-asc: @fa-var-sort-numeric-down;
-@fa-var-sort-numeric-desc: @fa-var-sort-numeric-up;
-@fa-var-spoon: @fa-var-utensil-spoon;
-@fa-var-square-o: @fa-var-square;
-@fa-var-star-half-empty: @fa-var-star-half;
-@fa-var-star-half-full: @fa-var-star-half;
-@fa-var-star-half-o: @fa-var-star-half;
-@fa-var-star-o: @fa-var-star;
-@fa-var-sticky-note-o: @fa-var-sticky-note;
-@fa-var-stop-circle-o: @fa-var-stop-circle;
-@fa-var-sun-o: @fa-var-sun;
-@fa-var-support: @fa-var-life-ring;
-@fa-var-tablet: @fa-var-tablet-alt;
-@fa-var-tachometer: @fa-var-tachometer-alt;
-@fa-var-television: @fa-var-tv;
-@fa-var-thermometer: @fa-var-thermometer-full;
-@fa-var-thermometer-0: @fa-var-thermometer-empty;
-@fa-var-thermometer-1: @fa-var-thermometer-quarter;
-@fa-var-thermometer-2: @fa-var-thermometer-half;
-@fa-var-thermometer-3: @fa-var-thermometer-three-quarters;
-@fa-var-thermometer-4: @fa-var-thermometer-full;
-@fa-var-thumb-tack: @fa-var-thumbtack;
-@fa-var-thumbs-o-down: @fa-var-thumbs-down;
-@fa-var-thumbs-o-up: @fa-var-thumbs-up;
-@fa-var-ticket: @fa-var-ticket-alt;
-@fa-var-times-circle-o: @fa-var-times-circle;
-@fa-var-times-rectangle: @fa-var-window-close;
-@fa-var-times-rectangle-o: @fa-var-window-close;
-@fa-var-toggle-down: @fa-var-caret-square-down;
-@fa-var-toggle-left: @fa-var-caret-square-left;
-@fa-var-toggle-right: @fa-var-caret-square-right;
-@fa-var-toggle-up: @fa-var-caret-square-up;
-@fa-var-trash: @fa-var-trash-alt;
-@fa-var-trash-o: @fa-var-trash-alt;
-@fa-var-try: @fa-var-lira-sign;
-@fa-var-turkish-lira: @fa-var-lira-sign;
-@fa-var-unsorted: @fa-var-sort;
-@fa-var-usd: @fa-var-dollar-sign;
-@fa-var-user-circle-o: @fa-var-user-circle;
-@fa-var-user-o: @fa-var-user;
-@fa-var-vcard: @fa-var-address-card;
-@fa-var-vcard-o: @fa-var-address-card;
-@fa-var-video-camera: @fa-var-video;
-@fa-var-vimeo: @fa-var-vimeo-v;
-@fa-var-volume-control-phone: @fa-var-phone-volume;
-@fa-var-warning: @fa-var-exclamation-triangle;
-@fa-var-wechat: @fa-var-weixin;
-@fa-var-wheelchair-alt: @fa-var-accessible-icon;
-@fa-var-window-close-o: @fa-var-window-close;
-@fa-var-won: @fa-var-won-sign;
-@fa-var-y-combinator-square: @fa-var-hacker-news;
-@fa-var-yc: @fa-var-y-combinator;
-@fa-var-yc-square: @fa-var-hacker-news;
-@fa-var-yen: @fa-var-yen-sign;
-@fa-var-youtube-play: @fa-var-youtube;
-
diff --git a/public/vendor/fontawesome/less/regular.less b/public/vendor/fontawesome/less/regular.less
deleted file mode 100644
index 8057ddd92f..0000000000
--- a/public/vendor/fontawesome/less/regular.less
+++ /dev/null
@@ -1,23 +0,0 @@
-/*!
- * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- */
-@import "_variables.less";
-
-@font-face {
-  font-family: 'Font Awesome 5 Free';
-  font-style: normal;
-  font-weight: 400;
-  font-display: @fa-font-display;
-  src: url('@{fa-font-path}/fa-regular-400.eot');
-  src: url('@{fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
-    url('@{fa-font-path}/fa-regular-400.woff2') format('woff2'),
-    url('@{fa-font-path}/fa-regular-400.woff') format('woff'),
-    url('@{fa-font-path}/fa-regular-400.ttf') format('truetype'),
-    url('@{fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
-}
-
-.far {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 400;
-}
diff --git a/public/vendor/fontawesome/less/solid.less b/public/vendor/fontawesome/less/solid.less
deleted file mode 100644
index ea03f05c07..0000000000
--- a/public/vendor/fontawesome/less/solid.less
+++ /dev/null
@@ -1,24 +0,0 @@
-/*!
- * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- */
-@import "_variables.less";
-
-@font-face {
-  font-family: 'Font Awesome 5 Free';
-  font-style: normal;
-  font-weight: 900;
-  font-display: @fa-font-display;
-  src: url('@{fa-font-path}/fa-solid-900.eot');
-  src: url('@{fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
-    url('@{fa-font-path}/fa-solid-900.woff2') format('woff2'),
-    url('@{fa-font-path}/fa-solid-900.woff') format('woff'),
-    url('@{fa-font-path}/fa-solid-900.ttf') format('truetype'),
-    url('@{fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
-}
-
-.fa,
-.fas {
-  font-family: 'Font Awesome 5 Free';
-  font-weight: 900;
-}
diff --git a/public/vendor/fontawesome/less/v4-shims.less b/public/vendor/fontawesome/less/v4-shims.less
deleted file mode 100644
index e7e0e7e9ce..0000000000
--- a/public/vendor/fontawesome/less/v4-shims.less
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- */
-@import '_variables.less';
-@import '_shims.less';
diff --git a/public/vendor/fontawesome/scss/_animated.scss b/public/vendor/fontawesome/scss/_animated.scss
new file mode 100644
index 0000000000..93555b2f43
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_animated.scss
@@ -0,0 +1,153 @@
+// animating icons
+// --------------------------
+
+.#{$fa-css-prefix}-beat {
+  animation-name: #{$fa-css-prefix}-beat;
+  animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
+  animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
+  animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
+  animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
+  animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, ease-in-out);
+}
+
+.#{$fa-css-prefix}-bounce {
+  animation-name: #{$fa-css-prefix}-bounce;
+  animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
+  animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
+  animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
+  animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
+  animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(0.280, 0.840, 0.420, 1));
+}
+
+.#{$fa-css-prefix}-fade {
+  animation-name: #{$fa-css-prefix}-fade;
+  animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
+  animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
+  animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
+  animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
+  animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(.4,0,.6,1));
+}
+
+.#{$fa-css-prefix}-beat-fade {
+  animation-name: #{$fa-css-prefix}-beat-fade;
+  animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
+  animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
+  animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
+  animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
+  animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(.4,0,.6,1));
+}
+
+.#{$fa-css-prefix}-flip {
+  animation-name: #{$fa-css-prefix}-flip;
+  animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
+  animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
+  animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
+  animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
+  animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, ease-in-out);
+}
+
+.#{$fa-css-prefix}-shake {
+  animation-name: #{$fa-css-prefix}-shake;
+  animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
+  animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
+  animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
+  animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
+  animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, linear);
+}
+
+.#{$fa-css-prefix}-spin {
+  animation-name: #{$fa-css-prefix}-spin;
+  animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
+  animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
+  animation-duration: var(--#{$fa-css-prefix}-animation-duration, 2s);
+  animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
+  animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, linear);
+}
+
+.#{$fa-css-prefix}-spin-reverse {
+  --#{$fa-css-prefix}-animation-direction: reverse;
+}
+
+.#{$fa-css-prefix}-pulse,
+.#{$fa-css-prefix}-spin-pulse {
+  animation-name: #{$fa-css-prefix}-spin;
+  animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
+  animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
+  animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
+  animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, steps(8));
+}
+
+// if agent or operating system prefers reduced motion, disable animations
+// see: https://www.smashingmagazine.com/2020/09/design-reduced-motion-sensitivities/
+// see: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
+@media (prefers-reduced-motion: reduce) {
+  .#{$fa-css-prefix}-beat,
+  .#{$fa-css-prefix}-bounce,
+  .#{$fa-css-prefix}-fade,
+  .#{$fa-css-prefix}-beat-fade,
+  .#{$fa-css-prefix}-flip,
+  .#{$fa-css-prefix}-pulse,
+  .#{$fa-css-prefix}-shake,
+  .#{$fa-css-prefix}-spin,
+  .#{$fa-css-prefix}-spin-pulse {
+    animation-delay: -1ms;
+    animation-duration: 1ms;
+    animation-iteration-count: 1;
+    transition-delay: 0s;
+    transition-duration: 0s;
+  }
+}
+
+@keyframes #{$fa-css-prefix}-beat {
+  0%, 90% { transform: scale(1); }
+  45% { transform: scale(var(--#{$fa-css-prefix}-beat-scale, 1.25)); }
+}
+
+@keyframes #{$fa-css-prefix}-bounce {
+  0%   { transform: scale(1,1) translateY(0); }
+  10%  { transform: scale(var(--#{$fa-css-prefix}-bounce-start-scale-x, 1.1),var(--#{$fa-css-prefix}-bounce-start-scale-y, 0.9)) translateY(0); }
+  30%  { transform: scale(var(--#{$fa-css-prefix}-bounce-jump-scale-x, 0.9),var(--#{$fa-css-prefix}-bounce-jump-scale-y, 1.1)) translateY(var(--#{$fa-css-prefix}-bounce-height, -0.5em)); }
+  50%  { transform: scale(var(--#{$fa-css-prefix}-bounce-land-scale-x, 1.05),var(--#{$fa-css-prefix}-bounce-land-scale-y, 0.95)) translateY(0); }
+  57%  { transform: scale(1,1) translateY(var(--#{$fa-css-prefix}-bounce-rebound, -0.125em)); }
+  64%  { transform: scale(1,1) translateY(0); }
+  100% { transform: scale(1,1) translateY(0); }
+}
+
+@keyframes #{$fa-css-prefix}-fade {
+  50% { opacity: var(--#{$fa-css-prefix}-fade-opacity, 0.4); }
+}
+
+@keyframes #{$fa-css-prefix}-beat-fade {
+  0%, 100% {
+    opacity: var(--#{$fa-css-prefix}-beat-fade-opacity, 0.4);
+    transform: scale(1);
+  }
+  50% {
+    opacity: 1;
+    transform: scale(var(--#{$fa-css-prefix}-beat-fade-scale, 1.125));
+  }
+}
+
+@keyframes #{$fa-css-prefix}-flip {
+  50% {
+    transform: rotate3d(var(--#{$fa-css-prefix}-flip-x, 0), var(--#{$fa-css-prefix}-flip-y, 1), var(--#{$fa-css-prefix}-flip-z, 0), var(--#{$fa-css-prefix}-flip-angle, -180deg));
+  }
+}
+
+@keyframes #{$fa-css-prefix}-shake {
+  0% { transform: rotate(-15deg); }
+  4% { transform: rotate(15deg); }
+  8%, 24% { transform: rotate(-18deg); }
+  12%, 28% { transform: rotate(18deg); }
+  16% { transform: rotate(-22deg); }
+  20% { transform: rotate(22deg); }
+  32% { transform: rotate(-12deg); }
+  36% { transform: rotate(12deg); }
+  40%, 100% { transform: rotate(0deg); }
+}
+
+@keyframes #{$fa-css-prefix}-spin {
+  0% { transform: rotate(0deg); }
+  100% { transform: rotate(360deg); }
+}
+
diff --git a/public/vendor/fontawesome/scss/_bordered-pulled.scss b/public/vendor/fontawesome/scss/_bordered-pulled.scss
new file mode 100644
index 0000000000..9068253a74
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_bordered-pulled.scss
@@ -0,0 +1,20 @@
+// bordered + pulled icons
+// -------------------------
+
+.#{$fa-css-prefix}-border {
+  border-color: var(--#{$fa-css-prefix}-border-color, #{$fa-border-color});
+  border-radius: var(--#{$fa-css-prefix}-border-radius, #{$fa-border-radius});
+  border-style: var(--#{$fa-css-prefix}-border-style, #{$fa-border-style});
+  border-width: var(--#{$fa-css-prefix}-border-width, #{$fa-border-width});
+  padding: var(--#{$fa-css-prefix}-border-padding, #{$fa-border-padding});
+}
+
+.#{$fa-css-prefix}-pull-left { 
+  float: left;
+  margin-right: var(--#{$fa-css-prefix}-pull-margin, #{$fa-pull-margin}); 
+}
+
+.#{$fa-css-prefix}-pull-right { 
+  float: right;
+  margin-left: var(--#{$fa-css-prefix}-pull-margin, #{$fa-pull-margin}); 
+}
diff --git a/public/vendor/fontawesome/scss/_core.scss b/public/vendor/fontawesome/scss/_core.scss
new file mode 100644
index 0000000000..1b2fd99205
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_core.scss
@@ -0,0 +1,43 @@
+// base icon class definition
+// -------------------------
+
+.#{$fa-css-prefix} {
+  font-family: var(--#{$fa-css-prefix}-style-family, '#{$fa-style-family}');
+  font-weight: var(--#{$fa-css-prefix}-style, #{$fa-style});
+}
+
+.#{$fa-css-prefix},
+.#{$fa-css-prefix}-classic,
+.#{$fa-css-prefix}-sharp,
+.fas,
+.#{$fa-css-prefix}-solid,
+.far,
+.#{$fa-css-prefix}-regular,
+.fab,
+.#{$fa-css-prefix}-brands {
+  -moz-osx-font-smoothing: grayscale;
+  -webkit-font-smoothing: antialiased;
+  display: var(--#{$fa-css-prefix}-display, #{$fa-display});
+  font-style: normal;
+  font-variant: normal;
+  line-height: 1;
+  text-rendering: auto;
+}
+
+.fas,
+.#{$fa-css-prefix}-classic,
+.#{$fa-css-prefix}-solid,
+.far,
+.#{$fa-css-prefix}-regular {
+  font-family: 'Font Awesome 6 Free';
+}
+
+.fab,
+.#{$fa-css-prefix}-brands {
+  font-family: 'Font Awesome 6 Brands';
+}
+
+
+%fa-icon {
+  @include fa-icon;
+}
diff --git a/public/vendor/fontawesome/scss/_fixed-width.scss b/public/vendor/fontawesome/scss/_fixed-width.scss
new file mode 100644
index 0000000000..72342368af
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_fixed-width.scss
@@ -0,0 +1,7 @@
+// fixed-width icons
+// -------------------------
+
+.#{$fa-css-prefix}-fw {
+  text-align: center;
+  width: $fa-fw-width;
+}
diff --git a/public/vendor/fontawesome/scss/_functions.scss b/public/vendor/fontawesome/scss/_functions.scss
new file mode 100644
index 0000000000..a17ffe87cc
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_functions.scss
@@ -0,0 +1,57 @@
+// functions
+// --------------------------
+
+// fa-content: convenience function used to set content property
+@function fa-content($fa-var) {
+  @return unquote("\"#{ $fa-var }\"");
+}
+
+// fa-divide: Originally obtained from the Bootstrap https://github.com/twbs/bootstrap
+//
+// Licensed under: The MIT License (MIT)
+//
+// Copyright (c) 2011-2021 Twitter, Inc.
+// Copyright (c) 2011-2021 The Bootstrap Authors
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+@function fa-divide($dividend, $divisor, $precision: 10) {
+  $sign: if($dividend > 0 and $divisor > 0, 1, -1);
+  $dividend: abs($dividend);
+  $divisor: abs($divisor);
+  $quotient: 0;
+  $remainder: $dividend;
+  @if $dividend == 0 {
+    @return 0;
+  }
+  @if $divisor == 0 {
+    @error "Cannot divide by 0";
+  }
+  @if $divisor == 1 {
+    @return $dividend;
+  }
+  @while $remainder >= $divisor {
+    $quotient: $quotient + 1;
+    $remainder: $remainder - $divisor;
+  }
+  @if $remainder > 0 and $precision > 0 {
+    $remainder: fa-divide($remainder * 10, $divisor, $precision - 1) * .1;
+  }
+  @return ($quotient + $remainder) * $sign;
+}
diff --git a/public/vendor/fontawesome/scss/_icons.scss b/public/vendor/fontawesome/scss/_icons.scss
new file mode 100644
index 0000000000..9e57e39cb3
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_icons.scss
@@ -0,0 +1,9 @@
+// specific icon class definition
+// -------------------------
+
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+readers do not read off random characters that represent icons */
+
+@each $name, $icon in $fa-icons {
+  .#{$fa-css-prefix}-#{$name}::before { content: unquote("\"#{ $icon }\""); }
+}
diff --git a/public/vendor/fontawesome/scss/_larger.scss b/public/vendor/fontawesome/scss/_larger.scss
new file mode 100644
index 0000000000..e88f4e54d0
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_larger.scss
@@ -0,0 +1,24 @@
+// Icon Sizes
+// -------------------------
+@use "sass:math";
+
+// makes the font 33% larger relative to the icon container
+.#{$fa-css-prefix}-lg {
+  font-size: math.div(4em, 3);
+  line-height: math.div(3em, 4);
+  vertical-align: -.0667em;
+}
+
+.#{$fa-css-prefix}-xs {
+  font-size: .75em;
+}
+
+.#{$fa-css-prefix}-sm {
+  font-size: .875em;
+}
+
+@for $i from 1 through 10 {
+  .#{$fa-css-prefix}-#{$i}x {
+    font-size: $i * 1em;
+  }
+}
diff --git a/public/vendor/fontawesome/scss/_list.scss b/public/vendor/fontawesome/scss/_list.scss
new file mode 100644
index 0000000000..ced36e20a2
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_list.scss
@@ -0,0 +1,18 @@
+// icons in a list
+// -------------------------
+
+.#{$fa-css-prefix}-ul {
+  list-style-type: none;
+  margin-left: var(--#{$fa-css-prefix}-li-margin, #{$fa-li-margin});
+  padding-left: 0;
+
+  > li { position: relative; }
+}
+
+.#{$fa-css-prefix}-li {
+  left: calc(var(--#{$fa-css-prefix}-li-width, #{$fa-li-width}) * -1);
+  position: absolute;
+  text-align: center;
+  width: var(--#{$fa-css-prefix}-li-width, #{$fa-li-width});
+  line-height: inherit;
+}
diff --git a/public/vendor/fontawesome/scss/_mixins.scss b/public/vendor/fontawesome/scss/_mixins.scss
new file mode 100644
index 0000000000..e06b69aa54
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_mixins.scss
@@ -0,0 +1,75 @@
+// mixins
+// --------------------------
+
+// base rendering for an icon
+@mixin fa-icon {
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  display: inline-block;
+  font-style: normal;
+  font-variant: normal;
+  font-weight: normal;
+  line-height: 1;
+}
+
+// sets relative font-sizing and alignment (in _sizing)
+@mixin fa-size ($font-size) {
+  font-size: fa-divide($font-size, $fa-size-scale-base) * 1em; // converts step in sizing scale into an em-based value that's relative to the scale's base
+  line-height: fa-divide(1, $font-size) * 1em; // sets the line-height of the icon back to that of it's parent
+  vertical-align: (fa-divide(6, $font-size) - fa-divide(3, 8)) * 1em; // vertically centers the icon taking into account the surrounding text's descender
+}
+
+// only display content to screen readers
+// see: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
+// see: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
+@mixin fa-sr-only() {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  padding: 0;
+  margin: -1px;
+  overflow: hidden;
+  clip: rect(0, 0, 0, 0);
+  white-space: nowrap;
+  border-width: 0;
+}
+
+// use in conjunction with .sr-only to only display content when it's focused
+@mixin fa-sr-only-focusable() {
+  &:not(:focus) {
+    @include fa-sr-only();
+  }
+}
+
+// sets a specific icon family to use alongside style + icon mixins
+
+// convenience mixins for declaring pseudo-elements by CSS variable,
+// including all style-specific font properties, and both the ::before
+// and ::after elements in the duotone case.
+@mixin fa-icon-solid($fa-var) {
+  @extend %fa-icon;
+  @extend .fa-solid;
+
+  &::before {
+    content: unquote("\"#{ $fa-var }\"");
+  }
+}
+
+@mixin fa-icon-regular($fa-var) {
+  @extend %fa-icon;
+  @extend .fa-regular;
+
+  &::before {
+    content: unquote("\"#{ $fa-var }\"");
+  }
+}
+
+@mixin fa-icon-brands($fa-var) {
+  @extend %fa-icon;
+  @extend .fa-brands;
+
+  &::before {
+    content: unquote("\"#{ $fa-var }\"");
+  }
+}
+
diff --git a/public/vendor/fontawesome/scss/_rotated-flipped.scss b/public/vendor/fontawesome/scss/_rotated-flipped.scss
new file mode 100644
index 0000000000..f27fabee40
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_rotated-flipped.scss
@@ -0,0 +1,31 @@
+// rotating + flipping icons
+// -------------------------
+
+.#{$fa-css-prefix}-rotate-90 {
+  transform: rotate(90deg);
+}
+
+.#{$fa-css-prefix}-rotate-180 {
+  transform: rotate(180deg);
+}
+
+.#{$fa-css-prefix}-rotate-270 {
+  transform: rotate(270deg);
+}
+
+.#{$fa-css-prefix}-flip-horizontal {
+  transform: scale(-1, 1);
+}
+
+.#{$fa-css-prefix}-flip-vertical {
+  transform: scale(1, -1);
+}
+
+.#{$fa-css-prefix}-flip-both,
+.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { 
+  transform: scale(-1, -1);
+}
+
+.#{$fa-css-prefix}-rotate-by {
+  transform: rotate(var(--#{$fa-css-prefix}-rotate-angle, none));
+}
diff --git a/public/vendor/fontawesome/scss/_screen-reader.scss b/public/vendor/fontawesome/scss/_screen-reader.scss
new file mode 100644
index 0000000000..2beb887b49
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_screen-reader.scss
@@ -0,0 +1,14 @@
+// screen-reader utilities
+// -------------------------
+
+// only display content to screen readers
+.sr-only,
+.#{$fa-css-prefix}-sr-only {
+  @include fa-sr-only;
+}
+
+// use in conjunction with .sr-only to only display content when it's focused
+.sr-only-focusable,
+.#{$fa-css-prefix}-sr-only-focusable {
+  @include fa-sr-only-focusable;
+}
diff --git a/public/vendor/fontawesome/scss/_shims.scss b/public/vendor/fontawesome/scss/_shims.scss
new file mode 100644
index 0000000000..7809aa6490
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_shims.scss
@@ -0,0 +1,2042 @@
+.#{$fa-css-prefix}.#{$fa-css-prefix}-glass:before { content: unquote("\"#{ $fa-var-martini-glass-empty }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o:before { content: unquote("\"#{ $fa-var-envelope }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-star-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-star-o:before { content: unquote("\"#{ $fa-var-star }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-remove:before { content: unquote("\"#{ $fa-var-xmark }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-close:before { content: unquote("\"#{ $fa-var-xmark }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-gear:before { content: unquote("\"#{ $fa-var-gear }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-trash-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-trash-o:before { content: unquote("\"#{ $fa-var-trash-can }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-home:before { content: unquote("\"#{ $fa-var-house }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-o:before { content: unquote("\"#{ $fa-var-file }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-clock-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-clock-o:before { content: unquote("\"#{ $fa-var-clock }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-down {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-down:before { content: unquote("\"#{ $fa-var-circle-down }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-up {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-up:before { content: unquote("\"#{ $fa-var-circle-up }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-play-circle-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-play-circle-o:before { content: unquote("\"#{ $fa-var-circle-play }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-repeat:before { content: unquote("\"#{ $fa-var-arrow-rotate-right }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-rotate-right:before { content: unquote("\"#{ $fa-var-arrow-rotate-right }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-refresh:before { content: unquote("\"#{ $fa-var-arrows-rotate }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-list-alt {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-list-alt:before { content: unquote("\"#{ $fa-var-rectangle-list }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-dedent:before { content: unquote("\"#{ $fa-var-outdent }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-video-camera:before { content: unquote("\"#{ $fa-var-video }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-picture-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-picture-o:before { content: unquote("\"#{ $fa-var-image }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-photo {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-photo:before { content: unquote("\"#{ $fa-var-image }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-image {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-image:before { content: unquote("\"#{ $fa-var-image }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-map-marker:before { content: unquote("\"#{ $fa-var-location-dot }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square-o:before { content: unquote("\"#{ $fa-var-pen-to-square }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-edit {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-edit:before { content: unquote("\"#{ $fa-var-pen-to-square }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-share-square-o:before { content: unquote("\"#{ $fa-var-share-from-square }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-check-square-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-check-square-o:before { content: unquote("\"#{ $fa-var-square-check }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows:before { content: unquote("\"#{ $fa-var-up-down-left-right }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-times-circle-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-times-circle-o:before { content: unquote("\"#{ $fa-var-circle-xmark }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-check-circle-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-check-circle-o:before { content: unquote("\"#{ $fa-var-circle-check }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-forward:before { content: unquote("\"#{ $fa-var-share }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-expand:before { content: unquote("\"#{ $fa-var-up-right-and-down-left-from-center }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-compress:before { content: unquote("\"#{ $fa-var-down-left-and-up-right-to-center }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-eye {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-eye-slash {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-warning:before { content: unquote("\"#{ $fa-var-triangle-exclamation }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar:before { content: unquote("\"#{ $fa-var-calendar-days }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-v:before { content: unquote("\"#{ $fa-var-up-down }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-h:before { content: unquote("\"#{ $fa-var-left-right }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart:before { content: unquote("\"#{ $fa-var-chart-column }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart-o:before { content: unquote("\"#{ $fa-var-chart-column }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter-square:before { content: unquote("\"#{ $fa-var-square-twitter }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-square:before { content: unquote("\"#{ $fa-var-square-facebook }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-gears:before { content: unquote("\"#{ $fa-var-gears }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-up {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-up:before { content: unquote("\"#{ $fa-var-thumbs-up }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-down {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-down:before { content: unquote("\"#{ $fa-var-thumbs-down }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-heart-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-heart-o:before { content: unquote("\"#{ $fa-var-heart }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sign-out:before { content: unquote("\"#{ $fa-var-right-from-bracket }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin-square:before { content: unquote("\"#{ $fa-var-linkedin }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thumb-tack:before { content: unquote("\"#{ $fa-var-thumbtack }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-external-link:before { content: unquote("\"#{ $fa-var-up-right-from-square }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sign-in:before { content: unquote("\"#{ $fa-var-right-to-bracket }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-github-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-github-square:before { content: unquote("\"#{ $fa-var-square-github }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-lemon-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-lemon-o:before { content: unquote("\"#{ $fa-var-lemon }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-square-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-square-o:before { content: unquote("\"#{ $fa-var-square }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bookmark-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bookmark-o:before { content: unquote("\"#{ $fa-var-bookmark }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook:before { content: unquote("\"#{ $fa-var-facebook-f }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-f {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-f:before { content: unquote("\"#{ $fa-var-facebook-f }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-github {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-credit-card {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-feed:before { content: unquote("\"#{ $fa-var-rss }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hdd-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hdd-o:before { content: unquote("\"#{ $fa-var-hard-drive }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-right {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-right:before { content: unquote("\"#{ $fa-var-hand-point-right }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-left {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-left:before { content: unquote("\"#{ $fa-var-hand-point-left }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-up {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-up:before { content: unquote("\"#{ $fa-var-hand-point-up }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-down {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-down:before { content: unquote("\"#{ $fa-var-hand-point-down }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-globe:before { content: unquote("\"#{ $fa-var-earth-americas }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-tasks:before { content: unquote("\"#{ $fa-var-bars-progress }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-alt:before { content: unquote("\"#{ $fa-var-maximize }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-group:before { content: unquote("\"#{ $fa-var-users }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-chain:before { content: unquote("\"#{ $fa-var-link }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cut:before { content: unquote("\"#{ $fa-var-scissors }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-files-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-files-o:before { content: unquote("\"#{ $fa-var-copy }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-floppy-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-floppy-o:before { content: unquote("\"#{ $fa-var-floppy-disk }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-save {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-save:before { content: unquote("\"#{ $fa-var-floppy-disk }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-navicon:before { content: unquote("\"#{ $fa-var-bars }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-reorder:before { content: unquote("\"#{ $fa-var-bars }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-magic:before { content: unquote("\"#{ $fa-var-wand-magic-sparkles }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-square:before { content: unquote("\"#{ $fa-var-square-pinterest }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-square:before { content: unquote("\"#{ $fa-var-square-google-plus }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus:before { content: unquote("\"#{ $fa-var-google-plus-g }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-money:before { content: unquote("\"#{ $fa-var-money-bill-1 }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-unsorted:before { content: unquote("\"#{ $fa-var-sort }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-desc:before { content: unquote("\"#{ $fa-var-sort-down }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-asc:before { content: unquote("\"#{ $fa-var-sort-up }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin:before { content: unquote("\"#{ $fa-var-linkedin-in }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-rotate-left:before { content: unquote("\"#{ $fa-var-arrow-rotate-left }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-legal:before { content: unquote("\"#{ $fa-var-gavel }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-tachometer:before { content: unquote("\"#{ $fa-var-gauge-high }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-dashboard:before { content: unquote("\"#{ $fa-var-gauge-high }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-comment-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-comment-o:before { content: unquote("\"#{ $fa-var-comment }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-comments-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-comments-o:before { content: unquote("\"#{ $fa-var-comments }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-flash:before { content: unquote("\"#{ $fa-var-bolt }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-clipboard:before { content: unquote("\"#{ $fa-var-paste }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-lightbulb-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-lightbulb-o:before { content: unquote("\"#{ $fa-var-lightbulb }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-exchange:before { content: unquote("\"#{ $fa-var-right-left }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cloud-download:before { content: unquote("\"#{ $fa-var-cloud-arrow-down }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cloud-upload:before { content: unquote("\"#{ $fa-var-cloud-arrow-up }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-o:before { content: unquote("\"#{ $fa-var-bell }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cutlery:before { content: unquote("\"#{ $fa-var-utensils }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text-o:before { content: unquote("\"#{ $fa-var-file-lines }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-building-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-building-o:before { content: unquote("\"#{ $fa-var-building }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hospital-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hospital-o:before { content: unquote("\"#{ $fa-var-hospital }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-tablet:before { content: unquote("\"#{ $fa-var-tablet-screen-button }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-mobile:before { content: unquote("\"#{ $fa-var-mobile-screen-button }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-mobile-phone:before { content: unquote("\"#{ $fa-var-mobile-screen-button }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o:before { content: unquote("\"#{ $fa-var-circle }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-reply:before { content: unquote("\"#{ $fa-var-reply }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-github-alt {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-o:before { content: unquote("\"#{ $fa-var-folder }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-open-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-open-o:before { content: unquote("\"#{ $fa-var-folder-open }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-smile-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-smile-o:before { content: unquote("\"#{ $fa-var-face-smile }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-frown-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-frown-o:before { content: unquote("\"#{ $fa-var-face-frown }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-meh-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-meh-o:before { content: unquote("\"#{ $fa-var-face-meh }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-keyboard-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-keyboard-o:before { content: unquote("\"#{ $fa-var-keyboard }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-flag-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-flag-o:before { content: unquote("\"#{ $fa-var-flag }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-reply-all:before { content: unquote("\"#{ $fa-var-reply-all }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-o:before { content: unquote("\"#{ $fa-var-star-half-stroke }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-empty {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-empty:before { content: unquote("\"#{ $fa-var-star-half-stroke }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-full {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-full:before { content: unquote("\"#{ $fa-var-star-half-stroke }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-code-fork:before { content: unquote("\"#{ $fa-var-code-branch }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-chain-broken:before { content: unquote("\"#{ $fa-var-link-slash }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-unlink:before { content: unquote("\"#{ $fa-var-link-slash }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-o:before { content: unquote("\"#{ $fa-var-calendar }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-maxcdn {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-html5 {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-css3 {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-unlock-alt:before { content: unquote("\"#{ $fa-var-unlock }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-minus-square-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-minus-square-o:before { content: unquote("\"#{ $fa-var-square-minus }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-level-up:before { content: unquote("\"#{ $fa-var-turn-up }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-level-down:before { content: unquote("\"#{ $fa-var-turn-down }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square:before { content: unquote("\"#{ $fa-var-square-pen }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-external-link-square:before { content: unquote("\"#{ $fa-var-square-up-right }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-compass {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-down {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-down:before { content: unquote("\"#{ $fa-var-square-caret-down }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-down {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-down:before { content: unquote("\"#{ $fa-var-square-caret-down }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-up {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-up:before { content: unquote("\"#{ $fa-var-square-caret-up }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-up {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-up:before { content: unquote("\"#{ $fa-var-square-caret-up }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-right {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-right:before { content: unquote("\"#{ $fa-var-square-caret-right }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-right {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-right:before { content: unquote("\"#{ $fa-var-square-caret-right }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-eur:before { content: unquote("\"#{ $fa-var-euro-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-euro:before { content: unquote("\"#{ $fa-var-euro-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-gbp:before { content: unquote("\"#{ $fa-var-sterling-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-usd:before { content: unquote("\"#{ $fa-var-dollar-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-dollar:before { content: unquote("\"#{ $fa-var-dollar-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-inr:before { content: unquote("\"#{ $fa-var-indian-rupee-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-rupee:before { content: unquote("\"#{ $fa-var-indian-rupee-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-jpy:before { content: unquote("\"#{ $fa-var-yen-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cny:before { content: unquote("\"#{ $fa-var-yen-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-rmb:before { content: unquote("\"#{ $fa-var-yen-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-yen:before { content: unquote("\"#{ $fa-var-yen-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-rub:before { content: unquote("\"#{ $fa-var-ruble-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-ruble:before { content: unquote("\"#{ $fa-var-ruble-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-rouble:before { content: unquote("\"#{ $fa-var-ruble-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-krw:before { content: unquote("\"#{ $fa-var-won-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-won:before { content: unquote("\"#{ $fa-var-won-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-btc {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bitcoin {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bitcoin:before { content: unquote("\"#{ $fa-var-btc }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text:before { content: unquote("\"#{ $fa-var-file-lines }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-alpha-asc:before { content: unquote("\"#{ $fa-var-arrow-down-a-z }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-alpha-desc:before { content: unquote("\"#{ $fa-var-arrow-down-z-a }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-amount-asc:before { content: unquote("\"#{ $fa-var-arrow-down-short-wide }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-amount-desc:before { content: unquote("\"#{ $fa-var-arrow-down-wide-short }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-numeric-asc:before { content: unquote("\"#{ $fa-var-arrow-down-1-9 }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-numeric-desc:before { content: unquote("\"#{ $fa-var-arrow-down-9-1 }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-square:before { content: unquote("\"#{ $fa-var-square-youtube }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-xing {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-xing-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-xing-square:before { content: unquote("\"#{ $fa-var-square-xing }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-play {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-play:before { content: unquote("\"#{ $fa-var-youtube }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-dropbox {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-stack-overflow {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-instagram {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-flickr {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-adn {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket-square:before { content: unquote("\"#{ $fa-var-bitbucket }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr-square:before { content: unquote("\"#{ $fa-var-square-tumblr }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-down:before { content: unquote("\"#{ $fa-var-down-long }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-up:before { content: unquote("\"#{ $fa-var-up-long }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-left:before { content: unquote("\"#{ $fa-var-left-long }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-right:before { content: unquote("\"#{ $fa-var-right-long }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-apple {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-windows {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-android {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-linux {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-dribbble {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-skype {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-foursquare {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-trello {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-gratipay {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-gittip {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-gittip:before { content: unquote("\"#{ $fa-var-gratipay }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sun-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sun-o:before { content: unquote("\"#{ $fa-var-sun }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-moon-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-moon-o:before { content: unquote("\"#{ $fa-var-moon }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-vk {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-weibo {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-renren {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pagelines {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-stack-exchange {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-right {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-right:before { content: unquote("\"#{ $fa-var-circle-right }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-left {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-left:before { content: unquote("\"#{ $fa-var-circle-left }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-left {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-left:before { content: unquote("\"#{ $fa-var-square-caret-left }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-left {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-left:before { content: unquote("\"#{ $fa-var-square-caret-left }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-dot-circle-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-dot-circle-o:before { content: unquote("\"#{ $fa-var-circle-dot }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo-square:before { content: unquote("\"#{ $fa-var-square-vimeo }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-try:before { content: unquote("\"#{ $fa-var-turkish-lira-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-turkish-lira:before { content: unquote("\"#{ $fa-var-turkish-lira-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-plus-square-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-plus-square-o:before { content: unquote("\"#{ $fa-var-square-plus }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-slack {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-wordpress {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-openid {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-institution:before { content: unquote("\"#{ $fa-var-building-columns }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bank:before { content: unquote("\"#{ $fa-var-building-columns }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-mortar-board:before { content: unquote("\"#{ $fa-var-graduation-cap }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-yahoo {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-google {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-square:before { content: unquote("\"#{ $fa-var-square-reddit }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-stumbleupon-circle {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-stumbleupon {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-delicious {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-digg {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper-pp {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper-alt {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-drupal {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-joomla {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-behance {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-behance-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-behance-square:before { content: unquote("\"#{ $fa-var-square-behance }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-steam {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-steam-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-steam-square:before { content: unquote("\"#{ $fa-var-square-steam }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-automobile:before { content: unquote("\"#{ $fa-var-car }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cab:before { content: unquote("\"#{ $fa-var-taxi }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-spotify {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-deviantart {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-soundcloud {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-pdf-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-pdf-o:before { content: unquote("\"#{ $fa-var-file-pdf }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-word-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-word-o:before { content: unquote("\"#{ $fa-var-file-word }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-excel-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-excel-o:before { content: unquote("\"#{ $fa-var-file-excel }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-powerpoint-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-powerpoint-o:before { content: unquote("\"#{ $fa-var-file-powerpoint }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-image-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-image-o:before { content: unquote("\"#{ $fa-var-file-image }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-photo-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-photo-o:before { content: unquote("\"#{ $fa-var-file-image }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-picture-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-picture-o:before { content: unquote("\"#{ $fa-var-file-image }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-archive-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-archive-o:before { content: unquote("\"#{ $fa-var-file-zipper }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-zip-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-zip-o:before { content: unquote("\"#{ $fa-var-file-zipper }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-audio-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-audio-o:before { content: unquote("\"#{ $fa-var-file-audio }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-sound-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-sound-o:before { content: unquote("\"#{ $fa-var-file-audio }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-video-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-video-o:before { content: unquote("\"#{ $fa-var-file-video }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-movie-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-movie-o:before { content: unquote("\"#{ $fa-var-file-video }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-code-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-file-code-o:before { content: unquote("\"#{ $fa-var-file-code }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-vine {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-codepen {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-jsfiddle {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-life-bouy:before { content: unquote("\"#{ $fa-var-life-ring }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-life-buoy:before { content: unquote("\"#{ $fa-var-life-ring }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-life-saver:before { content: unquote("\"#{ $fa-var-life-ring }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-support:before { content: unquote("\"#{ $fa-var-life-ring }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o-notch:before { content: unquote("\"#{ $fa-var-circle-notch }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-rebel {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-ra {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-ra:before { content: unquote("\"#{ $fa-var-rebel }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-resistance {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-resistance:before { content: unquote("\"#{ $fa-var-rebel }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-empire {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-ge {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-ge:before { content: unquote("\"#{ $fa-var-empire }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-git-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-git-square:before { content: unquote("\"#{ $fa-var-square-git }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-git {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hacker-news {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator-square:before { content: unquote("\"#{ $fa-var-hacker-news }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-yc-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-yc-square:before { content: unquote("\"#{ $fa-var-hacker-news }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-tencent-weibo {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-qq {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-weixin {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-wechat {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-wechat:before { content: unquote("\"#{ $fa-var-weixin }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-send:before { content: unquote("\"#{ $fa-var-paper-plane }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-paper-plane-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-paper-plane-o:before { content: unquote("\"#{ $fa-var-paper-plane }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-send-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-send-o:before { content: unquote("\"#{ $fa-var-paper-plane }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-thin {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-thin:before { content: unquote("\"#{ $fa-var-circle }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-header:before { content: unquote("\"#{ $fa-var-heading }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-futbol-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-futbol-o:before { content: unquote("\"#{ $fa-var-futbol }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-soccer-ball-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-soccer-ball-o:before { content: unquote("\"#{ $fa-var-futbol }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-slideshare {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-twitch {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-yelp {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-newspaper-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-newspaper-o:before { content: unquote("\"#{ $fa-var-newspaper }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-paypal {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-google-wallet {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-visa {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-mastercard {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-discover {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-amex {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-paypal {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-stripe {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-slash-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-slash-o:before { content: unquote("\"#{ $fa-var-bell-slash }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-trash:before { content: unquote("\"#{ $fa-var-trash-can }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-copyright {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-eyedropper:before { content: unquote("\"#{ $fa-var-eye-dropper }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-area-chart:before { content: unquote("\"#{ $fa-var-chart-area }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pie-chart:before { content: unquote("\"#{ $fa-var-chart-pie }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-line-chart:before { content: unquote("\"#{ $fa-var-chart-line }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm-square:before { content: unquote("\"#{ $fa-var-square-lastfm }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-ioxhost {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-angellist {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cc {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cc:before { content: unquote("\"#{ $fa-var-closed-captioning }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-ils:before { content: unquote("\"#{ $fa-var-shekel-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-shekel:before { content: unquote("\"#{ $fa-var-shekel-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sheqel:before { content: unquote("\"#{ $fa-var-shekel-sign }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-buysellads {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-connectdevelop {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-dashcube {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-forumbee {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-leanpub {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sellsy {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-shirtsinbulk {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-simplybuilt {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-skyatlas {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-diamond {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-diamond:before { content: unquote("\"#{ $fa-var-gem }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-transgender:before { content: unquote("\"#{ $fa-var-mars-and-venus }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-intersex:before { content: unquote("\"#{ $fa-var-mars-and-venus }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-transgender-alt:before { content: unquote("\"#{ $fa-var-transgender }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-official {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-official:before { content: unquote("\"#{ $fa-var-facebook }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-p {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-whatsapp {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hotel:before { content: unquote("\"#{ $fa-var-bed }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-viacoin {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-medium {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-yc {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-yc:before { content: unquote("\"#{ $fa-var-y-combinator }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-optin-monster {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-opencart {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-expeditedssl {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-4:before { content: unquote("\"#{ $fa-var-battery-full }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-battery:before { content: unquote("\"#{ $fa-var-battery-full }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-3:before { content: unquote("\"#{ $fa-var-battery-three-quarters }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-2:before { content: unquote("\"#{ $fa-var-battery-half }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-1:before { content: unquote("\"#{ $fa-var-battery-quarter }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-0:before { content: unquote("\"#{ $fa-var-battery-empty }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-object-group {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-object-ungroup {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sticky-note-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-sticky-note-o:before { content: unquote("\"#{ $fa-var-note-sticky }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-jcb {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-diners-club {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-clone {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-o:before { content: unquote("\"#{ $fa-var-hourglass }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-1:before { content: unquote("\"#{ $fa-var-hourglass-start }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-2:before { content: unquote("\"#{ $fa-var-hourglass-half }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-3:before { content: unquote("\"#{ $fa-var-hourglass-end }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-rock-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-rock-o:before { content: unquote("\"#{ $fa-var-hand-back-fist }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-grab-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-grab-o:before { content: unquote("\"#{ $fa-var-hand-back-fist }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-paper-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-paper-o:before { content: unquote("\"#{ $fa-var-hand }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-stop-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-stop-o:before { content: unquote("\"#{ $fa-var-hand }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-scissors-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-scissors-o:before { content: unquote("\"#{ $fa-var-hand-scissors }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-lizard-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-lizard-o:before { content: unquote("\"#{ $fa-var-hand-lizard }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-spock-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-spock-o:before { content: unquote("\"#{ $fa-var-hand-spock }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-pointer-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-pointer-o:before { content: unquote("\"#{ $fa-var-hand-pointer }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-peace-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-peace-o:before { content: unquote("\"#{ $fa-var-hand-peace }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-registered {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-creative-commons {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-gg {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-gg-circle {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki-square:before { content: unquote("\"#{ $fa-var-square-odnoklassniki }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-get-pocket {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-wikipedia-w {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-safari {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-chrome {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-firefox {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-opera {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-internet-explorer {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-television:before { content: unquote("\"#{ $fa-var-tv }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-contao {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-500px {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-amazon {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-plus-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-plus-o:before { content: unquote("\"#{ $fa-var-calendar-plus }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-minus-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-minus-o:before { content: unquote("\"#{ $fa-var-calendar-minus }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-times-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-times-o:before { content: unquote("\"#{ $fa-var-calendar-xmark }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-check-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-check-o:before { content: unquote("\"#{ $fa-var-calendar-check }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-map-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-map-o:before { content: unquote("\"#{ $fa-var-map }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting:before { content: unquote("\"#{ $fa-var-comment-dots }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting-o:before { content: unquote("\"#{ $fa-var-comment-dots }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-houzz {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo:before { content: unquote("\"#{ $fa-var-vimeo-v }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-black-tie {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-fonticons {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-alien {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-edge {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-credit-card-alt:before { content: unquote("\"#{ $fa-var-credit-card }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-codiepie {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-modx {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-fort-awesome {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-usb {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-product-hunt {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-mixcloud {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-scribd {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pause-circle-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pause-circle-o:before { content: unquote("\"#{ $fa-var-circle-pause }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-stop-circle-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-stop-circle-o:before { content: unquote("\"#{ $fa-var-circle-stop }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bluetooth {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bluetooth-b {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-gitlab {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-wpbeginner {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-wpforms {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-envira {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-wheelchair-alt {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-wheelchair-alt:before { content: unquote("\"#{ $fa-var-accessible-icon }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-question-circle-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-question-circle-o:before { content: unquote("\"#{ $fa-var-circle-question }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-volume-control-phone:before { content: unquote("\"#{ $fa-var-phone-volume }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-asl-interpreting:before { content: unquote("\"#{ $fa-var-hands-asl-interpreting }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-deafness:before { content: unquote("\"#{ $fa-var-ear-deaf }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-hard-of-hearing:before { content: unquote("\"#{ $fa-var-ear-deaf }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-glide {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-glide-g {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-signing:before { content: unquote("\"#{ $fa-var-hands }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo-square:before { content: unquote("\"#{ $fa-var-square-viadeo }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-ghost {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-ghost:before { content: unquote("\"#{ $fa-var-snapchat }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-square {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-square:before { content: unquote("\"#{ $fa-var-square-snapchat }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-first-order {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-yoast {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-themeisle {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-official {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-official:before { content: unquote("\"#{ $fa-var-google-plus }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-circle {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-circle:before { content: unquote("\"#{ $fa-var-google-plus }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-font-awesome {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-fa {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-fa:before { content: unquote("\"#{ $fa-var-font-awesome }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-handshake-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-handshake-o:before { content: unquote("\"#{ $fa-var-handshake }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-open-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-open-o:before { content: unquote("\"#{ $fa-var-envelope-open }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-linode {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-address-book-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-address-book-o:before { content: unquote("\"#{ $fa-var-address-book }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard:before { content: unquote("\"#{ $fa-var-address-card }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-address-card-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-address-card-o:before { content: unquote("\"#{ $fa-var-address-card }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard-o:before { content: unquote("\"#{ $fa-var-address-card }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-user-circle-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-user-circle-o:before { content: unquote("\"#{ $fa-var-circle-user }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-user-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-user-o:before { content: unquote("\"#{ $fa-var-user }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-id-badge {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license:before { content: unquote("\"#{ $fa-var-id-card }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-id-card-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-id-card-o:before { content: unquote("\"#{ $fa-var-id-card }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license-o:before { content: unquote("\"#{ $fa-var-id-card }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-quora {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-free-code-camp {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-telegram {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-4:before { content: unquote("\"#{ $fa-var-temperature-full }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer:before { content: unquote("\"#{ $fa-var-temperature-full }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-3:before { content: unquote("\"#{ $fa-var-temperature-three-quarters }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-2:before { content: unquote("\"#{ $fa-var-temperature-half }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-1:before { content: unquote("\"#{ $fa-var-temperature-quarter }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-0:before { content: unquote("\"#{ $fa-var-temperature-empty }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bathtub:before { content: unquote("\"#{ $fa-var-bath }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-s15:before { content: unquote("\"#{ $fa-var-bath }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-window-maximize {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-window-restore {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle:before { content: unquote("\"#{ $fa-var-rectangle-xmark }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-window-close-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-window-close-o:before { content: unquote("\"#{ $fa-var-rectangle-xmark }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle-o:before { content: unquote("\"#{ $fa-var-rectangle-xmark }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-bandcamp {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-grav {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-etsy {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-imdb {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-ravelry {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-eercast {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-eercast:before { content: unquote("\"#{ $fa-var-sellcast }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-snowflake-o {
+  font-family: 'Font Awesome 6 Free';
+  font-weight: 400;
+}
+.#{$fa-css-prefix}.#{$fa-css-prefix}-snowflake-o:before { content: unquote("\"#{ $fa-var-snowflake }\""); }
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-superpowers {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-wpexplorer {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
+.#{$fa-css-prefix}.#{$fa-css-prefix}-meetup {
+  font-family: 'Font Awesome 6 Brands';
+  font-weight: 400;
+}
+
diff --git a/public/vendor/fontawesome/scss/_sizing.scss b/public/vendor/fontawesome/scss/_sizing.scss
new file mode 100644
index 0000000000..e171e7df4c
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_sizing.scss
@@ -0,0 +1,16 @@
+// sizing icons
+// -------------------------
+
+// literal magnification scale
+@for $i from 1 through 10 {
+  .#{$fa-css-prefix}-#{$i}x {
+    font-size: $i * 1em;
+  }
+}
+
+// step-based scale (with alignment)
+@each $size, $value in $fa-sizes {
+  .#{$fa-css-prefix}-#{$size} {
+     @include fa-size($value);
+  }
+}
diff --git a/public/vendor/fontawesome/scss/_stacked.scss b/public/vendor/fontawesome/scss/_stacked.scss
new file mode 100644
index 0000000000..d9a9d4e98f
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_stacked.scss
@@ -0,0 +1,32 @@
+// stacking icons
+// -------------------------
+
+.#{$fa-css-prefix}-stack {
+  display: inline-block;
+  height: 2em;
+  line-height: 2em;
+  position: relative;
+  vertical-align: $fa-stack-vertical-align;
+  width: $fa-stack-width;
+}
+
+.#{$fa-css-prefix}-stack-1x,
+.#{$fa-css-prefix}-stack-2x {
+  left: 0;
+  position: absolute;
+  text-align: center;
+  width: 100%;
+  z-index: var(--#{$fa-css-prefix}-stack-z-index, #{$fa-stack-z-index});
+}
+
+.#{$fa-css-prefix}-stack-1x {
+  line-height: inherit;
+}
+
+.#{$fa-css-prefix}-stack-2x {
+  font-size: 2em;
+}
+
+.#{$fa-css-prefix}-inverse {
+  color: var(--#{$fa-css-prefix}-inverse, #{$fa-inverse});
+}
diff --git a/public/vendor/fontawesome/scss/_variables.scss b/public/vendor/fontawesome/scss/_variables.scss
new file mode 100644
index 0000000000..e3a920deab
--- /dev/null
+++ b/public/vendor/fontawesome/scss/_variables.scss
@@ -0,0 +1,4951 @@
+// variables
+// --------------------------
+
+$fa-css-prefix          : fa !default;
+$fa-style               : 900 !default;
+$fa-style-family        : "Font Awesome 6 Free" !default;
+
+$fa-display             : inline-block !default;
+
+$fa-fw-width            : fa-divide(20em, 16) !default;
+$fa-inverse             : #fff !default;
+
+$fa-border-color        : #eee !default;
+$fa-border-padding      : .2em .25em .15em !default;
+$fa-border-radius       : .1em !default;
+$fa-border-style        : solid !default;
+$fa-border-width        : .08em !default;
+
+$fa-size-scale-2xs      : 10 !default;
+$fa-size-scale-xs       : 12 !default;
+$fa-size-scale-sm       : 14 !default;
+$fa-size-scale-base     : 16 !default;
+$fa-size-scale-lg       : 20 !default;
+$fa-size-scale-xl       : 24 !default;
+$fa-size-scale-2xl      : 32 !default;
+
+$fa-sizes: (
+  "2xs"                 : $fa-size-scale-2xs,
+  "xs"                  : $fa-size-scale-xs,
+  "sm"                  : $fa-size-scale-sm,
+  "lg"                  : $fa-size-scale-lg,
+  "xl"                  : $fa-size-scale-xl,
+  "2xl"                 : $fa-size-scale-2xl
+) !default;
+
+$fa-li-width            : 2em !default;
+$fa-li-margin           : $fa-li-width * fa-divide(5, 4) !default;
+
+$fa-pull-margin         : .3em !default;
+
+$fa-primary-opacity     : 1 !default;
+$fa-secondary-opacity   : .4 !default;
+
+$fa-stack-vertical-align: middle !default;
+$fa-stack-width         : ($fa-fw-width * 2) !default;
+$fa-stack-z-index       : auto !default;
+
+$fa-font-display        : block !default;
+$fa-font-path           : "../webfonts" !default;
+
+$fa-var-0: \30;
+$fa-var-1: \31;
+$fa-var-2: \32;
+$fa-var-3: \33;
+$fa-var-4: \34;
+$fa-var-5: \35;
+$fa-var-6: \36;
+$fa-var-7: \37;
+$fa-var-8: \38;
+$fa-var-9: \39;
+$fa-var-fill-drip: \f576;
+$fa-var-arrows-to-circle: \e4bd;
+$fa-var-circle-chevron-right: \f138;
+$fa-var-chevron-circle-right: \f138;
+$fa-var-at: \40;
+$fa-var-trash-can: \f2ed;
+$fa-var-trash-alt: \f2ed;
+$fa-var-text-height: \f034;
+$fa-var-user-xmark: \f235;
+$fa-var-user-times: \f235;
+$fa-var-stethoscope: \f0f1;
+$fa-var-message: \f27a;
+$fa-var-comment-alt: \f27a;
+$fa-var-info: \f129;
+$fa-var-down-left-and-up-right-to-center: \f422;
+$fa-var-compress-alt: \f422;
+$fa-var-explosion: \e4e9;
+$fa-var-file-lines: \f15c;
+$fa-var-file-alt: \f15c;
+$fa-var-file-text: \f15c;
+$fa-var-wave-square: \f83e;
+$fa-var-ring: \f70b;
+$fa-var-building-un: \e4d9;
+$fa-var-dice-three: \f527;
+$fa-var-calendar-days: \f073;
+$fa-var-calendar-alt: \f073;
+$fa-var-anchor-circle-check: \e4aa;
+$fa-var-building-circle-arrow-right: \e4d1;
+$fa-var-volleyball: \f45f;
+$fa-var-volleyball-ball: \f45f;
+$fa-var-arrows-up-to-line: \e4c2;
+$fa-var-sort-down: \f0dd;
+$fa-var-sort-desc: \f0dd;
+$fa-var-circle-minus: \f056;
+$fa-var-minus-circle: \f056;
+$fa-var-door-open: \f52b;
+$fa-var-right-from-bracket: \f2f5;
+$fa-var-sign-out-alt: \f2f5;
+$fa-var-atom: \f5d2;
+$fa-var-soap: \e06e;
+$fa-var-icons: \f86d;
+$fa-var-heart-music-camera-bolt: \f86d;
+$fa-var-microphone-lines-slash: \f539;
+$fa-var-microphone-alt-slash: \f539;
+$fa-var-bridge-circle-check: \e4c9;
+$fa-var-pump-medical: \e06a;
+$fa-var-fingerprint: \f577;
+$fa-var-hand-point-right: \f0a4;
+$fa-var-magnifying-glass-location: \f689;
+$fa-var-search-location: \f689;
+$fa-var-forward-step: \f051;
+$fa-var-step-forward: \f051;
+$fa-var-face-smile-beam: \f5b8;
+$fa-var-smile-beam: \f5b8;
+$fa-var-flag-checkered: \f11e;
+$fa-var-football: \f44e;
+$fa-var-football-ball: \f44e;
+$fa-var-school-circle-exclamation: \e56c;
+$fa-var-crop: \f125;
+$fa-var-angles-down: \f103;
+$fa-var-angle-double-down: \f103;
+$fa-var-users-rectangle: \e594;
+$fa-var-people-roof: \e537;
+$fa-var-people-line: \e534;
+$fa-var-beer-mug-empty: \f0fc;
+$fa-var-beer: \f0fc;
+$fa-var-diagram-predecessor: \e477;
+$fa-var-arrow-up-long: \f176;
+$fa-var-long-arrow-up: \f176;
+$fa-var-fire-flame-simple: \f46a;
+$fa-var-burn: \f46a;
+$fa-var-person: \f183;
+$fa-var-male: \f183;
+$fa-var-laptop: \f109;
+$fa-var-file-csv: \f6dd;
+$fa-var-menorah: \f676;
+$fa-var-truck-plane: \e58f;
+$fa-var-record-vinyl: \f8d9;
+$fa-var-face-grin-stars: \f587;
+$fa-var-grin-stars: \f587;
+$fa-var-bong: \f55c;
+$fa-var-spaghetti-monster-flying: \f67b;
+$fa-var-pastafarianism: \f67b;
+$fa-var-arrow-down-up-across-line: \e4af;
+$fa-var-spoon: \f2e5;
+$fa-var-utensil-spoon: \f2e5;
+$fa-var-jar-wheat: \e517;
+$fa-var-envelopes-bulk: \f674;
+$fa-var-mail-bulk: \f674;
+$fa-var-file-circle-exclamation: \e4eb;
+$fa-var-circle-h: \f47e;
+$fa-var-hospital-symbol: \f47e;
+$fa-var-pager: \f815;
+$fa-var-address-book: \f2b9;
+$fa-var-contact-book: \f2b9;
+$fa-var-strikethrough: \f0cc;
+$fa-var-k: \4b;
+$fa-var-landmark-flag: \e51c;
+$fa-var-pencil: \f303;
+$fa-var-pencil-alt: \f303;
+$fa-var-backward: \f04a;
+$fa-var-caret-right: \f0da;
+$fa-var-comments: \f086;
+$fa-var-paste: \f0ea;
+$fa-var-file-clipboard: \f0ea;
+$fa-var-code-pull-request: \e13c;
+$fa-var-clipboard-list: \f46d;
+$fa-var-truck-ramp-box: \f4de;
+$fa-var-truck-loading: \f4de;
+$fa-var-user-check: \f4fc;
+$fa-var-vial-virus: \e597;
+$fa-var-sheet-plastic: \e571;
+$fa-var-blog: \f781;
+$fa-var-user-ninja: \f504;
+$fa-var-person-arrow-up-from-line: \e539;
+$fa-var-scroll-torah: \f6a0;
+$fa-var-torah: \f6a0;
+$fa-var-broom-ball: \f458;
+$fa-var-quidditch: \f458;
+$fa-var-quidditch-broom-ball: \f458;
+$fa-var-toggle-off: \f204;
+$fa-var-box-archive: \f187;
+$fa-var-archive: \f187;
+$fa-var-person-drowning: \e545;
+$fa-var-arrow-down-9-1: \f886;
+$fa-var-sort-numeric-desc: \f886;
+$fa-var-sort-numeric-down-alt: \f886;
+$fa-var-face-grin-tongue-squint: \f58a;
+$fa-var-grin-tongue-squint: \f58a;
+$fa-var-spray-can: \f5bd;
+$fa-var-truck-monster: \f63b;
+$fa-var-w: \57;
+$fa-var-earth-africa: \f57c;
+$fa-var-globe-africa: \f57c;
+$fa-var-rainbow: \f75b;
+$fa-var-circle-notch: \f1ce;
+$fa-var-tablet-screen-button: \f3fa;
+$fa-var-tablet-alt: \f3fa;
+$fa-var-paw: \f1b0;
+$fa-var-cloud: \f0c2;
+$fa-var-trowel-bricks: \e58a;
+$fa-var-face-flushed: \f579;
+$fa-var-flushed: \f579;
+$fa-var-hospital-user: \f80d;
+$fa-var-tent-arrow-left-right: \e57f;
+$fa-var-gavel: \f0e3;
+$fa-var-legal: \f0e3;
+$fa-var-binoculars: \f1e5;
+$fa-var-microphone-slash: \f131;
+$fa-var-box-tissue: \e05b;
+$fa-var-motorcycle: \f21c;
+$fa-var-bell-concierge: \f562;
+$fa-var-concierge-bell: \f562;
+$fa-var-pen-ruler: \f5ae;
+$fa-var-pencil-ruler: \f5ae;
+$fa-var-people-arrows: \e068;
+$fa-var-people-arrows-left-right: \e068;
+$fa-var-mars-and-venus-burst: \e523;
+$fa-var-square-caret-right: \f152;
+$fa-var-caret-square-right: \f152;
+$fa-var-scissors: \f0c4;
+$fa-var-cut: \f0c4;
+$fa-var-sun-plant-wilt: \e57a;
+$fa-var-toilets-portable: \e584;
+$fa-var-hockey-puck: \f453;
+$fa-var-table: \f0ce;
+$fa-var-magnifying-glass-arrow-right: \e521;
+$fa-var-tachograph-digital: \f566;
+$fa-var-digital-tachograph: \f566;
+$fa-var-users-slash: \e073;
+$fa-var-clover: \e139;
+$fa-var-reply: \f3e5;
+$fa-var-mail-reply: \f3e5;
+$fa-var-star-and-crescent: \f699;
+$fa-var-house-fire: \e50c;
+$fa-var-square-minus: \f146;
+$fa-var-minus-square: \f146;
+$fa-var-helicopter: \f533;
+$fa-var-compass: \f14e;
+$fa-var-square-caret-down: \f150;
+$fa-var-caret-square-down: \f150;
+$fa-var-file-circle-question: \e4ef;
+$fa-var-laptop-code: \f5fc;
+$fa-var-swatchbook: \f5c3;
+$fa-var-prescription-bottle: \f485;
+$fa-var-bars: \f0c9;
+$fa-var-navicon: \f0c9;
+$fa-var-people-group: \e533;
+$fa-var-hourglass-end: \f253;
+$fa-var-hourglass-3: \f253;
+$fa-var-heart-crack: \f7a9;
+$fa-var-heart-broken: \f7a9;
+$fa-var-square-up-right: \f360;
+$fa-var-external-link-square-alt: \f360;
+$fa-var-face-kiss-beam: \f597;
+$fa-var-kiss-beam: \f597;
+$fa-var-film: \f008;
+$fa-var-ruler-horizontal: \f547;
+$fa-var-people-robbery: \e536;
+$fa-var-lightbulb: \f0eb;
+$fa-var-caret-left: \f0d9;
+$fa-var-circle-exclamation: \f06a;
+$fa-var-exclamation-circle: \f06a;
+$fa-var-school-circle-xmark: \e56d;
+$fa-var-arrow-right-from-bracket: \f08b;
+$fa-var-sign-out: \f08b;
+$fa-var-circle-chevron-down: \f13a;
+$fa-var-chevron-circle-down: \f13a;
+$fa-var-unlock-keyhole: \f13e;
+$fa-var-unlock-alt: \f13e;
+$fa-var-cloud-showers-heavy: \f740;
+$fa-var-headphones-simple: \f58f;
+$fa-var-headphones-alt: \f58f;
+$fa-var-sitemap: \f0e8;
+$fa-var-circle-dollar-to-slot: \f4b9;
+$fa-var-donate: \f4b9;
+$fa-var-memory: \f538;
+$fa-var-road-spikes: \e568;
+$fa-var-fire-burner: \e4f1;
+$fa-var-flag: \f024;
+$fa-var-hanukiah: \f6e6;
+$fa-var-feather: \f52d;
+$fa-var-volume-low: \f027;
+$fa-var-volume-down: \f027;
+$fa-var-comment-slash: \f4b3;
+$fa-var-cloud-sun-rain: \f743;
+$fa-var-compress: \f066;
+$fa-var-wheat-awn: \e2cd;
+$fa-var-wheat-alt: \e2cd;
+$fa-var-ankh: \f644;
+$fa-var-hands-holding-child: \e4fa;
+$fa-var-asterisk: \2a;
+$fa-var-square-check: \f14a;
+$fa-var-check-square: \f14a;
+$fa-var-peseta-sign: \e221;
+$fa-var-heading: \f1dc;
+$fa-var-header: \f1dc;
+$fa-var-ghost: \f6e2;
+$fa-var-list: \f03a;
+$fa-var-list-squares: \f03a;
+$fa-var-square-phone-flip: \f87b;
+$fa-var-phone-square-alt: \f87b;
+$fa-var-cart-plus: \f217;
+$fa-var-gamepad: \f11b;
+$fa-var-circle-dot: \f192;
+$fa-var-dot-circle: \f192;
+$fa-var-face-dizzy: \f567;
+$fa-var-dizzy: \f567;
+$fa-var-egg: \f7fb;
+$fa-var-house-medical-circle-xmark: \e513;
+$fa-var-campground: \f6bb;
+$fa-var-folder-plus: \f65e;
+$fa-var-futbol: \f1e3;
+$fa-var-futbol-ball: \f1e3;
+$fa-var-soccer-ball: \f1e3;
+$fa-var-paintbrush: \f1fc;
+$fa-var-paint-brush: \f1fc;
+$fa-var-lock: \f023;
+$fa-var-gas-pump: \f52f;
+$fa-var-hot-tub-person: \f593;
+$fa-var-hot-tub: \f593;
+$fa-var-map-location: \f59f;
+$fa-var-map-marked: \f59f;
+$fa-var-house-flood-water: \e50e;
+$fa-var-tree: \f1bb;
+$fa-var-bridge-lock: \e4cc;
+$fa-var-sack-dollar: \f81d;
+$fa-var-pen-to-square: \f044;
+$fa-var-edit: \f044;
+$fa-var-car-side: \f5e4;
+$fa-var-share-nodes: \f1e0;
+$fa-var-share-alt: \f1e0;
+$fa-var-heart-circle-minus: \e4ff;
+$fa-var-hourglass-half: \f252;
+$fa-var-hourglass-2: \f252;
+$fa-var-microscope: \f610;
+$fa-var-sink: \e06d;
+$fa-var-bag-shopping: \f290;
+$fa-var-shopping-bag: \f290;
+$fa-var-arrow-down-z-a: \f881;
+$fa-var-sort-alpha-desc: \f881;
+$fa-var-sort-alpha-down-alt: \f881;
+$fa-var-mitten: \f7b5;
+$fa-var-person-rays: \e54d;
+$fa-var-users: \f0c0;
+$fa-var-eye-slash: \f070;
+$fa-var-flask-vial: \e4f3;
+$fa-var-hand: \f256;
+$fa-var-hand-paper: \f256;
+$fa-var-om: \f679;
+$fa-var-worm: \e599;
+$fa-var-house-circle-xmark: \e50b;
+$fa-var-plug: \f1e6;
+$fa-var-chevron-up: \f077;
+$fa-var-hand-spock: \f259;
+$fa-var-stopwatch: \f2f2;
+$fa-var-face-kiss: \f596;
+$fa-var-kiss: \f596;
+$fa-var-bridge-circle-xmark: \e4cb;
+$fa-var-face-grin-tongue: \f589;
+$fa-var-grin-tongue: \f589;
+$fa-var-chess-bishop: \f43a;
+$fa-var-face-grin-wink: \f58c;
+$fa-var-grin-wink: \f58c;
+$fa-var-ear-deaf: \f2a4;
+$fa-var-deaf: \f2a4;
+$fa-var-deafness: \f2a4;
+$fa-var-hard-of-hearing: \f2a4;
+$fa-var-road-circle-check: \e564;
+$fa-var-dice-five: \f523;
+$fa-var-square-rss: \f143;
+$fa-var-rss-square: \f143;
+$fa-var-land-mine-on: \e51b;
+$fa-var-i-cursor: \f246;
+$fa-var-stamp: \f5bf;
+$fa-var-stairs: \e289;
+$fa-var-i: \49;
+$fa-var-hryvnia-sign: \f6f2;
+$fa-var-hryvnia: \f6f2;
+$fa-var-pills: \f484;
+$fa-var-face-grin-wide: \f581;
+$fa-var-grin-alt: \f581;
+$fa-var-tooth: \f5c9;
+$fa-var-v: \56;
+$fa-var-bicycle: \f206;
+$fa-var-staff-snake: \e579;
+$fa-var-rod-asclepius: \e579;
+$fa-var-rod-snake: \e579;
+$fa-var-staff-aesculapius: \e579;
+$fa-var-head-side-cough-slash: \e062;
+$fa-var-truck-medical: \f0f9;
+$fa-var-ambulance: \f0f9;
+$fa-var-wheat-awn-circle-exclamation: \e598;
+$fa-var-snowman: \f7d0;
+$fa-var-mortar-pestle: \f5a7;
+$fa-var-road-barrier: \e562;
+$fa-var-school: \f549;
+$fa-var-igloo: \f7ae;
+$fa-var-joint: \f595;
+$fa-var-angle-right: \f105;
+$fa-var-horse: \f6f0;
+$fa-var-q: \51;
+$fa-var-g: \47;
+$fa-var-notes-medical: \f481;
+$fa-var-temperature-half: \f2c9;
+$fa-var-temperature-2: \f2c9;
+$fa-var-thermometer-2: \f2c9;
+$fa-var-thermometer-half: \f2c9;
+$fa-var-dong-sign: \e169;
+$fa-var-capsules: \f46b;
+$fa-var-poo-storm: \f75a;
+$fa-var-poo-bolt: \f75a;
+$fa-var-face-frown-open: \f57a;
+$fa-var-frown-open: \f57a;
+$fa-var-hand-point-up: \f0a6;
+$fa-var-money-bill: \f0d6;
+$fa-var-bookmark: \f02e;
+$fa-var-align-justify: \f039;
+$fa-var-umbrella-beach: \f5ca;
+$fa-var-helmet-un: \e503;
+$fa-var-bullseye: \f140;
+$fa-var-bacon: \f7e5;
+$fa-var-hand-point-down: \f0a7;
+$fa-var-arrow-up-from-bracket: \e09a;
+$fa-var-folder: \f07b;
+$fa-var-folder-blank: \f07b;
+$fa-var-file-waveform: \f478;
+$fa-var-file-medical-alt: \f478;
+$fa-var-radiation: \f7b9;
+$fa-var-chart-simple: \e473;
+$fa-var-mars-stroke: \f229;
+$fa-var-vial: \f492;
+$fa-var-gauge: \f624;
+$fa-var-dashboard: \f624;
+$fa-var-gauge-med: \f624;
+$fa-var-tachometer-alt-average: \f624;
+$fa-var-wand-magic-sparkles: \e2ca;
+$fa-var-magic-wand-sparkles: \e2ca;
+$fa-var-e: \45;
+$fa-var-pen-clip: \f305;
+$fa-var-pen-alt: \f305;
+$fa-var-bridge-circle-exclamation: \e4ca;
+$fa-var-user: \f007;
+$fa-var-school-circle-check: \e56b;
+$fa-var-dumpster: \f793;
+$fa-var-van-shuttle: \f5b6;
+$fa-var-shuttle-van: \f5b6;
+$fa-var-building-user: \e4da;
+$fa-var-square-caret-left: \f191;
+$fa-var-caret-square-left: \f191;
+$fa-var-highlighter: \f591;
+$fa-var-key: \f084;
+$fa-var-bullhorn: \f0a1;
+$fa-var-globe: \f0ac;
+$fa-var-synagogue: \f69b;
+$fa-var-person-half-dress: \e548;
+$fa-var-road-bridge: \e563;
+$fa-var-location-arrow: \f124;
+$fa-var-c: \43;
+$fa-var-tablet-button: \f10a;
+$fa-var-building-lock: \e4d6;
+$fa-var-pizza-slice: \f818;
+$fa-var-money-bill-wave: \f53a;
+$fa-var-chart-area: \f1fe;
+$fa-var-area-chart: \f1fe;
+$fa-var-house-flag: \e50d;
+$fa-var-person-circle-minus: \e540;
+$fa-var-ban: \f05e;
+$fa-var-cancel: \f05e;
+$fa-var-camera-rotate: \e0d8;
+$fa-var-spray-can-sparkles: \f5d0;
+$fa-var-air-freshener: \f5d0;
+$fa-var-star: \f005;
+$fa-var-repeat: \f363;
+$fa-var-cross: \f654;
+$fa-var-box: \f466;
+$fa-var-venus-mars: \f228;
+$fa-var-arrow-pointer: \f245;
+$fa-var-mouse-pointer: \f245;
+$fa-var-maximize: \f31e;
+$fa-var-expand-arrows-alt: \f31e;
+$fa-var-charging-station: \f5e7;
+$fa-var-shapes: \f61f;
+$fa-var-triangle-circle-square: \f61f;
+$fa-var-shuffle: \f074;
+$fa-var-random: \f074;
+$fa-var-person-running: \f70c;
+$fa-var-running: \f70c;
+$fa-var-mobile-retro: \e527;
+$fa-var-grip-lines-vertical: \f7a5;
+$fa-var-spider: \f717;
+$fa-var-hands-bound: \e4f9;
+$fa-var-file-invoice-dollar: \f571;
+$fa-var-plane-circle-exclamation: \e556;
+$fa-var-x-ray: \f497;
+$fa-var-spell-check: \f891;
+$fa-var-slash: \f715;
+$fa-var-computer-mouse: \f8cc;
+$fa-var-mouse: \f8cc;
+$fa-var-arrow-right-to-bracket: \f090;
+$fa-var-sign-in: \f090;
+$fa-var-shop-slash: \e070;
+$fa-var-store-alt-slash: \e070;
+$fa-var-server: \f233;
+$fa-var-virus-covid-slash: \e4a9;
+$fa-var-shop-lock: \e4a5;
+$fa-var-hourglass-start: \f251;
+$fa-var-hourglass-1: \f251;
+$fa-var-blender-phone: \f6b6;
+$fa-var-building-wheat: \e4db;
+$fa-var-person-breastfeeding: \e53a;
+$fa-var-right-to-bracket: \f2f6;
+$fa-var-sign-in-alt: \f2f6;
+$fa-var-venus: \f221;
+$fa-var-passport: \f5ab;
+$fa-var-heart-pulse: \f21e;
+$fa-var-heartbeat: \f21e;
+$fa-var-people-carry-box: \f4ce;
+$fa-var-people-carry: \f4ce;
+$fa-var-temperature-high: \f769;
+$fa-var-microchip: \f2db;
+$fa-var-crown: \f521;
+$fa-var-weight-hanging: \f5cd;
+$fa-var-xmarks-lines: \e59a;
+$fa-var-file-prescription: \f572;
+$fa-var-weight-scale: \f496;
+$fa-var-weight: \f496;
+$fa-var-user-group: \f500;
+$fa-var-user-friends: \f500;
+$fa-var-arrow-up-a-z: \f15e;
+$fa-var-sort-alpha-up: \f15e;
+$fa-var-chess-knight: \f441;
+$fa-var-face-laugh-squint: \f59b;
+$fa-var-laugh-squint: \f59b;
+$fa-var-wheelchair: \f193;
+$fa-var-circle-arrow-up: \f0aa;
+$fa-var-arrow-circle-up: \f0aa;
+$fa-var-toggle-on: \f205;
+$fa-var-person-walking: \f554;
+$fa-var-walking: \f554;
+$fa-var-l: \4c;
+$fa-var-fire: \f06d;
+$fa-var-bed-pulse: \f487;
+$fa-var-procedures: \f487;
+$fa-var-shuttle-space: \f197;
+$fa-var-space-shuttle: \f197;
+$fa-var-face-laugh: \f599;
+$fa-var-laugh: \f599;
+$fa-var-folder-open: \f07c;
+$fa-var-heart-circle-plus: \e500;
+$fa-var-code-fork: \e13b;
+$fa-var-city: \f64f;
+$fa-var-microphone-lines: \f3c9;
+$fa-var-microphone-alt: \f3c9;
+$fa-var-pepper-hot: \f816;
+$fa-var-unlock: \f09c;
+$fa-var-colon-sign: \e140;
+$fa-var-headset: \f590;
+$fa-var-store-slash: \e071;
+$fa-var-road-circle-xmark: \e566;
+$fa-var-user-minus: \f503;
+$fa-var-mars-stroke-up: \f22a;
+$fa-var-mars-stroke-v: \f22a;
+$fa-var-champagne-glasses: \f79f;
+$fa-var-glass-cheers: \f79f;
+$fa-var-clipboard: \f328;
+$fa-var-house-circle-exclamation: \e50a;
+$fa-var-file-arrow-up: \f574;
+$fa-var-file-upload: \f574;
+$fa-var-wifi: \f1eb;
+$fa-var-wifi-3: \f1eb;
+$fa-var-wifi-strong: \f1eb;
+$fa-var-bath: \f2cd;
+$fa-var-bathtub: \f2cd;
+$fa-var-underline: \f0cd;
+$fa-var-user-pen: \f4ff;
+$fa-var-user-edit: \f4ff;
+$fa-var-signature: \f5b7;
+$fa-var-stroopwafel: \f551;
+$fa-var-bold: \f032;
+$fa-var-anchor-lock: \e4ad;
+$fa-var-building-ngo: \e4d7;
+$fa-var-manat-sign: \e1d5;
+$fa-var-not-equal: \f53e;
+$fa-var-border-top-left: \f853;
+$fa-var-border-style: \f853;
+$fa-var-map-location-dot: \f5a0;
+$fa-var-map-marked-alt: \f5a0;
+$fa-var-jedi: \f669;
+$fa-var-square-poll-vertical: \f681;
+$fa-var-poll: \f681;
+$fa-var-mug-hot: \f7b6;
+$fa-var-car-battery: \f5df;
+$fa-var-battery-car: \f5df;
+$fa-var-gift: \f06b;
+$fa-var-dice-two: \f528;
+$fa-var-chess-queen: \f445;
+$fa-var-glasses: \f530;
+$fa-var-chess-board: \f43c;
+$fa-var-building-circle-check: \e4d2;
+$fa-var-person-chalkboard: \e53d;
+$fa-var-mars-stroke-right: \f22b;
+$fa-var-mars-stroke-h: \f22b;
+$fa-var-hand-back-fist: \f255;
+$fa-var-hand-rock: \f255;
+$fa-var-square-caret-up: \f151;
+$fa-var-caret-square-up: \f151;
+$fa-var-cloud-showers-water: \e4e4;
+$fa-var-chart-bar: \f080;
+$fa-var-bar-chart: \f080;
+$fa-var-hands-bubbles: \e05e;
+$fa-var-hands-wash: \e05e;
+$fa-var-less-than-equal: \f537;
+$fa-var-train: \f238;
+$fa-var-eye-low-vision: \f2a8;
+$fa-var-low-vision: \f2a8;
+$fa-var-crow: \f520;
+$fa-var-sailboat: \e445;
+$fa-var-window-restore: \f2d2;
+$fa-var-square-plus: \f0fe;
+$fa-var-plus-square: \f0fe;
+$fa-var-torii-gate: \f6a1;
+$fa-var-frog: \f52e;
+$fa-var-bucket: \e4cf;
+$fa-var-image: \f03e;
+$fa-var-microphone: \f130;
+$fa-var-cow: \f6c8;
+$fa-var-caret-up: \f0d8;
+$fa-var-screwdriver: \f54a;
+$fa-var-folder-closed: \e185;
+$fa-var-house-tsunami: \e515;
+$fa-var-square-nfi: \e576;
+$fa-var-arrow-up-from-ground-water: \e4b5;
+$fa-var-martini-glass: \f57b;
+$fa-var-glass-martini-alt: \f57b;
+$fa-var-rotate-left: \f2ea;
+$fa-var-rotate-back: \f2ea;
+$fa-var-rotate-backward: \f2ea;
+$fa-var-undo-alt: \f2ea;
+$fa-var-table-columns: \f0db;
+$fa-var-columns: \f0db;
+$fa-var-lemon: \f094;
+$fa-var-head-side-mask: \e063;
+$fa-var-handshake: \f2b5;
+$fa-var-gem: \f3a5;
+$fa-var-dolly: \f472;
+$fa-var-dolly-box: \f472;
+$fa-var-smoking: \f48d;
+$fa-var-minimize: \f78c;
+$fa-var-compress-arrows-alt: \f78c;
+$fa-var-monument: \f5a6;
+$fa-var-snowplow: \f7d2;
+$fa-var-angles-right: \f101;
+$fa-var-angle-double-right: \f101;
+$fa-var-cannabis: \f55f;
+$fa-var-circle-play: \f144;
+$fa-var-play-circle: \f144;
+$fa-var-tablets: \f490;
+$fa-var-ethernet: \f796;
+$fa-var-euro-sign: \f153;
+$fa-var-eur: \f153;
+$fa-var-euro: \f153;
+$fa-var-chair: \f6c0;
+$fa-var-circle-check: \f058;
+$fa-var-check-circle: \f058;
+$fa-var-circle-stop: \f28d;
+$fa-var-stop-circle: \f28d;
+$fa-var-compass-drafting: \f568;
+$fa-var-drafting-compass: \f568;
+$fa-var-plate-wheat: \e55a;
+$fa-var-icicles: \f7ad;
+$fa-var-person-shelter: \e54f;
+$fa-var-neuter: \f22c;
+$fa-var-id-badge: \f2c1;
+$fa-var-marker: \f5a1;
+$fa-var-face-laugh-beam: \f59a;
+$fa-var-laugh-beam: \f59a;
+$fa-var-helicopter-symbol: \e502;
+$fa-var-universal-access: \f29a;
+$fa-var-circle-chevron-up: \f139;
+$fa-var-chevron-circle-up: \f139;
+$fa-var-lari-sign: \e1c8;
+$fa-var-volcano: \f770;
+$fa-var-person-walking-dashed-line-arrow-right: \e553;
+$fa-var-sterling-sign: \f154;
+$fa-var-gbp: \f154;
+$fa-var-pound-sign: \f154;
+$fa-var-viruses: \e076;
+$fa-var-square-person-confined: \e577;
+$fa-var-user-tie: \f508;
+$fa-var-arrow-down-long: \f175;
+$fa-var-long-arrow-down: \f175;
+$fa-var-tent-arrow-down-to-line: \e57e;
+$fa-var-certificate: \f0a3;
+$fa-var-reply-all: \f122;
+$fa-var-mail-reply-all: \f122;
+$fa-var-suitcase: \f0f2;
+$fa-var-person-skating: \f7c5;
+$fa-var-skating: \f7c5;
+$fa-var-filter-circle-dollar: \f662;
+$fa-var-funnel-dollar: \f662;
+$fa-var-camera-retro: \f083;
+$fa-var-circle-arrow-down: \f0ab;
+$fa-var-arrow-circle-down: \f0ab;
+$fa-var-file-import: \f56f;
+$fa-var-arrow-right-to-file: \f56f;
+$fa-var-square-arrow-up-right: \f14c;
+$fa-var-external-link-square: \f14c;
+$fa-var-box-open: \f49e;
+$fa-var-scroll: \f70e;
+$fa-var-spa: \f5bb;
+$fa-var-location-pin-lock: \e51f;
+$fa-var-pause: \f04c;
+$fa-var-hill-avalanche: \e507;
+$fa-var-temperature-empty: \f2cb;
+$fa-var-temperature-0: \f2cb;
+$fa-var-thermometer-0: \f2cb;
+$fa-var-thermometer-empty: \f2cb;
+$fa-var-bomb: \f1e2;
+$fa-var-registered: \f25d;
+$fa-var-address-card: \f2bb;
+$fa-var-contact-card: \f2bb;
+$fa-var-vcard: \f2bb;
+$fa-var-scale-unbalanced-flip: \f516;
+$fa-var-balance-scale-right: \f516;
+$fa-var-subscript: \f12c;
+$fa-var-diamond-turn-right: \f5eb;
+$fa-var-directions: \f5eb;
+$fa-var-burst: \e4dc;
+$fa-var-house-laptop: \e066;
+$fa-var-laptop-house: \e066;
+$fa-var-face-tired: \f5c8;
+$fa-var-tired: \f5c8;
+$fa-var-money-bills: \e1f3;
+$fa-var-smog: \f75f;
+$fa-var-crutch: \f7f7;
+$fa-var-cloud-arrow-up: \f0ee;
+$fa-var-cloud-upload: \f0ee;
+$fa-var-cloud-upload-alt: \f0ee;
+$fa-var-palette: \f53f;
+$fa-var-arrows-turn-right: \e4c0;
+$fa-var-vest: \e085;
+$fa-var-ferry: \e4ea;
+$fa-var-arrows-down-to-people: \e4b9;
+$fa-var-seedling: \f4d8;
+$fa-var-sprout: \f4d8;
+$fa-var-left-right: \f337;
+$fa-var-arrows-alt-h: \f337;
+$fa-var-boxes-packing: \e4c7;
+$fa-var-circle-arrow-left: \f0a8;
+$fa-var-arrow-circle-left: \f0a8;
+$fa-var-group-arrows-rotate: \e4f6;
+$fa-var-bowl-food: \e4c6;
+$fa-var-candy-cane: \f786;
+$fa-var-arrow-down-wide-short: \f160;
+$fa-var-sort-amount-asc: \f160;
+$fa-var-sort-amount-down: \f160;
+$fa-var-cloud-bolt: \f76c;
+$fa-var-thunderstorm: \f76c;
+$fa-var-text-slash: \f87d;
+$fa-var-remove-format: \f87d;
+$fa-var-face-smile-wink: \f4da;
+$fa-var-smile-wink: \f4da;
+$fa-var-file-word: \f1c2;
+$fa-var-file-powerpoint: \f1c4;
+$fa-var-arrows-left-right: \f07e;
+$fa-var-arrows-h: \f07e;
+$fa-var-house-lock: \e510;
+$fa-var-cloud-arrow-down: \f0ed;
+$fa-var-cloud-download: \f0ed;
+$fa-var-cloud-download-alt: \f0ed;
+$fa-var-children: \e4e1;
+$fa-var-chalkboard: \f51b;
+$fa-var-blackboard: \f51b;
+$fa-var-user-large-slash: \f4fa;
+$fa-var-user-alt-slash: \f4fa;
+$fa-var-envelope-open: \f2b6;
+$fa-var-handshake-simple-slash: \e05f;
+$fa-var-handshake-alt-slash: \e05f;
+$fa-var-mattress-pillow: \e525;
+$fa-var-guarani-sign: \e19a;
+$fa-var-arrows-rotate: \f021;
+$fa-var-refresh: \f021;
+$fa-var-sync: \f021;
+$fa-var-fire-extinguisher: \f134;
+$fa-var-cruzeiro-sign: \e152;
+$fa-var-greater-than-equal: \f532;
+$fa-var-shield-halved: \f3ed;
+$fa-var-shield-alt: \f3ed;
+$fa-var-book-atlas: \f558;
+$fa-var-atlas: \f558;
+$fa-var-virus: \e074;
+$fa-var-envelope-circle-check: \e4e8;
+$fa-var-layer-group: \f5fd;
+$fa-var-arrows-to-dot: \e4be;
+$fa-var-archway: \f557;
+$fa-var-heart-circle-check: \e4fd;
+$fa-var-house-chimney-crack: \f6f1;
+$fa-var-house-damage: \f6f1;
+$fa-var-file-zipper: \f1c6;
+$fa-var-file-archive: \f1c6;
+$fa-var-square: \f0c8;
+$fa-var-martini-glass-empty: \f000;
+$fa-var-glass-martini: \f000;
+$fa-var-couch: \f4b8;
+$fa-var-cedi-sign: \e0df;
+$fa-var-italic: \f033;
+$fa-var-church: \f51d;
+$fa-var-comments-dollar: \f653;
+$fa-var-democrat: \f747;
+$fa-var-z: \5a;
+$fa-var-person-skiing: \f7c9;
+$fa-var-skiing: \f7c9;
+$fa-var-road-lock: \e567;
+$fa-var-a: \41;
+$fa-var-temperature-arrow-down: \e03f;
+$fa-var-temperature-down: \e03f;
+$fa-var-feather-pointed: \f56b;
+$fa-var-feather-alt: \f56b;
+$fa-var-p: \50;
+$fa-var-snowflake: \f2dc;
+$fa-var-newspaper: \f1ea;
+$fa-var-rectangle-ad: \f641;
+$fa-var-ad: \f641;
+$fa-var-circle-arrow-right: \f0a9;
+$fa-var-arrow-circle-right: \f0a9;
+$fa-var-filter-circle-xmark: \e17b;
+$fa-var-locust: \e520;
+$fa-var-sort: \f0dc;
+$fa-var-unsorted: \f0dc;
+$fa-var-list-ol: \f0cb;
+$fa-var-list-1-2: \f0cb;
+$fa-var-list-numeric: \f0cb;
+$fa-var-person-dress-burst: \e544;
+$fa-var-money-check-dollar: \f53d;
+$fa-var-money-check-alt: \f53d;
+$fa-var-vector-square: \f5cb;
+$fa-var-bread-slice: \f7ec;
+$fa-var-language: \f1ab;
+$fa-var-face-kiss-wink-heart: \f598;
+$fa-var-kiss-wink-heart: \f598;
+$fa-var-filter: \f0b0;
+$fa-var-question: \3f;
+$fa-var-file-signature: \f573;
+$fa-var-up-down-left-right: \f0b2;
+$fa-var-arrows-alt: \f0b2;
+$fa-var-house-chimney-user: \e065;
+$fa-var-hand-holding-heart: \f4be;
+$fa-var-puzzle-piece: \f12e;
+$fa-var-money-check: \f53c;
+$fa-var-star-half-stroke: \f5c0;
+$fa-var-star-half-alt: \f5c0;
+$fa-var-code: \f121;
+$fa-var-whiskey-glass: \f7a0;
+$fa-var-glass-whiskey: \f7a0;
+$fa-var-building-circle-exclamation: \e4d3;
+$fa-var-magnifying-glass-chart: \e522;
+$fa-var-arrow-up-right-from-square: \f08e;
+$fa-var-external-link: \f08e;
+$fa-var-cubes-stacked: \e4e6;
+$fa-var-won-sign: \f159;
+$fa-var-krw: \f159;
+$fa-var-won: \f159;
+$fa-var-virus-covid: \e4a8;
+$fa-var-austral-sign: \e0a9;
+$fa-var-f: \46;
+$fa-var-leaf: \f06c;
+$fa-var-road: \f018;
+$fa-var-taxi: \f1ba;
+$fa-var-cab: \f1ba;
+$fa-var-person-circle-plus: \e541;
+$fa-var-chart-pie: \f200;
+$fa-var-pie-chart: \f200;
+$fa-var-bolt-lightning: \e0b7;
+$fa-var-sack-xmark: \e56a;
+$fa-var-file-excel: \f1c3;
+$fa-var-file-contract: \f56c;
+$fa-var-fish-fins: \e4f2;
+$fa-var-building-flag: \e4d5;
+$fa-var-face-grin-beam: \f582;
+$fa-var-grin-beam: \f582;
+$fa-var-object-ungroup: \f248;
+$fa-var-poop: \f619;
+$fa-var-location-pin: \f041;
+$fa-var-map-marker: \f041;
+$fa-var-kaaba: \f66b;
+$fa-var-toilet-paper: \f71e;
+$fa-var-helmet-safety: \f807;
+$fa-var-hard-hat: \f807;
+$fa-var-hat-hard: \f807;
+$fa-var-eject: \f052;
+$fa-var-circle-right: \f35a;
+$fa-var-arrow-alt-circle-right: \f35a;
+$fa-var-plane-circle-check: \e555;
+$fa-var-face-rolling-eyes: \f5a5;
+$fa-var-meh-rolling-eyes: \f5a5;
+$fa-var-object-group: \f247;
+$fa-var-chart-line: \f201;
+$fa-var-line-chart: \f201;
+$fa-var-mask-ventilator: \e524;
+$fa-var-arrow-right: \f061;
+$fa-var-signs-post: \f277;
+$fa-var-map-signs: \f277;
+$fa-var-cash-register: \f788;
+$fa-var-person-circle-question: \e542;
+$fa-var-h: \48;
+$fa-var-tarp: \e57b;
+$fa-var-screwdriver-wrench: \f7d9;
+$fa-var-tools: \f7d9;
+$fa-var-arrows-to-eye: \e4bf;
+$fa-var-plug-circle-bolt: \e55b;
+$fa-var-heart: \f004;
+$fa-var-mars-and-venus: \f224;
+$fa-var-house-user: \e1b0;
+$fa-var-home-user: \e1b0;
+$fa-var-dumpster-fire: \f794;
+$fa-var-house-crack: \e3b1;
+$fa-var-martini-glass-citrus: \f561;
+$fa-var-cocktail: \f561;
+$fa-var-face-surprise: \f5c2;
+$fa-var-surprise: \f5c2;
+$fa-var-bottle-water: \e4c5;
+$fa-var-circle-pause: \f28b;
+$fa-var-pause-circle: \f28b;
+$fa-var-toilet-paper-slash: \e072;
+$fa-var-apple-whole: \f5d1;
+$fa-var-apple-alt: \f5d1;
+$fa-var-kitchen-set: \e51a;
+$fa-var-r: \52;
+$fa-var-temperature-quarter: \f2ca;
+$fa-var-temperature-1: \f2ca;
+$fa-var-thermometer-1: \f2ca;
+$fa-var-thermometer-quarter: \f2ca;
+$fa-var-cube: \f1b2;
+$fa-var-bitcoin-sign: \e0b4;
+$fa-var-shield-dog: \e573;
+$fa-var-solar-panel: \f5ba;
+$fa-var-lock-open: \f3c1;
+$fa-var-elevator: \e16d;
+$fa-var-money-bill-transfer: \e528;
+$fa-var-money-bill-trend-up: \e529;
+$fa-var-house-flood-water-circle-arrow-right: \e50f;
+$fa-var-square-poll-horizontal: \f682;
+$fa-var-poll-h: \f682;
+$fa-var-circle: \f111;
+$fa-var-backward-fast: \f049;
+$fa-var-fast-backward: \f049;
+$fa-var-recycle: \f1b8;
+$fa-var-user-astronaut: \f4fb;
+$fa-var-plane-slash: \e069;
+$fa-var-trademark: \f25c;
+$fa-var-basketball: \f434;
+$fa-var-basketball-ball: \f434;
+$fa-var-satellite-dish: \f7c0;
+$fa-var-circle-up: \f35b;
+$fa-var-arrow-alt-circle-up: \f35b;
+$fa-var-mobile-screen-button: \f3cd;
+$fa-var-mobile-alt: \f3cd;
+$fa-var-volume-high: \f028;
+$fa-var-volume-up: \f028;
+$fa-var-users-rays: \e593;
+$fa-var-wallet: \f555;
+$fa-var-clipboard-check: \f46c;
+$fa-var-file-audio: \f1c7;
+$fa-var-burger: \f805;
+$fa-var-hamburger: \f805;
+$fa-var-wrench: \f0ad;
+$fa-var-bugs: \e4d0;
+$fa-var-rupee-sign: \f156;
+$fa-var-rupee: \f156;
+$fa-var-file-image: \f1c5;
+$fa-var-circle-question: \f059;
+$fa-var-question-circle: \f059;
+$fa-var-plane-departure: \f5b0;
+$fa-var-handshake-slash: \e060;
+$fa-var-book-bookmark: \e0bb;
+$fa-var-code-branch: \f126;
+$fa-var-hat-cowboy: \f8c0;
+$fa-var-bridge: \e4c8;
+$fa-var-phone-flip: \f879;
+$fa-var-phone-alt: \f879;
+$fa-var-truck-front: \e2b7;
+$fa-var-cat: \f6be;
+$fa-var-anchor-circle-exclamation: \e4ab;
+$fa-var-truck-field: \e58d;
+$fa-var-route: \f4d7;
+$fa-var-clipboard-question: \e4e3;
+$fa-var-panorama: \e209;
+$fa-var-comment-medical: \f7f5;
+$fa-var-teeth-open: \f62f;
+$fa-var-file-circle-minus: \e4ed;
+$fa-var-tags: \f02c;
+$fa-var-wine-glass: \f4e3;
+$fa-var-forward-fast: \f050;
+$fa-var-fast-forward: \f050;
+$fa-var-face-meh-blank: \f5a4;
+$fa-var-meh-blank: \f5a4;
+$fa-var-square-parking: \f540;
+$fa-var-parking: \f540;
+$fa-var-house-signal: \e012;
+$fa-var-bars-progress: \f828;
+$fa-var-tasks-alt: \f828;
+$fa-var-faucet-drip: \e006;
+$fa-var-cart-flatbed: \f474;
+$fa-var-dolly-flatbed: \f474;
+$fa-var-ban-smoking: \f54d;
+$fa-var-smoking-ban: \f54d;
+$fa-var-terminal: \f120;
+$fa-var-mobile-button: \f10b;
+$fa-var-house-medical-flag: \e514;
+$fa-var-basket-shopping: \f291;
+$fa-var-shopping-basket: \f291;
+$fa-var-tape: \f4db;
+$fa-var-bus-simple: \f55e;
+$fa-var-bus-alt: \f55e;
+$fa-var-eye: \f06e;
+$fa-var-face-sad-cry: \f5b3;
+$fa-var-sad-cry: \f5b3;
+$fa-var-audio-description: \f29e;
+$fa-var-person-military-to-person: \e54c;
+$fa-var-file-shield: \e4f0;
+$fa-var-user-slash: \f506;
+$fa-var-pen: \f304;
+$fa-var-tower-observation: \e586;
+$fa-var-file-code: \f1c9;
+$fa-var-signal: \f012;
+$fa-var-signal-5: \f012;
+$fa-var-signal-perfect: \f012;
+$fa-var-bus: \f207;
+$fa-var-heart-circle-xmark: \e501;
+$fa-var-house-chimney: \e3af;
+$fa-var-home-lg: \e3af;
+$fa-var-window-maximize: \f2d0;
+$fa-var-face-frown: \f119;
+$fa-var-frown: \f119;
+$fa-var-prescription: \f5b1;
+$fa-var-shop: \f54f;
+$fa-var-store-alt: \f54f;
+$fa-var-floppy-disk: \f0c7;
+$fa-var-save: \f0c7;
+$fa-var-vihara: \f6a7;
+$fa-var-scale-unbalanced: \f515;
+$fa-var-balance-scale-left: \f515;
+$fa-var-sort-up: \f0de;
+$fa-var-sort-asc: \f0de;
+$fa-var-comment-dots: \f4ad;
+$fa-var-commenting: \f4ad;
+$fa-var-plant-wilt: \e5aa;
+$fa-var-diamond: \f219;
+$fa-var-face-grin-squint: \f585;
+$fa-var-grin-squint: \f585;
+$fa-var-hand-holding-dollar: \f4c0;
+$fa-var-hand-holding-usd: \f4c0;
+$fa-var-bacterium: \e05a;
+$fa-var-hand-pointer: \f25a;
+$fa-var-drum-steelpan: \f56a;
+$fa-var-hand-scissors: \f257;
+$fa-var-hands-praying: \f684;
+$fa-var-praying-hands: \f684;
+$fa-var-arrow-rotate-right: \f01e;
+$fa-var-arrow-right-rotate: \f01e;
+$fa-var-arrow-rotate-forward: \f01e;
+$fa-var-redo: \f01e;
+$fa-var-biohazard: \f780;
+$fa-var-location-crosshairs: \f601;
+$fa-var-location: \f601;
+$fa-var-mars-double: \f227;
+$fa-var-child-dress: \e59c;
+$fa-var-users-between-lines: \e591;
+$fa-var-lungs-virus: \e067;
+$fa-var-face-grin-tears: \f588;
+$fa-var-grin-tears: \f588;
+$fa-var-phone: \f095;
+$fa-var-calendar-xmark: \f273;
+$fa-var-calendar-times: \f273;
+$fa-var-child-reaching: \e59d;
+$fa-var-head-side-virus: \e064;
+$fa-var-user-gear: \f4fe;
+$fa-var-user-cog: \f4fe;
+$fa-var-arrow-up-1-9: \f163;
+$fa-var-sort-numeric-up: \f163;
+$fa-var-door-closed: \f52a;
+$fa-var-shield-virus: \e06c;
+$fa-var-dice-six: \f526;
+$fa-var-mosquito-net: \e52c;
+$fa-var-bridge-water: \e4ce;
+$fa-var-person-booth: \f756;
+$fa-var-text-width: \f035;
+$fa-var-hat-wizard: \f6e8;
+$fa-var-pen-fancy: \f5ac;
+$fa-var-person-digging: \f85e;
+$fa-var-digging: \f85e;
+$fa-var-trash: \f1f8;
+$fa-var-gauge-simple: \f629;
+$fa-var-gauge-simple-med: \f629;
+$fa-var-tachometer-average: \f629;
+$fa-var-book-medical: \f7e6;
+$fa-var-poo: \f2fe;
+$fa-var-quote-right: \f10e;
+$fa-var-quote-right-alt: \f10e;
+$fa-var-shirt: \f553;
+$fa-var-t-shirt: \f553;
+$fa-var-tshirt: \f553;
+$fa-var-cubes: \f1b3;
+$fa-var-divide: \f529;
+$fa-var-tenge-sign: \f7d7;
+$fa-var-tenge: \f7d7;
+$fa-var-headphones: \f025;
+$fa-var-hands-holding: \f4c2;
+$fa-var-hands-clapping: \e1a8;
+$fa-var-republican: \f75e;
+$fa-var-arrow-left: \f060;
+$fa-var-person-circle-xmark: \e543;
+$fa-var-ruler: \f545;
+$fa-var-align-left: \f036;
+$fa-var-dice-d6: \f6d1;
+$fa-var-restroom: \f7bd;
+$fa-var-j: \4a;
+$fa-var-users-viewfinder: \e595;
+$fa-var-file-video: \f1c8;
+$fa-var-up-right-from-square: \f35d;
+$fa-var-external-link-alt: \f35d;
+$fa-var-table-cells: \f00a;
+$fa-var-th: \f00a;
+$fa-var-file-pdf: \f1c1;
+$fa-var-book-bible: \f647;
+$fa-var-bible: \f647;
+$fa-var-o: \4f;
+$fa-var-suitcase-medical: \f0fa;
+$fa-var-medkit: \f0fa;
+$fa-var-user-secret: \f21b;
+$fa-var-otter: \f700;
+$fa-var-person-dress: \f182;
+$fa-var-female: \f182;
+$fa-var-comment-dollar: \f651;
+$fa-var-business-time: \f64a;
+$fa-var-briefcase-clock: \f64a;
+$fa-var-table-cells-large: \f009;
+$fa-var-th-large: \f009;
+$fa-var-book-tanakh: \f827;
+$fa-var-tanakh: \f827;
+$fa-var-phone-volume: \f2a0;
+$fa-var-volume-control-phone: \f2a0;
+$fa-var-hat-cowboy-side: \f8c1;
+$fa-var-clipboard-user: \f7f3;
+$fa-var-child: \f1ae;
+$fa-var-lira-sign: \f195;
+$fa-var-satellite: \f7bf;
+$fa-var-plane-lock: \e558;
+$fa-var-tag: \f02b;
+$fa-var-comment: \f075;
+$fa-var-cake-candles: \f1fd;
+$fa-var-birthday-cake: \f1fd;
+$fa-var-cake: \f1fd;
+$fa-var-envelope: \f0e0;
+$fa-var-angles-up: \f102;
+$fa-var-angle-double-up: \f102;
+$fa-var-paperclip: \f0c6;
+$fa-var-arrow-right-to-city: \e4b3;
+$fa-var-ribbon: \f4d6;
+$fa-var-lungs: \f604;
+$fa-var-arrow-up-9-1: \f887;
+$fa-var-sort-numeric-up-alt: \f887;
+$fa-var-litecoin-sign: \e1d3;
+$fa-var-border-none: \f850;
+$fa-var-circle-nodes: \e4e2;
+$fa-var-parachute-box: \f4cd;
+$fa-var-indent: \f03c;
+$fa-var-truck-field-un: \e58e;
+$fa-var-hourglass: \f254;
+$fa-var-hourglass-empty: \f254;
+$fa-var-mountain: \f6fc;
+$fa-var-user-doctor: \f0f0;
+$fa-var-user-md: \f0f0;
+$fa-var-circle-info: \f05a;
+$fa-var-info-circle: \f05a;
+$fa-var-cloud-meatball: \f73b;
+$fa-var-camera: \f030;
+$fa-var-camera-alt: \f030;
+$fa-var-square-virus: \e578;
+$fa-var-meteor: \f753;
+$fa-var-car-on: \e4dd;
+$fa-var-sleigh: \f7cc;
+$fa-var-arrow-down-1-9: \f162;
+$fa-var-sort-numeric-asc: \f162;
+$fa-var-sort-numeric-down: \f162;
+$fa-var-hand-holding-droplet: \f4c1;
+$fa-var-hand-holding-water: \f4c1;
+$fa-var-water: \f773;
+$fa-var-calendar-check: \f274;
+$fa-var-braille: \f2a1;
+$fa-var-prescription-bottle-medical: \f486;
+$fa-var-prescription-bottle-alt: \f486;
+$fa-var-landmark: \f66f;
+$fa-var-truck: \f0d1;
+$fa-var-crosshairs: \f05b;
+$fa-var-person-cane: \e53c;
+$fa-var-tent: \e57d;
+$fa-var-vest-patches: \e086;
+$fa-var-check-double: \f560;
+$fa-var-arrow-down-a-z: \f15d;
+$fa-var-sort-alpha-asc: \f15d;
+$fa-var-sort-alpha-down: \f15d;
+$fa-var-money-bill-wheat: \e52a;
+$fa-var-cookie: \f563;
+$fa-var-arrow-rotate-left: \f0e2;
+$fa-var-arrow-left-rotate: \f0e2;
+$fa-var-arrow-rotate-back: \f0e2;
+$fa-var-arrow-rotate-backward: \f0e2;
+$fa-var-undo: \f0e2;
+$fa-var-hard-drive: \f0a0;
+$fa-var-hdd: \f0a0;
+$fa-var-face-grin-squint-tears: \f586;
+$fa-var-grin-squint-tears: \f586;
+$fa-var-dumbbell: \f44b;
+$fa-var-rectangle-list: \f022;
+$fa-var-list-alt: \f022;
+$fa-var-tarp-droplet: \e57c;
+$fa-var-house-medical-circle-check: \e511;
+$fa-var-person-skiing-nordic: \f7ca;
+$fa-var-skiing-nordic: \f7ca;
+$fa-var-calendar-plus: \f271;
+$fa-var-plane-arrival: \f5af;
+$fa-var-circle-left: \f359;
+$fa-var-arrow-alt-circle-left: \f359;
+$fa-var-train-subway: \f239;
+$fa-var-subway: \f239;
+$fa-var-chart-gantt: \e0e4;
+$fa-var-indian-rupee-sign: \e1bc;
+$fa-var-indian-rupee: \e1bc;
+$fa-var-inr: \e1bc;
+$fa-var-crop-simple: \f565;
+$fa-var-crop-alt: \f565;
+$fa-var-money-bill-1: \f3d1;
+$fa-var-money-bill-alt: \f3d1;
+$fa-var-left-long: \f30a;
+$fa-var-long-arrow-alt-left: \f30a;
+$fa-var-dna: \f471;
+$fa-var-virus-slash: \e075;
+$fa-var-minus: \f068;
+$fa-var-subtract: \f068;
+$fa-var-child-rifle: \e4e0;
+$fa-var-chess: \f439;
+$fa-var-arrow-left-long: \f177;
+$fa-var-long-arrow-left: \f177;
+$fa-var-plug-circle-check: \e55c;
+$fa-var-street-view: \f21d;
+$fa-var-franc-sign: \e18f;
+$fa-var-volume-off: \f026;
+$fa-var-hands-asl-interpreting: \f2a3;
+$fa-var-american-sign-language-interpreting: \f2a3;
+$fa-var-asl-interpreting: \f2a3;
+$fa-var-hands-american-sign-language-interpreting: \f2a3;
+$fa-var-gear: \f013;
+$fa-var-cog: \f013;
+$fa-var-droplet-slash: \f5c7;
+$fa-var-tint-slash: \f5c7;
+$fa-var-mosque: \f678;
+$fa-var-mosquito: \e52b;
+$fa-var-star-of-david: \f69a;
+$fa-var-person-military-rifle: \e54b;
+$fa-var-cart-shopping: \f07a;
+$fa-var-shopping-cart: \f07a;
+$fa-var-vials: \f493;
+$fa-var-plug-circle-plus: \e55f;
+$fa-var-place-of-worship: \f67f;
+$fa-var-grip-vertical: \f58e;
+$fa-var-arrow-turn-up: \f148;
+$fa-var-level-up: \f148;
+$fa-var-u: \55;
+$fa-var-square-root-variable: \f698;
+$fa-var-square-root-alt: \f698;
+$fa-var-clock: \f017;
+$fa-var-clock-four: \f017;
+$fa-var-backward-step: \f048;
+$fa-var-step-backward: \f048;
+$fa-var-pallet: \f482;
+$fa-var-faucet: \e005;
+$fa-var-baseball-bat-ball: \f432;
+$fa-var-s: \53;
+$fa-var-timeline: \e29c;
+$fa-var-keyboard: \f11c;
+$fa-var-caret-down: \f0d7;
+$fa-var-house-chimney-medical: \f7f2;
+$fa-var-clinic-medical: \f7f2;
+$fa-var-temperature-three-quarters: \f2c8;
+$fa-var-temperature-3: \f2c8;
+$fa-var-thermometer-3: \f2c8;
+$fa-var-thermometer-three-quarters: \f2c8;
+$fa-var-mobile-screen: \f3cf;
+$fa-var-mobile-android-alt: \f3cf;
+$fa-var-plane-up: \e22d;
+$fa-var-piggy-bank: \f4d3;
+$fa-var-battery-half: \f242;
+$fa-var-battery-3: \f242;
+$fa-var-mountain-city: \e52e;
+$fa-var-coins: \f51e;
+$fa-var-khanda: \f66d;
+$fa-var-sliders: \f1de;
+$fa-var-sliders-h: \f1de;
+$fa-var-folder-tree: \f802;
+$fa-var-network-wired: \f6ff;
+$fa-var-map-pin: \f276;
+$fa-var-hamsa: \f665;
+$fa-var-cent-sign: \e3f5;
+$fa-var-flask: \f0c3;
+$fa-var-person-pregnant: \e31e;
+$fa-var-wand-sparkles: \f72b;
+$fa-var-ellipsis-vertical: \f142;
+$fa-var-ellipsis-v: \f142;
+$fa-var-ticket: \f145;
+$fa-var-power-off: \f011;
+$fa-var-right-long: \f30b;
+$fa-var-long-arrow-alt-right: \f30b;
+$fa-var-flag-usa: \f74d;
+$fa-var-laptop-file: \e51d;
+$fa-var-tty: \f1e4;
+$fa-var-teletype: \f1e4;
+$fa-var-diagram-next: \e476;
+$fa-var-person-rifle: \e54e;
+$fa-var-house-medical-circle-exclamation: \e512;
+$fa-var-closed-captioning: \f20a;
+$fa-var-person-hiking: \f6ec;
+$fa-var-hiking: \f6ec;
+$fa-var-venus-double: \f226;
+$fa-var-images: \f302;
+$fa-var-calculator: \f1ec;
+$fa-var-people-pulling: \e535;
+$fa-var-n: \4e;
+$fa-var-cable-car: \f7da;
+$fa-var-tram: \f7da;
+$fa-var-cloud-rain: \f73d;
+$fa-var-building-circle-xmark: \e4d4;
+$fa-var-ship: \f21a;
+$fa-var-arrows-down-to-line: \e4b8;
+$fa-var-download: \f019;
+$fa-var-face-grin: \f580;
+$fa-var-grin: \f580;
+$fa-var-delete-left: \f55a;
+$fa-var-backspace: \f55a;
+$fa-var-eye-dropper: \f1fb;
+$fa-var-eye-dropper-empty: \f1fb;
+$fa-var-eyedropper: \f1fb;
+$fa-var-file-circle-check: \e5a0;
+$fa-var-forward: \f04e;
+$fa-var-mobile: \f3ce;
+$fa-var-mobile-android: \f3ce;
+$fa-var-mobile-phone: \f3ce;
+$fa-var-face-meh: \f11a;
+$fa-var-meh: \f11a;
+$fa-var-align-center: \f037;
+$fa-var-book-skull: \f6b7;
+$fa-var-book-dead: \f6b7;
+$fa-var-id-card: \f2c2;
+$fa-var-drivers-license: \f2c2;
+$fa-var-outdent: \f03b;
+$fa-var-dedent: \f03b;
+$fa-var-heart-circle-exclamation: \e4fe;
+$fa-var-house: \f015;
+$fa-var-home: \f015;
+$fa-var-home-alt: \f015;
+$fa-var-home-lg-alt: \f015;
+$fa-var-calendar-week: \f784;
+$fa-var-laptop-medical: \f812;
+$fa-var-b: \42;
+$fa-var-file-medical: \f477;
+$fa-var-dice-one: \f525;
+$fa-var-kiwi-bird: \f535;
+$fa-var-arrow-right-arrow-left: \f0ec;
+$fa-var-exchange: \f0ec;
+$fa-var-rotate-right: \f2f9;
+$fa-var-redo-alt: \f2f9;
+$fa-var-rotate-forward: \f2f9;
+$fa-var-utensils: \f2e7;
+$fa-var-cutlery: \f2e7;
+$fa-var-arrow-up-wide-short: \f161;
+$fa-var-sort-amount-up: \f161;
+$fa-var-mill-sign: \e1ed;
+$fa-var-bowl-rice: \e2eb;
+$fa-var-skull: \f54c;
+$fa-var-tower-broadcast: \f519;
+$fa-var-broadcast-tower: \f519;
+$fa-var-truck-pickup: \f63c;
+$fa-var-up-long: \f30c;
+$fa-var-long-arrow-alt-up: \f30c;
+$fa-var-stop: \f04d;
+$fa-var-code-merge: \f387;
+$fa-var-upload: \f093;
+$fa-var-hurricane: \f751;
+$fa-var-mound: \e52d;
+$fa-var-toilet-portable: \e583;
+$fa-var-compact-disc: \f51f;
+$fa-var-file-arrow-down: \f56d;
+$fa-var-file-download: \f56d;
+$fa-var-caravan: \f8ff;
+$fa-var-shield-cat: \e572;
+$fa-var-bolt: \f0e7;
+$fa-var-zap: \f0e7;
+$fa-var-glass-water: \e4f4;
+$fa-var-oil-well: \e532;
+$fa-var-vault: \e2c5;
+$fa-var-mars: \f222;
+$fa-var-toilet: \f7d8;
+$fa-var-plane-circle-xmark: \e557;
+$fa-var-yen-sign: \f157;
+$fa-var-cny: \f157;
+$fa-var-jpy: \f157;
+$fa-var-rmb: \f157;
+$fa-var-yen: \f157;
+$fa-var-ruble-sign: \f158;
+$fa-var-rouble: \f158;
+$fa-var-rub: \f158;
+$fa-var-ruble: \f158;
+$fa-var-sun: \f185;
+$fa-var-guitar: \f7a6;
+$fa-var-face-laugh-wink: \f59c;
+$fa-var-laugh-wink: \f59c;
+$fa-var-horse-head: \f7ab;
+$fa-var-bore-hole: \e4c3;
+$fa-var-industry: \f275;
+$fa-var-circle-down: \f358;
+$fa-var-arrow-alt-circle-down: \f358;
+$fa-var-arrows-turn-to-dots: \e4c1;
+$fa-var-florin-sign: \e184;
+$fa-var-arrow-down-short-wide: \f884;
+$fa-var-sort-amount-desc: \f884;
+$fa-var-sort-amount-down-alt: \f884;
+$fa-var-less-than: \3c;
+$fa-var-angle-down: \f107;
+$fa-var-car-tunnel: \e4de;
+$fa-var-head-side-cough: \e061;
+$fa-var-grip-lines: \f7a4;
+$fa-var-thumbs-down: \f165;
+$fa-var-user-lock: \f502;
+$fa-var-arrow-right-long: \f178;
+$fa-var-long-arrow-right: \f178;
+$fa-var-anchor-circle-xmark: \e4ac;
+$fa-var-ellipsis: \f141;
+$fa-var-ellipsis-h: \f141;
+$fa-var-chess-pawn: \f443;
+$fa-var-kit-medical: \f479;
+$fa-var-first-aid: \f479;
+$fa-var-person-through-window: \e5a9;
+$fa-var-toolbox: \f552;
+$fa-var-hands-holding-circle: \e4fb;
+$fa-var-bug: \f188;
+$fa-var-credit-card: \f09d;
+$fa-var-credit-card-alt: \f09d;
+$fa-var-car: \f1b9;
+$fa-var-automobile: \f1b9;
+$fa-var-hand-holding-hand: \e4f7;
+$fa-var-book-open-reader: \f5da;
+$fa-var-book-reader: \f5da;
+$fa-var-mountain-sun: \e52f;
+$fa-var-arrows-left-right-to-line: \e4ba;
+$fa-var-dice-d20: \f6cf;
+$fa-var-truck-droplet: \e58c;
+$fa-var-file-circle-xmark: \e5a1;
+$fa-var-temperature-arrow-up: \e040;
+$fa-var-temperature-up: \e040;
+$fa-var-medal: \f5a2;
+$fa-var-bed: \f236;
+$fa-var-square-h: \f0fd;
+$fa-var-h-square: \f0fd;
+$fa-var-podcast: \f2ce;
+$fa-var-temperature-full: \f2c7;
+$fa-var-temperature-4: \f2c7;
+$fa-var-thermometer-4: \f2c7;
+$fa-var-thermometer-full: \f2c7;
+$fa-var-bell: \f0f3;
+$fa-var-superscript: \f12b;
+$fa-var-plug-circle-xmark: \e560;
+$fa-var-star-of-life: \f621;
+$fa-var-phone-slash: \f3dd;
+$fa-var-paint-roller: \f5aa;
+$fa-var-handshake-angle: \f4c4;
+$fa-var-hands-helping: \f4c4;
+$fa-var-location-dot: \f3c5;
+$fa-var-map-marker-alt: \f3c5;
+$fa-var-file: \f15b;
+$fa-var-greater-than: \3e;
+$fa-var-person-swimming: \f5c4;
+$fa-var-swimmer: \f5c4;
+$fa-var-arrow-down: \f063;
+$fa-var-droplet: \f043;
+$fa-var-tint: \f043;
+$fa-var-eraser: \f12d;
+$fa-var-earth-americas: \f57d;
+$fa-var-earth: \f57d;
+$fa-var-earth-america: \f57d;
+$fa-var-globe-americas: \f57d;
+$fa-var-person-burst: \e53b;
+$fa-var-dove: \f4ba;
+$fa-var-battery-empty: \f244;
+$fa-var-battery-0: \f244;
+$fa-var-socks: \f696;
+$fa-var-inbox: \f01c;
+$fa-var-section: \e447;
+$fa-var-gauge-high: \f625;
+$fa-var-tachometer-alt: \f625;
+$fa-var-tachometer-alt-fast: \f625;
+$fa-var-envelope-open-text: \f658;
+$fa-var-hospital: \f0f8;
+$fa-var-hospital-alt: \f0f8;
+$fa-var-hospital-wide: \f0f8;
+$fa-var-wine-bottle: \f72f;
+$fa-var-chess-rook: \f447;
+$fa-var-bars-staggered: \f550;
+$fa-var-reorder: \f550;
+$fa-var-stream: \f550;
+$fa-var-dharmachakra: \f655;
+$fa-var-hotdog: \f80f;
+$fa-var-person-walking-with-cane: \f29d;
+$fa-var-blind: \f29d;
+$fa-var-drum: \f569;
+$fa-var-ice-cream: \f810;
+$fa-var-heart-circle-bolt: \e4fc;
+$fa-var-fax: \f1ac;
+$fa-var-paragraph: \f1dd;
+$fa-var-check-to-slot: \f772;
+$fa-var-vote-yea: \f772;
+$fa-var-star-half: \f089;
+$fa-var-boxes-stacked: \f468;
+$fa-var-boxes: \f468;
+$fa-var-boxes-alt: \f468;
+$fa-var-link: \f0c1;
+$fa-var-chain: \f0c1;
+$fa-var-ear-listen: \f2a2;
+$fa-var-assistive-listening-systems: \f2a2;
+$fa-var-tree-city: \e587;
+$fa-var-play: \f04b;
+$fa-var-font: \f031;
+$fa-var-rupiah-sign: \e23d;
+$fa-var-magnifying-glass: \f002;
+$fa-var-search: \f002;
+$fa-var-table-tennis-paddle-ball: \f45d;
+$fa-var-ping-pong-paddle-ball: \f45d;
+$fa-var-table-tennis: \f45d;
+$fa-var-person-dots-from-line: \f470;
+$fa-var-diagnoses: \f470;
+$fa-var-trash-can-arrow-up: \f82a;
+$fa-var-trash-restore-alt: \f82a;
+$fa-var-naira-sign: \e1f6;
+$fa-var-cart-arrow-down: \f218;
+$fa-var-walkie-talkie: \f8ef;
+$fa-var-file-pen: \f31c;
+$fa-var-file-edit: \f31c;
+$fa-var-receipt: \f543;
+$fa-var-square-pen: \f14b;
+$fa-var-pen-square: \f14b;
+$fa-var-pencil-square: \f14b;
+$fa-var-suitcase-rolling: \f5c1;
+$fa-var-person-circle-exclamation: \e53f;
+$fa-var-chevron-down: \f078;
+$fa-var-battery-full: \f240;
+$fa-var-battery: \f240;
+$fa-var-battery-5: \f240;
+$fa-var-skull-crossbones: \f714;
+$fa-var-code-compare: \e13a;
+$fa-var-list-ul: \f0ca;
+$fa-var-list-dots: \f0ca;
+$fa-var-school-lock: \e56f;
+$fa-var-tower-cell: \e585;
+$fa-var-down-long: \f309;
+$fa-var-long-arrow-alt-down: \f309;
+$fa-var-ranking-star: \e561;
+$fa-var-chess-king: \f43f;
+$fa-var-person-harassing: \e549;
+$fa-var-brazilian-real-sign: \e46c;
+$fa-var-landmark-dome: \f752;
+$fa-var-landmark-alt: \f752;
+$fa-var-arrow-up: \f062;
+$fa-var-tv: \f26c;
+$fa-var-television: \f26c;
+$fa-var-tv-alt: \f26c;
+$fa-var-shrimp: \e448;
+$fa-var-list-check: \f0ae;
+$fa-var-tasks: \f0ae;
+$fa-var-jug-detergent: \e519;
+$fa-var-circle-user: \f2bd;
+$fa-var-user-circle: \f2bd;
+$fa-var-user-shield: \f505;
+$fa-var-wind: \f72e;
+$fa-var-car-burst: \f5e1;
+$fa-var-car-crash: \f5e1;
+$fa-var-y: \59;
+$fa-var-person-snowboarding: \f7ce;
+$fa-var-snowboarding: \f7ce;
+$fa-var-truck-fast: \f48b;
+$fa-var-shipping-fast: \f48b;
+$fa-var-fish: \f578;
+$fa-var-user-graduate: \f501;
+$fa-var-circle-half-stroke: \f042;
+$fa-var-adjust: \f042;
+$fa-var-clapperboard: \e131;
+$fa-var-circle-radiation: \f7ba;
+$fa-var-radiation-alt: \f7ba;
+$fa-var-baseball: \f433;
+$fa-var-baseball-ball: \f433;
+$fa-var-jet-fighter-up: \e518;
+$fa-var-diagram-project: \f542;
+$fa-var-project-diagram: \f542;
+$fa-var-copy: \f0c5;
+$fa-var-volume-xmark: \f6a9;
+$fa-var-volume-mute: \f6a9;
+$fa-var-volume-times: \f6a9;
+$fa-var-hand-sparkles: \e05d;
+$fa-var-grip: \f58d;
+$fa-var-grip-horizontal: \f58d;
+$fa-var-share-from-square: \f14d;
+$fa-var-share-square: \f14d;
+$fa-var-gun: \e19b;
+$fa-var-square-phone: \f098;
+$fa-var-phone-square: \f098;
+$fa-var-plus: \2b;
+$fa-var-add: \2b;
+$fa-var-expand: \f065;
+$fa-var-computer: \e4e5;
+$fa-var-xmark: \f00d;
+$fa-var-close: \f00d;
+$fa-var-multiply: \f00d;
+$fa-var-remove: \f00d;
+$fa-var-times: \f00d;
+$fa-var-arrows-up-down-left-right: \f047;
+$fa-var-arrows: \f047;
+$fa-var-chalkboard-user: \f51c;
+$fa-var-chalkboard-teacher: \f51c;
+$fa-var-peso-sign: \e222;
+$fa-var-building-shield: \e4d8;
+$fa-var-baby: \f77c;
+$fa-var-users-line: \e592;
+$fa-var-quote-left: \f10d;
+$fa-var-quote-left-alt: \f10d;
+$fa-var-tractor: \f722;
+$fa-var-trash-arrow-up: \f829;
+$fa-var-trash-restore: \f829;
+$fa-var-arrow-down-up-lock: \e4b0;
+$fa-var-lines-leaning: \e51e;
+$fa-var-ruler-combined: \f546;
+$fa-var-copyright: \f1f9;
+$fa-var-equals: \3d;
+$fa-var-blender: \f517;
+$fa-var-teeth: \f62e;
+$fa-var-shekel-sign: \f20b;
+$fa-var-ils: \f20b;
+$fa-var-shekel: \f20b;
+$fa-var-sheqel: \f20b;
+$fa-var-sheqel-sign: \f20b;
+$fa-var-map: \f279;
+$fa-var-rocket: \f135;
+$fa-var-photo-film: \f87c;
+$fa-var-photo-video: \f87c;
+$fa-var-folder-minus: \f65d;
+$fa-var-store: \f54e;
+$fa-var-arrow-trend-up: \e098;
+$fa-var-plug-circle-minus: \e55e;
+$fa-var-sign-hanging: \f4d9;
+$fa-var-sign: \f4d9;
+$fa-var-bezier-curve: \f55b;
+$fa-var-bell-slash: \f1f6;
+$fa-var-tablet: \f3fb;
+$fa-var-tablet-android: \f3fb;
+$fa-var-school-flag: \e56e;
+$fa-var-fill: \f575;
+$fa-var-angle-up: \f106;
+$fa-var-drumstick-bite: \f6d7;
+$fa-var-holly-berry: \f7aa;
+$fa-var-chevron-left: \f053;
+$fa-var-bacteria: \e059;
+$fa-var-hand-lizard: \f258;
+$fa-var-disease: \f7fa;
+$fa-var-briefcase-medical: \f469;
+$fa-var-genderless: \f22d;
+$fa-var-chevron-right: \f054;
+$fa-var-retweet: \f079;
+$fa-var-car-rear: \f5de;
+$fa-var-car-alt: \f5de;
+$fa-var-pump-soap: \e06b;
+$fa-var-video-slash: \f4e2;
+$fa-var-battery-quarter: \f243;
+$fa-var-battery-2: \f243;
+$fa-var-radio: \f8d7;
+$fa-var-baby-carriage: \f77d;
+$fa-var-carriage-baby: \f77d;
+$fa-var-traffic-light: \f637;
+$fa-var-thermometer: \f491;
+$fa-var-vr-cardboard: \f729;
+$fa-var-hand-middle-finger: \f806;
+$fa-var-percent: \25;
+$fa-var-percentage: \25;
+$fa-var-truck-moving: \f4df;
+$fa-var-glass-water-droplet: \e4f5;
+$fa-var-display: \e163;
+$fa-var-face-smile: \f118;
+$fa-var-smile: \f118;
+$fa-var-thumbtack: \f08d;
+$fa-var-thumb-tack: \f08d;
+$fa-var-trophy: \f091;
+$fa-var-person-praying: \f683;
+$fa-var-pray: \f683;
+$fa-var-hammer: \f6e3;
+$fa-var-hand-peace: \f25b;
+$fa-var-rotate: \f2f1;
+$fa-var-sync-alt: \f2f1;
+$fa-var-spinner: \f110;
+$fa-var-robot: \f544;
+$fa-var-peace: \f67c;
+$fa-var-gears: \f085;
+$fa-var-cogs: \f085;
+$fa-var-warehouse: \f494;
+$fa-var-arrow-up-right-dots: \e4b7;
+$fa-var-splotch: \f5bc;
+$fa-var-face-grin-hearts: \f584;
+$fa-var-grin-hearts: \f584;
+$fa-var-dice-four: \f524;
+$fa-var-sim-card: \f7c4;
+$fa-var-transgender: \f225;
+$fa-var-transgender-alt: \f225;
+$fa-var-mercury: \f223;
+$fa-var-arrow-turn-down: \f149;
+$fa-var-level-down: \f149;
+$fa-var-person-falling-burst: \e547;
+$fa-var-award: \f559;
+$fa-var-ticket-simple: \f3ff;
+$fa-var-ticket-alt: \f3ff;
+$fa-var-building: \f1ad;
+$fa-var-angles-left: \f100;
+$fa-var-angle-double-left: \f100;
+$fa-var-qrcode: \f029;
+$fa-var-clock-rotate-left: \f1da;
+$fa-var-history: \f1da;
+$fa-var-face-grin-beam-sweat: \f583;
+$fa-var-grin-beam-sweat: \f583;
+$fa-var-file-export: \f56e;
+$fa-var-arrow-right-from-file: \f56e;
+$fa-var-shield: \f132;
+$fa-var-shield-blank: \f132;
+$fa-var-arrow-up-short-wide: \f885;
+$fa-var-sort-amount-up-alt: \f885;
+$fa-var-house-medical: \e3b2;
+$fa-var-golf-ball-tee: \f450;
+$fa-var-golf-ball: \f450;
+$fa-var-circle-chevron-left: \f137;
+$fa-var-chevron-circle-left: \f137;
+$fa-var-house-chimney-window: \e00d;
+$fa-var-pen-nib: \f5ad;
+$fa-var-tent-arrow-turn-left: \e580;
+$fa-var-tents: \e582;
+$fa-var-wand-magic: \f0d0;
+$fa-var-magic: \f0d0;
+$fa-var-dog: \f6d3;
+$fa-var-carrot: \f787;
+$fa-var-moon: \f186;
+$fa-var-wine-glass-empty: \f5ce;
+$fa-var-wine-glass-alt: \f5ce;
+$fa-var-cheese: \f7ef;
+$fa-var-yin-yang: \f6ad;
+$fa-var-music: \f001;
+$fa-var-code-commit: \f386;
+$fa-var-temperature-low: \f76b;
+$fa-var-person-biking: \f84a;
+$fa-var-biking: \f84a;
+$fa-var-broom: \f51a;
+$fa-var-shield-heart: \e574;
+$fa-var-gopuram: \f664;
+$fa-var-earth-oceania: \e47b;
+$fa-var-globe-oceania: \e47b;
+$fa-var-square-xmark: \f2d3;
+$fa-var-times-square: \f2d3;
+$fa-var-xmark-square: \f2d3;
+$fa-var-hashtag: \23;
+$fa-var-up-right-and-down-left-from-center: \f424;
+$fa-var-expand-alt: \f424;
+$fa-var-oil-can: \f613;
+$fa-var-t: \54;
+$fa-var-hippo: \f6ed;
+$fa-var-chart-column: \e0e3;
+$fa-var-infinity: \f534;
+$fa-var-vial-circle-check: \e596;
+$fa-var-person-arrow-down-to-line: \e538;
+$fa-var-voicemail: \f897;
+$fa-var-fan: \f863;
+$fa-var-person-walking-luggage: \e554;
+$fa-var-up-down: \f338;
+$fa-var-arrows-alt-v: \f338;
+$fa-var-cloud-moon-rain: \f73c;
+$fa-var-calendar: \f133;
+$fa-var-trailer: \e041;
+$fa-var-bahai: \f666;
+$fa-var-haykal: \f666;
+$fa-var-sd-card: \f7c2;
+$fa-var-dragon: \f6d5;
+$fa-var-shoe-prints: \f54b;
+$fa-var-circle-plus: \f055;
+$fa-var-plus-circle: \f055;
+$fa-var-face-grin-tongue-wink: \f58b;
+$fa-var-grin-tongue-wink: \f58b;
+$fa-var-hand-holding: \f4bd;
+$fa-var-plug-circle-exclamation: \e55d;
+$fa-var-link-slash: \f127;
+$fa-var-chain-broken: \f127;
+$fa-var-chain-slash: \f127;
+$fa-var-unlink: \f127;
+$fa-var-clone: \f24d;
+$fa-var-person-walking-arrow-loop-left: \e551;
+$fa-var-arrow-up-z-a: \f882;
+$fa-var-sort-alpha-up-alt: \f882;
+$fa-var-fire-flame-curved: \f7e4;
+$fa-var-fire-alt: \f7e4;
+$fa-var-tornado: \f76f;
+$fa-var-file-circle-plus: \e494;
+$fa-var-book-quran: \f687;
+$fa-var-quran: \f687;
+$fa-var-anchor: \f13d;
+$fa-var-border-all: \f84c;
+$fa-var-face-angry: \f556;
+$fa-var-angry: \f556;
+$fa-var-cookie-bite: \f564;
+$fa-var-arrow-trend-down: \e097;
+$fa-var-rss: \f09e;
+$fa-var-feed: \f09e;
+$fa-var-draw-polygon: \f5ee;
+$fa-var-scale-balanced: \f24e;
+$fa-var-balance-scale: \f24e;
+$fa-var-gauge-simple-high: \f62a;
+$fa-var-tachometer: \f62a;
+$fa-var-tachometer-fast: \f62a;
+$fa-var-shower: \f2cc;
+$fa-var-desktop: \f390;
+$fa-var-desktop-alt: \f390;
+$fa-var-m: \4d;
+$fa-var-table-list: \f00b;
+$fa-var-th-list: \f00b;
+$fa-var-comment-sms: \f7cd;
+$fa-var-sms: \f7cd;
+$fa-var-book: \f02d;
+$fa-var-user-plus: \f234;
+$fa-var-check: \f00c;
+$fa-var-battery-three-quarters: \f241;
+$fa-var-battery-4: \f241;
+$fa-var-house-circle-check: \e509;
+$fa-var-angle-left: \f104;
+$fa-var-diagram-successor: \e47a;
+$fa-var-truck-arrow-right: \e58b;
+$fa-var-arrows-split-up-and-left: \e4bc;
+$fa-var-hand-fist: \f6de;
+$fa-var-fist-raised: \f6de;
+$fa-var-cloud-moon: \f6c3;
+$fa-var-briefcase: \f0b1;
+$fa-var-person-falling: \e546;
+$fa-var-image-portrait: \f3e0;
+$fa-var-portrait: \f3e0;
+$fa-var-user-tag: \f507;
+$fa-var-rug: \e569;
+$fa-var-earth-europe: \f7a2;
+$fa-var-globe-europe: \f7a2;
+$fa-var-cart-flatbed-suitcase: \f59d;
+$fa-var-luggage-cart: \f59d;
+$fa-var-rectangle-xmark: \f410;
+$fa-var-rectangle-times: \f410;
+$fa-var-times-rectangle: \f410;
+$fa-var-window-close: \f410;
+$fa-var-baht-sign: \e0ac;
+$fa-var-book-open: \f518;
+$fa-var-book-journal-whills: \f66a;
+$fa-var-journal-whills: \f66a;
+$fa-var-handcuffs: \e4f8;
+$fa-var-triangle-exclamation: \f071;
+$fa-var-exclamation-triangle: \f071;
+$fa-var-warning: \f071;
+$fa-var-database: \f1c0;
+$fa-var-share: \f064;
+$fa-var-arrow-turn-right: \f064;
+$fa-var-mail-forward: \f064;
+$fa-var-bottle-droplet: \e4c4;
+$fa-var-mask-face: \e1d7;
+$fa-var-hill-rockslide: \e508;
+$fa-var-right-left: \f362;
+$fa-var-exchange-alt: \f362;
+$fa-var-paper-plane: \f1d8;
+$fa-var-road-circle-exclamation: \e565;
+$fa-var-dungeon: \f6d9;
+$fa-var-align-right: \f038;
+$fa-var-money-bill-1-wave: \f53b;
+$fa-var-money-bill-wave-alt: \f53b;
+$fa-var-life-ring: \f1cd;
+$fa-var-hands: \f2a7;
+$fa-var-sign-language: \f2a7;
+$fa-var-signing: \f2a7;
+$fa-var-calendar-day: \f783;
+$fa-var-water-ladder: \f5c5;
+$fa-var-ladder-water: \f5c5;
+$fa-var-swimming-pool: \f5c5;
+$fa-var-arrows-up-down: \f07d;
+$fa-var-arrows-v: \f07d;
+$fa-var-face-grimace: \f57f;
+$fa-var-grimace: \f57f;
+$fa-var-wheelchair-move: \e2ce;
+$fa-var-wheelchair-alt: \e2ce;
+$fa-var-turn-down: \f3be;
+$fa-var-level-down-alt: \f3be;
+$fa-var-person-walking-arrow-right: \e552;
+$fa-var-square-envelope: \f199;
+$fa-var-envelope-square: \f199;
+$fa-var-dice: \f522;
+$fa-var-bowling-ball: \f436;
+$fa-var-brain: \f5dc;
+$fa-var-bandage: \f462;
+$fa-var-band-aid: \f462;
+$fa-var-calendar-minus: \f272;
+$fa-var-circle-xmark: \f057;
+$fa-var-times-circle: \f057;
+$fa-var-xmark-circle: \f057;
+$fa-var-gifts: \f79c;
+$fa-var-hotel: \f594;
+$fa-var-earth-asia: \f57e;
+$fa-var-globe-asia: \f57e;
+$fa-var-id-card-clip: \f47f;
+$fa-var-id-card-alt: \f47f;
+$fa-var-magnifying-glass-plus: \f00e;
+$fa-var-search-plus: \f00e;
+$fa-var-thumbs-up: \f164;
+$fa-var-user-clock: \f4fd;
+$fa-var-hand-dots: \f461;
+$fa-var-allergies: \f461;
+$fa-var-file-invoice: \f570;
+$fa-var-window-minimize: \f2d1;
+$fa-var-mug-saucer: \f0f4;
+$fa-var-coffee: \f0f4;
+$fa-var-brush: \f55d;
+$fa-var-mask: \f6fa;
+$fa-var-magnifying-glass-minus: \f010;
+$fa-var-search-minus: \f010;
+$fa-var-ruler-vertical: \f548;
+$fa-var-user-large: \f406;
+$fa-var-user-alt: \f406;
+$fa-var-train-tram: \e5b4;
+$fa-var-user-nurse: \f82f;
+$fa-var-syringe: \f48e;
+$fa-var-cloud-sun: \f6c4;
+$fa-var-stopwatch-20: \e06f;
+$fa-var-square-full: \f45c;
+$fa-var-magnet: \f076;
+$fa-var-jar: \e516;
+$fa-var-note-sticky: \f249;
+$fa-var-sticky-note: \f249;
+$fa-var-bug-slash: \e490;
+$fa-var-arrow-up-from-water-pump: \e4b6;
+$fa-var-bone: \f5d7;
+$fa-var-user-injured: \f728;
+$fa-var-face-sad-tear: \f5b4;
+$fa-var-sad-tear: \f5b4;
+$fa-var-plane: \f072;
+$fa-var-tent-arrows-down: \e581;
+$fa-var-exclamation: \21;
+$fa-var-arrows-spin: \e4bb;
+$fa-var-print: \f02f;
+$fa-var-turkish-lira-sign: \e2bb;
+$fa-var-try: \e2bb;
+$fa-var-turkish-lira: \e2bb;
+$fa-var-dollar-sign: \24;
+$fa-var-dollar: \24;
+$fa-var-usd: \24;
+$fa-var-x: \58;
+$fa-var-magnifying-glass-dollar: \f688;
+$fa-var-search-dollar: \f688;
+$fa-var-users-gear: \f509;
+$fa-var-users-cog: \f509;
+$fa-var-person-military-pointing: \e54a;
+$fa-var-building-columns: \f19c;
+$fa-var-bank: \f19c;
+$fa-var-institution: \f19c;
+$fa-var-museum: \f19c;
+$fa-var-university: \f19c;
+$fa-var-umbrella: \f0e9;
+$fa-var-trowel: \e589;
+$fa-var-d: \44;
+$fa-var-stapler: \e5af;
+$fa-var-masks-theater: \f630;
+$fa-var-theater-masks: \f630;
+$fa-var-kip-sign: \e1c4;
+$fa-var-hand-point-left: \f0a5;
+$fa-var-handshake-simple: \f4c6;
+$fa-var-handshake-alt: \f4c6;
+$fa-var-jet-fighter: \f0fb;
+$fa-var-fighter-jet: \f0fb;
+$fa-var-square-share-nodes: \f1e1;
+$fa-var-share-alt-square: \f1e1;
+$fa-var-barcode: \f02a;
+$fa-var-plus-minus: \e43c;
+$fa-var-video: \f03d;
+$fa-var-video-camera: \f03d;
+$fa-var-graduation-cap: \f19d;
+$fa-var-mortar-board: \f19d;
+$fa-var-hand-holding-medical: \e05c;
+$fa-var-person-circle-check: \e53e;
+$fa-var-turn-up: \f3bf;
+$fa-var-level-up-alt: \f3bf;
+
+$fa-var-monero: \f3d0;
+$fa-var-hooli: \f427;
+$fa-var-yelp: \f1e9;
+$fa-var-cc-visa: \f1f0;
+$fa-var-lastfm: \f202;
+$fa-var-shopware: \f5b5;
+$fa-var-creative-commons-nc: \f4e8;
+$fa-var-aws: \f375;
+$fa-var-redhat: \f7bc;
+$fa-var-yoast: \f2b1;
+$fa-var-cloudflare: \e07d;
+$fa-var-ups: \f7e0;
+$fa-var-wpexplorer: \f2de;
+$fa-var-dyalog: \f399;
+$fa-var-bity: \f37a;
+$fa-var-stackpath: \f842;
+$fa-var-buysellads: \f20d;
+$fa-var-first-order: \f2b0;
+$fa-var-modx: \f285;
+$fa-var-guilded: \e07e;
+$fa-var-vnv: \f40b;
+$fa-var-square-js: \f3b9;
+$fa-var-js-square: \f3b9;
+$fa-var-microsoft: \f3ca;
+$fa-var-qq: \f1d6;
+$fa-var-orcid: \f8d2;
+$fa-var-java: \f4e4;
+$fa-var-invision: \f7b0;
+$fa-var-creative-commons-pd-alt: \f4ed;
+$fa-var-centercode: \f380;
+$fa-var-glide-g: \f2a6;
+$fa-var-drupal: \f1a9;
+$fa-var-hire-a-helper: \f3b0;
+$fa-var-creative-commons-by: \f4e7;
+$fa-var-unity: \e049;
+$fa-var-whmcs: \f40d;
+$fa-var-rocketchat: \f3e8;
+$fa-var-vk: \f189;
+$fa-var-untappd: \f405;
+$fa-var-mailchimp: \f59e;
+$fa-var-css3-alt: \f38b;
+$fa-var-square-reddit: \f1a2;
+$fa-var-reddit-square: \f1a2;
+$fa-var-vimeo-v: \f27d;
+$fa-var-contao: \f26d;
+$fa-var-square-font-awesome: \e5ad;
+$fa-var-deskpro: \f38f;
+$fa-var-sistrix: \f3ee;
+$fa-var-square-instagram: \e055;
+$fa-var-instagram-square: \e055;
+$fa-var-battle-net: \f835;
+$fa-var-the-red-yeti: \f69d;
+$fa-var-square-hacker-news: \f3af;
+$fa-var-hacker-news-square: \f3af;
+$fa-var-edge: \f282;
+$fa-var-napster: \f3d2;
+$fa-var-square-snapchat: \f2ad;
+$fa-var-snapchat-square: \f2ad;
+$fa-var-google-plus-g: \f0d5;
+$fa-var-artstation: \f77a;
+$fa-var-markdown: \f60f;
+$fa-var-sourcetree: \f7d3;
+$fa-var-google-plus: \f2b3;
+$fa-var-diaspora: \f791;
+$fa-var-foursquare: \f180;
+$fa-var-stack-overflow: \f16c;
+$fa-var-github-alt: \f113;
+$fa-var-phoenix-squadron: \f511;
+$fa-var-pagelines: \f18c;
+$fa-var-algolia: \f36c;
+$fa-var-red-river: \f3e3;
+$fa-var-creative-commons-sa: \f4ef;
+$fa-var-safari: \f267;
+$fa-var-google: \f1a0;
+$fa-var-square-font-awesome-stroke: \f35c;
+$fa-var-font-awesome-alt: \f35c;
+$fa-var-atlassian: \f77b;
+$fa-var-linkedin-in: \f0e1;
+$fa-var-digital-ocean: \f391;
+$fa-var-nimblr: \f5a8;
+$fa-var-chromecast: \f838;
+$fa-var-evernote: \f839;
+$fa-var-hacker-news: \f1d4;
+$fa-var-creative-commons-sampling: \f4f0;
+$fa-var-adversal: \f36a;
+$fa-var-creative-commons: \f25e;
+$fa-var-watchman-monitoring: \e087;
+$fa-var-fonticons: \f280;
+$fa-var-weixin: \f1d7;
+$fa-var-shirtsinbulk: \f214;
+$fa-var-codepen: \f1cb;
+$fa-var-git-alt: \f841;
+$fa-var-lyft: \f3c3;
+$fa-var-rev: \f5b2;
+$fa-var-windows: \f17a;
+$fa-var-wizards-of-the-coast: \f730;
+$fa-var-square-viadeo: \f2aa;
+$fa-var-viadeo-square: \f2aa;
+$fa-var-meetup: \f2e0;
+$fa-var-centos: \f789;
+$fa-var-adn: \f170;
+$fa-var-cloudsmith: \f384;
+$fa-var-pied-piper-alt: \f1a8;
+$fa-var-square-dribbble: \f397;
+$fa-var-dribbble-square: \f397;
+$fa-var-codiepie: \f284;
+$fa-var-node: \f419;
+$fa-var-mix: \f3cb;
+$fa-var-steam: \f1b6;
+$fa-var-cc-apple-pay: \f416;
+$fa-var-scribd: \f28a;
+$fa-var-openid: \f19b;
+$fa-var-instalod: \e081;
+$fa-var-expeditedssl: \f23e;
+$fa-var-sellcast: \f2da;
+$fa-var-square-twitter: \f081;
+$fa-var-twitter-square: \f081;
+$fa-var-r-project: \f4f7;
+$fa-var-delicious: \f1a5;
+$fa-var-freebsd: \f3a4;
+$fa-var-vuejs: \f41f;
+$fa-var-accusoft: \f369;
+$fa-var-ioxhost: \f208;
+$fa-var-fonticons-fi: \f3a2;
+$fa-var-app-store: \f36f;
+$fa-var-cc-mastercard: \f1f1;
+$fa-var-itunes-note: \f3b5;
+$fa-var-golang: \e40f;
+$fa-var-kickstarter: \f3bb;
+$fa-var-grav: \f2d6;
+$fa-var-weibo: \f18a;
+$fa-var-uncharted: \e084;
+$fa-var-firstdraft: \f3a1;
+$fa-var-square-youtube: \f431;
+$fa-var-youtube-square: \f431;
+$fa-var-wikipedia-w: \f266;
+$fa-var-wpressr: \f3e4;
+$fa-var-rendact: \f3e4;
+$fa-var-angellist: \f209;
+$fa-var-galactic-republic: \f50c;
+$fa-var-nfc-directional: \e530;
+$fa-var-skype: \f17e;
+$fa-var-joget: \f3b7;
+$fa-var-fedora: \f798;
+$fa-var-stripe-s: \f42a;
+$fa-var-meta: \e49b;
+$fa-var-laravel: \f3bd;
+$fa-var-hotjar: \f3b1;
+$fa-var-bluetooth-b: \f294;
+$fa-var-sticker-mule: \f3f7;
+$fa-var-creative-commons-zero: \f4f3;
+$fa-var-hips: \f452;
+$fa-var-behance: \f1b4;
+$fa-var-reddit: \f1a1;
+$fa-var-discord: \f392;
+$fa-var-chrome: \f268;
+$fa-var-app-store-ios: \f370;
+$fa-var-cc-discover: \f1f2;
+$fa-var-wpbeginner: \f297;
+$fa-var-confluence: \f78d;
+$fa-var-mdb: \f8ca;
+$fa-var-dochub: \f394;
+$fa-var-accessible-icon: \f368;
+$fa-var-ebay: \f4f4;
+$fa-var-amazon: \f270;
+$fa-var-unsplash: \e07c;
+$fa-var-yarn: \f7e3;
+$fa-var-square-steam: \f1b7;
+$fa-var-steam-square: \f1b7;
+$fa-var-500px: \f26e;
+$fa-var-square-vimeo: \f194;
+$fa-var-vimeo-square: \f194;
+$fa-var-asymmetrik: \f372;
+$fa-var-font-awesome: \f2b4;
+$fa-var-font-awesome-flag: \f2b4;
+$fa-var-font-awesome-logo-full: \f2b4;
+$fa-var-gratipay: \f184;
+$fa-var-apple: \f179;
+$fa-var-hive: \e07f;
+$fa-var-gitkraken: \f3a6;
+$fa-var-keybase: \f4f5;
+$fa-var-apple-pay: \f415;
+$fa-var-padlet: \e4a0;
+$fa-var-amazon-pay: \f42c;
+$fa-var-square-github: \f092;
+$fa-var-github-square: \f092;
+$fa-var-stumbleupon: \f1a4;
+$fa-var-fedex: \f797;
+$fa-var-phoenix-framework: \f3dc;
+$fa-var-shopify: \e057;
+$fa-var-neos: \f612;
+$fa-var-hackerrank: \f5f7;
+$fa-var-researchgate: \f4f8;
+$fa-var-swift: \f8e1;
+$fa-var-angular: \f420;
+$fa-var-speakap: \f3f3;
+$fa-var-angrycreative: \f36e;
+$fa-var-y-combinator: \f23b;
+$fa-var-empire: \f1d1;
+$fa-var-envira: \f299;
+$fa-var-square-gitlab: \e5ae;
+$fa-var-gitlab-square: \e5ae;
+$fa-var-studiovinari: \f3f8;
+$fa-var-pied-piper: \f2ae;
+$fa-var-wordpress: \f19a;
+$fa-var-product-hunt: \f288;
+$fa-var-firefox: \f269;
+$fa-var-linode: \f2b8;
+$fa-var-goodreads: \f3a8;
+$fa-var-square-odnoklassniki: \f264;
+$fa-var-odnoklassniki-square: \f264;
+$fa-var-jsfiddle: \f1cc;
+$fa-var-sith: \f512;
+$fa-var-themeisle: \f2b2;
+$fa-var-page4: \f3d7;
+$fa-var-hashnode: \e499;
+$fa-var-react: \f41b;
+$fa-var-cc-paypal: \f1f4;
+$fa-var-squarespace: \f5be;
+$fa-var-cc-stripe: \f1f5;
+$fa-var-creative-commons-share: \f4f2;
+$fa-var-bitcoin: \f379;
+$fa-var-keycdn: \f3ba;
+$fa-var-opera: \f26a;
+$fa-var-itch-io: \f83a;
+$fa-var-umbraco: \f8e8;
+$fa-var-galactic-senate: \f50d;
+$fa-var-ubuntu: \f7df;
+$fa-var-draft2digital: \f396;
+$fa-var-stripe: \f429;
+$fa-var-houzz: \f27c;
+$fa-var-gg: \f260;
+$fa-var-dhl: \f790;
+$fa-var-square-pinterest: \f0d3;
+$fa-var-pinterest-square: \f0d3;
+$fa-var-xing: \f168;
+$fa-var-blackberry: \f37b;
+$fa-var-creative-commons-pd: \f4ec;
+$fa-var-playstation: \f3df;
+$fa-var-quinscape: \f459;
+$fa-var-less: \f41d;
+$fa-var-blogger-b: \f37d;
+$fa-var-opencart: \f23d;
+$fa-var-vine: \f1ca;
+$fa-var-paypal: \f1ed;
+$fa-var-gitlab: \f296;
+$fa-var-typo3: \f42b;
+$fa-var-reddit-alien: \f281;
+$fa-var-yahoo: \f19e;
+$fa-var-dailymotion: \e052;
+$fa-var-affiliatetheme: \f36b;
+$fa-var-pied-piper-pp: \f1a7;
+$fa-var-bootstrap: \f836;
+$fa-var-odnoklassniki: \f263;
+$fa-var-nfc-symbol: \e531;
+$fa-var-ethereum: \f42e;
+$fa-var-speaker-deck: \f83c;
+$fa-var-creative-commons-nc-eu: \f4e9;
+$fa-var-patreon: \f3d9;
+$fa-var-avianex: \f374;
+$fa-var-ello: \f5f1;
+$fa-var-gofore: \f3a7;
+$fa-var-bimobject: \f378;
+$fa-var-facebook-f: \f39e;
+$fa-var-square-google-plus: \f0d4;
+$fa-var-google-plus-square: \f0d4;
+$fa-var-mandalorian: \f50f;
+$fa-var-first-order-alt: \f50a;
+$fa-var-osi: \f41a;
+$fa-var-google-wallet: \f1ee;
+$fa-var-d-and-d-beyond: \f6ca;
+$fa-var-periscope: \f3da;
+$fa-var-fulcrum: \f50b;
+$fa-var-cloudscale: \f383;
+$fa-var-forumbee: \f211;
+$fa-var-mizuni: \f3cc;
+$fa-var-schlix: \f3ea;
+$fa-var-square-xing: \f169;
+$fa-var-xing-square: \f169;
+$fa-var-bandcamp: \f2d5;
+$fa-var-wpforms: \f298;
+$fa-var-cloudversify: \f385;
+$fa-var-usps: \f7e1;
+$fa-var-megaport: \f5a3;
+$fa-var-magento: \f3c4;
+$fa-var-spotify: \f1bc;
+$fa-var-optin-monster: \f23c;
+$fa-var-fly: \f417;
+$fa-var-aviato: \f421;
+$fa-var-itunes: \f3b4;
+$fa-var-cuttlefish: \f38c;
+$fa-var-blogger: \f37c;
+$fa-var-flickr: \f16e;
+$fa-var-viber: \f409;
+$fa-var-soundcloud: \f1be;
+$fa-var-digg: \f1a6;
+$fa-var-tencent-weibo: \f1d5;
+$fa-var-symfony: \f83d;
+$fa-var-maxcdn: \f136;
+$fa-var-etsy: \f2d7;
+$fa-var-facebook-messenger: \f39f;
+$fa-var-audible: \f373;
+$fa-var-think-peaks: \f731;
+$fa-var-bilibili: \e3d9;
+$fa-var-erlang: \f39d;
+$fa-var-cotton-bureau: \f89e;
+$fa-var-dashcube: \f210;
+$fa-var-42-group: \e080;
+$fa-var-innosoft: \e080;
+$fa-var-stack-exchange: \f18d;
+$fa-var-elementor: \f430;
+$fa-var-square-pied-piper: \e01e;
+$fa-var-pied-piper-square: \e01e;
+$fa-var-creative-commons-nd: \f4eb;
+$fa-var-palfed: \f3d8;
+$fa-var-superpowers: \f2dd;
+$fa-var-resolving: \f3e7;
+$fa-var-xbox: \f412;
+$fa-var-searchengin: \f3eb;
+$fa-var-tiktok: \e07b;
+$fa-var-square-facebook: \f082;
+$fa-var-facebook-square: \f082;
+$fa-var-renren: \f18b;
+$fa-var-linux: \f17c;
+$fa-var-glide: \f2a5;
+$fa-var-linkedin: \f08c;
+$fa-var-hubspot: \f3b2;
+$fa-var-deploydog: \f38e;
+$fa-var-twitch: \f1e8;
+$fa-var-ravelry: \f2d9;
+$fa-var-mixer: \e056;
+$fa-var-square-lastfm: \f203;
+$fa-var-lastfm-square: \f203;
+$fa-var-vimeo: \f40a;
+$fa-var-mendeley: \f7b3;
+$fa-var-uniregistry: \f404;
+$fa-var-figma: \f799;
+$fa-var-creative-commons-remix: \f4ee;
+$fa-var-cc-amazon-pay: \f42d;
+$fa-var-dropbox: \f16b;
+$fa-var-instagram: \f16d;
+$fa-var-cmplid: \e360;
+$fa-var-facebook: \f09a;
+$fa-var-gripfire: \f3ac;
+$fa-var-jedi-order: \f50e;
+$fa-var-uikit: \f403;
+$fa-var-fort-awesome-alt: \f3a3;
+$fa-var-phabricator: \f3db;
+$fa-var-ussunnah: \f407;
+$fa-var-earlybirds: \f39a;
+$fa-var-trade-federation: \f513;
+$fa-var-autoprefixer: \f41c;
+$fa-var-whatsapp: \f232;
+$fa-var-slideshare: \f1e7;
+$fa-var-google-play: \f3ab;
+$fa-var-viadeo: \f2a9;
+$fa-var-line: \f3c0;
+$fa-var-google-drive: \f3aa;
+$fa-var-servicestack: \f3ec;
+$fa-var-simplybuilt: \f215;
+$fa-var-bitbucket: \f171;
+$fa-var-imdb: \f2d8;
+$fa-var-deezer: \e077;
+$fa-var-raspberry-pi: \f7bb;
+$fa-var-jira: \f7b1;
+$fa-var-docker: \f395;
+$fa-var-screenpal: \e570;
+$fa-var-bluetooth: \f293;
+$fa-var-gitter: \f426;
+$fa-var-d-and-d: \f38d;
+$fa-var-microblog: \e01a;
+$fa-var-cc-diners-club: \f24c;
+$fa-var-gg-circle: \f261;
+$fa-var-pied-piper-hat: \f4e5;
+$fa-var-kickstarter-k: \f3bc;
+$fa-var-yandex: \f413;
+$fa-var-readme: \f4d5;
+$fa-var-html5: \f13b;
+$fa-var-sellsy: \f213;
+$fa-var-sass: \f41e;
+$fa-var-wirsindhandwerk: \e2d0;
+$fa-var-wsh: \e2d0;
+$fa-var-buromobelexperte: \f37f;
+$fa-var-salesforce: \f83b;
+$fa-var-octopus-deploy: \e082;
+$fa-var-medapps: \f3c6;
+$fa-var-ns8: \f3d5;
+$fa-var-pinterest-p: \f231;
+$fa-var-apper: \f371;
+$fa-var-fort-awesome: \f286;
+$fa-var-waze: \f83f;
+$fa-var-cc-jcb: \f24b;
+$fa-var-snapchat: \f2ab;
+$fa-var-snapchat-ghost: \f2ab;
+$fa-var-fantasy-flight-games: \f6dc;
+$fa-var-rust: \e07a;
+$fa-var-wix: \f5cf;
+$fa-var-square-behance: \f1b5;
+$fa-var-behance-square: \f1b5;
+$fa-var-supple: \f3f9;
+$fa-var-rebel: \f1d0;
+$fa-var-css3: \f13c;
+$fa-var-staylinked: \f3f5;
+$fa-var-kaggle: \f5fa;
+$fa-var-space-awesome: \e5ac;
+$fa-var-deviantart: \f1bd;
+$fa-var-cpanel: \f388;
+$fa-var-goodreads-g: \f3a9;
+$fa-var-square-git: \f1d2;
+$fa-var-git-square: \f1d2;
+$fa-var-square-tumblr: \f174;
+$fa-var-tumblr-square: \f174;
+$fa-var-trello: \f181;
+$fa-var-creative-commons-nc-jp: \f4ea;
+$fa-var-get-pocket: \f265;
+$fa-var-perbyte: \e083;
+$fa-var-grunt: \f3ad;
+$fa-var-weebly: \f5cc;
+$fa-var-connectdevelop: \f20e;
+$fa-var-leanpub: \f212;
+$fa-var-black-tie: \f27e;
+$fa-var-themeco: \f5c6;
+$fa-var-python: \f3e2;
+$fa-var-android: \f17b;
+$fa-var-bots: \e340;
+$fa-var-free-code-camp: \f2c5;
+$fa-var-hornbill: \f592;
+$fa-var-js: \f3b8;
+$fa-var-ideal: \e013;
+$fa-var-git: \f1d3;
+$fa-var-dev: \f6cc;
+$fa-var-sketch: \f7c6;
+$fa-var-yandex-international: \f414;
+$fa-var-cc-amex: \f1f3;
+$fa-var-uber: \f402;
+$fa-var-github: \f09b;
+$fa-var-php: \f457;
+$fa-var-alipay: \f642;
+$fa-var-youtube: \f167;
+$fa-var-skyatlas: \f216;
+$fa-var-firefox-browser: \e007;
+$fa-var-replyd: \f3e6;
+$fa-var-suse: \f7d6;
+$fa-var-jenkins: \f3b6;
+$fa-var-twitter: \f099;
+$fa-var-rockrms: \f3e9;
+$fa-var-pinterest: \f0d2;
+$fa-var-buffer: \f837;
+$fa-var-npm: \f3d4;
+$fa-var-yammer: \f840;
+$fa-var-btc: \f15a;
+$fa-var-dribbble: \f17d;
+$fa-var-stumbleupon-circle: \f1a3;
+$fa-var-internet-explorer: \f26b;
+$fa-var-telegram: \f2c6;
+$fa-var-telegram-plane: \f2c6;
+$fa-var-old-republic: \f510;
+$fa-var-square-whatsapp: \f40c;
+$fa-var-whatsapp-square: \f40c;
+$fa-var-node-js: \f3d3;
+$fa-var-edge-legacy: \e078;
+$fa-var-slack: \f198;
+$fa-var-slack-hash: \f198;
+$fa-var-medrt: \f3c8;
+$fa-var-usb: \f287;
+$fa-var-tumblr: \f173;
+$fa-var-vaadin: \f408;
+$fa-var-quora: \f2c4;
+$fa-var-reacteurope: \f75d;
+$fa-var-medium: \f23a;
+$fa-var-medium-m: \f23a;
+$fa-var-amilia: \f36d;
+$fa-var-mixcloud: \f289;
+$fa-var-flipboard: \f44d;
+$fa-var-viacoin: \f237;
+$fa-var-critical-role: \f6c9;
+$fa-var-sitrox: \e44a;
+$fa-var-discourse: \f393;
+$fa-var-joomla: \f1aa;
+$fa-var-mastodon: \f4f6;
+$fa-var-airbnb: \f834;
+$fa-var-wolf-pack-battalion: \f514;
+$fa-var-buy-n-large: \f8a6;
+$fa-var-gulp: \f3ae;
+$fa-var-creative-commons-sampling-plus: \f4f1;
+$fa-var-strava: \f428;
+$fa-var-ember: \f423;
+$fa-var-canadian-maple-leaf: \f785;
+$fa-var-teamspeak: \f4f9;
+$fa-var-pushed: \f3e1;
+$fa-var-wordpress-simple: \f411;
+$fa-var-nutritionix: \f3d6;
+$fa-var-wodu: \e088;
+$fa-var-google-pay: \e079;
+$fa-var-intercom: \f7af;
+$fa-var-zhihu: \f63f;
+$fa-var-korvue: \f42f;
+$fa-var-pix: \e43a;
+$fa-var-steam-symbol: \f3f6;
+
+$fa-icons: (
+  "0": $fa-var-0,
+  "1": $fa-var-1,
+  "2": $fa-var-2,
+  "3": $fa-var-3,
+  "4": $fa-var-4,
+  "5": $fa-var-5,
+  "6": $fa-var-6,
+  "7": $fa-var-7,
+  "8": $fa-var-8,
+  "9": $fa-var-9,
+  "fill-drip": $fa-var-fill-drip,
+  "arrows-to-circle": $fa-var-arrows-to-circle,
+  "circle-chevron-right": $fa-var-circle-chevron-right,
+  "chevron-circle-right": $fa-var-chevron-circle-right,
+  "at": $fa-var-at,
+  "trash-can": $fa-var-trash-can,
+  "trash-alt": $fa-var-trash-alt,
+  "text-height": $fa-var-text-height,
+  "user-xmark": $fa-var-user-xmark,
+  "user-times": $fa-var-user-times,
+  "stethoscope": $fa-var-stethoscope,
+  "message": $fa-var-message,
+  "comment-alt": $fa-var-comment-alt,
+  "info": $fa-var-info,
+  "down-left-and-up-right-to-center": $fa-var-down-left-and-up-right-to-center,
+  "compress-alt": $fa-var-compress-alt,
+  "explosion": $fa-var-explosion,
+  "file-lines": $fa-var-file-lines,
+  "file-alt": $fa-var-file-alt,
+  "file-text": $fa-var-file-text,
+  "wave-square": $fa-var-wave-square,
+  "ring": $fa-var-ring,
+  "building-un": $fa-var-building-un,
+  "dice-three": $fa-var-dice-three,
+  "calendar-days": $fa-var-calendar-days,
+  "calendar-alt": $fa-var-calendar-alt,
+  "anchor-circle-check": $fa-var-anchor-circle-check,
+  "building-circle-arrow-right": $fa-var-building-circle-arrow-right,
+  "volleyball": $fa-var-volleyball,
+  "volleyball-ball": $fa-var-volleyball-ball,
+  "arrows-up-to-line": $fa-var-arrows-up-to-line,
+  "sort-down": $fa-var-sort-down,
+  "sort-desc": $fa-var-sort-desc,
+  "circle-minus": $fa-var-circle-minus,
+  "minus-circle": $fa-var-minus-circle,
+  "door-open": $fa-var-door-open,
+  "right-from-bracket": $fa-var-right-from-bracket,
+  "sign-out-alt": $fa-var-sign-out-alt,
+  "atom": $fa-var-atom,
+  "soap": $fa-var-soap,
+  "icons": $fa-var-icons,
+  "heart-music-camera-bolt": $fa-var-heart-music-camera-bolt,
+  "microphone-lines-slash": $fa-var-microphone-lines-slash,
+  "microphone-alt-slash": $fa-var-microphone-alt-slash,
+  "bridge-circle-check": $fa-var-bridge-circle-check,
+  "pump-medical": $fa-var-pump-medical,
+  "fingerprint": $fa-var-fingerprint,
+  "hand-point-right": $fa-var-hand-point-right,
+  "magnifying-glass-location": $fa-var-magnifying-glass-location,
+  "search-location": $fa-var-search-location,
+  "forward-step": $fa-var-forward-step,
+  "step-forward": $fa-var-step-forward,
+  "face-smile-beam": $fa-var-face-smile-beam,
+  "smile-beam": $fa-var-smile-beam,
+  "flag-checkered": $fa-var-flag-checkered,
+  "football": $fa-var-football,
+  "football-ball": $fa-var-football-ball,
+  "school-circle-exclamation": $fa-var-school-circle-exclamation,
+  "crop": $fa-var-crop,
+  "angles-down": $fa-var-angles-down,
+  "angle-double-down": $fa-var-angle-double-down,
+  "users-rectangle": $fa-var-users-rectangle,
+  "people-roof": $fa-var-people-roof,
+  "people-line": $fa-var-people-line,
+  "beer-mug-empty": $fa-var-beer-mug-empty,
+  "beer": $fa-var-beer,
+  "diagram-predecessor": $fa-var-diagram-predecessor,
+  "arrow-up-long": $fa-var-arrow-up-long,
+  "long-arrow-up": $fa-var-long-arrow-up,
+  "fire-flame-simple": $fa-var-fire-flame-simple,
+  "burn": $fa-var-burn,
+  "person": $fa-var-person,
+  "male": $fa-var-male,
+  "laptop": $fa-var-laptop,
+  "file-csv": $fa-var-file-csv,
+  "menorah": $fa-var-menorah,
+  "truck-plane": $fa-var-truck-plane,
+  "record-vinyl": $fa-var-record-vinyl,
+  "face-grin-stars": $fa-var-face-grin-stars,
+  "grin-stars": $fa-var-grin-stars,
+  "bong": $fa-var-bong,
+  "spaghetti-monster-flying": $fa-var-spaghetti-monster-flying,
+  "pastafarianism": $fa-var-pastafarianism,
+  "arrow-down-up-across-line": $fa-var-arrow-down-up-across-line,
+  "spoon": $fa-var-spoon,
+  "utensil-spoon": $fa-var-utensil-spoon,
+  "jar-wheat": $fa-var-jar-wheat,
+  "envelopes-bulk": $fa-var-envelopes-bulk,
+  "mail-bulk": $fa-var-mail-bulk,
+  "file-circle-exclamation": $fa-var-file-circle-exclamation,
+  "circle-h": $fa-var-circle-h,
+  "hospital-symbol": $fa-var-hospital-symbol,
+  "pager": $fa-var-pager,
+  "address-book": $fa-var-address-book,
+  "contact-book": $fa-var-contact-book,
+  "strikethrough": $fa-var-strikethrough,
+  "k": $fa-var-k,
+  "landmark-flag": $fa-var-landmark-flag,
+  "pencil": $fa-var-pencil,
+  "pencil-alt": $fa-var-pencil-alt,
+  "backward": $fa-var-backward,
+  "caret-right": $fa-var-caret-right,
+  "comments": $fa-var-comments,
+  "paste": $fa-var-paste,
+  "file-clipboard": $fa-var-file-clipboard,
+  "code-pull-request": $fa-var-code-pull-request,
+  "clipboard-list": $fa-var-clipboard-list,
+  "truck-ramp-box": $fa-var-truck-ramp-box,
+  "truck-loading": $fa-var-truck-loading,
+  "user-check": $fa-var-user-check,
+  "vial-virus": $fa-var-vial-virus,
+  "sheet-plastic": $fa-var-sheet-plastic,
+  "blog": $fa-var-blog,
+  "user-ninja": $fa-var-user-ninja,
+  "person-arrow-up-from-line": $fa-var-person-arrow-up-from-line,
+  "scroll-torah": $fa-var-scroll-torah,
+  "torah": $fa-var-torah,
+  "broom-ball": $fa-var-broom-ball,
+  "quidditch": $fa-var-quidditch,
+  "quidditch-broom-ball": $fa-var-quidditch-broom-ball,
+  "toggle-off": $fa-var-toggle-off,
+  "box-archive": $fa-var-box-archive,
+  "archive": $fa-var-archive,
+  "person-drowning": $fa-var-person-drowning,
+  "arrow-down-9-1": $fa-var-arrow-down-9-1,
+  "sort-numeric-desc": $fa-var-sort-numeric-desc,
+  "sort-numeric-down-alt": $fa-var-sort-numeric-down-alt,
+  "face-grin-tongue-squint": $fa-var-face-grin-tongue-squint,
+  "grin-tongue-squint": $fa-var-grin-tongue-squint,
+  "spray-can": $fa-var-spray-can,
+  "truck-monster": $fa-var-truck-monster,
+  "w": $fa-var-w,
+  "earth-africa": $fa-var-earth-africa,
+  "globe-africa": $fa-var-globe-africa,
+  "rainbow": $fa-var-rainbow,
+  "circle-notch": $fa-var-circle-notch,
+  "tablet-screen-button": $fa-var-tablet-screen-button,
+  "tablet-alt": $fa-var-tablet-alt,
+  "paw": $fa-var-paw,
+  "cloud": $fa-var-cloud,
+  "trowel-bricks": $fa-var-trowel-bricks,
+  "face-flushed": $fa-var-face-flushed,
+  "flushed": $fa-var-flushed,
+  "hospital-user": $fa-var-hospital-user,
+  "tent-arrow-left-right": $fa-var-tent-arrow-left-right,
+  "gavel": $fa-var-gavel,
+  "legal": $fa-var-legal,
+  "binoculars": $fa-var-binoculars,
+  "microphone-slash": $fa-var-microphone-slash,
+  "box-tissue": $fa-var-box-tissue,
+  "motorcycle": $fa-var-motorcycle,
+  "bell-concierge": $fa-var-bell-concierge,
+  "concierge-bell": $fa-var-concierge-bell,
+  "pen-ruler": $fa-var-pen-ruler,
+  "pencil-ruler": $fa-var-pencil-ruler,
+  "people-arrows": $fa-var-people-arrows,
+  "people-arrows-left-right": $fa-var-people-arrows-left-right,
+  "mars-and-venus-burst": $fa-var-mars-and-venus-burst,
+  "square-caret-right": $fa-var-square-caret-right,
+  "caret-square-right": $fa-var-caret-square-right,
+  "scissors": $fa-var-scissors,
+  "cut": $fa-var-cut,
+  "sun-plant-wilt": $fa-var-sun-plant-wilt,
+  "toilets-portable": $fa-var-toilets-portable,
+  "hockey-puck": $fa-var-hockey-puck,
+  "table": $fa-var-table,
+  "magnifying-glass-arrow-right": $fa-var-magnifying-glass-arrow-right,
+  "tachograph-digital": $fa-var-tachograph-digital,
+  "digital-tachograph": $fa-var-digital-tachograph,
+  "users-slash": $fa-var-users-slash,
+  "clover": $fa-var-clover,
+  "reply": $fa-var-reply,
+  "mail-reply": $fa-var-mail-reply,
+  "star-and-crescent": $fa-var-star-and-crescent,
+  "house-fire": $fa-var-house-fire,
+  "square-minus": $fa-var-square-minus,
+  "minus-square": $fa-var-minus-square,
+  "helicopter": $fa-var-helicopter,
+  "compass": $fa-var-compass,
+  "square-caret-down": $fa-var-square-caret-down,
+  "caret-square-down": $fa-var-caret-square-down,
+  "file-circle-question": $fa-var-file-circle-question,
+  "laptop-code": $fa-var-laptop-code,
+  "swatchbook": $fa-var-swatchbook,
+  "prescription-bottle": $fa-var-prescription-bottle,
+  "bars": $fa-var-bars,
+  "navicon": $fa-var-navicon,
+  "people-group": $fa-var-people-group,
+  "hourglass-end": $fa-var-hourglass-end,
+  "hourglass-3": $fa-var-hourglass-3,
+  "heart-crack": $fa-var-heart-crack,
+  "heart-broken": $fa-var-heart-broken,
+  "square-up-right": $fa-var-square-up-right,
+  "external-link-square-alt": $fa-var-external-link-square-alt,
+  "face-kiss-beam": $fa-var-face-kiss-beam,
+  "kiss-beam": $fa-var-kiss-beam,
+  "film": $fa-var-film,
+  "ruler-horizontal": $fa-var-ruler-horizontal,
+  "people-robbery": $fa-var-people-robbery,
+  "lightbulb": $fa-var-lightbulb,
+  "caret-left": $fa-var-caret-left,
+  "circle-exclamation": $fa-var-circle-exclamation,
+  "exclamation-circle": $fa-var-exclamation-circle,
+  "school-circle-xmark": $fa-var-school-circle-xmark,
+  "arrow-right-from-bracket": $fa-var-arrow-right-from-bracket,
+  "sign-out": $fa-var-sign-out,
+  "circle-chevron-down": $fa-var-circle-chevron-down,
+  "chevron-circle-down": $fa-var-chevron-circle-down,
+  "unlock-keyhole": $fa-var-unlock-keyhole,
+  "unlock-alt": $fa-var-unlock-alt,
+  "cloud-showers-heavy": $fa-var-cloud-showers-heavy,
+  "headphones-simple": $fa-var-headphones-simple,
+  "headphones-alt": $fa-var-headphones-alt,
+  "sitemap": $fa-var-sitemap,
+  "circle-dollar-to-slot": $fa-var-circle-dollar-to-slot,
+  "donate": $fa-var-donate,
+  "memory": $fa-var-memory,
+  "road-spikes": $fa-var-road-spikes,
+  "fire-burner": $fa-var-fire-burner,
+  "flag": $fa-var-flag,
+  "hanukiah": $fa-var-hanukiah,
+  "feather": $fa-var-feather,
+  "volume-low": $fa-var-volume-low,
+  "volume-down": $fa-var-volume-down,
+  "comment-slash": $fa-var-comment-slash,
+  "cloud-sun-rain": $fa-var-cloud-sun-rain,
+  "compress": $fa-var-compress,
+  "wheat-awn": $fa-var-wheat-awn,
+  "wheat-alt": $fa-var-wheat-alt,
+  "ankh": $fa-var-ankh,
+  "hands-holding-child": $fa-var-hands-holding-child,
+  "asterisk": $fa-var-asterisk,
+  "square-check": $fa-var-square-check,
+  "check-square": $fa-var-check-square,
+  "peseta-sign": $fa-var-peseta-sign,
+  "heading": $fa-var-heading,
+  "header": $fa-var-header,
+  "ghost": $fa-var-ghost,
+  "list": $fa-var-list,
+  "list-squares": $fa-var-list-squares,
+  "square-phone-flip": $fa-var-square-phone-flip,
+  "phone-square-alt": $fa-var-phone-square-alt,
+  "cart-plus": $fa-var-cart-plus,
+  "gamepad": $fa-var-gamepad,
+  "circle-dot": $fa-var-circle-dot,
+  "dot-circle": $fa-var-dot-circle,
+  "face-dizzy": $fa-var-face-dizzy,
+  "dizzy": $fa-var-dizzy,
+  "egg": $fa-var-egg,
+  "house-medical-circle-xmark": $fa-var-house-medical-circle-xmark,
+  "campground": $fa-var-campground,
+  "folder-plus": $fa-var-folder-plus,
+  "futbol": $fa-var-futbol,
+  "futbol-ball": $fa-var-futbol-ball,
+  "soccer-ball": $fa-var-soccer-ball,
+  "paintbrush": $fa-var-paintbrush,
+  "paint-brush": $fa-var-paint-brush,
+  "lock": $fa-var-lock,
+  "gas-pump": $fa-var-gas-pump,
+  "hot-tub-person": $fa-var-hot-tub-person,
+  "hot-tub": $fa-var-hot-tub,
+  "map-location": $fa-var-map-location,
+  "map-marked": $fa-var-map-marked,
+  "house-flood-water": $fa-var-house-flood-water,
+  "tree": $fa-var-tree,
+  "bridge-lock": $fa-var-bridge-lock,
+  "sack-dollar": $fa-var-sack-dollar,
+  "pen-to-square": $fa-var-pen-to-square,
+  "edit": $fa-var-edit,
+  "car-side": $fa-var-car-side,
+  "share-nodes": $fa-var-share-nodes,
+  "share-alt": $fa-var-share-alt,
+  "heart-circle-minus": $fa-var-heart-circle-minus,
+  "hourglass-half": $fa-var-hourglass-half,
+  "hourglass-2": $fa-var-hourglass-2,
+  "microscope": $fa-var-microscope,
+  "sink": $fa-var-sink,
+  "bag-shopping": $fa-var-bag-shopping,
+  "shopping-bag": $fa-var-shopping-bag,
+  "arrow-down-z-a": $fa-var-arrow-down-z-a,
+  "sort-alpha-desc": $fa-var-sort-alpha-desc,
+  "sort-alpha-down-alt": $fa-var-sort-alpha-down-alt,
+  "mitten": $fa-var-mitten,
+  "person-rays": $fa-var-person-rays,
+  "users": $fa-var-users,
+  "eye-slash": $fa-var-eye-slash,
+  "flask-vial": $fa-var-flask-vial,
+  "hand": $fa-var-hand,
+  "hand-paper": $fa-var-hand-paper,
+  "om": $fa-var-om,
+  "worm": $fa-var-worm,
+  "house-circle-xmark": $fa-var-house-circle-xmark,
+  "plug": $fa-var-plug,
+  "chevron-up": $fa-var-chevron-up,
+  "hand-spock": $fa-var-hand-spock,
+  "stopwatch": $fa-var-stopwatch,
+  "face-kiss": $fa-var-face-kiss,
+  "kiss": $fa-var-kiss,
+  "bridge-circle-xmark": $fa-var-bridge-circle-xmark,
+  "face-grin-tongue": $fa-var-face-grin-tongue,
+  "grin-tongue": $fa-var-grin-tongue,
+  "chess-bishop": $fa-var-chess-bishop,
+  "face-grin-wink": $fa-var-face-grin-wink,
+  "grin-wink": $fa-var-grin-wink,
+  "ear-deaf": $fa-var-ear-deaf,
+  "deaf": $fa-var-deaf,
+  "deafness": $fa-var-deafness,
+  "hard-of-hearing": $fa-var-hard-of-hearing,
+  "road-circle-check": $fa-var-road-circle-check,
+  "dice-five": $fa-var-dice-five,
+  "square-rss": $fa-var-square-rss,
+  "rss-square": $fa-var-rss-square,
+  "land-mine-on": $fa-var-land-mine-on,
+  "i-cursor": $fa-var-i-cursor,
+  "stamp": $fa-var-stamp,
+  "stairs": $fa-var-stairs,
+  "i": $fa-var-i,
+  "hryvnia-sign": $fa-var-hryvnia-sign,
+  "hryvnia": $fa-var-hryvnia,
+  "pills": $fa-var-pills,
+  "face-grin-wide": $fa-var-face-grin-wide,
+  "grin-alt": $fa-var-grin-alt,
+  "tooth": $fa-var-tooth,
+  "v": $fa-var-v,
+  "bicycle": $fa-var-bicycle,
+  "staff-snake": $fa-var-staff-snake,
+  "rod-asclepius": $fa-var-rod-asclepius,
+  "rod-snake": $fa-var-rod-snake,
+  "staff-aesculapius": $fa-var-staff-aesculapius,
+  "head-side-cough-slash": $fa-var-head-side-cough-slash,
+  "truck-medical": $fa-var-truck-medical,
+  "ambulance": $fa-var-ambulance,
+  "wheat-awn-circle-exclamation": $fa-var-wheat-awn-circle-exclamation,
+  "snowman": $fa-var-snowman,
+  "mortar-pestle": $fa-var-mortar-pestle,
+  "road-barrier": $fa-var-road-barrier,
+  "school": $fa-var-school,
+  "igloo": $fa-var-igloo,
+  "joint": $fa-var-joint,
+  "angle-right": $fa-var-angle-right,
+  "horse": $fa-var-horse,
+  "q": $fa-var-q,
+  "g": $fa-var-g,
+  "notes-medical": $fa-var-notes-medical,
+  "temperature-half": $fa-var-temperature-half,
+  "temperature-2": $fa-var-temperature-2,
+  "thermometer-2": $fa-var-thermometer-2,
+  "thermometer-half": $fa-var-thermometer-half,
+  "dong-sign": $fa-var-dong-sign,
+  "capsules": $fa-var-capsules,
+  "poo-storm": $fa-var-poo-storm,
+  "poo-bolt": $fa-var-poo-bolt,
+  "face-frown-open": $fa-var-face-frown-open,
+  "frown-open": $fa-var-frown-open,
+  "hand-point-up": $fa-var-hand-point-up,
+  "money-bill": $fa-var-money-bill,
+  "bookmark": $fa-var-bookmark,
+  "align-justify": $fa-var-align-justify,
+  "umbrella-beach": $fa-var-umbrella-beach,
+  "helmet-un": $fa-var-helmet-un,
+  "bullseye": $fa-var-bullseye,
+  "bacon": $fa-var-bacon,
+  "hand-point-down": $fa-var-hand-point-down,
+  "arrow-up-from-bracket": $fa-var-arrow-up-from-bracket,
+  "folder": $fa-var-folder,
+  "folder-blank": $fa-var-folder-blank,
+  "file-waveform": $fa-var-file-waveform,
+  "file-medical-alt": $fa-var-file-medical-alt,
+  "radiation": $fa-var-radiation,
+  "chart-simple": $fa-var-chart-simple,
+  "mars-stroke": $fa-var-mars-stroke,
+  "vial": $fa-var-vial,
+  "gauge": $fa-var-gauge,
+  "dashboard": $fa-var-dashboard,
+  "gauge-med": $fa-var-gauge-med,
+  "tachometer-alt-average": $fa-var-tachometer-alt-average,
+  "wand-magic-sparkles": $fa-var-wand-magic-sparkles,
+  "magic-wand-sparkles": $fa-var-magic-wand-sparkles,
+  "e": $fa-var-e,
+  "pen-clip": $fa-var-pen-clip,
+  "pen-alt": $fa-var-pen-alt,
+  "bridge-circle-exclamation": $fa-var-bridge-circle-exclamation,
+  "user": $fa-var-user,
+  "school-circle-check": $fa-var-school-circle-check,
+  "dumpster": $fa-var-dumpster,
+  "van-shuttle": $fa-var-van-shuttle,
+  "shuttle-van": $fa-var-shuttle-van,
+  "building-user": $fa-var-building-user,
+  "square-caret-left": $fa-var-square-caret-left,
+  "caret-square-left": $fa-var-caret-square-left,
+  "highlighter": $fa-var-highlighter,
+  "key": $fa-var-key,
+  "bullhorn": $fa-var-bullhorn,
+  "globe": $fa-var-globe,
+  "synagogue": $fa-var-synagogue,
+  "person-half-dress": $fa-var-person-half-dress,
+  "road-bridge": $fa-var-road-bridge,
+  "location-arrow": $fa-var-location-arrow,
+  "c": $fa-var-c,
+  "tablet-button": $fa-var-tablet-button,
+  "building-lock": $fa-var-building-lock,
+  "pizza-slice": $fa-var-pizza-slice,
+  "money-bill-wave": $fa-var-money-bill-wave,
+  "chart-area": $fa-var-chart-area,
+  "area-chart": $fa-var-area-chart,
+  "house-flag": $fa-var-house-flag,
+  "person-circle-minus": $fa-var-person-circle-minus,
+  "ban": $fa-var-ban,
+  "cancel": $fa-var-cancel,
+  "camera-rotate": $fa-var-camera-rotate,
+  "spray-can-sparkles": $fa-var-spray-can-sparkles,
+  "air-freshener": $fa-var-air-freshener,
+  "star": $fa-var-star,
+  "repeat": $fa-var-repeat,
+  "cross": $fa-var-cross,
+  "box": $fa-var-box,
+  "venus-mars": $fa-var-venus-mars,
+  "arrow-pointer": $fa-var-arrow-pointer,
+  "mouse-pointer": $fa-var-mouse-pointer,
+  "maximize": $fa-var-maximize,
+  "expand-arrows-alt": $fa-var-expand-arrows-alt,
+  "charging-station": $fa-var-charging-station,
+  "shapes": $fa-var-shapes,
+  "triangle-circle-square": $fa-var-triangle-circle-square,
+  "shuffle": $fa-var-shuffle,
+  "random": $fa-var-random,
+  "person-running": $fa-var-person-running,
+  "running": $fa-var-running,
+  "mobile-retro": $fa-var-mobile-retro,
+  "grip-lines-vertical": $fa-var-grip-lines-vertical,
+  "spider": $fa-var-spider,
+  "hands-bound": $fa-var-hands-bound,
+  "file-invoice-dollar": $fa-var-file-invoice-dollar,
+  "plane-circle-exclamation": $fa-var-plane-circle-exclamation,
+  "x-ray": $fa-var-x-ray,
+  "spell-check": $fa-var-spell-check,
+  "slash": $fa-var-slash,
+  "computer-mouse": $fa-var-computer-mouse,
+  "mouse": $fa-var-mouse,
+  "arrow-right-to-bracket": $fa-var-arrow-right-to-bracket,
+  "sign-in": $fa-var-sign-in,
+  "shop-slash": $fa-var-shop-slash,
+  "store-alt-slash": $fa-var-store-alt-slash,
+  "server": $fa-var-server,
+  "virus-covid-slash": $fa-var-virus-covid-slash,
+  "shop-lock": $fa-var-shop-lock,
+  "hourglass-start": $fa-var-hourglass-start,
+  "hourglass-1": $fa-var-hourglass-1,
+  "blender-phone": $fa-var-blender-phone,
+  "building-wheat": $fa-var-building-wheat,
+  "person-breastfeeding": $fa-var-person-breastfeeding,
+  "right-to-bracket": $fa-var-right-to-bracket,
+  "sign-in-alt": $fa-var-sign-in-alt,
+  "venus": $fa-var-venus,
+  "passport": $fa-var-passport,
+  "heart-pulse": $fa-var-heart-pulse,
+  "heartbeat": $fa-var-heartbeat,
+  "people-carry-box": $fa-var-people-carry-box,
+  "people-carry": $fa-var-people-carry,
+  "temperature-high": $fa-var-temperature-high,
+  "microchip": $fa-var-microchip,
+  "crown": $fa-var-crown,
+  "weight-hanging": $fa-var-weight-hanging,
+  "xmarks-lines": $fa-var-xmarks-lines,
+  "file-prescription": $fa-var-file-prescription,
+  "weight-scale": $fa-var-weight-scale,
+  "weight": $fa-var-weight,
+  "user-group": $fa-var-user-group,
+  "user-friends": $fa-var-user-friends,
+  "arrow-up-a-z": $fa-var-arrow-up-a-z,
+  "sort-alpha-up": $fa-var-sort-alpha-up,
+  "chess-knight": $fa-var-chess-knight,
+  "face-laugh-squint": $fa-var-face-laugh-squint,
+  "laugh-squint": $fa-var-laugh-squint,
+  "wheelchair": $fa-var-wheelchair,
+  "circle-arrow-up": $fa-var-circle-arrow-up,
+  "arrow-circle-up": $fa-var-arrow-circle-up,
+  "toggle-on": $fa-var-toggle-on,
+  "person-walking": $fa-var-person-walking,
+  "walking": $fa-var-walking,
+  "l": $fa-var-l,
+  "fire": $fa-var-fire,
+  "bed-pulse": $fa-var-bed-pulse,
+  "procedures": $fa-var-procedures,
+  "shuttle-space": $fa-var-shuttle-space,
+  "space-shuttle": $fa-var-space-shuttle,
+  "face-laugh": $fa-var-face-laugh,
+  "laugh": $fa-var-laugh,
+  "folder-open": $fa-var-folder-open,
+  "heart-circle-plus": $fa-var-heart-circle-plus,
+  "code-fork": $fa-var-code-fork,
+  "city": $fa-var-city,
+  "microphone-lines": $fa-var-microphone-lines,
+  "microphone-alt": $fa-var-microphone-alt,
+  "pepper-hot": $fa-var-pepper-hot,
+  "unlock": $fa-var-unlock,
+  "colon-sign": $fa-var-colon-sign,
+  "headset": $fa-var-headset,
+  "store-slash": $fa-var-store-slash,
+  "road-circle-xmark": $fa-var-road-circle-xmark,
+  "user-minus": $fa-var-user-minus,
+  "mars-stroke-up": $fa-var-mars-stroke-up,
+  "mars-stroke-v": $fa-var-mars-stroke-v,
+  "champagne-glasses": $fa-var-champagne-glasses,
+  "glass-cheers": $fa-var-glass-cheers,
+  "clipboard": $fa-var-clipboard,
+  "house-circle-exclamation": $fa-var-house-circle-exclamation,
+  "file-arrow-up": $fa-var-file-arrow-up,
+  "file-upload": $fa-var-file-upload,
+  "wifi": $fa-var-wifi,
+  "wifi-3": $fa-var-wifi-3,
+  "wifi-strong": $fa-var-wifi-strong,
+  "bath": $fa-var-bath,
+  "bathtub": $fa-var-bathtub,
+  "underline": $fa-var-underline,
+  "user-pen": $fa-var-user-pen,
+  "user-edit": $fa-var-user-edit,
+  "signature": $fa-var-signature,
+  "stroopwafel": $fa-var-stroopwafel,
+  "bold": $fa-var-bold,
+  "anchor-lock": $fa-var-anchor-lock,
+  "building-ngo": $fa-var-building-ngo,
+  "manat-sign": $fa-var-manat-sign,
+  "not-equal": $fa-var-not-equal,
+  "border-top-left": $fa-var-border-top-left,
+  "border-style": $fa-var-border-style,
+  "map-location-dot": $fa-var-map-location-dot,
+  "map-marked-alt": $fa-var-map-marked-alt,
+  "jedi": $fa-var-jedi,
+  "square-poll-vertical": $fa-var-square-poll-vertical,
+  "poll": $fa-var-poll,
+  "mug-hot": $fa-var-mug-hot,
+  "car-battery": $fa-var-car-battery,
+  "battery-car": $fa-var-battery-car,
+  "gift": $fa-var-gift,
+  "dice-two": $fa-var-dice-two,
+  "chess-queen": $fa-var-chess-queen,
+  "glasses": $fa-var-glasses,
+  "chess-board": $fa-var-chess-board,
+  "building-circle-check": $fa-var-building-circle-check,
+  "person-chalkboard": $fa-var-person-chalkboard,
+  "mars-stroke-right": $fa-var-mars-stroke-right,
+  "mars-stroke-h": $fa-var-mars-stroke-h,
+  "hand-back-fist": $fa-var-hand-back-fist,
+  "hand-rock": $fa-var-hand-rock,
+  "square-caret-up": $fa-var-square-caret-up,
+  "caret-square-up": $fa-var-caret-square-up,
+  "cloud-showers-water": $fa-var-cloud-showers-water,
+  "chart-bar": $fa-var-chart-bar,
+  "bar-chart": $fa-var-bar-chart,
+  "hands-bubbles": $fa-var-hands-bubbles,
+  "hands-wash": $fa-var-hands-wash,
+  "less-than-equal": $fa-var-less-than-equal,
+  "train": $fa-var-train,
+  "eye-low-vision": $fa-var-eye-low-vision,
+  "low-vision": $fa-var-low-vision,
+  "crow": $fa-var-crow,
+  "sailboat": $fa-var-sailboat,
+  "window-restore": $fa-var-window-restore,
+  "square-plus": $fa-var-square-plus,
+  "plus-square": $fa-var-plus-square,
+  "torii-gate": $fa-var-torii-gate,
+  "frog": $fa-var-frog,
+  "bucket": $fa-var-bucket,
+  "image": $fa-var-image,
+  "microphone": $fa-var-microphone,
+  "cow": $fa-var-cow,
+  "caret-up": $fa-var-caret-up,
+  "screwdriver": $fa-var-screwdriver,
+  "folder-closed": $fa-var-folder-closed,
+  "house-tsunami": $fa-var-house-tsunami,
+  "square-nfi": $fa-var-square-nfi,
+  "arrow-up-from-ground-water": $fa-var-arrow-up-from-ground-water,
+  "martini-glass": $fa-var-martini-glass,
+  "glass-martini-alt": $fa-var-glass-martini-alt,
+  "rotate-left": $fa-var-rotate-left,
+  "rotate-back": $fa-var-rotate-back,
+  "rotate-backward": $fa-var-rotate-backward,
+  "undo-alt": $fa-var-undo-alt,
+  "table-columns": $fa-var-table-columns,
+  "columns": $fa-var-columns,
+  "lemon": $fa-var-lemon,
+  "head-side-mask": $fa-var-head-side-mask,
+  "handshake": $fa-var-handshake,
+  "gem": $fa-var-gem,
+  "dolly": $fa-var-dolly,
+  "dolly-box": $fa-var-dolly-box,
+  "smoking": $fa-var-smoking,
+  "minimize": $fa-var-minimize,
+  "compress-arrows-alt": $fa-var-compress-arrows-alt,
+  "monument": $fa-var-monument,
+  "snowplow": $fa-var-snowplow,
+  "angles-right": $fa-var-angles-right,
+  "angle-double-right": $fa-var-angle-double-right,
+  "cannabis": $fa-var-cannabis,
+  "circle-play": $fa-var-circle-play,
+  "play-circle": $fa-var-play-circle,
+  "tablets": $fa-var-tablets,
+  "ethernet": $fa-var-ethernet,
+  "euro-sign": $fa-var-euro-sign,
+  "eur": $fa-var-eur,
+  "euro": $fa-var-euro,
+  "chair": $fa-var-chair,
+  "circle-check": $fa-var-circle-check,
+  "check-circle": $fa-var-check-circle,
+  "circle-stop": $fa-var-circle-stop,
+  "stop-circle": $fa-var-stop-circle,
+  "compass-drafting": $fa-var-compass-drafting,
+  "drafting-compass": $fa-var-drafting-compass,
+  "plate-wheat": $fa-var-plate-wheat,
+  "icicles": $fa-var-icicles,
+  "person-shelter": $fa-var-person-shelter,
+  "neuter": $fa-var-neuter,
+  "id-badge": $fa-var-id-badge,
+  "marker": $fa-var-marker,
+  "face-laugh-beam": $fa-var-face-laugh-beam,
+  "laugh-beam": $fa-var-laugh-beam,
+  "helicopter-symbol": $fa-var-helicopter-symbol,
+  "universal-access": $fa-var-universal-access,
+  "circle-chevron-up": $fa-var-circle-chevron-up,
+  "chevron-circle-up": $fa-var-chevron-circle-up,
+  "lari-sign": $fa-var-lari-sign,
+  "volcano": $fa-var-volcano,
+  "person-walking-dashed-line-arrow-right": $fa-var-person-walking-dashed-line-arrow-right,
+  "sterling-sign": $fa-var-sterling-sign,
+  "gbp": $fa-var-gbp,
+  "pound-sign": $fa-var-pound-sign,
+  "viruses": $fa-var-viruses,
+  "square-person-confined": $fa-var-square-person-confined,
+  "user-tie": $fa-var-user-tie,
+  "arrow-down-long": $fa-var-arrow-down-long,
+  "long-arrow-down": $fa-var-long-arrow-down,
+  "tent-arrow-down-to-line": $fa-var-tent-arrow-down-to-line,
+  "certificate": $fa-var-certificate,
+  "reply-all": $fa-var-reply-all,
+  "mail-reply-all": $fa-var-mail-reply-all,
+  "suitcase": $fa-var-suitcase,
+  "person-skating": $fa-var-person-skating,
+  "skating": $fa-var-skating,
+  "filter-circle-dollar": $fa-var-filter-circle-dollar,
+  "funnel-dollar": $fa-var-funnel-dollar,
+  "camera-retro": $fa-var-camera-retro,
+  "circle-arrow-down": $fa-var-circle-arrow-down,
+  "arrow-circle-down": $fa-var-arrow-circle-down,
+  "file-import": $fa-var-file-import,
+  "arrow-right-to-file": $fa-var-arrow-right-to-file,
+  "square-arrow-up-right": $fa-var-square-arrow-up-right,
+  "external-link-square": $fa-var-external-link-square,
+  "box-open": $fa-var-box-open,
+  "scroll": $fa-var-scroll,
+  "spa": $fa-var-spa,
+  "location-pin-lock": $fa-var-location-pin-lock,
+  "pause": $fa-var-pause,
+  "hill-avalanche": $fa-var-hill-avalanche,
+  "temperature-empty": $fa-var-temperature-empty,
+  "temperature-0": $fa-var-temperature-0,
+  "thermometer-0": $fa-var-thermometer-0,
+  "thermometer-empty": $fa-var-thermometer-empty,
+  "bomb": $fa-var-bomb,
+  "registered": $fa-var-registered,
+  "address-card": $fa-var-address-card,
+  "contact-card": $fa-var-contact-card,
+  "vcard": $fa-var-vcard,
+  "scale-unbalanced-flip": $fa-var-scale-unbalanced-flip,
+  "balance-scale-right": $fa-var-balance-scale-right,
+  "subscript": $fa-var-subscript,
+  "diamond-turn-right": $fa-var-diamond-turn-right,
+  "directions": $fa-var-directions,
+  "burst": $fa-var-burst,
+  "house-laptop": $fa-var-house-laptop,
+  "laptop-house": $fa-var-laptop-house,
+  "face-tired": $fa-var-face-tired,
+  "tired": $fa-var-tired,
+  "money-bills": $fa-var-money-bills,
+  "smog": $fa-var-smog,
+  "crutch": $fa-var-crutch,
+  "cloud-arrow-up": $fa-var-cloud-arrow-up,
+  "cloud-upload": $fa-var-cloud-upload,
+  "cloud-upload-alt": $fa-var-cloud-upload-alt,
+  "palette": $fa-var-palette,
+  "arrows-turn-right": $fa-var-arrows-turn-right,
+  "vest": $fa-var-vest,
+  "ferry": $fa-var-ferry,
+  "arrows-down-to-people": $fa-var-arrows-down-to-people,
+  "seedling": $fa-var-seedling,
+  "sprout": $fa-var-sprout,
+  "left-right": $fa-var-left-right,
+  "arrows-alt-h": $fa-var-arrows-alt-h,
+  "boxes-packing": $fa-var-boxes-packing,
+  "circle-arrow-left": $fa-var-circle-arrow-left,
+  "arrow-circle-left": $fa-var-arrow-circle-left,
+  "group-arrows-rotate": $fa-var-group-arrows-rotate,
+  "bowl-food": $fa-var-bowl-food,
+  "candy-cane": $fa-var-candy-cane,
+  "arrow-down-wide-short": $fa-var-arrow-down-wide-short,
+  "sort-amount-asc": $fa-var-sort-amount-asc,
+  "sort-amount-down": $fa-var-sort-amount-down,
+  "cloud-bolt": $fa-var-cloud-bolt,
+  "thunderstorm": $fa-var-thunderstorm,
+  "text-slash": $fa-var-text-slash,
+  "remove-format": $fa-var-remove-format,
+  "face-smile-wink": $fa-var-face-smile-wink,
+  "smile-wink": $fa-var-smile-wink,
+  "file-word": $fa-var-file-word,
+  "file-powerpoint": $fa-var-file-powerpoint,
+  "arrows-left-right": $fa-var-arrows-left-right,
+  "arrows-h": $fa-var-arrows-h,
+  "house-lock": $fa-var-house-lock,
+  "cloud-arrow-down": $fa-var-cloud-arrow-down,
+  "cloud-download": $fa-var-cloud-download,
+  "cloud-download-alt": $fa-var-cloud-download-alt,
+  "children": $fa-var-children,
+  "chalkboard": $fa-var-chalkboard,
+  "blackboard": $fa-var-blackboard,
+  "user-large-slash": $fa-var-user-large-slash,
+  "user-alt-slash": $fa-var-user-alt-slash,
+  "envelope-open": $fa-var-envelope-open,
+  "handshake-simple-slash": $fa-var-handshake-simple-slash,
+  "handshake-alt-slash": $fa-var-handshake-alt-slash,
+  "mattress-pillow": $fa-var-mattress-pillow,
+  "guarani-sign": $fa-var-guarani-sign,
+  "arrows-rotate": $fa-var-arrows-rotate,
+  "refresh": $fa-var-refresh,
+  "sync": $fa-var-sync,
+  "fire-extinguisher": $fa-var-fire-extinguisher,
+  "cruzeiro-sign": $fa-var-cruzeiro-sign,
+  "greater-than-equal": $fa-var-greater-than-equal,
+  "shield-halved": $fa-var-shield-halved,
+  "shield-alt": $fa-var-shield-alt,
+  "book-atlas": $fa-var-book-atlas,
+  "atlas": $fa-var-atlas,
+  "virus": $fa-var-virus,
+  "envelope-circle-check": $fa-var-envelope-circle-check,
+  "layer-group": $fa-var-layer-group,
+  "arrows-to-dot": $fa-var-arrows-to-dot,
+  "archway": $fa-var-archway,
+  "heart-circle-check": $fa-var-heart-circle-check,
+  "house-chimney-crack": $fa-var-house-chimney-crack,
+  "house-damage": $fa-var-house-damage,
+  "file-zipper": $fa-var-file-zipper,
+  "file-archive": $fa-var-file-archive,
+  "square": $fa-var-square,
+  "martini-glass-empty": $fa-var-martini-glass-empty,
+  "glass-martini": $fa-var-glass-martini,
+  "couch": $fa-var-couch,
+  "cedi-sign": $fa-var-cedi-sign,
+  "italic": $fa-var-italic,
+  "church": $fa-var-church,
+  "comments-dollar": $fa-var-comments-dollar,
+  "democrat": $fa-var-democrat,
+  "z": $fa-var-z,
+  "person-skiing": $fa-var-person-skiing,
+  "skiing": $fa-var-skiing,
+  "road-lock": $fa-var-road-lock,
+  "a": $fa-var-a,
+  "temperature-arrow-down": $fa-var-temperature-arrow-down,
+  "temperature-down": $fa-var-temperature-down,
+  "feather-pointed": $fa-var-feather-pointed,
+  "feather-alt": $fa-var-feather-alt,
+  "p": $fa-var-p,
+  "snowflake": $fa-var-snowflake,
+  "newspaper": $fa-var-newspaper,
+  "rectangle-ad": $fa-var-rectangle-ad,
+  "ad": $fa-var-ad,
+  "circle-arrow-right": $fa-var-circle-arrow-right,
+  "arrow-circle-right": $fa-var-arrow-circle-right,
+  "filter-circle-xmark": $fa-var-filter-circle-xmark,
+  "locust": $fa-var-locust,
+  "sort": $fa-var-sort,
+  "unsorted": $fa-var-unsorted,
+  "list-ol": $fa-var-list-ol,
+  "list-1-2": $fa-var-list-1-2,
+  "list-numeric": $fa-var-list-numeric,
+  "person-dress-burst": $fa-var-person-dress-burst,
+  "money-check-dollar": $fa-var-money-check-dollar,
+  "money-check-alt": $fa-var-money-check-alt,
+  "vector-square": $fa-var-vector-square,
+  "bread-slice": $fa-var-bread-slice,
+  "language": $fa-var-language,
+  "face-kiss-wink-heart": $fa-var-face-kiss-wink-heart,
+  "kiss-wink-heart": $fa-var-kiss-wink-heart,
+  "filter": $fa-var-filter,
+  "question": $fa-var-question,
+  "file-signature": $fa-var-file-signature,
+  "up-down-left-right": $fa-var-up-down-left-right,
+  "arrows-alt": $fa-var-arrows-alt,
+  "house-chimney-user": $fa-var-house-chimney-user,
+  "hand-holding-heart": $fa-var-hand-holding-heart,
+  "puzzle-piece": $fa-var-puzzle-piece,
+  "money-check": $fa-var-money-check,
+  "star-half-stroke": $fa-var-star-half-stroke,
+  "star-half-alt": $fa-var-star-half-alt,
+  "code": $fa-var-code,
+  "whiskey-glass": $fa-var-whiskey-glass,
+  "glass-whiskey": $fa-var-glass-whiskey,
+  "building-circle-exclamation": $fa-var-building-circle-exclamation,
+  "magnifying-glass-chart": $fa-var-magnifying-glass-chart,
+  "arrow-up-right-from-square": $fa-var-arrow-up-right-from-square,
+  "external-link": $fa-var-external-link,
+  "cubes-stacked": $fa-var-cubes-stacked,
+  "won-sign": $fa-var-won-sign,
+  "krw": $fa-var-krw,
+  "won": $fa-var-won,
+  "virus-covid": $fa-var-virus-covid,
+  "austral-sign": $fa-var-austral-sign,
+  "f": $fa-var-f,
+  "leaf": $fa-var-leaf,
+  "road": $fa-var-road,
+  "taxi": $fa-var-taxi,
+  "cab": $fa-var-cab,
+  "person-circle-plus": $fa-var-person-circle-plus,
+  "chart-pie": $fa-var-chart-pie,
+  "pie-chart": $fa-var-pie-chart,
+  "bolt-lightning": $fa-var-bolt-lightning,
+  "sack-xmark": $fa-var-sack-xmark,
+  "file-excel": $fa-var-file-excel,
+  "file-contract": $fa-var-file-contract,
+  "fish-fins": $fa-var-fish-fins,
+  "building-flag": $fa-var-building-flag,
+  "face-grin-beam": $fa-var-face-grin-beam,
+  "grin-beam": $fa-var-grin-beam,
+  "object-ungroup": $fa-var-object-ungroup,
+  "poop": $fa-var-poop,
+  "location-pin": $fa-var-location-pin,
+  "map-marker": $fa-var-map-marker,
+  "kaaba": $fa-var-kaaba,
+  "toilet-paper": $fa-var-toilet-paper,
+  "helmet-safety": $fa-var-helmet-safety,
+  "hard-hat": $fa-var-hard-hat,
+  "hat-hard": $fa-var-hat-hard,
+  "eject": $fa-var-eject,
+  "circle-right": $fa-var-circle-right,
+  "arrow-alt-circle-right": $fa-var-arrow-alt-circle-right,
+  "plane-circle-check": $fa-var-plane-circle-check,
+  "face-rolling-eyes": $fa-var-face-rolling-eyes,
+  "meh-rolling-eyes": $fa-var-meh-rolling-eyes,
+  "object-group": $fa-var-object-group,
+  "chart-line": $fa-var-chart-line,
+  "line-chart": $fa-var-line-chart,
+  "mask-ventilator": $fa-var-mask-ventilator,
+  "arrow-right": $fa-var-arrow-right,
+  "signs-post": $fa-var-signs-post,
+  "map-signs": $fa-var-map-signs,
+  "cash-register": $fa-var-cash-register,
+  "person-circle-question": $fa-var-person-circle-question,
+  "h": $fa-var-h,
+  "tarp": $fa-var-tarp,
+  "screwdriver-wrench": $fa-var-screwdriver-wrench,
+  "tools": $fa-var-tools,
+  "arrows-to-eye": $fa-var-arrows-to-eye,
+  "plug-circle-bolt": $fa-var-plug-circle-bolt,
+  "heart": $fa-var-heart,
+  "mars-and-venus": $fa-var-mars-and-venus,
+  "house-user": $fa-var-house-user,
+  "home-user": $fa-var-home-user,
+  "dumpster-fire": $fa-var-dumpster-fire,
+  "house-crack": $fa-var-house-crack,
+  "martini-glass-citrus": $fa-var-martini-glass-citrus,
+  "cocktail": $fa-var-cocktail,
+  "face-surprise": $fa-var-face-surprise,
+  "surprise": $fa-var-surprise,
+  "bottle-water": $fa-var-bottle-water,
+  "circle-pause": $fa-var-circle-pause,
+  "pause-circle": $fa-var-pause-circle,
+  "toilet-paper-slash": $fa-var-toilet-paper-slash,
+  "apple-whole": $fa-var-apple-whole,
+  "apple-alt": $fa-var-apple-alt,
+  "kitchen-set": $fa-var-kitchen-set,
+  "r": $fa-var-r,
+  "temperature-quarter": $fa-var-temperature-quarter,
+  "temperature-1": $fa-var-temperature-1,
+  "thermometer-1": $fa-var-thermometer-1,
+  "thermometer-quarter": $fa-var-thermometer-quarter,
+  "cube": $fa-var-cube,
+  "bitcoin-sign": $fa-var-bitcoin-sign,
+  "shield-dog": $fa-var-shield-dog,
+  "solar-panel": $fa-var-solar-panel,
+  "lock-open": $fa-var-lock-open,
+  "elevator": $fa-var-elevator,
+  "money-bill-transfer": $fa-var-money-bill-transfer,
+  "money-bill-trend-up": $fa-var-money-bill-trend-up,
+  "house-flood-water-circle-arrow-right": $fa-var-house-flood-water-circle-arrow-right,
+  "square-poll-horizontal": $fa-var-square-poll-horizontal,
+  "poll-h": $fa-var-poll-h,
+  "circle": $fa-var-circle,
+  "backward-fast": $fa-var-backward-fast,
+  "fast-backward": $fa-var-fast-backward,
+  "recycle": $fa-var-recycle,
+  "user-astronaut": $fa-var-user-astronaut,
+  "plane-slash": $fa-var-plane-slash,
+  "trademark": $fa-var-trademark,
+  "basketball": $fa-var-basketball,
+  "basketball-ball": $fa-var-basketball-ball,
+  "satellite-dish": $fa-var-satellite-dish,
+  "circle-up": $fa-var-circle-up,
+  "arrow-alt-circle-up": $fa-var-arrow-alt-circle-up,
+  "mobile-screen-button": $fa-var-mobile-screen-button,
+  "mobile-alt": $fa-var-mobile-alt,
+  "volume-high": $fa-var-volume-high,
+  "volume-up": $fa-var-volume-up,
+  "users-rays": $fa-var-users-rays,
+  "wallet": $fa-var-wallet,
+  "clipboard-check": $fa-var-clipboard-check,
+  "file-audio": $fa-var-file-audio,
+  "burger": $fa-var-burger,
+  "hamburger": $fa-var-hamburger,
+  "wrench": $fa-var-wrench,
+  "bugs": $fa-var-bugs,
+  "rupee-sign": $fa-var-rupee-sign,
+  "rupee": $fa-var-rupee,
+  "file-image": $fa-var-file-image,
+  "circle-question": $fa-var-circle-question,
+  "question-circle": $fa-var-question-circle,
+  "plane-departure": $fa-var-plane-departure,
+  "handshake-slash": $fa-var-handshake-slash,
+  "book-bookmark": $fa-var-book-bookmark,
+  "code-branch": $fa-var-code-branch,
+  "hat-cowboy": $fa-var-hat-cowboy,
+  "bridge": $fa-var-bridge,
+  "phone-flip": $fa-var-phone-flip,
+  "phone-alt": $fa-var-phone-alt,
+  "truck-front": $fa-var-truck-front,
+  "cat": $fa-var-cat,
+  "anchor-circle-exclamation": $fa-var-anchor-circle-exclamation,
+  "truck-field": $fa-var-truck-field,
+  "route": $fa-var-route,
+  "clipboard-question": $fa-var-clipboard-question,
+  "panorama": $fa-var-panorama,
+  "comment-medical": $fa-var-comment-medical,
+  "teeth-open": $fa-var-teeth-open,
+  "file-circle-minus": $fa-var-file-circle-minus,
+  "tags": $fa-var-tags,
+  "wine-glass": $fa-var-wine-glass,
+  "forward-fast": $fa-var-forward-fast,
+  "fast-forward": $fa-var-fast-forward,
+  "face-meh-blank": $fa-var-face-meh-blank,
+  "meh-blank": $fa-var-meh-blank,
+  "square-parking": $fa-var-square-parking,
+  "parking": $fa-var-parking,
+  "house-signal": $fa-var-house-signal,
+  "bars-progress": $fa-var-bars-progress,
+  "tasks-alt": $fa-var-tasks-alt,
+  "faucet-drip": $fa-var-faucet-drip,
+  "cart-flatbed": $fa-var-cart-flatbed,
+  "dolly-flatbed": $fa-var-dolly-flatbed,
+  "ban-smoking": $fa-var-ban-smoking,
+  "smoking-ban": $fa-var-smoking-ban,
+  "terminal": $fa-var-terminal,
+  "mobile-button": $fa-var-mobile-button,
+  "house-medical-flag": $fa-var-house-medical-flag,
+  "basket-shopping": $fa-var-basket-shopping,
+  "shopping-basket": $fa-var-shopping-basket,
+  "tape": $fa-var-tape,
+  "bus-simple": $fa-var-bus-simple,
+  "bus-alt": $fa-var-bus-alt,
+  "eye": $fa-var-eye,
+  "face-sad-cry": $fa-var-face-sad-cry,
+  "sad-cry": $fa-var-sad-cry,
+  "audio-description": $fa-var-audio-description,
+  "person-military-to-person": $fa-var-person-military-to-person,
+  "file-shield": $fa-var-file-shield,
+  "user-slash": $fa-var-user-slash,
+  "pen": $fa-var-pen,
+  "tower-observation": $fa-var-tower-observation,
+  "file-code": $fa-var-file-code,
+  "signal": $fa-var-signal,
+  "signal-5": $fa-var-signal-5,
+  "signal-perfect": $fa-var-signal-perfect,
+  "bus": $fa-var-bus,
+  "heart-circle-xmark": $fa-var-heart-circle-xmark,
+  "house-chimney": $fa-var-house-chimney,
+  "home-lg": $fa-var-home-lg,
+  "window-maximize": $fa-var-window-maximize,
+  "face-frown": $fa-var-face-frown,
+  "frown": $fa-var-frown,
+  "prescription": $fa-var-prescription,
+  "shop": $fa-var-shop,
+  "store-alt": $fa-var-store-alt,
+  "floppy-disk": $fa-var-floppy-disk,
+  "save": $fa-var-save,
+  "vihara": $fa-var-vihara,
+  "scale-unbalanced": $fa-var-scale-unbalanced,
+  "balance-scale-left": $fa-var-balance-scale-left,
+  "sort-up": $fa-var-sort-up,
+  "sort-asc": $fa-var-sort-asc,
+  "comment-dots": $fa-var-comment-dots,
+  "commenting": $fa-var-commenting,
+  "plant-wilt": $fa-var-plant-wilt,
+  "diamond": $fa-var-diamond,
+  "face-grin-squint": $fa-var-face-grin-squint,
+  "grin-squint": $fa-var-grin-squint,
+  "hand-holding-dollar": $fa-var-hand-holding-dollar,
+  "hand-holding-usd": $fa-var-hand-holding-usd,
+  "bacterium": $fa-var-bacterium,
+  "hand-pointer": $fa-var-hand-pointer,
+  "drum-steelpan": $fa-var-drum-steelpan,
+  "hand-scissors": $fa-var-hand-scissors,
+  "hands-praying": $fa-var-hands-praying,
+  "praying-hands": $fa-var-praying-hands,
+  "arrow-rotate-right": $fa-var-arrow-rotate-right,
+  "arrow-right-rotate": $fa-var-arrow-right-rotate,
+  "arrow-rotate-forward": $fa-var-arrow-rotate-forward,
+  "redo": $fa-var-redo,
+  "biohazard": $fa-var-biohazard,
+  "location-crosshairs": $fa-var-location-crosshairs,
+  "location": $fa-var-location,
+  "mars-double": $fa-var-mars-double,
+  "child-dress": $fa-var-child-dress,
+  "users-between-lines": $fa-var-users-between-lines,
+  "lungs-virus": $fa-var-lungs-virus,
+  "face-grin-tears": $fa-var-face-grin-tears,
+  "grin-tears": $fa-var-grin-tears,
+  "phone": $fa-var-phone,
+  "calendar-xmark": $fa-var-calendar-xmark,
+  "calendar-times": $fa-var-calendar-times,
+  "child-reaching": $fa-var-child-reaching,
+  "head-side-virus": $fa-var-head-side-virus,
+  "user-gear": $fa-var-user-gear,
+  "user-cog": $fa-var-user-cog,
+  "arrow-up-1-9": $fa-var-arrow-up-1-9,
+  "sort-numeric-up": $fa-var-sort-numeric-up,
+  "door-closed": $fa-var-door-closed,
+  "shield-virus": $fa-var-shield-virus,
+  "dice-six": $fa-var-dice-six,
+  "mosquito-net": $fa-var-mosquito-net,
+  "bridge-water": $fa-var-bridge-water,
+  "person-booth": $fa-var-person-booth,
+  "text-width": $fa-var-text-width,
+  "hat-wizard": $fa-var-hat-wizard,
+  "pen-fancy": $fa-var-pen-fancy,
+  "person-digging": $fa-var-person-digging,
+  "digging": $fa-var-digging,
+  "trash": $fa-var-trash,
+  "gauge-simple": $fa-var-gauge-simple,
+  "gauge-simple-med": $fa-var-gauge-simple-med,
+  "tachometer-average": $fa-var-tachometer-average,
+  "book-medical": $fa-var-book-medical,
+  "poo": $fa-var-poo,
+  "quote-right": $fa-var-quote-right,
+  "quote-right-alt": $fa-var-quote-right-alt,
+  "shirt": $fa-var-shirt,
+  "t-shirt": $fa-var-t-shirt,
+  "tshirt": $fa-var-tshirt,
+  "cubes": $fa-var-cubes,
+  "divide": $fa-var-divide,
+  "tenge-sign": $fa-var-tenge-sign,
+  "tenge": $fa-var-tenge,
+  "headphones": $fa-var-headphones,
+  "hands-holding": $fa-var-hands-holding,
+  "hands-clapping": $fa-var-hands-clapping,
+  "republican": $fa-var-republican,
+  "arrow-left": $fa-var-arrow-left,
+  "person-circle-xmark": $fa-var-person-circle-xmark,
+  "ruler": $fa-var-ruler,
+  "align-left": $fa-var-align-left,
+  "dice-d6": $fa-var-dice-d6,
+  "restroom": $fa-var-restroom,
+  "j": $fa-var-j,
+  "users-viewfinder": $fa-var-users-viewfinder,
+  "file-video": $fa-var-file-video,
+  "up-right-from-square": $fa-var-up-right-from-square,
+  "external-link-alt": $fa-var-external-link-alt,
+  "table-cells": $fa-var-table-cells,
+  "th": $fa-var-th,
+  "file-pdf": $fa-var-file-pdf,
+  "book-bible": $fa-var-book-bible,
+  "bible": $fa-var-bible,
+  "o": $fa-var-o,
+  "suitcase-medical": $fa-var-suitcase-medical,
+  "medkit": $fa-var-medkit,
+  "user-secret": $fa-var-user-secret,
+  "otter": $fa-var-otter,
+  "person-dress": $fa-var-person-dress,
+  "female": $fa-var-female,
+  "comment-dollar": $fa-var-comment-dollar,
+  "business-time": $fa-var-business-time,
+  "briefcase-clock": $fa-var-briefcase-clock,
+  "table-cells-large": $fa-var-table-cells-large,
+  "th-large": $fa-var-th-large,
+  "book-tanakh": $fa-var-book-tanakh,
+  "tanakh": $fa-var-tanakh,
+  "phone-volume": $fa-var-phone-volume,
+  "volume-control-phone": $fa-var-volume-control-phone,
+  "hat-cowboy-side": $fa-var-hat-cowboy-side,
+  "clipboard-user": $fa-var-clipboard-user,
+  "child": $fa-var-child,
+  "lira-sign": $fa-var-lira-sign,
+  "satellite": $fa-var-satellite,
+  "plane-lock": $fa-var-plane-lock,
+  "tag": $fa-var-tag,
+  "comment": $fa-var-comment,
+  "cake-candles": $fa-var-cake-candles,
+  "birthday-cake": $fa-var-birthday-cake,
+  "cake": $fa-var-cake,
+  "envelope": $fa-var-envelope,
+  "angles-up": $fa-var-angles-up,
+  "angle-double-up": $fa-var-angle-double-up,
+  "paperclip": $fa-var-paperclip,
+  "arrow-right-to-city": $fa-var-arrow-right-to-city,
+  "ribbon": $fa-var-ribbon,
+  "lungs": $fa-var-lungs,
+  "arrow-up-9-1": $fa-var-arrow-up-9-1,
+  "sort-numeric-up-alt": $fa-var-sort-numeric-up-alt,
+  "litecoin-sign": $fa-var-litecoin-sign,
+  "border-none": $fa-var-border-none,
+  "circle-nodes": $fa-var-circle-nodes,
+  "parachute-box": $fa-var-parachute-box,
+  "indent": $fa-var-indent,
+  "truck-field-un": $fa-var-truck-field-un,
+  "hourglass": $fa-var-hourglass,
+  "hourglass-empty": $fa-var-hourglass-empty,
+  "mountain": $fa-var-mountain,
+  "user-doctor": $fa-var-user-doctor,
+  "user-md": $fa-var-user-md,
+  "circle-info": $fa-var-circle-info,
+  "info-circle": $fa-var-info-circle,
+  "cloud-meatball": $fa-var-cloud-meatball,
+  "camera": $fa-var-camera,
+  "camera-alt": $fa-var-camera-alt,
+  "square-virus": $fa-var-square-virus,
+  "meteor": $fa-var-meteor,
+  "car-on": $fa-var-car-on,
+  "sleigh": $fa-var-sleigh,
+  "arrow-down-1-9": $fa-var-arrow-down-1-9,
+  "sort-numeric-asc": $fa-var-sort-numeric-asc,
+  "sort-numeric-down": $fa-var-sort-numeric-down,
+  "hand-holding-droplet": $fa-var-hand-holding-droplet,
+  "hand-holding-water": $fa-var-hand-holding-water,
+  "water": $fa-var-water,
+  "calendar-check": $fa-var-calendar-check,
+  "braille": $fa-var-braille,
+  "prescription-bottle-medical": $fa-var-prescription-bottle-medical,
+  "prescription-bottle-alt": $fa-var-prescription-bottle-alt,
+  "landmark": $fa-var-landmark,
+  "truck": $fa-var-truck,
+  "crosshairs": $fa-var-crosshairs,
+  "person-cane": $fa-var-person-cane,
+  "tent": $fa-var-tent,
+  "vest-patches": $fa-var-vest-patches,
+  "check-double": $fa-var-check-double,
+  "arrow-down-a-z": $fa-var-arrow-down-a-z,
+  "sort-alpha-asc": $fa-var-sort-alpha-asc,
+  "sort-alpha-down": $fa-var-sort-alpha-down,
+  "money-bill-wheat": $fa-var-money-bill-wheat,
+  "cookie": $fa-var-cookie,
+  "arrow-rotate-left": $fa-var-arrow-rotate-left,
+  "arrow-left-rotate": $fa-var-arrow-left-rotate,
+  "arrow-rotate-back": $fa-var-arrow-rotate-back,
+  "arrow-rotate-backward": $fa-var-arrow-rotate-backward,
+  "undo": $fa-var-undo,
+  "hard-drive": $fa-var-hard-drive,
+  "hdd": $fa-var-hdd,
+  "face-grin-squint-tears": $fa-var-face-grin-squint-tears,
+  "grin-squint-tears": $fa-var-grin-squint-tears,
+  "dumbbell": $fa-var-dumbbell,
+  "rectangle-list": $fa-var-rectangle-list,
+  "list-alt": $fa-var-list-alt,
+  "tarp-droplet": $fa-var-tarp-droplet,
+  "house-medical-circle-check": $fa-var-house-medical-circle-check,
+  "person-skiing-nordic": $fa-var-person-skiing-nordic,
+  "skiing-nordic": $fa-var-skiing-nordic,
+  "calendar-plus": $fa-var-calendar-plus,
+  "plane-arrival": $fa-var-plane-arrival,
+  "circle-left": $fa-var-circle-left,
+  "arrow-alt-circle-left": $fa-var-arrow-alt-circle-left,
+  "train-subway": $fa-var-train-subway,
+  "subway": $fa-var-subway,
+  "chart-gantt": $fa-var-chart-gantt,
+  "indian-rupee-sign": $fa-var-indian-rupee-sign,
+  "indian-rupee": $fa-var-indian-rupee,
+  "inr": $fa-var-inr,
+  "crop-simple": $fa-var-crop-simple,
+  "crop-alt": $fa-var-crop-alt,
+  "money-bill-1": $fa-var-money-bill-1,
+  "money-bill-alt": $fa-var-money-bill-alt,
+  "left-long": $fa-var-left-long,
+  "long-arrow-alt-left": $fa-var-long-arrow-alt-left,
+  "dna": $fa-var-dna,
+  "virus-slash": $fa-var-virus-slash,
+  "minus": $fa-var-minus,
+  "subtract": $fa-var-subtract,
+  "child-rifle": $fa-var-child-rifle,
+  "chess": $fa-var-chess,
+  "arrow-left-long": $fa-var-arrow-left-long,
+  "long-arrow-left": $fa-var-long-arrow-left,
+  "plug-circle-check": $fa-var-plug-circle-check,
+  "street-view": $fa-var-street-view,
+  "franc-sign": $fa-var-franc-sign,
+  "volume-off": $fa-var-volume-off,
+  "hands-asl-interpreting": $fa-var-hands-asl-interpreting,
+  "american-sign-language-interpreting": $fa-var-american-sign-language-interpreting,
+  "asl-interpreting": $fa-var-asl-interpreting,
+  "hands-american-sign-language-interpreting": $fa-var-hands-american-sign-language-interpreting,
+  "gear": $fa-var-gear,
+  "cog": $fa-var-cog,
+  "droplet-slash": $fa-var-droplet-slash,
+  "tint-slash": $fa-var-tint-slash,
+  "mosque": $fa-var-mosque,
+  "mosquito": $fa-var-mosquito,
+  "star-of-david": $fa-var-star-of-david,
+  "person-military-rifle": $fa-var-person-military-rifle,
+  "cart-shopping": $fa-var-cart-shopping,
+  "shopping-cart": $fa-var-shopping-cart,
+  "vials": $fa-var-vials,
+  "plug-circle-plus": $fa-var-plug-circle-plus,
+  "place-of-worship": $fa-var-place-of-worship,
+  "grip-vertical": $fa-var-grip-vertical,
+  "arrow-turn-up": $fa-var-arrow-turn-up,
+  "level-up": $fa-var-level-up,
+  "u": $fa-var-u,
+  "square-root-variable": $fa-var-square-root-variable,
+  "square-root-alt": $fa-var-square-root-alt,
+  "clock": $fa-var-clock,
+  "clock-four": $fa-var-clock-four,
+  "backward-step": $fa-var-backward-step,
+  "step-backward": $fa-var-step-backward,
+  "pallet": $fa-var-pallet,
+  "faucet": $fa-var-faucet,
+  "baseball-bat-ball": $fa-var-baseball-bat-ball,
+  "s": $fa-var-s,
+  "timeline": $fa-var-timeline,
+  "keyboard": $fa-var-keyboard,
+  "caret-down": $fa-var-caret-down,
+  "house-chimney-medical": $fa-var-house-chimney-medical,
+  "clinic-medical": $fa-var-clinic-medical,
+  "temperature-three-quarters": $fa-var-temperature-three-quarters,
+  "temperature-3": $fa-var-temperature-3,
+  "thermometer-3": $fa-var-thermometer-3,
+  "thermometer-three-quarters": $fa-var-thermometer-three-quarters,
+  "mobile-screen": $fa-var-mobile-screen,
+  "mobile-android-alt": $fa-var-mobile-android-alt,
+  "plane-up": $fa-var-plane-up,
+  "piggy-bank": $fa-var-piggy-bank,
+  "battery-half": $fa-var-battery-half,
+  "battery-3": $fa-var-battery-3,
+  "mountain-city": $fa-var-mountain-city,
+  "coins": $fa-var-coins,
+  "khanda": $fa-var-khanda,
+  "sliders": $fa-var-sliders,
+  "sliders-h": $fa-var-sliders-h,
+  "folder-tree": $fa-var-folder-tree,
+  "network-wired": $fa-var-network-wired,
+  "map-pin": $fa-var-map-pin,
+  "hamsa": $fa-var-hamsa,
+  "cent-sign": $fa-var-cent-sign,
+  "flask": $fa-var-flask,
+  "person-pregnant": $fa-var-person-pregnant,
+  "wand-sparkles": $fa-var-wand-sparkles,
+  "ellipsis-vertical": $fa-var-ellipsis-vertical,
+  "ellipsis-v": $fa-var-ellipsis-v,
+  "ticket": $fa-var-ticket,
+  "power-off": $fa-var-power-off,
+  "right-long": $fa-var-right-long,
+  "long-arrow-alt-right": $fa-var-long-arrow-alt-right,
+  "flag-usa": $fa-var-flag-usa,
+  "laptop-file": $fa-var-laptop-file,
+  "tty": $fa-var-tty,
+  "teletype": $fa-var-teletype,
+  "diagram-next": $fa-var-diagram-next,
+  "person-rifle": $fa-var-person-rifle,
+  "house-medical-circle-exclamation": $fa-var-house-medical-circle-exclamation,
+  "closed-captioning": $fa-var-closed-captioning,
+  "person-hiking": $fa-var-person-hiking,
+  "hiking": $fa-var-hiking,
+  "venus-double": $fa-var-venus-double,
+  "images": $fa-var-images,
+  "calculator": $fa-var-calculator,
+  "people-pulling": $fa-var-people-pulling,
+  "n": $fa-var-n,
+  "cable-car": $fa-var-cable-car,
+  "tram": $fa-var-tram,
+  "cloud-rain": $fa-var-cloud-rain,
+  "building-circle-xmark": $fa-var-building-circle-xmark,
+  "ship": $fa-var-ship,
+  "arrows-down-to-line": $fa-var-arrows-down-to-line,
+  "download": $fa-var-download,
+  "face-grin": $fa-var-face-grin,
+  "grin": $fa-var-grin,
+  "delete-left": $fa-var-delete-left,
+  "backspace": $fa-var-backspace,
+  "eye-dropper": $fa-var-eye-dropper,
+  "eye-dropper-empty": $fa-var-eye-dropper-empty,
+  "eyedropper": $fa-var-eyedropper,
+  "file-circle-check": $fa-var-file-circle-check,
+  "forward": $fa-var-forward,
+  "mobile": $fa-var-mobile,
+  "mobile-android": $fa-var-mobile-android,
+  "mobile-phone": $fa-var-mobile-phone,
+  "face-meh": $fa-var-face-meh,
+  "meh": $fa-var-meh,
+  "align-center": $fa-var-align-center,
+  "book-skull": $fa-var-book-skull,
+  "book-dead": $fa-var-book-dead,
+  "id-card": $fa-var-id-card,
+  "drivers-license": $fa-var-drivers-license,
+  "outdent": $fa-var-outdent,
+  "dedent": $fa-var-dedent,
+  "heart-circle-exclamation": $fa-var-heart-circle-exclamation,
+  "house": $fa-var-house,
+  "home": $fa-var-home,
+  "home-alt": $fa-var-home-alt,
+  "home-lg-alt": $fa-var-home-lg-alt,
+  "calendar-week": $fa-var-calendar-week,
+  "laptop-medical": $fa-var-laptop-medical,
+  "b": $fa-var-b,
+  "file-medical": $fa-var-file-medical,
+  "dice-one": $fa-var-dice-one,
+  "kiwi-bird": $fa-var-kiwi-bird,
+  "arrow-right-arrow-left": $fa-var-arrow-right-arrow-left,
+  "exchange": $fa-var-exchange,
+  "rotate-right": $fa-var-rotate-right,
+  "redo-alt": $fa-var-redo-alt,
+  "rotate-forward": $fa-var-rotate-forward,
+  "utensils": $fa-var-utensils,
+  "cutlery": $fa-var-cutlery,
+  "arrow-up-wide-short": $fa-var-arrow-up-wide-short,
+  "sort-amount-up": $fa-var-sort-amount-up,
+  "mill-sign": $fa-var-mill-sign,
+  "bowl-rice": $fa-var-bowl-rice,
+  "skull": $fa-var-skull,
+  "tower-broadcast": $fa-var-tower-broadcast,
+  "broadcast-tower": $fa-var-broadcast-tower,
+  "truck-pickup": $fa-var-truck-pickup,
+  "up-long": $fa-var-up-long,
+  "long-arrow-alt-up": $fa-var-long-arrow-alt-up,
+  "stop": $fa-var-stop,
+  "code-merge": $fa-var-code-merge,
+  "upload": $fa-var-upload,
+  "hurricane": $fa-var-hurricane,
+  "mound": $fa-var-mound,
+  "toilet-portable": $fa-var-toilet-portable,
+  "compact-disc": $fa-var-compact-disc,
+  "file-arrow-down": $fa-var-file-arrow-down,
+  "file-download": $fa-var-file-download,
+  "caravan": $fa-var-caravan,
+  "shield-cat": $fa-var-shield-cat,
+  "bolt": $fa-var-bolt,
+  "zap": $fa-var-zap,
+  "glass-water": $fa-var-glass-water,
+  "oil-well": $fa-var-oil-well,
+  "vault": $fa-var-vault,
+  "mars": $fa-var-mars,
+  "toilet": $fa-var-toilet,
+  "plane-circle-xmark": $fa-var-plane-circle-xmark,
+  "yen-sign": $fa-var-yen-sign,
+  "cny": $fa-var-cny,
+  "jpy": $fa-var-jpy,
+  "rmb": $fa-var-rmb,
+  "yen": $fa-var-yen,
+  "ruble-sign": $fa-var-ruble-sign,
+  "rouble": $fa-var-rouble,
+  "rub": $fa-var-rub,
+  "ruble": $fa-var-ruble,
+  "sun": $fa-var-sun,
+  "guitar": $fa-var-guitar,
+  "face-laugh-wink": $fa-var-face-laugh-wink,
+  "laugh-wink": $fa-var-laugh-wink,
+  "horse-head": $fa-var-horse-head,
+  "bore-hole": $fa-var-bore-hole,
+  "industry": $fa-var-industry,
+  "circle-down": $fa-var-circle-down,
+  "arrow-alt-circle-down": $fa-var-arrow-alt-circle-down,
+  "arrows-turn-to-dots": $fa-var-arrows-turn-to-dots,
+  "florin-sign": $fa-var-florin-sign,
+  "arrow-down-short-wide": $fa-var-arrow-down-short-wide,
+  "sort-amount-desc": $fa-var-sort-amount-desc,
+  "sort-amount-down-alt": $fa-var-sort-amount-down-alt,
+  "less-than": $fa-var-less-than,
+  "angle-down": $fa-var-angle-down,
+  "car-tunnel": $fa-var-car-tunnel,
+  "head-side-cough": $fa-var-head-side-cough,
+  "grip-lines": $fa-var-grip-lines,
+  "thumbs-down": $fa-var-thumbs-down,
+  "user-lock": $fa-var-user-lock,
+  "arrow-right-long": $fa-var-arrow-right-long,
+  "long-arrow-right": $fa-var-long-arrow-right,
+  "anchor-circle-xmark": $fa-var-anchor-circle-xmark,
+  "ellipsis": $fa-var-ellipsis,
+  "ellipsis-h": $fa-var-ellipsis-h,
+  "chess-pawn": $fa-var-chess-pawn,
+  "kit-medical": $fa-var-kit-medical,
+  "first-aid": $fa-var-first-aid,
+  "person-through-window": $fa-var-person-through-window,
+  "toolbox": $fa-var-toolbox,
+  "hands-holding-circle": $fa-var-hands-holding-circle,
+  "bug": $fa-var-bug,
+  "credit-card": $fa-var-credit-card,
+  "credit-card-alt": $fa-var-credit-card-alt,
+  "car": $fa-var-car,
+  "automobile": $fa-var-automobile,
+  "hand-holding-hand": $fa-var-hand-holding-hand,
+  "book-open-reader": $fa-var-book-open-reader,
+  "book-reader": $fa-var-book-reader,
+  "mountain-sun": $fa-var-mountain-sun,
+  "arrows-left-right-to-line": $fa-var-arrows-left-right-to-line,
+  "dice-d20": $fa-var-dice-d20,
+  "truck-droplet": $fa-var-truck-droplet,
+  "file-circle-xmark": $fa-var-file-circle-xmark,
+  "temperature-arrow-up": $fa-var-temperature-arrow-up,
+  "temperature-up": $fa-var-temperature-up,
+  "medal": $fa-var-medal,
+  "bed": $fa-var-bed,
+  "square-h": $fa-var-square-h,
+  "h-square": $fa-var-h-square,
+  "podcast": $fa-var-podcast,
+  "temperature-full": $fa-var-temperature-full,
+  "temperature-4": $fa-var-temperature-4,
+  "thermometer-4": $fa-var-thermometer-4,
+  "thermometer-full": $fa-var-thermometer-full,
+  "bell": $fa-var-bell,
+  "superscript": $fa-var-superscript,
+  "plug-circle-xmark": $fa-var-plug-circle-xmark,
+  "star-of-life": $fa-var-star-of-life,
+  "phone-slash": $fa-var-phone-slash,
+  "paint-roller": $fa-var-paint-roller,
+  "handshake-angle": $fa-var-handshake-angle,
+  "hands-helping": $fa-var-hands-helping,
+  "location-dot": $fa-var-location-dot,
+  "map-marker-alt": $fa-var-map-marker-alt,
+  "file": $fa-var-file,
+  "greater-than": $fa-var-greater-than,
+  "person-swimming": $fa-var-person-swimming,
+  "swimmer": $fa-var-swimmer,
+  "arrow-down": $fa-var-arrow-down,
+  "droplet": $fa-var-droplet,
+  "tint": $fa-var-tint,
+  "eraser": $fa-var-eraser,
+  "earth-americas": $fa-var-earth-americas,
+  "earth": $fa-var-earth,
+  "earth-america": $fa-var-earth-america,
+  "globe-americas": $fa-var-globe-americas,
+  "person-burst": $fa-var-person-burst,
+  "dove": $fa-var-dove,
+  "battery-empty": $fa-var-battery-empty,
+  "battery-0": $fa-var-battery-0,
+  "socks": $fa-var-socks,
+  "inbox": $fa-var-inbox,
+  "section": $fa-var-section,
+  "gauge-high": $fa-var-gauge-high,
+  "tachometer-alt": $fa-var-tachometer-alt,
+  "tachometer-alt-fast": $fa-var-tachometer-alt-fast,
+  "envelope-open-text": $fa-var-envelope-open-text,
+  "hospital": $fa-var-hospital,
+  "hospital-alt": $fa-var-hospital-alt,
+  "hospital-wide": $fa-var-hospital-wide,
+  "wine-bottle": $fa-var-wine-bottle,
+  "chess-rook": $fa-var-chess-rook,
+  "bars-staggered": $fa-var-bars-staggered,
+  "reorder": $fa-var-reorder,
+  "stream": $fa-var-stream,
+  "dharmachakra": $fa-var-dharmachakra,
+  "hotdog": $fa-var-hotdog,
+  "person-walking-with-cane": $fa-var-person-walking-with-cane,
+  "blind": $fa-var-blind,
+  "drum": $fa-var-drum,
+  "ice-cream": $fa-var-ice-cream,
+  "heart-circle-bolt": $fa-var-heart-circle-bolt,
+  "fax": $fa-var-fax,
+  "paragraph": $fa-var-paragraph,
+  "check-to-slot": $fa-var-check-to-slot,
+  "vote-yea": $fa-var-vote-yea,
+  "star-half": $fa-var-star-half,
+  "boxes-stacked": $fa-var-boxes-stacked,
+  "boxes": $fa-var-boxes,
+  "boxes-alt": $fa-var-boxes-alt,
+  "link": $fa-var-link,
+  "chain": $fa-var-chain,
+  "ear-listen": $fa-var-ear-listen,
+  "assistive-listening-systems": $fa-var-assistive-listening-systems,
+  "tree-city": $fa-var-tree-city,
+  "play": $fa-var-play,
+  "font": $fa-var-font,
+  "rupiah-sign": $fa-var-rupiah-sign,
+  "magnifying-glass": $fa-var-magnifying-glass,
+  "search": $fa-var-search,
+  "table-tennis-paddle-ball": $fa-var-table-tennis-paddle-ball,
+  "ping-pong-paddle-ball": $fa-var-ping-pong-paddle-ball,
+  "table-tennis": $fa-var-table-tennis,
+  "person-dots-from-line": $fa-var-person-dots-from-line,
+  "diagnoses": $fa-var-diagnoses,
+  "trash-can-arrow-up": $fa-var-trash-can-arrow-up,
+  "trash-restore-alt": $fa-var-trash-restore-alt,
+  "naira-sign": $fa-var-naira-sign,
+  "cart-arrow-down": $fa-var-cart-arrow-down,
+  "walkie-talkie": $fa-var-walkie-talkie,
+  "file-pen": $fa-var-file-pen,
+  "file-edit": $fa-var-file-edit,
+  "receipt": $fa-var-receipt,
+  "square-pen": $fa-var-square-pen,
+  "pen-square": $fa-var-pen-square,
+  "pencil-square": $fa-var-pencil-square,
+  "suitcase-rolling": $fa-var-suitcase-rolling,
+  "person-circle-exclamation": $fa-var-person-circle-exclamation,
+  "chevron-down": $fa-var-chevron-down,
+  "battery-full": $fa-var-battery-full,
+  "battery": $fa-var-battery,
+  "battery-5": $fa-var-battery-5,
+  "skull-crossbones": $fa-var-skull-crossbones,
+  "code-compare": $fa-var-code-compare,
+  "list-ul": $fa-var-list-ul,
+  "list-dots": $fa-var-list-dots,
+  "school-lock": $fa-var-school-lock,
+  "tower-cell": $fa-var-tower-cell,
+  "down-long": $fa-var-down-long,
+  "long-arrow-alt-down": $fa-var-long-arrow-alt-down,
+  "ranking-star": $fa-var-ranking-star,
+  "chess-king": $fa-var-chess-king,
+  "person-harassing": $fa-var-person-harassing,
+  "brazilian-real-sign": $fa-var-brazilian-real-sign,
+  "landmark-dome": $fa-var-landmark-dome,
+  "landmark-alt": $fa-var-landmark-alt,
+  "arrow-up": $fa-var-arrow-up,
+  "tv": $fa-var-tv,
+  "television": $fa-var-television,
+  "tv-alt": $fa-var-tv-alt,
+  "shrimp": $fa-var-shrimp,
+  "list-check": $fa-var-list-check,
+  "tasks": $fa-var-tasks,
+  "jug-detergent": $fa-var-jug-detergent,
+  "circle-user": $fa-var-circle-user,
+  "user-circle": $fa-var-user-circle,
+  "user-shield": $fa-var-user-shield,
+  "wind": $fa-var-wind,
+  "car-burst": $fa-var-car-burst,
+  "car-crash": $fa-var-car-crash,
+  "y": $fa-var-y,
+  "person-snowboarding": $fa-var-person-snowboarding,
+  "snowboarding": $fa-var-snowboarding,
+  "truck-fast": $fa-var-truck-fast,
+  "shipping-fast": $fa-var-shipping-fast,
+  "fish": $fa-var-fish,
+  "user-graduate": $fa-var-user-graduate,
+  "circle-half-stroke": $fa-var-circle-half-stroke,
+  "adjust": $fa-var-adjust,
+  "clapperboard": $fa-var-clapperboard,
+  "circle-radiation": $fa-var-circle-radiation,
+  "radiation-alt": $fa-var-radiation-alt,
+  "baseball": $fa-var-baseball,
+  "baseball-ball": $fa-var-baseball-ball,
+  "jet-fighter-up": $fa-var-jet-fighter-up,
+  "diagram-project": $fa-var-diagram-project,
+  "project-diagram": $fa-var-project-diagram,
+  "copy": $fa-var-copy,
+  "volume-xmark": $fa-var-volume-xmark,
+  "volume-mute": $fa-var-volume-mute,
+  "volume-times": $fa-var-volume-times,
+  "hand-sparkles": $fa-var-hand-sparkles,
+  "grip": $fa-var-grip,
+  "grip-horizontal": $fa-var-grip-horizontal,
+  "share-from-square": $fa-var-share-from-square,
+  "share-square": $fa-var-share-square,
+  "gun": $fa-var-gun,
+  "square-phone": $fa-var-square-phone,
+  "phone-square": $fa-var-phone-square,
+  "plus": $fa-var-plus,
+  "add": $fa-var-add,
+  "expand": $fa-var-expand,
+  "computer": $fa-var-computer,
+  "xmark": $fa-var-xmark,
+  "close": $fa-var-close,
+  "multiply": $fa-var-multiply,
+  "remove": $fa-var-remove,
+  "times": $fa-var-times,
+  "arrows-up-down-left-right": $fa-var-arrows-up-down-left-right,
+  "arrows": $fa-var-arrows,
+  "chalkboard-user": $fa-var-chalkboard-user,
+  "chalkboard-teacher": $fa-var-chalkboard-teacher,
+  "peso-sign": $fa-var-peso-sign,
+  "building-shield": $fa-var-building-shield,
+  "baby": $fa-var-baby,
+  "users-line": $fa-var-users-line,
+  "quote-left": $fa-var-quote-left,
+  "quote-left-alt": $fa-var-quote-left-alt,
+  "tractor": $fa-var-tractor,
+  "trash-arrow-up": $fa-var-trash-arrow-up,
+  "trash-restore": $fa-var-trash-restore,
+  "arrow-down-up-lock": $fa-var-arrow-down-up-lock,
+  "lines-leaning": $fa-var-lines-leaning,
+  "ruler-combined": $fa-var-ruler-combined,
+  "copyright": $fa-var-copyright,
+  "equals": $fa-var-equals,
+  "blender": $fa-var-blender,
+  "teeth": $fa-var-teeth,
+  "shekel-sign": $fa-var-shekel-sign,
+  "ils": $fa-var-ils,
+  "shekel": $fa-var-shekel,
+  "sheqel": $fa-var-sheqel,
+  "sheqel-sign": $fa-var-sheqel-sign,
+  "map": $fa-var-map,
+  "rocket": $fa-var-rocket,
+  "photo-film": $fa-var-photo-film,
+  "photo-video": $fa-var-photo-video,
+  "folder-minus": $fa-var-folder-minus,
+  "store": $fa-var-store,
+  "arrow-trend-up": $fa-var-arrow-trend-up,
+  "plug-circle-minus": $fa-var-plug-circle-minus,
+  "sign-hanging": $fa-var-sign-hanging,
+  "sign": $fa-var-sign,
+  "bezier-curve": $fa-var-bezier-curve,
+  "bell-slash": $fa-var-bell-slash,
+  "tablet": $fa-var-tablet,
+  "tablet-android": $fa-var-tablet-android,
+  "school-flag": $fa-var-school-flag,
+  "fill": $fa-var-fill,
+  "angle-up": $fa-var-angle-up,
+  "drumstick-bite": $fa-var-drumstick-bite,
+  "holly-berry": $fa-var-holly-berry,
+  "chevron-left": $fa-var-chevron-left,
+  "bacteria": $fa-var-bacteria,
+  "hand-lizard": $fa-var-hand-lizard,
+  "disease": $fa-var-disease,
+  "briefcase-medical": $fa-var-briefcase-medical,
+  "genderless": $fa-var-genderless,
+  "chevron-right": $fa-var-chevron-right,
+  "retweet": $fa-var-retweet,
+  "car-rear": $fa-var-car-rear,
+  "car-alt": $fa-var-car-alt,
+  "pump-soap": $fa-var-pump-soap,
+  "video-slash": $fa-var-video-slash,
+  "battery-quarter": $fa-var-battery-quarter,
+  "battery-2": $fa-var-battery-2,
+  "radio": $fa-var-radio,
+  "baby-carriage": $fa-var-baby-carriage,
+  "carriage-baby": $fa-var-carriage-baby,
+  "traffic-light": $fa-var-traffic-light,
+  "thermometer": $fa-var-thermometer,
+  "vr-cardboard": $fa-var-vr-cardboard,
+  "hand-middle-finger": $fa-var-hand-middle-finger,
+  "percent": $fa-var-percent,
+  "percentage": $fa-var-percentage,
+  "truck-moving": $fa-var-truck-moving,
+  "glass-water-droplet": $fa-var-glass-water-droplet,
+  "display": $fa-var-display,
+  "face-smile": $fa-var-face-smile,
+  "smile": $fa-var-smile,
+  "thumbtack": $fa-var-thumbtack,
+  "thumb-tack": $fa-var-thumb-tack,
+  "trophy": $fa-var-trophy,
+  "person-praying": $fa-var-person-praying,
+  "pray": $fa-var-pray,
+  "hammer": $fa-var-hammer,
+  "hand-peace": $fa-var-hand-peace,
+  "rotate": $fa-var-rotate,
+  "sync-alt": $fa-var-sync-alt,
+  "spinner": $fa-var-spinner,
+  "robot": $fa-var-robot,
+  "peace": $fa-var-peace,
+  "gears": $fa-var-gears,
+  "cogs": $fa-var-cogs,
+  "warehouse": $fa-var-warehouse,
+  "arrow-up-right-dots": $fa-var-arrow-up-right-dots,
+  "splotch": $fa-var-splotch,
+  "face-grin-hearts": $fa-var-face-grin-hearts,
+  "grin-hearts": $fa-var-grin-hearts,
+  "dice-four": $fa-var-dice-four,
+  "sim-card": $fa-var-sim-card,
+  "transgender": $fa-var-transgender,
+  "transgender-alt": $fa-var-transgender-alt,
+  "mercury": $fa-var-mercury,
+  "arrow-turn-down": $fa-var-arrow-turn-down,
+  "level-down": $fa-var-level-down,
+  "person-falling-burst": $fa-var-person-falling-burst,
+  "award": $fa-var-award,
+  "ticket-simple": $fa-var-ticket-simple,
+  "ticket-alt": $fa-var-ticket-alt,
+  "building": $fa-var-building,
+  "angles-left": $fa-var-angles-left,
+  "angle-double-left": $fa-var-angle-double-left,
+  "qrcode": $fa-var-qrcode,
+  "clock-rotate-left": $fa-var-clock-rotate-left,
+  "history": $fa-var-history,
+  "face-grin-beam-sweat": $fa-var-face-grin-beam-sweat,
+  "grin-beam-sweat": $fa-var-grin-beam-sweat,
+  "file-export": $fa-var-file-export,
+  "arrow-right-from-file": $fa-var-arrow-right-from-file,
+  "shield": $fa-var-shield,
+  "shield-blank": $fa-var-shield-blank,
+  "arrow-up-short-wide": $fa-var-arrow-up-short-wide,
+  "sort-amount-up-alt": $fa-var-sort-amount-up-alt,
+  "house-medical": $fa-var-house-medical,
+  "golf-ball-tee": $fa-var-golf-ball-tee,
+  "golf-ball": $fa-var-golf-ball,
+  "circle-chevron-left": $fa-var-circle-chevron-left,
+  "chevron-circle-left": $fa-var-chevron-circle-left,
+  "house-chimney-window": $fa-var-house-chimney-window,
+  "pen-nib": $fa-var-pen-nib,
+  "tent-arrow-turn-left": $fa-var-tent-arrow-turn-left,
+  "tents": $fa-var-tents,
+  "wand-magic": $fa-var-wand-magic,
+  "magic": $fa-var-magic,
+  "dog": $fa-var-dog,
+  "carrot": $fa-var-carrot,
+  "moon": $fa-var-moon,
+  "wine-glass-empty": $fa-var-wine-glass-empty,
+  "wine-glass-alt": $fa-var-wine-glass-alt,
+  "cheese": $fa-var-cheese,
+  "yin-yang": $fa-var-yin-yang,
+  "music": $fa-var-music,
+  "code-commit": $fa-var-code-commit,
+  "temperature-low": $fa-var-temperature-low,
+  "person-biking": $fa-var-person-biking,
+  "biking": $fa-var-biking,
+  "broom": $fa-var-broom,
+  "shield-heart": $fa-var-shield-heart,
+  "gopuram": $fa-var-gopuram,
+  "earth-oceania": $fa-var-earth-oceania,
+  "globe-oceania": $fa-var-globe-oceania,
+  "square-xmark": $fa-var-square-xmark,
+  "times-square": $fa-var-times-square,
+  "xmark-square": $fa-var-xmark-square,
+  "hashtag": $fa-var-hashtag,
+  "up-right-and-down-left-from-center": $fa-var-up-right-and-down-left-from-center,
+  "expand-alt": $fa-var-expand-alt,
+  "oil-can": $fa-var-oil-can,
+  "t": $fa-var-t,
+  "hippo": $fa-var-hippo,
+  "chart-column": $fa-var-chart-column,
+  "infinity": $fa-var-infinity,
+  "vial-circle-check": $fa-var-vial-circle-check,
+  "person-arrow-down-to-line": $fa-var-person-arrow-down-to-line,
+  "voicemail": $fa-var-voicemail,
+  "fan": $fa-var-fan,
+  "person-walking-luggage": $fa-var-person-walking-luggage,
+  "up-down": $fa-var-up-down,
+  "arrows-alt-v": $fa-var-arrows-alt-v,
+  "cloud-moon-rain": $fa-var-cloud-moon-rain,
+  "calendar": $fa-var-calendar,
+  "trailer": $fa-var-trailer,
+  "bahai": $fa-var-bahai,
+  "haykal": $fa-var-haykal,
+  "sd-card": $fa-var-sd-card,
+  "dragon": $fa-var-dragon,
+  "shoe-prints": $fa-var-shoe-prints,
+  "circle-plus": $fa-var-circle-plus,
+  "plus-circle": $fa-var-plus-circle,
+  "face-grin-tongue-wink": $fa-var-face-grin-tongue-wink,
+  "grin-tongue-wink": $fa-var-grin-tongue-wink,
+  "hand-holding": $fa-var-hand-holding,
+  "plug-circle-exclamation": $fa-var-plug-circle-exclamation,
+  "link-slash": $fa-var-link-slash,
+  "chain-broken": $fa-var-chain-broken,
+  "chain-slash": $fa-var-chain-slash,
+  "unlink": $fa-var-unlink,
+  "clone": $fa-var-clone,
+  "person-walking-arrow-loop-left": $fa-var-person-walking-arrow-loop-left,
+  "arrow-up-z-a": $fa-var-arrow-up-z-a,
+  "sort-alpha-up-alt": $fa-var-sort-alpha-up-alt,
+  "fire-flame-curved": $fa-var-fire-flame-curved,
+  "fire-alt": $fa-var-fire-alt,
+  "tornado": $fa-var-tornado,
+  "file-circle-plus": $fa-var-file-circle-plus,
+  "book-quran": $fa-var-book-quran,
+  "quran": $fa-var-quran,
+  "anchor": $fa-var-anchor,
+  "border-all": $fa-var-border-all,
+  "face-angry": $fa-var-face-angry,
+  "angry": $fa-var-angry,
+  "cookie-bite": $fa-var-cookie-bite,
+  "arrow-trend-down": $fa-var-arrow-trend-down,
+  "rss": $fa-var-rss,
+  "feed": $fa-var-feed,
+  "draw-polygon": $fa-var-draw-polygon,
+  "scale-balanced": $fa-var-scale-balanced,
+  "balance-scale": $fa-var-balance-scale,
+  "gauge-simple-high": $fa-var-gauge-simple-high,
+  "tachometer": $fa-var-tachometer,
+  "tachometer-fast": $fa-var-tachometer-fast,
+  "shower": $fa-var-shower,
+  "desktop": $fa-var-desktop,
+  "desktop-alt": $fa-var-desktop-alt,
+  "m": $fa-var-m,
+  "table-list": $fa-var-table-list,
+  "th-list": $fa-var-th-list,
+  "comment-sms": $fa-var-comment-sms,
+  "sms": $fa-var-sms,
+  "book": $fa-var-book,
+  "user-plus": $fa-var-user-plus,
+  "check": $fa-var-check,
+  "battery-three-quarters": $fa-var-battery-three-quarters,
+  "battery-4": $fa-var-battery-4,
+  "house-circle-check": $fa-var-house-circle-check,
+  "angle-left": $fa-var-angle-left,
+  "diagram-successor": $fa-var-diagram-successor,
+  "truck-arrow-right": $fa-var-truck-arrow-right,
+  "arrows-split-up-and-left": $fa-var-arrows-split-up-and-left,
+  "hand-fist": $fa-var-hand-fist,
+  "fist-raised": $fa-var-fist-raised,
+  "cloud-moon": $fa-var-cloud-moon,
+  "briefcase": $fa-var-briefcase,
+  "person-falling": $fa-var-person-falling,
+  "image-portrait": $fa-var-image-portrait,
+  "portrait": $fa-var-portrait,
+  "user-tag": $fa-var-user-tag,
+  "rug": $fa-var-rug,
+  "earth-europe": $fa-var-earth-europe,
+  "globe-europe": $fa-var-globe-europe,
+  "cart-flatbed-suitcase": $fa-var-cart-flatbed-suitcase,
+  "luggage-cart": $fa-var-luggage-cart,
+  "rectangle-xmark": $fa-var-rectangle-xmark,
+  "rectangle-times": $fa-var-rectangle-times,
+  "times-rectangle": $fa-var-times-rectangle,
+  "window-close": $fa-var-window-close,
+  "baht-sign": $fa-var-baht-sign,
+  "book-open": $fa-var-book-open,
+  "book-journal-whills": $fa-var-book-journal-whills,
+  "journal-whills": $fa-var-journal-whills,
+  "handcuffs": $fa-var-handcuffs,
+  "triangle-exclamation": $fa-var-triangle-exclamation,
+  "exclamation-triangle": $fa-var-exclamation-triangle,
+  "warning": $fa-var-warning,
+  "database": $fa-var-database,
+  "share": $fa-var-share,
+  "arrow-turn-right": $fa-var-arrow-turn-right,
+  "mail-forward": $fa-var-mail-forward,
+  "bottle-droplet": $fa-var-bottle-droplet,
+  "mask-face": $fa-var-mask-face,
+  "hill-rockslide": $fa-var-hill-rockslide,
+  "right-left": $fa-var-right-left,
+  "exchange-alt": $fa-var-exchange-alt,
+  "paper-plane": $fa-var-paper-plane,
+  "road-circle-exclamation": $fa-var-road-circle-exclamation,
+  "dungeon": $fa-var-dungeon,
+  "align-right": $fa-var-align-right,
+  "money-bill-1-wave": $fa-var-money-bill-1-wave,
+  "money-bill-wave-alt": $fa-var-money-bill-wave-alt,
+  "life-ring": $fa-var-life-ring,
+  "hands": $fa-var-hands,
+  "sign-language": $fa-var-sign-language,
+  "signing": $fa-var-signing,
+  "calendar-day": $fa-var-calendar-day,
+  "water-ladder": $fa-var-water-ladder,
+  "ladder-water": $fa-var-ladder-water,
+  "swimming-pool": $fa-var-swimming-pool,
+  "arrows-up-down": $fa-var-arrows-up-down,
+  "arrows-v": $fa-var-arrows-v,
+  "face-grimace": $fa-var-face-grimace,
+  "grimace": $fa-var-grimace,
+  "wheelchair-move": $fa-var-wheelchair-move,
+  "wheelchair-alt": $fa-var-wheelchair-alt,
+  "turn-down": $fa-var-turn-down,
+  "level-down-alt": $fa-var-level-down-alt,
+  "person-walking-arrow-right": $fa-var-person-walking-arrow-right,
+  "square-envelope": $fa-var-square-envelope,
+  "envelope-square": $fa-var-envelope-square,
+  "dice": $fa-var-dice,
+  "bowling-ball": $fa-var-bowling-ball,
+  "brain": $fa-var-brain,
+  "bandage": $fa-var-bandage,
+  "band-aid": $fa-var-band-aid,
+  "calendar-minus": $fa-var-calendar-minus,
+  "circle-xmark": $fa-var-circle-xmark,
+  "times-circle": $fa-var-times-circle,
+  "xmark-circle": $fa-var-xmark-circle,
+  "gifts": $fa-var-gifts,
+  "hotel": $fa-var-hotel,
+  "earth-asia": $fa-var-earth-asia,
+  "globe-asia": $fa-var-globe-asia,
+  "id-card-clip": $fa-var-id-card-clip,
+  "id-card-alt": $fa-var-id-card-alt,
+  "magnifying-glass-plus": $fa-var-magnifying-glass-plus,
+  "search-plus": $fa-var-search-plus,
+  "thumbs-up": $fa-var-thumbs-up,
+  "user-clock": $fa-var-user-clock,
+  "hand-dots": $fa-var-hand-dots,
+  "allergies": $fa-var-allergies,
+  "file-invoice": $fa-var-file-invoice,
+  "window-minimize": $fa-var-window-minimize,
+  "mug-saucer": $fa-var-mug-saucer,
+  "coffee": $fa-var-coffee,
+  "brush": $fa-var-brush,
+  "mask": $fa-var-mask,
+  "magnifying-glass-minus": $fa-var-magnifying-glass-minus,
+  "search-minus": $fa-var-search-minus,
+  "ruler-vertical": $fa-var-ruler-vertical,
+  "user-large": $fa-var-user-large,
+  "user-alt": $fa-var-user-alt,
+  "train-tram": $fa-var-train-tram,
+  "user-nurse": $fa-var-user-nurse,
+  "syringe": $fa-var-syringe,
+  "cloud-sun": $fa-var-cloud-sun,
+  "stopwatch-20": $fa-var-stopwatch-20,
+  "square-full": $fa-var-square-full,
+  "magnet": $fa-var-magnet,
+  "jar": $fa-var-jar,
+  "note-sticky": $fa-var-note-sticky,
+  "sticky-note": $fa-var-sticky-note,
+  "bug-slash": $fa-var-bug-slash,
+  "arrow-up-from-water-pump": $fa-var-arrow-up-from-water-pump,
+  "bone": $fa-var-bone,
+  "user-injured": $fa-var-user-injured,
+  "face-sad-tear": $fa-var-face-sad-tear,
+  "sad-tear": $fa-var-sad-tear,
+  "plane": $fa-var-plane,
+  "tent-arrows-down": $fa-var-tent-arrows-down,
+  "exclamation": $fa-var-exclamation,
+  "arrows-spin": $fa-var-arrows-spin,
+  "print": $fa-var-print,
+  "turkish-lira-sign": $fa-var-turkish-lira-sign,
+  "try": $fa-var-try,
+  "turkish-lira": $fa-var-turkish-lira,
+  "dollar-sign": $fa-var-dollar-sign,
+  "dollar": $fa-var-dollar,
+  "usd": $fa-var-usd,
+  "x": $fa-var-x,
+  "magnifying-glass-dollar": $fa-var-magnifying-glass-dollar,
+  "search-dollar": $fa-var-search-dollar,
+  "users-gear": $fa-var-users-gear,
+  "users-cog": $fa-var-users-cog,
+  "person-military-pointing": $fa-var-person-military-pointing,
+  "building-columns": $fa-var-building-columns,
+  "bank": $fa-var-bank,
+  "institution": $fa-var-institution,
+  "museum": $fa-var-museum,
+  "university": $fa-var-university,
+  "umbrella": $fa-var-umbrella,
+  "trowel": $fa-var-trowel,
+  "d": $fa-var-d,
+  "stapler": $fa-var-stapler,
+  "masks-theater": $fa-var-masks-theater,
+  "theater-masks": $fa-var-theater-masks,
+  "kip-sign": $fa-var-kip-sign,
+  "hand-point-left": $fa-var-hand-point-left,
+  "handshake-simple": $fa-var-handshake-simple,
+  "handshake-alt": $fa-var-handshake-alt,
+  "jet-fighter": $fa-var-jet-fighter,
+  "fighter-jet": $fa-var-fighter-jet,
+  "square-share-nodes": $fa-var-square-share-nodes,
+  "share-alt-square": $fa-var-share-alt-square,
+  "barcode": $fa-var-barcode,
+  "plus-minus": $fa-var-plus-minus,
+  "video": $fa-var-video,
+  "video-camera": $fa-var-video-camera,
+  "graduation-cap": $fa-var-graduation-cap,
+  "mortar-board": $fa-var-mortar-board,
+  "hand-holding-medical": $fa-var-hand-holding-medical,
+  "person-circle-check": $fa-var-person-circle-check,
+  "turn-up": $fa-var-turn-up,
+  "level-up-alt": $fa-var-level-up-alt,
+);
+
+$fa-brand-icons: (
+  "monero": $fa-var-monero,
+  "hooli": $fa-var-hooli,
+  "yelp": $fa-var-yelp,
+  "cc-visa": $fa-var-cc-visa,
+  "lastfm": $fa-var-lastfm,
+  "shopware": $fa-var-shopware,
+  "creative-commons-nc": $fa-var-creative-commons-nc,
+  "aws": $fa-var-aws,
+  "redhat": $fa-var-redhat,
+  "yoast": $fa-var-yoast,
+  "cloudflare": $fa-var-cloudflare,
+  "ups": $fa-var-ups,
+  "wpexplorer": $fa-var-wpexplorer,
+  "dyalog": $fa-var-dyalog,
+  "bity": $fa-var-bity,
+  "stackpath": $fa-var-stackpath,
+  "buysellads": $fa-var-buysellads,
+  "first-order": $fa-var-first-order,
+  "modx": $fa-var-modx,
+  "guilded": $fa-var-guilded,
+  "vnv": $fa-var-vnv,
+  "square-js": $fa-var-square-js,
+  "js-square": $fa-var-js-square,
+  "microsoft": $fa-var-microsoft,
+  "qq": $fa-var-qq,
+  "orcid": $fa-var-orcid,
+  "java": $fa-var-java,
+  "invision": $fa-var-invision,
+  "creative-commons-pd-alt": $fa-var-creative-commons-pd-alt,
+  "centercode": $fa-var-centercode,
+  "glide-g": $fa-var-glide-g,
+  "drupal": $fa-var-drupal,
+  "hire-a-helper": $fa-var-hire-a-helper,
+  "creative-commons-by": $fa-var-creative-commons-by,
+  "unity": $fa-var-unity,
+  "whmcs": $fa-var-whmcs,
+  "rocketchat": $fa-var-rocketchat,
+  "vk": $fa-var-vk,
+  "untappd": $fa-var-untappd,
+  "mailchimp": $fa-var-mailchimp,
+  "css3-alt": $fa-var-css3-alt,
+  "square-reddit": $fa-var-square-reddit,
+  "reddit-square": $fa-var-reddit-square,
+  "vimeo-v": $fa-var-vimeo-v,
+  "contao": $fa-var-contao,
+  "square-font-awesome": $fa-var-square-font-awesome,
+  "deskpro": $fa-var-deskpro,
+  "sistrix": $fa-var-sistrix,
+  "square-instagram": $fa-var-square-instagram,
+  "instagram-square": $fa-var-instagram-square,
+  "battle-net": $fa-var-battle-net,
+  "the-red-yeti": $fa-var-the-red-yeti,
+  "square-hacker-news": $fa-var-square-hacker-news,
+  "hacker-news-square": $fa-var-hacker-news-square,
+  "edge": $fa-var-edge,
+  "napster": $fa-var-napster,
+  "square-snapchat": $fa-var-square-snapchat,
+  "snapchat-square": $fa-var-snapchat-square,
+  "google-plus-g": $fa-var-google-plus-g,
+  "artstation": $fa-var-artstation,
+  "markdown": $fa-var-markdown,
+  "sourcetree": $fa-var-sourcetree,
+  "google-plus": $fa-var-google-plus,
+  "diaspora": $fa-var-diaspora,
+  "foursquare": $fa-var-foursquare,
+  "stack-overflow": $fa-var-stack-overflow,
+  "github-alt": $fa-var-github-alt,
+  "phoenix-squadron": $fa-var-phoenix-squadron,
+  "pagelines": $fa-var-pagelines,
+  "algolia": $fa-var-algolia,
+  "red-river": $fa-var-red-river,
+  "creative-commons-sa": $fa-var-creative-commons-sa,
+  "safari": $fa-var-safari,
+  "google": $fa-var-google,
+  "square-font-awesome-stroke": $fa-var-square-font-awesome-stroke,
+  "font-awesome-alt": $fa-var-font-awesome-alt,
+  "atlassian": $fa-var-atlassian,
+  "linkedin-in": $fa-var-linkedin-in,
+  "digital-ocean": $fa-var-digital-ocean,
+  "nimblr": $fa-var-nimblr,
+  "chromecast": $fa-var-chromecast,
+  "evernote": $fa-var-evernote,
+  "hacker-news": $fa-var-hacker-news,
+  "creative-commons-sampling": $fa-var-creative-commons-sampling,
+  "adversal": $fa-var-adversal,
+  "creative-commons": $fa-var-creative-commons,
+  "watchman-monitoring": $fa-var-watchman-monitoring,
+  "fonticons": $fa-var-fonticons,
+  "weixin": $fa-var-weixin,
+  "shirtsinbulk": $fa-var-shirtsinbulk,
+  "codepen": $fa-var-codepen,
+  "git-alt": $fa-var-git-alt,
+  "lyft": $fa-var-lyft,
+  "rev": $fa-var-rev,
+  "windows": $fa-var-windows,
+  "wizards-of-the-coast": $fa-var-wizards-of-the-coast,
+  "square-viadeo": $fa-var-square-viadeo,
+  "viadeo-square": $fa-var-viadeo-square,
+  "meetup": $fa-var-meetup,
+  "centos": $fa-var-centos,
+  "adn": $fa-var-adn,
+  "cloudsmith": $fa-var-cloudsmith,
+  "pied-piper-alt": $fa-var-pied-piper-alt,
+  "square-dribbble": $fa-var-square-dribbble,
+  "dribbble-square": $fa-var-dribbble-square,
+  "codiepie": $fa-var-codiepie,
+  "node": $fa-var-node,
+  "mix": $fa-var-mix,
+  "steam": $fa-var-steam,
+  "cc-apple-pay": $fa-var-cc-apple-pay,
+  "scribd": $fa-var-scribd,
+  "openid": $fa-var-openid,
+  "instalod": $fa-var-instalod,
+  "expeditedssl": $fa-var-expeditedssl,
+  "sellcast": $fa-var-sellcast,
+  "square-twitter": $fa-var-square-twitter,
+  "twitter-square": $fa-var-twitter-square,
+  "r-project": $fa-var-r-project,
+  "delicious": $fa-var-delicious,
+  "freebsd": $fa-var-freebsd,
+  "vuejs": $fa-var-vuejs,
+  "accusoft": $fa-var-accusoft,
+  "ioxhost": $fa-var-ioxhost,
+  "fonticons-fi": $fa-var-fonticons-fi,
+  "app-store": $fa-var-app-store,
+  "cc-mastercard": $fa-var-cc-mastercard,
+  "itunes-note": $fa-var-itunes-note,
+  "golang": $fa-var-golang,
+  "kickstarter": $fa-var-kickstarter,
+  "grav": $fa-var-grav,
+  "weibo": $fa-var-weibo,
+  "uncharted": $fa-var-uncharted,
+  "firstdraft": $fa-var-firstdraft,
+  "square-youtube": $fa-var-square-youtube,
+  "youtube-square": $fa-var-youtube-square,
+  "wikipedia-w": $fa-var-wikipedia-w,
+  "wpressr": $fa-var-wpressr,
+  "rendact": $fa-var-rendact,
+  "angellist": $fa-var-angellist,
+  "galactic-republic": $fa-var-galactic-republic,
+  "nfc-directional": $fa-var-nfc-directional,
+  "skype": $fa-var-skype,
+  "joget": $fa-var-joget,
+  "fedora": $fa-var-fedora,
+  "stripe-s": $fa-var-stripe-s,
+  "meta": $fa-var-meta,
+  "laravel": $fa-var-laravel,
+  "hotjar": $fa-var-hotjar,
+  "bluetooth-b": $fa-var-bluetooth-b,
+  "sticker-mule": $fa-var-sticker-mule,
+  "creative-commons-zero": $fa-var-creative-commons-zero,
+  "hips": $fa-var-hips,
+  "behance": $fa-var-behance,
+  "reddit": $fa-var-reddit,
+  "discord": $fa-var-discord,
+  "chrome": $fa-var-chrome,
+  "app-store-ios": $fa-var-app-store-ios,
+  "cc-discover": $fa-var-cc-discover,
+  "wpbeginner": $fa-var-wpbeginner,
+  "confluence": $fa-var-confluence,
+  "mdb": $fa-var-mdb,
+  "dochub": $fa-var-dochub,
+  "accessible-icon": $fa-var-accessible-icon,
+  "ebay": $fa-var-ebay,
+  "amazon": $fa-var-amazon,
+  "unsplash": $fa-var-unsplash,
+  "yarn": $fa-var-yarn,
+  "square-steam": $fa-var-square-steam,
+  "steam-square": $fa-var-steam-square,
+  "500px": $fa-var-500px,
+  "square-vimeo": $fa-var-square-vimeo,
+  "vimeo-square": $fa-var-vimeo-square,
+  "asymmetrik": $fa-var-asymmetrik,
+  "font-awesome": $fa-var-font-awesome,
+  "font-awesome-flag": $fa-var-font-awesome-flag,
+  "font-awesome-logo-full": $fa-var-font-awesome-logo-full,
+  "gratipay": $fa-var-gratipay,
+  "apple": $fa-var-apple,
+  "hive": $fa-var-hive,
+  "gitkraken": $fa-var-gitkraken,
+  "keybase": $fa-var-keybase,
+  "apple-pay": $fa-var-apple-pay,
+  "padlet": $fa-var-padlet,
+  "amazon-pay": $fa-var-amazon-pay,
+  "square-github": $fa-var-square-github,
+  "github-square": $fa-var-github-square,
+  "stumbleupon": $fa-var-stumbleupon,
+  "fedex": $fa-var-fedex,
+  "phoenix-framework": $fa-var-phoenix-framework,
+  "shopify": $fa-var-shopify,
+  "neos": $fa-var-neos,
+  "hackerrank": $fa-var-hackerrank,
+  "researchgate": $fa-var-researchgate,
+  "swift": $fa-var-swift,
+  "angular": $fa-var-angular,
+  "speakap": $fa-var-speakap,
+  "angrycreative": $fa-var-angrycreative,
+  "y-combinator": $fa-var-y-combinator,
+  "empire": $fa-var-empire,
+  "envira": $fa-var-envira,
+  "square-gitlab": $fa-var-square-gitlab,
+  "gitlab-square": $fa-var-gitlab-square,
+  "studiovinari": $fa-var-studiovinari,
+  "pied-piper": $fa-var-pied-piper,
+  "wordpress": $fa-var-wordpress,
+  "product-hunt": $fa-var-product-hunt,
+  "firefox": $fa-var-firefox,
+  "linode": $fa-var-linode,
+  "goodreads": $fa-var-goodreads,
+  "square-odnoklassniki": $fa-var-square-odnoklassniki,
+  "odnoklassniki-square": $fa-var-odnoklassniki-square,
+  "jsfiddle": $fa-var-jsfiddle,
+  "sith": $fa-var-sith,
+  "themeisle": $fa-var-themeisle,
+  "page4": $fa-var-page4,
+  "hashnode": $fa-var-hashnode,
+  "react": $fa-var-react,
+  "cc-paypal": $fa-var-cc-paypal,
+  "squarespace": $fa-var-squarespace,
+  "cc-stripe": $fa-var-cc-stripe,
+  "creative-commons-share": $fa-var-creative-commons-share,
+  "bitcoin": $fa-var-bitcoin,
+  "keycdn": $fa-var-keycdn,
+  "opera": $fa-var-opera,
+  "itch-io": $fa-var-itch-io,
+  "umbraco": $fa-var-umbraco,
+  "galactic-senate": $fa-var-galactic-senate,
+  "ubuntu": $fa-var-ubuntu,
+  "draft2digital": $fa-var-draft2digital,
+  "stripe": $fa-var-stripe,
+  "houzz": $fa-var-houzz,
+  "gg": $fa-var-gg,
+  "dhl": $fa-var-dhl,
+  "square-pinterest": $fa-var-square-pinterest,
+  "pinterest-square": $fa-var-pinterest-square,
+  "xing": $fa-var-xing,
+  "blackberry": $fa-var-blackberry,
+  "creative-commons-pd": $fa-var-creative-commons-pd,
+  "playstation": $fa-var-playstation,
+  "quinscape": $fa-var-quinscape,
+  "less": $fa-var-less,
+  "blogger-b": $fa-var-blogger-b,
+  "opencart": $fa-var-opencart,
+  "vine": $fa-var-vine,
+  "paypal": $fa-var-paypal,
+  "gitlab": $fa-var-gitlab,
+  "typo3": $fa-var-typo3,
+  "reddit-alien": $fa-var-reddit-alien,
+  "yahoo": $fa-var-yahoo,
+  "dailymotion": $fa-var-dailymotion,
+  "affiliatetheme": $fa-var-affiliatetheme,
+  "pied-piper-pp": $fa-var-pied-piper-pp,
+  "bootstrap": $fa-var-bootstrap,
+  "odnoklassniki": $fa-var-odnoklassniki,
+  "nfc-symbol": $fa-var-nfc-symbol,
+  "ethereum": $fa-var-ethereum,
+  "speaker-deck": $fa-var-speaker-deck,
+  "creative-commons-nc-eu": $fa-var-creative-commons-nc-eu,
+  "patreon": $fa-var-patreon,
+  "avianex": $fa-var-avianex,
+  "ello": $fa-var-ello,
+  "gofore": $fa-var-gofore,
+  "bimobject": $fa-var-bimobject,
+  "facebook-f": $fa-var-facebook-f,
+  "square-google-plus": $fa-var-square-google-plus,
+  "google-plus-square": $fa-var-google-plus-square,
+  "mandalorian": $fa-var-mandalorian,
+  "first-order-alt": $fa-var-first-order-alt,
+  "osi": $fa-var-osi,
+  "google-wallet": $fa-var-google-wallet,
+  "d-and-d-beyond": $fa-var-d-and-d-beyond,
+  "periscope": $fa-var-periscope,
+  "fulcrum": $fa-var-fulcrum,
+  "cloudscale": $fa-var-cloudscale,
+  "forumbee": $fa-var-forumbee,
+  "mizuni": $fa-var-mizuni,
+  "schlix": $fa-var-schlix,
+  "square-xing": $fa-var-square-xing,
+  "xing-square": $fa-var-xing-square,
+  "bandcamp": $fa-var-bandcamp,
+  "wpforms": $fa-var-wpforms,
+  "cloudversify": $fa-var-cloudversify,
+  "usps": $fa-var-usps,
+  "megaport": $fa-var-megaport,
+  "magento": $fa-var-magento,
+  "spotify": $fa-var-spotify,
+  "optin-monster": $fa-var-optin-monster,
+  "fly": $fa-var-fly,
+  "aviato": $fa-var-aviato,
+  "itunes": $fa-var-itunes,
+  "cuttlefish": $fa-var-cuttlefish,
+  "blogger": $fa-var-blogger,
+  "flickr": $fa-var-flickr,
+  "viber": $fa-var-viber,
+  "soundcloud": $fa-var-soundcloud,
+  "digg": $fa-var-digg,
+  "tencent-weibo": $fa-var-tencent-weibo,
+  "symfony": $fa-var-symfony,
+  "maxcdn": $fa-var-maxcdn,
+  "etsy": $fa-var-etsy,
+  "facebook-messenger": $fa-var-facebook-messenger,
+  "audible": $fa-var-audible,
+  "think-peaks": $fa-var-think-peaks,
+  "bilibili": $fa-var-bilibili,
+  "erlang": $fa-var-erlang,
+  "cotton-bureau": $fa-var-cotton-bureau,
+  "dashcube": $fa-var-dashcube,
+  "42-group": $fa-var-42-group,
+  "innosoft": $fa-var-innosoft,
+  "stack-exchange": $fa-var-stack-exchange,
+  "elementor": $fa-var-elementor,
+  "square-pied-piper": $fa-var-square-pied-piper,
+  "pied-piper-square": $fa-var-pied-piper-square,
+  "creative-commons-nd": $fa-var-creative-commons-nd,
+  "palfed": $fa-var-palfed,
+  "superpowers": $fa-var-superpowers,
+  "resolving": $fa-var-resolving,
+  "xbox": $fa-var-xbox,
+  "searchengin": $fa-var-searchengin,
+  "tiktok": $fa-var-tiktok,
+  "square-facebook": $fa-var-square-facebook,
+  "facebook-square": $fa-var-facebook-square,
+  "renren": $fa-var-renren,
+  "linux": $fa-var-linux,
+  "glide": $fa-var-glide,
+  "linkedin": $fa-var-linkedin,
+  "hubspot": $fa-var-hubspot,
+  "deploydog": $fa-var-deploydog,
+  "twitch": $fa-var-twitch,
+  "ravelry": $fa-var-ravelry,
+  "mixer": $fa-var-mixer,
+  "square-lastfm": $fa-var-square-lastfm,
+  "lastfm-square": $fa-var-lastfm-square,
+  "vimeo": $fa-var-vimeo,
+  "mendeley": $fa-var-mendeley,
+  "uniregistry": $fa-var-uniregistry,
+  "figma": $fa-var-figma,
+  "creative-commons-remix": $fa-var-creative-commons-remix,
+  "cc-amazon-pay": $fa-var-cc-amazon-pay,
+  "dropbox": $fa-var-dropbox,
+  "instagram": $fa-var-instagram,
+  "cmplid": $fa-var-cmplid,
+  "facebook": $fa-var-facebook,
+  "gripfire": $fa-var-gripfire,
+  "jedi-order": $fa-var-jedi-order,
+  "uikit": $fa-var-uikit,
+  "fort-awesome-alt": $fa-var-fort-awesome-alt,
+  "phabricator": $fa-var-phabricator,
+  "ussunnah": $fa-var-ussunnah,
+  "earlybirds": $fa-var-earlybirds,
+  "trade-federation": $fa-var-trade-federation,
+  "autoprefixer": $fa-var-autoprefixer,
+  "whatsapp": $fa-var-whatsapp,
+  "slideshare": $fa-var-slideshare,
+  "google-play": $fa-var-google-play,
+  "viadeo": $fa-var-viadeo,
+  "line": $fa-var-line,
+  "google-drive": $fa-var-google-drive,
+  "servicestack": $fa-var-servicestack,
+  "simplybuilt": $fa-var-simplybuilt,
+  "bitbucket": $fa-var-bitbucket,
+  "imdb": $fa-var-imdb,
+  "deezer": $fa-var-deezer,
+  "raspberry-pi": $fa-var-raspberry-pi,
+  "jira": $fa-var-jira,
+  "docker": $fa-var-docker,
+  "screenpal": $fa-var-screenpal,
+  "bluetooth": $fa-var-bluetooth,
+  "gitter": $fa-var-gitter,
+  "d-and-d": $fa-var-d-and-d,
+  "microblog": $fa-var-microblog,
+  "cc-diners-club": $fa-var-cc-diners-club,
+  "gg-circle": $fa-var-gg-circle,
+  "pied-piper-hat": $fa-var-pied-piper-hat,
+  "kickstarter-k": $fa-var-kickstarter-k,
+  "yandex": $fa-var-yandex,
+  "readme": $fa-var-readme,
+  "html5": $fa-var-html5,
+  "sellsy": $fa-var-sellsy,
+  "sass": $fa-var-sass,
+  "wirsindhandwerk": $fa-var-wirsindhandwerk,
+  "wsh": $fa-var-wsh,
+  "buromobelexperte": $fa-var-buromobelexperte,
+  "salesforce": $fa-var-salesforce,
+  "octopus-deploy": $fa-var-octopus-deploy,
+  "medapps": $fa-var-medapps,
+  "ns8": $fa-var-ns8,
+  "pinterest-p": $fa-var-pinterest-p,
+  "apper": $fa-var-apper,
+  "fort-awesome": $fa-var-fort-awesome,
+  "waze": $fa-var-waze,
+  "cc-jcb": $fa-var-cc-jcb,
+  "snapchat": $fa-var-snapchat,
+  "snapchat-ghost": $fa-var-snapchat-ghost,
+  "fantasy-flight-games": $fa-var-fantasy-flight-games,
+  "rust": $fa-var-rust,
+  "wix": $fa-var-wix,
+  "square-behance": $fa-var-square-behance,
+  "behance-square": $fa-var-behance-square,
+  "supple": $fa-var-supple,
+  "rebel": $fa-var-rebel,
+  "css3": $fa-var-css3,
+  "staylinked": $fa-var-staylinked,
+  "kaggle": $fa-var-kaggle,
+  "space-awesome": $fa-var-space-awesome,
+  "deviantart": $fa-var-deviantart,
+  "cpanel": $fa-var-cpanel,
+  "goodreads-g": $fa-var-goodreads-g,
+  "square-git": $fa-var-square-git,
+  "git-square": $fa-var-git-square,
+  "square-tumblr": $fa-var-square-tumblr,
+  "tumblr-square": $fa-var-tumblr-square,
+  "trello": $fa-var-trello,
+  "creative-commons-nc-jp": $fa-var-creative-commons-nc-jp,
+  "get-pocket": $fa-var-get-pocket,
+  "perbyte": $fa-var-perbyte,
+  "grunt": $fa-var-grunt,
+  "weebly": $fa-var-weebly,
+  "connectdevelop": $fa-var-connectdevelop,
+  "leanpub": $fa-var-leanpub,
+  "black-tie": $fa-var-black-tie,
+  "themeco": $fa-var-themeco,
+  "python": $fa-var-python,
+  "android": $fa-var-android,
+  "bots": $fa-var-bots,
+  "free-code-camp": $fa-var-free-code-camp,
+  "hornbill": $fa-var-hornbill,
+  "js": $fa-var-js,
+  "ideal": $fa-var-ideal,
+  "git": $fa-var-git,
+  "dev": $fa-var-dev,
+  "sketch": $fa-var-sketch,
+  "yandex-international": $fa-var-yandex-international,
+  "cc-amex": $fa-var-cc-amex,
+  "uber": $fa-var-uber,
+  "github": $fa-var-github,
+  "php": $fa-var-php,
+  "alipay": $fa-var-alipay,
+  "youtube": $fa-var-youtube,
+  "skyatlas": $fa-var-skyatlas,
+  "firefox-browser": $fa-var-firefox-browser,
+  "replyd": $fa-var-replyd,
+  "suse": $fa-var-suse,
+  "jenkins": $fa-var-jenkins,
+  "twitter": $fa-var-twitter,
+  "rockrms": $fa-var-rockrms,
+  "pinterest": $fa-var-pinterest,
+  "buffer": $fa-var-buffer,
+  "npm": $fa-var-npm,
+  "yammer": $fa-var-yammer,
+  "btc": $fa-var-btc,
+  "dribbble": $fa-var-dribbble,
+  "stumbleupon-circle": $fa-var-stumbleupon-circle,
+  "internet-explorer": $fa-var-internet-explorer,
+  "telegram": $fa-var-telegram,
+  "telegram-plane": $fa-var-telegram-plane,
+  "old-republic": $fa-var-old-republic,
+  "square-whatsapp": $fa-var-square-whatsapp,
+  "whatsapp-square": $fa-var-whatsapp-square,
+  "node-js": $fa-var-node-js,
+  "edge-legacy": $fa-var-edge-legacy,
+  "slack": $fa-var-slack,
+  "slack-hash": $fa-var-slack-hash,
+  "medrt": $fa-var-medrt,
+  "usb": $fa-var-usb,
+  "tumblr": $fa-var-tumblr,
+  "vaadin": $fa-var-vaadin,
+  "quora": $fa-var-quora,
+  "reacteurope": $fa-var-reacteurope,
+  "medium": $fa-var-medium,
+  "medium-m": $fa-var-medium-m,
+  "amilia": $fa-var-amilia,
+  "mixcloud": $fa-var-mixcloud,
+  "flipboard": $fa-var-flipboard,
+  "viacoin": $fa-var-viacoin,
+  "critical-role": $fa-var-critical-role,
+  "sitrox": $fa-var-sitrox,
+  "discourse": $fa-var-discourse,
+  "joomla": $fa-var-joomla,
+  "mastodon": $fa-var-mastodon,
+  "airbnb": $fa-var-airbnb,
+  "wolf-pack-battalion": $fa-var-wolf-pack-battalion,
+  "buy-n-large": $fa-var-buy-n-large,
+  "gulp": $fa-var-gulp,
+  "creative-commons-sampling-plus": $fa-var-creative-commons-sampling-plus,
+  "strava": $fa-var-strava,
+  "ember": $fa-var-ember,
+  "canadian-maple-leaf": $fa-var-canadian-maple-leaf,
+  "teamspeak": $fa-var-teamspeak,
+  "pushed": $fa-var-pushed,
+  "wordpress-simple": $fa-var-wordpress-simple,
+  "nutritionix": $fa-var-nutritionix,
+  "wodu": $fa-var-wodu,
+  "google-pay": $fa-var-google-pay,
+  "intercom": $fa-var-intercom,
+  "zhihu": $fa-var-zhihu,
+  "korvue": $fa-var-korvue,
+  "pix": $fa-var-pix,
+  "steam-symbol": $fa-var-steam-symbol,
+);
diff --git a/public/vendor/fontawesome/scss/brands.scss b/public/vendor/fontawesome/scss/brands.scss
new file mode 100644
index 0000000000..617535bba8
--- /dev/null
+++ b/public/vendor/fontawesome/scss/brands.scss
@@ -0,0 +1,30 @@
+/*!
+ * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2022 Fonticons, Inc.
+ */
+@import 'functions';
+@import 'variables';
+
+:root, :host {
+  --#{$fa-css-prefix}-style-family-brands: 'Font Awesome 6 Brands';
+  --#{$fa-css-prefix}-font-brands: normal 400 1em/1 'Font Awesome 6 Brands';
+}
+
+@font-face {
+  font-family: 'Font Awesome 6 Brands';
+  font-style: normal;
+  font-weight: 400;
+  font-display: $fa-font-display;
+  src: url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
+    url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype');
+}
+
+.fab,
+.#{$fa-css-prefix}-brands {
+  font-weight: 400;
+}
+
+@each $name, $icon in $fa-brand-icons {
+  .#{$fa-css-prefix}-#{$name}:before { content: unquote("\"#{ $icon }\""); }
+}
diff --git a/public/vendor/fontawesome/scss/fontawesome.scss b/public/vendor/fontawesome/scss/fontawesome.scss
new file mode 100644
index 0000000000..c14ee94283
--- /dev/null
+++ b/public/vendor/fontawesome/scss/fontawesome.scss
@@ -0,0 +1,21 @@
+/*!
+ * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2022 Fonticons, Inc.
+ */
+// Font Awesome core compile (Web Fonts-based)
+// -------------------------
+
+@import 'functions';
+@import 'variables';
+@import 'mixins';
+@import 'core';
+@import 'sizing';
+@import 'fixed-width';
+@import 'list';
+@import 'bordered-pulled';
+@import 'animated';
+@import 'rotated-flipped';
+@import 'stacked';
+@import 'icons';
+@import 'screen-reader';
diff --git a/public/vendor/fontawesome/scss/nodebb-shims.scss b/public/vendor/fontawesome/scss/nodebb-shims.scss
new file mode 100644
index 0000000000..8c3bc5230d
--- /dev/null
+++ b/public/vendor/fontawesome/scss/nodebb-shims.scss
@@ -0,0 +1,312 @@
+@import "_variables.scss";
+
+@font-face {
+    font-family: 'FontAwesome';
+    font-style: normal;
+    font-weight: 400;
+    font-display: $fa-font-display;
+    src: url('#{$fa-font-path}/fa-solid-900.woff2');
+    src: url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),
+      url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype');
+}
+
+@font-face {
+    font-family: 'FontAwesome';
+    font-style: normal;
+    font-weight: 400;
+    font-display: $fa-font-display;
+    src: url('#{$fa-font-path}/fa-brands-400.woff2');
+    src: url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
+      url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype');
+}
+
+@font-face {
+  font-family: 'FontAwesome';
+  font-style: normal;
+  font-weight: 400;
+  font-display: $fa-font-display;
+  src: url('#{$fa-font-path}/fa-regular-400.woff2');
+  src: url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
+    url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype');
+}
+
+
+$fa-var-address-book-o: $fa-var-address-book;
+$fa-var-address-card-o: $fa-var-address-card;
+$fa-var-area-chart: $fa-var-chart-area;
+$fa-var-arrow-circle-o-down: $fa-var-arrow-alt-circle-down;
+$fa-var-arrow-circle-o-left: $fa-var-arrow-alt-circle-left;
+$fa-var-arrow-circle-o-right: $fa-var-arrow-alt-circle-right;
+$fa-var-arrow-circle-o-up: $fa-var-arrow-alt-circle-up;
+$fa-var-arrows: $fa-var-arrows-alt;
+$fa-var-arrows-alt: $fa-var-expand-arrows-alt;
+$fa-var-arrows-h: $fa-var-arrows-alt-h;
+$fa-var-arrows-v: $fa-var-arrows-alt-v;
+$fa-var-asl-interpreting: $fa-var-american-sign-language-interpreting;
+$fa-var-automobile: $fa-var-car;
+$fa-var-bank: $fa-var-university;
+$fa-var-bar-chart: $fa-var-chart-bar;
+$fa-var-bar-chart-o: $fa-var-chart-bar;
+$fa-var-bathtub: $fa-var-bath;
+$fa-var-battery: $fa-var-battery-full;
+$fa-var-battery-0: $fa-var-battery-empty;
+$fa-var-battery-1: $fa-var-battery-quarter;
+$fa-var-battery-2: $fa-var-battery-half;
+$fa-var-battery-3: $fa-var-battery-three-quarters;
+$fa-var-battery-4: $fa-var-battery-full;
+$fa-var-bell-o: $fa-var-bell;
+$fa-var-bell-slash-o: $fa-var-bell-slash;
+$fa-var-bitbucket-square: $fa-var-bitbucket;
+$fa-var-bitcoin: $fa-var-btc;
+$fa-var-bookmark-o: $fa-var-bookmark;
+$fa-var-building-o: $fa-var-building;
+$fa-var-cab: $fa-var-taxi;
+$fa-var-calendar: $fa-var-calendar-alt;
+$fa-var-calendar-check-o: $fa-var-calendar-check;
+$fa-var-calendar-minus-o: $fa-var-calendar-minus;
+$fa-var-calendar-o: $fa-var-calendar;
+$fa-var-calendar-plus-o: $fa-var-calendar-plus;
+$fa-var-calendar-times-o: $fa-var-calendar-times;
+$fa-var-caret-square-o-down: $fa-var-caret-square-down;
+$fa-var-caret-square-o-left: $fa-var-caret-square-left;
+$fa-var-caret-square-o-right: $fa-var-caret-square-right;
+$fa-var-caret-square-o-up: $fa-var-caret-square-up;
+$fa-var-cc: $fa-var-closed-captioning;
+$fa-var-chain: $fa-var-link;
+$fa-var-chain-broken: $fa-var-unlink;
+$fa-var-check-circle-o: $fa-var-check-circle;
+$fa-var-check-square-o: $fa-var-check-square;
+$fa-var-circle-o: $fa-var-circle;
+$fa-var-circle-o-notch: $fa-var-circle-notch;
+$fa-var-circle-thin: $fa-var-circle;
+$fa-var-clock-o: $fa-var-clock;
+$fa-var-close: $fa-var-times;
+$fa-var-cloud-download: $fa-var-cloud-download-alt;
+$fa-var-cloud-upload: $fa-var-cloud-upload-alt;
+$fa-var-cny: $fa-var-yen-sign;
+$fa-var-code-fork: $fa-var-code-branch;
+$fa-var-comment-o: $fa-var-comment;
+$fa-var-commenting: $fa-var-comment-dots;
+$fa-var-commenting-o: $fa-var-comment-dots;
+$fa-var-comments-o: $fa-var-comments;
+$fa-var-credit-card-alt: $fa-var-credit-card;
+$fa-var-cutlery: $fa-var-utensils;
+$fa-var-dashboard: $fa-var-tachometer-alt;
+$fa-var-deafness: $fa-var-deaf;
+$fa-var-dedent: $fa-var-outdent;
+$fa-var-diamond: $fa-var-gem;
+$fa-var-dollar: $fa-var-dollar-sign;
+$fa-var-dot-circle-o: $fa-var-dot-circle;
+$fa-var-drivers-license: $fa-var-id-card;
+$fa-var-drivers-license-o: $fa-var-id-card;
+$fa-var-eercast: $fa-var-sellcast;
+$fa-var-envelope-o: $fa-var-envelope;
+$fa-var-envelope-open-o: $fa-var-envelope-open;
+$fa-var-eur: $fa-var-euro-sign;
+$fa-var-euro: $fa-var-euro-sign;
+$fa-var-exchange: $fa-var-exchange-alt;
+$fa-var-external-link: $fa-var-external-link-alt;
+$fa-var-external-link-square: $fa-var-external-link-square-alt;
+$fa-var-eyedropper: $fa-var-eye-dropper;
+$fa-var-fa: $fa-var-font-awesome;
+$fa-var-facebook: $fa-var-facebook-f;
+$fa-var-facebook-official: $fa-var-facebook;
+$fa-var-feed: $fa-var-rss;
+$fa-var-file-archive-o: $fa-var-file-archive;
+$fa-var-file-audio-o: $fa-var-file-audio;
+$fa-var-file-code-o: $fa-var-file-code;
+$fa-var-file-excel-o: $fa-var-file-excel;
+$fa-var-file-image-o: $fa-var-file-image;
+$fa-var-file-movie-o: $fa-var-file-video;
+$fa-var-file-o: $fa-var-file;
+$fa-var-file-pdf-o: $fa-var-file-pdf;
+$fa-var-file-photo-o: $fa-var-file-image;
+$fa-var-file-picture-o: $fa-var-file-image;
+$fa-var-file-powerpoint-o: $fa-var-file-powerpoint;
+$fa-var-file-sound-o: $fa-var-file-audio;
+$fa-var-file-text: $fa-var-file-alt;
+$fa-var-file-text-o: $fa-var-file-alt;
+$fa-var-file-video-o: $fa-var-file-video;
+$fa-var-file-word-o: $fa-var-file-word;
+$fa-var-file-zip-o: $fa-var-file-archive;
+$fa-var-files-o: $fa-var-copy;
+$fa-var-flag-o: $fa-var-flag;
+$fa-var-flash: $fa-var-bolt;
+$fa-var-floppy-o: $fa-var-save;
+$fa-var-folder-o: $fa-var-folder;
+$fa-var-folder-open-o: $fa-var-folder-open;
+$fa-var-frown-o: $fa-var-frown;
+$fa-var-futbol-o: $fa-var-futbol;
+$fa-var-gbp: $fa-var-pound-sign;
+$fa-var-ge: $fa-var-empire;
+$fa-var-gear: $fa-var-cog;
+$fa-var-gears: $fa-var-cogs;
+$fa-var-gittip: $fa-var-gratipay;
+$fa-var-glass: $fa-var-glass-martini;
+$fa-var-google-plus: $fa-var-google-plus-g;
+$fa-var-google-plus-circle: $fa-var-google-plus;
+$fa-var-google-plus-official: $fa-var-google-plus;
+$fa-var-group: $fa-var-users;
+$fa-var-hand-grab-o: $fa-var-hand-rock;
+$fa-var-hand-lizard-o: $fa-var-hand-lizard;
+$fa-var-hand-o-down: $fa-var-hand-point-down;
+$fa-var-hand-o-left: $fa-var-hand-point-left;
+$fa-var-hand-o-right: $fa-var-hand-point-right;
+$fa-var-hand-o-up: $fa-var-hand-point-up;
+$fa-var-hand-paper-o: $fa-var-hand-paper;
+$fa-var-hand-peace-o: $fa-var-hand-peace;
+$fa-var-hand-pointer-o: $fa-var-hand-pointer;
+$fa-var-hand-rock-o: $fa-var-hand-rock;
+$fa-var-hand-scissors-o: $fa-var-hand-scissors;
+$fa-var-hand-spock-o: $fa-var-hand-spock;
+$fa-var-hand-stop-o: $fa-var-hand-paper;
+$fa-var-handshake-o: $fa-var-handshake;
+$fa-var-hard-of-hearing: $fa-var-deaf;
+$fa-var-hdd-o: $fa-var-hdd;
+$fa-var-header: $fa-var-heading;
+$fa-var-heart-o: $fa-var-heart;
+$fa-var-hospital-o: $fa-var-hospital;
+$fa-var-hotel: $fa-var-bed;
+$fa-var-hourglass-1: $fa-var-hourglass-start;
+$fa-var-hourglass-2: $fa-var-hourglass-half;
+$fa-var-hourglass-3: $fa-var-hourglass-end;
+$fa-var-hourglass-o: $fa-var-hourglass;
+$fa-var-id-card-o: $fa-var-id-card;
+$fa-var-ils: $fa-var-shekel-sign;
+$fa-var-inr: $fa-var-rupee-sign;
+$fa-var-institution: $fa-var-university;
+$fa-var-intersex: $fa-var-transgender;
+$fa-var-jpy: $fa-var-yen-sign;
+$fa-var-keyboard-o: $fa-var-keyboard;
+$fa-var-krw: $fa-var-won-sign;
+$fa-var-legal: $fa-var-gavel;
+$fa-var-lemon-o: $fa-var-lemon;
+$fa-var-level-down: $fa-var-level-down-alt;
+$fa-var-level-up: $fa-var-level-up-alt;
+$fa-var-life-bouy: $fa-var-life-ring;
+$fa-var-life-buoy: $fa-var-life-ring;
+$fa-var-life-saver: $fa-var-life-ring;
+$fa-var-lightbulb-o: $fa-var-lightbulb;
+$fa-var-line-chart: $fa-var-chart-line;
+$fa-var-linkedin: $fa-var-linkedin-in;
+$fa-var-linkedin-square: $fa-var-linkedin;
+$fa-var-long-arrow-down: $fa-var-long-arrow-alt-down;
+$fa-var-long-arrow-left: $fa-var-long-arrow-alt-left;
+$fa-var-long-arrow-right: $fa-var-long-arrow-alt-right;
+$fa-var-long-arrow-up: $fa-var-long-arrow-alt-up;
+$fa-var-mail-forward: $fa-var-share;
+$fa-var-mail-reply: $fa-var-reply;
+$fa-var-mail-reply-all: $fa-var-reply-all;
+$fa-var-map-marker: $fa-var-map-marker-alt;
+$fa-var-map-o: $fa-var-map;
+$fa-var-meanpath: $fa-var-font-awesome;
+$fa-var-meh-o: $fa-var-meh;
+$fa-var-minus-square-o: $fa-var-minus-square;
+$fa-var-mobile: $fa-var-mobile-alt;
+$fa-var-mobile-phone: $fa-var-mobile-alt;
+$fa-var-money: $fa-var-money-bill-alt;
+$fa-var-moon-o: $fa-var-moon;
+$fa-var-mortar-board: $fa-var-graduation-cap;
+$fa-var-navicon: $fa-var-bars;
+$fa-var-newspaper-o: $fa-var-newspaper;
+$fa-var-paper-plane-o: $fa-var-paper-plane;
+$fa-var-paste: $fa-var-clipboard;
+$fa-var-pause-circle-o: $fa-var-pause-circle;
+$fa-var-pencil: $fa-var-pencil-alt;
+$fa-var-pencil-square: $fa-var-pen-square;
+$fa-var-pencil-square-o: $fa-var-edit;
+$fa-var-photo: $fa-var-image;
+$fa-var-picture-o: $fa-var-image;
+$fa-var-pie-chart: $fa-var-chart-pie;
+$fa-var-play-circle-o: $fa-var-play-circle;
+$fa-var-plus-square-o: $fa-var-plus-square;
+$fa-var-question-circle-o: $fa-var-question-circle;
+$fa-var-ra: $fa-var-rebel;
+$fa-var-refresh: $fa-var-sync;
+$fa-var-remove: $fa-var-times;
+$fa-var-reorder: $fa-var-bars;
+$fa-var-repeat: $fa-var-redo;
+$fa-var-resistance: $fa-var-rebel;
+$fa-var-rmb: $fa-var-yen-sign;
+$fa-var-rotate-left: $fa-var-undo;
+$fa-var-rotate-right: $fa-var-redo;
+$fa-var-rouble: $fa-var-ruble-sign;
+$fa-var-rub: $fa-var-ruble-sign;
+$fa-var-ruble: $fa-var-ruble-sign;
+$fa-var-rupee: $fa-var-rupee-sign;
+$fa-var-s15: $fa-var-bath;
+$fa-var-scissors: $fa-var-cut;
+$fa-var-send: $fa-var-paper-plane;
+$fa-var-send-o: $fa-var-paper-plane;
+$fa-var-share-square-o: $fa-var-share-square;
+$fa-var-shekel: $fa-var-shekel-sign;
+$fa-var-sheqel: $fa-var-shekel-sign;
+$fa-var-shield: $fa-var-shield-alt;
+$fa-var-sign-in: $fa-var-sign-in-alt;
+$fa-var-sign-out: $fa-var-sign-out-alt;
+$fa-var-signing: $fa-var-sign-language;
+$fa-var-sliders: $fa-var-sliders-h;
+$fa-var-smile-o: $fa-var-smile;
+$fa-var-snowflake-o: $fa-var-snowflake;
+$fa-var-soccer-ball-o: $fa-var-futbol;
+$fa-var-sort-alpha-asc: $fa-var-sort-alpha-down;
+$fa-var-sort-alpha-desc: $fa-var-sort-alpha-up;
+$fa-var-sort-amount-asc: $fa-var-sort-amount-down;
+$fa-var-sort-amount-desc: $fa-var-sort-amount-up;
+$fa-var-sort-asc: $fa-var-sort-up;
+$fa-var-sort-desc: $fa-var-sort-down;
+$fa-var-sort-numeric-asc: $fa-var-sort-numeric-down;
+$fa-var-sort-numeric-desc: $fa-var-sort-numeric-up;
+$fa-var-spoon: $fa-var-utensil-spoon;
+$fa-var-square-o: $fa-var-square;
+$fa-var-star-half-empty: $fa-var-star-half;
+$fa-var-star-half-full: $fa-var-star-half;
+$fa-var-star-half-o: $fa-var-star-half;
+$fa-var-star-o: $fa-var-star;
+$fa-var-sticky-note-o: $fa-var-sticky-note;
+$fa-var-stop-circle-o: $fa-var-stop-circle;
+$fa-var-sun-o: $fa-var-sun;
+$fa-var-support: $fa-var-life-ring;
+$fa-var-tablet: $fa-var-tablet-alt;
+$fa-var-tachometer: $fa-var-tachometer-alt;
+$fa-var-television: $fa-var-tv;
+$fa-var-thermometer: $fa-var-thermometer-full;
+$fa-var-thermometer-0: $fa-var-thermometer-empty;
+$fa-var-thermometer-1: $fa-var-thermometer-quarter;
+$fa-var-thermometer-2: $fa-var-thermometer-half;
+$fa-var-thermometer-3: $fa-var-thermometer-three-quarters;
+$fa-var-thermometer-4: $fa-var-thermometer-full;
+$fa-var-thumb-tack: $fa-var-thumbtack;
+$fa-var-thumbs-o-down: $fa-var-thumbs-down;
+$fa-var-thumbs-o-up: $fa-var-thumbs-up;
+$fa-var-ticket: $fa-var-ticket-alt;
+$fa-var-times-circle-o: $fa-var-times-circle;
+$fa-var-times-rectangle: $fa-var-window-close;
+$fa-var-times-rectangle-o: $fa-var-window-close;
+$fa-var-toggle-down: $fa-var-caret-square-down;
+$fa-var-toggle-left: $fa-var-caret-square-left;
+$fa-var-toggle-right: $fa-var-caret-square-right;
+$fa-var-toggle-up: $fa-var-caret-square-up;
+$fa-var-trash: $fa-var-trash-alt;
+$fa-var-trash-o: $fa-var-trash-alt;
+$fa-var-try: $fa-var-lira-sign;
+$fa-var-turkish-lira: $fa-var-lira-sign;
+$fa-var-unsorted: $fa-var-sort;
+$fa-var-usd: $fa-var-dollar-sign;
+$fa-var-user-circle-o: $fa-var-user-circle;
+$fa-var-user-o: $fa-var-user;
+$fa-var-vcard: $fa-var-address-card;
+$fa-var-vcard-o: $fa-var-address-card;
+$fa-var-video-camera: $fa-var-video;
+$fa-var-vimeo: $fa-var-vimeo-v;
+$fa-var-volume-control-phone: $fa-var-phone-volume;
+$fa-var-warning: $fa-var-exclamation-triangle;
+$fa-var-wechat: $fa-var-weixin;
+$fa-var-wheelchair-alt: $fa-var-accessible-icon;
+$fa-var-window-close-o: $fa-var-window-close;
+$fa-var-won: $fa-var-won-sign;
+$fa-var-y-combinator-square: $fa-var-hacker-news;
+$fa-var-yc: $fa-var-y-combinator;
+$fa-var-yc-square: $fa-var-hacker-news;
+$fa-var-yen: $fa-var-yen-sign;
+$fa-var-youtube-play: $fa-var-youtube;
diff --git a/public/vendor/fontawesome/scss/regular.scss b/public/vendor/fontawesome/scss/regular.scss
new file mode 100644
index 0000000000..0985c48df0
--- /dev/null
+++ b/public/vendor/fontawesome/scss/regular.scss
@@ -0,0 +1,26 @@
+/*!
+ * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2022 Fonticons, Inc.
+ */
+@import 'functions';
+@import 'variables';
+
+:root, :host {
+  --#{$fa-css-prefix}-style-family-classic: '#{ $fa-style-family }';
+  --#{$fa-css-prefix}-font-regular: normal 400 1em/1 '#{ $fa-style-family }';
+}
+
+@font-face {
+  font-family: 'Font Awesome 6 Free';
+  font-style: normal;
+  font-weight: 400;
+  font-display: $fa-font-display;
+  src: url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
+    url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype');
+}
+
+.far,
+.#{$fa-css-prefix}-regular {
+  font-weight: 400;
+}
diff --git a/public/vendor/fontawesome/scss/solid.scss b/public/vendor/fontawesome/scss/solid.scss
new file mode 100644
index 0000000000..9b90120033
--- /dev/null
+++ b/public/vendor/fontawesome/scss/solid.scss
@@ -0,0 +1,26 @@
+/*!
+ * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2022 Fonticons, Inc.
+ */
+@import 'functions';
+@import 'variables';
+
+:root, :host {
+  --#{$fa-css-prefix}-style-family-classic: '#{ $fa-style-family }';
+  --#{$fa-css-prefix}-font-solid: normal 900 1em/1 '#{ $fa-style-family }';
+}
+
+@font-face {
+  font-family: 'Font Awesome 6 Free';
+  font-style: normal;
+  font-weight: 900;
+  font-display: $fa-font-display;
+  src: url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),
+    url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype');
+}
+
+.fas,
+.#{$fa-css-prefix}-solid {
+  font-weight: 900;
+}
diff --git a/public/vendor/fontawesome/scss/v4-shims.scss b/public/vendor/fontawesome/scss/v4-shims.scss
new file mode 100644
index 0000000000..2e267770a9
--- /dev/null
+++ b/public/vendor/fontawesome/scss/v4-shims.scss
@@ -0,0 +1,11 @@
+/*!
+ * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2022 Fonticons, Inc.
+ */
+// V4 shims compile (Web Fonts-based)
+// -------------------------
+
+@import 'functions';
+@import 'variables';
+@import 'shims';
diff --git a/public/vendor/fontawesome/webfonts/6.2.0/fa-brands-400.ttf b/public/vendor/fontawesome/webfonts/6.2.0/fa-brands-400.ttf
new file mode 100644
index 0000000000..502f3621e7
Binary files /dev/null and b/public/vendor/fontawesome/webfonts/6.2.0/fa-brands-400.ttf differ
diff --git a/public/vendor/fontawesome/webfonts/6.2.0/fa-brands-400.woff2 b/public/vendor/fontawesome/webfonts/6.2.0/fa-brands-400.woff2
new file mode 100644
index 0000000000..d801b51f66
Binary files /dev/null and b/public/vendor/fontawesome/webfonts/6.2.0/fa-brands-400.woff2 differ
diff --git a/public/vendor/fontawesome/webfonts/6.2.0/fa-regular-400.ttf b/public/vendor/fontawesome/webfonts/6.2.0/fa-regular-400.ttf
new file mode 100644
index 0000000000..e0abe2710f
Binary files /dev/null and b/public/vendor/fontawesome/webfonts/6.2.0/fa-regular-400.ttf differ
diff --git a/public/vendor/fontawesome/webfonts/6.2.0/fa-regular-400.woff2 b/public/vendor/fontawesome/webfonts/6.2.0/fa-regular-400.woff2
new file mode 100644
index 0000000000..d736e4b24c
Binary files /dev/null and b/public/vendor/fontawesome/webfonts/6.2.0/fa-regular-400.woff2 differ
diff --git a/public/vendor/fontawesome/webfonts/6.2.0/fa-solid-900.ttf b/public/vendor/fontawesome/webfonts/6.2.0/fa-solid-900.ttf
new file mode 100644
index 0000000000..13c9489771
Binary files /dev/null and b/public/vendor/fontawesome/webfonts/6.2.0/fa-solid-900.ttf differ
diff --git a/public/vendor/fontawesome/webfonts/6.2.0/fa-solid-900.woff2 b/public/vendor/fontawesome/webfonts/6.2.0/fa-solid-900.woff2
new file mode 100644
index 0000000000..3516fdbe33
Binary files /dev/null and b/public/vendor/fontawesome/webfonts/6.2.0/fa-solid-900.woff2 differ
diff --git a/public/vendor/fontawesome/webfonts/6.2.0/fa-v4compatibility.ttf b/public/vendor/fontawesome/webfonts/6.2.0/fa-v4compatibility.ttf
new file mode 100644
index 0000000000..dc2981941d
Binary files /dev/null and b/public/vendor/fontawesome/webfonts/6.2.0/fa-v4compatibility.ttf differ
diff --git a/public/vendor/fontawesome/webfonts/6.2.0/fa-v4compatibility.woff2 b/public/vendor/fontawesome/webfonts/6.2.0/fa-v4compatibility.woff2
new file mode 100644
index 0000000000..28d46b15ac
Binary files /dev/null and b/public/vendor/fontawesome/webfonts/6.2.0/fa-v4compatibility.woff2 differ
diff --git a/public/vendor/fontawesome/webfonts/fa-brands-400.eot b/public/vendor/fontawesome/webfonts/fa-brands-400.eot
deleted file mode 100644
index d05ea581fb..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-brands-400.eot and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-brands-400.svg b/public/vendor/fontawesome/webfonts/fa-brands-400.svg
deleted file mode 100644
index 4e48a46697..0000000000
--- a/public/vendor/fontawesome/webfonts/fa-brands-400.svg
+++ /dev/null
@@ -1,3717 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
-<metadata>
-Created by FontForge 20201107 at Tue Mar 16 10:15:04 2021
- By Robert Madole
-Copyright (c) Font Awesome
-</metadata>
-<!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><defs>
-<font id="FontAwesome5Brands-Regular" horiz-adv-x="448" >
-  <font-face 
-    font-family="Font Awesome 5 Brands Regular"
-    font-weight="400"
-    font-stretch="normal"
-    units-per-em="512"
-    panose-1="2 0 5 3 0 0 0 0 0 0"
-    ascent="448"
-    descent="-64"
-    bbox="-0.200195 -66.9505 641.5 448.3"
-    underline-thickness="25"
-    underline-position="-50"
-    unicode-range="U+0020-F8E8"
-  />
-    <missing-glyph />
-    <glyph glyph-name="firefox-browser" unicode="&#xe007;" horiz-adv-x="512" 
-d="M130.63 324.51c0.160156 -0.00976562 0.0800781 -0.00976562 0 0zM482.05 279.16c15.2803 -36.7598 20.6709 -80.748 15.8213 -122.578c-0.370117 -3.15039 -0.700195 -6.29004 -1.11035 -9.41016c-19.6094 -115.04 -119.79 -202.62 -240.43 -202.62
-c-134.71 0 -243.92 109.19 -243.92 243.891v1.23926c0.149414 2.70996 0.30957 5.41016 0.490234 8.12012c0.0498047 0.240234 0.0498047 0.480469 0.0498047 0.719727c0.439453 6.29004 0.870117 10.3105 1.43945 14c0.240234 1.91309 0.5 3.82617 0.780273 5.73926
-c1.66992 12.2705 3.94043 22.21 4 22.4805c5.99219 26.8799 17.3516 52.1084 32.7305 73.8994v0c6.86816 9.79785 14.3965 18.8301 22.7695 27.3301c7.36719 7.53418 15.2451 14.2881 23.8398 20.4307c0.930664 0.629883 8.03027 4.83984 8.15039 4.30957
-c-0.570312 -8.42969 -1.24023 -48.8301 8.42969 -61.0801h0.120117c14.1602 15.9199 33.6504 33.96 58.71 45.3701c-2.38477 -9.13379 -3.64844 -18.6562 -3.64844 -28.5332c0 -10.7832 1.51367 -21.2158 4.33887 -31.0967
-c2.20508 -1.47852 4.29199 -3.05566 6.30957 -4.77051c3.71973 -3.14941 7.91992 -7.34961 16.7705 -16.0596c16.5498 -16.3096 59 -33.1797 59.0898 -35.1797c-0.400391 -6.08008 -21.8301 -27 -29.3301 -27c-69.3701 0 -80.6201 -41.9502 -80.6201 -41.9502
-c3.07031 -35.3301 27.6699 -64.4102 57.5098 -79.75c1.36035 -0.730469 2.74023 -1.37012 4.12012 -2c2.36035 -1.04004 4.74023 -2.02051 7.16016 -2.92969c9.95996 -3.52539 20.6885 -5.66895 31.7402 -6.12012c121.569 -5.7002 145.13 145.34 57.3896 189.199
-c22.4697 3.91016 45.8203 -5.12988 58.8203 -14.2793c-10.374 18.1104 -24.9414 33.167 -42.6602 44.1299c-0.993164 0.620117 -1.99316 1.21973 -3 1.7998c-1.55957 0.913086 -3.13965 1.79004 -4.74023 2.62988c-0.75 0.390625 -1.5 0.759766 -2.25 1.12988
-c-1.65332 0.813477 -3.32031 1.59668 -5.00098 2.34961c-1.07031 0.469727 -2.16016 0.910156 -3.25 1.34961c-1.33984 0.580078 -2.68945 1.08008 -4.0498 1.58008c-1.86035 0.669922 -3.73047 1.2998 -5.62012 1.87012c-0.679688 0.209961 -1.33008 0.429688 -2 0.629883
-c-10.8193 3.12793 -22.2139 4.82422 -34.0352 4.82422c-0.338867 0 -0.676758 -0.00195312 -1.01465 -0.00390625c-2 -0.0205078 -4 -0.100586 -6 -0.220703l-1.41992 -0.0996094c-14.8984 -1.04102 -29.2461 -4.92383 -42.1104 -11l-0.519531 -0.209961
-c-0.625977 -0.21582 -1.29688 -0.335938 -1.99609 -0.335938c-2.68164 0 -4.96289 1.72559 -5.79395 4.12598c-0.246094 0.669922 -0.388672 1.39258 -0.388672 2.14746c0 2.4541 1.41797 4.58008 3.47852 5.60254c14.7295 6.98535 31.1982 11.3564 48.3301 12.3301
-c5.7793 35.3994 28.2695 91.0098 82.5 122.78l-0.100586 -0.140625l0.180664 0.100586l0.120117 0.0693359c0.0732422 0.0195312 0.149414 0.0302734 0.229492 0.0302734c0.0791016 0 0.15625 -0.0107422 0.230469 -0.0302734
-c0.30957 -0.0390625 0.550781 -0.303711 0.550781 -0.624023c0 -0.0117188 -0.000976562 -0.0244141 -0.000976562 -0.0361328c0.84375 -3.34961 2.08887 -6.61523 3.63965 -9.61914c0.830078 -1.70996 1.69043 -3.40039 2.69043 -5.05078
-c1.87988 -3.21973 3.80957 -6.2793 5.73926 -9.33008c38.2002 -60.3594 84.9707 -88.0791 112.551 -156.829c-0.0507812 0.269531 -0.0507812 0.40918 -0.0507812 0.40918c-3.0293 20.1201 -10.9795 47.1104 -24.6992 74
-c16.8594 -8.72949 38.3301 -36.2295 48.9395 -61.7295z" />
-    <glyph glyph-name="ideal" unicode="&#xe013;" horiz-adv-x="576" 
-d="M125.61 282.52c27.0713 -0.0107422 49.0488 -21.9873 49.0596 -49.0596v-0.00976562c0 -27.083 -21.9873 -49.0703 -49.0703 -49.0703c-27.082 0 -49.0693 21.9873 -49.0693 49.0703c0 27.082 21.9873 49.0693 49.0693 49.0693h0.0107422zM86.1504 22.1602v140.52
-h78.9395v-140.52h-78.9395zM237.61 233.76c0 -20.4502 -8.99023 -23.2598 -18.7402 -23.2598h-14.0498v45.79h14.0498c8.74023 0 18.7402 -2.53027 18.7402 -22.5303zM439.3 187.76h57.0898c-1.7793 -98.4795 -52.1094 -165.64 -196.72 -165.64h-94.8301v165.62h14
-c25.9805 0 41.5 17.1895 41.5 46c0 27.9102 -15.8994 45.2598 -41.5 45.2598h-14v82.8096h94.8301c88.9404 0 186.83 -26.8896 196.07 -151.31h-33.6904v68.5703h-22.75v-91.3105zM329.55 187.76l-0.0400391 22.7402h-33.5098v12.5h30v22.6904h-30v10.5791h31.7305v22.7305
-h-54.4307v-91.2402h56.25zM404.21 187.76l23.6699 -0.0195312l-27.5303 91.3398h-32.3496l-27.5303 -91.3203h23.6602l5.17969 17.6699h29.7402zM299.65 416c218.35 0 250.97 -140 251 -223.48c0 -144.789 -89.1504 -224.52 -251 -224.52h-267.65v448h267.65z
-M299.65 -10.9199c148.899 0 229.899 69.3496 229.899 203.439c0 137.801 -87.7998 202.41 -229.899 202.41h-246.58v-405.85h246.58zM383.51 253.93h1.37012l7.52051 -25.8096h-16.4004z" />
-    <glyph glyph-name="microblog" unicode="&#xe01a;" 
-d="M399.36 85.7695l0.149414 0.0605469c-13.5439 -15.3408 -21.7432 -35.5967 -21.7432 -57.6494c0 -19.957 6.73438 -38.3545 18.0537 -53.041c0.589844 -0.745117 0.944336 -1.68652 0.944336 -2.71094c0 -0.311523 -0.0322266 -0.615234 -0.0947266 -0.90918
-c-0.416992 -2.00684 -2.19434 -3.52051 -4.32422 -3.52051c-0.306641 0 -0.606445 0.03125 -0.895508 0.0908203c-32.2803 7.17969 -61.3105 24.8301 -79.8906 49.9199c-1.30566 1.78906 -3.41699 2.94434 -5.7998 2.94434
-c-0.811523 0 -1.5918 -0.135742 -2.31934 -0.383789c-24.7363 -8.66016 -51.3818 -13.4404 -79.0586 -13.4404h-0.381836c-122.86 0 -222.46 91.4805 -222.46 204.43c0 112.95 99.5996 204.44 222.46 204.44s222.46 -91.4902 222.46 -204.44
-c0 -47.4492 -17.6104 -91.0996 -47.0996 -125.79zM329.52 235.6c1.56738 1.18652 2.57324 3.03516 2.57324 5.15039c0 3.57227 -2.88672 6.47461 -6.45312 6.5l-71.8799 1.50977l-23.6602 67.9199c-0.882812 2.54199 -3.29688 4.36914 -6.1377 4.36914
-s-5.25879 -1.82715 -6.1416 -4.36914l-23.6602 -67.9199l-71.8799 -1.50977c-3.5293 -0.0673828 -6.38086 -2.95117 -6.38086 -6.49609c0 -2.11523 1.01367 -3.99707 2.58105 -5.18359l57.2998 -43.4902l-20.79 -68.8604
-c-0.178711 -0.59375 -0.269531 -1.21875 -0.269531 -1.87109c0 -3.59277 2.91699 -6.50977 6.50977 -6.50977c1.37793 0 2.65723 0.429688 3.70996 1.16113l59.0596 41.0801l59.0596 -41.0498c1.05371 -0.735352 2.33984 -1.1709 3.71973 -1.1709
-c3.58789 0 6.5 2.91211 6.5 6.5c0 0.657227 -0.0976562 1.29199 -0.279297 1.89062l-20.7803 68.8604z" />
-    <glyph glyph-name="pied-piper-square" unicode="&#xe01e;" 
-d="M32 29l-32 -60.2002l0.799805 328c0 65.9004 53.2002 119.2 119.2 119.2h327.2c-93 -28.9004 -189.9 -94.2002 -253.9 -168.6c-70.5996 -81.4004 -110.7 -137.4 -161.3 -218.4zM448 416c0 0 0 -328.8 0.0996094 -328.8c0 -65.9004 -53.2998 -119.2 -119.3 -119.2
-h-328.399c18.5 25.5 61.6992 54 84.8994 66c35.5 18.0996 76.4004 28.5 105.3 56.2998c42.1006 40.5 47.8008 105 71 158.601c43.6006 100.3 186.4 167.1 186.4 167.1z" />
-    <glyph glyph-name="unity" unicode="&#xe049;" horiz-adv-x="576" 
-d="M498.11 241.6l-30 -49.5996l30 -49.6299l-52.8008 -191.62l-197.079 51.3604l-29.2402 50l-59.1699 -0.430664l-144.28 140.32l144.26 140.29l59.2002 -0.429688l29.2002 50.0596l197.109 51.3604zM223.77 323.8l-108.899 -108.13h173.13l86.5498 145.82zM223.77 60.1699
-l150.78 -37.6895l-86.5498 145.81h-173.13zM416.77 46.1699l41.79 145.83l-41.8096 145.84l-86.5801 -145.84z" />
-    <glyph glyph-name="dailymotion" unicode="&#xe052;" 
-d="M298.93 181c7.14062 -4 12.9844 -9.85254 16.9727 -17c3.86426 -6.83691 6.10059 -14.7783 6.10059 -23.1865c0 -0.0947266 0 -0.188477 -0.000976562 -0.283203c-0.0332031 -13.6602 -4.58691 -25.084 -13.6602 -34.2705s-20.4434 -13.7793 -34.1104 -13.7793
-c-13.4336 0 -24.5771 4.47949 -33.4307 13.4395s-13.2803 20.4932 -13.2803 34.5996c0 13.4336 4.53711 24.5742 13.6104 33.4209s20.2197 13.2695 33.4395 13.2695c0.214844 0.00292969 0.469727 -0.0263672 0.685547 -0.0263672
-c8.59668 0 16.6738 -2.24609 23.6738 -6.18359zM0.00195312 416h448v-448h-448v448zM374.712 42.7402l-0.0302734 264.349l-55.79 -12.0898v-77.9199c-7.81348 7.86035 -16.1465 13.5273 -25 17.001c-8.87695 3.35352 -18.5127 5.21875 -28.5576 5.21875
-c-0.394531 0 -0.789062 -0.00292969 -1.18164 -0.00878906c-17.6934 -0.00683594 -33.6006 -4.37305 -47.7207 -13.0996c-14.0625 -8.68066 -25.4102 -20.9805 -32.9297 -35.7803c-7.83984 -15.1064 -11.7598 -31.8467 -11.7598 -50.2197
-c-0.00683594 -18.8066 3.85645 -35.7705 11.5898 -50.8906c7.45215 -14.8447 18.8232 -27.1611 32.9395 -35.7695c14.2197 -8.7334 30.5166 -13.1006 48.8906 -13.1006c26.6602 0 45.2539 8.7334 55.7803 26.2002h0.669922v-23.8896h53.0996z" />
-    <glyph glyph-name="instagram-square" unicode="&#xe055;" 
-d="M224 245.34c29.4385 -0.0107422 53.3379 -23.9043 53.3604 -53.3398c0 -29.4395 -23.9004 -53.3398 -53.3398 -53.3398s-53.3398 23.9004 -53.3398 53.3398c0 29.4326 23.8896 53.3291 53.3193 53.3398zM348.71 286.34
-c8.34961 -21.0703 6.46973 -71.0596 6.46973 -94.3398s1.91992 -73.3301 -6.42969 -94.3301c-5.4834 -13.8955 -16.5146 -24.9268 -30.4102 -30.4102c-21.0596 -8.35938 -70.9902 -6.42969 -94.2998 -6.42969s-73.3096 -1.86035 -94.3096 6.42969
-c-13.8955 5.4834 -24.9277 16.5146 -30.4102 30.4102c-8.32031 21.0703 -6.4707 71.0605 -6.4707 94.3398c0 23.2803 -1.84961 73.3301 6.43066 94.3301c5.48242 13.8955 16.5146 24.9268 30.4102 30.4102c21.0596 8.36035 71.0098 6.42969 94.3096 6.42969
-s73.2998 1.86035 94.2998 -6.42969c13.8955 -5.4834 24.9268 -16.5146 30.4102 -30.4102zM224 110c0.0341797 0 0.0664062 -0.00195312 0.0996094 -0.00195312c45.2021 0 81.9004 36.6982 81.9004 81.9004v0.101562c0 45.2568 -36.7432 82 -82 82s-82 -36.7432 -82 -82
-s36.7432 -82 82 -82zM309.38 258.3c10.5371 0.00585938 19.1299 8.52051 19.1299 19.0586v0.0820312c0 10.5635 -8.57617 19.1396 -19.1396 19.1396c-10.5645 0 -19.1406 -8.57617 -19.1406 -19.1396c0 -10.5645 8.57617 -19.1406 19.1406 -19.1406h0.00976562zM400 416
-c26.4922 0 48 -21.5078 48 -48v-352c0 -26.4922 -21.5078 -48 -48 -48h-352c-26.4922 0 -48 21.5078 -48 48v352c0 26.4922 21.5078 48 48 48h352zM382.88 126c1.49023 26.4404 1.49023 105.56 0 131.88c-1.21973 25.6299 -7.17969 48.3506 -25.8496 67.0498
-c-18.6699 18.7002 -41.3701 24.5605 -67 25.8506c-26.4102 1.48926 -105.59 1.48926 -132 0c-25.5303 -1.2207 -48.2207 -7.12012 -67 -25.7803c-18.7803 -18.6602 -24.5605 -41.3701 -25.8506 -67c-1.48926 -26.3896 -1.48926 -105.58 0 -132
-c1.2207 -25.5801 7.11035 -48.2998 25.8506 -67c18.7393 -18.7002 41.3701 -24.5596 67 -25.8496c26.4102 -1.49023 105.59 -1.49023 132 0c25.5996 1.21973 48.29 7.18945 67 25.8496s24.5596 41.3701 25.8496 67z" />
-    <glyph glyph-name="mixer" unicode="&#xe056;" horiz-adv-x="512" 
-d="M114.57 371.93l128.319 -172.399c1.44531 -1.99805 2.29785 -4.47461 2.29785 -7.12598c0 -2.65234 -0.852539 -5.10645 -2.29785 -7.10449l-128.89 -173.24c-8.33594 -11.1826 -21.6582 -18.3877 -36.666 -18.3877c-11.877 0 -22.7031 4.54004 -30.834 11.9785
-c-17.8496 16.1797 -18.9697 43.5195 -4.74023 62.7695l92.3301 124.15l-91.7803 123c-14.25 19.25 -12.8291 46.5898 4.75 62.7695c8.13281 7.44141 18.9551 12.0264 30.8359 12.0264c15.0088 0 28.3389 -7.25 36.6748 -18.4365zM470.24 68.4199
-c14.2295 -19.25 13.1094 -46.5898 -4.73047 -62.7695c-8.13184 -7.44141 -18.9551 -12.0264 -30.835 -12.0264c-15.0098 0 -28.3389 7.25 -36.6748 18.4355l-128.57 173.5c-1.44434 1.99805 -2.29688 4.47461 -2.29688 7.12598c0 2.65234 0.852539 5.10645 2.29688 7.10449
-l128 172.12c8.33594 11.1855 21.6602 18.3926 36.6699 18.3926c11.8809 0 22.708 -4.54199 30.8408 -11.9824c17.5791 -16.1807 18.9697 -43.5205 4.75 -62.7705l-91.7803 -123z" />
-    <glyph glyph-name="shopify" unicode="&#xe057;" 
-d="M388.32 343.9c0.399414 -2.40039 54.4395 -367.9 54.4395 -367.9l-125.689 -31.2002v432.73c8.00977 -8.01074 29.6201 -28.8301 29.6201 -28.8301s35.2295 -0.799805 37.2295 -0.799805c2.25 -0.103516 4.08887 -1.81055 4.40039 -4zM288.65 377.53
-c9.20996 2.7998 13.3604 4.18945 14.8096 4.39941c1.4502 0.209961 2.90625 0.34375 4.40039 0.400391v-438.33l-302.58 52.4805s36.7998 281.819 38 291.819c1.58984 13.2002 2 13.6006 16 18c0.399414 0.400391 19.6094 6.41016 47.2295 14.8105
-c2.82031 21.2197 13.21 48.4395 26.8203 70.0596c19.25 30.8301 43.25 48.0303 67.25 48.8301c12.4199 0.370117 22.8203 -3.62988 30.8203 -12.4004c0.399414 -0.799805 1.19922 -1.19922 1.59961 -2c1.11914 0.267578 2.27051 0.40918 3.4707 0.40918
-c0.176758 0 0.353516 -0.00292969 0.529297 -0.00878906c18.4199 0 34 -10.8496 44.4404 -30.8604c2.84082 -5.58887 5.28809 -11.5479 7.20996 -17.6094zM233.41 360.31c0.399414 13.21 -1.2002 32.8301 -8.00977 47.2002
-c-6.80078 -3.2002 -12.8105 -8.41016 -17.21 -12.8096c-11.21 -12.3701 -20.8203 -31.1807 -25.6201 -50c17.21 5.20996 34.8398 10.8096 50.8398 15.6094zM200.58 423.56c-36.8301 -0.799805 -69.25 -58.8398 -78.0098 -97.2295c13.1699 4 27.5801 8.40039 42 12.8096
-c4.7998 24.4502 16.4102 50.0303 31.6201 66.4502c6 6 12.4092 11.21 18.8096 14.4102c-3.99414 2.26367 -8.625 3.57422 -13.54 3.57422c-0.293945 0 -0.587891 -0.00488281 -0.879883 -0.0146484zM154.15 203.39c-0.400391 4.81055 0 23.6104 29.6191 25.6201
-c20.4209 1.60059 37.6309 -6.39941 37.6309 -6.39941l15.21 57.5996s-13.2305 6.41016 -39.2305 4.80957c-67.25 -4.40918 -97.6699 -51.2393 -94.4697 -97.6797c3.59961 -55.2402 58.8398 -53.2402 60.8398 -86.8594
-c0.410156 -8.01074 -4.80957 -19.6201 -18.8096 -20.4209c-21.6201 -1.59961 -48.4404 18.8203 -48.4404 18.8203l-10.4004 -44s26.8203 -28.8203 75.6504 -25.6201c40.4297 2.41016 68.4502 34.8301 65.6504 82.4707c-4 60.4395 -71.6504 66.0498 -73.25 91.6592z
-M249.42 365.12c8.80664 2.7998 16.8135 5.2002 24.0205 7.2002c-4.01074 12.4297 -12.8105 32.8301 -31.2305 36.4297c5.61035 -14.4102 7.20996 -31.6299 7.20996 -43.6299z" />
-    <glyph glyph-name="deezer" unicode="&#xe077;" horiz-adv-x="576" 
-d="M451.46 203.29v72.71h124.54v-72.71h-124.54zM451.46 377.18h124.54v-72.6699h-124.54v72.6699zM451.46 102.12v72.6797h124.54v-72.6797h-124.54zM0 0.910156v72.6699h124.54v-72.6699h-124.54zM150.47 0.910156v72.6699h124.53v-72.6699h-124.53zM300.99 0.910156
-l0.00976562 72.6699h124.53v-72.6699h-124.54zM451.46 0.910156v72.6699h124.54v-72.6699h-124.54zM301 102.12v72.6797h124.53v-72.6797h-124.53zM150.48 102.12l-0.0107422 72.6797h124.53v-72.6797h-124.52zM150.48 203.29l-0.0107422 72.71h124.53v-72.71h-124.52z" />
-    <glyph glyph-name="edge-legacy" unicode="&#xe078;" horiz-adv-x="512" 
-d="M25.71 219.84l0.349609 0.480469c0 -0.160156 0 -0.320312 -0.0693359 -0.480469h-0.280273zM486.29 204.33v-52.0703h-314.08c1.38965 -128.49 191.39 -124.06 272.26 -67.5693v-104.431c-47.3594 -28.5293 -156.779 -53.1699 -240.13 -21.3301
-c-70.6201 27.1602 -119.92 100.551 -120.75 172c-1.09961 92.2207 45.7002 153.42 120.75 188.32c-15.79 -19.9297 -27.9697 -41.54 -34.3398 -78.9297h175.85c10.25 105 -99.4199 105 -99.4199 105c-103.3 -3.62012 -177.949 -63.6904 -220.37 -125
-c14.5605 114.47 92.9404 219.96 232.83 219.68c85.0205 0 157.61 -39.8799 198.591 -113.27c21.0498 -37.9404 28.8096 -78.4004 28.8096 -122.4z" />
-    <glyph glyph-name="google-pay" unicode="&#xe079;" horiz-adv-x="640" 
-d="M105.72 233h99.6602c1.1543 -7.06152 1.75 -14.1768 1.75 -21.5635v-0.216797c0 -32.7598 -11.4102 -60.2998 -31.4102 -78.9102c-17.4502 -16.3799 -41.5293 -25.9092 -70 -25.9092c-41.4531 0.103516 -77.2598 24.0869 -94.3799 59v0.149414
-c-7.21582 14.4512 -11.2773 30.957 -11.2773 48.1943c0 17.2383 4.06152 33.5352 11.2773 47.9863c17.1172 34.9355 52.9199 58.9502 94.3799 59.1094c0.344727 0.00390625 0.699219 0.00585938 1.04492 0.00585938c27 0 51.5469 -10.5928 69.7051 -27.8457
-l-30.2793 -30.6201c-10.1777 9.95508 -24.0938 16.0898 -39.4404 16.0898c-0.357422 0 -0.713867 -0.00292969 -1.07031 -0.00976562c-27.5996 0 -50.9297 -18.9102 -59.2998 -44.3701v0c-2.12109 -6.44824 -3.26855 -13.3545 -3.26855 -20.5088
-s1.14746 -14.043 3.26855 -20.4912c8.37012 -25.3096 31.7002 -44.2197 59.2998 -44.2197c14.2803 0 26.46 3.72949 36 10.2803c10.9629 7.39648 18.7705 19.0664 21.1406 32.5996h-57.1006v41.25zM495.13 237c10.1299 -9.33984 15.1201 -22.4502 15.0498 -39v-78.7002
-h-22.6094v17.7197h-1c-9.79004 -14.5898 -22.71 -21.8896 -39 -21.8896c-13.79 0 -25.54 4.16992 -34.79 12.5098c-8.55078 7.29199 -13.9541 18.1143 -13.9541 30.2207c0 0.350586 0.00488281 0.701172 0.0136719 1.0498c0 13.25 4.98047 23.6699 14.8203 31.5596
-c9.83984 7.89062 23.0498 11.7705 39.4902 11.7705c14.0898 0 25.54 -2.68066 34.6396 -7.75v5.50977c-0.00488281 8.47461 -3.75098 16.0723 -9.69043 21.2305c-6.02051 5.44141 -14.0078 8.76855 -22.75 8.78906c-13.2061 0 -23.626 -5.66699 -31.2598 -17
-l-20.8496 13.2607c11.1602 16.5195 28.04 24.8594 50.5 24.8594c17.46 0 31.2598 -4.75977 41.3896 -14.1396zM475.9 147.7c7.7793 7.4502 11.7393 16.2295 11.7393 26.3594c-7.33984 5.94043 -17.6396 8.94043 -30.7998 8.78027c-9.54004 0 -17.75 -2.38965 -24.0703 -7
-c-6.31934 -4.60938 -9.53906 -10.4199 -9.53906 -17.4199c-0.000976562 -0.0332031 -0.0166016 -0.0546875 -0.0166016 -0.0878906c0 -6.35449 3.05957 -12 7.78613 -15.542c4.8916 -3.90625 11.1035 -6.25391 17.8447 -6.25391
-c0.162109 0 0.324219 0.000976562 0.485352 0.00390625c10.3965 0.0126953 19.8076 4.2793 26.5703 11.1602zM382.25 289.7c10.4268 -9.92188 16.9102 -23.9102 16.9102 -39.4248c0 -14.166 -5.4209 -27.0752 -14.2998 -36.7656
-c-0.890625 -0.889648 -1.77051 -1.79004 -2.65039 -2.67969c-11.0098 -10.5703 -24.5098 -15.9297 -40.5098 -15.9297h-39v-75.6406h-23.6299v186.74h62.6699c0.379883 0.0078125 0.749023 0.0185547 1.13086 0.0185547c15.3701 0 29.2949 -6.23828 39.3789 -16.3184z
-M365.67 227.47c5.5957 5.94141 9.03223 13.9971 9.03223 22.7939c0 9.18164 -3.7373 17.4961 -9.77246 23.5059c-5.78027 5.70801 -13.7236 9.23047 -22.4814 9.23047h-0.118164h-39.6299v-65.21h39.6299c0.328125 -0.0107422 0.640625 -0.0253906 0.970703 -0.0253906
-c8.82031 0 16.7754 3.7334 22.3691 9.70508zM614.31 247h25.6904l-79 -183.87h-24.3496l29.3496 64.3203l-51.79 119.55h25.6904l37.4199 -91.7002h0.449219z" />
-    <glyph glyph-name="rust" unicode="&#xe07a;" horiz-adv-x="512" 
-d="M508.52 198.25c2.09375 -1.2959 3.44043 -3.60449 3.44043 -6.24512c0 -2.6416 -1.39648 -4.95898 -3.49023 -6.25488l-21.8193 -13.5098c-0.169922 -1.95996 -0.34082 -3.91992 -0.550781 -5.87012l18.7207 -17.5c1.43457 -1.3418 2.33203 -3.24805 2.33203 -5.36523
-c0 -3.15039 -1.98535 -5.83984 -4.77246 -6.88477l-24 -9c-0.540039 -1.88965 -1.08008 -3.78027 -1.66992 -5.65039l15 -20.8301c0.865234 -1.20508 1.37207 -2.68945 1.37207 -4.28516c0 -3.65234 -2.66992 -6.68555 -6.16211 -7.25488l-25.4199 -4.14941
-c-0.900391 -1.71973 -1.79004 -3.4502 -2.73047 -5.15039l10.6807 -23.4199c0.420898 -0.925781 0.655273 -1.96875 0.655273 -3.05176c0 -1.50781 -0.455078 -2.91113 -1.23535 -4.07812c-1.29199 -1.97168 -3.51172 -3.26758 -6.04297 -3.26758
-c-0.109375 0 -0.21875 0.00292969 -0.327148 0.0078125l-25.8203 0.910156c-1.18652 -1.4873 -2.38965 -2.9541 -3.60938 -4.40039l5.92969 -25.1602c0.125977 -0.538086 0.196289 -1.0957 0.196289 -1.67188c0 -4.0625 -3.29785 -7.36035 -7.35938 -7.36035
-c-0.577148 0 -1.13867 0.0664062 -1.67676 0.192383l-25.1504 5.92969c-1.45312 -1.21289 -2.91992 -2.41602 -4.39941 -3.60938l0.90918 -25.8203c0.00390625 -0.0878906 -0.000976562 -0.167969 -0.000976562 -0.256836c0 -4.05664 -3.29395 -7.34961 -7.34961 -7.34961
-c-1.08398 0 -2.1123 0.235352 -3.03906 0.65625l-23.4199 10.6807c-1.7002 -0.94043 -3.42969 -1.83008 -5.15039 -2.73047l-4.14941 -25.4199c-0.56543 -3.49121 -3.60254 -6.16309 -7.25293 -6.16309c-1.59961 0 -3.08105 0.512695 -4.28711 1.38281l-20.8203 15
-c-1.87012 -0.599609 -3.75977 -1.12988 -5.64941 -1.67969l-9 -24c-1.05078 -2.7832 -3.7373 -4.7627 -6.88574 -4.7627c-2.11426 0 -4.02148 0.892578 -5.36426 2.32227l-17.5 18.7305c-1.9502 -0.219727 -3.88086 -0.390625 -5.88086 -0.560547l-13.5098 -21.8193
-c-1.2959 -2.09375 -3.60352 -3.49023 -6.24512 -3.49023s-4.95898 1.39648 -6.25488 3.49023l-13.5098 21.8193c-1.95996 0.169922 -3.92969 0.34082 -5.87988 0.550781l-17.5 -18.7207c-1.34277 -1.42969 -3.24707 -2.32422 -5.36133 -2.32422
-c-3.14844 0 -5.83789 1.98145 -6.88867 4.76465l-9 24c-1.88965 0.549805 -3.79004 1.08008 -5.65039 1.67969l-20.8301 -15c-1.20605 -0.870117 -2.69434 -1.37988 -4.29395 -1.37988c-3.64941 0 -6.68066 2.66895 -7.24609 6.16016l-4.14941 25.4199
-c-1.71973 0.900391 -3.4502 1.79004 -5.14062 2.73047l-23.4297 -10.6807c-0.925781 -0.420898 -1.96094 -0.664062 -3.04492 -0.664062c-4.05664 0 -7.34961 3.29297 -7.34961 7.34961c0 0.0888672 0.00195312 0.176758 0.00488281 0.264648l0.919922 25.8203
-c-1.4873 1.18652 -2.95703 2.38965 -4.41016 3.60938l-25.1602 -5.92969c-0.538086 -0.125977 -1.0957 -0.196289 -1.67188 -0.196289c-4.0625 0 -7.36035 3.29785 -7.36035 7.35938c0 0.577148 0.0664062 1.13867 0.192383 1.67676l5.92969 25.1602
-c-1.21973 1.45312 -2.41992 2.91992 -3.59961 4.40039l-25.8301 -0.910156c-0.125977 -0.00683594 -0.243164 -0.0175781 -0.371094 -0.0175781c-2.5166 0 -4.72949 1.30664 -5.99902 3.27734c-0.776367 1.16504 -1.23047 2.57812 -1.23047 4.08301
-c0 1.08691 0.236328 2.11816 0.660156 3.04688l10.6309 23.4297c-0.94043 1.69043 -1.83008 3.4209 -2.73047 5.14062l-25.4199 4.14941c-3.49219 0.569336 -6.16504 3.60938 -6.16504 7.26172c0 1.5957 0.509766 3.07324 1.375 4.27832l15 20.8301
-c-0.599609 1.87012 -1.12988 3.76074 -1.67969 5.65039l-24 9c-2.78711 1.04492 -4.77148 3.73145 -4.77148 6.88184c0 2.11719 0.896484 4.02637 2.33105 5.36816l18.7197 17.5c-0.209961 1.9502 -0.379883 3.87012 -0.549805 5.87012l-21.8193 13.5098
-c-2.09473 1.2959 -3.49023 3.60449 -3.49023 6.24512c0 2.6416 1.39551 4.95898 3.49023 6.25488l21.8594 13.5c0.169922 1.96973 0.339844 3.92969 0.549805 5.87988l-18.7197 17.5c-1.43457 1.3418 -2.33203 3.24805 -2.33203 5.36523
-c0 3.15039 1.98535 5.83984 4.77246 6.88477l24 9c0.549805 1.88965 1.08984 3.79004 1.67969 5.66016l-15 20.8203c-0.865234 1.20508 -1.37207 2.68945 -1.37207 4.28516c0 3.65234 2.66992 6.68555 6.16211 7.25488l25.4102 4.13965
-c0.899414 1.72949 1.79004 3.45996 2.72949 5.16016l-10.6602 23.4102c-0.423828 0.927734 -0.65918 1.97363 -0.65918 3.06055c0 1.50391 0.453125 2.90332 1.22949 4.06934c1.33398 1.97266 3.58398 3.26367 6.14258 3.26367
-c0.0761719 0 0.152344 -0.00195312 0.227539 -0.00390625l25.8096 -0.910156c1.19043 1.48047 2.39062 2.95996 3.62012 4.41016l-5.92969 25.1602c-0.125977 0.538086 -0.196289 1.0957 -0.196289 1.67188c0 4.0625 3.29785 7.36035 7.35938 7.36035
-c0.577148 0 1.13867 -0.0664062 1.67676 -0.192383l25.1504 -5.96973c1.41992 1.21973 2.92969 2.41992 4.41992 3.60938l-0.919922 25.8105c-0.00488281 0.104492 -0.000976562 0.201172 -0.000976562 0.307617c0 4.05566 3.29395 7.34961 7.35059 7.34961
-c1.08398 0 2.11328 -0.235352 3.04004 -0.657227l23.4004 -10.6299c1.70996 0.939453 3.42969 1.83008 5.16016 2.72949l4.14941 25.4102c0.569336 3.49219 3.60938 6.16504 7.26172 6.16504c1.5957 0 3.07324 -0.509766 4.27832 -1.375l20.8203 -15
-c1.87012 0.599609 3.76953 1.12988 5.66016 1.67969l9 24c1.04492 2.78711 3.73145 4.77148 6.88184 4.77148c2.11719 0 4.02637 -0.896484 5.36816 -2.33105l17.5 -18.7197c1.94922 0.209961 3.87988 0.379883 5.87988 0.549805l13.5098 21.8193
-c1.2959 2.09473 3.60449 3.49023 6.24512 3.49023c2.6416 0 4.95898 -1.39551 6.25488 -3.49023l13.4805 -21.8398c1.96973 -0.169922 3.92969 -0.339844 5.87988 -0.549805l17.5 18.7197c1.3418 1.43457 3.24805 2.33301 5.36523 2.33301
-c3.14941 0 5.83984 -1.98535 6.88477 -4.77246l9 -24c1.88965 -0.540039 3.7793 -1.08008 5.63965 -1.66992l20.8604 14.9697c1.20508 0.865234 2.68945 1.37207 4.28516 1.37207c3.65234 0 6.68555 -2.66992 7.25488 -6.16211l4.14941 -25.4199
-c1.71973 -0.889648 3.4502 -1.79004 5.15039 -2.73047l23.4199 10.7305c0.926758 0.421875 1.96289 0.666016 3.04688 0.666016c4.05664 0 7.34961 -3.29395 7.34961 -7.35059c0 -0.105469 -0.00195312 -0.210938 -0.00683594 -0.31543l-0.910156 -25.8203
-c1.4873 -1.18652 2.9541 -2.38965 4.40039 -3.60938l25.1602 5.92969c0.538086 0.125977 1.0957 0.196289 1.67188 0.196289c4.0625 0 7.36035 -3.29785 7.36035 -7.35938c0 -0.577148 -0.0664062 -1.13867 -0.192383 -1.67676l-5.87988 -25.1602
-c1.21387 -1.45312 2.41699 -2.91992 3.61035 -4.40039l25.8193 0.910156c0.0878906 0.00292969 0.167969 -0.000976562 0.256836 -0.000976562c4.05664 0 7.34961 -3.29395 7.34961 -7.35059c0 -1.08301 -0.234375 -2.1123 -0.65625 -3.03809l-10.6797 -23.4199
-c0.939453 -1.7002 1.83008 -3.41992 2.72949 -5.15039l25.4199 -4.14941c3.49219 -0.569336 6.16504 -3.60938 6.16504 -7.26172c0 -1.5957 -0.509766 -3.07324 -1.375 -4.27832l-15 -20.8301c0.589844 -1.86035 1.12988 -3.76074 1.66992 -5.64062l24 -9
-c2.78711 -1.04492 4.77148 -3.73145 4.77148 -6.88184c0 -2.11719 -0.896484 -4.02637 -2.33105 -5.36816l-18.7197 -17.5c0.209961 -1.94922 0.379883 -3.87988 0.549805 -5.87988zM357.52 69.1699l32.1406 -6.87988c6.28125 6.3125 12.0029 12.9395 17.3398 20.0898
-h-79.0498c-12.5 0 -24.21 17.6396 -27.1006 26.46c-2.88965 7.86035 -7.14941 32.4502 -9.05957 40c-6.12988 24.5898 -25.3799 25.8701 -29.79 25.8701h-48.4805l-0.0498047 -34.3496h44.8301c1.71973 0 2.89062 -0.34082 2.89062 -1.91016v-54.1904
-c0 -1.62012 -1.1709 -1.91016 -2.89062 -1.91016h-153.17c5.01953 -6.80957 10.3848 -13.1465 16.2598 -19.21l31.5107 6.76074c0.935547 0.199219 1.89746 0.294922 2.89258 0.294922c6.66211 0 12.2344 -4.70801 13.5674 -10.9756l7.63965 -35.6602
-c23.9688 -11.1318 50.9941 -17.3506 79.1416 -17.3506c27.5205 0 53.665 5.94141 77.2188 16.6113l7.63965 35.6699c1.34668 6.27246 6.91797 10.9893 13.5908 10.9893c1.00488 0 1.98438 -0.106445 2.92871 -0.30957zM383.29 34.6797
-c0 0.00585938 -0.0576172 0.0107422 -0.0576172 0.0166016c0 8.25977 -6.58887 14.9922 -14.792 15.2236h-0.44043c-8.3877 -0.0273438 -15.1904 -6.8457 -15.1904 -15.2402c0 -8.41113 6.8291 -15.2393 15.2402 -15.2393s15.2402 6.82812 15.2402 15.2393zM157.67 35.3604
-c0 0.00195312 -0.0576172 0.00488281 -0.0576172 0.0078125c0 8.24707 -6.56055 14.9736 -14.7422 15.2422h-0.450195c-8.40625 -0.00585938 -15.2295 -6.83203 -15.2295 -15.2402c0 -8.41113 6.82812 -15.2402 15.2393 -15.2402c8.4082 0 15.2344 6.82324 15.2402 15.2305z
-M69.5703 213.85c-0.725586 -6.69922 -1.0625 -13.2754 -1.0625 -20.167c0 -17.8242 2.49023 -35.0713 7.14258 -51.4131h53.5996v119.73h-26.5596l6.76953 -15.2197c0.765625 -1.7207 1.20801 -3.62988 1.20801 -5.63281c0 -5.66406 -3.39941 -10.54 -8.26758 -12.6973z
-M58.3096 249.91c0.00292969 -8.4082 6.84375 -15.2236 15.2529 -15.2236c8.41113 0 15.2402 6.82812 15.2402 15.2393c0 8.26562 -6.59375 15.0029 -14.8027 15.2344h-0.459961c-8.40625 -0.00585938 -15.2305 -6.83203 -15.2305 -15.2402v-0.00976562zM213.47 225.42
-h58.7002c12.4902 0 27.6797 4.41016 27.6797 16.7002c0 14.8496 -19.79 18.6201 -23.0693 18.6201h-63.2607zM399 141.29c10.3096 1.12988 22 5.70996 22.0195 26.46v8.82031c0 1.85938 0.780273 3.12988 2.69043 3.12988h19.2803
-c0.349609 4.6709 0.529297 9.02832 0.529297 13.7891c0 6.32812 -0.314453 12.583 -0.929688 18.751l-34.5898 15.3301c-4.86621 2.19434 -8.23828 7.0918 -8.23828 12.7725c0 1.97363 0.410156 3.85352 1.14844 5.55762l18 40.5693
-c-26.8047 47.0127 -73.3965 81.1328 -128.37 91.4307l-26.2598 -25c-2.48535 -2.39062 -5.86523 -3.86523 -9.58203 -3.86523c-3.94141 0 -7.5 1.6543 -10.0186 4.30469l-23.4697 24.6006c-41.29 -7.80371 -77.9434 -29.083 -104.89 -59.1904h198.899
-c4.99023 0 23.5107 -2.23047 40.2705 -13.2305c11.9102 -7.88965 29.3994 -23.96 29.3994 -49.4795c0 -23.6201 -19.5996 -41.3096 -38.46 -53.2598c15.1807 -12 24.79 -18.9102 30.5703 -51.4004c1.37012 -5.96973 12.2002 -11.2197 22 -10.0898zM240 387.79
-c0 -0.0078125 -0.00683594 -0.015625 -0.00683594 -0.0244141c0 -8.41113 6.82812 -15.2393 15.2402 -15.2393c8.41113 0 15.2393 6.82812 15.2393 15.2393c0 8.26855 -6.59863 15.0078 -14.8125 15.2344h-0.450195c-8.38672 -0.0166016 -15.1934 -6.82324 -15.21 -15.21z
-M436.84 234c0.0742188 -0.000976562 0.141602 -0.00195312 0.21582 -0.00195312c8.41211 0 15.2422 6.83008 15.2422 15.2422c0 8.33691 -6.70898 15.1201 -15.0176 15.2402h-0.44043c-8.41113 0 -15.2402 -6.8291 -15.2402 -15.2402s6.8291 -15.2402 15.2402 -15.2402z" />
-    <glyph glyph-name="tiktok" unicode="&#xe07b;" 
-d="M448 238.09h-0.512695c-45.5098 0 -87.8428 14.6162 -122.257 39.25v-178.72c-0.0332031 -89.6855 -72.8574 -162.489 -162.551 -162.489c-89.7139 0 -162.55 72.8359 -162.55 162.55s72.8359 162.55 162.55 162.55c7.62891 0 14.9697 -0.521484 22.3203 -1.54004
-v-89.8906c-7.06836 2.22363 -14.5889 3.42285 -22.3877 3.42285c-41.1836 0 -74.6201 -33.4365 -74.6201 -74.6201c0 -41.1846 33.4365 -74.6201 74.6201 -74.6201c41.1846 0 74.6182 33.4541 74.6182 74.6377v349.38h88
-c-0.00292969 -0.337891 -0.00488281 -0.676758 -0.00488281 -1.01562c0 -7.25977 0.638672 -14.2441 1.86426 -21.1543v0c6.28613 -33.5771 26.1982 -62.3613 53.9102 -80.2197c19.1787 -12.6816 42.1592 -20.0674 66.8506 -20.0674
-c0.00878906 0 0.140625 -0.0732422 0.149414 -0.0732422v-87.3799z" />
-    <glyph glyph-name="unsplash" unicode="&#xe07c;" 
-d="M448 217.83v-249.83h-448v249.83h141.13v-124.92h165.74v124.92h141.13zM306.87 416v-124.91h-165.74v124.91h165.74z" />
-    <glyph glyph-name="cloudflare" unicode="&#xe07d;" horiz-adv-x="640" 
-d="M407.906 128.087c12.1836 -0.574219 22.2178 -5.50977 28.2334 -13.9023c6.54883 -9.09961 8 -21.5 4.10059 -34.8994l-3.27344 -11.2656c-0.681641 -2.28125 -2.7793 -3.95508 -5.27051 -4c-0.0419922 -0.000976562 -0.0791016 -0.0195312 -0.12207 -0.0195312
-l-426.101 0.0507812c-2.26172 0.00878906 -4.13379 1.69238 -4.44434 3.87109c-0.676758 4.58691 -1.02637 9.18457 -1.0293 13.958c0 52.3926 41.9238 95.0137 94.2002 96.5303c-1.37402 5.39062 -2.05469 10.9785 -2.05469 16.7939
-c0 37.5967 30.5234 68.1201 68.1201 68.1201c15.3838 0 29.583 -5.11035 40.9912 -13.7246c20.542 59.582 77.085 102.308 143.607 102.308c72.1562 0 132.629 -50.417 148.085 -117.914c0.107422 -0.513672 0.164062 -1.03906 0.164062 -1.58398v-0.046875
-c0 -0.0332031 -0.00292969 -0.0683594 -0.00292969 -0.101562c0 -0.998047 -0.18457 -1.9541 -0.521484 -2.83496l-13.2861 -34.542c-10.4756 -27.21 -40.3906 -49.5234 -68.0215 -50.7842l-232.94 -2.93555c-2.48145 -0.173828 -4.5625 -1.82227 -5.36035 -4.07617
-c-0.178711 -0.493164 -0.275391 -1.03223 -0.275391 -1.58691c0 -0.945312 0.283203 -1.8252 0.768555 -2.55957c0.8125 -1.14258 2.13379 -1.89355 3.63281 -1.92676zM513.856 226.9c69.668 0 126.144 -56.2002 126.147 -125.533
-c0 -0.0458984 -0.0175781 -0.0644531 -0.0175781 -0.110352c0 -11.7441 -1.62598 -23.1123 -4.66406 -33.8896c-0.571289 -1.94629 -2.37012 -3.37012 -4.5 -3.37012h-0.0390625h-175.91c-0.0478516 0 -0.0898438 0.0166016 -0.135742 0.0166016
-c-1.44727 0.0595703 -2.60449 1.25391 -2.60449 2.71484c0 0.339844 0.0634766 0.666016 0.176758 0.96582l3.69531 9.60547c10.4766 27.21 40.3916 49.5146 68.1455 50.7842l51.125 2.93945c2.47559 0.179688 4.55078 1.82617 5.35059 4.07422
-c0.177734 0.492188 0.274414 1.03027 0.274414 1.58301c0 0.957031 -0.291016 1.84766 -0.788086 2.58594c-0.785156 1.11035 -2.06152 1.84375 -3.51074 1.89453l-49.1992 2.93848c-12.1846 0.577148 -22.2188 5.5 -28.2383 13.9004
-c-6.54883 9.10352 -8 21.4902 -4.09961 34.8896l9.07617 31.1934c0.447266 1.45508 1.75391 2.53613 3.32422 2.65332c2.12012 0.101562 4.25 0.164062 6.3916 0.164062z" />
-    <glyph glyph-name="guilded" unicode="&#xe07e;" 
-d="M443.427 384c0.00195312 -0.518555 0.0253906 -0.367188 0.0253906 -0.885742c0 -29.1934 -2.00293 -57.9229 -5.87891 -86.0576h-336.147s0.366211 -52.0498 27.0918 -105.883c27.458 -51.8174 65.3164 -85.1025 96.5488 -98.3623
-c32.2695 15.082 63.4434 41.2695 80.4561 69.4824h-88.5898c-22.9229 18.998 -40.96 50.5146 -45.0996 86.9443h259.889c-12.8154 -58.5713 -40.0088 -111.838 -65.916 -145.762c-35.8154 -46.7773 -84.2695 -82.8105 -140.55 -103.477
-c-1.25586 0 -113.21 33.8652 -177.267 161.642c-21.2266 42.2988 -43.418 119.099 -43.418 222.358h438.855z" />
-    <glyph glyph-name="hive" unicode="&#xe07f;" horiz-adv-x="512" 
-d="M260.353 193.122c0.191406 -0.329102 0.300781 -0.716797 0.300781 -1.12402c0 -0.404297 -0.107422 -0.783203 -0.294922 -1.11133l-127.412 -221.777c-0.380859 -0.666992 -1.09473 -1.11621 -1.91602 -1.11621c-0.818359 0 -1.53223 0.445312 -1.91406 1.10645
-l-128.816 221.778c-0.189453 0.328125 -0.297852 0.713867 -0.297852 1.12012s0.108398 0.787109 0.297852 1.11523l127.409 221.777c0.380859 0.666016 1.09473 1.11523 1.91602 1.11523c0.817383 0 1.53125 -0.445312 1.91309 -1.10547zM299.431 218.835l-110.624 193.824
-c-0.189453 0.327148 -0.298828 0.709961 -0.298828 1.11523c0 1.21973 0.983398 2.21094 2.19922 2.22559h66.5078c0.81543 -0.00195312 1.52539 -0.447266 1.90039 -1.11133l110.625 -193.823c0.189453 -0.328125 0.298828 -0.709961 0.298828 -1.11523
-c0 -1.21973 -0.983398 -2.21191 -2.19922 -2.22656h-66.5088c-0.81543 0.00292969 -1.52441 0.448242 -1.90039 1.11133zM511.7 193.114c0.1875 -0.328125 0.294922 -0.711914 0.294922 -1.11621c0 -0.405273 -0.107422 -0.78418 -0.294922 -1.1123l-126.808 -221.773
-c-0.376953 -0.664062 -1.08887 -1.11035 -1.90527 -1.1123h-66.6006c-1.21875 0.0117188 -2.20312 1.00684 -2.20312 2.22852c0 0.404297 0.108398 0.78418 0.297852 1.11133l126.171 220.66l-126.168 220.66c-0.189453 0.327148 -0.298828 0.708984 -0.298828 1.11426
-c0 1.2207 0.985352 2.21387 2.2041 2.22559h66.6006c0.818359 -0.000976562 1.53125 -0.447266 1.91016 -1.1123zM366.016 163.083c1.2168 -0.0136719 2.19922 -1.00879 2.19922 -2.22852c0 -0.405273 -0.108398 -0.785156 -0.297852 -1.1123l-108.8 -190.631
-c-0.375 -0.664062 -1.08496 -1.10938 -1.90039 -1.11133h-66.5088c-1.21582 0.0146484 -2.19824 1.00879 -2.19824 2.22852c0 0.405273 0.108398 0.785156 0.297852 1.1123l108.801 190.631c0.374023 0.664062 1.08398 1.10938 1.89941 1.11133h66.5078z" />
-    <glyph glyph-name="innosoft" unicode="&#xe080;" 
-d="M422.559 288.29l0.00292969 -190.955c0.0253906 -12.4102 -5.87793 -22.8965 -16.623 -29.5283l-164.527 -94.9951c-5.08008 -3.04102 -11.0938 -4.79004 -17.4404 -4.79004c-6.11523 0 -11.8545 1.62402 -16.8096 4.46387l-118.794 68.583l247.049 142.627v-56
-l-150.051 -86.627l32.7227 -18.9004c1.74805 -0.97168 3.78613 -1.52441 5.92676 -1.52441c2.18457 0 4.23633 0.576172 6.01074 1.58691l138.111 79.7441c3.54883 2.08008 5.91992 5.92578 5.91992 10.332v0.0361328v138.281l-308.407 -178.066
-c-3.94629 -2.25293 -8.57129 -3.54102 -13.4365 -3.54102c-4.83301 0 -9.37207 1.27051 -13.2998 3.49609c-8.39453 4.75586 -13.3037 13.293 -13.4736 23.4287v191.5c0.518555 12.7334 6.65527 23.0039 17.2891 29.124l164.601 95.0254
-c11.5 5.98535 22.8076 5.85938 33.7998 -0.269531l118.513 -68.4072l-247.061 -142.637v56l150.062 86.6367l-32.6553 18.8525c-1.76367 0.998047 -3.82715 1.56738 -5.99609 1.56738c-2.15137 0 -4.17285 -0.55957 -5.92578 -1.54199l-138.076 -79.7129
-c-3.60352 -2.04785 -6.02734 -5.90723 -6.04688 -10.3398v-138.387l308.539 178.142c3.88281 2.24414 8.44531 3.5293 13.25 3.5293c4.70801 0 9.13086 -1.23438 12.9609 -3.39648c8.16406 -4.63184 13.6914 -13.3291 13.8652 -23.3369z" />
-    <glyph glyph-name="instalod" unicode="&#xe081;" horiz-adv-x="512" 
-d="M153.384 -32l50.8447 146.789l298.325 57.4463l-115.44 -204.235h-233.729zM504.726 207.922l-144.495 -27.8223l-204.562 235.9h231.444zM124.386 399.191l101.241 -116.752l-102.391 -295.594l-115.962 205.154z" />
-    <glyph glyph-name="octopus-deploy" unicode="&#xe082;" horiz-adv-x="512" 
-d="M455.6 98.7998c12.4395 -10.5996 42.6348 -26.4775 42.5244 -45.2666c-0.15332 -24.6084 -48.4248 5.24121 -53.8184 9.51953c6.13965 -10.7275 66.998 -74.1787 28.2627 -78.6943c-35.6562 -4.1582 -67.1406 45.6416 -88.5615 67.0225
-c-36 35.9082 -29.7373 -43.5332 -29.8994 -59.9443c-0.257812 -25.9082 -18.5586 -78.4209 -51.4121 -44.2207c-27.1387 28.2314 -16.873 73.2607 -35.7383 104.622c-20.6641 34.3535 -55.0361 -34.3535 -63.627 -46.9258
-c-9.59668 -14.042 -57.6094 -82.041 -76.709 -45.8125c-15.499 29.4004 9.2793 75.5127 21.4629 102.103c-4.44336 -9.65723 -35.9297 -23.9414 -45.1299 -28.5879c-20.7871 -10.4971 -41.8867 -16.7256 -65.2646 -15.0449
-c-27.8916 2.00098 -38.3789 11.6572 8.42773 41.8574c38.5615 24.8389 83.8613 67.4209 66.6621 117.582c-9.37305 27.3301 -22.3574 50.7568 -24.0898 80.2998c-0.209961 3.56152 -0.25 7.08008 -0.25 10.6924c0 22.0957 3.9707 43.2715 11.2373 62.8516
-c34.5752 92.8066 137.363 136.747 230.253 108.848c86.0371 -25.8398 145.23 -125.74 109.575 -212.79c-20.5752 -50.2334 -29.7959 -89.0205 16.0947 -128.11z" />
-    <glyph glyph-name="perbyte" unicode="&#xe083;" 
-d="M305.314 163.422c15.9307 0.000976562 28.5732 -4.5 37.9277 -13.5059s14.0322 -20.7842 14.0322 -35.335c0 -14.8936 -4.58984 -26.9307 -13.7705 -36.1113c-9.17969 -9.17969 -21.9111 -13.7695 -38.1934 -13.7695h-58.7109v98.7217h58.7148zM149.435 319.301
-c15.9346 0.00488281 28.5791 -4.49609 37.9316 -13.5039s14.0283 -20.7871 14.0283 -35.3379c0 -14.8896 -4.58984 -26.9258 -13.7695 -36.1084c-9.17969 -9.18164 -21.9102 -13.7725 -38.1904 -13.7725h-58.7109v98.7227h58.7109zM366.648 416.002
-c22.4385 -0.0253906 41.5996 -7.98145 57.4854 -23.8672s23.8418 -35.0479 23.8672 -57.4854v-285.296c-0.0253906 -22.4375 -7.98145 -41.5996 -23.8672 -57.4854s-35.0479 -23.8418 -57.4854 -23.8672h-285.295c-22.4385 0.0253906 -41.6006 7.98145 -57.4863 23.8672
-s-23.8418 35.0479 -23.8672 57.4863v285.296c0.0253906 22.4375 7.98145 41.5996 23.8672 57.4854s35.0479 23.8408 57.4863 23.8662h285.295zM430.282 49.3535l-0.000976562 285.296c-0.0195312 17.5518 -6.24219 32.54 -18.668 44.9658s-27.4141 18.6484 -44.9648 18.668
-h-285.295c-17.5508 -0.0195312 -32.5391 -6.24219 -44.9648 -18.668s-18.6484 -27.4141 -18.668 -44.9658v-285.296c0.0195312 -17.5508 6.24219 -32.5391 18.668 -44.9648s27.4141 -18.6484 44.9648 -18.668h285.295c17.5518 0.0195312 32.54 6.24219 44.9658 18.668
-s18.6484 27.4141 18.668 44.9648zM305.313 319.301c15.9307 0.00488281 28.5732 -4.49609 37.9277 -13.5039s14.0322 -20.7871 14.0322 -35.3379c0 -14.8896 -4.58984 -26.9258 -13.7705 -36.1084c-9.17969 -9.18164 -21.9111 -13.7725 -38.1934 -13.7725h-58.7109v98.7227
-h58.7148z" />
-    <glyph glyph-name="uncharted" unicode="&#xe084;" 
-d="M171.73 215.187c-0.0605469 -0.00195312 -0.12207 -0.000976562 -0.183594 -0.000976562c-0.673828 0 -1.3125 0.148438 -1.88672 0.414062l-115.933 67.9004v-85.2891c-0.0830078 -2.71289 -1.16895 -5.18555 -2.89941 -7.03906
-c-1.6748 -1.54297 -3.91113 -2.4873 -6.36621 -2.4873c-0.0859375 0 -0.172852 0.000976562 -0.258789 0.00390625c-0.146484 -0.0078125 -0.296875 -0.00585938 -0.444336 -0.00585938c-1.65332 0 -3.2002 0.455078 -4.52344 1.24707l-22.3584 12.835
-c-2.9541 1.50684 -4.9707 4.57031 -4.9707 8.1123c0 0.0566406 0.000976562 0.112305 0.00195312 0.168945v115.107c0.118164 3.54102 2.08105 6.61523 4.96875 8.28027l100.2 57.9668c1.40625 0.787109 3.04688 1.23535 4.77148 1.23535s3.3457 -0.448242 4.75098 -1.23535
-l22.3584 -12.8389c2.9541 -1.50586 4.96973 -4.56934 4.96973 -8.11035c0 -0.0566406 -0.000976562 -0.113281 -0.00195312 -0.169922c-0.117188 -3.54199 -2.08008 -6.61523 -4.96777 -8.28125l-74.5293 -43.4727l116.757 -68.3184
-c1.16016 -0.680664 1.96191 -1.89941 2.07129 -3.31152c0 -1.65723 -0.414062 -3.31348 -1.65723 -4.1416c-7.34473 -6.5459 -12.6475 -15.3301 -14.8994 -25.2559c-0.810547 -1.94629 -2.72949 -3.31348 -4.96777 -3.31348h-0.00195312zM323.272 70.2695
-c4.96777 0 9.52734 -4.55469 10.3506 -9.1084v-26.085c-0.117188 -3.54199 -2.08105 -6.61523 -4.96777 -8.28125l-100.2 -57.5527c-1.48633 -0.772461 -3.18359 -1.22363 -4.96875 -1.24219c-0.146484 -0.00683594 -0.296875 -0.00488281 -0.444336 -0.00488281
-c-1.65332 0 -3.2002 0.455078 -4.52441 1.24707l-100.199 57.5527c-2.95508 1.50586 -4.9707 4.56934 -4.9707 8.11035c0 0.0576172 0 0.114258 0.000976562 0.170898v26.085c0.0585938 5.22852 4.29492 9.46484 9.52344 9.52246
-c0.146484 0.0078125 0.296875 0.00585938 0.444336 0.00585938c1.65332 0 3.20117 -0.456055 4.52441 -1.24707l74.5293 -43.0615v133.323c0.0615234 2.62891 2.21387 4.74609 4.85742 4.74609c0.469727 0 0.922852 -0.0673828 1.35254 -0.191406
-c4.39453 -1.18066 8.99414 -1.80664 13.7588 -1.80664c5.29102 0 10.4023 0.776367 15.2256 2.2207c3.31055 1.24512 6.21094 -1.65527 6.21094 -4.55469v-134.152l74.5273 43.0625c1.50684 0.730469 3.2002 1.17383 4.96973 1.24121zM286.007 370
-c-12.6943 0 -23 10.3057 -23 23s10.3057 23 23 23s23 -10.3057 23 -23s-10.3057 -23 -23 -23zM349.634 380.086c12.6943 0 23 -10.3057 23 -23s-10.3057 -23 -23 -23c-12.6934 0 -23 10.3057 -23 23s10.3066 23 23 23zM412.816 296.4c-12.6943 0 -23 10.3057 -23 23
-c0 12.6934 10.3057 23 23 23c12.6934 0 23 -10.3066 23 -23c0 -12.6943 -10.3066 -23 -23 -23zM349.634 305.6c12.6943 0 23 -10.3057 23 -23c0 -12.6934 -10.3057 -23 -23 -23c-12.6934 0 -23 10.3066 -23 23c0 12.6943 10.3066 23 23 23zM286.007 222.356
-c-12.6943 0 -23 10.3018 -23 22.9951v0.00488281c0 12.6934 10.3057 23 23 23s23 -10.3066 23 -23c0 -12.6943 -10.3057 -23 -23 -23zM223.933 185.998c-12.6934 0 -23 10.3018 -23 22.9961v0.00390625c0 12.6943 10.3066 23 23 23c12.6943 0 23 -10.3057 23 -23
-s-10.3057 -23 -23 -23zM412.816 268.356c12.6924 0 22.9971 -10.3086 23 -23c0 -12.6943 -10.3066 -23 -23 -23c-12.6943 0 -23 10.3057 -23 23c0 12.6934 10.3057 23 23 23zM412.816 196.084c12.6924 0 22.9971 -10.3076 23 -23c0 -12.6943 -10.3066 -23 -23 -23
-c-12.6943 0 -23 10.3057 -23 23s10.3057 23 23 23z" />
-    <glyph glyph-name="watchman-monitoring" unicode="&#xe087;" horiz-adv-x="512" 
-d="M256 432c132.548 0 240 -107.452 240 -240s-107.452 -240 -240 -240s-240 107.452 -240 240s107.452 240 240 240zM121.69 18.8779l27.6846 204.861l-9.46777 7.39941c-2.98242 2.34082 -4.89062 5.9668 -4.89062 10.0479
-c0 0.100586 0.000976562 0.201172 0.00292969 0.301758c0 7.04883 0.144531 19.5488 0.144531 19.5488l13.9434 2.0127l0.120117 10.9668l-102.899 -17.8945c-6.20508 -20.251 -9.58691 -41.7412 -9.58691 -64.0137v-0.108398c0 -70.3223 33.3145 -132.972 84.9492 -173.122
-zM227.382 302.148l0.0400391 -3.61816l193.512 37.7002c-40.1152 46.0273 -99.1426 75.0244 -164.934 75.0244c-74.4863 0 -140.374 -37.3623 -180.018 -94.2998l73.5068 -19.1758l0.0478516 4.36914l-8.48145 7.61719s-6.93359 5.38086 0.144531 9.34473
-c7.18652 4.02539 39.5283 34.5 39.5283 34.5c7.20312 7.34668 10.1123 5.47656 15.4609 0c0 0 32.3418 -30.4766 39.5293 -34.5c7.07715 -3.96387 0.143555 -9.34473 0.143555 -9.34473zM261.445 -27.1211c118.386 2.90918 213.813 100.047 213.813 219.121
-c-0.0107422 17.2881 -2.04297 33.9951 -5.85059 50.1299l-241.711 31.3916l0.116211 -10.4746l13.9424 -2.0127s0.144531 -12.5049 0.144531 -19.5488c0.00195312 -0.100586 0.0126953 -0.19043 0.0126953 -0.290039c0 -4.08203 -1.91797 -7.71973 -4.90137 -10.0596
-l-9.4668 -7.39941z" />
-    <glyph glyph-name="wodu" unicode="&#xe088;" horiz-adv-x="640" 
-d="M178.414 108.294h-37.3145l-28.9336 116.231h-0.477539l-28.4609 -116.231h-38.0273l-45.2002 170.76h37.5479l27.0264 -116.23h0.477539l29.6553 116.23h35.1572l29.1777 -117.667h0.479492l27.9785 117.667h36.8311zM271.4 235.287
-c38.9834 0 64.0996 -25.8281 64.0996 -65.291c0 -39.2217 -25.1113 -65.0498 -64.0996 -65.0498c-38.7432 0 -63.8555 25.8281 -63.8555 65.0498c0.00195312 39.4629 25.1143 65.291 63.8555 65.291zM271.4 130.534c23.1992 0 30.1328 19.8516 30.1328 39.4619
-c0 19.8516 -6.93457 39.7002 -30.1328 39.7002c-27.7002 0 -29.8945 -19.8506 -29.8945 -39.7002c0.00195312 -19.6104 6.9375 -39.4619 29.8945 -39.4619zM435.084 124.078h-0.477539c-7.89355 -13.3926 -21.7656 -19.1318 -37.5488 -19.1318
-c-37.3096 0 -55.4844 32.0449 -55.4844 66.2461c0 33.2422 18.415 64.0947 54.7666 64.0947c14.5889 0 28.9385 -6.21777 36.8311 -18.416h0.240234v62.1826h33.96v-170.76h-32.2871v15.7842zM405.428 209.7c-22.2393 0 -29.8936 -19.1338 -29.8936 -39.4629
-c0 -19.3711 8.84766 -39.7002 29.8936 -39.7002c22.4824 0 29.1787 19.6133 29.1787 39.9395c0 20.0879 -7.1748 39.2236 -29.1787 39.2236zM592.96 108.294h-32.2871v17.2188h-0.717773c-8.60938 -13.8701 -23.4365 -20.5664 -37.7861 -20.5664
-c-36.1133 0 -45.2002 20.3281 -45.2002 50.9404v76.0527h33.959v-69.8398c0 -20.3281 5.97949 -30.3721 21.7656 -30.3721c18.415 0 26.3057 10.2832 26.3057 35.3936v64.8184h33.9609v-123.646zM602.453 145.124h37.5469v-36.8301h-37.5469v36.8301z" />
-    <glyph glyph-name="twitter-square" unicode="&#xf081;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM351.1 257.2c12.8008 9.2998 24 20.8994 32.9004 34c-11.7998 -5.10059 -24.5996 -8.7998 -37.7998 -10.2002
-c13.5996 8.09961 23.8994 20.9004 28.7998 36.0996c-12.5996 -7.5 -26.7998 -13 -41.5996 -15.7998c-12 12.7998 -29 20.7002 -47.9004 20.7002c-40 0 -73.2998 -36.0996 -64 -80.5996c-54.4004 2.7998 -102.9 28.7998 -135.2 68.5996
-c-5.7002 -9.7002 -8.89941 -20.9004 -8.89941 -33.0996c0 -0.0371094 -0.0664062 -0.0322266 -0.0664062 -0.0683594c0 -22.749 11.6309 -42.8018 29.2656 -54.5322c-10.6992 0.400391 -20.8994 3.40039 -29.5996 8.2998v-0.799805c0 -31.8994 22.5 -58.2998 52.5 -64.3994
-c-10.4004 -2.7002 -19.5 -2.7002 -29.5996 -1.2002c8.2998 -26 32.5 -44.9004 61.2998 -45.5c-22.5 -17.6006 -50.7002 -28 -81.4004 -28c-5.39941 0 -10.5 0.200195 -15.7998 0.799805c29 -18.5996 63.5 -29.4004 100.7 -29.4004c120.6 0 186.6 99.9004 186.6 186.601
-c0 2.7998 0 5.7002 -0.200195 8.5z" />
-    <glyph glyph-name="facebook-square" unicode="&#xf082;" 
-d="M400 416c26.4922 0 48 -21.5078 48 -48v-352c0 -26.4922 -21.5078 -48 -48 -48h-137.25v152.31h57.7803l11 71.6904h-68.7803v46.5498c0 19.6104 9.61035 38.7305 40.4199 38.7305h31.2705v61s-28.3809 4.83984 -55.5205 4.83984
-c-56.6699 0 -93.6699 -34.3301 -93.6699 -96.4805v-54.6396h-63v-71.6904h63v-152.31h-137.25c-26.4922 0 -48 21.5078 -48 48v352c0 26.4922 21.5078 48 48 48h352z" />
-    <glyph glyph-name="linkedin" unicode="&#xf08c;" 
-d="M416 416c17.5996 0 32 -14.5 32 -32.2998v-383.4c0 -17.7998 -14.4004 -32.2998 -32 -32.2998h-384.1c-17.6006 0 -31.9004 14.5 -31.9004 32.2998v383.4c0 17.7998 14.2998 32.2998 31.9004 32.2998h384.1zM135.4 32h0.0996094v213.8h-66.5v-213.8h66.4004zM102.2 275
-c21.2998 0 38.5 17.2002 38.5 38.5c0 21.2002 -17.2998 38.5 -38.5 38.5c-21.2998 0 -38.5 -17.2998 -38.5 -38.5s17.2002 -38.5 38.5 -38.5zM384.3 32v117.2c0 57.5996 -12.5 101.899 -79.7002 101.899c-32.2998 0 -54 -17.6992 -62.8994 -34.5h-0.900391v29.2002h-63.7002
-v-213.8h66.4004v105.8c0 27.9004 5.2998 54.9004 39.9004 54.9004c34 0 34.5 -31.9004 34.5 -56.7002v-104h66.3994z" />
-    <glyph glyph-name="github-square" unicode="&#xf092;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM277.3 32.2998c66 22 110.8 84.9004 110.7 158.3c0 91.8008 -74.4004 161.5 -166.2 161.5s-162 -69.6992 -162 -161.5
-c0 -73.3994 46.2002 -136.199 112.2 -158.3c8.5 -1.5 11.5 3.7002 11.5 8c0 4.10059 -0.200195 26.7002 -0.200195 40.6006c0 0 -46.3994 -10 -56.0996 19.6992c0 0 -7.60059 19.2002 -18.4004 24.2002c0 0 -15.0996 10.4004 1.10059 10.2002
-c0 0 16.3994 -1.2998 25.5 -17.0996c14.5 -25.6006 38.7998 -18.2002 48.2998 -13.9004c1.5 10.5996 5.7998 18 10.5996 22.2998c-37 4.10059 -74.2998 9.5 -74.2998 73.1006c0 18.1992 5 27.2998 15.5996 39c-1.7998 4.39941 -7.39941 22.0996 1.7002 45
-c13.9004 4.2998 45.7002 -17.9004 45.7002 -17.9004c13.2002 3.7002 27.5 5.59961 41.5996 5.59961c14.1006 0 28.4004 -1.89941 41.6006 -5.59961c0 0 31.7998 22.2002 45.7002 17.9004c9.09961 -23 3.39941 -40.7002 1.69922 -45
-c10.6006 -11.7002 17.1006 -20.8008 17.1006 -39c0 -63.9004 -39 -69 -76 -73.1006c6.09961 -5.2002 11.2998 -15.0996 11.2998 -30.7002c0 -22.2998 -0.200195 -49.8994 -0.200195 -55.2998c0 -4.2998 3.10059 -9.5 11.5 -8zM179.2 93.4004
-c-1.90039 -0.400391 -3.7002 0.399414 -3.90039 1.69922c-0.200195 1.5 1.10059 2.80078 3 3.2002c1.90039 0.200195 3.7002 -0.599609 3.90039 -1.89941c0.299805 -1.30078 -1 -2.60059 -3 -3zM169.7 94.2998c0 1.5 -1.7998 2.60059 -3.7002 2.40039
-c-2 0 -3.5 -1.10059 -3.5 -2.40039c0 -1.5 1.5 -2.59961 3.7002 -2.39941c2 0 3.5 1.09961 3.5 2.39941zM156 95.4004c-0.400391 -1.30078 -2.40039 -1.90039 -4.09961 -1.30078c-1.90039 0.400391 -3.2002 1.90039 -2.80078 3.2002
-c0.400391 1.2998 2.40039 1.90039 4.10059 1.5c2 -0.599609 3.2998 -2.09961 2.7998 -3.39941zM143.7 100.8c0.899414 0.799805 0.399414 2.7998 -0.900391 4.10059c-1.5 1.5 -3.39941 1.69922 -4.2998 0.599609c-1 -0.900391 -0.599609 -2.7998 0.900391 -4.09961
-c1.5 -1.5 3.39941 -1.7002 4.2998 -0.600586zM134.6 109.9c1.10059 0.799805 1.10059 2.59961 0 4.09961c-0.899414 1.5 -2.59961 2.2002 -3.69922 1.2998c-1.10059 -0.700195 -1.10059 -2.39941 0 -3.89941c1.09961 -1.5 2.7998 -2.10059 3.69922 -1.5zM128.1 119.6
-c0.900391 0.700195 0.700195 2.2002 -0.399414 3.5c-1.10059 1 -2.60059 1.5 -3.5 0.600586c-0.900391 -0.700195 -0.700195 -2.2002 0.399414 -3.5c1.10059 -1 2.60059 -1.5 3.5 -0.600586zM121.4 127c0.399414 0.799805 -0.200195 1.90039 -1.5 2.59961
-c-1.30078 0.5 -2.40039 0.200195 -2.80078 -0.399414c-0.399414 -0.900391 0.200195 -2 1.5 -2.60059c1.10059 -0.699219 2.40039 -0.5 2.80078 0.400391z" />
-    <glyph glyph-name="twitter" unicode="&#xf099;" horiz-adv-x="512" 
-d="M459.37 296.284c0.325195 -4.54785 0.325195 -9.09766 0.325195 -13.6455c0 -138.72 -105.583 -298.558 -298.559 -298.558c-59.4521 0 -114.68 17.2188 -161.137 47.1055c8.44727 -0.973633 16.5684 -1.29883 25.3398 -1.29883
-c49.0547 0 94.2129 16.5684 130.274 44.832c-46.1318 0.975586 -84.792 31.1885 -98.1123 72.7725c6.49805 -0.974609 12.9951 -1.62402 19.8184 -1.62402c9.4209 0 18.8428 1.2998 27.6133 3.57324c-48.0811 9.74707 -84.1426 51.9795 -84.1426 102.984v1.29883
-c13.9688 -7.79688 30.2139 -12.6699 47.4307 -13.3184c-28.2637 18.8428 -46.7803 51.0049 -46.7803 87.3906c0 19.4922 5.19629 37.3604 14.2939 52.9541c51.6543 -63.6748 129.3 -105.258 216.364 -109.807c-1.62402 7.79688 -2.59863 15.918 -2.59863 24.04
-c0 57.8271 46.7822 104.934 104.934 104.934c30.2139 0 57.502 -12.6699 76.6709 -33.1367c23.7148 4.54785 46.4551 13.3193 66.5986 25.3398c-7.79785 -24.3662 -24.3662 -44.833 -46.1318 -57.8271c21.1172 2.27344 41.584 8.12207 60.4258 16.2432
-c-14.292 -20.791 -32.1611 -39.3086 -52.6279 -54.2529z" />
-    <glyph glyph-name="facebook" unicode="&#xf09a;" horiz-adv-x="512" 
-d="M504 192c0 -123.78 -90.6904 -226.38 -209.25 -245v173.31h57.7803l11 71.6904h-68.7803v46.5498c0 19.6104 9.61035 38.7305 40.4102 38.7305h31.2803v61s-28.3809 4.83984 -55.5205 4.83984c-56.6699 0 -93.6699 -34.3301 -93.6699 -96.4805v-54.6396h-63v-71.6904h63
-v-173.31c-118.56 18.6201 -209.25 121.22 -209.25 245c0 137 111 248 248 248s248 -111 248 -248z" />
-    <glyph glyph-name="github" unicode="&#xf09b;" horiz-adv-x="496" 
-d="M165.9 50.5996c0 -2 -2.30078 -3.59961 -5.2002 -3.59961c-3.2998 -0.299805 -5.60059 1.2998 -5.60059 3.59961c0 2 2.30078 3.60059 5.2002 3.60059c3 0.299805 5.60059 -1.2998 5.60059 -3.60059zM134.8 55.0996c0.700195 2 3.60059 3 6.2002 2.30078
-c3 -0.900391 4.90039 -3.2002 4.2998 -5.2002c-0.599609 -2 -3.59961 -3 -6.2002 -2c-3 0.599609 -5 2.89941 -4.2998 4.89941zM179 56.7998c2.90039 0.299805 5.59961 -1 5.90039 -2.89941c0.299805 -2 -1.7002 -3.90039 -4.60059 -4.60059
-c-3 -0.700195 -5.59961 0.600586 -5.89941 2.60059c-0.300781 2.2998 1.69922 4.19922 4.59961 4.89941zM244.8 440c138.7 0 251.2 -105.3 251.2 -244c0 -110.9 -67.7998 -205.8 -167.8 -239c-12.7002 -2.2998 -17.2998 5.59961 -17.2998 12.0996
-c0 8.2002 0.299805 49.9004 0.299805 83.6006c0 23.5 -7.7998 38.5 -17 46.3994c55.8994 6.30078 114.8 14 114.8 110.5c0 27.4004 -9.7998 41.2002 -25.7998 58.9004c2.59961 6.5 11.0996 33.2002 -2.60059 67.9004c-20.8994 6.59961 -69 -27 -69 -27
-c-20 5.59961 -41.5 8.5 -62.7998 8.5s-42.7998 -2.90039 -62.7998 -8.5c0 0 -48.0996 33.5 -69 27c-13.7002 -34.6006 -5.2002 -61.4004 -2.59961 -67.9004c-16 -17.5996 -23.6006 -31.4004 -23.6006 -58.9004c0 -96.1992 56.4004 -104.3 112.3 -110.5
-c-7.19922 -6.59961 -13.6992 -17.6992 -16 -33.6992c-14.2998 -6.60059 -51 -17.7002 -72.8994 20.8994c-13.7002 23.7998 -38.6006 25.7998 -38.6006 25.7998c-24.5 0.300781 -1.59961 -15.3994 -1.59961 -15.3994c16.4004 -7.5 27.7998 -36.6006 27.7998 -36.6006
-c14.7002 -44.7998 84.7002 -29.7998 84.7002 -29.7998c0 -21 0.299805 -55.2002 0.299805 -61.3994c0 -6.5 -4.5 -14.4004 -17.2998 -12.1006c-99.7002 33.4004 -169.5 128.3 -169.5 239.2c0 138.7 106.1 244 244.8 244zM97.2002 95.0996
-c1.2998 1.30078 3.59961 0.600586 5.2002 -1c1.69922 -1.89941 2 -4.19922 0.699219 -5.19922c-1.2998 -1.30078 -3.59961 -0.600586 -5.19922 1c-1.7002 1.89941 -2 4.19922 -0.700195 5.19922zM86.4004 103.2c0.699219 1 2.2998 1.2998 4.2998 0.700195
-c2 -1 3 -2.60059 2.2998 -3.90039c-0.700195 -1.40039 -2.7002 -1.7002 -4.2998 -0.700195c-2 1 -3 2.60059 -2.2998 3.90039zM118.8 67.5996c1.2998 1.60059 4.2998 1.30078 6.5 -1c2 -1.89941 2.60059 -4.89941 1.2998 -6.19922
-c-1.2998 -1.60059 -4.19922 -1.30078 -6.5 1c-2.2998 1.89941 -2.89941 4.89941 -1.2998 6.19922zM107.4 82.2998c1.59961 1.2998 4.19922 0.299805 5.59961 -2c1.59961 -2.2998 1.59961 -4.89941 0 -6.2002c-1.2998 -1 -4 0 -5.59961 2.30078
-c-1.60059 2.2998 -1.60059 4.89941 0 5.89941z" />
-    <glyph glyph-name="pinterest" unicode="&#xf0d2;" horiz-adv-x="496" 
-d="M496 192c0 -137 -111 -248 -248 -248c-25.5996 0 -50.2002 3.90039 -73.4004 11.0996c10.1006 16.5 25.2002 43.5 30.8008 65c3 11.6006 15.3994 59 15.3994 59c8.10059 -15.3994 31.7002 -28.5 56.7998 -28.5c74.8008 0 128.7 68.8008 128.7 154.301
-c0 81.8994 -66.8994 143.199 -152.899 143.199c-107 0 -163.9 -71.7998 -163.9 -150.1c0 -36.4004 19.4004 -81.7002 50.2998 -96.0996c4.7002 -2.2002 7.2002 -1.2002 8.2998 3.2998c0.800781 3.39941 5 20.2998 6.90039 28.0996
-c0.599609 2.5 0.299805 4.7002 -1.7002 7.10059c-10.0996 12.5 -18.2998 35.2998 -18.2998 56.5996c0 54.7002 41.4004 107.6 112 107.6c60.9004 0 103.6 -41.5 103.6 -100.899c0 -67.1006 -33.8994 -113.601 -78 -113.601c-24.2998 0 -42.5996 20.1006 -36.6992 44.8008
-c7 29.5 20.5 61.2998 20.5 82.5996c0 19 -10.2002 34.9004 -31.4004 34.9004c-24.9004 0 -44.9004 -25.7002 -44.9004 -60.2002c0 -22 7.40039 -36.7998 7.40039 -36.7998s-24.5 -103.801 -29 -123.2c-5 -21.4004 -3 -51.6006 -0.900391 -71.2002
-c-92.1992 36.0996 -157.6 125.9 -157.6 231c0 137 111 248 248 248s248 -111 248 -248z" />
-    <glyph glyph-name="pinterest-square" unicode="&#xf0d3;" 
-d="M448 368v-352c0 -26.5 -21.5 -48 -48 -48h-245.6c9.7998 16.4004 22.3994 40 27.3994 59.2998c3 11.5 15.2998 58.4004 15.2998 58.4004c8 -15.2998 31.4004 -28.2002 56.3008 -28.2002c74.0996 0 127.399 68.0996 127.399 152.7
-c0 81.0996 -66.2002 141.8 -151.399 141.8c-106 0 -162.2 -71.0996 -162.2 -148.6c0 -36 19.2002 -80.8008 49.7998 -95.1006c4.7002 -2.2002 7.09961 -1.2002 8.2002 3.2998c0.799805 3.40039 5 20.1006 6.7998 27.8008c0.599609 2.5 0.299805 4.59961 -1.7002 7
-c-10.0996 12.2998 -18.2998 34.8994 -18.2998 56c0 54.1992 41 106.6 110.9 106.6c60.2998 0 102.6 -41.0996 102.6 -99.9004c0 -66.3994 -33.5 -112.399 -77.2002 -112.399c-24.0996 0 -42.0996 19.8994 -36.3994 44.3994c6.89941 29.2002 20.2998 60.7002 20.2998 81.8008
-c0 53 -75.5 45.6992 -75.5 -25c0 -21.7002 7.2998 -36.5 7.2998 -36.5c-31.4004 -132.801 -36.0996 -134.5 -29.5996 -192.601l2.19922 -0.799805h-88.5996c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48z" />
-    <glyph glyph-name="google-plus-square" unicode="&#xf0d4;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM164 92c57.7002 0 96 40.5 96 97.5996c0 6.5 -0.599609 11.6006 -1.59961 16.6006h-94.4004v-34.4004h56.9004
-c-2.40039 -14.5996 -17.2002 -43.0996 -56.8008 -43.0996c-34.0996 0 -61.8994 28.2998 -61.8994 63.2002c0 35 27.7998 63.1992 61.8994 63.1992c19.5 0 32.4004 -8.2998 39.8008 -15.3994l27.0996 26.0996c-17.5 16.4004 -40 26.2002 -67 26.2002
-c-55.2998 0 -100 -44.7002 -100 -100s44.7002 -100 100 -100zM384 173.8v29.2002h-29v29h-29.2002v-29h-29v-29.2002h29v-29h29.2002v29h29z" />
-    <glyph glyph-name="google-plus-g" unicode="&#xf0d5;" horiz-adv-x="640" 
-d="M386.061 219.504c1.83398 -9.69238 3.14355 -19.3838 3.14355 -31.9561c0 -109.753 -73.6055 -187.548 -184.404 -187.548c-106.084 0 -192 85.915 -192 192s85.916 192 192 192c51.8643 0 95.083 -18.8594 128.611 -50.292l-52.126 -50.0303
-c-14.1455 13.6211 -39.0283 29.5996 -76.4854 29.5996c-65.4834 0 -118.92 -54.2217 -118.92 -121.277s53.4365 -121.277 118.92 -121.277c75.9609 0 104.514 54.7451 108.965 82.7734h-108.965v66.0088h181.261v-0.000976562zM571.467 213.067h55.7334v-56.001h-55.7334
-v-55.7334h-56.001v55.7334h-55.7324v56.001h55.7324v55.7324h56.001v-55.7324z" />
-    <glyph glyph-name="linkedin-in" unicode="&#xf0e1;" 
-d="M100.28 0h-92.8799v299.1h92.8799v-299.1zM53.79 339.9c-29.7002 0 -53.79 24.5996 -53.79 54.2998c0 29.6875 24.1025 53.79 53.79 53.79s53.79 -24.1025 53.79 -53.79c0 -29.7002 -24.0996 -54.2998 -53.79 -54.2998zM447.9 0h-92.6807v145.6
-c0 34.7002 -0.700195 79.2002 -48.29 79.2002c-48.29 0 -55.6895 -37.7002 -55.6895 -76.7002v-148.1h-92.7803v299.1h89.0801v-40.7998h1.2998c12.4004 23.5 42.6904 48.2998 87.8799 48.2998c94 0 111.28 -61.8994 111.28 -142.3v-164.3h-0.0996094z" />
-    <glyph glyph-name="github-alt" unicode="&#xf113;" horiz-adv-x="480" 
-d="M186.1 119.3c0 -20.8994 -10.8994 -55.0996 -36.6992 -55.0996c-25.8008 0 -36.7002 34.2002 -36.7002 55.0996c0 20.9004 10.8994 55.1006 36.7002 55.1006c25.7998 0 36.6992 -34.2002 36.6992 -55.1006zM480 169.8c0 -31.8994 -3.2002 -65.7002 -17.5 -95
-c-37.9004 -76.5996 -142.1 -74.7998 -216.7 -74.7998c-75.7998 0 -186.2 -2.7002 -225.6 74.7998c-14.6006 29 -20.2002 63.1006 -20.2002 95c0 41.9004 13.9004 81.5 41.5 113.601c-5.2002 15.7998 -7.7002 32.3994 -7.7002 48.7998
-c0 21.5 4.90039 32.2998 14.6006 51.7998c45.2998 0 74.2998 -9 108.8 -36c29 6.90039 58.7998 10 88.7002 10c27 0 54.1992 -2.90039 80.3994 -9.2002c34 26.7002 63 35.2002 107.8 35.2002c9.80078 -19.5 14.6006 -30.2998 14.6006 -51.7998
-c0 -16.4004 -2.60059 -32.7002 -7.7002 -48.2002c27.5 -32.4004 39 -72.2998 39 -114.2zM415.7 119.3c0 43.9004 -26.7002 82.6006 -73.5 82.6006c-18.9004 0 -37 -3.40039 -56 -6c-14.9004 -2.30078 -29.7998 -3.2002 -45.1006 -3.2002
-c-15.1992 0 -30.0996 0.899414 -45.0996 3.2002c-18.7002 2.59961 -37 6 -56 6c-46.7998 0 -73.5 -38.7002 -73.5 -82.6006c0 -87.7998 80.4004 -101.3 150.4 -101.3h48.1992c70.3008 0 150.601 13.4004 150.601 101.3zM333.1 174.4
-c25.8008 0 36.7002 -34.2002 36.7002 -55.1006c0 -20.8994 -10.8994 -55.0996 -36.7002 -55.0996c-25.7998 0 -36.6992 34.2002 -36.6992 55.0996c0 20.9004 10.8994 55.1006 36.6992 55.1006z" />
-    <glyph glyph-name="maxcdn" unicode="&#xf136;" horiz-adv-x="512" 
-d="M461.1 5.2998h-97.3994l51.8994 242.7c2.30078 10.2002 0.900391 19.5 -4.39941 25.7002c-5 6.09961 -13.7002 9.59961 -24.2002 9.59961h-49.2998l-59.5 -278h-97.4004l59.5 278h-83.3994l-59.5 -278h-97.4004l59.5 278l-44.5996 95.4004h372.1
-c39.4004 0 75.2998 -16.2998 98.2998 -44.9004c23.2998 -28.5996 31.7998 -67.3994 23.6006 -105.899z" />
-    <glyph glyph-name="html5" unicode="&#xf13b;" horiz-adv-x="384" 
-d="M0 416h384l-34.9004 -395.8l-157.6 -52.2002l-156.6 52.2002zM308.2 288.1l4.39941 47.7002h-241.1l12.7998 -145.6h166.9l-6 -62.2002l-53.7002 -14.5l-53.5 14.5l-3.5 38.0996h-47.7002l6 -75.7998l98.7002 -27.2998h1.09961v0.299805l97.9004 27l13.5996 148.4h-175.6
-l-4.09961 49.3994h183.8z" />
-    <glyph glyph-name="css3" unicode="&#xf13c;" horiz-adv-x="512" 
-d="M480 416l-64 -368l-223.3 -80l-192.7 80l19.5996 94.7998h82l-8 -40.5996l116.4 -44.4004l134.1 44.4004l18.8008 97.0996h-333.4l16 82h333.7l10.5 52.7002h-333.4l16.2998 82h407.4z" />
-    <glyph glyph-name="btc" unicode="&#xf15a;" horiz-adv-x="384" 
-d="M310.204 205.362c46.0059 -11.0283 74.9971 -38.4443 69.3262 -99.8906c-7.24805 -76.5723 -61.5967 -97.0547 -142.896 -101.467v-68.0049h-48.5273v66.7451c-12.29 0 -25.21 0 -38.4443 0.314453v-67.0596h-48.5283v68.0049s-8.88867 0.31543 -97.3701 0.31543
-l9.76758 57.666c34.7305 -0.614258 50.3301 -3.4209 53.2549 16.0703v217.43c-4.60645 24.5664 -24.709 22.1045 -63.0234 21.4268v51.6777c58.748 -0.275391 79.5283 -0.539062 97.3701 0v79.4092h48.5283v-77.833c12.9189 0.31543 25.8389 0.629883 38.4443 0.629883
-v77.2031h48.5273v-79.4092c62.3926 -5.35547 109.492 -24.5781 114.851 -81.9287c4.09668 -41.9102 -13.5508 -67.1201 -41.2803 -81.2998zM150.608 313.447v-96.7402c27.416 0 113.126 -6.30273 113.126 48.2119c0 57.0352 -85.7109 48.5283 -113.126 48.5283z
-M150.608 61.6709c32.7715 0 133.126 -6.93262 133.127 53.2529c0 62.3936 -100.355 53.2549 -133.127 53.2549v-106.508z" />
-    <glyph glyph-name="youtube" unicode="&#xf167;" horiz-adv-x="576" 
-d="M549.655 323.917c11.4121 -42.8672 11.4121 -132.305 11.4121 -132.305s0 -89.4385 -11.4121 -132.306c-6.28125 -23.6494 -24.7871 -41.5 -48.2842 -47.8203c-42.5908 -11.4863 -213.371 -11.4863 -213.371 -11.4863s-170.78 0 -213.371 11.4863
-c-23.4971 6.32031 -42.0029 24.1709 -48.2842 47.8203c-11.4121 42.8672 -11.4121 132.306 -11.4121 132.306s0 89.4375 11.4121 132.305c6.28125 23.6504 24.7871 42.2754 48.2842 48.5967c42.5908 11.4863 213.371 11.4863 213.371 11.4863s170.781 0 213.371 -11.4863
-c23.4971 -6.32031 42.0029 -24.9463 48.2842 -48.5967zM232.145 110.409l142.739 81.2012l-142.739 81.2051v-162.406z" />
-    <glyph glyph-name="xing" unicode="&#xf168;" horiz-adv-x="384" 
-d="M162.7 238c-1.7998 -3.2998 -25.2002 -44.4004 -70.1006 -123.5c-4.89941 -8.2998 -10.7998 -12.5 -17.6992 -12.5h-65.1006c-7.7002 0 -12.0996 7.5 -8.5 14.4004l69 121.3c0.200195 0 0.200195 0.0996094 0 0.299805l-43.8994 75.5996
-c-4.30078 7.80078 0.299805 14.1006 8.5 14.1006h65.0996c7.2998 0 13.2998 -4.10059 18 -12.2002zM382.6 401.9l-144 -253v-0.300781l91.6006 -166.6c3.89941 -7.09961 0.200195 -14.0996 -8.5 -14.0996h-65.2002c-7.59961 0 -13.5996 4 -18 12.1992l-92.4004 168.5
-c3.30078 5.80078 51.5 90.8008 144.801 255.2c4.59961 8.10059 10.3994 12.2002 17.5 12.2002h65.6992c8 0 12.3008 -6.7002 8.5 -14.0996z" />
-    <glyph glyph-name="xing-square" unicode="&#xf169;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM140.4 127.8c4.89941 0 9.09961 2.90039 12.5996 9.10059c32.0996 56.5 48.7998 85.8994 50.0996 88.1992l-31.8994 55.3008
-c-3.40039 5.7998 -7.7002 8.69922 -12.9004 8.69922h-46.5996c-5.7998 0 -9 -4.5 -6 -10.0996l31.3994 -54c0.100586 -0.0996094 0.100586 -0.200195 0 -0.200195l-49.2998 -86.7002c-2.7002 -5 0.5 -10.2998 6 -10.2998h46.6006zM360.1 341.9
-c2.80078 5.2998 -0.299805 10.0996 -6 10h-46.8994c-5.10059 0 -9.2002 -2.90039 -12.5 -8.7002c-66.6006 -117.4 -101.101 -178.2 -103.4 -182.3l66 -120.301c3.2002 -5.7998 7.40039 -8.69922 12.9004 -8.69922h46.5996c6.10059 0 8.7998 5 6 10.0996l-65.5 119v0.200195z
-" />
-    <glyph glyph-name="dropbox" unicode="&#xf16b;" horiz-adv-x="528" 
-d="M264.4 331.7l-132 -84.2998l132 -84.3008l-132 -84.2998l-132.4 85.1006l132.3 84.2998l-132.3 83.5l132.3 84.2998zM131.6 52.2998l132 84.2998l132 -84.2998l-132 -84.2998zM264.4 163.9l132 84.2998l-132 83.5996l131.3 84.2002l132.3 -84.2998l-132.3 -84.2998
-l132.3 -84.2002l-132.3 -84.2998z" />
-    <glyph glyph-name="stack-overflow" unicode="&#xf16c;" horiz-adv-x="384" 
-d="M290.7 137l-8.2002 -39l-195.7 41l8.2002 39.2998zM341.7 224l-25.5 -30.7998l-153.5 128.3l25.5 30.7998zM310.5 184.3l-16.7998 -36.2998l-181.2 84.5l16.7002 36.5zM262 416l119.3 -160.3l-32 -24l-119.3 160.3zM282.5 88v-39.7002h-200v39.7002h200zM322.2 8v120h40
-v-160h-359.5v160h40v-120h279.5z" />
-    <glyph glyph-name="instagram" unicode="&#xf16d;" 
-d="M224.1 307c63.6006 0 114.9 -51.2998 114.9 -114.9c0 -63.5996 -51.2998 -114.899 -114.9 -114.899c-63.5996 0 -114.899 51.2998 -114.899 114.899c0 63.6006 51.2998 114.9 114.899 114.9zM224.1 117.4c41.1006 0 74.7002 33.5 74.7002 74.6992
-c0 41.2002 -33.5 74.7002 -74.7002 74.7002c-41.1992 0 -74.6992 -33.5 -74.6992 -74.7002c0 -41.1992 33.5996 -74.6992 74.6992 -74.6992zM370.5 311.7c0 -14.9004 -12 -26.7998 -26.7998 -26.7998c-14.9004 0 -26.7998 12 -26.7998 26.7998s12 26.7998 26.7998 26.7998
-s26.7998 -12 26.7998 -26.7998zM446.6 284.5c2.10059 -37 2.10059 -147.8 0 -184.8c-1.7998 -35.9004 -10 -67.7002 -36.1992 -93.9004c-26.2002 -26.2998 -58 -34.5 -93.9004 -36.2002c-37 -2.09961 -147.9 -2.09961 -184.9 0
-c-35.8994 1.80078 -67.5996 10 -93.8994 36.2002s-34.5 58 -36.2002 93.9004c-2.09961 37 -2.09961 147.899 0 184.899c1.7998 35.9004 9.90039 67.7002 36.2002 93.9004s58.0996 34.4004 93.8994 36.0996c37 2.10059 147.9 2.10059 184.9 0
-c35.9004 -1.7998 67.7002 -10 93.9004 -36.1992c26.2998 -26.2002 34.5 -58 36.1992 -93.9004zM398.8 60c11.7002 29.4004 9 99.5 9 132.1c0 32.6006 2.7002 102.601 -9 132.101c-7.89941 19.7002 -23 34.7998 -42.5996 42.5996c-29.4004 11.6006 -99.5 9 -132.101 9
-c-32.5996 0 -102.6 2.7002 -132.1 -9c-19.7002 -7.89941 -34.7998 -23 -42.5996 -42.5996c-11.6006 -29.4004 -9 -99.5 -9 -132.101c0 -32.5996 -2.7002 -102.6 9 -132.1c7.89941 -19.7002 23 -34.7998 42.5996 -42.5996c29.4004 -11.6006 99.5 -9 132.1 -9
-c32.6006 0 102.601 -2.7002 132.101 9c19.7002 7.89941 34.7998 23 42.5996 42.5996z" />
-    <glyph glyph-name="flickr" unicode="&#xf16e;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM144.5 129c35.0996 0 63.5 28.4004 63.5 63.5s-28.4004 63.5 -63.5 63.5s-63.5 -28.4004 -63.5 -63.5s28.4004 -63.5 63.5 -63.5z
-M303.5 129c35.0996 0 63.5 28.4004 63.5 63.5s-28.4004 63.5 -63.5 63.5s-63.5 -28.4004 -63.5 -63.5s28.4004 -63.5 63.5 -63.5z" />
-    <glyph glyph-name="adn" unicode="&#xf170;" horiz-adv-x="496" 
-d="M248 280.5l64.9004 -98.7998h-129.801zM496 192c0 -136.9 -111.1 -248 -248 -248s-248 111.1 -248 248s111.1 248 248 248s248 -111.1 248 -248zM396.2 109.3l-148.2 223.2l-148.2 -223.2h30.4004l33.5996 51.7002h168.601l33.5996 -51.7002h30.2002z" />
-    <glyph glyph-name="bitbucket" unicode="&#xf171;" horiz-adv-x="512" 
-d="M22.2002 416l466.8 -0.200195c0.954102 -0.0136719 1.875 -0.0800781 2.7998 -0.200195c7.58789 -1.25 13.3994 -7.83203 13.3994 -15.7715c0 -0.860352 -0.0683594 -1.7041 -0.199219 -2.52832l-67.9004 -416.8c-1.24902 -7.58887 -7.84277 -13.4014 -15.7832 -13.4014
-c-0.0722656 0 -0.144531 0 -0.216797 0.000976562h-325.699c-10.7129 0.0869141 -19.5967 7.94727 -21.3008 18.2002l-67.8994 412.101c-0.116211 0.924805 -0.182617 1.84668 -0.200195 2.7998c0.108398 8.7373 7.23242 15.8008 15.9951 15.8008
-c0.0683594 0 0.136719 0 0.205078 -0.000976562zM308.1 118.2l25.2002 147h-157.3l28.0996 -147h104z" />
-    <glyph glyph-name="tumblr" unicode="&#xf173;" horiz-adv-x="320" 
-d="M309.8 -32.2998c-13.5996 -14.5 -50 -31.7002 -97.3994 -31.7002c-120.801 0 -147 88.7998 -147 140.6v144h-47.5c-5.5 0 -10 4.5 -10 10v68c0 7.2002 4.5 13.6006 11.2998 16c62 21.8008 81.5 76 84.2998 117.101c0.799805 11 6.5 16.2998 16.0996 16.2998h70.9004
-c5.5 0 10 -4.5 10 -10v-115.2h83c5.5 0 10 -4.39941 10 -9.89941v-81.7002c0 -5.5 -4.5 -10 -10 -10h-83.4004v-133.2c0 -34.2002 23.7002 -53.5996 68 -35.7998c4.80078 1.89941 9 3.2002 12.7002 2.2002c3.5 -0.900391 5.7998 -3.40039 7.40039 -7.90039l22 -64.2998
-c1.7998 -5 3.2998 -10.6006 -0.400391 -14.5z" />
-    <glyph glyph-name="tumblr-square" unicode="&#xf174;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM317.7 51.7998c2.2998 2.40039 1.2998 5.90039 0.299805 9.10059l-13.7998 40.1992c-1 2.80078 -2.40039 4.40039 -4.60059 4.90039
-c-2.39941 0.599609 -5 -0.200195 -8 -1.40039c-27.6992 -11.0996 -42.5 1 -42.5 22.4004v83.2998h52.1006c3.39941 0 6.2002 2.7998 6.2002 6.2002v51.0996c0 3.40039 -2.80078 6.2002 -6.2002 6.2002h-51.9004v72c0 3.40039 -2.7998 6.2002 -6.2002 6.2002h-44.2998
-c-5.89941 0 -9.5 -3.2998 -10 -10.2002c-1.7998 -25.7002 -13.8994 -59.5 -52.7002 -73.2002c-4.2998 -1.5 -7.09961 -5.5 -7.09961 -10v-42.5c0 -3.39941 2.7998 -6.19922 6.2002 -6.19922h29.7002v-90c0 -32.4004 16.3994 -87.9004 91.8994 -87.9004
-c29.7002 0 52.4004 10.7002 60.9004 19.7998z" />
-    <glyph glyph-name="apple" unicode="&#xf179;" horiz-adv-x="384" 
-d="M318.7 179.3c0 -1.89941 -3.5 -61.2002 61.7002 -91.8994c-12.2002 -36.8008 -54 -118.601 -102.601 -119.301c-28.0996 0 -44.5996 17.9004 -76.3994 17.9004c-32.8008 0 -50.6006 -17.2998 -75.8008 -17.9004c-48.1992 -1.5 -94.3994 88.5 -107.199 125.2
-c-9.60059 27.9336 -14.4004 55 -14.4004 81.2002c0 88.7002 59.2998 132.3 115.1 133.2c27 0 61.4004 -19.7002 76.4004 -19.7002c14.2002 0 53 23.5 88.5 20.7002c37.5 -2.90039 65.9004 -17.7002 84.7002 -44.6006c-33.6006 -20.3994 -50.2002 -48.0996 -50 -84.7998z
-M262.1 343.5c-19.5996 -22.9004 -43.3994 -36.2998 -69.5 -34.2998c-2.19922 27.5996 8.10059 52.0996 25.6006 71.8994c15.8994 18.5 43.7998 33.5 67.8994 34.9004c0.800781 -10.5996 3.30078 -40.0996 -24 -72.5z" />
-    <glyph glyph-name="windows" unicode="&#xf17a;" 
-d="M0 354.3l183.6 25.2998v-177.399h-183.6v152.1zM0 29.7002v149.899h183.6v-175.199zM203.8 1.7002v177.899h244.2v-211.6zM203.8 382.3l244.2 33.7002v-213.8h-244.2v180.1z" />
-    <glyph glyph-name="android" unicode="&#xf17b;" horiz-adv-x="576" 
-d="M420.55 146.07c-13.2461 0 -24 10.7539 -24 24s10.7539 24 24 24s24 -10.7539 24 -24s-10.7539 -24 -24 -24zM155.45 146.07c-13.2461 0 -24 10.7539 -24 24s10.7539 24 24 24s24 -10.7539 24 -24s-10.7539 -24 -24 -24zM429.15 290.55l47.9395 83
-c1.06738 1.59082 1.69043 3.50391 1.69043 5.5625c0 5.51855 -4.48047 10 -10 10c-3.93359 0 -7.32812 -2.25684 -8.95996 -5.5625v0l-48.54 -84.0693c-37.5742 16.8516 -79.2197 26.2266 -123.037 26.2266c-43.8164 0 -85.9492 -9.375 -123.523 -26.2266l-48.54 84.0693
-c-1.63184 3.30566 -5.03809 5.58203 -8.97168 5.58203c-5.51953 0 -10 -4.48145 -10 -10c0 -2.05859 0.634766 -3.99121 1.70215 -5.58203v0l47.9395 -83c-82.3193 -44.7695 -138.609 -128.1 -146.85 -226.55h576c-8.24023 98.4502 -64.54 181.78 -146.85 226.55z" />
-    <glyph glyph-name="linux" unicode="&#xf17c;" 
-d="M220.8 324.7c-1.09961 0.599609 -3.09961 0.399414 -3.39941 1.7002c-0.200195 0.399414 0.199219 0.899414 0.599609 1.09961c1.59961 0.900391 3.7998 0.599609 5.5 -0.0996094c1.2998 -0.600586 3.40039 -1.5 3.2002 -2.90039
-c-0.100586 -1.09961 -1.7998 -1.5 -2.90039 -1.5c-1.2002 0 -2 1.2002 -3 1.7002zM198.9 323c-1 -0.0996094 -2.7002 0.400391 -2.80078 1.40039c-0.199219 1.39941 1.90039 2.2998 3.2002 2.89941c1.7002 0.700195 3.90039 1 5.5 0.100586
-c0.400391 -0.200195 0.799805 -0.700195 0.600586 -1.10059c-0.400391 -1.2002 -2.40039 -1 -3.5 -1.59961c-1 -0.5 -1.80078 -1.7002 -3 -1.7002zM420 44.2002c11.0996 -12.4004 15.9004 -21.5 15.5 -29.7002c-0.5 -8.2002 -6.5 -13.7998 -13.9004 -18.2998
-c-14.8994 -9 -37.2998 -15.7998 -50.8994 -32.2002c-14.2002 -16.9004 -31.7002 -26.5996 -48.2998 -27.9004c-16.5 -1.2998 -32 6.30078 -40.3008 23v0.100586c-1.09961 2.09961 -1.89941 4.39941 -2.5 6.7002c-21.5 -1.2002 -40.1992 5.2998 -55.0996 4.09961
-c-22 -1.2002 -35.7998 -6.5 -48.2998 -6.59961c-4.7998 -10.6006 -14.2998 -17.6006 -25.9004 -20.2002c-16 -3.7002 -36.0996 0 -55.8994 10.3994c-18.5 9.80078 -42 8.90039 -59.3008 12.5c-8.69922 1.80078 -16.2998 5 -20.0996 12.3008
-c-3.7002 7.2998 -3 17.2998 2.2002 31.6992c1.7002 5.10059 0.399414 12.7002 -0.799805 20.8008c-0.600586 3.89941 -1.2002 7.89941 -1.2002 11.7998c0 4.2998 0.700195 8.5 2.7998 12.3994c4.5 8.5 11.7998 12.1006 18.5 14.5c6.7002 2.40039 12.7998 4 17 8.30078
-c5.2002 5.5 10.0996 14.3994 16.5996 20.1992c-2.59961 17.2002 0.200195 35.4004 6.2002 53.3008c12.6006 37.8994 39.2002 74.1992 58.1006 96.6992c16.0996 22.9004 20.7998 41.3008 22.5 64.7002c1.09961 31.7998 -24.5 135.4 77.8994 135.2
-c80.9004 -0.0996094 76.2998 -85.4004 75.7998 -131.3c-0.299805 -30.1006 16.3008 -50.5 33.4004 -72c15.2002 -18 35.0996 -44.2998 46.5 -74.4004c9.2998 -24.5996 12.9004 -51.7998 3.7002 -79.0996c1.39941 -0.5 2.7998 -1.2002 4.09961 -2
-c1.40039 -0.799805 2.7002 -1.7998 4 -2.90039c6.60059 -5.59961 8.7002 -14.2998 10.5 -22.3994c1.90039 -8.10059 3.60059 -15.7002 7.2002 -19.7002zM223.7 360.7c-3.2002 -7.2002 -3.90039 -14.9004 -2.90039 -21.7998c3.60059 -0.900391 8.90039 -2.40039 13 -4.40039
-c-2.09961 12.2002 4.5 23.5 11.7998 23c8.90039 -0.299805 13.9004 -15.5 9.10059 -27.2998c-0.799805 -1.90039 -2.7998 -3.40039 -3.90039 -4.60059c6.7002 -2.2998 11 -4.09961 12.6006 -4.89941c7.89941 9.5 10.7998 26.2002 4.2998 40.3994
-c-9.7998 21.4004 -34.2002 21.8008 -44 -0.399414zM183 372.2c-18.9004 0 -24 -37.5 -8.40039 -52.1006c7.80078 5.7002 6.90039 4.7002 5.90039 5.5c-8 6.90039 -6.59961 27.4004 1.7998 28.1006c6.2998 0.5 10.7998 -10.7002 9.60059 -19.6006
-c3.09961 2.10059 6.69922 3.60059 10.1992 4.60059c1.7002 19.2998 -9 33.5 -19.0996 33.5zM169.4 311.5c-4.2002 -3.2998 -5.60059 -7.40039 -4.2002 -12.2998c1.5 -4.90039 6.09961 -10.5 14.7002 -15.2998c7.7998 -4.60059 12 -11.5 20 -15
-c2.59961 -1.10059 5.69922 -1.90039 9.59961 -2.10059c18.4004 -1.09961 27.0996 11.2998 38.2002 14.9004c11.7002 3.7002 20.0996 11 22.7002 18.0996c3.19922 8.5 -2.10059 14.7002 -10.5 18.2002c-11.3008 4.90039 -16.3008 5.2002 -22.6006 9.2998
-c-10.2998 6.60059 -18.7998 8.90039 -25.8994 8.90039c-14.4004 0 -23.2002 -9.7998 -27.9004 -14.2002c-0.5 -0.5 -7.90039 -5.90039 -14.0996 -10.5zM172.7 -22.5c2.09961 20.5 -31.5 49 -41 68.9004l-19.6006 35.5996c-6.7998 9.2002 -13.7998 14.7998 -21.8994 16
-c-7.7002 1.2002 -12.6006 -1.40039 -17.7002 -6.90039c-4.7998 -5.09961 -8.7998 -12.2998 -14.2998 -18c-7.7998 -6.5 -9.2998 -6.19922 -19.6006 -9.89941c-6.2998 -2.2002 -11.2998 -4.60059 -14.7998 -11.2998c-2.7002 -5 -2.09961 -12.2002 -0.899414 -20
-c1.19922 -7.90039 3 -16.3008 0.599609 -23.9004v-0.200195c-5 -13.7002 -5 -21.7002 -2.59961 -26.3994c7.89941 -15.4004 46.5996 -6.10059 76.5 -21.9004c31.3994 -16.4004 72.5996 -17.0996 75.2998 18zM171.3 3.40039c37.6006 -25.7002 82.2002 -15.7002 114.3 7.19922
-c3.2002 11 6.30078 21.3008 6.80078 29c0.799805 15.2002 1.59961 28.7002 4.39941 39.9004c3.10059 12.5996 9.2998 23.0996 21.4004 27.2998c2.2998 21.1006 18.7002 21.1006 38.2998 12.5c18.9004 -8.5 26 -16 22.7998 -26.0996c1 0 2 0.0996094 4.2002 0
-c5.2002 16.8994 -14.2998 28 -30.7002 34.7998c2.90039 12 2.40039 24.0996 -0.399414 35.7002c-6 25.2998 -22.6006 47.7998 -35.2002 59c-2.2998 0.0996094 -2.10059 -1.90039 2.59961 -6.5c11.6006 -10.7002 37.1006 -49.2002 23.2998 -84.9004
-c-3.89941 1 -7.59961 1.5 -10.8994 1.40039c-5.2998 29.0996 -17.5 53.2002 -23.6006 64.5996c-11.5 21.4004 -29.5 65.2998 -37.1992 95.7002c-4.5 -6.40039 -12.4004 -11.9004 -22.3008 -15c-4.69922 -1.5 -9.69922 -5.5 -15.8994 -9
-c-13.9004 -8 -30 -8.7998 -42.4004 1.2002c-4.5 3.59961 -8 7.59961 -12.5996 10.2998c-1.60059 0.900391 -5.10059 3.2998 -6.2002 4.09961c-2 -37.7998 -27.2998 -85.2998 -39.2998 -112.699c-8.2998 -19.7002 -13.2002 -40.8008 -13.7998 -61.5
-c-21.8008 29.0996 -5.90039 66.2998 2.59961 82.3994c9.5 17.6006 11 22.5 8.7002 20.7998c-8.60059 -14 -22 -36.2998 -27.2002 -59.1992c-2.7002 -11.9004 -3.2002 -24 0.299805 -35.2002s11.1006 -21.5 24.6006 -29.9004c0 0 24.7998 -14.2998 38.2998 -32.5
-c7.39941 -10 9.7002 -18.7002 7.39941 -24.8994c-2.5 -6.7002 -9.59961 -8.90039 -16.6992 -8.90039c4.7998 -6 10.2998 -13 14.3994 -19.5996zM428.7 14.9004c0.299805 5.09961 -3.10059 13 -13.7002 24.5996c-10 11.2998 -7.2002 33.0996 -17.0996 41.5996
-c-6.90039 6 -13.6006 5.40039 -22.6006 5.10059c-7.7002 -8.7998 -25.7998 -19.6006 -38.3994 -16.2998c-11.5 2.89941 -18 16.2998 -18.8008 29.5c-0.299805 -0.200195 -0.699219 -0.300781 -1 -0.5c-7.09961 -3.90039 -11.0996 -10.8008 -13.6992 -21.1006
-c-2.5 -10.2002 -3.40039 -23.5 -4.2002 -38.7002c-0.700195 -11.7998 -6.2002 -26.3994 -9.90039 -40.5996c-3.5 -13.2002 -5.7998 -25.2002 -1.09961 -36.2998c7.2002 -14.5 19.5 -20.4004 33.7002 -19.2998c14.1992 1.09961 30.3994 9.7998 43.5996 25.5
-c22 26.5996 62.2998 29.6992 63.2002 46.5zM173.3 299.3c-3.5 2.7998 -3.09961 6.60059 -1.7002 6.5c2.40039 -0.299805 2.80078 -3.5 4.30078 -4.89941c2 -1.90039 4.59961 -4.40039 7.69922 -6.90039c6.2002 -4.90039 14.5 -9.7002 24.9004 -9.7002
-s22.5 6 29.9004 10.2002c4.19922 2.40039 9.5 6.59961 13.8994 9.7998c3.40039 2.5 3.2002 5.40039 6 5.10059c2.7998 -0.300781 0.799805 -3.2002 -3.09961 -6.60059c-3.90039 -3.39941 -9.90039 -7.7998 -14.7998 -10.3994
-c-9.30078 -4.90039 -20.2002 -10.8008 -31.8008 -10.8008c-11.5 0 -20.6992 5.40039 -27.2998 10.6006c-3.2998 2.59961 -6 5.2002 -8 7.09961z" />
-    <glyph glyph-name="dribbble" unicode="&#xf17d;" horiz-adv-x="512" 
-d="M256 440c136.748 0 248 -111.252 248 -248s-111.252 -248 -248 -248s-248 111.252 -248 248s111.252 248 248 248zM419.97 325.634c-4.46582 -6.04102 -39.9629 -51.5459 -118.284 -83.5225c7.43652 -15.2217 12.8652 -27.5732 18.6172 -41.6143
-c70.4844 8.86426 140.519 -5.34082 147.502 -6.81836c-0.46582 49.998 -18.332 95.9092 -47.835 131.955zM396.421 350.13c-52.0947 46.2188 -122.885 63.6816 -190.061 47.4893c5.85449 -7.83984 44.3281 -60.2324 79.04 -124.008
-c75.3232 28.2324 107.211 71.0918 111.021 76.5186zM165.941 383.38c-59.2637 -27.9531 -103.562 -82.585 -117.298 -148.318c9.47461 -0.125 96.7471 -0.503906 195.834 25.8096c-35.0986 62.3926 -72.9512 114.85 -78.5361 122.509zM44.1699 191.677
-c0 -54.4072 20.624 -104.082 54.457 -141.636c34.3369 58.7793 103.932 120.731 180.531 142.306c-5.31738 12.0342 -11.1104 24.0811 -17.1738 35.9492c-105.786 -31.6592 -208.438 -30.3359 -217.706 -30.1455c-0.0654297 -2.15137 -0.108398 -4.30762 -0.108398 -6.47363
-zM125.977 24.5645c62.7539 -48.9355 144.656 -56.8955 212.769 -27.8828c-3.15039 18.585 -15.4492 83.3555 -45.1895 160.639c-85.4004 -29.1348 -145.452 -87.5234 -167.579 -132.756zM374.357 16.0752c47.5215 32.1338 81.3525 83.0371 90.7949 141.978
-c-7.24707 2.28711 -65.5674 19.6816 -131.947 9.05566c27.7061 -76.1367 38.9805 -138.147 41.1523 -151.033z" />
-    <glyph glyph-name="skype" unicode="&#xf17e;" 
-d="M424.7 148.2c14.5996 -18.9004 23.2998 -42.5 23.2002 -68.1006c0 -61.7998 -50.2002 -112 -112 -112c-25.6006 0 -49.2002 8.7002 -68.2002 23.3008c-14.1006 -3 -28.9004 -4.7002 -43.7998 -4.7002c-113.4 0 -205.301 91.7998 -205.301 205.3
-c0 14.9004 1.80078 29.7998 4.7002 43.7998c-14.5996 18.9004 -23.2998 42.5 -23.2998 68.2002c0 61.7998 50.2002 112 112 112c25.7002 0 49.2998 -8.7002 68.2998 -23.4004c14.1006 3 28.9004 4.7002 43.7998 4.7002c113.4 0 205.301 -91.7998 205.301 -205.3
-c0 -14.9004 -1.80078 -29.7998 -4.7002 -43.7998zM230.1 56.7002c54.9004 0 112 27.3994 112 86.5c0 50.7998 -49.2998 68.2998 -90.6992 77.5996c-48.3008 11.2002 -69.1006 13.2002 -69.1006 33c0 15.5 16.2998 22.5 42 22.5c45.7998 0 46.7002 -33.5 75 -33.5
-c18.9004 0 30.2998 14.9004 30.2998 31.7998c0 33.5 -55.6992 55.4004 -110.8 55.4004c-50.5 0 -109.1 -21.9004 -109.1 -81.0996c0 -65.2002 55.2998 -71.8008 117.8 -87.2002c26 -6.40039 42 -9.2998 42 -28c0 -14.9004 -16.5996 -26.2998 -42.2998 -26.2998
-c-54 0 -56.9004 44.8994 -88.1006 44.8994c-20.5 0 -29.5 -14.5996 -29.5 -30.5996c0 -35.7998 54.9004 -65 120.5 -65z" />
-    <glyph glyph-name="foursquare" unicode="&#xf180;" horiz-adv-x="368" 
-d="M323.1 445c40 0 50.7002 -22.7998 42.2002 -65.2002l-48.5996 -243c-3.7002 -14.5 -9.2002 -39.7002 -44.2998 -39.7002h-83.4004c-3.40039 0 -3.7002 0.300781 -6.7998 -3.09961c0 0 -2.2002 -2.5 -131.101 -151.9
-c-10.0996 -11.6992 -26.6992 -9.59961 -32.8994 -7.09961c-6.10059 2.40039 -18.2002 9.7998 -18.2002 30.0996v433.801c0 17.7998 12.4004 46.0996 49.9004 46.0996h273.199zM306.8 371.2c2.10059 9.7998 -5.2998 17.5 -13.5 17.5h-219
-c-9.7998 0 -16.5996 -8.90039 -16.5996 -16.6006v-338.8c0 -0.899414 0.899414 -1.2002 1.7998 -0.299805c80.5996 96.9004 89.5 108.3 89.5 108.3c9.2998 10.7998 13 12.6006 26.5 12.6006h73.5c10.0996 0 16 8.59961 16.9004 13.5
-c0.899414 5 9.59961 49.8994 11.3994 58.7998c1.7998 9 -6.5 18.2002 -14.7998 18.2002h-90.4004c-12 0 -20.5996 8.59961 -20.5996 20.5996v13c0 12 8.59961 20.2998 20.5996 20.2998h106.4c7.40039 0 15.7002 6.7002 16.9004 13.2002z" />
-    <glyph glyph-name="trello" unicode="&#xf181;" 
-d="M392.3 416c30.7998 -0.200195 55.7002 -25.2002 55.6006 -56v-336c0 -30.7998 -24.9004 -55.7998 -55.7002 -56h-336.2c-30.9004 0 -56 25.0996 -56 56c0 340 -0.0996094 336 0 336c0 30.9004 25.0996 56 56.0996 56h336.2zM197 76.7002h0.0996094v254.2
-c0 14.8994 -12.0996 26.8994 -26.8994 26.8994h-82.9004c-14.8994 0 -26.8994 -12.0996 -26.8994 -26.8994v-254.2c0.0996094 -14.7998 12.1992 -26.7002 27 -26.6006h82.6992c14.8008 0 26.7002 11.9004 26.9004 26.6006zM390.1 188.7v142.1
-c0 14.9004 -12.0996 26.9004 -26.8994 26.9004h-81.1006c-14.7998 0 -26.7998 -12.1006 -26.7998 -26.9004v-142.1c0 -14.9004 12.1006 -26.9004 26.9004 -26.9004h81c14.8994 0 26.8994 12.1006 26.8994 26.9004z" />
-    <glyph glyph-name="gratipay" unicode="&#xf184;" horiz-adv-x="496" 
-d="M248 440c136.9 0 248 -111.1 248 -248s-111.1 -248 -248 -248s-248 111.1 -248 248s111.1 248 248 248zM362.6 213.6c8.80078 12 19.1006 50.4004 -13.7998 72c-27.7002 18.1006 -54.2002 4.2002 -68.0996 -11.8994c-15.1006 -16.9004 -45.7998 -17.9004 -61.7002 0
-c-13.9004 16.0996 -40.4004 30 -68.5 11.8994c-32.7002 -21.5996 -22.2998 -60.0996 -13.5996 -72l112.699 -152.699z" />
-    <glyph glyph-name="vk" unicode="&#xf189;" horiz-adv-x="576" 
-d="M545 330.3c-7.40039 -34.2998 -79.2998 -135.5 -79.4004 -135.6c-6.19922 -10 -8.69922 -15 0 -26.2002c3.40039 -4.7998 79.1006 -76.5996 90.3008 -111.5c4.89941 -16.5996 -3.60059 -25 -20.4004 -25h-58.9004c-22.3994 0 -29 17.9004 -69 57.9004
-c-35 33.6992 -50 38.0996 -58.6992 38.0996c-18.8008 0 -15.4004 -6.2998 -15.4004 -73.0996c0 -14.5 -4.59961 -22.9004 -42.0996 -22.9004c-62.4004 0 -131 37.9004 -179.7 107.8c-73.1006 102.4 -93.1006 179.9 -93.1006 195.5c0 8.7998 3.40039 16.7002 20.2002 16.7002
-h58.9004c15.0996 0 20.7998 -6.59961 26.5996 -22.9004c28.7998 -84 77.4004 -157.399 97.4004 -157.399c7.5 0 10.8994 3.5 10.8994 22.5v86.7998c-2.19922 40 -23.3994 43.2998 -23.3994 57.5c0 6.5 5.59961 13.5 15 13.5h92.5996
-c12.4004 0 16.6006 -6.7002 16.6006 -21.7002v-116.7c0 -12.5 5.69922 -16.8994 9.39941 -16.8994c7.5 0 13.7998 4.39941 27.5 18.0996c42.4004 47.4004 72.4004 120.5 72.4004 120.5c3.7002 8.7998 10.5996 16.7002 25.5996 16.7002h58.9004
-c17.7998 0 21.5 -9.2002 17.7998 -21.7002z" />
-    <glyph glyph-name="weibo" unicode="&#xf18a;" horiz-adv-x="512" 
-d="M407 270.4c7.59961 24 -13.4004 46.7998 -37.4004 41.6992c-22 -4.7998 -28.7998 28.1006 -7.09961 32.8008c50.0996 10.8994 92.2998 -37.1006 76.5 -84.8008c-6.7998 -21.1992 -38.7998 -10.7998 -32 10.3008zM214.8 1.2998c-106.3 0 -214.8 51.4004 -214.8 136.3
-c0 44.3008 28 95.4004 76.2998 143.7c99.7002 99.7002 203.2 100.9 173.601 5.7002c-4 -13.0996 12.2998 -5.7002 12.2998 -6c79.5 33.5996 140.5 16.7998 114 -51.4004c-3.7002 -9.39941 1.09961 -10.8994 8.2998 -13.0996c135.7 -42.2998 34.7998 -215.2 -169.7 -215.2z
-M358.5 147.6c-5.40039 55.7002 -78.5 94 -163.4 85.7002c-84.7998 -8.59961 -148.8 -60.2998 -143.399 -116c5.39941 -55.7002 78.5 -94 163.399 -85.7002c84.8008 8.60059 148.801 60.3008 143.4 116zM347.9 412.9c102.3 21.5996 189.3 -74.5 157.399 -174.301
-c-8.2998 -25 -44.7998 -12.1992 -37.3994 12c23.0996 71.2002 -39.4004 139.2 -111.7 124c-25.1006 -5.39941 -34.2002 32.7002 -8.2998 38.3008zM269.4 101.9c-17.1006 -38.8008 -66.8008 -60 -109.101 -46.3008c-40.7998 13.1006 -58 53.4004 -40.2998 89.7002
-c17.7002 35.4004 63.0996 55.4004 103.4 45.1006c42 -10.8008 63.0996 -50.2002 46 -88.5zM183.1 131.9c-12.8994 5.39941 -30 -0.300781 -38 -12.9004c-8.2998 -12.9004 -4.2998 -28 8.60059 -34c13.0996 -6 30.7998 -0.299805 39.0996 12.9004
-c8 13.0996 3.7002 28.2998 -9.7002 34zM215.7 145.3c-5.10059 1.7002 -11.4004 -0.599609 -14.2998 -5.39941c-2.90039 -5.10059 -1.40039 -10.6006 3.69922 -12.9004c5.10059 -2 11.7002 0.299805 14.6006 5.40039c2.7998 5.19922 1.09961 10.8994 -4 12.8994z" />
-    <glyph glyph-name="renren" unicode="&#xf18b;" horiz-adv-x="512" 
-d="M214 278.9c0 -110.4 -61 -205.4 -147.6 -247.4c-36.4004 43.2998 -58.4004 98.7998 -58.4004 159.9c0 122.699 89.0996 224.399 206 244.1v-156.6zM255 -56c-42.9004 0 -83.2998 11 -118.5 30.4004c57.2002 36.0996 103.4 90.6992 118.5 154.6
-c15.5 -63.9004 61.7002 -118.5 118.8 -154.7c-35.0996 -19.2998 -75.5 -30.2998 -118.8 -30.2998zM445.6 31.5c-86.5996 42 -147.6 136.9 -147.6 247.4v156.6c116.9 -19.7002 206 -121.4 206 -244.1c0 -61.1006 -22 -116.601 -58.4004 -159.9z" />
-    <glyph glyph-name="pagelines" unicode="&#xf18c;" horiz-adv-x="384" 
-d="M384 135.3c-55.0996 -136.7 -187.1 -54 -187.1 -54c-40.5 -81.7998 -107.4 -134.399 -184.601 -134.7c-16.0996 0 -16.5996 24.4004 0 24.4004c64.4004 0.299805 120.5 42.7002 157.2 110.1c-41.0996 -15.8994 -118.6 -27.8994 -161.6 82.2002
-c109 44.9004 159.1 -11.2002 178.3 -45.5c9.89941 24.4004 17 50.9004 21.5996 79.7002c0 0 -139.7 -21.9004 -149.5 98.0996c119.101 47.9004 152.601 -76.6992 152.601 -76.6992c1.59961 16.6992 3.2998 52.5996 3.2998 53.3994c0 0 -106.3 73.7002 -38.1006 165.2
-c124.601 -43 61.4004 -162.4 61.4004 -162.4c0.5 -1.59961 0.5 -23.7998 0 -33.3994c0 0 45.2002 89 136.4 57.5c-4.2002 -134 -141.9 -106.4 -141.9 -106.4c-4.40039 -27.3994 -11.2002 -53.3994 -20 -77.5c0 0 83 91.7998 172 20z" />
-    <glyph glyph-name="stack-exchange" unicode="&#xf18d;" 
-d="M17.7002 115.7h412.7v-22c0 -37.7002 -29.3008 -68 -65.3008 -68h-19l-86.7998 -89.7002v89.7002h-176.3c-36 0 -65.2998 30.2998 -65.2998 68v22zM17.7002 139.3v85h412.7v-85h-412.7zM17.7002 248.7v85h412.7v-85h-412.7zM365 448
-c36 0 65.2998 -30.2998 65.4004 -67.7002v-22.2998h-412.7v22.2998c0 37.4004 29.2998 67.7002 65.2998 67.7002h282z" />
-    <glyph glyph-name="vimeo-square" unicode="&#xf194;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM383.8 266.4c1.90039 41.5996 -13.5996 63 -46.5 64c-44.2998 1.39941 -74.3994 -23.6006 -90.0996 -75.1006
-c19.5996 8.40039 48.5996 10.6006 45.2002 -22.2002c-0.900391 -11.0996 -8.10059 -27.0996 -21.5 -48.2998c-37.2002 -58.7002 -46.3008 -39.0996 -66.8008 90.5c-5.7998 36.5 -21.0996 53.5 -46 51.1006c-22 -2 -57.1992 -38 -94.0996 -70.4004l15 -19.4004
-c14.2998 10.1006 22.7002 15.1006 25.0996 15.1006c20.8008 0 31.5 -54.1006 56.7002 -146.4c12.9004 -34.3994 28.6006 -51.5996 47.2998 -51.5996c30.1006 0 66.9004 28.2998 110.4 84.7998c42.0996 54.0996 63.9004 96.7998 65.2998 127.9z" />
-    <glyph glyph-name="slack" unicode="&#xf198;" 
-d="M94.1201 132.9c0 -25.9004 -21.1602 -47.0605 -47.0605 -47.0605c-25.8994 0 -47.0596 21.1602 -47.0596 47.0605c0 25.8994 21.1602 47.0596 47.0596 47.0596h47.0605v-47.0596zM117.84 132.9c0 25.8994 21.1602 47.0596 47.0605 47.0596
-c25.8994 0 47.0596 -21.1602 47.0596 -47.0596v-117.841c0 -25.8994 -21.1602 -47.0596 -47.0596 -47.0596c-25.9004 0 -47.0605 21.1602 -47.0605 47.0596v117.841zM164.9 321.88c-25.9004 0 -47.0605 21.1602 -47.0605 47.0605c0 25.8994 21.1602 47.0596 47.0605 47.0596
-c25.8994 0 47.0596 -21.1602 47.0596 -47.0596v-47.0605h-47.0596zM164.9 298.16c25.8994 0 47.0596 -21.1602 47.0596 -47.0605c0 -25.8994 -21.1602 -47.0596 -47.0596 -47.0596h-117.841c-25.8994 0 -47.0596 21.1602 -47.0596 47.0596
-c0 25.9004 21.1602 47.0605 47.0596 47.0605h117.841zM353.88 251.1c0 25.9004 21.1602 47.0605 47.0605 47.0605c25.8994 0 47.0596 -21.1602 47.0596 -47.0605c0 -25.8994 -21.1602 -47.0596 -47.0596 -47.0596h-47.0605v47.0596zM330.16 251.1
-c0 -25.8994 -21.1602 -47.0596 -47.0605 -47.0596c-25.8994 0 -47.0596 21.1602 -47.0596 47.0596v117.841c0 25.8994 21.1602 47.0596 47.0596 47.0596c25.9004 0 47.0605 -21.1602 47.0605 -47.0596v-117.841zM283.1 62.1201c25.9004 0 47.0605 -21.1602 47.0605 -47.0605
-c0 -25.8994 -21.1602 -47.0596 -47.0605 -47.0596c-25.8994 0 -47.0596 21.1602 -47.0596 47.0596v47.0605h47.0596zM283.1 85.8398c-25.8994 0 -47.0596 21.1602 -47.0596 47.0605c0 25.8994 21.1602 47.0596 47.0596 47.0596h117.841
-c25.8994 0 47.0596 -21.1602 47.0596 -47.0596c0 -25.9004 -21.1602 -47.0605 -47.0596 -47.0605h-117.841z" />
-    <glyph glyph-name="wordpress" unicode="&#xf19a;" horiz-adv-x="512" 
-d="M61.7002 278.6l101.5 -278c-71 34.4004 -119.9 107.2 -119.9 191.4c0 30.9004 6.60059 60.0996 18.4004 86.5996zM399.6 202.7c0 -18.2002 -7 -39.2998 -16 -68.7002l-21.1992 -70.9004l-76.9004 228.7c12.7998 0.700195 24.2998 2 24.2998 2
-c11.4004 1.2998 10.1006 18.2002 -1.39941 17.5c0 0 -34.5 -2.7002 -56.7002 -2.7002c-20.9004 0 -56 2.7002 -56 2.7002c-11.4004 0.700195 -12.7998 -16.7998 -1.2998 -17.5c0 0 10.7998 -1.2998 22.2998 -2l33.0996 -90.7998l-46.5996 -139.6l-77.5 230.399
-c12.7998 0.700195 24.2998 2 24.2998 2c11.4004 1.2998 10.0996 18.2002 -1.40039 17.5c0 0 -34.5 -2.7002 -56.6992 -2.7002c-4 0 -8.7002 0.100586 -13.7002 0.300781c38.0996 57.7998 103.5 95.8994 177.8 95.8994c55.4004 0 105.8 -21.2002 143.7 -55.8994
-c-1 0.0996094 -1.90039 0.199219 -2.7998 0.199219c-20.9004 0 -35.7002 -18.1992 -35.7002 -37.7998c0 -17.5 10.0996 -32.3994 20.8994 -49.8994c8.10059 -14.2002 17.5 -32.4004 17.5 -58.7002zM259.7 173.4l65.3994 -179.2c0.400391 -1 0.900391 -2 1.5 -2.90039
-c-22.0996 -7.7998 -45.7998 -12.0996 -70.5996 -12.0996c-20.9004 0 -41 3.09961 -60.0996 8.7002zM442.7 294.1c16.5996 -30.2998 26 -65.0996 26 -102.1c0 -78.5 -42.5 -147 -105.8 -183.9l65 187.9c12.1992 30.4004 16.1992 54.5996 16.1992 76.2002
-c0 7.89941 -0.5 15.0996 -1.39941 21.8994zM504 192c0 -136.8 -111.3 -248 -248 -248c-136.8 0 -248 111.3 -248 248c0 136.8 111.2 248 248 248c136.7 0 248 -111.2 248 -248zM492.6 192c0 130.5 -106.199 236.6 -236.6 236.6c-130.5 0 -236.6 -106.1 -236.6 -236.6
-s106.199 -236.6 236.6 -236.6c130.5 0 236.6 106.1 236.6 236.6z" />
-    <glyph glyph-name="openid" unicode="&#xf19b;" 
-d="M271.5 16l-68 -32c-115 10.2998 -203.5 71.5 -203.5 145.8c0 71.5 82.5 131 191.7 144.3v-43c-71.5 -12.5 -124 -53 -124 -101.3c0 -51 58.5 -93.2998 135.7 -103v340l68 33.2002v-384h0.0996094zM448 157l-131.3 28.5l36.7998 20.7002c-19.5 11.5 -43.5 20 -70 24.7998
-v43c46.2002 -5.5 87.7002 -19.5 120.3 -39.2998l35 19.7998z" />
-    <glyph glyph-name="yahoo" unicode="&#xf19e;" horiz-adv-x="512" 
-d="M223.69 306.94h93.5791l-140.909 -338.94h-94.1699l38.5693 89.8096l-105.83 249.131h96.0703l56 -143.171zM329.09 171.15c32.1328 0 58.2197 -26.0879 58.2197 -58.2207c0 -32.1318 -26.0869 -58.2197 -58.2197 -58.2197s-58.2197 26.0879 -58.2197 58.2197
-c0 32.1328 26.0869 58.2207 58.2197 58.2207zM394.65 416h104.42l-92.6299 -223.47h-104.79z" />
-    <glyph glyph-name="google" unicode="&#xf1a0;" horiz-adv-x="488" 
-d="M488 186.2c0 -141.5 -96.9004 -242.2 -240 -242.2c-137.2 0 -248 110.8 -248 248s110.8 248 248 248c66.7998 0 123 -24.5 166.3 -64.9004l-67.5 -64.8994c-88.2998 85.2002 -252.5 21.2002 -252.5 -118.2c0 -86.5 69.1006 -156.6 153.7 -156.6
-c98.2002 0 135 70.3994 140.8 106.899h-140.8v85.2998h236.1c2.30078 -12.6992 3.90039 -24.8994 3.90039 -41.3994z" />
-    <glyph glyph-name="reddit" unicode="&#xf1a1;" horiz-adv-x="512" 
-d="M201.5 142.5c-13.7998 0 -24.9004 11.0996 -24.9004 24.5996c0 13.8008 11.1006 24.9004 24.9004 24.9004c13.5996 0 24.5996 -11.0996 24.5996 -24.9004c0 -13.5996 -11.0996 -24.5996 -24.5996 -24.5996zM504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248
-s111 248 248 248s248 -111 248 -248zM371.7 233.2c-9.40039 0 -17.7002 -3.90039 -23.7998 -10c-22.4004 15.5 -52.6006 25.5 -86.1006 26.5996l17.4004 78.2998l55.3994 -12.5c0 -13.5996 11.1006 -24.5996 24.6006 -24.5996c13.7998 0 24.8994 11.2998 24.8994 24.9004
-c0 13.5996 -11.0996 24.8994 -24.8994 24.8994c-9.7002 0 -18 -5.7998 -22.1006 -13.7998l-61.1992 13.5996c-3 0.800781 -6.10059 -1.39941 -6.90039 -4.39941l-19.0996 -86.4004c-33.2002 -1.39941 -63.1006 -11.2998 -85.5 -26.7998
-c-6.10059 6.40039 -14.7002 10.2002 -24.1006 10.2002c-34.8994 0 -46.2998 -46.9004 -14.3994 -62.7998c-1.10059 -5 -1.7002 -10.2002 -1.7002 -15.5c0 -52.6006 59.2002 -95.2002 132 -95.2002c73.0996 0 132.3 42.5996 132.3 95.2002
-c0 5.2998 -0.599609 10.7998 -1.90039 15.7998c31.3008 16 19.8008 62.5 -14.8994 62.5zM302.8 117c2.2002 2.2002 6.10059 2.2002 8.2998 0c2.5 -2.5 2.5 -6.40039 0 -8.59961c-22.8994 -22.8008 -87.3994 -22.8008 -110.199 0c-2.5 2.19922 -2.5 6.09961 0 8.59961
-c2.19922 2.2002 6.09961 2.2002 8.2998 0c17.5 -17.9004 75.3994 -18.2002 93.5996 0zM310.5 192c13.9004 0 24.9004 -11.0996 24.9004 -24.9004c0 -13.5 -11.1006 -24.5996 -24.9004 -24.5996c-13.5 0 -24.5996 11 -24.5996 24.5996c0 13.8008 11 24.9004 24.5996 24.9004z
-" />
-    <glyph glyph-name="reddit-square" unicode="&#xf1a2;" 
-d="M283.2 102.5c2.7002 -2.7002 2.7002 -6.7998 0 -9.2002c-24.5 -24.5 -93.7998 -24.5996 -118.4 0c-2.7002 2.40039 -2.7002 6.5 0 9.2002c2.40039 2.40039 6.5 2.40039 8.90039 0c18.7002 -19.2002 81 -19.5996 100.5 0c2.39941 2.2998 6.59961 2.2998 9 0zM191.9 156.3
-c0 -14.5996 -11.9004 -26.5 -26.5 -26.5c-14.9004 0 -26.8008 11.9004 -26.8008 26.5c0 14.9004 11.9004 26.7998 26.8008 26.7998c14.5996 0 26.5 -11.8994 26.5 -26.7998zM282.6 183.1c14.9004 0 26.8008 -11.8994 26.8008 -26.7998
-c0 -14.5996 -11.9004 -26.5 -26.8008 -26.5c-14.5996 0 -26.5 11.9004 -26.5 26.5c0 14.9004 11.9004 26.7998 26.5 26.7998zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM348.3 227.4
-c-10.0996 0 -19 -4.2002 -25.5996 -10.7002c-24.1006 16.7002 -56.5 27.3994 -92.5 28.5996l18.7002 84.2002l59.5 -13.4004c0 -14.5996 11.8994 -26.5 26.5 -26.5c14.8994 0 26.7998 12.2002 26.7998 26.8008c0 14.5996 -11.9004 26.7998 -26.7998 26.7998
-c-10.4004 0 -19.3008 -6.2002 -23.8008 -14.9004l-65.6992 14.6006c-3.30078 0.899414 -6.5 -1.5 -7.40039 -4.80078l-20.5 -92.7998c-35.7002 -1.5 -67.7998 -12.2002 -91.9004 -28.8994c-6.5 6.7998 -15.7998 11 -25.8994 11c-37.5 0 -49.7998 -50.4004 -15.5 -67.5
-c-1.2002 -5.40039 -1.7998 -11 -1.7998 -16.7002c0 -56.5 63.6992 -102.3 141.899 -102.3c78.5 0 142.2 45.7998 142.2 102.3c0 5.7002 -0.599609 11.5996 -2.09961 17c33.5996 17.2002 21.1992 67.2002 -16.1006 67.2002z" />
-    <glyph glyph-name="stumbleupon-circle" unicode="&#xf1a3;" horiz-adv-x="496" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 262.5c9.7998 0 17.7998 -8 17.7002 -17.5996v-20.6006l22.8994 -10.7002l34.1006 10.1006v23.7002c0 40.2998 -34 72.5996 -74.7002 72.5996
-c-40.5 0 -74.7002 -32.0996 -74.7002 -72.0996v-108.4c0 -9.90039 -8 -17.7998 -17.7998 -17.7998s-17.7998 7.7998 -17.7998 17.7998v45.7998h-57.2998v-46.5c0 -41.3994 33.5 -74.8994 74.8994 -74.8994c41 0 74.9004 33 74.9004 73.8994v106.9
-c0 9.7998 8 17.7998 17.7998 17.7998zM423.6 138.9c0 0 0 0.5 0.100586 46.3994h-57.2998v-48c0 -9.7002 -8 -17.5996 -17.8008 -17.5996c-9.7998 0 -17.7998 7.7998 -17.7998 17.5996v47.1006l-34.0996 -10.1006l-22.9004 10.7002v-46.7998
-c0 -41 33.7002 -74.2002 74.9004 -74.2002c41.3994 0 74.8994 33.5 74.8994 74.9004z" />
-    <glyph glyph-name="stumbleupon" unicode="&#xf1a4;" horiz-adv-x="512" 
-d="M502.9 182v-69.7002c0 -62.0996 -50.3008 -112.399 -112.4 -112.399c-61.7998 0 -112.4 49.7998 -112.4 111.3v70.2002l34.3008 -16l51.0996 15.1992v-70.5996c0 -14.7002 12 -26.5 26.7002 -26.5s26.7998 11.7998 26.7998 26.5v72h85.9004zM278.2 240.2v30.8994
-c0 14.7002 -12 26.7002 -26.7002 26.7002s-26.7002 -12 -26.7002 -26.7002v-160.3c0 -61.2998 -50.7998 -110.8 -112.399 -110.8c-62.1006 0 -112.4 50.2998 -112.4 112.3v69.7002h86v-68.5996c0 -14.9004 12 -26.7002 26.7002 -26.7002s26.7002 11.7998 26.7002 26.7002
-v162.399c0 60 51.2998 108.2 112.1 108.2c61 0 112.1 -48.5 112.1 -109v-35.5996l-51.0996 -15.2002z" />
-    <glyph glyph-name="delicious" unicode="&#xf1a5;" 
-d="M446.5 380c1 -3.7998 1.5 -7.90039 1.59961 -12v-352.1c0 -26.5 -21.5 -48 -48 -48h-352c-4.09961 0 -8.19922 0.5 -12 1.5c-7.69922 2 -14.5996 5.7998 -20.2998 11c-1.2002 1.09961 -2.2998 2.19922 -3.2998 3.2998c-5.2002 5.7002 -9 12.5996 -11 20.2998
-c-1 3.7998 -1.5 7.90039 -1.5 12v352c0 26.5 21.5 48 48 47.9004h352c4.09961 0 8.2002 -0.5 12 -1.5c1.90039 -0.400391 3.7002 -1 5.40039 -1.7002c1.89941 -0.700195 3.69922 -1.5 5.5 -2.5c1.39941 -0.700195 2.69922 -1.5 4 -2.40039
-c1.09961 -0.799805 2.19922 -1.59961 3.2998 -2.5c2.5 -2 4.7998 -4.2998 6.89941 -6.7998c1.7002 -2.09961 3.30078 -4.5 4.7002 -6.90039c1.2998 -2.2998 2.40039 -4.59961 3.2998 -7.09961c0.5 -1.5 1 -3 1.40039 -4.5zM416 16v176h-192v192h-176
-c-8.7998 0 -16 -7.2002 -16 -16v-176h192v-192h176c8.7998 0 16 7.2002 16 16z" />
-    <glyph glyph-name="digg" unicode="&#xf1a6;" horiz-adv-x="512" 
-d="M81.7002 275.7v76.2998h51v-250.7h-132.7v174.4h81.7002zM81.7002 142.3v92.2998h-30.7998v-92.2998h30.7998zM378.9 275.7h133.1v-243.7h-133.1v40.7998h81.7998v28.5h-81.7998v174.4zM460.7 142.3v92.2998h-30.7998v-92.2998h30.7998zM225.1 101.3v174.4h133.301
-v-243.7h-133.301v40.7998h82.1006v28.5h-82.1006zM276.3 234.6v-92.2998h30.7998v92.2998h-30.7998zM153.3 352h51.2998v-51h-51.2998v51zM153.3 275.7h51.2998v-174.4h-51.2998v174.4z" />
-    <glyph glyph-name="pied-piper-pp" unicode="&#xf1a7;" 
-d="M205.3 273.4c0 -21.1006 -14.2002 -38.1006 -31.7002 -38.1006c-7.09961 0 -12.7998 1.2002 -17.1992 3.7002v68c4.39941 2.7002 10.0996 4.2002 17.1992 4.2002c17.5 0 31.7002 -16.9004 31.7002 -37.7998zM257.9 206.4c17.3994 0 31.6992 -17 31.6992 -38.1006
-c0 -20.8994 -14.2998 -37.7998 -31.6992 -37.7998c-7.10059 0 -12.8008 1.2002 -17.2002 3.7002v68c4.39941 2.7002 10.0996 4.2002 17.2002 4.2002zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352
-c26.5 0 48 -21.5 48 -48zM185 192.9c41 0 74.2002 35.5996 74.2002 79.5996s-33.2002 79.5996 -74.2002 79.5996c-12 0 -24.0996 -3.19922 -34.5996 -8.7998h-45.7002v-206.3l51.7998 10.0996v50.6006c8.59961 -3.10059 18.0996 -4.7998 28.5 -4.7998zM343.4 167.6
-c0 44 -33.2002 79.6006 -73.9004 79.6006c-3.2002 0 -6.40039 -0.200195 -9.59961 -0.700195c-3.7002 -12.5 -10.1006 -23.7998 -19.2002 -33.4004c-13.7998 -15 -32.2002 -23.7998 -51.7998 -24.7998v-156.3l51.7998 10.0996v50.6006
-c8.59961 -3.2002 18.2002 -4.7002 28.7002 -4.7002c40.7998 0 74 35.5996 74 79.5996z" />
-    <glyph glyph-name="pied-piper-alt" unicode="&#xf1a8;" horiz-adv-x="576" 
-d="M244 202l-27.7002 -5.7002l-1.7002 4.90039c6.7002 0.5 12.7002 3.7002 19.3008 3.7002c3.7998 0 6.89941 -0.900391 10.0996 -2.90039zM379.9 4.09961c9.5 0 28.1992 -45.0996 33 -55.0996c-35.9004 -13.4004 -70.3008 -15.9004 -106 -9.7998l-6.90039 45.0996
-c15.7998 10.2998 60.9004 19.7998 79.9004 19.7998zM340.8 271c-7.59961 3.5 -63.8994 6.40039 -98.7998 -10c6.2998 11.7998 13.2002 17 25.9004 21.7998c27.2998 10.2998 40.1992 30.5 58.8994 51.1006c11.9004 -8.40039 12 -24.6006 31.6006 -23v-21.8008
-l6.2998 -0.299805c37.3994 14.4004 74.7002 30.2002 106.6 54.6006c48.2998 36.7998 52.9004 50 81.2998 100l2 2.59961c-0.599609 -14.0996 -6.2998 -27.2998 -12.3994 -39.9004c-30.5 -63.7998 -78.7002 -100.3 -146.8 -116.699
-c-12.4004 -2.90039 -26.4004 -3.2002 -37.6006 -8.90039c1.40039 -9.7998 13.2002 -18.0996 13.2002 -23c0 -3.40039 -5.5 -7.2002 -7.5 -8.59961c-11.2002 12.8994 -16.0996 19.2998 -22.7002 22.0996zM555.5 448l-0.299805 -1.40039l-0.600586 -0.599609
-l0.300781 0.900391zM496.3 65.9004c20.1006 -34.2002 43.7002 -54.3008 72.7002 -79.9004c-31 -19.2998 -70.4004 -32.2002 -103.5 -47.2002c-55.2002 46.2998 -23 229.9 -111.5 229.9c-3.5 -0.700195 -2.40039 -0.299805 -4.59961 -1.7002
-c1.09961 -1.40039 2.59961 -2.90039 3.69922 -4c23.9004 -20.0996 33.4004 -24.4004 34.8008 -58.5996l0.299805 -9.5c0.799805 -21.6006 -5.5 -42.5 -9.7998 -63.5c-25.9004 0.699219 -51.2002 -11 -77.9004 -2.90039c-0.700195 5.90039 -1.09961 30.9004 0.299805 41.0996
-c1.40039 9.5 33.6006 29.9004 33 43.7002c-5.5 0.600586 -9.2002 -2.59961 -12.3994 -6.89941c-13.3008 -19.5 -47.2002 -41.9004 -71.3008 -41.9004c-16.5996 0 -56.2998 71.5 -76.3994 85.9004c-3.2002 2.2998 -5.2002 5.39941 -7.7998 8.59961
-c-16.1006 -3.7998 -139.4 -32.2002 -147.4 -32.2002c-6 0 -11.5 4.90039 -11.5 10.9004c0 5.5 3.40039 10.7002 8.90039 11.7998l139.6 30.4004c-9.5 17.1992 12.2998 17.5 21.5 20.0996c3.2002 0.799805 6.2998 4 9.5 4c6.2998 0 11.7998 -8.90039 13.7998 -14.0996
-c6.2998 1.39941 45.7002 10.5996 49.4004 10.5996c15.2002 0 15.8994 -20.0996 2.89941 -22.7002l-52.2998 -11.5l-0.299805 -4.59961c-0.299805 -10.1006 45.4004 -60.1006 53.4004 -60.1006c18.0996 0 54.8994 41.7002 54.8994 60.1006
-c0 30.7002 -42.7998 12.5996 -42.7998 33.5996c0 3.5 1.2002 6.60059 2.90039 9.7998l-19.5 5.5c13.0996 13.6006 13.7998 31.7002 10.8994 50.3008c14.7002 2.89941 26.7002 4.59961 41.4004 4.59961c56.8994 0 45.7002 -8.59961 65.5 -54.2998l14.3994 7.2002
-c-2.2998 -34.2002 -36.1992 -17.5 -35.0996 -31l0.299805 -6c74.7002 2.89941 116.101 -58.6006 150 -115.5zM300.1 19.7998h8.90039l2.90039 -23.7998l-11.8008 -3.40039v27.2002zM231.4 170.2l13.7998 3.5l31.2998 -50.9004l-21 -13.7998zM315.8 15.2998
-c22.6006 2.5 32.7002 6.2998 59.5 6.2998c0.299805 -1.39941 0.900391 -3.19922 0.900391 -4.59961c0 -7.5 -49.4004 -12.5996 -58.4004 -14.0996z" />
-    <glyph glyph-name="drupal" unicode="&#xf1a9;" 
-d="M319.5 333.3c13.5 -8.2998 96.5 -67 96.5 -179.3c0 -112 -88.5 -186 -190.2 -186c-102 0 -193.8 80.2998 -193.8 189.5c0 109 85 167.5 100.8 175.8c18.7002 10.1006 32.2002 15.2998 53.5 32.2998c10.5 8.30078 19.2998 20.2002 22 49.5
-c15.2002 -18.2998 33.5 -39.5 46.5 -48.2998c21.2002 -14 42.5 -19.5 64.7002 -33.5zM322 7.7002c4.2002 4.2002 1.90039 13.0996 -4.2002 8.5c-8.5 -6.2998 -27.5 -14 -54.5 -14c-34.5 0 -51.5 13.2998 -51.5 13.2998c-6.2002 0 -11.2998 -7.2002 -6.5 -12
-c26.6006 -24.5 96.6006 -15.9004 116.7 4.2002zM267.5 60.2998c-6.5 -2.7002 -28.4004 -16.7998 -22.4004 -25c2.40039 -3.2998 5.2002 -1.2998 12.2002 4.7002c7.2002 5.7998 12 11 26.7002 11c25.2998 0 18.0996 -19.9004 26.5 -15.7002
-c9.90039 4.90039 -2.09961 20.9004 -6.2002 23.7002c-7.7998 5.09961 -28.0996 4.90039 -36.7998 1.2998zM360 43c39.0996 -3.2998 64.5 106 15.7998 106c-20 0 -60.5 -41.5 -81.7998 -41.7998c-24.7002 -0.5 -59 49 -108.5 48.5
-c-66.4004 -0.400391 -90.5996 -78.6006 -51.7998 -105.2c57.2002 -38.7002 130.399 42.9004 161.3 42c19.5 -0.700195 49.7998 -48.5 65 -49.5z" />
-    <glyph glyph-name="joomla" unicode="&#xf1aa;" 
-d="M0.599609 355.9c0 33.2998 26.8008 60.0996 59.8008 60.0996c30 0 54.5 -21.9004 59.1992 -50.2002c32.6006 7.60059 67.1006 -0.599609 96.5 -30l-44.2998 -44.2998c-20.5 20.5 -42.5996 16.2998 -55.3994 3.5c-14.3008 -14.2998 -14.3008 -37.9004 0 -52.2002
-l99.5 -99.5l-44 -44.2998c-87.7002 87.2002 -49.7002 49.7002 -99.8008 99.7002c-26.7998 26.5 -35 64.7998 -24.7998 98.8994c-26.8994 5.80078 -46.7002 29.7002 -46.7002 58.3008zM130.1 239.5c28.5 28.4004 81.3008 80.7998 99.6006 99.9004
-c26.5996 26.5996 64.5 35 98.2998 25.0996c4.09961 29.0996 29.2002 51.5996 59.5 51.5996c33 0 59.7998 -26.8994 59.7998 -60.0996c0 -30.2998 -22.7002 -55.4004 -51.8994 -59.5c9.59961 -33.5996 2.2998 -70 -28.9004 -101.2l-44 44.2998
-c20.5 20.4004 16.2998 42.6006 3.5 55.4004c-14.2998 14.2998 -37.5996 14.2998 -51.9004 0c-10 -10.0996 -89.6992 -89.7998 -99.6992 -99.7998zM396.4 87.2998c29.0996 -4.09961 51.5996 -28.8994 51.5996 -59.0996c0 -33.2998 -26.7998 -60.1006 -59.7998 -60.1006
-c-29.2002 0 -53.4004 20.7002 -58.9004 48.1006c-34.7002 -10.7998 -75.0996 -2.2002 -102.7 28l44 44.2998c20.4004 -20.5 42.6006 -16.2998 55.4004 -3.5c14.2998 14.2998 14.2998 37.5996 0 51.9004l-99.7002 99.6992l44.2998 44.3008
-c104.5 -104.4 87.7002 -87.5 99.5 -99.7002c25.4004 -25.4004 34.5 -61.2002 26.3008 -93.9004zM312.1 140.4c-87.2998 -87.3008 -67.3994 -67.7002 -99.5 -99.7002c-25.6992 -25.4004 -61.5 -34.2002 -94.1992 -26c-6.10059 -26.9004 -30 -46.7002 -58.6006 -46.7002
-c-33 0 -59.7998 26.7998 -59.7998 60.0996c0 28.3008 19.5 52.2002 46.2002 58.2002c-8.5 33.1006 -0.700195 68.1006 29.5 98.2998l44 -44.2998c-20.1006 -20.0996 -16.2998 -42 -3.2002 -55.3994c14.2998 -14.3008 37.5996 -14.3008 51.9004 0
-c49.2998 49.3994 12.6992 13.3994 99.6992 99.7998z" />
-    <glyph glyph-name="behance" unicode="&#xf1b4;" horiz-adv-x="576" 
-d="M232 210.8c43.5996 -12.2998 64.7002 -45.2002 64.7002 -89.7002c0 -72 -60.5 -102.899 -124.9 -102.899h-171.8v354.399h167.1c60.7002 0 113.301 -17.1992 113.301 -87.7998c0 -35.7998 -16.6006 -58.7998 -48.4004 -74zM77.9004 312.1v-82.6992h79
-c27.7998 0 47.5 12.0996 47.5 42.1992c0 32.6006 -25.3008 40.5 -53.4004 40.5h-73.0996zM161.2 78.4004c31.7002 0 57.5996 11.1992 57.5996 47c0 36.2998 -21.7002 50.5996 -56 50.5996h-84.8994v-97.5996h83.2998zM519.7 319.1h-143.7v34.9004h143.7v-34.9004zM576 142.8
-c0 -4.5 -0.299805 -9 -0.599609 -13.2002h-185.101c0 -41.0996 21.7002 -65.2998 63 -65.2998c21.4004 0 49 11.6006 55.7002 33.5h62.2002c-19.1006 -58.7002 -58.7998 -86.2998 -120.101 -86.2998c-81 0 -131.3 54.7998 -131.3 134.7c0 77 53.1006 135.8 131.3 135.8
-c80.5 0 124.9 -63.2998 124.9 -139.2zM390.4 174h114.699c-3 34 -20.7998 54.7998 -56.1992 54.7998c-33.8008 0 -56.2002 -21.0996 -58.5 -54.7998z" />
-    <glyph glyph-name="behance-square" unicode="&#xf1b5;" 
-d="M186.5 155c0 -19.2998 -14 -25.4004 -31.2002 -25.4004h-45.0996v52.9004h46c18.5996 -0.0996094 30.2998 -7.7998 30.2998 -27.5zM178.8 237.3c0 -16.2998 -10.7002 -22.8994 -25.7998 -22.8994h-42.7002v44.7998h39.6006c15.1992 0 28.8994 -4.2002 28.8994 -21.9004z
-M311.1 214.1c19.2002 0 28.8008 -11.1992 30.5 -29.6992h-62.1992c1.19922 18.2998 13.3994 29.6992 31.6992 29.6992zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM271.7 263h77.7998
-v18.9004h-77.7998v-18.9004zM228.7 152.7c0 24.0996 -11.4004 44.8994 -35 51.5996c17.2002 8.2002 26.2002 17.7002 26.2002 37c0 38.2002 -28.5 47.5 -61.4004 47.5h-90.5v-192h93.0996c34.9004 0.200195 67.6006 16.9004 67.6006 55.9004zM380 167.5
-c0 41.0996 -24.0996 75.4004 -67.5996 75.4004c-42.4004 0 -71.1006 -31.8008 -71.1006 -73.6006c0 -43.2998 27.2998 -73 71.1006 -73c33.1992 0 54.6992 14.9004 65.0996 46.7998h-33.7002c-3.7002 -11.8994 -18.5996 -18.0996 -30.2002 -18.0996
-c-22.3994 0 -34.0996 13.0996 -34.0996 35.2998h100.2c0.0996094 2.2998 0.299805 4.7998 0.299805 7.2002z" />
-    <glyph glyph-name="steam" unicode="&#xf1b6;" horiz-adv-x="496" 
-d="M496 192c0 -137 -111.2 -248 -248.4 -248c-113.8 0 -209.6 76.2998 -239 180.4l95.2002 -39.3008c6.40039 -32.0996 34.9004 -56.3994 68.9004 -56.3994c39.2002 0 71.8994 32.3994 70.2002 73.5l84.5 60.2002c52.0996 -1.30078 95.7998 40.8994 95.7998 93.5
-c0 51.5996 -42 93.5 -93.7002 93.5s-93.7002 -42 -93.7002 -93.5v-1.2002l-59.2002 -85.7002c-15.5 0.900391 -30.6992 -3.40039 -43.5 -12.0996l-133.1 55c10.2002 127.699 117.1 228.1 247.6 228.1c137.2 0 248.4 -111 248.4 -248zM155.7 63.7002
-c19.7998 -8.2002 42.5 1.09961 50.7998 21c8.2998 19.7998 -1.09961 42.5 -20.9004 50.7002l-31.5 13c12.2002 4.59961 26 4.7998 38.9004 -0.600586c13 -5.39941 23.0996 -15.5996 28.5 -28.5996s5.2998 -27.2998 -0.0996094 -40.2998
-c-11.2002 -26.8008 -42.1006 -39.6006 -69 -28.4004c-11.9453 4.99414 -21.6055 14.1826 -27.2002 25.7998zM329.5 193.6c-34.4004 0 -62.4004 28 -62.4004 62.3008c0 34.2998 28 62.2998 62.4004 62.2998s62.4004 -28 62.4004 -62.2998
-c0 -34.3008 -27.9004 -62.3008 -62.4004 -62.3008zM329.6 209.2c25.9004 0 46.9004 21 46.9004 46.7998c0 25.9004 -21 46.7998 -46.9004 46.7998c-25.8994 0 -46.8994 -21 -46.8994 -46.7998c0.0996094 -25.7998 21.0996 -46.7998 46.8994 -46.7998z" />
-    <glyph glyph-name="steam-square" unicode="&#xf1b7;" 
-d="M185.2 91.5c7.7002 18.5 -1 39.7002 -19.6006 47.4004l-29.5 12.1992c11.4004 4.30078 24.3008 4.5 36.4004 -0.5c12.2002 -5.09961 21.5996 -14.5996 26.7002 -26.6992c5 -12.2002 5 -25.6006 -0.100586 -37.7002c-10.5 -25.1006 -39.3994 -37 -64.5996 -26.5
-c-11.5996 4.7998 -20.4004 13.5996 -25.4004 24.2002l28.5 -11.8008c18.6006 -7.7998 39.9004 0.900391 47.6006 19.4004zM400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v112.8l89.0996 -36.8994
-c6 -30 32.7002 -52.7002 64.5 -52.7002c36.6006 0 67.3008 30.2998 65.7002 68.7998l79 56.2998c48.7002 -1.2002 89.6006 38.2998 89.6006 87.5c0 48.2002 -39.3008 87.5 -87.6006 87.5s-87.5996 -39.2998 -87.5996 -87.5v-1.09961l-55.4004 -80.2002
-c-14.5 0.799805 -28.7002 -3.09961 -40.7002 -11.2998l-116.6 48.0996v160.7c0 26.5 21.5 48 48 48h352zM300.3 193.5c-32.2002 0 -58.3994 26.0996 -58.3994 58.2998s26.1992 58.2998 58.3994 58.2998s58.4004 -26.1992 58.4004 -58.2998
-c0 -32.0996 -26.2002 -58.2998 -58.4004 -58.2998zM300.4 208.1c24.1992 0 43.8994 19.6006 43.8994 43.8008c0 24.1992 -19.5996 43.7998 -43.8994 43.7998c-24.2002 0 -43.9004 -19.6006 -43.9004 -43.7998c0 -24.2002 19.7002 -43.8008 43.9004 -43.8008z" />
-    <glyph glyph-name="spotify" unicode="&#xf1bc;" horiz-adv-x="496" 
-d="M248 440c136.9 0 248 -111.1 248 -248s-111.1 -248 -248 -248s-248 111.1 -248 248s111.1 248 248 248zM348.7 75.0996c8.09961 0 15.2002 6.30078 15.2002 15.4004s-3.60059 12.5996 -9.7002 16.5c-71.4004 42.7002 -155.101 44.2998 -237 26.2002
-c-7.5 -1.60059 -13.6006 -6.5 -13.6006 -16.7998c0 -8.10059 6.10059 -15.8008 15.8008 -15.8008c2.89941 0 8 1.60059 11.8994 2.60059c71.7002 14.7002 144.3 13.0996 206.7 -24.5c3.90039 -2.2998 6.5 -3.60059 10.7002 -3.60059zM375.6 140.7
-c10.9004 0 19.3008 8.7002 19.4004 19.5c0 8.7002 -3.2002 14.8994 -11.2998 19.7002c-49.4004 29.3994 -112.101 45.5 -177 45.5c-41.6006 0 -70 -5.80078 -97.7998 -13.6006c-10.3008 -2.89941 -15.5 -10 -15.5 -20.7002c0 -10.6992 8.69922 -19.3994 19.3994 -19.3994
-c4.5 0 7.10059 1.2998 11.9004 2.59961c82.8994 22.5 176.1 7.60059 238.6 -29.3994c3.60059 -1.90039 7.10059 -4.2002 12.2998 -4.2002zM406.6 216.9c12.2002 0 23.2002 9.69922 23.2002 23.2998c0 11.8994 -5.09961 18.0996 -12.8994 22.5996
-c-55.9004 32.6006 -132.4 47.7998 -205.4 47.7998c-42.9004 0 -82.2998 -4.89941 -117.5 -15.1992c-9 -2.60059 -17.4004 -10.3008 -17.4004 -23.9004c0 -13.2998 10.1006 -23.5996 23.3008 -23.5996c4.7998 0 9.2998 1.59961 12.8994 2.59961
-c82.4004 23 209.7 12.7998 280.9 -29.7002c4.5 -2.59961 7.7002 -3.89941 12.8994 -3.89941z" />
-    <glyph glyph-name="deviantart" unicode="&#xf1bd;" horiz-adv-x="320" 
-d="M320 354.8l-98.2002 -179.1l7.40039 -9.5h90.7998v-127.7h-160.9l-13.5 -9.2002l-43.6992 -84c-0.300781 0 -8.60059 -8.59961 -9.2002 -9.2002h-92.7002v93.2002l93.2002 179.4l-7.40039 9.2002h-85.7998v127.6h156l13.5 9.2002l43.7002 84
-c0.299805 0 8.59961 8.59961 9.2002 9.2002h97.5996v-93.1006z" />
-    <glyph glyph-name="soundcloud" unicode="&#xf1be;" horiz-adv-x="640" 
-d="M111.4 191.7l5.7998 -65l-5.7998 -68.2998c-0.300781 -2.5 -2.2002 -4.40039 -4.40039 -4.40039s-4.2002 1.90039 -4.2002 4.40039l-5.59961 68.2998l5.59961 65c0 2.2002 1.90039 4.2002 4.2002 4.2002c2.2002 0 4.09961 -2 4.40039 -4.2002zM132.8 237.3
-c2.5 0 4.7002 -2.2002 4.7002 -5l5.7998 -105.6l-5.7998 -68.2998c0 -2.80078 -2.2002 -5 -4.7002 -5c-2.7998 0 -4.7002 2.19922 -5 5l-5 68.2998l5 105.6c0.299805 2.7998 2.2002 5 5 5zM158.3 261.4c2.7998 0 5.2998 -2.2002 5.2998 -5.30078l5.30078 -130
-l-5.30078 -67.7998c0 -3.09961 -2.5 -5.2998 -5.2998 -5.2998c-3.09961 0 -5.2998 2.2002 -5.59961 5.2998l-4.40039 67.7998l4.40039 130c0.299805 3.10059 2.5 5.30078 5.59961 5.30078zM7.2002 164.8c1.39941 0 2.2002 -1.09961 2.5 -2.5l5.59961 -35.5996l-5.59961 -35
-c-0.299805 -1.40039 -1.10059 -2.5 -2.5 -2.5c-1.40039 0 -2.2002 1.09961 -2.5 2.5l-4.7002 35l4.7002 35.5996c0.299805 1.40039 1.09961 2.5 2.5 2.5zM30.7998 186.7c1.40039 0 2.5 -1.10059 2.7998 -2.5l7.2002 -57.5l-7.2002 -56.4004
-c-0.299805 -1.39941 -1.39941 -2.5 -2.7998 -2.5c-1.39941 0 -2.5 1.10059 -2.5 2.7998l-6.39941 56.1006l6.39941 57.5c0 1.39941 1.10059 2.5 2.5 2.5zM56.0996 198.1c1.7002 0 3.10059 -1.39941 3.10059 -3.2998l6.89941 -68.0996l-6.89941 -65.7998
-c0 -1.7002 -1.40039 -3.10059 -3.10059 -3.10059c-1.59961 0 -3 1.40039 -3.2998 3.10059l-5.7998 65.7998l5.7998 68.0996c0.200195 1.90039 1.60059 3.2998 3.2998 3.2998zM81.4004 200.3c1.89941 0 3.59961 -1.39941 3.89941 -3.59961l6.40039 -70l-6.40039 -67.7998
-c-0.299805 -2.2002 -2 -3.60059 -3.89941 -3.60059c-1.90039 0 -3.60059 1.40039 -3.60059 3.60059l-5.7998 67.7998l5.7998 70c0 2.2002 1.7002 3.59961 3.60059 3.59961zM322.8 311.2c2.5 -1.40039 4.10059 -4.2002 4.5 -7.2002l3.90039 -177.5l-3.90039 -64.2002
-c0 -4.7002 -3.89941 -8.59961 -8.59961 -8.59961s-8.60059 3.89941 -8.90039 8.59961l-1.7002 31.7002l-1.69922 32.5l3.2998 176.7v0.799805c0.200195 2.5 1.39941 5 3.2998 6.7002c1.40039 1.09961 3.40039 1.89941 5.59961 1.89941
-c1.40039 0 3.10059 -0.599609 4.2002 -1.39941zM296.1 295.9c2.2002 -1.40039 3.60059 -3.90039 3.90039 -6.7002l3.2998 -162.8l-3.09961 -58.6006l-0.299805 -6.7002c0 -2.2998 -0.800781 -4.19922 -2.5 -5.59961c-1.40039 -1.40039 -3.40039 -2.5 -5.60059 -2.5
-c-2.5 0 -4.7002 1.2002 -6.39941 3.09961c-1.10059 1.40039 -1.7002 3 -1.7002 4.7002v0.299805c-3.10059 65.3008 -3.10059 65.6006 -3.10059 65.6006l2.80078 160.8l0.299805 1.7002c0 2.7998 1.39941 5.2998 3.59961 6.7002
-c1.2998 0.799805 2.7998 1.39941 4.40039 1.39941c1.59961 0 3 -0.599609 4.39941 -1.39941zM184.7 273.4c3.39941 0 5.89941 -2.80078 6.09961 -6.10059l5 -140.6l-5 -67.2002c-0.299805 -3.2998 -2.7998 -5.7998 -6.09961 -5.7998c-3 0 -5.5 2.5 -5.7998 5.7998
-l-4.40039 67.2002l4.40039 140.6c0 3.2998 2.69922 6.10059 5.7998 6.10059zM561.4 210.6c43.2998 0 78.5996 -35.2998 78.5 -78.8994c0 -43.2998 -35.3008 -78.2998 -78.6006 -78.2998h-218.3c-4.7002 0.599609 -8.59961 4.19922 -8.59961 9.19922v249.7
-c0 4.7998 1.69922 7 7.7998 9.2002c15.2998 6.09961 32.5 9.40039 50.2998 9.40039c72.5 0 131.9 -55.6006 138.3 -126.4c9.5 3.90039 19.7998 6.09961 30.6006 6.09961zM264.7 270.9c4.2002 0 7.2002 -3.30078 7.5 -7.80078l3.89941 -136.699l-3.89941 -65.6006
-c0 -4.2002 -3.2998 -7.5 -7.5 -7.5s-7.5 3.2998 -7.7998 7.5l-3.30078 65.6006l3.30078 136.699c0.299805 4.5 3.59961 7.80078 7.7998 7.80078zM211.1 278.7c3.60059 0 6.40039 -3.10059 6.7002 -6.7002l4.40039 -145.3l-4.40039 -66.9004
-c-0.299805 -3.59961 -3.09961 -6.39941 -6.7002 -6.39941c-3.2998 0 -6.09961 2.7998 -6.39941 6.39941l-3.90039 66.9004l3.90039 145.3c0 3.59961 3.09961 6.7002 6.39941 6.7002zM237.8 275.3c3.90039 0 6.90039 -3 6.90039 -6.89941l4.2002 -141.7l-4.2002 -66.4004
-c0 -3.7998 -3.10059 -6.89941 -6.90039 -6.89941s-6.59961 3 -6.89941 6.89941l-3.90039 66.4004l3.90039 141.7c0 3.7998 3 6.89941 6.89941 6.89941z" />
-    <glyph glyph-name="vine" unicode="&#xf1ca;" horiz-adv-x="384" 
-d="M384 193.3v-52.0996c-18.4004 -4.2002 -36.9004 -6.10059 -52.0996 -6.10059c-36.9004 -77.3994 -103 -143.8 -125.101 -156.199c-14 -7.90039 -27.0996 -8.40039 -42.7002 0.799805c-27.0996 16.2998 -129.899 100.6 -164.1 365.6h74.5
-c18.7002 -159.1 64.5 -240.7 114.8 -301.8c27.9004 27.9004 54.7998 65.0996 75.6006 106.9c-49.8008 25.2998 -80.1006 80.8994 -80.1006 145.6c0 65.5996 37.7002 115.1 102.2 115.1c114.9 0 106.2 -127.899 81.5996 -181.5c0 0 -46.3994 -9.19922 -63.5 20.5
-c3.40039 11.3008 8.2002 30.8008 8.2002 48.5c0 31.3008 -11.2998 46.6006 -28.3994 46.6006c-18.2002 0 -30.8008 -17.1006 -30.8008 -50c0.100586 -79.2002 59.4004 -118.7 129.9 -101.9z" />
-    <glyph glyph-name="codepen" unicode="&#xf1cb;" horiz-adv-x="512" 
-d="M502.285 288.296c6.00098 -3.99902 9.71484 -11.1426 9.71582 -18.2852v-155.999c0 -7.14258 -3.71484 -14.2871 -9.71484 -18.2861l-234 -156.021c-8.06055 -4.95996 -16.584 -4.91504 -24.5713 0l-234 156.021c-6.00098 4 -9.71484 11.1436 -9.71484 18.2861v155.999
-c0 7.14258 3.71387 14.2861 9.71387 18.2852l234 156c8.06055 4.95996 16.584 4.91504 24.5713 0zM278 384.869v-102.572l95.4287 -63.7148l76.8574 51.4287zM234 384.869l-172.286 -114.858l76.8574 -51.4287l95.4287 63.7148v102.572zM44 228.868v-73.7139
-l55.1426 36.8564zM234 -0.84668v102.571l-95.4287 63.7158l-76.8574 -51.4297zM256 140.011l77.7148 52l-77.7148 52l-77.7148 -52zM278 -0.84668l172.286 114.857l-76.8574 51.4297l-95.4287 -63.7158v-102.571zM468 155.154v73.7139l-55.1426 -36.8574z" />
-    <glyph glyph-name="jsfiddle" unicode="&#xf1cc;" horiz-adv-x="576" 
-d="M510.634 210.538c45.6885 -25.334 68.3721 -74.5605 56.832 -122.634c-12.1035 -50.4199 -55.5479 -86.6592 -108.212 -87.293c-84.0303 -1.01172 -168.079 -0.458984 -252.12 -0.480469c-30.3223 -0.00683594 -60.668 -0.492188 -90.959 0.539062
-c-48.0938 1.63672 -91.7764 35.8643 -105.607 81.4326c-14.1289 46.5508 2.18945 94.623 41.9014 124.615c2.54688 1.92383 4.86914 6.52051 4.51465 9.54492c-3.74609 31.8604 7.14453 57.6709 32.6758 76.4082c26.2822 19.2881 55.2285 21.5879 85.3311 9.16699
-c2.36621 -0.975586 4.63965 -2.17773 7.82422 -3.68555c16.5215 27.5332 38.1221 48.6523 65.4922 63.9023c92.8594 51.7402 210.954 8.31152 246.85 -91.6455c5.55762 -15.4766 6.74512 -32.6074 9.09668 -49.0947c0.716797 -5.02832 1.6543 -8.15527 6.38086 -10.7764z
-M531.741 53.6582c39.3135 48.375 22.418 117.668 -35.1426 144.497c-7.43555 3.46582 -9.72559 7.74414 -9.84766 15.8936c-1.87012 125.129 -132.78 187.063 -230.24 132.697c-26.1133 -14.5674 -46.4492 -34.8955 -60.6709 -61.2939
-c-7.59082 -14.0908 -11.9287 -7.97754 -22.1982 -2.52734c-24.6113 13.0635 -49.0469 12.6406 -72.0332 -3.08301c-21.9678 -15.0244 -31.9102 -36.6201 -26.4199 -62.9805c2.4082 -11.5703 -0.914062 -17.0635 -10.0967 -23.1367
-c-38.1895 -25.2578 -53.0879 -74.8604 -34.1855 -116.105c18.4355 -40.2295 51.3135 -59.6631 95.1748 -59.9951c0.700195 -0.00488281 163.728 -0.545898 163.728 0.154297c56.8857 0 113.778 -0.551758 170.652 0.229492
-c28.9375 0.397461 53.0498 13.2178 71.2803 35.6504zM443.952 134.157c-5.84863 -31.1572 -34.6221 -55.0967 -66.666 -55.0957c-16.9531 0.00195312 -32.0586 6.5459 -44.0791 17.7051c-27.6973 25.7139 -71.1406 74.9805 -95.9375 93.3877
-c-20.0557 14.8877 -41.9893 12.333 -60.2715 -3.78223c-49.9961 -44.0713 15.8594 -121.775 67.0625 -77.1885c4.54883 3.95996 7.84082 9.54297 12.7441 12.8447c8.18457 5.50879 20.7666 0.883789 13.168 -10.6221c-17.3574 -26.2842 -49.3301 -38.1973 -78.8623 -29.3008
-c-28.8975 8.70312 -48.8408 35.9678 -48.626 70.1787c1.22461 22.4844 12.3633 43.0596 35.4141 55.9648c22.5742 12.6377 46.3682 13.1455 66.9902 -2.47363c50.791 -38.4756 75.5781 -81.7451 107.296 -101.245c24.5586 -15.0996 54.2549 -7.36328 68.8232 17.5059
-c28.8301 49.209 -34.5918 105.016 -78.8682 63.46c-3.98828 -3.74414 -6.91699 -8.93164 -11.4092 -11.7197c-10.9756 -6.81152 -17.333 4.1123 -12.8096 10.3525c20.7031 28.5537 50.4639 40.4404 83.2715 28.2139c31.4287 -11.7139 49.1074 -44.3662 42.7598 -78.1855z
-" />
-    <glyph glyph-name="rebel" unicode="&#xf1d0;" horiz-adv-x="512" 
-d="M256.5 -56c-139.3 0 -247.5 116.2 -243.3 254.1c2.7998 79.2002 43.2002 152.2 116.5 200.4c0.299805 0 1.89941 0.599609 1.09961 -0.799805c-5.7998 -5.5 -111.3 -129.8 -14.0996 -226.4c49.7998 -49.5 90 -2.5 90 -2.5c38.5 50.1006 -0.600586 125.9 -0.600586 125.9
-c-10 24.8994 -45.6992 40.0996 -45.6992 40.0996l28.7998 31.7998c24.3994 -10.5 43.2002 -38.6992 43.2002 -38.6992c0.799805 29.5996 -21.9004 61.3994 -21.9004 61.3994l44.5996 50.7002l44.3008 -50.0996c-20.5 -28.8008 -21.9004 -62.6006 -21.9004 -62.6006
-c13.7998 23 43.5 39.2998 43.5 39.2998l28.5 -31.7998c-27.4004 -8.89941 -45.4004 -39.8994 -45.4004 -39.8994c-15.7998 -28.5 -27.0996 -89.4004 0.600586 -127.301c32.3994 -44.5996 87.7002 2.80078 87.7002 2.80078c102.699 91.8994 -10.5 225 -10.5 225
-c-6.10059 5.5 0.799805 2.7998 0.799805 2.7998c50.0996 -36.5 114.6 -84.4004 116.2 -204.8c2 -145.601 -99.9004 -249.4 -242.4 -249.4z" />
-    <glyph glyph-name="empire" unicode="&#xf1d1;" horiz-adv-x="496" 
-d="M287.6 393.8c-10.7998 2.2002 -22.0996 3.2998 -33.5 3.60059v18.1992c78.1006 -2.19922 146.101 -44 184.601 -106.6l-15.7998 -9.09961c-6.10059 9.69922 -12.7002 18.7998 -20.2002 27.0996l-18 -15.5c-26 29.5996 -61.4004 50.7002 -101.9 58.4004zM53.4004 125.6
-c3.89941 -10.7998 8.2998 -21.0996 13.5996 -31.0996l-15.7998 -9.09961c-17.1006 31.5996 -27.1006 68.0996 -27.1006 106.6s9.90039 75 27.1006 106.5l15.7998 -9.09961c-5.2998 -9.7002 -10 -20.2002 -13.5996 -31l22.6992 -7.7002
-c-6.39941 -18.2998 -9.69922 -38.2002 -9.69922 -58.7002s3.59961 -40.4004 10 -58.7002zM213.1 14l-4.69922 -23.7998c10.7998 -1.90039 22.1992 -3.2998 33.5 -3.60059v-18.2998c-78.1006 2.2998 -146.4 44.2998 -184.9 106.601l16 9.39941
-c5.7998 -9.7002 12.7002 -18.7998 20.2002 -27.3994l18 15.7998c26.0996 -29.6006 61.5 -50.7002 101.899 -58.7002zM93.2998 327.1c-7.5 -8.2998 -14.0996 -17.5 -20.0996 -27.1992l-15.7998 9.09961c38.5 62.5996 106.5 104.4 184.6 106.6v-18.1992
-c-11.4004 -0.300781 -22.7002 -1.40039 -33.5 -3.60059l4.7002 -23.7998c-40.5 -7.7002 -75.9004 -28.7998 -101.9 -58.4004zM402.7 56.9004c7.5 8.59961 14.3994 17.6992 20.0996 27.3994l16.1006 -9.39941c-38.5 -62.3008 -106.801 -104.4 -184.9 -106.601v18.2998
-c11.4004 0.300781 22.7002 1.7002 33.5 3.60059l-4.7002 23.7998c40.5 8 75.9004 29.0996 101.9 58.7002zM496 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM483.8 192c0 130.1 -105.7 235.8 -235.8 235.8
-s-235.8 -105.7 -235.8 -235.8s105.7 -235.8 235.8 -235.8s235.8 105.7 235.8 235.8zM444.8 298.6c17.2002 -31.5996 27.1006 -68.0996 27.1006 -106.6s-9.90039 -75 -27.1006 -106.4l-15.7998 9.10059c5.2998 10 9.7002 20.2002 13.5996 31l-23 7.7002
-c6.40039 18.2998 10 38.1992 10 58.6992s-3.2998 40.4004 -9.69922 58.7002l22.6992 7.7002c-3.59961 10.7998 -8.2998 21.2998 -13.5996 31zM261.8 120.9l13.2998 -66.7002c-8.59961 -1.7002 -17.6992 -2.7998 -27.0996 -2.7998s-18.5 1.09961 -27.0996 2.7998
-l13.2998 66.7002c-16.2998 3.2998 -30.5 11.5996 -40.7002 23.5l-51.2002 -44.8008c-11.8994 13.6006 -21.2998 29.4004 -27.0996 46.8008l64.2002 22.0996c-2.5 7.40039 -3.90039 15.2002 -3.90039 23.5s1.40039 16 3.90039 23.5l-64.5 22.0996
-c6.09961 17.5 15.5 33.2002 27.3994 46.8008l51.2002 -44.8008c10.2998 11.9004 24.4004 20.5 40.7002 23.8008l-13.2998 66.3994c8.59961 2 17.6992 2.7998 27.0996 2.7998s18.5 -0.899414 27.0996 -2.7998l-13.2998 -66.3994
-c16.2998 -3.30078 30.5 -11.9004 40.7002 -23.8008l51.2002 44.8008c11.8994 -13.6006 21.2998 -29.4004 27.3994 -46.8008l-64.5 -22.0996c2.5 -7.40039 3.90039 -15.2002 3.90039 -23.5s-1.40039 -16 -3.90039 -23.5l64.2002 -22.0996
-c-5.7998 -17.5 -15.2002 -33.2002 -27.0996 -46.8008l-51.2002 44.8008c-10.2998 -11.9004 -24.4004 -20.2002 -40.7002 -23.5z" />
-    <glyph glyph-name="git-square" unicode="&#xf1d2;" 
-d="M100.59 113.76c48.5703 -3.30957 58.9502 -2.10938 58.9502 -11.9395c0 -20 -65.5498 -20.0605 -65.5498 -1.52051c0.00976562 5.08984 3.29004 9.40039 6.59961 13.46zM128.54 230.4c30.96 0 31.7598 -44.4707 -0.75 -44.4707c-33 0 -31.54 44.4707 0.75 44.4707z
-M448 368v-352c0 -26.4922 -21.5078 -48 -48 -48h-352c-26.4922 0 -48 21.5078 -48 48v352c0 26.4922 21.5078 48 48 48h352c26.4922 0 48 -21.5078 48 -48zM221 298.69c0 -14.4902 8.37988 -22.8809 22.8604 -22.8809c14.7393 0 23.1299 8.39062 23.1299 22.8809
-c0 14.4893 -8.37012 22.3096 -23.1104 22.3096c-14.4795 0 -22.8799 -7.83984 -22.8799 -22.3096zM199.18 253h-49.5498c-25 6.5498 -81.5596 4.84961 -81.5596 -46.75c0 -18.7998 9.39941 -32 21.8496 -38.1104c-15.6895 -14.3701 -23.1201 -21.1396 -23.1201 -30.7393
-c0 -6.87012 2.79004 -13.2207 11.1807 -16.7607c-8.90039 -8.39941 -14 -14.4795 -14 -25.9199c0.0195312 -20.0693 17.5498 -31.7197 63.5391 -31.7197c44.2207 0 69.8701 16.5098 69.8701 45.7305c0 36.6699 -28.2295 35.3193 -94.7695 39.3799l8.37988 13.4297
-c17 -4.74023 74.1904 -6.23047 74.1904 42.4297c0 11.6904 -4.83008 19.8203 -9.40039 25.6699l23.3799 1.78027zM283.52 143.16l-13 1.78027c-3.81934 0.509766 -4.06934 1 -4.06934 5.08984v105.45h-52.6006l-2.79004 -20.5703c15.75 -5.5498 17 -4.86035 17 -10.1699
-v-74.7402c0 -5.62012 -0.30957 -4.58008 -17 -6.87012v-20.0596h72.4209zM384 133l-6.87012 22.3701c-40.9297 -15.3701 -37.8496 12.4102 -37.8496 16.7295v60.7207h37.8496v25.4102h-35.8203c-2.86914 0 -2 -2.52051 -2 38.6299h-24.1797
-c-2.79004 -27.7002 -11.6797 -38.8799 -34 -41.4199v-22.6201c20.4697 0 19.8203 0.849609 19.8203 -2.54004v-66.5703c0 -28.7197 11.4297 -40.9102 41.6699 -40.9102c14.4502 0 30.4502 4.83008 41.3799 10.2002z" />
-    <glyph glyph-name="git" unicode="&#xf1d3;" horiz-adv-x="512" 
-d="M216.29 289.61l0.0400391 -34.5508l-37.4102 -2.83984c7.27051 -9.35938 15 -22.3701 15 -41.0693c0 -77.8906 -91.4297 -75.4707 -118.7 -67.8906l-13.4297 -21.5498c106.47 -6.5 151.63 -4.33984 151.63 -63c0 -46.7598 -41.04 -73.1797 -111.79 -73.1797
-c-73.5801 0 -101.63 18.71 -101.63 50.8193c0 18.3008 8.12988 28.04 22.4004 41.4502c-13.4199 5.66992 -17.8906 15.8105 -17.8906 26.8105c0 15.3594 11.9004 26.21 37 49.21c-20 9.76953 -35 30.9102 -35 61c0 82.5498 90.4902 85.2793 130.49 74.79h79.29z
-M152.87 47.71c0 15.7402 -16.6104 13.8096 -94.3203 19.1104c-5.2998 -6.54004 -10.5693 -13.4004 -10.5693 -21.54c0 -29.6699 104.89 -29.6299 104.89 2.42969zM102.06 182.29c52.0205 0 50.7402 71.1602 1.2002 71.1602c-51.6602 0 -54 -71.1602 -1.2002 -71.1602z
-M235.36 81.7803v32.0996c26.75 3.66016 27.2393 2 27.2393 11v119.51c0 8.5 -2.0498 7.37988 -27.2393 16.2607l4.46973 32.9199h84.1699v-168.71c0 -6.51074 0.400391 -7.32031 6.50977 -8.14062l20.7305 -2.83984v-32.0996h-115.88zM287.81 326.09
-c-23.1699 0 -36.5898 13.4297 -36.5898 36.6104c0 23.1797 13.4199 35.7695 36.5898 35.7695c23.5801 0 37 -12.6201 37 -35.7695c0 -23.1504 -13.4199 -36.6104 -37 -36.6104zM512 97.54c-17.4902 -8.53027 -43.0996 -16.2598 -66.2803 -16.2598
-c-48.3799 0 -66.6699 19.5 -66.6699 65.46v106.51c0 5.41992 1.0498 4.05957 -31.71 4.05957v36.1904c35.7803 4.07031 50 22 54.4697 66.2695h38.6309c0 -65.8291 -1.34082 -61.8096 3.25977 -61.8096h57.2998v-40.6504h-60.5596v-97.1494
-c0 -6.91992 -4.9209 -51.4102 60.5693 -26.8398z" />
-    <glyph glyph-name="hacker-news" unicode="&#xf1d4;" 
-d="M0 416h448v-448h-448v448zM21.2002 218.8h-0.200195c0.0996094 0.100586 0.200195 0.299805 0.299805 0.400391c0 -0.100586 0 -0.299805 -0.0996094 -0.400391zM239.2 164.9l80.7998 155.1h-34.7998c-54.7998 -101.2 -48.2998 -98.5996 -60.6006 -125.6
-c-10.0996 24.3994 -6.7998 27.2998 -59.2998 125.6h-37.2998l79.7998 -153.3v-102.7h31.4004v100.9z" />
-    <glyph glyph-name="tencent-weibo" unicode="&#xf1d5;" horiz-adv-x="384" 
-d="M72.2998 -47.7998c1.40039 -19.9004 -27.5996 -22.2002 -29.7002 -2.90039c-11.5996 129.9 31.1006 239.5 101.4 313.2c-15.5996 34 9.2002 77.0996 50.5996 77.0996c30.3008 0 55.1006 -24.5996 55.1006 -55.0996c0 -44 -49.5 -70.7998 -86.9004 -45.0996
-c-65.7002 -71.3008 -101.399 -169.801 -90.5 -287.2zM192 447.9c92 0 166.6 -74.6006 166.6 -166.5c0 -102.301 -93.2998 -185.5 -204 -162.301c-19 4.7002 -12.5 33.2002 6.60059 29.1006c80.7998 -20.7998 167.7 42.2998 167.7 133.1c0 75.5 -61.5 136.9 -136.9 136.9
-c-101 0 -168.3 -106.601 -122 -199.2c9 -17.9004 -17.5996 -30.7998 -26.2998 -13.4004c-56 108.101 22.3994 242.301 148.3 242.301z" />
-    <glyph glyph-name="qq" unicode="&#xf1d6;" 
-d="M433.754 27.5547c-11.5264 -1.39258 -44.8604 52.7412 -44.8604 52.7412c0 -31.3447 -16.1357 -72.2471 -51.0508 -101.786c16.8418 -5.19141 54.8428 -19.167 45.8037 -34.4209c-7.31641 -12.3428 -125.511 -7.88086 -159.633 -4.03711
-c-34.1221 -3.84375 -152.315 -8.30566 -159.632 4.03711c-9.04492 15.25 28.918 29.2139 45.7832 34.415c-34.9199 29.5391 -51.0586 70.4453 -51.0586 101.792c0 0 -33.334 -54.1338 -44.8594 -52.7412c-5.37012 0.650391 -12.4238 29.6445 9.34668 99.7041
-c10.2617 33.0244 21.9951 60.4785 40.1445 105.779c-3.05566 116.898 45.2441 214.956 160.262 214.962c113.737 -0.00585938 163.156 -96.1328 160.264 -214.963c18.1182 -45.2227 29.9121 -72.8506 40.1445 -105.778c21.7676 -70.0596 14.7158 -99.0527 9.3457 -99.7041z
-" />
-    <glyph glyph-name="weixin" unicode="&#xf1d7;" horiz-adv-x="576" 
-d="M385.2 280.4c-92.4004 0 -165.4 -69.1006 -165.3 -154c0 -14.2002 2.19922 -27.9004 6.19922 -40.8008c-6.19922 -0.5 -12.0996 -0.799805 -18.2998 -0.799805c-24.3994 0 -43.7998 4.90039 -68.2002 9.7002l-68 -34.0996l19.3008 58.5996
-c-48.6006 34.0996 -77.9004 78.2002 -77.9004 131.6c0 92.6006 87.5 165.4 194.7 165.4c95.5996 0 179.7 -58.2998 196.3 -136.7c-6.2002 0.799805 -12.4004 1.10059 -18.7998 1.10059zM280.7 333.3c-14.7002 0 -29.2002 -9.7002 -29.2998 -24.3994
-c0 -14.5 14.5 -24.2002 29.2998 -24.2002c14.5 0 24.2002 9.7002 24.2002 24.2002c0 14.6992 -9.7002 24.3994 -24.2002 24.3994zM144.3 284.7c14.7998 0 24.4004 9.59961 24.4004 24.2002c0 14.6992 -9.60059 24.3994 -24.4004 24.3994
-c-14.5 0 -29.2998 -9.59961 -29.2998 -24.3994c0 -14.5 14.7998 -24.2002 29.2998 -24.2002zM563 128.6c0 -43.7998 -29 -82.6992 -68.2002 -112.1l14.7998 -48.5996l-53.3994 29.2998c-19.7002 -4.7998 -39.2998 -9.90039 -58.6006 -9.90039
-c-92.5996 0 -165.399 63.4004 -165.399 141.3c0 77.9004 72.7002 141.301 165.399 141.301c87.5 0 165.4 -63.4004 165.4 -141.301zM343.9 153.1c14.6992 0 24.3994 9.60059 24.3994 19.6006c0 9.59961 -9.59961 19.2998 -24.3994 19.2998
-c-9.60059 0 -19.3008 -9.59961 -19.3008 -19.2998c0 -9.90039 9.60059 -19.6006 19.3008 -19.6006zM451 153.1c14.5 0 24.5 9.60059 24.4004 19.6006c0 9.59961 -9.90039 19.2998 -24.4004 19.2998c-9.59961 0 -19.2998 -9.59961 -19.2998 -19.2998
-c0 -9.90039 9.59961 -19.6006 19.2998 -19.6006z" />
-    <glyph glyph-name="slideshare" unicode="&#xf1e7;" horiz-adv-x="512" 
-d="M187.7 294.3c34 0 61.7002 -25.7002 61.7002 -57.7002c0 -31.6992 -27.7002 -57.6992 -61.7002 -57.6992s-61.7002 26 -61.7002 57.6992c0 32 27.7002 57.7002 61.7002 57.7002zM331.1 294.3c34.3008 0 61.8008 -25.7002 61.7002 -57.7002
-c0 -31.6992 -27.3994 -57.6992 -61.7002 -57.6992c-34 0 -61.6992 26 -61.6992 57.6992c0 32 27.6992 57.7002 61.6992 57.7002zM487.7 204.3c15.2002 10.5 25.2002 -4 16.0996 -17.7998c-18.2998 -22.5996 -53.2002 -50.2998 -106.3 -72
-c56.2998 -191.7 -137.4 -222.3 -134.3 -124c0 0.700195 -0.299805 53.7998 -0.299805 93.5c-4.30078 0.799805 -8.60059 2 -13.7002 3.09961c0 -40 -0.299805 -95.8994 -0.299805 -96.5996c3.09961 -98.2002 -190.601 -67.5996 -134.301 124.1
-c-53.1992 21.7002 -88 49.4004 -106.3 72c-9.09961 13.7002 0.900391 28.3008 16 17.7002c2 -1.39941 4.2998 -2.89941 6.2998 -4.2998v198.3c0 27.4004 20.6006 49.7002 46 49.7002h359.101c25.3994 0 46 -22.2998 46 -49.7002v-198.3zM457.2 185.1h0.0996094v190.601
-c0 32.7998 -10.5996 45.7002 -40.8994 45.7002h-317.7c-31.7002 0 -40.6006 -10.8008 -40.6006 -45.7002v-192.4c67.7002 -35.3994 125.7 -29.0996 157.4 -28c13.4004 0.299805 22 -2.2998 27.0996 -7.7002c1.7002 -1.59961 10 -9.39941 20.3008 -17.0996
-c1.09961 15.7998 10 25.7998 33.6992 24.9004c32.3008 -1.40039 91.7002 -7.7002 160.601 29.6992z" />
-    <glyph glyph-name="twitch" unicode="&#xf1e8;" horiz-adv-x="512" 
-d="M391.17 344.53v-109.7h-38.6299v109.7h38.6299zM285 345v-109.75h-38.6299v109.75h38.6299zM120.83 448h366.86v-256l-173.771 -164.58h-77.25l-96.5303 -91.4199v91.4199h-115.83v329.16zM449.07 210.25v201.17h-308.931v-274.29h86.8701v-64l67.6006 64h77.2393z" />
-    <glyph glyph-name="yelp" unicode="&#xf1e9;" horiz-adv-x="384" 
-d="M42.9004 207.68l99.6191 -48.6094c19.2002 -9.40039 16.2002 -37.5107 -4.5 -42.71l-107.52 -26.8105c-1.78223 -0.448242 -3.64746 -0.685547 -5.56738 -0.685547c-11.7246 0 -21.3848 8.89453 -22.6426 20.2861c-0.853516 7.44141 -1.29297 15.0078 -1.29297 22.6768
-c0 21.9561 3.65723 42.9111 10.293 62.6426c3.03906 9.02148 11.5723 15.5264 21.6133 15.5264c3.5791 0 6.98145 -0.84375 9.99707 -2.31641zM86.9004 -31.5703c-6.01172 4.1123 -9.9248 11.0195 -9.9248 18.8457c0 5.85742 2.21191 11.2021 5.84473 15.2441l74.21 82.4004
-c14.3096 15.8105 40.5098 5.2002 39.8096 -16.0996l-3.89941 -110.82c-0.414062 -12.21 -10.4365 -22.0088 -22.7461 -22.0088c-1.32129 0 -2.61523 0.112305 -3.87402 0.329102c-28.9365 4.90039 -56.1416 16.1621 -79.4199 32.1094zM232.24 78.3496
-c-11.2998 18.1104 6.2002 40.4102 26.5098 33.9102l105.42 -34.2598c9.14453 -3.04102 15.7305 -11.6855 15.7305 -21.8447c0 -3.46289 -0.767578 -6.74805 -2.14062 -9.69531c-12.5361 -26.3281 -30.4697 -49.2246 -52.71 -67.6104
-c-3.96191 -3.26465 -9.03809 -5.25781 -14.5674 -5.25781c-8.18555 0 -15.375 4.29785 -19.4326 10.7578zM380.57 210.58c1.21289 -2.79883 1.93359 -5.89941 1.93359 -9.1416c0 -10.4385 -6.96875 -19.2627 -16.5039 -22.0684l-106.64 -30.5098
-c-20.5 -5.90039 -37.1006 17.0098 -25.2002 34.71l62 91.9199c4.10742 6.08398 11.0635 10.0615 18.9502 10.0615c5.76172 0 11.0283 -2.1377 15.0498 -5.66211c21.5781 -19.0479 38.7783 -42.5518 50.4102 -69.3096zM62.1104 417.82
-c34.3301 16.3438 72.6104 26.9434 112.33 30.0996c0.610352 0.0498047 1.20703 0.078125 1.83008 0.078125c12.5127 0 22.6709 -10.1582 22.6709 -22.6699c0 -0.0693359 -0.000976562 -0.138672 -0.000976562 -0.208008v-208.34
-c0 -23.2998 -30.9102 -31.6006 -42.6104 -11.4004l-104.12 180.44c-1.92871 3.35059 -3.06738 7.24805 -3.06738 11.3887c0 9.07422 5.29883 16.9199 12.9678 20.6113z" />
-    <glyph glyph-name="paypal" unicode="&#xf1ed;" horiz-adv-x="384" 
-d="M111.4 152.1c-3.5 -19.1992 -17.4004 -108.699 -21.5 -134c-0.300781 -1.7998 -1 -2.5 -3 -2.5h-74.6006c-7.59961 0 -13.0996 6.60059 -12.0996 13.9004l58.5996 371.9c1.5 9.59961 10.1006 16.8994 20 16.8994c152.3 0 165.101 3.7002 204 -11.3994
-c60.1006 -23.3008 65.6006 -79.5 44 -140.301c-21.5 -62.5996 -72.5 -89.5 -140.1 -90.2998c-43.4004 -0.700195 -69.5 7 -75.2998 -24.2002zM357.1 296c28.4004 -21.2002 30.3008 -57.7998 23.8008 -92.5996c-16.5 -83.5 -71.9004 -112.301 -142.9 -112.301
-c-15 0 -24.7002 2.30078 -29.2998 -19.6992c-15.5 -97.4004 -13.7002 -85.9004 -14.4004 -91.3008c-1.7002 -8.59961 -8.7998 -14.8994 -17.3994 -14.8994h-63.5c-7.10059 0 -11.6006 5.7998 -10.6006 12.8994c0 0 4.5 29.3008 27.1006 169.7
-c0.799805 6.10059 4.7998 9.40039 10.8994 9.40039c54 0 164.601 -9.90039 204.5 103.899c3.7002 11.1006 6.7998 22.2002 8.7998 33.6006c0.5 3.09961 1.2002 2.59961 3 1.2998z" />
-    <glyph glyph-name="google-wallet" unicode="&#xf1ee;" 
-d="M156.8 321.2c37.6006 -60.6006 64.2002 -113.101 84.2998 -162.5c-8.2998 -33.7998 -18.7998 -66.5 -31.2998 -98.2998c-13.2002 52.2998 -26.5 101.3 -56 148.5c6.5 36.3994 2.2998 73.5996 3 112.3zM109.3 248c5 0 10 -2.5 13 -6.5
-c43.7998 -59.7998 66.2998 -123.8 82.5 -193.5h-103.5c-20 69.5 -49.5 133 -91.7002 187.3c-4 5.2002 0 12.7002 6.5 12.7002h93.2002zM157.1 336h108.7c74.7998 -103 131.2 -230 143.2 -368h-113.7c-8.2002 133.5 -69.7002 260 -138.2 368zM408.9 404.5
-c19 -67.5 31.0996 -139 31.0996 -212.6c0 -69.5 -9.5 -142.5 -25.2998 -203c-10.9004 92.5 -42.4004 184.6 -90.6006 270.8c-4.19922 50.5 -13.2998 99.5 -26.5 146c-1.19922 5.2998 2.5 10.2998 7.80078 10.2998h88.2998c7 0 13.3994 -4.7002 15.2002 -11.5z" />
-    <glyph glyph-name="cc-visa" unicode="&#xf1f0;" horiz-adv-x="576" 
-d="M470.1 216.7c0 0 7.60059 -37.2002 9.30078 -45h-33.4004c3.2998 8.89941 16 43.5 16 43.5c-0.200195 -0.299805 3.2998 9.09961 5.2998 14.8994zM576 368v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480
-c26.5 0 48 -21.5 48 -48zM152.5 116.8l63.2002 155.2h-42.5l-39.2998 -106l-4.30078 21.5l-14 71.4004c-2.2998 9.89941 -9.39941 12.6992 -18.1992 13.0996h-64.7002l-0.700195 -3.09961c15.7998 -4 29.9004 -9.80078 42.2002 -17.1006l35.7998 -135h42.5zM246.9 116.6
-l25.1992 155.4h-40.1992l-25.1006 -155.4h40.1006zM386.8 167.4c0.200195 17.6992 -10.5996 31.1992 -33.7002 42.2998c-14.0996 7.09961 -22.6992 11.8994 -22.6992 19.2002c0.199219 6.59961 7.2998 13.3994 23.0996 13.3994
-c13.0996 0.299805 22.7002 -2.7998 29.9004 -5.89941l3.59961 -1.7002l5.5 33.5996c-7.90039 3.10059 -20.5 6.60059 -36 6.60059c-39.7002 0 -67.5996 -21.2002 -67.7998 -51.4004c-0.299805 -22.2998 20 -34.7002 35.2002 -42.2002
-c15.5 -7.59961 20.7998 -12.5996 20.7998 -19.2998c-0.200195 -10.4004 -12.6006 -15.2002 -24.1006 -15.2002c-16 0 -24.5996 2.5 -37.6992 8.2998l-5.30078 2.5l-5.59961 -34.8994c9.40039 -4.2998 26.7998 -8.10059 44.7998 -8.2998
-c42.2002 -0.100586 69.7002 20.7998 70 53zM528 116.6l-32.4004 155.4h-31.0996c-9.59961 0 -16.9004 -2.7998 -21 -12.9004l-59.7002 -142.5h42.2002s6.90039 19.2002 8.40039 23.3008h51.5996c1.2002 -5.5 4.7998 -23.3008 4.7998 -23.3008h37.2002z" />
-    <glyph glyph-name="cc-mastercard" unicode="&#xf1f1;" horiz-adv-x="576" 
-d="M482.9 37.7002c0 -6.7998 -4.60059 -11.7002 -11.2002 -11.7002c-6.7998 0 -11.2002 5.2002 -11.2002 11.7002s4.40039 11.7002 11.2002 11.7002c6.59961 0 11.2002 -5.2002 11.2002 -11.7002zM172.1 49.4004c6.5 0 10.8008 -5.2002 10.9004 -11.7002
-c0 -6.7998 -4.40039 -11.7002 -10.9004 -11.7002c-7.09961 0 -11.1992 5.2002 -11.1992 11.7002s4.09961 11.7002 11.1992 11.7002zM289.6 49.7002c5.2002 0 8.7002 -3 9.60059 -8.7002h-19.1006c0.800781 5.2002 4.10059 8.7002 9.5 8.7002zM397.4 49.4004
-c6.7998 0 11.1992 -5.2002 11.1992 -11.7002c0 -6.7998 -4.39941 -11.7002 -11.1992 -11.7002c-6.80078 0 -10.9004 5.2002 -10.9004 11.7002s4.09961 11.7002 10.9004 11.7002zM503.3 23.2998c0 -0.299805 0.299805 -0.5 0.299805 -1.09961
-c0 -0.299805 -0.299805 -0.5 -0.299805 -1.10059c-0.299805 -0.299805 -0.299805 -0.5 -0.5 -0.799805c-0.299805 -0.299805 -0.5 -0.5 -1.09961 -0.5c-0.299805 -0.299805 -0.5 -0.299805 -1.10059 -0.299805c-0.299805 0 -0.5 0 -1.09961 0.299805
-c-0.299805 0 -0.5 0.299805 -0.799805 0.5c-0.299805 0.299805 -0.5 0.5 -0.5 0.799805c-0.299805 0.5 -0.299805 0.800781 -0.299805 1.10059c0 0.5 0 0.799805 0.299805 1.09961c0 0.5 0.299805 0.799805 0.5 1.10059c0.299805 0.299805 0.5 0.299805 0.799805 0.5
-c0.5 0.299805 0.799805 0.299805 1.09961 0.299805c0.5 0 0.800781 0 1.10059 -0.299805c0.5 -0.300781 0.799805 -0.300781 1.09961 -0.5c0.299805 -0.200195 0.200195 -0.600586 0.5 -1.10059zM501.1 21.9004c0.5 0 0.5 0.299805 0.800781 0.299805
-c0.299805 0.299805 0.299805 0.5 0.299805 0.799805s0 0.5 -0.299805 0.799805c-0.300781 0 -0.5 0.299805 -1.10059 0.299805h-1.59961v-3.5h0.799805v1.40039h0.299805l1.10059 -1.40039h0.799805zM576 367v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48
-v352c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48zM64 227.4c0 -76.5 62.0996 -138.5 138.5 -138.5c27.2002 0 53.9004 8.19922 76.5 23.0996c-72.9004 59.2998 -72.4004 171.2 0 230.5c-22.5996 15 -49.2998 23.0996 -76.5 23.0996
-c-76.4004 0.100586 -138.5 -62 -138.5 -138.199zM288 118.6c70.5 55 70.2002 162.2 0 217.5c-70.2002 -55.2998 -70.5 -162.6 0 -217.5zM145.7 42.2998c0 8.7002 -5.7002 14.4004 -14.7002 14.7002c-4.59961 0 -9.5 -1.40039 -12.7998 -6.5
-c-2.40039 4.09961 -6.5 6.5 -12.2002 6.5c-3.7998 0 -7.59961 -1.40039 -10.5996 -5.40039v4.40039h-8.2002v-36.7002h8.2002c0 18.9004 -2.5 30.2002 9 30.2002c10.1992 0 8.19922 -10.2002 8.19922 -30.2002h7.90039c0 18.2998 -2.5 30.2002 9 30.2002
-c10.2002 0 8.2002 -10 8.2002 -30.2002h8.2002v23h-0.200195zM190.6 56h-7.89941v-4.40039c-2.7002 3.30078 -6.5 5.40039 -11.7002 5.40039c-10.2998 0 -18.2002 -8.2002 -18.2002 -19.2998c0 -11.2002 7.90039 -19.2998 18.2002 -19.2998
-c5.2002 0 9 1.89941 11.7002 5.39941v-4.59961h7.89941v36.7998zM231.1 30.4004c0 15 -22.8994 8.19922 -22.8994 15.1992c0 5.7002 11.8994 4.80078 18.5 1.10059l3.2998 6.5c-9.40039 6.09961 -30.2002 6 -30.2002 -8.2002c0 -14.2998 22.9004 -8.2998 22.9004 -15
-c0 -6.2998 -13.5 -5.7998 -20.7002 -0.799805l-3.5 -6.2998c11.2002 -7.60059 32.5996 -6 32.5996 7.5zM266.5 21.0996l-2.2002 6.80078c-3.7998 -2.10059 -12.2002 -4.40039 -12.2002 4.09961v16.5996h13.1006v7.40039h-13.1006v11.2002h-8.19922v-11.2002h-7.60059
-v-7.2998h7.60059v-16.7002c0 -17.5996 17.2998 -14.4004 22.5996 -10.9004zM279.8 34.5h27.5c0 16.2002 -7.39941 22.5996 -17.3994 22.5996c-10.6006 0 -18.2002 -7.89941 -18.2002 -19.2998c0 -20.5 22.5996 -23.8994 33.7998 -14.2002l-3.7998 6
-c-7.7998 -6.39941 -19.6006 -5.7998 -21.9004 4.90039zM338.9 56c-4.60059 2 -11.6006 1.7998 -15.2002 -4.40039v4.40039h-8.2002v-36.7002h8.2002v20.7002c0 11.5996 9.5 10.0996 12.7998 8.40039zM349.5 37.7002c0 11.3994 11.5996 15.0996 20.7002 8.39941l3.7998 6.5
-c-11.5996 9.10059 -32.7002 4.10059 -32.7002 -15c0 -19.7998 22.4004 -23.7998 32.7002 -15l-3.7998 6.5c-9.2002 -6.5 -20.7002 -2.59961 -20.7002 8.60059zM416.2 56h-8.2002v-4.40039c-8.2998 11 -29.9004 4.80078 -29.9004 -13.8994
-c0 -19.2002 22.4004 -24.7002 29.9004 -13.9004v-4.59961h8.2002v36.7998zM449.9 56c-2.40039 1.2002 -11 2.90039 -15.2002 -4.40039v4.40039h-7.90039v-36.7002h7.90039v20.7002c0 11 9 10.2998 12.7998 8.40039zM490.2 70.9004h-7.90039v-19.3008
-c-8.2002 10.9004 -29.8994 5.10059 -29.8994 -13.8994c0 -19.4004 22.5 -24.6006 29.8994 -13.9004v-4.59961h7.90039v51.7002zM497.8 146v-4.59961h0.799805v4.59961h1.90039v0.799805h-4.59961v-0.799805h1.89941zM504.4 22.2002c0 0.5 0 1.09961 -0.300781 1.59961
-c-0.299805 0.299805 -0.5 0.799805 -0.799805 1.10059c-0.299805 0.299805 -0.799805 0.5 -1.09961 0.799805c-0.5 0 -1.10059 0.299805 -1.60059 0.299805c-0.299805 0 -0.799805 -0.299805 -1.39941 -0.299805c-0.5 -0.299805 -0.799805 -0.5 -1.10059 -0.799805
-c-0.5 -0.300781 -0.799805 -0.800781 -0.799805 -1.10059c-0.299805 -0.5 -0.299805 -1.09961 -0.299805 -1.59961c0 -0.299805 0 -0.799805 0.299805 -1.40039c0 -0.299805 0.299805 -0.799805 0.799805 -1.09961c0.300781 -0.299805 0.5 -0.5 1.10059 -0.799805
-c0.5 -0.300781 1.09961 -0.300781 1.39941 -0.300781c0.5 0 1.10059 0 1.60059 0.300781c0.299805 0.299805 0.799805 0.5 1.09961 0.799805s0.5 0.799805 0.799805 1.09961c0.300781 0.600586 0.300781 1.10059 0.300781 1.40039zM507.6 146.9h-1.39941l-1.60059 -3.5
-l-1.59961 3.5h-1.40039v-5.40039h0.800781v4.09961l1.59961 -3.5h1.09961l1.40039 3.5v-4.09961h1.09961v5.40039zM512 227.4c0 76.1992 -62.0996 138.3 -138.5 138.3c-27.2002 0 -53.9004 -8.2002 -76.5 -23.1006c72.0996 -59.2998 73.2002 -171.5 0 -230.5
-c22.5996 -15 49.5 -23.0996 76.5 -23.0996c76.4004 -0.0996094 138.5 61.9004 138.5 138.4z" />
-    <glyph glyph-name="cc-discover" unicode="&#xf1f2;" horiz-adv-x="576" 
-d="M520.4 251.9c0 -8.40039 -5.5 -12.8008 -15.8008 -12.8008h-4.69922v24.9004h4.89941c10.1006 0 15.6006 -4.2002 15.6006 -12.0996zM528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480z
-M483.9 277.1v-82h16v32.8008h2.19922l22.2002 -32.8008h19.6006l-25.8008 34.4004c12.1006 2.5 18.7002 10.5996 18.7002 23.2002c0 28.5 -30.2998 24.3994 -52.8994 24.3994zM428 277v-82h45.2998v13.7998h-29.2998v22.2002h28.2998v13.7998h-28.2998v18.2002h29.2998v14
-h-45.2998zM359.3 277h-17.5l35 -84.2002h8.60059l35.5 84.2002h-17.5l-22.2002 -55.2002zM303.4 280c-24.6006 0 -44.6006 -19.9004 -44.6006 -44.5996c0 -24.6006 19.9004 -44.6006 44.6006 -44.6006c24.5996 0 44.5996 19.9004 44.5996 44.6006
-c0 24.5996 -19.9004 44.5996 -44.5996 44.5996zM254.1 273.9c-30.1992 15 -63.2998 -6.80078 -63.2998 -38c0 -32.5 33.6006 -52.5 63.2998 -38.2002v19c-19.2998 -19.2998 -46.7998 -5.7998 -46.7998 19.2002c0 23.6992 26.7002 39.0996 46.7998 19v19zM156.9 207.6
-c-7.60059 0 -13.8008 3.7002 -17.5 10.8008l-10.3008 -9.90039c17.8008 -26.0996 56.6006 -18.2002 56.6006 11.2998c0 13.1006 -5.40039 19 -23.6006 25.6006c-9.59961 3.39941 -12.2998 5.89941 -12.2998 10.2998c0 8.7002 14.5 14.0996 24.9004 2.5l8.39941 10.7998
-c-19.0996 17.0996 -49.6992 8.90039 -49.6992 -14.2998c0 -11.2998 5.19922 -17.2002 20.1992 -22.7002c25.7002 -9.09961 14.7002 -24.4004 3.30078 -24.4004zM55.4004 195c30.8994 0 44.0996 22.4004 44.0996 40.9004c0 24.0996 -18 41.0996 -44.0996 41.0996h-23.4004
-v-82h23.4004zM122.9 195v82h-16v-82h16zM544 15v145c-33.2998 -20.7998 -226.4 -124.4 -416 -160h401c8.2002 0 15 6.7998 15 15zM74.0996 256.4c5.7002 -5 8.90039 -12.6006 8.90039 -20.5c0 -7.90039 -3.2002 -15.5 -8.90039 -20.7002
-c-4.89941 -4.40039 -11.5996 -6.40039 -21.8994 -6.40039h-4.2002v54.2002h4.2002c10.2998 0 16.7002 -1.7002 21.8994 -6.59961z" />
-    <glyph glyph-name="cc-amex" unicode="&#xf1f3;" horiz-adv-x="576" 
-d="M325.1 280.2c0.100586 -8 -4.2998 -15.7002 -11.6992 -18.7002c9.5 -3.2998 11 -9.2002 11 -18.4004v-13.5h-16.6006c-0.299805 14.8008 3.60059 25.1006 -14.7998 25.1006h-18v-25.1006h-16.4004v69.3008l39.1006 -0.300781c13.2998 0 27.3994 -2 27.3994 -18.3994z
-M295.7 268.9c5.7002 0 11 1.2998 11 7.89941c0 6.40039 -5.60059 7.40039 -10.7002 7.40039h-21v-15.2998h20.7002zM279 179.4c15.5996 0 27.9004 -5.40039 27.9004 -22.7002c0 -27.9004 -30.4004 -23.2998 -49.3008 -23.2998l-0.0996094 -23.3008h-32.2002l-20.3994 23
-l-21.3008 -23h-65.3994l0.0996094 69.3008h66.5l20.5 -22.8008l21 22.8008h52.7002zM175.2 124.7l19 20.2002l-17.9004 20.1992h-41.7002v-12.5h36.3008v-14.0996h-36.3008v-13.7998h40.6006zM241 116.5v55.5l-25.2998 -27.4004zM278.8 147.5
-c5.90039 0 10.5 2.7998 10.5 9.2002c0 6.09961 -4.59961 8.39941 -10.2002 8.39941h-21.5v-17.5996h21.2002zM247.2 284.2h-38.9004v-12.5h37.7998v-14.1006h-37.7998v-13.7998h38.9004v-14.2998h-55.5v69.2998h55.5v-14.5996zM576 192.6h-0.200195h0.200195zM381.4 160.7
-c-0.100586 -7.60059 -4.2002 -15.2998 -11.9004 -18.4004c9.2002 -3.2998 11 -9.5 11 -18.3994l-0.0996094 -13.8008h-16.6006l0.100586 11.5c0 11.8008 -3.80078 13.8008 -14.8008 13.8008h-17.5996l-0.0996094 -25.3008h-16.6006l0.100586 69.3008h39.3994
-c13 0 27.1006 -2.30078 27.1006 -18.7002zM352.2 149.5c5.59961 0 11 1.2998 11 8.2002c0 6.39941 -5.60059 7.39941 -10.7002 7.39941h-21v-15.5996h20.7002zM179.4 229.5h-16.8008v54.2002l-24 -54.2002h-14.5996l-24 54.2002v-54.2002h-33.7998l-6.40039 15.2998h-34.5
-l-6.39941 -15.2998h-17.9004l29.7002 69.2998h24.5l28.0996 -65.7002v65.7002h27.1006l21.6992 -47l19.7002 47h27.6006v-69.2998zM31.2002 259.2h22.7002l-11.5 27.5996zM508.6 100.3c34.8008 0 54.8008 -2.2002 67.5 6.10059v-90.4004c0 -26.5 -21.5 -48 -48 -48h-480.1
-c-26.5 0 -48 21.5 -48 48v203.7h26.5996c4.2002 10.0996 2.2002 5.2998 6.40039 15.2998h19.2002c4.2002 -10 2.2002 -5.2002 6.39941 -15.2998h52.9004v11.3994c2.2002 -5 1.09961 -2.5 5.09961 -11.3994h29.5c2.40039 5.5 2.60059 5.7998 5.10059 11.3994v-11.3994h135.5
-v25.0996c6.39941 0 8 0.100586 9.7998 -0.200195c0 0 -0.200195 -10.8994 0.0996094 -24.7998h66.5v8.90039c7.40039 -5.90039 17.4004 -8.90039 29.7002 -8.90039h26.7998c4.2002 10.1006 2.2002 5.2998 6.40039 15.2998h19c6.5 -15 0.200195 -0.5 6.59961 -15.2998
-h52.8008v21.9004c11.7998 -19.7002 7.7998 -12.9004 13.1992 -21.9004h41.6006v92h-39.9004v-18.3994c-12.2002 20.1992 -6.2998 10.3994 -11.2002 18.3994h-43.2998v-20.5996c-6.2002 14.5996 -4.59961 10.7998 -8.7998 20.5996h-32.4004
-c-0.399414 0 -2.2998 -0.200195 -2.2998 0.299805h-27.5996c-12.7998 0 -23.1006 -3.19922 -30.7002 -9.2998v9.2998h-39.9004v-5.2998c-10.7998 6.10059 -20.6992 5.10059 -64.3994 5.2998c-0.100586 0 -11.6006 0.100586 -11.6006 0h-103
-c-2.5 -6.09961 -6.7998 -16.3994 -12.5996 -30c-2.7998 6 -11 23.8008 -13.9004 30h-46v-21.0996c-7.39941 17.4004 -4.69922 11 -9 21.0996h-39.6992c-3.40039 -7.89941 -13.7002 -32 -23.1006 -53.8994v109.8c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48v-175.4
-c-37.7002 0.200195 -44 0.900391 -54.2998 -5v5c-45.2998 0 -53.5 1.7002 -64.9004 -5.19922v5.19922h-78.1992v-5.09961c-11.4004 6.5 -21.4004 5.09961 -75.7002 5.09961v-5.59961c-6.2998 3.7002 -14.5 5.59961 -24.2998 5.59961h-58
-c-3.5 -3.7998 -12.5 -13.6992 -15.7002 -17.1992c-12.7002 14.0996 -10.5 11.5996 -15.5 17.1992h-83.1006v-92.2998h82c3.30078 3.5 12.9004 13.9004 16.1006 17.4004c12.7002 -14.2998 10.2998 -11.7002 15.3994 -17.4004h48.9004
-c0 14.7002 0.0996094 8.2998 0.0996094 23c11.5 -0.200195 24.3008 0.200195 34.3008 6.2002c0 -13.9004 -0.100586 -17.0996 -0.100586 -29.2002h39.6006c0 18.5 0.0996094 7.40039 0.0996094 25.2998c6.2002 0 7.7002 0 9.40039 -0.0996094
-c0.0996094 -1.2998 0 0 0 -25.2002c152.8 0 145.899 -1.09961 156.699 4.5v-4.5zM544.9 164.8c-4.60059 0 -9.2002 -0.700195 -9.2002 -6.5c0 -12.2002 28.7998 0.299805 39.2998 -13.5v-25.7998c-4.90039 -7.09961 -14.0996 -8.90039 -22.5 -8.90039h-32l0.0996094 14.8008
-h32c4.10059 0 8.40039 1.2998 8.40039 6.39941c0 14.6006 -42.7002 -5.59961 -42.7002 27.4004c0 14.0996 11 20.7002 23.7998 20.7002h32.9004v-14.6006h-30.0996zM487.9 125c4.09961 0 8.69922 1 8.7998 6.40039c0 14.8994 -42.7002 -5.60059 -42.7002 27.3994
-c0 14.1006 10.7002 20.7002 23.5 20.7002h33.2002v-14.5996h-30.4004c-4.2998 0 -9.2002 -0.800781 -9.2002 -6.40039c0 -15.0996 42.9004 6.90039 42.9004 -26.2998c0 -16.4004 -11.4004 -22 -26.2002 -22h-32.2002l0.100586 14.7998h32.2002zM445.7 165.1h-38.5v-12.5
-h37.7998v-14.0996h-37.9004v-13.7998l38.6006 -0.299805l-0.100586 -14.3008h-55.1992l0.0996094 69.3008h55.2002v-14.3008zM389.4 273.2c0.299805 0.299805 1.69922 1 7.2998 1c1 0 2 -0.100586 3.09961 -0.100586l-7.2998 -16.8994
-c-2.2998 0 -3.2002 0.399414 -3.40039 0.5c-0.199219 0.200195 -1.09961 1.89941 -1.09961 7.89941c0 5.40039 1.09961 7.40039 1.40039 7.60059zM409.8 283.7h-0.0996094h0.0996094zM393.6 298.9h16.1006v-15.2002c-17.4004 0.299805 -33.1006 4.09961 -33.1006 -19.7002
-c0 -11.7998 2.80078 -19.9004 16.1006 -19.9004h7.39941l23.5 54.5h24.8008l27.8994 -65.3994v65.3994h25.2998l29.1006 -48.0996v48.0996h16.8994v-69h-23.5996l-31.2002 51.9004v-51.9004h-33.7002l-6.59961 15.3008h-34.2998l-6.40039 -15.3008h-19.2002
-c-22.7998 0 -33 11.8008 -33 34c0 23.3008 10.5 35.3008 34 35.3008zM435.7 286.8l-11.6006 -27.5996h22.8008zM334.6 298.8h16.9004v-69.2998h-16.9004v69.2998z" />
-    <glyph glyph-name="cc-paypal" unicode="&#xf1f4;" horiz-adv-x="576" 
-d="M186.3 189.8c0 -12.2002 -9.7002 -21.5 -22 -21.5c-9.2002 0 -16 5.2002 -16 15c0 12.2002 9.5 22 21.7002 22c9.2998 0 16.2998 -5.7002 16.2998 -15.5zM80.5 238.3c11.2998 0 19.7998 -1.5 17.5 -14.8994c-2 -12.7002 -10.5 -14.2002 -21.5 -14.2002l-8.2002 -0.299805
-l4.2998 26.6992c0.200195 1.7002 1.7002 2.7002 3.2002 2.7002h4.7002zM364.5 238.3c8.5 0 18 -0.5 18.0996 -11.0996c0 -15 -9 -18 -22 -18l-8 -0.299805l4.2002 26.6992c0.200195 1.7002 1.40039 2.7002 3.2002 2.7002h4.5zM576 368v-352c0 -26.5 -21.5 -48 -48 -48h-480
-c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48zM128.3 232.6c0 21 -16.2002 28 -34.7002 28h-40c-2.5 0 -5 -2 -5.19922 -4.69922l-16.4004 -102.101c-0.299805 -2 1.2002 -4 3.2002 -4h19c2.7002 0 5.2002 2.90039 5.5 5.7002l4.5 26.5996
-c1 7.2002 13.2002 4.7002 18 4.7002c28.5996 0 46.0996 17 46.0996 45.7998zM212.5 223.8h-19c-3.7998 0 -4 -5.5 -4.2002 -8.2002c-5.7998 8.5 -14.2002 10 -23.7002 10c-24.5 0 -43.1992 -21.5 -43.1992 -45.1992c0 -19.5 12.1992 -32.2002 31.6992 -32.2002
-c9 0 20.2002 4.89941 26.5 11.8994c-0.5 -1.5 -1 -4.69922 -1 -6.19922c0 -2.30078 1 -4 3.2002 -4h17.2002c2.7002 0 5 2.89941 5.5 5.69922l10.2002 64.3008c0.299805 1.89941 -1.2002 3.89941 -3.2002 3.89941zM253 125.9l63.7002 92.5996c0.5 0.5 0.5 1 0.5 1.7002
-c0 1.7002 -1.5 3.5 -3.2002 3.5h-19.2002c-1.7002 0 -3.5 -1 -4.5 -2.5l-26.5 -39l-11 37.5c-0.799805 2.2002 -3 4 -5.5 4h-18.7002c-1.69922 0 -3.19922 -1.7998 -3.19922 -3.5c0 -1.2002 19.5 -56.7998 21.1992 -62.1006c-2.69922 -3.7998 -20.5 -28.5996 -20.5 -31.5996
-c0 -1.7998 1.5 -3.2002 3.2002 -3.2002h19.2002c1.7998 0.100586 3.5 1.10059 4.5 2.60059zM412.3 232.6c0 21 -16.2002 28 -34.7002 28h-39.6992c-2.7002 0 -5.2002 -2 -5.5 -4.69922l-16.2002 -102c-0.200195 -2 1.2998 -4 3.2002 -4h20.5c2 0 3.5 1.5 4 3.19922l4.5 29
-c1 7.2002 13.1992 4.7002 18 4.7002c28.3994 0 45.8994 17 45.8994 45.7998zM496.5 223.8h-19c-3.7998 0 -4 -5.5 -4.2998 -8.2002c-5.5 8.5 -14 10 -23.7002 10c-24.5 0 -43.2002 -21.5 -43.2002 -45.1992c0 -19.5 12.2002 -32.2002 31.7002 -32.2002
-c9.2998 0 20.5 4.89941 26.5 11.8994c-0.299805 -1.5 -1 -4.69922 -1 -6.19922c0 -2.30078 1 -4 3.2002 -4h17.2998c2.7002 0 5 2.89941 5.5 5.69922l10.2002 64.3008c0.299805 1.89941 -1.2002 3.89941 -3.2002 3.89941zM544 257.1c0 2 -1.5 3.5 -3.2002 3.5h-18.5
-c-1.5 0 -3 -1.19922 -3.2002 -2.69922l-16.1992 -104l-0.300781 -0.5c0 -1.80078 1.5 -3.5 3.5 -3.5h16.5c2.5 0 5 2.89941 5.2002 5.69922l16.2002 101.2v0.299805zM454 205.3c9.2998 0 16.2998 -5.7002 16.2002 -15.5c0 -12.2998 -9.7002 -21.5 -21.7002 -21.5
-c-9.2002 0 -16.2002 5.2998 -16.2002 15c0 12.2998 9.5 22 21.7002 22z" />
-    <glyph glyph-name="cc-stripe" unicode="&#xf1f5;" horiz-adv-x="576" 
-d="M492.4 227.2c8.69922 0 18 -6.7002 18 -22.7002h-36.7002c0 16 9.7998 22.7002 18.7002 22.7002zM375 224.6c12.9004 0.100586 21.9004 -14.5 21.9004 -33.0996c0 -19.0996 -8.80078 -33.4004 -21.9004 -33.4004c-8.2998 0 -13.2998 3 -16.7998 6.7002l-0.200195 52.7998
-c3.7002 4.10059 8.7998 7 17 7zM528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480zM122.2 166.9c0 42.2998 -54.2998 34.6992 -54.2998 50.6992c0 5.5 4.59961 7.7002 12.0996 7.7002
-c10.7998 0 24.5 -3.2998 35.2998 -9.09961v33.3994c-11.7998 4.7002 -23.5 6.5 -35.2998 6.5c-28.7998 0 -48 -15 -48 -40.1992c0 -39.3008 54 -32.9004 54 -49.9004c0 -6.59961 -5.7002 -8.7002 -13.5996 -8.7002c-11.8008 0 -26.9004 4.90039 -38.9004 11.2998v-33.8994
-c13.2002 -5.7002 26.5996 -8.10059 38.7998 -8.10059c29.6006 0.200195 49.9004 14.7002 49.9004 40.3008zM191 223.5v30.2998h-26.9004v30.7998l-34.6992 -7.39941l-0.200195 -113.9c0 -21 15.7998 -36.5 36.8994 -36.5c11.6006 0 20.2002 2.10059 24.9004 4.7002v28.9004
-c-4.5 -1.80078 -27 -8.30078 -27 12.5996v50.5h27zM265 221.1v32.7002h-0.0996094c-4.7002 1.7002 -21.3008 4.7998 -29.6006 -10.5l-2.2002 10.5h-30.6992v-124.5h35.5v84.4004c8.39941 11 22.5996 8.89941 27.0996 7.39941zM309.1 129.3v124.5h-35.6992v-124.5h35.6992z
-M309.1 272.2v28.8994l-35.6992 -7.59961v-28.9004zM383.2 126.7c25.3994 0.0996094 48.5996 20.5 48.5996 65.5996c0 41.2998 -23.5 63.7998 -48.3994 63.7998c-13.9004 0 -22.9004 -6.59961 -27.8008 -11.0996l-1.7998 8.7998h-31.2998v-165.8l35.5 7.5l0.0996094 40.2002
-c5.10059 -3.7002 12.7002 -9 25.1006 -9zM543.6 178.2c0.100586 2 0.400391 9.39941 0.400391 12.8994c0 36.4004 -17.5996 65.1006 -51.2998 65.1006c-33.7998 0 -54.2998 -28.7002 -54.2998 -64.9004c0 -42.7998 24.1992 -64.5 58.7998 -64.5
-c17 0 29.7002 3.90039 39.3994 9.2002v28.5996c-9.69922 -4.89941 -20.7998 -7.89941 -34.8994 -7.89941c-13.7998 0 -26 4.89941 -27.6006 21.5h69.5z" />
-    <glyph glyph-name="lastfm" unicode="&#xf202;" horiz-adv-x="512" 
-d="M225.8 80.9004c0 0 -31.7002 -31.1006 -97.8994 -31.1006c-82.2002 0 -127.9 48.1006 -127.9 137.2c0 92.7002 45.7002 147.2 131.8 147.2c117.7 0 129.3 -66.2002 161.3 -163c14 -42.7998 38.7002 -73.9004 97.9004 -73.9004c39.9004 0 61 8.7998 61 30.5
-c0 31.9004 -34.9004 35.1006 -79.7998 45.7002c-48.6006 11.7002 -68 36.9004 -68 76.7998c0 64 51.5996 83.9004 104.399 83.9004c59.8008 0 96.2002 -21.7002 100.9 -74.5l-58.5996 -7c-2.30078 25.2002 -17.5 35.7998 -45.7002 35.7998
-c-25.7998 0 -41.6006 -11.7998 -41.6006 -31.7002c0 -17.5996 7.60059 -28.0996 33.4004 -34c52.2998 -11.5 115 -19.2002 115 -92.0996c0 -58.6006 -49.2998 -80.9004 -122 -80.9004c-101.4 0 -136.6 45.7002 -155.4 102.601
-c-26.0996 81.5996 -34.3994 134.899 -100.899 134.899c-35.7002 0 -72.1006 -25.7998 -72.1006 -97.8994c0 -56.3008 28.7002 -91.5 69.2002 -91.5c45.7002 0 76.2002 34 76.2002 34z" />
-    <glyph glyph-name="lastfm-square" unicode="&#xf203;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM307.8 103.1c45.4004 0 76.2002 13.9004 76.1006 50.6006c0 45.5 -39.1006 50.3994 -71.8008 57.5
-c-16.0996 3.7002 -20.8994 10.2998 -20.8994 21.2998c0 12.5 9.89941 19.7998 26 19.7998c17.5996 0 27.0996 -6.59961 28.5996 -22.3994l36.7002 4.39941c-2.90039 33 -25.5996 46.6006 -63 46.6006c-32.9004 0 -65.2002 -12.4004 -65.2002 -52.4004
-c0 -24.9004 12.1006 -40.7002 42.5 -48c28.1006 -6.59961 49.9004 -8.7002 49.9004 -28.5996c0 -13.6006 -13.2002 -19.1006 -38.1006 -19.1006c-37 0 -52.3994 19.4004 -61.1992 46.2002c-20 60.5 -27.3008 101.9 -100.801 101.9c-53.8994 0 -82.5 -34.1006 -82.5 -92
-c0 -55.7002 28.6006 -85.8008 79.9004 -85.8008c41.4004 0 61.2002 19.4004 61.2002 19.4004l-11.7002 31.9004s-19 -21.3008 -47.5996 -21.3008c-25.3008 0 -43.3008 22 -43.3008 57.2002c0 45.1006 22.7002 61.2002 45.1006 61.2002c41.5 0 46.7002 -33.2998 63 -84.2998
-c11.7002 -35.5 33.7002 -64.1006 97.0996 -64.1006z" />
-    <glyph glyph-name="ioxhost" unicode="&#xf208;" horiz-adv-x="640" 
-d="M616 288c13.2998 0 24 -10.7002 24 -24c0 -13.2002 -10.7002 -24 -24 -24h-52.7002c3.10059 -15.5 4.7002 -31.5996 4.7002 -48c0 -137 -111 -248 -248 -248c-102.9 0 -191.2 62.7002 -228.7 152h-67.2998c-13.2998 0 -24 10.7002 -24 24c0 13.2002 10.7002 24 24 24
-h52.7002c-3.10059 15.5 -4.7002 31.5996 -4.7002 48c0 137 111 248 248 248c102.9 0 191.2 -62.7002 228.7 -152h67.2998zM520 192c0 16.5996 -2 32.5996 -5.7998 48h-298.2c-13.2998 0 -24 10.7002 -24 24c0 13.2002 10.7002 24 24 24h279.5
-c-33.9004 62 -99.7998 104 -175.5 104c-110.5 0 -200 -89.5 -200 -200c0 -16.5996 2 -32.5996 5.7998 -48h298.2c13.2998 0 24 -10.7002 24 -24c0 -13.2002 -10.7002 -24 -24 -24h-279.5c33.9004 -62 99.7998 -104 175.5 -104c110.5 0 200 89.5 200 200zM216 216h208
-c13.2998 0 24 -10.7002 24 -24c0 -13.2002 -10.7002 -24 -24 -24h-208c-13.2998 0 -24 10.7002 -24 24c0 13.2002 10.7002 24 24 24z" />
-    <glyph glyph-name="angellist" unicode="&#xf209;" 
-d="M347.1 232.6c48 -11.6992 54.9004 -50.5996 54.9004 -93.6992c0 -114.301 -73.4004 -202.9 -191.4 -202.9c-96.1992 0 -164.6 76.4004 -164.5 148.6c0 37.1006 14.2002 61.7002 51.1006 71.7002c-3.10059 8.2998 -8 20.7998 -8 29.7002
-c0 23.5 24.8994 52.5996 48.2998 52.5996c6.90039 0 13.7002 -2 20 -4.2998c-12.4004 35.2002 -46.5996 126.7 -46.5996 162c0 28.7998 14.5996 51.7002 45.6992 51.7002c40 0 85.4004 -144 95.1006 -172.5c12.5 31.4004 52.5 163.1 97.0996 163.1
-c28 0 43.7002 -22.2998 43.7002 -48.8994c0 -30.2002 -33.7002 -124.5 -45.4004 -157.101zM311.7 340l-33.1006 -93.7002l34 -6c8.5 23.4004 47.1006 128.9 47.1006 148c0 7.10059 -2.2998 16 -10.9004 16c-16 0 -33.0996 -52 -37.0996 -64.2998zM142.3 399.7
-c0 -29.1006 34.6006 -120 45.5 -148.8c7.7002 4.39941 19.7998 2.69922 35.4004 1.39941l-34.6006 100.3c-31.7998 92.8008 -46.2998 59 -46.2998 47.1006zM140 204c-7.7002 0 -20.2998 -13.4004 -20.4004 -21.0996c0 -20.8008 56 -97.7002 76.9004 -97.7002
-c5.7002 0 10.5996 6.2998 10.5996 11.3994c0 12.8008 -37.7998 107.4 -67.0996 107.4zM324.3 17.7002c55.2998 61.5 49.1006 158.6 31 174.7c-24 21.0996 -106 29.0996 -138.3 29.0996c-17.2998 0 -17.4004 -6.40039 -17.4004 -13.0996
-c0 -43.7002 92.9004 -39.7002 120.601 -39.7002c11.2002 0 15.7998 -9.90039 16.8994 -21.1006c-7.39941 -7.39941 -17.6992 -11.6992 -27.3994 -15.3994c-9.40039 -3.40039 -19.1006 -7.10059 -27.1006 -13.1006c-22 -16 -43.6992 -43.3994 -43.6992 -71.6992
-c0 -17.7002 10.5996 -32.9004 10.5996 -50.3008c0 -0.299805 -2 -6.5 -2 -7.39941c-32.5996 2.2998 -40.5996 34.5996 -41.7002 61.7002c-3.39941 -0.900391 -8 -0.600586 -11.7002 -0.600586c5.10059 -17.7998 -11.8994 -42 -38 -42
-c-37.7998 0 -88 57.2002 -58.2998 86.9004c28.7002 -35.9004 35 -51.4004 51.1006 -51.4004c4 0 11.6992 3.40039 11.6992 8.2998c0 12.8008 -42.8994 73.1006 -54.2998 73.1006c-16.7998 0 -37.7002 -24.9004 -20.5996 -68.2998
-c22.5996 -55.7002 69.5 -88.3008 128.899 -88.3008c43.4004 0 80.6006 16.6006 109.7 48.6006zM225.7 143.7c3.2002 -8.2998 6.59961 -16.6006 9.39941 -25.1006c6.30078 7.10059 12.9004 13.7002 20.3008 19.1006c-10 2 -20 2.89941 -29.7002 6z" />
-    <glyph glyph-name="buysellads" unicode="&#xf20d;" 
-d="M224 297.3l42.9004 -160.7h-85.8008zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM382.7 42.7002l-94.5 298.7h-128.4l-94.5 -298.7h90.7002l111.7 91.5996l24.2002 -91.5996h90.7998z
-" />
-    <glyph glyph-name="connectdevelop" unicode="&#xf20e;" horiz-adv-x="576" 
-d="M550.5 207c6.69629 -1.33887 11.7861 -7.5 11.7881 -14.7324c0 -7.5 -5.3584 -13.6602 -12.3223 -15l-54.9111 -95.3574c0.536133 -1.60742 0.804688 -3.21387 0.804688 -4.82129c0 -7.23145 -5.09082 -13.3926 -12.0547 -14.7314l-51.6963 -90.2686
-c0.535156 -1.33887 0.802734 -2.67773 0.802734 -4.28516c0 -8.30371 -6.69727 -15.2676 -15.2686 -15.2676c-4.28516 0 -8.30371 1.875 -10.9814 4.82129h-107.144c-2.67871 -3.21484 -6.96484 -5.35742 -11.5176 -5.35742s-8.83887 2.14258 -11.5166 5.35645h-106.875
-c-2.67969 -3.21484 -6.69727 -5.35742 -11.5186 -5.35742c-8.30371 0 -15.2676 6.69727 -15.2676 15.2676c0 1.875 0.535156 3.75 1.07031 5.35742l-51.6963 89.7324c-6.96484 1.33887 -12.0547 7.5 -12.0547 14.7314c0 1.875 0.268555 3.21387 0.804688 4.82129
-l-55.1797 95.3574c-6.96484 1.60742 -12.0537 7.76855 -12.0537 15c0 7.5 5.3584 13.6611 12.5898 15l53.3047 92.1436c0 0.536133 -0.268555 1.07227 -0.268555 1.60645c0 6.16113 3.75098 11.251 9.10742 13.6611l55.9824 97.2334
-c-0.536133 1.33887 -1.07129 3.21387 -1.07129 4.82129c0 8.57129 6.96484 15.2676 15.2676 15.2676c4.82227 0 8.83887 -2.14258 11.7861 -5.625h106.071c2.67871 3.48242 6.69629 5.625 11.5176 5.625s8.83887 -2.14258 11.5176 -5.62402h106.606
-c2.94727 3.48242 6.96484 5.625 11.7861 5.625c8.30371 0 15.2676 -6.69727 15.2676 -15.2676c0 -1.60742 -0.535156 -3.21484 -1.07031 -4.82129l55.4463 -95.8936c8.03613 -0.267578 14.7324 -6.96484 14.7324 -15.001c0 -2.67871 -0.803711 -5.08984 -1.875 -7.23145z
-M153.535 -2.73242v75.8037h-43.6602zM153.535 81.1074v50.624l-44.999 -47.4102c0.535156 -1.07227 1.07129 -2.14355 1.33887 -3.21387h43.6602zM153.535 143.518l0.000976562 92.9463l-50.0889 51.9648c-2.41113 -1.60645 -5.08887 -2.41113 -7.76855 -2.67871
-l-51.9648 -90c0.268555 -1.07227 0.268555 -2.14258 0.268555 -3.48242c0 -1.33887 0 -2.67871 -0.535156 -4.01758l55.7129 -96.4287c1.33887 -0.267578 2.67871 -1.07129 4.01758 -1.60742zM153.535 245.84v72.0527l-43.9277 -15.8037
-c0 -0.267578 0.267578 -0.803711 0.267578 -1.07227c0 -2.94531 -0.803711 -5.62402 -2.14258 -7.7666zM153.535 326.465v59.7324l-43.6602 -75.5361zM480.054 287.357l-0.267578 0.267578l-98.0361 -101.518l63.75 -67.2324l35.3584 167.143zM291.75 92.8926
-l-11.25 -11.7852h22.7676zM291.482 104.143l79.2852 82.2324l-83.0352 87.5889l-79.5537 -84.375zM296.839 98.25l16.875 -17.1426h124.02l5.8916 28.125l-67.5 71.25zM410.411 403.607l-117.053 -124.019l83.0342 -87.5889l97.5 101.25
-c-1.33984 2.14258 -2.14258 4.82129 -2.14258 7.7666v0.536133l-57.8574 100.714c-1.33984 0.268555 -2.41016 0.804688 -3.48145 1.34082zM401.304 405.75h-4.28711l-166.339 -60l57.0547 -60.2676zM277.821 405.75h-103.929l50.8936 -53.5713l148.393 53.5713h-75
-c-2.67871 -2.67773 -6.16016 -4.28516 -10.1787 -4.28516s-7.50098 1.60742 -10.1787 4.28516zM161.572 400.125v-70.7148l54.9111 19.8213l-51.1611 53.8398c-0.870117 -0.300781 -1.77832 -0.574219 -2.67969 -0.804688zM161.572 320.839v-83.3037l40.9814 -42.0527
-l79.5537 84.1064l-59.7324 63.2139zM161.572 228.161v-76.0723l36.4277 38.3037zM161.572 140.303v-59.1953h107.678l17.1426 17.6777l-82.7676 85.9814zM168.536 -21.75h1.33887l91.6074 94.8213h-99.9102v-89.7324l1.07031 -1.60645
-c2.41113 -0.804688 4.28613 -1.875 5.89355 -3.48242zM298.447 -21.75h104.194l-91.6064 94.8213h-38.3037l-91.6074 -94.8213h96.4287c2.68066 2.41016 6.42871 4.28516 10.4473 4.28516s7.76758 -1.875 10.4473 -4.28516zM418.447 -9.96387l17.4121 83.0361h-114.376
-l89.1953 -91.875c1.07227 0.536133 2.14355 1.07031 3.48242 1.33887zM431.303 12.2676l34.8223 60.8037h-21.9639zM466.125 81.1074c0.267578 1.07129 0.803711 2.14258 1.33887 2.94531l-17.1426 18.2139l-4.55371 -21.1592h20.3574zM532.286 188.518
-c-0.268555 1.33984 -0.536133 2.41113 -0.536133 3.75c0 1.60742 0.536133 2.94629 0.802734 4.28516l-45.8027 79.2861l-34.5537 -163.928l20.625 -21.9639c1.33887 0.802734 2.67871 1.33887 4.01758 1.87402z" />
-    <glyph glyph-name="dashcube" unicode="&#xf210;" 
-d="M326.6 344l102.2 104v-427c0 -50.5 -40.0996 -85 -91.2002 -85h-227.199c-51.1006 0 -91.2002 34.5 -91.2002 85v229.5c0 50.2002 40.0996 93.5 91.2002 93.5h216.199zM153.9 31.5v-0.0996094h223.8l-51.1006 52.2998v123.5c0 17.7002 -14.2998 32.5 -32 32.5h-140.699
-c-17.7002 0 -32.4004 -14.7998 -32.4004 -32.5v-142.9c0 -17.7002 14.7002 -32.7998 32.4004 -32.7998z" />
-    <glyph glyph-name="forumbee" unicode="&#xf211;" 
-d="M5.7998 138.3c-3.7998 17 -5.7998 34.2002 -5.7998 51.4004c0 123.3 99.7998 223.3 223.1 223.3c16.6006 0 33.3008 -2 49.3008 -5.5c-123.4 -47 -220.5 -145.5 -266.601 -269.2zM398.7 327.5c-151.101 -44 -269.2 -164.4 -312.3 -315.7
-c-17.2002 13.4004 -32.7002 30.9004 -45.2002 49c43.3994 149.9 160.1 267.7 309.7 312c18.0996 -12.5996 34.0996 -27.7998 47.7998 -45.2998zM414.5 74.7998c13.0996 -35.2998 24.2002 -73.2998 33.5 -109.8c-36.0996 9.2998 -72 20.5 -107 33.5996
-c-25.7002 -16 -54.5996 -26.8994 -84.5996 -31.2998c42.5996 79.7002 108.199 147.4 187.6 190.3c-4.09961 -29.0996 -14.2998 -57.6992 -29.5 -82.7998zM444.2 220.3c-113.7 -46.7002 -204.2 -139.399 -250.5 -253.5c-19.6006 2.7002 -38.5 7.60059 -56.6006 15.2002
-c44.9004 138.5 153.4 249.3 291.301 295.1c7.89941 -18.0996 13.1992 -37.2998 15.7998 -56.7998z" />
-    <glyph glyph-name="leanpub" unicode="&#xf212;" horiz-adv-x="576" 
-d="M386.539 336.515l15.0957 -248.955l-10.9785 0.275391c-36.2324 0.824219 -71.6406 -8.7832 -102.657 -27.9971c-31.0156 19.2139 -66.4238 27.9971 -102.657 27.9971c-45.5635 0 -82.0693 -10.7051 -123.516 -27.7227l31.291 258.288
-c28.5459 11.8027 61.4834 18.1143 92.2256 18.1143c41.1729 0 73.8359 -13.1748 102.657 -42.5439c27.7227 28.2715 59.0127 41.7217 98.5391 42.5439zM569.07 0c-25.5264 0 -47.4854 5.21484 -70.542 15.6445c-34.3105 15.6455 -69.9932 24.9785 -107.871 24.9785
-c-38.9775 0 -74.9346 -12.9014 -102.657 -40.623c-27.7227 27.7227 -63.6797 40.623 -102.657 40.623c-37.8779 0 -73.5605 -9.33301 -107.871 -24.9785c-22.2324 -9.88086 -44.7402 -15.6445 -69.1689 -15.6445h-1.37305l42.5449 349.141
-c39.251 22.2334 87.0117 34.8594 132.301 34.8594c37.0547 0 75.209 -7.68457 106.225 -29.0947c31.0156 21.4102 69.1699 29.0947 106.225 29.0947c45.2891 0 93.0498 -12.626 132.301 -34.8594zM525.702 44.7412l-34.0361 280.246
-c-30.7422 13.999 -67.248 21.4102 -101.009 21.4102c-38.4287 0 -74.3848 -12.0771 -102.657 -38.7021c-28.2725 26.625 -64.2275 38.7021 -102.657 38.7021c-33.7607 0 -70.2666 -7.41113 -101.009 -21.4102l-34.0361 -280.246
-c47.2109 19.4863 82.8945 33.4854 135.045 33.4854c37.6045 0 70.8174 -9.60547 102.657 -29.6436c31.8398 20.0381 65.0518 29.6436 102.657 29.6436c52.1504 0 87.834 -13.999 135.045 -33.4854z" />
-    <glyph glyph-name="sellsy" unicode="&#xf213;" horiz-adv-x="640" 
-d="M539.71 210.692c55.1572 -13.4834 94.0742 -63.124 94.0732 -119.509c0 -68.0264 -55.4639 -123.184 -123.185 -123.184h-381.197c-67.7217 0 -123.186 55.1572 -123.185 123.185c0 47.4961 27.8848 91.0098 70.7852 111.234
-c-2.14453 7.35449 -3.06543 15.0146 -3.06543 22.3691c0 46.2705 37.6914 83.9609 83.9629 83.9609c20.2227 0 39.835 -7.35449 55.1562 -20.5303c18.3867 74.7695 85.8008 127.781 163.021 127.781c92.542 0 167.924 -75.3818 167.924 -167.924
-c0 -12.5635 -1.22559 -25.127 -4.29004 -37.3838zM199.88 46.4463v110.928c0 8.27344 -7.04688 15.3213 -15.3213 15.3213h-30.9482c-8.27344 0 -15.3213 -7.04785 -15.3213 -15.3213v-110.928c0 -8.27344 7.04688 -15.3213 15.3213 -15.3213h30.9482
-c8.27344 0 15.3213 7.04688 15.3213 15.3213zM289.357 46.4463v131.458c0 8.27246 -7.04883 15.3203 -15.3223 15.3203h-30.9492c-8.27246 0 -15.3213 -7.04688 -15.3213 -15.3203v-131.458c0 -8.27344 7.04688 -15.3213 15.3213 -15.3213h30.9492
-c8.27344 0 15.3223 7.04688 15.3223 15.3213zM378.834 46.4463v162.714c0 8.27246 -7.04688 15.3213 -15.3213 15.3213h-30.9482c-8.27441 0 -15.3223 -7.04785 -15.3223 -15.3213v-162.714c0 -8.27344 7.04785 -15.3213 15.3223 -15.3213h30.9482
-c8.27441 0 15.3213 7.04688 15.3213 15.3213zM465.861 46.4463v224.612c0 8.58008 -7.04785 15.6279 -15.3223 15.6279h-28.4971c-8.27441 0 -15.3213 -7.04883 -15.3213 -15.6279v-224.612c0 -8.27344 7.04688 -15.3213 15.3213 -15.3213h28.4971
-c8.27441 0 15.3223 7.04688 15.3223 15.3213z" />
-    <glyph glyph-name="shirtsinbulk" unicode="&#xf214;" 
-d="M100 37.7002l4.40039 9.89941l30.5996 -13.3994l-4.40039 -9.90039zM139.4 20.2002l4.39941 9.89941l30.6006 -13.3994l-4.40039 -9.90039zM311.5 34.2002l30.5996 13.3994l4.40039 -9.89941l-30.5996 -13.4004zM179.1 3l4.40039 9.59961l30.2998 -13.3994
-l-4.39941 -9.90039zM60.4004 55.2002l4.39941 9.89941l30.6006 -13.6992l-4.40039 -9.60059zM271.8 16.7002l30.6006 13.3994l4.39941 -9.89941l-30.5996 -13.4004zM232.5 -0.799805l30.5996 13.3994l4.40039 -9.59961l-30.5996 -13.7002zM350.9 51.4004l30.5996 13.6992
-l4.40039 -9.89941l-30.6006 -13.4004zM170 401.4v-10.5h-33.5v10.5h33.5zM122.8 401.4l-0.0996094 -10.5h-33.5v10.5h33.5996zM75.5 401.4l0.0996094 -10.5h-33.2998v10.5h33.2002zM217 401.4v-10.5h-33.2002v10.5h33.2002zM311.5 401.4v-10.5h-33.5v10.5h33.5zM358.8 401.4
-v-10.5h-33.5v10.5h33.5zM264.2 401.4v-10.5h-33.2002v10.5h33.2002zM405.7 401.4v-10.5h-33.2998v10.5h33.2998zM52.7998 96.9004v-33.5h-10.7998v33.5h10.7998zM122.8 312.8l-0.0996094 -10.5h-33.5v10.5h33.5996zM52.7998 302.2v-23h-10.7998v33.5h33.5996v-10.5h-22.7998
-zM221.7 73.5996c-50.2002 0 -91.2998 40.8008 -91.2998 91.3008c0 50.1992 41.0996 91.2998 91.2998 91.2998c50.5 0 91.2998 -41.1006 91.2998 -91.2998c0 -50.5 -40.7998 -91.3008 -91.2998 -91.3008zM173.5 184.7c0 -44.2998 77.5996 -11.9004 77.5996 -38
-c0 -13.1006 -24 -14.2998 -32.6992 -14.2998c-12.3008 0 -29.8008 2.69922 -35.9004 14.8994h-0.900391l-9 -18.3994c14.8008 -9.30078 29.1006 -12.2002 47.2002 -12.2002c19.5 0 51 5.7998 51 31.2002c0 48.0996 -78.5 16.2998 -78.5 37.8994
-c0 13.1006 20.7998 14.9004 29.7998 14.9004c10.8008 0 29.2002 -3.2002 35.6006 -13.1006h0.899414l8.80078 16.9004c-15.1006 6.2002 -27.4004 12 -44.3008 12c-20.0996 0 -49.5996 -6.40039 -49.5996 -31.7998zM52.7998 269.6v-33.5996h-10.7998v33.5996h10.7998z
-M395.2 63.4004v33.5h10.7998v-33.5h-10.7998zM52.7998 140.1v-33.5h-10.7998v33.5h10.7998zM0 444.3h448v-406l-226.3 -98.5996l-221.7 98.5996v406zM418.8 57.2002h0.100586v270.1h-389.7v-270.1l192.8 -85.7002zM418.8 356.5h0.100586v58.5996h-389.7v-58.5996h389.6z
-M52.7998 226.4v-33.5h-10.7998v33.5h10.7998zM52.7998 183.2v-33.5h-10.7998v33.5h10.7998zM170 312.8v-10.5h-33.5v10.5h33.5zM395.2 149.7v33.5h10.7998v-33.5h-10.7998zM395.2 192.9v33.5h10.7998v-33.5h-10.7998zM217 312.8v-10.5h-33.2002v10.5h33.2002zM395.2 236
-v33.5h10.7998v-33.5h-10.7998zM395.2 106.5v33.5h10.7998v-33.5h-10.7998zM264.2 312.8v-10.5h-33.2002v10.5h33.2002zM311.5 312.8v-10.5h-33.5v10.5h33.5zM395.2 279.2l0.0996094 23h-22.7998v10.5h33.5v-33.5h-10.7998zM358.8 312.8v-10.5h-33.5v10.5h33.5z" />
-    <glyph glyph-name="simplybuilt" unicode="&#xf215;" horiz-adv-x="512" 
-d="M481.2 384c14.7002 0 26.5 -11.7998 26.7002 -26.2998v-331.4c0 -14.5 -11.8008 -26.2998 -26.6006 -26.2998h-450.399c-14.8008 0 -26.6006 11.7998 -26.6006 26.2998v331.4c0 14.5 11.7998 26.2998 26.4004 26.2998h106c14.5996 0 26.5996 -11.7998 26.5996 -26.2998
-v-39.6006h185.3v39.6006c0 14.5 12.1006 26.2998 26.6006 26.2998h106zM149.8 92.2002c36.9004 0 66.6006 29.7002 66.6006 66.3994c0 36.9004 -29.7002 66.6006 -66.6006 66.6006c-36.7002 0 -66.3994 -29.7002 -66.3994 -66.6006
-c0 -36.6992 29.7998 -66.3994 66.3994 -66.3994zM362.2 92.2002c36.5996 0 66.3994 29.7002 66.3994 66.5996c0 36.7002 -29.7998 66.4004 -66.3994 66.4004c-36.9004 0 -66.6006 -29.7998 -66.6006 -66.4004c0 -36.8994 29.7002 -66.5996 66.6006 -66.5996z" />
-    <glyph glyph-name="skyatlas" unicode="&#xf216;" horiz-adv-x="640" 
-d="M640 118.7c0 -65.9004 -52.5 -114.4 -117.5 -114.4c-165.9 0 -196.6 249.7 -359.7 249.7c-146.899 0 -147.1 -212.2 5.60059 -212.2c42.5 0 90.8994 17.7998 125.3 42.5c5.59961 4.10059 16.8994 16.2998 22.7998 16.2998s10.9004 -5 10.9004 -10.8994
-c0 -7.7998 -13.1006 -19.1006 -18.7002 -24.1006c-40.9004 -35.5996 -100.3 -61.1992 -154.7 -61.1992c-83.4004 -0.100586 -154 59 -154 144.899c0 85.9004 67.5 149.101 152.8 149.101c185.3 0 222.5 -245.9 361.9 -245.9c99.8994 0 94.7998 139.7 3.39941 139.7
-c-17.5 0 -35 -11.6006 -46.8994 -11.6006c-8.40039 0 -15.9004 7.2002 -15.9004 15.6006c0 11.5996 5.2998 23.7002 5.2998 36.2998c0 66.5996 -50.8994 114.7 -116.899 114.7c-53.1006 0 -80 -36.9004 -88.7998 -36.9004c-6.2002 0 -11.2002 5 -11.2002 11.2002
-c0 5.59961 4.09961 10.2998 7.7998 14.4004c25.2998 28.7998 64.7002 43.6992 102.8 43.6992c79.4004 0 139.101 -58.3994 139.101 -137.8c0 -6.89941 -0.300781 -13.7002 -1.2002 -20.5996c11.8994 3.09961 24.0996 4.7002 35.8994 4.7002
-c60.7002 0 111.9 -45.3008 111.9 -107.2z" />
-    <glyph glyph-name="pinterest-p" unicode="&#xf231;" horiz-adv-x="384" 
-d="M204 441.5c94.2002 0 180 -64.7998 180 -164.1c0 -93.3008 -47.7002 -196.801 -153.9 -196.801c-25.1992 0 -57 12.6006 -69.2998 36c-22.7998 -90.2998 -21 -103.8 -71.3994 -172.8c-5.2002 -1.89941 -3.5 -2.2998 -6.90039 1.5c-1.7998 18.9004 -4.5 37.5 -4.5 56.4004
-c0 61.2002 28.2002 149.7 42 209.1c-7.5 15.2998 -9.59961 33.9004 -9.59961 50.7002c0 80 93.8994 92 93.8994 25.7998c0 -39 -26.3994 -75.5996 -26.3994 -113.399c0 -25.8008 21.2998 -43.8008 46.1992 -43.8008c69 0 90.3008 99.6006 90.3008 152.7
-c0 71.1006 -50.4004 109.8 -118.5 109.8c-79.2002 0 -140.4 -57 -140.4 -137.399c0 -38.7002 23.7002 -58.5 23.7002 -67.7998c0 -7.80078 -5.7002 -35.4004 -15.6006 -35.4004c-24 0 -63.5996 40 -63.5996 110.4c0 110.699 101.4 179.1 204 179.1z" />
-    <glyph glyph-name="whatsapp" unicode="&#xf232;" 
-d="M380.9 350.9c41.8994 -42 67.0996 -97.7002 67.0996 -157c0 -122.4 -101.8 -222 -224.1 -222h-0.100586c-37.2002 0 -73.7002 9.2998 -106.1 27l-117.7 -30.9004l31.5 115c-19.4004 33.7002 -29.5996 71.9004 -29.5996 111c0 122.4 99.5996 222 222 222
-c59.2998 0 115.1 -23.0996 157 -65.0996zM223.9 9.2998c101.699 0 186.6 82.7998 186.6 184.601c0.0996094 49.2998 -21.2998 95.5996 -56.0996 130.5c-34.8008 34.8994 -81.1006 54.0996 -130.4 54.0996c-101.8 0 -184.6 -82.7998 -184.6 -184.5
-c0 -34.9004 9.69922 -68.7998 28.1992 -98.2002l4.40039 -7l-18.5996 -68.0996l69.7998 18.2998l6.7002 -4c28.2998 -16.7998 60.7998 -25.7002 94 -25.7002zM325.1 147.5c5.5 -2.7002 9.2002 -4.09961 10.5 -6.59961c1.40039 -2.30078 1.40039 -13.4004 -3.19922 -26.4004
-c-4.60059 -13 -26.7002 -24.7998 -37.4004 -26.4004c-17.5996 -2.59961 -31.4004 -1.2998 -66.5996 13.9004c-55.7002 24.0996 -92 80.0996 -94.8008 83.7998c-2.69922 3.7002 -22.5996 30.1006 -22.5996 57.4004s14.2998 40.7002 19.4004 46.2998
-c5.09961 5.5 11.0996 6.90039 14.7998 6.90039s7.39941 0 10.5996 -0.200195c3.40039 -0.200195 8 1.2998 12.5 -9.5c4.60059 -11.1006 15.7002 -38.4004 17.1006 -41.2002c1.39941 -2.7998 2.2998 -6 0.5 -9.7002c-10.6006 -21.2002 -22 -20.5 -16.3008 -30.2998
-c21.5 -36.9004 42.9004 -49.7002 75.5 -66c5.5 -2.7998 8.80078 -2.2998 12 1.40039c3.30078 3.7998 13.9004 16.1992 17.6006 21.7998c3.7002 5.59961 7.39941 4.7002 12.5 2.7998c5.09961 -1.7998 32.3994 -15.2002 37.8994 -18z" />
-    <glyph glyph-name="viacoin" unicode="&#xf237;" horiz-adv-x="384" 
-d="M384 416l-48 -112h48v-48h-68.5l-13.7998 -32h82.2998v-48h-102.8l-89.2002 -208l-89.2002 208h-102.8v48h82.2998l-13.7998 32h-68.5v48h48l-48 112h64l80.7998 -192h94.5l80.7002 192h64zM192 112l27 64h-54z" />
-    <glyph glyph-name="medium" unicode="&#xf23a;" 
-d="M0 416h448v-448h-448v448zM372.2 309.9v5h-83.2002l-59.2998 -147.9l-67.4004 148h-87.2998v-5.09961l28.0996 -33.9004c2.80078 -2.5 4.2002 -6.09961 3.80078 -9.7998v-133c0.799805 -4.7998 -0.700195 -9.7002 -4.10059 -13.2002l-31.5996 -38.2998v-5.10059h89.7998
-v5.10059l-31.5996 38.2998c-3.40039 3.5 -5.10059 8.40039 -4.40039 13.2002v115l78.7002 -171.601h9.09961l67.6006 171.601v-136.9c0 -3.59961 0 -4.2998 -2.40039 -6.7002l-24.2998 -23.5996v-4.90039h118v5.10059l-23.5 23
-c-2.10059 1.5 -3.10059 4.09961 -2.7002 6.7002v169.3c-0.400391 2.5 0.599609 5.09961 2.7002 6.7002z" />
-    <glyph glyph-name="y-combinator" unicode="&#xf23b;" 
-d="M448 416v-448h-448v448h448zM236 160.5l77.5 145.5h-32.7002l-45.7998 -91c-4.7002 -9.2998 -9 -18.2998 -12.7998 -26.7998l-12.2002 26.7998l-45.2002 91h-35l76.7002 -143.8v-94.5h29.5v92.7998z" />
-    <glyph glyph-name="optin-monster" unicode="&#xf23c;" horiz-adv-x="576" 
-d="M572.6 26.5996c1 -3.5 1.90039 -7 1.7002 -10.6992c0.799805 -31.6006 -44.2998 -64 -73.5 -65.1006c-17.2998 -0.799805 -34.5996 8.40039 -42.7002 23.5c-113.5 -4.09961 -227 -4.89941 -340.199 0c-8.40039 -15.0996 -25.7002 -24 -43 -23.5
-c-28.9004 1.10059 -74 33.5 -73.5 65.1006c0.299805 3.7998 0.799805 7.2998 1.89941 10.7998c-5.59961 9.39941 -4.7998 15.2998 5.40039 11.5996c3.2998 5.2002 7 9.5 11.0996 13.7998c-2.5 10.9004 1.2998 14.1006 11.1006 9.2002c4.5 3.2998 10 6.5 15.8994 9.2002
-c0 15.7998 11.7998 11.2002 17.2998 5.7002c12.5 1.7998 20.2002 -0.700195 26.8008 -5.7002v19.7002c-12.9004 0 -40.6006 11.3994 -45.9004 36.2002c-5 20.7998 2.59961 38.0996 25.0996 47.5996c0.800781 5.90039 8.10059 14 14.9004 15.9004
-c7.59961 1.89941 12.5 -4.60059 14.0996 -10.3008c7.40039 0 17.8008 -1.5 21.1006 -8.09961c5.39941 0.5 11.0996 1.40039 16.5 1.90039c-2.40039 1.89941 -5.10059 3.5 -8.10059 4.59961c-5.09961 8.90039 -13.7998 11.0996 -24.5996 11.5996
-c0 0.800781 0 1.60059 0.299805 2.7002c-19.7998 0.5 -44.0996 5.60059 -54.8994 17.7998c-21.3008 23.6006 -15.9004 83.6006 12.1992 103.5c8.40039 5.7002 21.6006 0.800781 22.7002 -9.69922c2.40039 -20.6006 0.400391 -26.8008 26.2002 -25.9004
-c8.09961 7.7998 16.7998 14.5996 26.5 20c-14.9004 1.2998 -28.9004 -1.59961 -43.7998 -3.7998c12.7002 12.5 23.8994 25.3994 56.7002 42.3994c23.5 11.9004 50 20.8008 76.1992 23.2002c-18.5996 7.90039 -40 11.9004 -59.6992 16.5
-c76.5 16.2002 174.6 22.1006 244.199 -37.5996c18.1006 -15.4004 32.4004 -36.2002 42.7002 -60c39.7998 -4.90039 36.4004 5.5 38.6006 25.0996c1.09961 10.2998 14.2998 15.4004 22.6992 9.5c14.9004 -10.5 22.2002 -30.7998 24.6006 -48.0996
-c2.2002 -17.7998 0.299805 -41.2998 -12.4004 -55.1006c-10.7998 -12.1992 -34.2998 -17.5996 -53.7998 -18.0996v-2.7998c-11.0996 -0.200195 -20.2998 -2.40039 -25.7002 -11.6006c-3 -1.09961 -5.7002 -2.69922 -8.39941 -4.59961
-c5.69922 -0.5 11.3994 -1.40039 16.7998 -1.90039c1.89941 5.60059 12.5996 8.40039 21.0996 8.40039c1.7002 5.40039 6.7998 11.9004 14.1006 10.2998c7.2998 -1.59961 14.0996 -10 14.8994 -15.8994c10.7998 -4.40039 22.1006 -12.2002 25.1006 -25.7002
-c1.89941 -8.10059 1.69922 -15.1006 0.299805 -21.9004c-5.7002 -25.2002 -33.2998 -36.2002 -45.9004 -36.2002c0 -6.69922 0 -13.1992 -0.299805 -19.6992c8.09961 6 16.4004 7.19922 26.7998 5.69922c6 5.90039 17.6006 9.40039 17.6006 -5.69922
-c5.59961 -2.7002 11.2998 -6 15.8994 -9.2002c10.1006 5 13.7002 0.5 10.7998 -9.2002c4.10059 -4.2998 8.10059 -8.90039 11.1006 -13.7998c10.0996 3.59961 11 -2.10059 5.39941 -11.6006zM498.8 280.6c17.2998 -6.69922 26.2002 -22.0996 30.2998 -35.6992
-c1.10059 10.5996 -2.69922 39.5 -13.7998 51.0996c-7.2998 7.2998 -14.0996 5.09961 -14.0996 -0.799805c0 -6.2002 -1.2998 -11.6006 -2.40039 -14.6006zM494.2 273.9c-3.2002 -3.30078 -9.2002 -4.90039 -14.1006 -5.7002c13 -15.7002 17 -41.7002 12.7002 -63
-c10.7998 2.2002 20.5 6.2998 26.2002 12.2002c1.90039 2.19922 3.7998 4.89941 4.90039 7.59961c-1.10059 21.2998 -10.2002 42.7002 -29.7002 48.9004zM470.1 267.1c-3.69922 0 -8.09961 0 -11.7998 0.300781c7.5 -20.6006 12.4004 -42.7002 14.2998 -64.6006
-c3.5 0 7.5 0.299805 11.6006 0.799805c5.89941 24.3008 -0.299805 51.6006 -14.1006 63.5zM47.5 245c4.09961 13.5 13 28.9004 30.2998 35.7002c-1 3 -2.39941 8.39941 -2.39941 14.5996c0 5.90039 -7.10059 8.10059 -14.1006 0.799805
-c-11.3994 -11.5996 -14.8994 -40.5996 -13.7998 -51.0996zM57.2002 217.4c5.7002 -6.2002 15.3994 -10 26.2002 -12.2002c-4.30078 21.3994 -0.300781 47.2998 12.6992 63c-4.89941 0.799805 -10.8994 2.5 -14.0996 5.7002
-c-19.4004 -6.2002 -28.2998 -27.6006 -29.7002 -48.9004c1.40039 -2.7002 3 -5.40039 4.90039 -7.59961zM105.1 202.8c2.40039 22.2002 9.10059 43.7998 19.8008 63.5c-5.2002 -1.09961 -10 -3 -14.9004 -4.89941l-12.2002 -5.10059v0.299805
-c-7.2998 -14.0996 -10 -34.3994 -5.39941 -53c4.59961 -0.5 8.59961 -0.799805 12.6992 -0.799805zM289.1 365.5c-41.8994 0 -76.1992 -34.0996 -76.1992 -75.9004c0 -42.1992 34.2998 -76.1992 76.1992 -76.1992c41.9004 0 76.2002 34 76.2002 76.1992
-c0 41.9004 -34.2998 75.9004 -76.2002 75.9004zM404.7 191.2c-12.9004 0.799805 -26.2002 0.799805 -39.5 1.09961c10 -50.5996 3.2998 -64.7002 16.5 -58.0996c16 8.09961 22.7002 39.2002 23 57zM350.7 192.8c-18.9004 0.299805 -38.1006 0.299805 -57 0v0.299805
-c-0.299805 -5.19922 0.200195 -38.0996 4.2998 -41.0996c11.0996 -5.40039 39.5 -4.59961 51.0996 -1.09961c5.40039 1.59961 2.40039 37 1.60059 41.8994zM278.3 139c4.60059 2.5 2.40039 45.4004 1.2998 53.7002v0.299805
-c-19.3994 -0.299805 -38.5996 -0.299805 -57.7998 -0.799805c-1.89941 -9.2002 -4.59961 -48.9004 1.90039 -51.6006c13 -5.69922 41.5996 -5.09961 54.5996 -1.59961zM171.8 190.1c-5.39941 -19.6992 0.299805 -45.0996 22.2002 -54.8994
-c5.40039 -2.5 8.59961 -2.5 9.7002 4.2998c1.89941 8.7002 2.5 36.7998 4.89941 52.2002c-12.1992 -0.200195 -24.5996 -0.799805 -36.7998 -1.60059zM136.4 158.8c2.39941 -3.7002 1.59961 -9.09961 -8 -12.5c43.7998 -47 92.6992 -85.7002 155.899 -106.5
-c67.5 19.2002 115.601 60 163.2 107c-11.0996 4.2998 -7.7002 10.2998 -7.2998 11.6006c-8.90039 0.799805 -17.9004 1.89941 -26.5 2.69922c-9.5 -33 -36 -52.8994 -46.7998 -31.5996c-2.7002 5.2002 -3.5 11.7002 -4.60059 16.7998
-c-3.7998 -8.39941 -13.2998 -8.09961 -24.5996 -8.89941c-13.2002 -1.10059 -31.6006 -1.30078 -44 3c-3 -12.9004 -11.1006 -12.9004 -26.7998 -14.3008c-14.1006 -1.39941 -48.7002 -4.09961 -54.9004 10.8008c-1.09961 -28.7002 -35.0996 -10 -45.0996 7
-c-3.2002 5.69922 -5.40039 11.3994 -7 17.5996c-7.80078 -0.799805 -15.7002 -1.59961 -23.5 -2.7002zM114.8 -13.7002c0.5 2.5 0.799805 5.2002 0.799805 8.2002c-5.69922 23.2002 -18.5996 49.7002 -33.5 54c-22.3994 6.7002 -68.8994 -23.5 -66.1992 -54.5996
-c12.6992 -19.5 40 -35.7002 59.1992 -36.5c17.8008 -0.800781 35.9004 11.0996 39.7002 28.8994zM106.1 52.2998c9 -16 15.5 -33.2998 16.7002 -51.8994c33.5 19.3994 69.1006 35.6992 105.9 47c-38.7002 20.5 -68.1006 47.7998 -97.2998 77
-c-2.10059 -1.30078 -5.10059 -2.40039 -7.80078 -3.5c-1.59961 -4.90039 8.7002 -5.30078 5.40039 -12.4004c-2.09961 -4.09961 -8.59961 -7.59961 -15.0996 -9.2002c-2.10059 -2.7002 -5.10059 -4.89941 -7.80078 -6.5h-0.299805
-c-0.200195 -13.5 -0.200195 -27 0.299805 -40.5zM443.7 -12.2998c-36.7998 21.2998 -74.1006 41.2998 -115.601 53c-13.7998 -6.2002 -27.8994 -11.2998 -42.1992 -15.4004c-2.10059 -0.799805 -2.10059 -0.799805 -4.30078 0
-c-11.8994 3.7002 -23.2998 8.10059 -34.8994 13.2002c-40.2002 -11.5996 -77.2998 -29.2002 -112.4 -50.7998h-0.299805v-0.299805c0.299805 0 0.299805 0 0.299805 0.299805c103.2 -4.10059 206.4 -3.5 309.4 0zM454.2 0.0996094c1 14.7002 7.2002 35.8008 16.5 51.7002
-l-0.299805 -0.299805c0.5 13.7002 0.799805 27.5 0.799805 41.2998c-3 1.7002 -5.7002 4.10059 -8.10059 6.7998c-6.5 1.30078 -12.8994 5.10059 -15.0996 8.90039c-1.90039 4.09961 1.2998 7.59961 5.90039 10.2998c-0.200195 0.5 -0.5 1.60059 -0.5 2.40039
-c-3 0.799805 -5.40039 1.7998 -7.60059 3.2002c-31.5996 -29.4004 -65.3994 -56.7002 -103.5 -76.7002c38.9004 -11.7002 76 -28.1006 111.9 -47.6006zM560.1 -6.09961c3 31.0996 -43.5 61.3994 -66.1992 54.5c-14.6006 -4.30078 -27.8008 -30.8008 -33.5 -54
-c0 -23.8008 21.1992 -37.9004 40.5 -37c19.1992 0.799805 46.5 17 59.1992 36.5zM372.9 372.8c-35.7002 39.2002 -81.4004 47.7998 -126 23.5c25.1992 56.2002 122.199 48.6006 126 -23.5zM74.7998 40.9004c14.9004 1.89941 24.6006 -19.2002 18.6006 -30.8008
-c-4.80078 -9.69922 -23.7002 -24.0996 -35.9004 -27.2998c-16.5 -4.59961 -32.2002 3.2998 -32.2002 14.9004c0 17.7998 33.7998 41.5996 49.5 43.2002zM290.7 217.1c-30.9004 0 -57.6006 25.7002 -50.2998 59.8008c13.1992 -20.7002 46.5 -12 46.5 11.2998
-c0 10 -7 18.5996 -16.5 21.5996c31.6992 13.7998 72.1992 -8.2002 72.1992 -44.2998c0 -26.7998 -23.2998 -48.4004 -51.8994 -48.4004zM68 -26.0996c-0.5 8.39941 20.2998 23.5 29.2002 25.0996c8.59961 1.59961 12.7002 -11.4004 9.7002 -18.4004
-c-2.7002 -5.69922 -10.5 -13.5 -17.3008 -16.1992c-9.39941 -3.2002 -21.0996 3 -21.5996 9.5zM501.2 40.9004c15.7002 -1.60059 49.5 -25.4004 49.5 -43.2002c0 -11.7002 -15.7002 -19.5 -32.2002 -14.9004c-12.0996 3.2002 -31.2998 17.6006 -36.2002 27.2998
-c-5.7002 11.6006 4 32.7002 18.9004 30.8008zM478.8 -1c8.90039 -1.59961 30 -16.7002 29.1006 -25.0996c-0.200195 -6.5 -12.1006 -12.7002 -21.3008 -9.5c-7 2.69922 -14.8994 10.5 -17.2998 16.1992c-2.89941 7.10059 1.10059 20 9.5 18.4004z" />
-    <glyph glyph-name="opencart" unicode="&#xf23d;" horiz-adv-x="640" 
-d="M423.3 7.2998c0 -25.2998 -20.2998 -45.5996 -45.5996 -45.5996s-45.7998 20.2998 -45.7998 45.5996s20.5996 45.7998 45.7998 45.7998c25.3994 0 45.5996 -20.5 45.5996 -45.7998zM169.4 53.0996c25.2998 0 45.7998 -20.5 45.7998 -45.7998
-s-20.5 -45.5996 -45.7998 -45.5996c-25.3008 0 -45.6006 20.3994 -45.6006 45.5996s20.2998 45.7998 45.6006 45.7998zM461.1 323.1c302.2 0 169.5 -67.1992 -17.1992 -233.899c59.1992 102.8 262.5 193.899 -70.8008 188.899c-319.8 -4.69922 -338.699 92.5 -373.1 144.2
-c81.9004 -86.3994 158.9 -99.2002 461.1 -99.2002z" />
-    <glyph glyph-name="expeditedssl" unicode="&#xf23e;" horiz-adv-x="496" 
-d="M248 404.6c117.4 0 212.6 -95.1992 212.6 -212.6s-95.1992 -212.6 -212.6 -212.6s-212.6 95.1992 -212.6 212.6s95.1992 212.6 212.6 212.6zM150.6 271.7h-0.199219v-26.6006c0 -5 3.89941 -8.89941 8.89941 -8.89941h17.7002c5 0 8.90039 3.89941 8.90039 8.89941
-v26.6006c0 82.0996 124 82.0996 124 0v-26.6006c0 -5 3.89941 -8.89941 8.89941 -8.89941h17.7002c5 0 8.90039 3.89941 8.90039 8.89941v26.6006c0 53.7002 -43.7002 97.3994 -97.4004 97.3994s-97.4004 -43.6992 -97.4004 -97.3994zM389.7 68v141.7
-c0 9.7002 -8 17.7002 -17.7002 17.7002h-248c-9.7002 0 -17.7002 -8 -17.7002 -17.7002v-141.7c0 -9.7002 8 -17.7002 17.7002 -17.7002h248c9.7002 0 17.7002 8 17.7002 17.7002zM141.7 205.3v-132.899c0 -2.5 -1.90039 -4.40039 -4.40039 -4.40039h-8.89941
-c-2.5 0 -4.40039 1.90039 -4.40039 4.40039v132.899c0 2.5 1.90039 4.40039 4.40039 4.40039h8.89941c2.5 0 4.40039 -1.90039 4.40039 -4.40039zM283.4 156.6c0 -13 -7.2002 -24.3994 -17.7002 -30.3994v-31.6006c0 -5 -3.90039 -8.89941 -8.90039 -8.89941h-17.7002
-c-5 0 -8.89941 3.89941 -8.89941 8.89941v31.6006c-10.5 6.09961 -17.7002 17.3994 -17.7002 30.3994c0 19.7002 15.7998 35.4004 35.4004 35.4004c19.5996 0 35.5 -15.7998 35.5 -35.4004zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248
-s111 248 248 248zM248 -38.2998c127 0 230.3 103.3 230.3 230.3s-103.3 230.3 -230.3 230.3s-230.3 -103.3 -230.3 -230.3s103.3 -230.3 230.3 -230.3z" />
-    <glyph glyph-name="cc-jcb" unicode="&#xf24b;" horiz-adv-x="576" 
-d="M431.5 203.7v32.2998c41.2002 0 38.5 -0.200195 38.5 -0.200195c7.2998 -1.2998 13.2998 -7.2998 13.2998 -16c0 -8.7998 -6 -14.5 -13.2998 -15.7998c-1.2002 -0.400391 -3.2998 -0.299805 -38.5 -0.299805zM474.3 183.5c7.5 -1.5 13.5 -8.2998 13.5 -17
-c0 -9 -6 -15.5 -13.5 -17c-2.7998 -0.700195 -3.2002 -0.5 -42.7998 -0.5v35c39.5 0 40 0.200195 42.7998 -0.5zM576 368v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48zM182 255.7h-57
-c0 -67.1006 10.7002 -109.7 -35.7998 -109.7c-19.5 0 -38.7998 5.7002 -57.2002 14.7998v-28c30 -8.2998 68 -8.2998 68 -8.2998c97.9004 0 82 47.7002 82 131.2zM360.5 251.2c-63.4004 16 -165 14.8994 -165 -59.2998c0 -77.1006 108.2 -73.6006 165 -59.2002v28.2998
-c-47.5996 -24.7002 -107.5 -22 -107.5 31s59.7998 55.5996 107.5 31.2002v28zM544 161.5c0 18.5 -16.5 30.5 -38 32v0.799805c19.5 2.7002 30.2998 15.5 30.2998 30.2002c0 19 -15.7002 30 -37 31c0 0 6.2998 0.299805 -120.3 0.299805v-127.5h122.7
-c24.2998 -0.0996094 42.2998 12.9004 42.2998 33.2002z" />
-    <glyph glyph-name="cc-diners-club" unicode="&#xf24c;" horiz-adv-x="576" 
-d="M239.7 368.1c97.2002 0 175.8 -78.5996 175.8 -175.8c0 -96.8994 -78.5996 -175.8 -175.8 -175.8c-96.9004 0 -175.8 78.9004 -175.8 175.8c0 97.2002 78.8994 175.8 175.8 175.8zM199.8 88.5v207.9c-41.7002 -16.2002 -71.3994 -56.7002 -71.3994 -104.101
-c0 -47.3994 29.6992 -87.8994 71.3994 -103.8zM279.6 88.2002c41.7002 16.2002 71.4004 56.7002 71.4004 104.1c0 47.4004 -29.7002 87.9004 -71.4004 104.101v-208.2zM528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352
-c0 26.5 21.5 48 48 48h480zM329.7 0c105 0 200.7 85.5 200.7 190.2c0 114.6 -95.7002 193.8 -200.7 193.8h-90.2998c-106.2 0 -193.801 -79.2002 -193.801 -193.8c0 -104.7 87.6006 -190.2 193.801 -190.2h90.2998z" />
-    <glyph glyph-name="creative-commons" unicode="&#xf25e;" horiz-adv-x="496" 
-d="M245.83 233.13l-33.2197 -17.2803c-9.43066 19.5801 -25.2402 19.9307 -27.46 19.9307c-22.1309 0 -33.2207 -14.6104 -33.2207 -43.8398c0 -23.5703 9.20996 -43.8408 33.2207 -43.8408c14.4697 0 24.6494 7.09082 30.5693 21.2607l30.5498 -15.5
-c-6.16992 -11.5107 -25.6895 -38.9805 -65.0996 -38.9805c-22.5996 0 -73.96 10.3203 -73.96 77.0498c0 58.6904 43 77.0605 72.6299 77.0605c30.7197 0.00976562 52.7002 -11.9502 65.9902 -35.8604zM388.88 233.13l-32.7803 -17.2803
-c-9.5 19.7705 -25.7197 19.9307 -27.8994 19.9307c-22.1406 0 -33.2197 -14.6104 -33.2197 -43.8398c0 -23.5508 9.22949 -43.8408 33.2197 -43.8408c14.4502 0 24.6494 7.09082 30.54 21.2607l31 -15.5c-2.10059 -3.75 -21.3906 -38.9805 -65.0898 -38.9805
-c-22.6904 0 -73.96 9.87012 -73.96 77.0498c0 58.6699 42.9697 77.0605 72.6299 77.0605c30.71 0.00976562 52.5801 -11.9502 65.5596 -35.8604zM247.56 439.95c141.82 0 248.44 -110.13 248.44 -248c0 -147.13 -118.51 -248 -248.44 -248
-c-133.96 0 -247.56 109.51 -247.56 248c0 132.939 104.74 248 247.56 248zM248.43 -10.8604c103.16 0 202.83 81.1299 202.84 202.82c0 113.8 -90.2891 203.26 -202.819 203.26c-118.29 0 -203.72 -97.8496 -203.72 -203.27c0 -109.771 91.1592 -202.811 203.699 -202.811z
-" />
-    <glyph glyph-name="gg" unicode="&#xf260;" horiz-adv-x="512" 
-d="M179.2 217.6l102.399 -102.399l-102.399 -102.4l-179.2 179.2l179.2 179.2l44.7998 -44.7998l-25.5996 -25.6006l-19.2002 19.2002l-128 -128l128 -128l51.5 51.5l-77.1006 76.5zM332.8 371.2l179.2 -179.2l-179.2 -179.2l-44.7998 44.7998l25.5996 25.6006
-l19.2002 -19.2002l128 128l-128 128l-51.5 -51.5l77.1006 -76.5l-25.6006 -25.5996l-102.399 102.399z" />
-    <glyph glyph-name="gg-circle" unicode="&#xf261;" horiz-adv-x="512" 
-d="M257 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM207.5 65.2002l75 75.2002l-77.2002 77.1992l-24.3994 -24.3994l53.0996 -52.9004l-26.5996 -26.5996l-77.2002 77.2002l77.2002 77.1992l11.0996 -11.0996l24.2002 24.2002
-l-35.2002 35.3994l-125.7 -125.699zM306.5 67.4004l125.7 125.6l-125.7 125.7l-75 -75l77.2002 -77.2002l24.3994 24.4004l-53.0996 52.8994l26.5 26.5l77.2002 -77.2002l-77.2002 -77.1992l-11.0996 11.0996l-24.1006 -24.4004z" />
-    <glyph glyph-name="tripadvisor" unicode="&#xf262;" horiz-adv-x="576" 
-d="M528.91 269.18c28.8652 -26.2666 46.9404 -64.1113 46.9404 -106.176c0 -0.0615234 -0.000976562 -0.12207 -0.000976562 -0.183594h0.0302734c-0.00195312 -79.4414 -64.5479 -143.928 -143.989 -143.928c-37.7363 0 -72.0996 14.5527 -97.7803 38.3477
-l-46.1104 -50.1699l-46.1396 50.1992c-25.6064 -23.4443 -59.8145 -37.7793 -97.2334 -37.7793c-79.4268 0 -143.911 64.4844 -143.911 143.911c0 41.8076 17.8662 79.4756 46.374 105.778l-47.0898 51.2402h104.66c52.2266 35.5498 115.938 56.3369 183.822 56.3369
-s130.95 -20.7871 183.178 -56.3369h104.34zM144.06 65.4297c53.751 0 97.3906 43.6396 97.3906 97.3906s-43.6396 97.3896 -97.3906 97.3896s-97.3896 -43.6387 -97.3896 -97.3896s43.6387 -97.3906 97.3896 -97.3906zM288 165.63c0 64.0801 46.6104 119.07 108.08 142.59
-c-33.2285 13.8467 -70.0527 21.4941 -108.272 21.4941c-38.2207 0 -74.6689 -7.64746 -107.897 -21.4941c61.4697 -23.5098 108.09 -78.5 108.09 -142.59zM431.88 65.4297c53.7568 0.00292969 97.4004 43.6475 97.4004 97.4053c0 53.7598 -43.6455 97.4053 -97.4053 97.4053
-c-53.7588 0 -97.4053 -43.6455 -97.4053 -97.4053c0 -53.7578 43.6436 -97.4023 97.4004 -97.4053h0.00976562zM144.06 213.88c0.0175781 0 0.0332031 -0.000976562 0.0507812 -0.000976562c28.1299 0 50.9717 -22.8242 51 -50.9492v-0.109375
-c0 -28.1807 -22.8799 -51.0605 -51.0605 -51.0605s-51.0596 22.8799 -51.0596 51.0605s22.8789 51.0596 51.0596 51.0596h0.00976562zM431.88 213.88c28.1807 0 51.0605 -22.8789 51.0605 -51.0596s-22.8799 -51.0605 -51.0605 -51.0605s-51.0596 22.8799 -51.0596 51.0605
-s22.8789 51.0596 51.0596 51.0596z" />
-    <glyph glyph-name="odnoklassniki" unicode="&#xf263;" horiz-adv-x="320" 
-d="M275.1 114c-27.3994 -17.4004 -65.0996 -24.2998 -90 -26.9004l20.9004 -20.5996l76.2998 -76.2998c27.9004 -28.6006 -17.5 -73.2998 -45.7002 -45.7002c-19.0996 19.4004 -47.0996 47.4004 -76.2998 76.5996l-76.2998 -76.5
-c-28.2002 -27.5 -73.5996 17.6006 -45.4004 45.7002c19.4004 19.4004 47.1006 47.4004 76.3008 76.2998l20.5996 20.6006c-24.5996 2.59961 -62.9004 9.09961 -90.5996 26.8994c-32.6006 21 -46.9004 33.3008 -34.3008 59c7.40039 14.6006 27.7002 26.9004 54.6006 5.7002
-c0 0 36.2998 -28.8994 94.8994 -28.8994c58.6006 0 94.9004 28.8994 94.9004 28.8994c26.9004 21.1006 47.0996 8.90039 54.5996 -5.7002c12.4004 -25.6992 -1.89941 -38 -34.5 -59.0996zM30.2998 318.3c0 71.7002 58.2998 129.7 129.7 129.7s129.7 -58 129.7 -129.7
-c0 -71.3994 -58.2998 -129.399 -129.7 -129.399s-129.7 58 -129.7 129.399zM96.2998 318.3c0 -35.0996 28.6006 -63.7002 63.7002 -63.7002s63.7002 28.6006 63.7002 63.7002c0 35.4004 -28.6006 64 -63.7002 64s-63.7002 -28.5996 -63.7002 -64z" />
-    <glyph glyph-name="odnoklassniki-square" unicode="&#xf264;" 
-d="M184.2 270.9c0 22.0996 17.8994 40 39.7998 40s39.7998 -17.9004 39.7998 -40c0 -22 -17.8994 -39.8008 -39.7998 -39.8008s-39.7998 17.9004 -39.7998 39.8008zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352
-c26.5 0 48 -21.5 48 -48zM142.9 270.9c0 -44.6006 36.3994 -80.9004 81.0996 -80.9004s81.0996 36.2002 81.0996 80.9004c0 44.7998 -36.3994 81.0996 -81.0996 81.0996s-81.0996 -36.2002 -81.0996 -81.0996zM317.4 180.2
-c-4.60059 9.09961 -17.3008 16.7998 -34.1006 3.59961c0 0 -22.7002 -18 -59.2998 -18s-59.2998 18 -59.2998 18c-16.7998 13.2002 -29.5 5.5 -34.1006 -3.59961c-7.89941 -16.1006 1.10059 -23.7002 21.4004 -37c17.2998 -11.1006 41.2002 -15.2002 56.5996 -16.7998
-l-12.8994 -12.9004c-18.2002 -18 -35.5 -35.5 -47.7002 -47.7002c-17.5996 -17.5996 10.7002 -45.7998 28.4004 -28.5996l47.6992 47.8994c18.2002 -18.1992 35.7002 -35.6992 47.7002 -47.8994c17.6006 -17.2002 46 10.7002 28.6006 28.5996l-47.7002 47.7002l-13 12.9004
-c15.5 1.59961 39.0996 5.89941 56.2002 16.7998c20.3994 13.2998 29.2998 21 21.5 37z" />
-    <glyph glyph-name="get-pocket" unicode="&#xf265;" 
-d="M407.6 384c22.7002 0 40.4004 -18.2002 40.4004 -40.5996v-135.2c0 -124.7 -99.7998 -224.2 -223.8 -224.2c-124.5 0 -224.2 99.5 -224.2 224.2v135.2c0 22.0996 18.5 40.5996 40.5996 40.5996h367zM245.6 115.5c111.9 107.5 114.801 105.4 114.801 123.2
-c0 16.8994 -13.8008 30.7002 -30.7002 30.7002c-16.9004 0 -14.9004 -2.40039 -105.5 -89.3008c-89.1006 85.5 -88.2002 89.3008 -105.2 89.3008c-16.9004 0 -30.7002 -13.8008 -30.7002 -30.7002c0 -18.1006 1.2002 -14.2998 114.9 -123.2
-c11 -11.0996 30 -11.7998 42.3994 0z" />
-    <glyph glyph-name="wikipedia-w" unicode="&#xf266;" horiz-adv-x="640" 
-d="M640 396.8l-0.299805 -12.2002c-28.1006 -0.799805 -45 -15.7998 -55.7998 -40.2998c-25 -57.7998 -103.301 -240 -155.301 -358.6h-13.5996l-81.9004 193.1c-32.5 -63.5996 -68.2998 -130 -99.1992 -193.1c-0.300781 -0.299805 -15 0 -15 0.299805
-c-46.9004 109.7 -96.1006 218.6 -143.101 328.6c-11.3994 26.7002 -49.3994 70 -75.5996 69.7002c0 3.10059 -0.299805 10 -0.299805 14.2002h161.899v-13.9004c-19.2002 -1.09961 -52.7998 -13.2998 -43.2998 -34.1992c21.9004 -49.7002 103.6 -240.301 125.6 -288.601
-c15 29.7002 57.8008 109.2 75.3008 142.8c-13.9004 28.3008 -58.6006 133.9 -72.8008 160c-9.69922 17.8008 -36.0996 19.4004 -55.7998 19.7002v13.9004l142.5 -0.299805v-13.1006c-19.3994 -0.599609 -38.0996 -7.7998 -29.3994 -26.0996
-c18.8994 -40 30.5996 -68.1006 48.0996 -104.7c5.59961 10.7998 34.7002 69.4004 48.0996 100.8c8.90039 20.6006 -3.89941 28.6006 -38.5996 29.4004c0.299805 3.59961 0 10.2998 0.299805 13.5996c44.4004 0.299805 111.101 0.299805 123.101 0.600586v-13.6006
-c-22.5 -0.799805 -45.8008 -12.7998 -58.1006 -31.7002l-59.2002 -122.8c6.40039 -16.0996 63.3008 -142.8 69.2002 -156.7l122.4 282.601c-8.60059 23.0996 -36.4004 28.0996 -47.2002 28.2998v13.9004l127.8 -1.10059z" />
-    <glyph glyph-name="safari" unicode="&#xf267;" horiz-adv-x="512" 
-d="M274.69 173.31l-108.69 -71.3096l71.3096 108.69zM256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM411.85 265.21c-2.88672 -1.20801 -4.9082 -4.0625 -4.9082 -7.38574c0 -1.08496 0.21582 -2.12012 0.608398 -3.06445v0
-c1.20215 -2.90039 4.06348 -4.93457 7.39648 -4.93457c1.08105 0 2.1123 0.214844 3.05371 0.604492l14.75 6.11035c2.90234 1.20117 4.93848 4.06348 4.93848 7.39746c0 1.08496 -0.216797 2.11914 -0.608398 3.0625v0c-1.2002 2.90527 -4.06348 4.94336 -7.39941 4.94336
-c-1.08008 0 -2.11035 -0.214844 -3.05078 -0.603516zM314.43 354c-0.396484 -0.949219 -0.625 -1.99219 -0.625 -3.08496c0 -3.33398 2.04395 -6.19336 4.94531 -7.39551v0c0.941406 -0.388672 1.97461 -0.613281 3.05566 -0.613281
-c3.33301 0 6.19238 2.04297 7.39453 4.94336l6.12988 14.7803c0.389648 0.941406 0.613281 1.97461 0.613281 3.05566c0 3.33301 -2.04297 6.19238 -4.94336 7.39453v0c-0.944336 0.392578 -1.98047 0.618164 -3.06641 0.618164
-c-3.32324 0 -6.17578 -2.03125 -7.38379 -4.91797zM256 388c-4.41504 0 -8 -3.58496 -8 -8v-16c0 -4.41504 3.58496 -8 8 -8v0c4.41504 0 8 3.58496 8 8v16c0 4.41504 -3.58496 8 -8 8v0zM181 373.08c-2.89941 -1.20215 -4.93262 -4.0625 -4.93262 -7.39551
-c0 -1.06934 0.210938 -2.09082 0.592773 -3.02441l6.12988 -14.7803c1.16504 -2.97754 4.05762 -5.07812 7.44531 -5.07812c4.41602 0 8 3.58496 8 8c0 1.13672 -0.237305 2.21875 -0.665039 3.19824l-6.11035 14.75c-1.20117 2.90234 -4.06348 4.93848 -7.39746 4.93848
-c-1.08496 0 -2.11914 -0.216797 -3.0625 -0.608398zM117.42 330.59c-1.44727 -1.44824 -2.35254 -3.44922 -2.35254 -5.65625c0 -2.19141 0.883789 -4.17773 2.3125 -5.62402l11.3105 -11.3096c1.44727 -1.44727 3.44922 -2.34277 5.65527 -2.34277
-c2.20703 0 4.20605 0.895508 5.6543 2.34277v0c1.43848 1.44629 2.32715 3.44238 2.32715 5.6416c0 2.19824 -0.888672 4.19141 -2.32715 5.63867l-11.2695 11.3096c-1.44824 1.44727 -3.4502 2.34277 -5.65625 2.34277c-2.20703 0 -4.20605 -0.895508 -5.6543 -2.34277v0z
-M60 192c0 -4.41504 3.58496 -8 8 -8h16c4.41504 0 8 3.58496 8 8v0c0 4.41504 -3.58496 8 -8 8h-16c-4.41504 0 -8 -3.58496 -8 -8v0zM100.15 118.79c2.88672 1.20801 4.9082 4.0625 4.9082 7.38574c0 1.08496 -0.21582 2.12012 -0.608398 3.06445v0
-c-1.20215 2.90039 -4.06348 4.93457 -7.39648 4.93457c-1.08105 0 -2.1123 -0.214844 -3.05371 -0.604492l-14.75 -6.11035c-2.90234 -1.20117 -4.93848 -4.06348 -4.93848 -7.39746c0 -1.08496 0.216797 -2.11914 0.608398 -3.0625v0
-c1.2002 -2.90527 4.06348 -4.94336 7.39941 -4.94336c1.08008 0 2.11035 0.214844 3.05078 0.603516zM104.48 254.79c0.386719 0.939453 0.609375 1.93945 0.609375 3.0166c0 3.33203 -2.04102 6.19043 -4.93945 7.39355l-14.7803 6.12988
-c-0.941406 0.389648 -1.97461 0.613281 -3.05566 0.613281c-3.33301 0 -6.19238 -2.04297 -7.39453 -4.94336v0c-0.392578 -0.944336 -0.618164 -1.98047 -0.618164 -3.06641c0 -3.32324 2.03125 -6.17578 4.91797 -7.38379l14.7803 -6.12012
-c0.945312 -0.393555 1.9834 -0.619141 3.07129 -0.619141c3.34668 0 6.21582 2.05957 7.40918 4.97949v0zM197.57 30c0.427734 0.979492 0.672852 2.07129 0.672852 3.20801c0 4.41602 -3.58496 8 -8 8c-3.38867 0 -6.28809 -2.11035 -7.45312 -5.08789l-6.12988 -14.7803
-c-0.389648 -0.941406 -0.611328 -1.9834 -0.611328 -3.06543c0 -4.41699 3.58594 -8.00293 8.00293 -8.00293c3.33496 0 6.19727 2.04492 7.39844 4.94824zM264 4v16c0 4.41504 -3.58496 8 -8 8v0c-4.41504 0 -8 -3.58496 -8 -8v-16c0 -4.41504 3.58496 -8 8 -8v0
-c4.41504 0 8 3.58496 8 8zM331 10.9199c2.89941 1.20215 4.93262 4.0625 4.93262 7.39551c0 1.06934 -0.210938 2.09082 -0.592773 3.02441l-6.12988 14.7803c-1.20215 2.90039 -4.06348 4.93457 -7.39648 4.93457c-1.08105 0 -2.1123 -0.214844 -3.05371 -0.604492v0
-c-2.90039 -1.20215 -4.93457 -4.06348 -4.93457 -7.39648c0 -1.08105 0.214844 -2.1123 0.604492 -3.05371l6.11035 -14.75c1.20117 -2.90234 4.06348 -4.93848 7.39746 -4.93848c1.08496 0 2.11914 0.216797 3.0625 0.608398v0zM394.58 53.4102
-c1.44727 1.44824 2.35254 3.44922 2.35254 5.65625c0 2.19141 -0.883789 4.17773 -2.3125 5.62402l-11.3105 11.3096c-1.44727 1.44727 -3.44922 2.34277 -5.65527 2.34277c-2.20703 0 -4.20605 -0.895508 -5.6543 -2.34277v0
-c-1.43848 -1.44629 -2.32715 -3.44238 -2.32715 -5.6416c0 -2.19824 0.888672 -4.19141 2.32715 -5.63867l11.2695 -11.3096c1.44824 -1.44727 3.4502 -2.34277 5.65625 -2.34277c2.20703 0 4.20605 0.895508 5.6543 2.34277v0zM286.25 161.75l115.41 175.91
-l-175.91 -115.41l-115.41 -175.91zM437.08 117c0.392578 0.944336 0.618164 1.98047 0.618164 3.06641c0 3.32324 -2.03125 6.17578 -4.91797 7.38379l-14.7803 6.12012c-0.949219 0.396484 -1.99219 0.625 -3.08496 0.625c-3.33398 0 -6.19336 -2.04395 -7.39551 -4.94531
-v0c-0.388672 -0.941406 -0.613281 -1.97461 -0.613281 -3.05566c0 -3.33301 2.04297 -6.19238 4.94336 -7.39453l14.7803 -6.12988c0.941406 -0.389648 1.97461 -0.613281 3.05566 -0.613281c3.33301 0 6.19238 2.04297 7.39453 4.94336v0zM444 184c4.41504 0 8 3.58496 8 8
-v0c0 4.41504 -3.58496 8 -8 8h-16c-4.41504 0 -8 -3.58496 -8 -8v0c0 -4.41504 3.58496 -8 8 -8h16z" />
-    <glyph glyph-name="chrome" unicode="&#xf268;" horiz-adv-x="496" 
-d="M131.5 230.5l-76.4004 117.4c47.6006 59.1992 119 91.7998 192 92.0996c42.3008 0.299805 85.5 -10.5 124.801 -33.2002c43.3994 -25.2002 76.3994 -61.3994 97.3994 -103l-205.3 10.7998c-58.0996 3.40039 -113.4 -29.2998 -132.5 -84.0996zM164.4 192
-c0 46.2998 37.3994 83.5996 83.5996 83.5996s83.5996 -37.3994 83.5996 -83.5996s-37.3994 -83.5996 -83.5996 -83.5996s-83.5996 37.3994 -83.5996 83.5996zM479.3 281.2c43.5 -111.9 0 -241.9 -107.399 -303.9c-43.4004 -25.2002 -91.3008 -35.3994 -137.801 -32.8994
-l112.101 172.399c31.8994 49 31.2998 112.9 -6.60059 157.2zM133.7 144.4c26.2998 -51.7002 81.8994 -83.3008 139.5 -72.5l-63.7002 -124.801c-118.7 18.2002 -209.5 120.9 -209.5 244.9c0 50.0996 14.9004 96.9004 40.4004 135.9z" />
-    <glyph glyph-name="firefox" unicode="&#xf269;" horiz-adv-x="512" 
-d="M503.52 206.52c0.240234 -4.43945 0.360352 -9 0.480469 -13.5195c0 -137.19 -111.23 -248.42 -248.32 -248.42c-122.779 0 -224.859 89.2695 -244.779 206.38c-0.360352 3.24023 -0.720703 6.36035 -1.08008 9.59961c-4.91992 42.6006 0.479492 87.3604 16.0801 124.79
-c10.7998 25.8809 32.6396 54 49.7998 62.8809c-16.2002 -31.8008 -24.1201 -63 -25.7998 -83.8809c11.2793 37.2002 32.6299 68.3604 62.5098 90.3604c51.2402 37.6699 120.229 39.3604 147.71 15.3604c-51 -17.5107 -106.55 -87.96 -94.3105 -170.511
-c2.00586 -13.791 6.21289 -27.1582 12.1201 -39.2393c-9.51953 25.0801 -10.3594 60.3594 5 83.2793c17.1602 25.5508 41.6299 30.9502 54.71 28.1904c-5.15918 1.08008 -16.5596 -20.75 -18.2393 -24.5898c-3.99609 -9.09863 -6.25098 -19.1865 -6.25098 -29.7539
-c0 -0.416016 0.00390625 -0.832031 0.0107422 -1.24609c0.392578 -23.1182 10.1045 -44.0088 25.5596 -59c47.6504 -46.4307 124.561 -28.1602 159 24.8398c23.6406 36.4795 26.5205 98.3896 -3.83984 147.59c-7.62891 12.0801 -16.5693 22.9639 -26.8799 32.7598
-c-47.6602 45.4707 -116.06 64.6699 -180.24 52.9902c-0.240234 0 -0.599609 -0.120117 -0.839844 -0.120117c-1.7998 -0.359375 -3.47949 -0.719727 -5.16016 -1.08008c-0.359375 -0.120117 -0.839844 -0.120117 -1.2002 -0.239258l-5.87988 -1.44043
-c-14.5195 -3.55957 -34.7998 -10.7998 -49.4395 -19.5596c-0.09375 -0.0136719 -0.176758 -0.0566406 -0.240234 -0.120117l0.120117 0.120117c0 -0.0664062 -0.0537109 -0.120117 -0.120117 -0.120117l-0.120117 -0.120117l0.120117 0.120117h-0.129883l0.479492 0.479492
-c0.480469 0.480469 1.32031 1.16016 2.40039 2.16016c19.6797 17.7598 49.3203 31.9199 82.9102 39c14.7383 3.09766 29.8691 4.81543 45.4795 5h10.6299c12.9863 -0.311523 25.6123 -1.67188 38 -4c0.960938 -0.120117 1.76074 -0.360352 2.76074 -0.479492h0.120117
-c1.7998 -0.360352 3.71973 -0.84082 5.63965 -1.2002c19.2676 -4.375 38.0977 -11.0762 55.4297 -19.5605c2.40039 -1.2002 4.7998 -2.39941 7.2002 -3.71973c8.6748 -4.32129 16.8906 -9.37891 24.5996 -15.1201c4.32031 -3.12012 8.48047 -6.36035 12.4805 -9.83984
-c6.50781 -5.19434 12.5332 -10.6973 18.29 -16.7002c8.51074 -8.35645 16.2646 -17.1406 23.5098 -26.6396c0.959961 -1.2002 1.75977 -2.40039 2.75977 -3.71973c0.400391 -0.480469 0.640625 -0.84082 1 -1.32031l1.80078 -2.52051
-c0.359375 -0.479492 0.719727 -1.08008 1.08008 -1.55957c0.479492 -0.719727 1.0791 -1.56055 1.55957 -2.28027c0.441406 -0.571289 0.839844 -1.16992 1.2002 -1.7998l1.43945 -2.12988c0.441406 -0.571289 0.84082 -1.16992 1.2002 -1.7998
-c0.480469 -0.720703 0.959961 -1.56055 1.32031 -2.16016c0.359375 -0.600586 0.839844 -1.24023 1.2002 -1.91992c0.359375 -0.680664 0.839844 -1.32031 1.19922 -2c0.360352 -0.680664 0.84082 -1.28027 1.2002 -2c0.441406 -0.638672 0.842773 -1.30566 1.2002 -2
-c0.360352 -0.720703 0.839844 -1.56055 1.2002 -2.16016c0.359375 -0.599609 0.719727 -1.32031 1.08008 -1.91992c0.359375 -0.839844 0.799805 -1.67969 1.2002 -2.28027c0.399414 -0.599609 0.639648 -1.2002 1 -1.7998
-c0.359375 -0.839844 0.839844 -1.56055 1.19922 -2.40039c0.240234 -0.479492 0.480469 -1.08008 0.720703 -1.55957c0.479492 -0.839844 0.839844 -1.63965 1.31934 -2.63965l0.360352 -0.720703c1.75977 -3.71973 3.44043 -7.55957 5 -11.3994
-c0 -0.120117 0.120117 -0.240234 0.120117 -0.360352c0.439453 -1.2002 0.959961 -2.28027 1.43945 -3.48047c0.120117 -0.239258 0.240234 -0.599609 0.360352 -0.839844c0.480469 -1.08008 0.839844 -2.2793 1.32031 -3.35938
-c0.138672 -0.321289 0.261719 -0.660156 0.359375 -1c0.360352 -1.08008 0.84082 -2.28027 1.2002 -3.36035l0.360352 -1.08008c0.479492 -1.2002 0.839844 -2.28027 1.2002 -3.47949c0.119141 -0.400391 0.239258 -0.640625 0.359375 -1
-c0.360352 -1.08008 0.720703 -2.28027 1.08008 -3.48047c0.120117 -0.240234 0.120117 -0.599609 0.240234 -0.839844c0.360352 -1.2002 0.719727 -2.52051 1.08008 -3.71973c0.120117 -0.120117 0.120117 -0.360352 0.240234 -0.600586l1.08008 -4
-c0.119141 -0.120117 0.119141 -0.120117 0.119141 -0.240234c3.54297 -13.2549 6.04102 -27.1152 7.32031 -41.1494v-0.120117l0.360352 -4.67969v-0.120117c0 -1.56055 0.120117 -3.12012 0.239258 -4.68066z" />
-    <glyph glyph-name="opera" unicode="&#xf26a;" horiz-adv-x="496" 
-d="M313.9 415.3c-170.2 0 -252.601 -223.8 -147.5 -355.1c36.5 -45.4004 88.5996 -75.6006 147.5 -75.6006c36.2998 0 70.2998 11.1006 99.3994 30.4004c-43.7998 -39.2002 -101.899 -63 -165.3 -63c-3.90039 0 -8 0 -11.9004 0.299805
-c-131.5 6.10059 -236.1 114.601 -236.1 247.7c0 137 111 248 248 248h0.799805c63.1006 -0.299805 120.7 -24.0996 164.4 -63.0996c-29 19.3994 -63.1006 30.3994 -99.2998 30.3994zM415.7 17.5996c-40.9004 -24.6992 -90.7002 -23.5996 -132 5.80078
-c56.2002 20.5 97.7002 91.5996 97.7002 176.6c0 84.7002 -41.2002 155.8 -97.4004 176.6c41.7998 29.2002 91.2002 30.3008 132.9 5c105.899 -98.6992 105.5 -265.699 -1.2002 -364z" />
-    <glyph glyph-name="internet-explorer" unicode="&#xf26b;" horiz-adv-x="512" 
-d="M483.049 288.294c25.1963 -45.4473 33.2578 -97.5811 26.8516 -141.162h-328.792c0 -100.432 144.31 -136.029 196.818 -47.4355h120.833c-32.5645 -91.7285 -119.689 -146.022 -216.813 -146.022c-35.1367 0 -70.2725 0.143555 -101.695 15.5732
-c-87.3975 -44.4941 -180.251 -56.5693 -180.251 42.0059c0 45.8066 23.2461 107.096 43.9922 145.022c35.1357 63.7227 81.4121 124.875 135.687 173.168c-43.7061 -18.8604 -91.125 -66.2959 -121.977 -101.158c25.877 112.787 129.466 193.638 237.098 186.457
-c130.032 59.7939 209.673 34.1445 209.673 -38.5771c0 -27.4326 -10.5684 -63.2959 -21.4238 -87.8711zM64.5586 101.123c-73.001 -152.4 11.5254 -172.244 100.267 -123.304c-46.5635 27.4326 -82.5557 72.1533 -100.267 123.304zM180.536 209.996h207.961
-c-2 55.1514 -50.5635 94.8711 -103.981 94.8711c-53.7041 0 -101.979 -39.7197 -103.979 -94.8711zM365.072 397.596c46.2764 -18.002 85.9824 -57.2939 112.263 -99.5859c7.1416 18.8604 14.5693 47.8643 14.5693 67.8672c0 32.0049 -22.8525 53.7217 -54.2744 53.7217
-c-23.9951 0 -51.1328 -11.7158 -72.5576 -22.0029z" />
-    <glyph glyph-name="contao" unicode="&#xf26d;" horiz-adv-x="512" 
-d="M45.4004 143c14.3994 -67.0996 26.3994 -129 68.1992 -175h-79.5996c-18.7002 0 -34 15.2002 -34 34v380c0 18.7002 15.2002 34 34 34h57.7002c-13.7998 -12.5996 -26.1006 -27.2002 -36.9004 -43.5996c-45.3994 -70 -27 -146.801 -9.39941 -229.4zM478 416
-c18.7998 0 34 -15.2002 34 -34v-380.1c0 -18.8008 -15.2998 -34 -34 -34h-52.0996c38.6992 38.3994 60.5996 92.0996 57.3994 163.6l-137.399 -29.5996c-1.7002 -32.5 -12.9004 -63.8008 -57.4004 -73.2002c-24.9004 -5.2998 -45.4004 0.599609 -58.2998 11.7002
-c-15.7998 13.5 -28.4004 31 -49.5 131.199c-21.4004 100.5 -17 121.601 -8.2002 140.301c7.2998 15.2998 23.7002 29.2998 48.2998 34.5996c44.7998 9.40039 67.7002 -14.9004 82.6006 -43.9004l137.1 29.3008c-13.5 34.5996 -31.2998 62.6992 -52.7002 84.0996h90.2002z
-" />
-    <glyph glyph-name="500px" unicode="&#xf26e;" 
-d="M103.3 103.7c-6.5 14.2002 -6.89941 18.2998 7.40039 23.0996c25.5996 8 8 -9.2002 43.2002 -49.2002h0.299805v93.9004c1.2002 50.2002 44 92.2002 97.7002 92.2002c53.8994 0 97.6992 -43.5 97.6992 -96.7998c0 -63.4004 -60.7998 -113.2 -128.5 -93.3008
-c-10.5 4.2002 -2.09961 31.7002 8.5 28.6006c53 0 89.4004 10.0996 89.4004 64.3994c0 61 -77.0996 89.6006 -116.9 44.6006c-23.5 -26.4004 -17.5996 -42.1006 -17.5996 -157.601c50.7002 -31 118.3 -22 160.4 20.1006c24.7998 24.7998 38.5 58 38.5 93
-c0 35.2002 -13.8008 68.2002 -38.8008 93.2998c-24.7998 24.7998 -57.7998 38.5 -93.2998 38.5s-68.7998 -13.7998 -93.5 -38.5c-0.299805 -0.299805 -16 -16.5 -21.2002 -23.9004l-0.5 -0.599609c-3.2998 -4.7002 -6.2998 -9.09961 -20.0996 -6.09961
-c-6.90039 1.69922 -14.2998 5.7998 -14.2998 11.7998v186.8c0 5 3.89941 10.5 10.5 10.5h241.3c8.2998 0 8.2998 -11.5996 8.2998 -15.0996c0 -3.90039 0 -15.1006 -8.2998 -15.1006h-223.2v-132.899h0.299805c104.2 109.8 282.801 36 282.801 -108.9
-c0 -178.1 -244.801 -220.3 -310.101 -62.7998zM166.6 364.5c3.80078 18.7998 145.101 50.7998 238.301 -38.2002c8.5 -7.5 -9.5 -22.7998 -14.3008 -22.7998c-6.59961 0 -84.5996 87.9004 -209.399 40.4004c-10 -3.90039 -15.1006 16.3994 -14.6006 20.5996zM393 33.2998
-c8.09961 8 27.5996 -12.5996 20.7002 -20.3994c-135.601 -135.601 -357.601 -52.1006 -381.601 121.3c-1.5 10.7002 28.9004 15.5 28.9004 3.2998c33 -165 222 -214.1 332 -104.2zM213.6 141.4c0 3.39941 2.30078 4.69922 20.4004 22.5996l-18.2002 18.2002
-c-5.59961 5.59961 7.40039 17.2998 12.4004 17.2998c3.09961 0 2.89941 -0.700195 21.5 -19.5l17.8994 17.9004c6.10059 6.09961 22.5 -8.90039 16.2002 -15.7002l-18.2002 -18.2002l17.3008 -17.2998c7.7998 -7.7998 -5.30078 -18.2002 -10.7002 -18.2002
-c-3.2002 0 -2.7002 0.200195 -22.2998 19.5c-19.7002 -19.7002 -18.5 -19.5 -22.3008 -19.5c-2.39941 0 -5.5 1.40039 -8.5 4.40039c-1.19922 1.19922 -5.5 4.5 -5.5 8.5z" />
-    <glyph glyph-name="amazon" unicode="&#xf270;" 
-d="M257.2 285.3c0 39.2998 5.2002 69.2002 -35.5 69.1006c0 0 -37.9004 0 -54.2002 -49.5l-73.5 6.7998c0 49.2998 46.7002 104.3 134.7 104.3c87.7998 0 112.3 -57 112.3 -82.2998v-147.101c0 -27.5 32.2998 -52.7998 32.2998 -52.7998l-56.7998 -56
-c-9.90039 9.2998 -38.7998 36.6006 -45.2998 46.7998c-45.2002 -70.7998 -183.5 -66.2998 -183.5 43.2002c0 102 120.8 115.7 169.5 117.5zM257.2 198.5v40.5996c-33.7002 -1.09961 -84.2002 -10.5996 -84.2002 -57.7998c0 -50.7998 84.2002 -62.7998 84.2002 17.2002z
-M393.2 35c-7.7002 -10 -70 -67 -174.5 -67s-184.5 71.5 -209 101c-6.7998 7.7002 1 11.2998 5.5 8.2998c73.2998 -44.5 187.8 -117.8 372.5 -30.2998c7.5 3.7002 13.2998 -2 5.5 -12zM433 32.7998c-6.5 -15.7998 -16 -26.7998 -21.2002 -31
-c-5.5 -4.5 -9.5 -2.7002 -6.5 3.7998s19.2998 46.5 12.7002 55c-6.5 8.30078 -37 4.30078 -48 3.2002c-10.7998 -1 -13 -2 -14 0.299805c-2.2998 5.7002 21.7002 15.5 37.5 17.5c15.7002 1.80078 41 0.800781 46 -5.69922c3.7002 -5.10059 0 -27.1006 -6.5 -43.1006z" />
-    <glyph glyph-name="houzz" unicode="&#xf27c;" 
-d="M275.9 117.3h-104.601v-149.3h-154.3v448h109.5v-104.5l305.1 -85.5996v-257.9h-155.699v149.3z" />
-    <glyph glyph-name="vimeo-v" unicode="&#xf27d;" 
-d="M447.8 294.4c-2 -43.6006 -32.3994 -103.301 -91.3994 -179.101c-60.9004 -79.2002 -112.4 -118.8 -154.601 -118.8c-26.0996 0 -48.2002 24.0996 -66.2998 72.2998c-35.2002 129.2 -50.2002 204.9 -79.2998 204.9c-3.40039 0 -15.1006 -7.10059 -35.2002 -21.1006
-l-21 27.2002c51.5996 45.2998 100.9 95.7002 131.8 98.5c34.9004 3.40039 56.2998 -20.5 64.4004 -71.5c28.7002 -181.5 41.3994 -208.899 93.5996 -126.7c18.7002 29.6006 28.7998 52.1006 30.2002 67.6006c4.7998 45.8994 -35.7998 42.7998 -63.2998 31
-c22 72.0996 64.0996 107.1 126.2 105.1c45.7998 -1.2002 67.5 -31.0996 64.8994 -89.3994z" />
-    <glyph glyph-name="black-tie" unicode="&#xf27e;" 
-d="M0 416h448v-448h-448v448zM316.5 90.7998l-64.5 184l64.4004 86.6006h-184.9l64.5 -86.6006l-64.5 -184l92.5 -88.7002z" />
-    <glyph glyph-name="fonticons" unicode="&#xf280;" 
-d="M0 416h448v-448h-448v448zM187 275.1c11.9004 0 16.5996 -4.2998 16.2998 -23l50.7002 6.10059c0 44.5996 -30.5996 52.7998 -64.7002 52.7998c-50.7998 0 -77.2998 -20.4004 -77.2998 -70v-21h-28v-37.4004h22.2002c2.89941 0 5.7998 0 5.7998 -2.2998v-111.399
-c0 -5.60059 -1.5 -7.30078 -6.7002 -7.90039l-21.2998 -2v-25.7002h130.7v25.1006l-43.5 4.09961c-5.2002 0.599609 -3.2002 1.5 -3.2002 7.2998v112.9h55.7002l11.0996 37.2998h-67.3994c-2.90039 0 0.599609 2 0.599609 4.40039v23.2998
-c0 17.5 0.599609 27.3994 19 27.3994zM261.3 33.2998h102.601v25.1006l-15.7002 2.59961c-5.5 0.900391 -2.90039 1.5 -2.90039 7.2998v151.7h-80.2002l-6.69922 -29.5l24.1992 -6.40039c3.80078 -1.19922 6.7002 -3.7998 6.7002 -7.89941v-107.9
-c0 -5.59961 -2.39941 -6.7002 -7.59961 -7.2998l-20.4004 -2.59961v-25.1006zM342.1 288.8l21.9004 24.2002l-3.5 9.59961h-27.7002l-15.5 28h-9.2998l-15.5 -28h-27.7002l-3.5 -9.59961l21.7998 -24.2002l-9 -33.2002l7.30078 -7.2998l31.1992 16.6006l31.2002 -16.6006
-l7.2998 7.2998z" />
-    <glyph glyph-name="reddit-alien" unicode="&#xf281;" horiz-adv-x="512" 
-d="M440.3 244.5c55.2998 0 73.7002 -74.0996 23.7998 -99.7002c2.2002 -7.89941 3.10059 -16.7002 3.10059 -25.0996c0 -83.7998 -94.4004 -151.7 -210.8 -151.7c-115.9 0 -210.301 67.9004 -210.301 151.7c0 8.39941 0.800781 16.7998 2.60059 24.7002
-c-50.9004 25.5 -32.7002 100.1 22.8994 100.1c15 0 28.7002 -6.2002 38.4004 -16.2998c35.7998 24.7002 83.4004 40.5996 136.3 42.7998l30.4004 137.6c1.2998 4.90039 6.09961 8.40039 11 7.10059l97.3994 -21.6006c6.60059 12.7002 19.9004 22 35.3008 22
-c22.0996 0 39.6992 -18.0996 39.6992 -39.6992c0 -21.6006 -17.6992 -39.7002 -39.6992 -39.7002c-21.6006 0 -39.2002 17.5996 -39.2002 39.2002l-88.2002 19.7998l-27.7002 -124.8c53.2998 -1.7002 101.4 -17.6006 137.101 -42.3008
-c9.69922 9.7002 22.8994 15.9004 37.8994 15.9004zM129.4 139.1c0 -21.5996 17.6992 -39.2998 39.6992 -39.1992c21.6006 0 39.2002 17.5996 39.2002 39.1992c0 22.1006 -17.5996 39.7002 -39.2002 39.7002c-22.0996 0 -39.6992 -17.7002 -39.6992 -39.7002zM343.7 45.5996
-c4 3.5 4 9.7002 -0.100586 13.7002c-3.5 3.5 -9.69922 3.5 -13.1992 0c-29 -29 -121.2 -28.5 -149 0c-3.5 3.5 -9.7002 3.5 -13.2002 0c-4 -4 -4 -10.2002 0 -13.7002c36.3994 -36.3994 139.1 -36.3994 175.5 0zM342.9 99.7998c22 0 39.5996 17.7002 39.6992 39.2002
-c0 22.0996 -17.6992 39.7002 -39.6992 39.7002c-21.6006 0 -39.2002 -17.7002 -39.2002 -39.7002c0 -21.5996 17.5996 -39.2002 39.2002 -39.2002z" />
-    <glyph glyph-name="edge" unicode="&#xf282;" horiz-adv-x="512" 
-d="M481.92 313.52c6.46973 -12.7793 22.4697 -41.6494 21.9697 -85.0791c-0.0917969 -43.7148 -23.6953 -81.8525 -58.9492 -102.44c-17.1387 -10.1797 -37.2617 -16.1211 -58.6104 -16.1797c-0.139648 0 -52.6504 -2.56055 -80.5098 16.8096
-c-5.85059 4.08008 -9.14062 8.94043 -9.14062 14c0 6.16016 4.82031 9 6.39062 11c9.7998 12.75 15.1094 28.1699 15.1094 38.5703c0 32.71 -11 59.2998 -33 83.0996c-1.16016 1.25 -42.9795 50.1807 -122.25 50.1807c-63.2393 0 -123.46 -32.6504 -149.46 -79.1406
-c24.04 111.98 123.58 195.66 242.44 195.66c96.3496 0 184.96 -46.1797 226.01 -126.48zM212.77 -27.6699c1.28027 -0.570312 29.0107 -20.5898 67.1309 -27.21c-7.89551 -0.759766 -15.5156 -1.3584 -23.6084 -1.3584c-99.3408 0 -185.118 58.5361 -224.692 142.969
-c-25.75 55.4697 -24.0801 105.96 -23 118.27c4.16992 34.2803 27.0801 59.7002 46.8408 74.7998c29.6299 22.6904 68.8193 35.6904 107.529 35.6904c7.0498 0 43.9199 -0.900391 77.6406 -18.5898c32.5596 -17.1006 47.3193 -37.5801 56.5596 -53.5107
-c1.84961 -3.23242 3.49902 -6.64551 4.88965 -10.1396c-4.21973 4.65039 -40.0596 44.2002 -99.0596 -1c-26.6719 -19.334 -46.8008 -46.8369 -56.9697 -78.9199c-14.1406 -40.4004 -12.8398 -88.5801 20.0996 -136c12.2471 -18.1914 27.9951 -33.3955 46.6396 -45z
-M463.49 70.6602c2.1748 -1.37305 3.60742 -3.80176 3.60742 -6.56152c0 -1.53418 -0.447266 -2.96484 -1.21777 -4.16895c-47.5703 -75.4297 -127.86 -108.87 -163 -108.87c-22.7002 0 -48.1299 6.95996 -71.7002 19.6104c-33 17.6699 -49.4893 38.7598 -56 47.6699
-c-46.3301 63.5303 -28.25 122.29 -13.3301 151.66c9.73145 19.1172 22.8193 35.9404 38.7607 50c-4.04688 -8.04102 -6.40625 -17.168 -6.52051 -26.75c0 -80.9404 79.8506 -144 171.521 -144c0.116211 0 0.310547 0.0693359 0.426758 0.0693359
-c24.3125 0 47.6045 4.40137 69.123 12.4502c6.98145 2.61816 13.8652 5.69824 20.4102 9.12012c1.11328 0.618164 2.41113 0.970703 3.77441 0.970703c1.52344 0 2.94531 -0.44043 4.14551 -1.2002z" />
-    <glyph glyph-name="codiepie" unicode="&#xf284;" horiz-adv-x="472" 
-d="M422.5 245.1c30.7002 0 33.5 -53.0996 -0.299805 -53.0996h-10.7998v-44.2998h-26.6006v97.3994h37.7002zM472 95.4004c-42.0996 -91.9004 -121.6 -151.4 -224 -151.4c-137 0 -248 111 -248 248s111 248 248 248c97.4004 0 172.8 -53.7002 218.2 -138.4l-186 -108.8z
-M433.5 82.9004l-60.2998 30.6992c-27.1006 -44.2998 -70.4004 -71.3994 -122.4 -71.3994c-82.5 0 -149.2 66.7002 -149.2 148.899c0 82.5 66.7002 149.2 149.2 149.2c48.4004 0 88.9004 -23.5 116.9 -63.3994l59.5 34.5996c-40.7002 62.5996 -104.7 100 -179.2 100
-c-121.2 0 -219.5 -98.2998 -219.5 -219.5s98.2998 -219.5 219.5 -219.5c78.5996 0 146.5 42.0996 185.5 110.4z" />
-    <glyph glyph-name="modx" unicode="&#xf285;" 
-d="M356 206.2l36.7002 -23.7002v-214.5l-133 83.7998zM440 373l-83.2002 -134.3l-153.5 96.5l23 37.7998h213.7zM351 230.2l-249.8 -57.7002l-46 29v214.5zM97 153.8l249.7 57.7002l-125 -200.5h-213.7z" />
-    <glyph glyph-name="fort-awesome" unicode="&#xf286;" horiz-adv-x="512" 
-d="M489.2 160.1c2.59961 0 4.59961 -2 4.5 -4.59961v-219.5h-182.9v96c0 72.5996 -109.7 72.5996 -109.7 0v-96h-182.899v219.5c0 2.59961 2 4.59961 4.59961 4.59961h27.4004c2.59961 0 4.59961 -2 4.59961 -4.59961v-32h36.6006v178.3
-c0 2.60059 2 4.60059 4.59961 4.60059h27.4004c2.59961 0 4.59961 -2 4.59961 -4.60059v-32h36.2998v32c0 2.60059 2 4.60059 4.60059 4.60059h27.3994c2.60059 0 4.60059 -2 4.60059 -4.60059v-32h36.5996v32c0 6 8 4.60059 11.7002 4.60059v111.699
-c-5.40039 2.60059 -9.10059 8.30078 -9.10059 14.3008c0 20.7998 31.4004 20.6992 31.4004 0c0 -6 -3.7002 -11.7002 -9.09961 -14.3008v-4.89941c7.69922 1.7998 15.6992 2.89941 23.6992 2.89941c11.7002 0 22.9004 -4.2998 32.6006 -4.2998
-c8.89941 0 18.8994 4.2998 24 4.2998c2.59961 0 4.59961 -2 4.59961 -4.59961v-60c0 -6.90039 -23.0996 -8 -27.7002 -8c-10.5 0 -20.5 4.2998 -31.3994 4.2998c-8.60059 0 -17.4004 -1.39941 -25.7002 -3.39941v-38c3.7002 0 11.7002 1.39941 11.7002 -4.60059v-32h36.5996
-v32c0 2.60059 2 4.60059 4.60059 4.60059h27.3994c2.60059 0 4.60059 -2 4.60059 -4.60059v-32h36.5996v32c0 2.60059 2 4.60059 4.59961 4.60059h27.4004c2.59961 0 4.59961 -2 4.59961 -4.60059v-178.3h36.6006v32c0 2.59961 2 4.59961 4.59961 4.59961h27.4004z
-M201.1 164.6v64c0 2.60059 -2 4.60059 -4.59961 4.60059h-27.4004c-2.59961 0 -4.59961 -2 -4.59961 -4.60059v-64c0 -2.59961 2 -4.59961 4.59961 -4.59961h27.4004c2.59961 0 4.59961 2 4.59961 4.59961zM347.5 164.6v64c0 2.60059 -2 4.60059 -4.59961 4.60059h-27.4004
-c-2.59961 0 -4.59961 -2 -4.59961 -4.60059v-64c0 -2.59961 2 -4.59961 4.59961 -4.59961h27.4004c2.59961 0 4.59961 2 4.59961 4.59961z" />
-    <glyph glyph-name="usb" unicode="&#xf287;" horiz-adv-x="640" 
-d="M641.5 192c0 -3.09961 -1.7002 -6.09961 -4.5 -7.5l-89.0996 -53.5c-1.40039 -0.799805 -2.80078 -1.40039 -4.5 -1.40039c-1.40039 0 -3.10059 0.300781 -4.5 1.10059c-2.80078 1.7002 -4.5 4.5 -4.5 7.7998v35.5996h-238.7
-c25.2998 -39.5996 40.5 -106.899 69.5996 -106.899h26.7002v26.7998c0 5 3.90039 8.90039 8.90039 8.90039h89.0996c5 0 8.90039 -3.90039 8.90039 -8.90039v-89.0996c0 -5 -3.90039 -8.90039 -8.90039 -8.90039h-89.0996c-5 0 -8.90039 3.90039 -8.90039 8.90039v26.6992
-h-26.7002c-75.3994 0 -81.0996 142.5 -124.7 142.5h-100.3c-8.09961 -30.5996 -35.8994 -53.5 -69 -53.5c-39.2998 0.100586 -71.2998 32.1006 -71.2998 71.4004s32 71.2998 71.2998 71.2998c33.1006 0 61 -22.7998 69 -53.5c39.1006 0 43.9004 -9.5 74.6006 60.4004
-c40.0996 89.0996 58.0996 82.0996 108.899 82.0996c7.5 20.9004 27 35.6006 50.4004 35.6006c29.5 0 53.5 -23.9004 53.5 -53.5c0 -29.6006 -23.9004 -53.5 -53.5 -53.5c-23.4004 0 -42.9004 14.7998 -50.4004 35.5996h-29.7998
-c-29.0996 0 -44.2998 -67.4004 -69.5996 -106.9h310.1v35.6006c0 3.2998 1.7002 6.09961 4.5 7.7998s6.40039 1.40039 8.90039 -0.299805l89.0996 -53.5c2.7998 -1.10059 4.5 -4.10059 4.5 -7.2002z" />
-    <glyph glyph-name="product-hunt" unicode="&#xf288;" horiz-adv-x="512" 
-d="M326.3 229.2c0 -20.5 -16.7002 -37.2002 -37.2002 -37.2002h-70.2998v74.4004h70.2998c20.5 0 37.2002 -16.7002 37.2002 -37.2002zM504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM375.9 229.2
-c0 47.8994 -38.9004 86.7998 -86.8008 86.7998h-119.899v-248h49.5996v74.4004h70.2998c47.9004 0 86.8008 38.8994 86.8008 86.7998z" />
-    <glyph glyph-name="mixcloud" unicode="&#xf289;" horiz-adv-x="640" 
-d="M424.43 228.271c42.3623 -9.1377 74.4805 -47.0693 74.4805 -92.2002c0 -52.3311 -42.6406 -94.6934 -94.9688 -94.6934h-289.614c-62.5752 0 -113.243 50.668 -113.243 112.966c0 56.7598 42.085 103.554 96.6299 111.582
-c22.9814 67.5586 86.9395 114.074 159.205 114.074c87.2158 0 159.205 -66.7266 167.511 -151.729zM403.941 83.7412c29.0713 0 52.6064 23.5352 52.6064 52.3301c0 22.1494 -14.1211 40.9766 -33.502 48.4531c-1.38477 -8.58301 -3.59961 -17.166 -6.36914 -25.4727
-c-8.01367 -25.6484 -49.0898 -14.2266 -40.1465 13.29c4.15332 12.7373 6.36914 26.0264 6.36914 39.5938c0 69.2197 -56.4834 125.702 -125.979 125.702c-49.8379 0 -94.6934 -29.626 -114.628 -73.9258c19.3809 -4.98438 37.3779 -14.9512 52.0527 -29.3486
-c19.9531 -19.9531 -10.2168 -50.1436 -30.1797 -30.1807c-13.29 13.291 -31.0107 20.7666 -49.8379 20.7666c-39.04 0 -70.8809 -31.5645 -70.8809 -70.6045s31.8408 -70.6035 70.8809 -70.6035h289.614zM639.01 136.071c0 -44.0244 -12.7363 -86.3867 -37.1016 -122.657
-c-4.15332 -6.0918 -10.7979 -9.41406 -17.7197 -9.41406c-16.3174 0 -27.1279 18.8262 -17.4434 32.9492c19.3809 29.3486 29.9033 63.6816 29.9033 99.1221c0 35.4395 -10.5215 69.7725 -29.9033 98.8447c-15.6553 22.8311 19.3613 47.2402 35.1631 23.5342
-c24.3662 -35.9932 37.1016 -78.3564 37.1016 -122.379zM568.13 136.071c0 -31.5654 -9.13672 -62.0215 -26.8564 -88.3252c-4.15332 -6.09082 -10.7988 -9.13574 -17.7207 -9.13574c-17.2012 0 -27.0215 18.9785 -17.4424 32.9473
-c13.0127 19.1045 19.6572 41.2559 19.6572 64.5137c0 22.9805 -6.64453 45.4072 -19.6572 64.5117c-15.7617 22.9863 19.0078 47.0947 35.1631 23.5352c17.7188 -26.0264 26.8564 -56.4834 26.8564 -88.0469z" />
-    <glyph glyph-name="scribd" unicode="&#xf28a;" horiz-adv-x="384" 
-d="M42.2998 195.3c-16.0996 19 -24.7002 45.9004 -24.7998 79.9004c0 100.399 75.2002 153.1 167.2 153.1c98.5996 1.60059 156.8 -49 184.3 -70.5996l-50.5 -72.1006l-37.2998 24.6006l26.8994 38.5996c-36.5 24 -79.3994 36.5 -123 35.7998
-c-50.6992 0.800781 -111.699 -27.1992 -111.699 -76.1992c0 -18.7002 11.1992 -20.7002 28.5996 -15.6006c23.2998 5.2998 41.9004 -0.599609 55.7998 -14c26.4004 -24.2998 23.2002 -67.5996 -0.700195 -91.8994c-29.1992 -29.5 -85.1992 -27.3008 -114.8 8.39941z
-M360 189.4c33.9004 -40.4004 36.7998 -138.2 -20.2998 -189.601c-39.2002 -33.5996 -82.2002 -44.0996 -133.601 -44.0996c-70.2998 -0.299805 -138.199 25.3994 -190.699 72.2002l-15.4004 13.7998l60.7998 71.7998l35.6006 -27.4004l-33.7002 -39.3994
-c41.7002 -30.9004 92.2002 -47.5 144.1 -47.2998c61.9004 0 104.7 23.5 121.4 64.3994c0.899414 4.2002 1.39941 8.40039 1.39941 12.7002c0 18.7002 -11.1992 20.7002 -28.5996 15.5996c-23.2998 -5.2998 -42.2002 0.5 -56.2998 14.4004
-c-12.4004 11.2998 -19.1006 27.5 -18.4004 44.2998c-0.599609 39.2002 32.4004 69.2002 70.5 67.2002c24.2998 0.799805 47.7002 -9.7998 63.2002 -28.5996z" />
-    <glyph glyph-name="bluetooth" unicode="&#xf293;" 
-d="M292.6 276.9l-42.8994 -42.9004l-0.299805 86zM249.4 57.0996l0.199219 86l42.9004 -42.8994zM416 188.6c0 -205.6 -71.9004 -252.6 -185.1 -252.6c-113.2 0 -198.9 47 -198.9 252.6c0 205.601 83.4004 259.4 196.6 259.4c113.2 0 187.4 -53.9004 187.4 -259.4z
-M257.5 188.6l79.4004 88.6006l-125.101 134.3v-176.9l-73.7998 73.8008l-27 -26.9004l92.7002 -93l-92.7002 -93l26.9004 -26.9004l73.7998 73.8008l2.2998 -170l127.4 127.5z" />
-    <glyph glyph-name="bluetooth-b" unicode="&#xf294;" horiz-adv-x="320" 
-d="M196.48 187.977l97.9111 -103.333l-148.552 -148.644l-2.71484 198.284l-86.1113 -86.1113l-31.4053 31.4053l108.061 108.398l-108.061 108.399l31.4053 31.4053l86.1113 -86.1113v206.33l145.981 -156.69zM237.34 290.973l-50.3145 50.3174l0.337891 -100.295z
-M187.363 134.96l-0.337891 -100.294l50.3145 50.3164z" />
-    <glyph glyph-name="gitlab" unicode="&#xf296;" horiz-adv-x="512" 
-d="M105.2 423.1c0 0 56.5 -174.8 56.5996 -174.8h-132l56.5 174.8c3.2002 8.90039 15.7998 8.90039 18.9004 0zM0.900391 160.3l28.7998 88l226.2 -294l-247.9 184c-6.7998 5.10059 -9.7002 14 -7.09961 22zM161.7 248.3h188.6l-94.2998 -294zM511.1 160.3
-c2.5 -8 -0.299805 -16.8994 -7.19922 -22l-247.9 -184l226.3 294zM425.7 423.1l56.5 -174.8h-132l56.5996 174.8c3.2002 8.90039 15.7998 8.90039 18.9004 0z" />
-    <glyph glyph-name="wpbeginner" unicode="&#xf297;" horiz-adv-x="512" 
-d="M462.799 125.626c56.2109 -64.3076 4.16211 -157.626 -91.8545 -157.626c-39.6025 0 -78.8242 17.6865 -100.143 50.04c-6.88672 -0.356445 -22.7021 -0.356445 -29.5898 0c-21.3643 -32.4209 -60.624 -50.04 -100.143 -50.04
-c-95.4902 0 -148.349 92.9961 -91.8555 157.626c-79.1387 131.851 31.2646 290.374 206.792 290.374c175.632 0 285.87 -158.626 206.793 -290.374zM123.152 208.598h41.5283v58.0752h-41.5283v-58.0752zM340.332 122.526v23.8389
-c-60.5059 -20.915 -132.355 -9.19824 -187.589 33.9707l0.246094 -24.8965c51.1006 -46.3672 131.746 -57.875 187.343 -32.9131zM189.579 208.598h166.058v58.0752h-166.058v-58.0752z" />
-    <glyph glyph-name="wpforms" unicode="&#xf298;" 
-d="M448 372.8v-361.7c0 -24.2998 -19 -43.1992 -43.2002 -43.1992h-361.6c-23.9004 0.0996094 -43.2002 18.6992 -43.2002 43.2998v361.6c0 24.1006 18.7998 43.2002 43.2002 43.2002h361.7c24 0 43.0996 -18.7998 43.0996 -43.2002zM410.7 11.2002v361.6
-c0 3 -2.60059 5.7998 -5.7998 5.7998h-9.30078l-110.3 -74.5996l-61.2998 49.9004l-61.2002 -49.9004l-110.3 74.7002h-9.2998c-3.2002 0 -5.7998 -2.7998 -5.7998 -5.7998v-361.7c0 -3 2.59961 -5.7998 5.7998 -5.7998h361.7
-c3.19922 -0.100586 5.7998 2.69922 5.7998 5.7998zM150.2 262v-37h-73.5v37h73.5zM150.2 187.6v-37.2998h-73.5v37.2998h73.5zM161.3 334.9l54 43.6992h-118.5zM371.3 262v-37h-196v37h196zM371.3 187.6v-37.2998h-196v37.2998h196zM286.7 334.9l64.5 43.6992h-118.4z
-M371.3 113v-37.2998h-99.3994v37.2998h99.3994z" />
-    <glyph glyph-name="envira" unicode="&#xf299;" 
-d="M0 416c477.6 0 366.6 -317.3 367.1 -366.3l80.9004 -81.7002h-26l-70.4004 71.2002c-39 -4.2002 -124.399 -34.5 -214.399 37c-90.2002 71.5 -85.2002 157.1 -137.2 339.8zM79.7002 370c-49.7002 23.5 -5.2002 -9.2002 -5.2002 -9.2002
-c45.2002 -31.2002 66 -73.7002 90.2002 -119.899c31.5 -60.2002 79 -139.7 144.2 -167.7c65 -28 34.1992 -12.5 6 8.5c-28.2002 21.2002 -68.2002 87 -91 130.2c-31.7002 60 -61 118.6 -144.2 158.1z" />
-    <glyph glyph-name="glide" unicode="&#xf2a5;" 
-d="M252.8 299.4c0 -8.80078 -1.59961 -17.7002 -3.39941 -26.4004c-5.80078 -27.7998 -11.6006 -55.7998 -17.3008 -83.5996c-1.39941 -6.30078 -8.2998 -4.90039 -13.6992 -4.90039c-23.8008 0 -30.5 26 -30.5 45.5c0 29.2998 11.1992 68.0996 38.5 83.0996
-c4.2998 2.5 9.19922 4.2002 14.0996 4.2002c11.4004 0 12.2998 -8.2998 12.2998 -17.8994zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM384 181c0 5.09961 -20.7998 37.7002 -25.5 39.5
-c-2.2002 0.900391 -7.2002 2.2998 -9.59961 2.2998c-23.1006 0 -38.7002 -10.5 -58.2002 -21.5l-0.5 0.5c4.2998 29.4004 14.5996 57.2002 14.5996 87.4004c0 44.5996 -23.7998 62.7002 -67.5 62.7002c-71.7002 0 -108 -70.8008 -108 -123.5c0 -54.7002 32 -85 86.2998 -85
-c7.5 0 6.90039 0.599609 6.90039 -2.30078c-10.5 -80.2998 -56.5 -82.8994 -56.5 -58.8994c0 24.3994 28 36.5 28.2998 38c-0.200195 7.59961 -29.2998 17.2002 -36.7002 17.2002c-21.0996 0 -32.6992 -33 -32.6992 -50.6006c0 -32.2998 20.3994 -54.7002 53.2998 -54.7002
-c48.2002 0 83.3994 49.7002 94.2998 91.7002c9.40039 37.7002 7 39.4004 12.2998 42.1006c20 10.0996 35.7998 16.7998 58.4004 16.7998c11.0996 0 19 -2.2998 36.7002 -5.2002c1.7998 -0.0996094 4.09961 1.7002 4.09961 3.5z" />
-    <glyph glyph-name="glide-g" unicode="&#xf2a6;" 
-d="M407.1 236.8c7.5 -2.89941 40.9004 -55.3994 40.9004 -63.3994c0 -2.90039 -3.7998 -5.80078 -6.7002 -5.80078c-28.3994 4.7002 -41.0996 8.40039 -58.8994 8.40039c-36.3008 0 -61.6006 -10.7998 -93.8008 -27c-8.5 -4.2998 -4.59961 -7.09961 -19.6992 -67.5996
-c-17.4004 -67.6006 -74 -145.4 -151.4 -145.4c-52.7002 0 -85.5 36 -85.5 87.9004c0 28.0996 18.5 79.1992 52.4004 79.2998c11.8994 0 58.5996 -15.4004 58.8994 -27.6006c-0.5 -2.39941 -45.5 -21.7998 -45.5 -61c0 -38.5 73.9004 -34.2998 90.7998 94.6006
-c0 4.7998 1 3.7998 -11 3.7998c-87.2998 0 -138.6 48.7002 -138.6 136.6c0 84.7002 58.2998 198.4 173.4 198.4c70.1992 0 108.399 -29.0996 108.399 -100.6c0 -48.5 -16.5 -93.1006 -23.5 -140.4l0.900391 -0.900391c31.2998 17.7002 56.3994 34.5 93.5 34.5
-c3.7998 0 11.8994 -2.39941 15.3994 -3.7998zM231.8 321.2c2.90039 13.8994 5.5 28.0996 5.60059 42.3994c0 15.4004 -1.40039 28.7002 -20 28.7002c-7.80078 0 -15.6006 -2.59961 -22.6006 -6.7002c-43.7998 -24.0996 -61.7998 -86.3994 -61.7998 -133.399
-c0 -31.2998 10.7002 -73.1006 49 -73.1006c8.7002 0 19.7002 -2.39941 22 7.80078c9.2002 44.6992 18.5 89.5996 27.7998 134.3z" />
-    <glyph glyph-name="viadeo" unicode="&#xf2a9;" 
-d="M276.2 297.5v-0.700195c-17.9004 52.6006 -42.6006 103.4 -70.7998 151.2c43.2998 -29.2002 67 -100 70.7998 -150.5zM308.9 175.8c15.0996 3.10059 29.5 9 42.1992 17c24.5 -58.5996 20.2002 -139.7 -36.3994 -201c-67.7998 -73.8994 -191.9 -74.5996 -259.8 0
-c-108.801 117.8 -31.6006 313.7 129.899 313.7c21.2998 0 42.6006 -3.5 62.5 -10.7002c-6.89941 -13.3994 -11.7002 -28.2002 -13.3994 -43.2998c-15.4004 6.5 -32.3008 9.59961 -49.1006 9.59961c-78 0 -135.399 -66.6992 -135.399 -142.3
-c0 -68.7998 45.5996 -126 111.3 -137.399c98.5 38.3994 116.6 188.199 116.6 280c0 11.6992 0 23.6992 -1 35.3994c12.4004 -36.0996 18.9004 -73.8994 18.9004 -112c0 -86.5 -35.1006 -158.399 -109.3 -205.1l-3.80078 -0.299805
-c80 -1.60059 137.801 61.6992 137.801 139.399c0 19.5 -3.40039 38.7998 -11 57zM418.1 436.3c52 -74 20.9004 -208.6 -58.0996 -208.6c-21.2998 0 -40.2002 11.3994 -55 25.7998c35.0996 19.2998 79.4004 49.2002 99.7002 84.9004
-c2.39941 4.7998 6.5 13.6992 7.2002 19.1992c-19.9004 -44.6992 -70.8008 -79.6992 -118.2 -90.6992c-7.5 11.6992 -12 24.6992 -12 38.7998c0 16.5 8.2002 38.5 20.5996 50.5c34.5 32.8994 84.7998 13.5996 115.8 80.0996z" />
-    <glyph glyph-name="viadeo-square" unicode="&#xf2aa;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM280.7 66.7998c35.3994 38.2998 38.0996 89 22.7998 125.601c-7.90039 -4.90039 -16.9004 -8.60059 -26.4004 -10.5
-c4.80078 -11.4004 6.90039 -23.5 6.90039 -35.7002c0 -48.6006 -36.2002 -88.2002 -86.2002 -87.2002l2.40039 0.200195c46.3994 29.2002 68.2998 74.0996 68.2998 128.2c0 23.7998 -4.09961 47.5 -11.7998 70v0.399414c-2.2998 31.6006 -17.1006 75.7998 -44.2002 94.1006
-c17.5996 -29.9004 33 -61.6006 44.2002 -94.5c0.599609 -7.30078 0.599609 -14.8008 0.599609 -22.1006c0 -57.3994 -11.3994 -151 -72.8994 -175c-41 7.2002 -69.5 42.9004 -69.5 85.9004c0 47.2002 35.7998 88.8994 84.5996 88.8994c10.5 0 21 -1.89941 30.7002 -6
-c1.09961 9.5 4.09961 18.7002 8.39941 27.1006c-12.5 4.59961 -25.7998 6.7002 -39.0996 6.7002c-101 0 -149.2 -122.5 -81.2002 -196.101c42.4004 -46.5996 120 -46.2002 162.4 0zM309 214.3c49.4004 0 68.7998 84.1006 36.2998 130.3
-c-19.3994 -41.5 -50.7998 -29.5 -72.3994 -50c-7.7002 -7.5 -12.9004 -21.2998 -12.9004 -31.5996c0 -8.7998 2.7998 -17 7.5 -24.2998c29.7002 6.89941 61.4004 28.7998 73.9004 56.7002c-0.400391 -3.40039 -3 -9 -4.5 -12c-12.7002 -22.3008 -40.4004 -41 -62.3008 -53
-c9.30078 -9 21.1006 -16.1006 34.4004 -16.1006z" />
-    <glyph glyph-name="snapchat" unicode="&#xf2ab;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM417.5 101.1c2.2002 5.30078 -0.900391 9.80078 -4.90039 10.8008c-46.2998 7.59961 -67.0996 55.0996 -68 57.0996
-c-0.0996094 0.0996094 -0.0996094 0.200195 -0.199219 0.299805c-2.40039 5 -3 9.2002 -1.60059 12.5c2.60059 6.2998 12.5 9.40039 19 11.5c1.7998 0.600586 3.5 1.10059 4.90039 1.7002c11.5 4.5 17.2998 10.0996 17.2002 16.5996
-c-0.100586 5.10059 -4.10059 9.60059 -10.4004 11.9004c-4 1.59961 -9.59961 1.90039 -13.5996 0c-5.5 -2.59961 -10.4004 -4 -14.7002 -4.2002c-2.7998 0.100586 -4.60059 0.799805 -5.7002 1.40039c1.40039 24 4.7002 58 -3.7998 77.0996
-c-16.2998 36.5 -49.6006 54.2998 -84.2998 54.2998c-0.600586 0 -6.10059 -0.0996094 -6.7002 -0.0996094c-14 0 -61.6006 -4 -84.1006 -54.2998c-8.5 -19.1006 -5.19922 -53.2002 -3.7998 -77.1006c-1.09961 -0.599609 -3.2998 -1.39941 -6.59961 -1.39941
-c-4.5 0 -9.7998 1.39941 -15.7002 4.2002c-7.5 3.5 -20.2998 -1.80078 -21.9004 -10.3008c-1 -4.89941 1.2002 -12.0996 17 -18.2998c6.10059 -2.5 20.6006 -5.2998 24 -13.2002c1.40039 -3.2998 0.900391 -7.5 -1.59961 -12.5
-c-0.0996094 -0.0996094 -0.200195 -0.199219 -0.200195 -0.299805c-0.899414 -2 -21.7002 -49.5 -68 -57.0996c-3.59961 -0.600586 -6.09961 -3.7998 -5.89941 -7.40039c0.699219 -13.8994 31.6992 -19.2998 45.5 -21.3994c1.39941 -1.90039 2.5 -9.90039 4.2998 -16
-c0.799805 -2.7002 2.89941 -6 8.2998 -6s13.2998 3.09961 25.7998 3.09961c17.6006 0 23.6006 -4 37.4004 -13.7002c9.89941 -7 27.5 -19.7998 48.5 -18.2002c20.7998 -0.899414 34.7002 7.90039 49.2002 18.2002c13.6992 9.7002 19.7998 13.7002 37.3994 13.7002
-c13 0 19.6006 -2.90039 25.7998 -2.90039h0.200195c4.40039 0 7 2.2002 8.10059 5.90039c1.7998 6.09961 2.89941 14 4.2998 15.9004c26.7002 4.19922 41.2998 10.0996 44.7998 18.1992z" />
-    <glyph glyph-name="snapchat-ghost" unicode="&#xf2ac;" horiz-adv-x="512" 
-d="M510.846 55.3271c-5.21094 -12.1572 -27.2383 -21.0889 -67.3594 -27.3184c-2.06445 -2.78613 -3.77539 -14.6855 -6.50781 -23.9561c-1.625 -5.56543 -5.62207 -8.86914 -12.1279 -8.86914l-0.296875 0.00585938c-9.39453 0 -19.2031 4.32227 -38.8516 4.32227
-c-26.5215 0 -35.6621 -6.04297 -56.2539 -20.5879c-21.832 -15.4375 -42.7715 -28.7637 -74.0273 -27.3984c-31.6455 -2.33398 -58.0244 16.9072 -72.8711 27.4033c-20.7139 14.6436 -29.8281 20.582 -56.2412 20.582c-18.8633 0 -30.7354 -4.71973 -38.8516 -4.71973
-c-8.07324 0 -11.2129 4.92188 -12.4219 9.04004c-2.70312 9.18848 -4.4043 21.2627 -6.52344 24.1299c-20.6787 3.20898 -67.3096 11.3438 -68.498 32.1504c-0.0107422 0.196289 -0.015625 0.393555 -0.015625 0.591797c0 5.27148 3.85645 9.64355 8.89258 10.4766
-c69.583 11.4551 100.925 82.9014 102.228 85.9346c0.0742188 0.175781 0.155273 0.34375 0.237305 0.514648c3.71289 7.53711 4.54395 13.8486 2.46289 18.7529c-5.05078 11.8965 -26.8721 16.1641 -36.0537 19.7959c-23.7148 9.36621 -27.0146 20.1279 -25.6113 27.5039
-c2.43652 12.8359 21.7246 20.7354 33.002 15.4531c8.91895 -4.18066 16.8428 -6.29688 23.5469 -6.29688c5.02148 0 8.21191 1.2041 9.95996 2.1709c-2.04297 35.9365 -7.10156 87.29 5.68652 115.969c33.7734 75.7188 105.356 81.6025 126.478 81.6025
-c0.943359 0 9.14062 0.0888672 10.1094 0.0888672c52.1484 0 102.255 -26.7803 126.724 -81.6426c12.7764 -28.6504 7.74902 -79.792 5.69434 -116.01c1.58203 -0.87207 4.35742 -1.94141 8.59961 -2.13867c6.39648 0.286133 13.8145 2.38867 22.0693 6.25684
-c6.08496 2.84668 14.4053 2.46094 20.4795 -0.0576172l0.0292969 -0.00976562c9.47559 -3.38574 15.4385 -10.2158 15.5889 -17.8701c0.183594 -9.74707 -8.52246 -18.165 -25.8779 -25.0186c-2.11816 -0.834961 -4.69434 -1.6543 -7.43457 -2.52441
-c-9.79688 -3.10645 -24.5996 -7.80566 -28.6152 -17.2715c-2.0791 -4.9043 -1.25684 -11.2109 2.45996 -18.748c0.0869141 -0.167969 0.166016 -0.341797 0.238281 -0.514648c1.30176 -3.03027 32.6152 -74.46 102.23 -85.9346
-c6.42676 -1.05762 11.1631 -7.87695 7.72461 -15.8584z" />
-    <glyph glyph-name="snapchat-square" unicode="&#xf2ad;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM393.5 101.1c2.2002 5.30078 -0.900391 9.80078 -4.90039 10.8008c-46.2998 7.59961 -67.0996 55.0996 -68 57.0996
-c-0.0996094 0.0996094 -0.0996094 0.200195 -0.199219 0.299805c-2.40039 5 -3 9.2002 -1.60059 12.5c2.60059 6.2998 12.5 9.40039 19 11.5c1.7998 0.600586 3.5 1.10059 4.90039 1.7002c11.5 4.5 17.2998 10.0996 17.2002 16.5996
-c-0.100586 5.10059 -4.10059 9.60059 -10.4004 11.9004c-4 1.59961 -9.59961 1.90039 -13.5996 0c-5.5 -2.59961 -10.4004 -4 -14.7002 -4.2002c-2.7998 0.100586 -4.60059 0.799805 -5.7002 1.40039c1.40039 24 4.7002 58 -3.7998 77.0996
-c-16.2998 36.5 -49.6006 54.2998 -84.2998 54.2998c-0.600586 0 -6.10059 -0.0996094 -6.7002 -0.0996094c-14 0 -61.6006 -4 -84.1006 -54.2998c-8.5 -19.1006 -5.19922 -53.2002 -3.7998 -77.1006c-1.09961 -0.599609 -3.2998 -1.39941 -6.59961 -1.39941
-c-4.5 0 -9.7998 1.39941 -15.7002 4.2002c-7.5 3.5 -20.2998 -1.80078 -21.9004 -10.3008c-1 -4.89941 1.2002 -12.0996 17 -18.2998c6.10059 -2.5 20.6006 -5.2998 24 -13.2002c1.40039 -3.2998 0.900391 -7.5 -1.59961 -12.5
-c-0.0996094 -0.0996094 -0.200195 -0.199219 -0.200195 -0.299805c-0.899414 -2 -21.7002 -49.5 -68 -57.0996c-3.59961 -0.600586 -6.09961 -3.7998 -5.89941 -7.40039c0.699219 -13.8994 31.6992 -19.2998 45.5 -21.3994c1.39941 -1.90039 2.5 -9.90039 4.2998 -16
-c0.799805 -2.7002 2.89941 -6 8.2998 -6s13.2998 3.09961 25.7998 3.09961c17.6006 0 23.6006 -4 37.4004 -13.7002c9.89941 -7 27.5 -19.7998 48.5 -18.2002c20.7998 -0.899414 34.7002 7.90039 49.2002 18.2002c13.6992 9.7002 19.7998 13.7002 37.3994 13.7002
-c13 0 19.6006 -2.90039 25.7998 -2.90039h0.200195c4.40039 0 7 2.2002 8.10059 5.90039c1.7998 6.09961 2.89941 14 4.2998 15.9004c26.7002 4.19922 41.2998 10.0996 44.7998 18.1992z" />
-    <glyph glyph-name="pied-piper" unicode="&#xf2ae;" horiz-adv-x="480" 
-d="M455.93 424.8c9.41992 2.40039 15.0703 -10.25 6.99023 -15.6797c-98.2295 -65.9199 -120.439 -127.561 -126.229 -160.18c-33.5205 -188.881 -101.37 -119.32 -184.311 -226.65c25.7607 -14.8125 55.8076 -23.3984 87.6299 -23.4004
-c97.6504 0 177.09 79.4502 177.09 177.11c-0.00488281 45.0508 -16.9824 86.25 -44.8496 117.41c4.72754 9.75293 10.4238 18.9131 17 27.3994c36.3574 -37.3457 58.75 -88.3779 58.75 -144.564v-0.245117c0 -114.87 -93.1299 -208 -208 -208s-208 93.1201 -208 208
-s93.1299 208 208 208c36.7422 -0.000976562 71.4697 -9.77246 101.35 -26.6602c46.4404 38.9697 87.8809 60.6602 114.58 67.46zM125 41.5996c64.7695 140.881 125.64 231.641 191.63 293.75c-23.0674 11.3037 -49.1611 17.75 -76.5615 17.75h-0.0683594
-c-97.6504 0 -177.1 -79.4395 -177.1 -177.1c0.0234375 -53.8203 24.0684 -102.002 62.0996 -134.4z" />
-    <glyph glyph-name="first-order" unicode="&#xf2b0;" 
-d="M12.9004 218.8c0.0996094 0.100586 0.199219 0.299805 0.299805 0.400391c0 -0.100586 0 -0.299805 -0.100586 -0.400391h-0.199219zM224 351.4c7.40039 0 14.5996 -0.5 21.7002 -1.7002l-4 -67.7002l22.2998 64.2998c14.2998 -3.7998 27.7002 -9.5 40 -16.8994
-l-29.4004 -61.1006l45.1006 50.9004c11.5 -8.90039 21.7002 -19.2002 30.5996 -30.9004l-50.5996 -45.3994l60.8994 29.6992c7.5 -12.2998 12.9004 -26 16.6006 -40.2998l-64 -22.2998l67.7002 4c1.09961 -7.09961 1.39941 -14.5996 1.39941 -22
-s-0.299805 -14.5996 -1.39941 -21.7002l-67.4004 4l64 -22.2998c-3.7002 -14.5996 -9.5 -28 -16.5996 -40.2998l-61.1006 29.3994l50.6006 -45.0996c-8.60059 -11.7998 -18.9004 -22 -30.6006 -30.9004l-44.8994 50.9004l29.3994 -61.2998
-c-12.2998 -7.5 -25.7002 -12.9004 -40 -16.9004l-22.5996 65.1006l4 -68.6006c-7.10059 -1.09961 -14.2998 -1.7002 -21.7002 -1.7002c-7.09961 0 -14.5996 0.600586 -21.7002 1.7002l4 68l-22.2998 -64.5996c-14.2998 3.7998 -27.7002 9.5 -40 16.8994l29.5 61.4004
-l-44.9004 -50.9004c-11.7998 8.60059 -22 19.2002 -30.8994 30.9004l50.8994 45.0996l-61.0996 -29.6992c-7.2002 12.5996 -12.9004 26 -16.5996 40.2998l64 22.5996l-67.7002 -4c-0.799805 7.10059 -1.40039 14.2998 -1.40039 21.7002s0.5 14.9004 1.40039 22l68 -4
-l-64.2998 22.5996c3.69922 14.3008 9.5 27.7002 16.5996 40l61.0996 -29.6992l-50.5996 45.3994c8.90039 11.7998 19.2002 22 30.5996 30.9004l45.1006 -50.9004l-29.4004 61.4004c12.2998 7.2002 25.7002 12.8994 40 16.5996l22 -64l-3.7002 67.4004
-c6.80078 1.09961 14.3008 1.7002 21.4004 1.7002zM443.4 320v-256l-219.4 -128l-219.4 128v256l219.4 128zM426.3 309.7l-202.3 117.399l-202.3 -117.399v-235.101l202.3 -117.699l202.3 117.699v235.101zM224 410.9l187.7 -109.4v-218.9l-187.7 -109.5l-187.7 109.5
-v218.801zM224 360c-92.2998 0 -166.9 -75.0996 -166.9 -168c0 -92.5996 74.6006 -167.7 166.9 -167.7c92 0 166.9 75.1006 166.9 167.7c0 92.9004 -74.9004 168 -166.9 168z" />
-    <glyph glyph-name="yoast" unicode="&#xf2b1;" 
-d="M91.2998 372h186l-7 -18.9004h-179c-39.7002 0 -71.8994 -31.5996 -71.8994 -70.2998v-205.399c0 -35.4004 24.8994 -70.3008 84 -70.3008v-19.0996h-12.1006c-50.0996 0 -91.2998 40.2002 -91.2998 89.5v205.3c0 49.2998 40.7002 89.2002 91.2998 89.2002zM320.4 428
-h66.5c-143.801 -378.1 -145.7 -398.9 -184.7 -439.3c-20.7998 -21.6006 -49.2998 -31.7002 -78.2998 -32.7002v51.0996c49.1992 7.7002 64.5996 49.9004 64.5996 75.3008c0 20.0996 0.599609 12.5996 -82.0996 223.199h61.3994l50.4004 -156.6zM448 286.5v-298.5h-214
-c6.59961 9.59961 10.7002 16.2998 12.0996 19.4004h182.5v279.1c0 32.5 -17.0996 51.9004 -48.1992 62.9004l6.69922 17.5996c41.7002 -13.5996 60.9004 -43.0996 60.9004 -80.5z" />
-    <glyph glyph-name="themeisle" unicode="&#xf2b2;" horiz-adv-x="512" 
-d="M208 359.714c0 10 6.28613 21.7139 17.7148 21.7139c11.1426 0 17.7139 -11.7139 17.7139 -21.7139c0 -10.2852 -6.57129 -21.7139 -17.7139 -21.7139c-11.4287 0 -17.7148 11.4287 -17.7148 21.7139zM512 199.714c0 -36.001 -11.4287 -102.286 -36.2861 -129.714
-c-22.8574 -24.8584 -87.4277 -61.1426 -120.856 -70.5723l-1.14355 -0.286133v-32.5703c0 -16.2861 -12.5723 -30.5713 -29.1426 -30.5713c-10 0 -19.4297 5.71387 -24.5723 14.2861c-5.42676 -8.57227 -14.8564 -14.2861 -24.8564 -14.2861
-s-19.4287 5.71387 -24.8574 14.2861c-5.14258 -8.57227 -14.5713 -14.2861 -24.5703 -14.2861c-10.2861 0 -19.4287 5.71387 -24.8574 14.2861c-5.14355 -8.57227 -14.5713 -14.2861 -24.5713 -14.2861c-18.8574 0 -29.4287 15.7139 -29.4287 32.8574
-c-16.2861 -12.2852 -35.7158 -19.4287 -56.5713 -19.4287c-22 0 -43.4287 8.28516 -60.2861 22.8574c10.2852 0.286133 20.5713 2.28613 30.2852 5.71387c-20.8574 5.71387 -39.4277 18.8574 -52 36.2861c21.3701 -4.64551 46.209 -1.67285 67.1426 11.1426
-c-22 22 -56.5703 58.8574 -68.5713 87.4287c-5.71387 13.4287 -6.85645 31.4287 -6.85645 45.7139c0 49.7139 20.2861 160 86.2861 160c10.5713 0 18.8564 -4.8584 23.1426 -14.8574c3.7041 5.41992 7.6709 10.5186 12 15.4277c2 2.57227 5.71387 5.42969 7.14355 8.28613
-c7.99902 12.5713 11.7139 21.1426 21.7139 34c32.2852 41.1445 81.7139 69.4297 134.856 69.4297c6 0 12 -0.285156 17.7148 -1.14355c10.8564 11.7148 26 18.2861 41.7148 18.2861c14.5703 0 29.7139 -6 40 -16.2861c0.856445 -0.857422 1.42773 -2.28613 1.42773 -3.42773
-c0 -3.71387 -10.2852 -13.4287 -12.8574 -16.2861c4.28613 -1.42871 15.7148 -6.8584 15.7148 -12c0 -2.85742 -2.85742 -5.14258 -4.57129 -7.14258c31.4287 -27.7148 49.4287 -67.1436 56.2861 -108c4.28613 5.14258 10.2852 8.57129 17.1426 8.57129
-c10.5713 0 20.8574 -7.14355 28.5713 -14.001c20.8564 -18.5703 25.7139 -53.1416 25.7139 -79.7139zM188 358.572c0 -18.2861 12.5713 -37.1436 32.2861 -37.1436c19.7139 0 32.2852 18.8574 32.2852 37.1436c0 18 -12.5713 36.8564 -32.2852 36.8564
-c-19.7148 0 -32.2861 -18.8574 -32.2861 -36.8564zM237.714 254c0 19.7139 3.71387 39.1426 8.57129 58.2861c-52.0391 -79.5342 -13.5312 -184.571 68.8574 -184.571c21.4287 0 42.5713 7.71387 60 20c2 7.42871 3.71484 14.8574 3.71484 22.5723
-c0 14.2861 -6.28613 21.4277 -20.5723 21.4277c-4.57129 0 -9.14355 -0.856445 -13.4287 -1.71387c-63.3438 -12.668 -107.143 -3.66895 -107.143 63.999zM196.572 -0.858398c0 11.1436 -8.8584 20.8574 -20.2861 20.8574c-11.4287 0 -20 -9.71484 -20 -20.8574v-32.5703
-c0 -11.1436 8.57129 -21.1426 20 -21.1426c11.4277 0 20.2861 9.71484 20.2861 21.1426v32.5703zM245.715 -0.858398c0 11.1436 -8.57227 20.8574 -20 20.8574c-11.4287 0 -20.2861 -9.71484 -20.2861 -20.8574v-32.5703c0 -11.1436 8.85742 -21.1426 20.2861 -21.1426
-c11.4277 0 20 10 20 21.1426v32.5703zM295.428 -0.858398c0 11.1436 -8.85645 20.8574 -20.2852 20.8574s-20.2852 -9.71484 -20.2852 -20.8574v-32.5703c0 -11.1436 8.85645 -21.1426 20.2852 -21.1426s20.2852 9.71484 20.2852 21.1426v32.5703zM345.143 -0.858398
-c0 11.1436 -8.85645 20.8574 -20.2852 20.8574s-20.2861 -9.71484 -20.2861 -20.8574v-32.5703c0 -11.1436 8.85742 -21.1426 20.2861 -21.1426s20.2852 10 20.2852 21.1426v32.5703zM421.714 162c-30.8564 -59.1416 -90.2852 -102.572 -158.571 -102.572
-c-96.5703 0 -160.57 84.5723 -160.57 176.572c0 16.8574 2 33.4287 6 49.7139c-20 -33.7148 -29.7139 -72.5723 -29.7139 -111.429c0 -60.2861 24.8564 -121.715 71.4287 -160.857c5.14258 9.71387 14.8564 16.2861 26 16.2861c10 0 19.4277 -5.71387 24.5713 -14.2861
-c5.42871 8.57129 14.5703 14.2861 24.8574 14.2861c10 0 19.4277 -5.71387 24.5713 -14.2861c5.42871 8.57129 14.8564 14.2861 24.8574 14.2861c10 0 19.4287 -5.71387 24.8574 -14.2861c5.14258 8.57129 14.5713 14.2861 24.5723 14.2861
-c10.8564 0 20.8564 -6.57227 25.7139 -16c43.4268 36.2861 68.5693 92 71.4258 148.286zM432.286 261.714c0 53.7139 -34.5713 105.714 -92.5723 105.714c-30.2852 0 -58.5713 -15.1426 -78.8564 -36.8564c-19.9951 -66.3828 -27.4473 -136.571 41.4287 -136.571
-c28.8047 0 97.3564 28.5381 84.2861 -36.8574c28.8564 26 45.7139 65.7148 45.7139 104.571z" />
-    <glyph glyph-name="google-plus" unicode="&#xf2b3;" horiz-adv-x="512" 
-d="M256 440c136.9 0 248 -111.1 248 -248s-111.1 -248 -248 -248s-248 111.1 -248 248s111.1 248 248 248zM185.3 68c71.2998 0 118.8 50.4004 118.8 121.2c0.000976562 0.140625 0.00195312 0.182617 0.00195312 0.323242c0 6.96289 -0.65332 13.7744 -1.90137 20.377
-h-116.9v-42.6006h70.1006c-5.2002 -34.2002 -37.5 -53.2998 -70.1006 -53.2998c-43 0 -77.2002 35.5 -77.2002 78.0996c0 42.6006 34.3008 78.1006 77.2002 78.1006c18.1006 0 36.2002 -6.2002 49.4004 -19.1006l33.5996 32.6006
-c-22.8994 21.2998 -51.7002 32.2998 -83 32.2998c-68.4375 0 -124 -55.5625 -124 -124s55.5625 -124 124 -124zM415.5 174.2h35.2002v35.5h-35.2002v35.5h-35.5v-35.5h-35.5v-35.5h35.5v-35.5h35.5v35.5z" />
-    <glyph glyph-name="font-awesome" unicode="&#xf2b4;" 
-d="M397.8 416c27.5 0 50.2002 -22.7002 50.2002 -50.2002v-347.6c0 -27.5 -22.7002 -50.2002 -50.2002 -50.2002h-347.6c-27.5 0 -50.2002 22.7002 -50.2002 50.2002v347.6c0 27.5 22.7002 50.2002 50.2002 50.2002h347.6zM352.4 131.7h0.0996094v140.3
-c0 4.2002 -4.2002 7.7998 -9 7.7998c-6 0 -31.0996 -16.0996 -53.7998 -16.0996c-4.7002 0 -8.90039 0.599609 -13.1006 2.39941c-20.2998 7.7002 -38.1992 13.7002 -60.8994 13.7002c-20.9004 0 -43 -6.5 -61.5 -14.2998
-c-1.7998 -1.2002 -3.60059 -1.7998 -5.40039 -2.40039v18.5c8.2998 6 13.1006 15.5 13.1006 26.3008c0 18.5996 -15 33.5 -33.5 33.5c-18.6006 0 -33.5 -15 -33.5 -33.5c0 -10.8008 5.2998 -20.3008 13.0996 -26.3008v-218.6c0 -11.2998 9 -20.2998 20.2998 -20.2998
-c8.90039 0 16.7002 5.89941 19.1006 14.2998v1.2002c0.599609 1.2002 0.599609 3 0.599609 4.7998v45.4004c1.2002 0.599609 2.40039 0.599609 3.59961 1.19922c19.7002 8.90039 44.2002 17.3008 67.5 17.3008c32.3008 0 44.8008 -16.7002 71.7002 -16.7002
-c19.2002 0 37.1006 6.5 53.7998 13.7002c4.2002 1.7998 7.80078 3.59961 7.80078 7.7998z" />
-    <glyph glyph-name="linode" unicode="&#xf2b8;" 
-d="M437.4 221.7c0.599609 -2 -8.80078 -66.2998 -9.7002 -72.7998c0 -0.900391 -0.5 -1.7002 -1.10059 -2l-54.5996 -43.7002c-1.09961 -0.900391 -2.59961 -0.900391 -3.7002 0l-20.2998 14l-2.2998 -33.4004c0 -0.899414 -0.200195 -1.7002 -1.10059 -2.2998
-l-66.8994 -53.4004c-1.10059 -0.899414 -2.90039 -0.899414 -4 0l-28 23.7002l2 -46c0 -0.899414 -0.200195 -1.7002 -1.10059 -2.2998l-83.6992 -66.9004c-0.600586 -0.299805 -1.10059 -0.599609 -1.7002 -0.599609c-0.900391 0.299805 -1.7002 0.299805 -2.2998 0.900391
-l-65.1006 69.0996c-1.5 1.40039 -15.5 72 -16.8994 79.0996c-0.300781 1.10059 0.5 2.5 1.39941 3.10059l17.4004 10.5996c-3.40039 3.2002 -26.5 23.4004 -27.1006 26.2998l-20.5996 100.301c-0.299805 1.09961 0.299805 2.5 1.7002 3.39941l26.8994 12.9004
-c-4.59961 3.5 -37.6992 27.5 -38.5996 30.8994l-27.4004 133.101c-0.299805 1.7002 0.600586 3.09961 2 3.7002l123.7 38.5996c0.600586 0 1.40039 0 2.2998 -0.299805l90.6006 -43.7002c0.799805 -0.599609 1.7002 -1.7002 1.7002 -2.59961l5.69922 -132.301
-c0 -1.19922 -0.599609 -2.2998 -1.69922 -2.89941l-33.7002 -17.4004l36 -24.2998c0.799805 -0.299805 1.39941 -1.40039 1.39941 -2.2998l1.40039 -35.1006l34.5996 21.2002c0.800781 0.600586 2.2002 0.600586 3.10059 0l24 -16l0.899414 31.4004
-c0 0.899414 0.5 2 1.40039 2.59961l58.9004 36c1.09961 0.600586 2.19922 0.600586 3.09961 0l70 -38.5996c0.5 -0.600586 1.09961 -1.10059 1.40039 -2zM232.6 216.9l-100.6 -57.2002l14 -96.6006l90.5996 61.2002zM224.9 396.9l-120.9 -46.6006l19.7002 -134.8
-l106.6 55.4004zM44 274.9l73.0996 -57.2002l-19.3994 132.899l-79.7002 49.4004zM74.5996 127.1l64.8008 -60.7998l-13.7002 93.4004l-70 58.2998zM98.9004 9.40039l57.6992 -61.2002l-9.69922 67.3994l-61.7002 60.9004zM163.4 -55.0996l78.1992 62.2998l-3.09961 70
-l-85.7002 -61.4004zM245.4 60l27.0996 -22.9004l-0.599609 68.3008l-29.4004 22.5996c0 -2.2998 1.2002 -6.2998 -1.09961 -8l-22.3008 -14.9004l24.3008 -20c2.89941 -2.19922 2 -21.6992 2 -25.0996zM339.7 85.4004l4.2002 66.8994l-65.7002 -46.8994l0.599609 -68.6006z
-M367.4 111.1l5.7998 66.6006l-64.6006 40.5996l-0.599609 -30l41.2002 -27.2002c0.799805 -0.599609 1.39941 -1.69922 1.09961 -2.59961l-2 -34zM422 150.9l8.5 63.3994l-51.0996 -36.5996l-5.7002 -65.1006z" />
-    <glyph glyph-name="quora" unicode="&#xf2c4;" 
-d="M440.5 61.2998c1.7998 -18 -7.2002 -93.2998 -89 -93.2998c-49.5 0 -75.5 28.7002 -95.2002 62.2998c-117.7 -32.5996 -249 54.9004 -249 189c0 117 98 196.7 197.7 196.7c101.8 0 198.5 -79.2002 198.4 -196.7c0 -65.5 -30.5 -118.8 -74.7002 -153
-c14.2002 -21.5996 29 -35.7998 49.5 -35.7998c22.5 0 31.5 17.2998 33 30.7998h29.2998zM297 118.8c11.2998 24.9004 16.7998 58.7002 16.7002 100.5c0 104.2 -32.5 157.7 -108.7 157.7c-75 0 -107.5 -53.5 -107.5 -157.9c0 -103.699 32.5 -156.699 107.5 -156.699
-c12 0 22.7002 1.19922 32.7002 4.19922c-15.5 30.5 -33.7002 61.3008 -69.2002 61.3008c-6.7998 0 -13.5996 -1 -19.7998 -4l-12.2002 24.2998c14.7002 12.7998 38.5 22.7998 69 22.7998c47.7998 0 72 -23 91.5 -52.2002z" />
-    <glyph glyph-name="free-code-camp" unicode="&#xf2c5;" horiz-adv-x="576" 
-d="M97.2197 351.79c-43.2197 -41.6201 -64.9697 -92.5898 -64.8193 -154.021c0.15918 -68 23.0293 -122.67 67.4795 -165c9.33984 -8.34961 13.2002 -14.9199 13.2002 -20.5498c0 -2.75 -1.90039 -5.62012 -3.81055 -8.37988
-c-2.19141 -2.1543 -5.12598 -3.56836 -8.36914 -3.83984c-10.2803 0 -24.6807 12.1396 -43.4707 35.79c-36.5898 44.8701 -53.1992 94.3398 -54.0596 161.87s20.3096 113.34 61.79 160.6c14.9199 16.9004 27.3594 25.6904 35.8398 25.6904
-c3.12402 -0.0712891 6.03027 -1.11914 8.38965 -2.83984c1.91016 -1.91016 3.83008 -4.66016 3.83008 -7.41992c0 -4.78027 -5.63965 -11.25 -16 -21.9004zM239.47 27.9297c0.580078 -0.370117 0.910156 -0.549805 0.910156 -0.549805zM333.26 27.3799l0.169922 0.129883
-c-0.189453 -0.129883 -0.259766 -0.179688 -0.169922 -0.129883zM336.39 185.56c16.2305 -4.14941 24.04 24.04 30.0303 30.0508c84.71 -110.101 -27.5098 -184.45 -33 -188.101c3.86035 3.04004 44.3301 49.7705 21.5801 76.5498
-c-1 1.03027 -67.2998 -20.0596 -54.8398 53.54c8.30957 48.6807 -7.60059 71.1309 -7.60059 71.1309c-17.9697 -37.29 -32.5 -53.8604 -43.5 -72.1602c-56.9492 -92.9404 -16.2793 -124.29 -9.5498 -128.641c-10.54 6.5 -108.27 70.8799 -34 175.23
-c78.3701 110.189 62.8301 159.57 62.8301 159.57c118.46 -94.2803 51.8105 -173.021 68.0498 -177.171zM510.88 358.31c41.4404 -47.3096 62.6699 -93.1592 61.75 -160.649s-17.4697 -117.021 -54.0596 -161.87c-18.79 -23.6602 -33.1904 -35.79 -43.4707 -35.79
-c-3.24219 0.279297 -6.17676 1.69629 -8.36914 3.84961c-1.91016 2.76074 -3.81055 5.63086 -3.81055 8.38086c0.0205078 5.62988 3.86035 12.1992 13.2002 20.5498c44.4795 42.3701 67.3203 97 67.4795 165c0.180664 61.4697 -21.5898 112.45 -64.8193 154.06
-c-10.4004 10.6406 -16 17.1201 -16 21.9004c0 2.75977 1.91992 5.50977 3.83008 7.41992c2.35938 1.7207 5.26562 2.76855 8.38965 2.83984c8.51953 0 21 -8.79004 35.8799 -25.6904z" />
-    <glyph glyph-name="telegram" unicode="&#xf2c6;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM369.8 270.1c3.60059 16.8008 -6.09961 23.5 -17.2002 19.5l-239.1 -92.1992c-16.4004 -6.40039 -16.0996 -15.5 -2.7998 -19.7002l61.2002 -19.1006l142 89.4004
-c6.59961 4.40039 12.6992 1.90039 7.69922 -2.5l-114.899 -103.8l-4.40039 -63.1006c6.40039 0 9.2002 2.80078 12.5 6.10059l29.9004 28.7998l62 -45.7002c11.2998 -6.39941 19.3994 -3.09961 22.3994 10.5z" />
-    <glyph glyph-name="bandcamp" unicode="&#xf2d5;" horiz-adv-x="512" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM304.2 113.9l84.7002 156.1h-181l-84.7002 -156.1h181z" />
-    <glyph glyph-name="grav" unicode="&#xf2d6;" horiz-adv-x="512" 
-d="M301.1 236c4.40039 -4.40039 4.40039 -11.9004 0 -16.2998l-9.69922 -9.7002c-4.40039 -4.7002 -11.9004 -4.7002 -16.6006 0l-10.5 10.5c-4.39941 4.7002 -4.39941 11.9004 0 16.5996l9.7002 9.7002c4.40039 4.40039 11.9004 4.40039 16.5996 0zM270.9 255.7
-c-2.7002 -2.7998 -7.40039 -2.7998 -10.5 0c-2.80078 3 -2.80078 7.7002 0 10.5c3 3 7.69922 3 10.5 0c3 -2.7002 3 -7.5 0 -10.5zM244.9 250.4c2.7998 3 7.5 3 10.5 0c2.7998 -2.7002 2.7998 -7.40039 0 -10.2002c-3 -3 -7.7002 -3 -10.5 0c-3 2.7002 -3 7.39941 0 10.2002
-zM317.4 263.7c-19.9004 14.3994 -33.8008 43.2002 -11.9004 68.0996c21.5996 24.9004 40.7002 17.2002 59.7998 -0.799805c11.9004 -11.2998 29.2998 -24.9004 17.2002 -48.2002c-12.5 -23.5 -45.0996 -33.2002 -65.0996 -19.0996zM365.1 308.2
-c-8.89941 10 -23.2998 -6.90039 -15.5 -16.1006c7.40039 -9 32.1006 -2.39941 15.5 16.1006zM504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM437.8 149.4c2.5 16.0996 -20.2002 16.5996 -25.2002 25.6992
-c-13.5996 24.1006 -27.6992 36.8008 -54.5 30.4004c11.6006 8 23.5 6.09961 23.5 6.09961c0.300781 6.40039 0 13 -9.39941 24.9004c3.89941 12.5 0.299805 22.4004 0.299805 22.4004c15.5 8.59961 26.7998 24.3994 29.0996 43.1992
-c3.60059 31 -18.7998 59.2002 -49.7998 62.8008c-22.0996 2.5 -43.7002 -7.7002 -54.2998 -25.7002c-23.2002 -40.1006 1.40039 -70.9004 22.4004 -81.4004c-14.4004 1.40039 -34.3008 11.9004 -40.1006 34.2998c-6.59961 25.7002 2.7998 49.8008 8.90039 61.4004
-c0 0 -4.40039 5.7998 -8 8.90039c0 0 -13.7998 0 -24.6006 -5.30078c11.9004 15.2002 25.2002 14.4004 25.2002 14.4004c0 6.40039 -0.599609 14.9004 -3.59961 21.5996c-5.40039 11 -23.7998 12.9004 -31.7002 -2.7998c0.0996094 0.200195 0.299805 0.400391 0.400391 0.5
-c-5 -11.8994 -1.10059 -55.8994 16.8994 -87.2002c-2.5 -1.39941 -9.09961 -6.09961 -13 -10c-21.5996 -9.69922 -56.2002 -60.2998 -56.2002 -60.2998c-28.1992 -10.7998 -77.1992 -50.8994 -70.5996 -79.7002c0.299805 -3 1.40039 -5.5 3 -7.5
-c-2.7998 -2.19922 -5.5 -5 -8.2998 -8.2998c-11.9004 -13.7998 -5.2998 -35.2002 17.7002 -24.3994c15.7998 7.19922 29.5996 20.1992 36.2998 30.3994c0 0 -5.5 5 -16.2998 4.40039c27.6992 6.59961 34.2998 9.39941 46.1992 9.09961c8 -3.89941 8 34.2998 8 34.2998
-c0 14.7002 -2.19922 31 -11.0996 41.5c12.5 -12.1992 29.0996 -32.6992 28 -60.5996c-0.799805 -18.2998 -15.2002 -23 -15.2002 -23c-9.09961 -16.5996 -43.2002 -65.9004 -30.3994 -106c0 0 -9.7002 14.9004 -10.2002 22.0996
-c-17.4004 -19.3994 -46.5 -52.2998 -24.6006 -64.5c26.6006 -14.6992 108.801 88.6006 126.2 142.301c34.6006 20.7998 55.4004 47.2998 63.9004 65c22 -43.5 95.2998 -94.5 101.1 -59z" />
-    <glyph glyph-name="etsy" unicode="&#xf2d7;" horiz-adv-x="384" 
-d="M384 100c-1.75 -10.75 -13.75 -110 -15.5 -132c-117.879 4.29883 -219.895 4.74316 -368.5 0v25.5c45.457 8.94824 60.627 8.01855 61 35.25c1.79297 72.3223 3.52441 244.143 0 322c-1.0293 28.46 -12.1299 26.7646 -61 36v25.5
-c73.8857 -2.3584 255.933 -8.55078 362.999 3.75c-3.5 -38.25 -7.75 -126.5 -7.75 -126.5h-23.249c-11.0527 42.835 -18.7588 90.5 -54.75 90.5h-137c-10.25 0 -10.75 -3.5 -10.75 -9.75v-163.75c58 -0.5 88.5 2.5 88.5 2.5c29.7695 0.951172 27.5596 8.50195 40.75 65.251
-h25.75c-4.40723 -101.351 -3.91016 -61.8291 -1.75 -160.25h-25.75c-9.15527 40.0859 -9.06543 61.0449 -39.501 61.5c0 0 -21.5 2 -88 2v-139c0 -26 14.25 -38.25 44.25 -38.25h89.251c63.6357 0 66.5645 24.9961 98.751 99.75h22.249v-0.000976562z" />
-    <glyph glyph-name="imdb" unicode="&#xf2d8;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM21.2998 218.8h-0.299805c0.0996094 0.100586 0.200195 0.299805 0.299805 0.400391v-0.400391zM97 128.2v127.8h-33v-127.8h33z
-M210.2 128.2v127.8h-43l-7.60059 -59.9004c-2.69922 20 -5.39941 40.1006 -8.69922 59.9004h-42.8008v-127.8h29v84.5l12.2002 -84.5h20.6006l11.5996 86.3994v-86.3994h28.7002zM221.6 128.2c86.1006 -0.100586 75 -6 75 82.5c0 8.09961 0.300781 16.7998 -1.39941 24.3994
-c-4.2998 22.5 -31.4004 20.9004 -49 20.9004h-24.6006v-127.8zM382.5 157.4v36c0 17.2998 -0.799805 30.0996 -22.2002 30.0996c-8.89941 0 -14.8994 -2.7002 -20.8994 -9.2002v41.7002h-31.7002v-127.8h29.7998l1.90039 8.09961
-c5.69922 -6.7998 11.8994 -9.7998 20.8994 -9.7998c19.7998 0 22.2002 15.2002 22.2002 30.9004zM265 218.1v-49.2998c0 -9.7002 1.90039 -18.7002 -10.2998 -18.3994v83.6992c11.8994 0 10.2998 -6.2998 10.2998 -16zM350.5 192v-32.7002
-c0 -5.39941 1.59961 -14.3994 -6.2002 -14.3994c-1.59961 0 -3 0.799805 -3.7998 2.39941c-2.2002 5.10059 -1.09961 44.1006 -1.09961 44.7002c0 3.7998 -1.10059 12.7002 4.89941 12.7002c7.2998 0 6.2002 -7.2998 6.2002 -12.7002z" />
-    <glyph glyph-name="ravelry" unicode="&#xf2d9;" horiz-adv-x="512" 
-d="M498.252 213.777c0.129883 -0.613281 0.322266 -1.21777 0.561523 -1.78223v-37.0557c-0.194336 -0.300781 -0.516602 -0.583008 -0.552734 -0.900391c-0.619141 -5.36426 -0.837891 -10.8076 -1.87012 -16.0869c-2.06934 -10.6074 -4.15723 -21.2393 -7.0166 -31.6523
-c-4.94531 -18.0205 -12.7578 -34.8809 -22.2998 -50.9258c-8.94336 -15.126 -19.4043 -28.9668 -31.4268 -41.6387c-3.74609 -3.92188 -7.54688 -7.80078 -11.5107 -11.5c-5.31152 -4.95703 -10.5146 -10.1094 -16.2998 -14.457
-c-9.3418 -7.02344 -18.9883 -13.6533 -28.7373 -20.1006c-15.083 -9.81543 -31.6211 -17.9053 -48.9512 -23.8174c-15.3828 -5.38281 -31.1533 -9.38574 -47.4893 -10.7178c-2.52734 -0.206055 -5.02051 -0.753906 -7.52734 -1.14258h-32.2891
-c-0.358398 0.245117 -0.762695 0.436523 -1.18945 0.55957c-6.1377 0.620117 -12.3418 0.863281 -18.4121 1.87305c-13.8301 2.22949 -27.5977 5.58398 -40.6416 9.83496c-19.5498 6.43359 -38.4463 15.0176 -55.8994 25.2773
-c-15.0488 8.79004 -28.9365 18.9688 -41.7871 30.5859c-9.6875 8.70605 -18.3936 18.0898 -26.3584 28.416c-9.38184 12.1963 -17.4385 25.4316 -24 39.5283c-7.5918 16.6592 -13.3467 34.7812 -16.7295 53.2998c-2.35547 13.1611 -3.85059 26.5459 -4.4248 40.2402
-c-0.136719 3.0332 -0.209961 5.74121 -0.209961 8.80859c0 9.05566 0.599609 17.9717 1.76172 26.7119c1.52637 11.874 4.15625 23.6367 7.69043 34.7588c5.05762 15.7021 12.0283 30.7871 20.4941 44.6006c9.58203 15.9961 20.7793 30.6025 33.6484 43.9502
-c9.55469 9.83496 19.7539 19.0605 29.9268 28.2676c5.70605 5.1582 11.8066 9.9082 17.9736 14.5186c12.0029 9.04004 24.6963 17.1025 38.0801 24.1572c12.5137 6.63281 25.9795 12.1963 39.7686 16.3555c10.9453 3.41016 22.5254 5.84375 34.2559 7.09961
-c2.42773 0.225586 4.82617 0.761719 7.23633 1.15039c10.7627 -0.00195312 21.5254 0 32.2881 0.00585938c0.299805 -0.195312 0.583984 -0.516602 0.899414 -0.552734c6.87793 -0.81543 13.8467 -1.16797 20.627 -2.48242
-c11.2432 -2.18359 22.4971 -4.51465 33.5156 -7.61523c19.999 -5.78125 39.2266 -14.2031 56.7227 -24.668c17.2832 -10.0947 32.9639 -22.1357 47.1133 -36.1152c6.71973 -6.90527 12.9209 -14.0508 18.8174 -21.6895c13.4639 -16.959 24.0283 -36.4561 30.874 -57.5
-c3.88867 -11.8086 7.16211 -24.2148 9.62207 -36.5996c2.0459 -10.1748 2.53809 -20.6602 3.74609 -31zM337.135 214.927l0.00488281 67.2695c-35.2686 0 -53.1152 -9.36719 -62.04 -36.1895v31.9316h-73.5176v-190.738h73.5127v93.667
-c0 22.1396 6.37012 37.04 33.5703 37.04c11.8984 0 28.4697 -2.98047 28.4697 -2.98047z" />
-    <glyph glyph-name="sellcast" unicode="&#xf2da;" 
-d="M353.4 416c52.0996 0 94.6992 -42.5996 94.6992 -94.5996v-258.801c0 -52 -42.5996 -94.5996 -94.6992 -94.5996h-258.7c-52.1006 0 -94.7002 42.5996 -94.7002 94.7002v258.7c0 52 42.5996 94.5996 94.7002 94.5996h258.7zM303.4 99.5996
-c27.8994 48.2002 11.1992 110.5 -37.2002 138.5c-18.6006 10.8008 0.0996094 -0.0996094 -18.5 10.7002c-25 14.4004 -46.2002 -23.2998 -21.6006 -37.5c18 -10.2002 0.800781 -0.399414 18.6006 -10.5996c27.5996 -16 37.2002 -51.7998 21.2998 -79.4004
-c-16 -27.5996 -51.7998 -37.2002 -79.4004 -21.2998c-18.5996 10.7998 0.100586 -0.0996094 -18.5 10.7002c-10.2998 6 -23.5996 2.39941 -29.5 -7.90039l-15.6992 -27.2002c-12.6006 -21.7998 19.3994 -53 42.2998 -13.1992c48.2998 -27.7002 110.3 -11 138.2 37.1992z
-M325.2 308.4c14.2998 24.7998 -23.4004 46.3994 -37.7002 21.5l-4.7998 -8.40039c-48.2998 27.7002 -110.3 11 -138.2 -37.2002c-27.7998 -48.2998 -11.0996 -110.6 37.0996 -138.399c18.6006 -10.8008 -0.0996094 0.0996094 18.5 -10.7002
-c25 -14.4004 46.2002 23.2998 21.6006 37.5c-0.100586 0 -18.6006 10.5996 -18.6006 10.5996c-27.5996 16 -37.2998 51.7998 -21.2998 79.4004c16 27.5996 51.7998 37.2002 79.4004 21.2998c18.5996 -10.7998 -0.100586 0.0996094 18.5 -10.7002
-c10.2002 -5.09961 20 -2.89941 26.5 3.60059c2.7002 2.69922 2 2 19 31.5z" />
-    <glyph glyph-name="superpowers" unicode="&#xf2dd;" 
-d="M448 416l-87.2002 -87c39.7002 -38.7002 61.2002 -92.7002 57.7002 -148.2c-5.40039 -93 -76.9004 -167.3 -168.7 -179.8c-83.2998 -11 -166.5 -22 -249.8 -33l86.7998 86.7998c-39.7998 38.7002 -61.0996 92.7002 -57.7998 148.2c5.7002 93.2998 77 167.5 169 180
-c83.2002 11 166.7 22 250 33zM368.3 183.7c4.40039 80 -56.7998 146.3 -136.1 151c-78.7002 4.7998 -148.5 -55.2998 -153 -134.5c-4.40039 -80 56.7998 -146.3 136.3 -151c78.7998 -4.7002 148.6 55 152.8 134.5z" />
-    <glyph glyph-name="wpexplorer" unicode="&#xf2de;" horiz-adv-x="512" 
-d="M512 192c0 -141.2 -114.7 -256 -256 -256c-141.2 0 -256 114.7 -256 256s114.7 256 256 256s256 -114.7 256 -256zM480 192c0 123.2 -100.3 224 -224 224c-123.5 0 -224 -100.5 -224 -224s100.5 -224 224 -224s224 100.5 224 224zM160.9 323.4l86.8994 -37.1006
-l-37.0996 -86.8994l-86.9004 37.0996zM270.9 154.3l46.5996 -94h-14.5996l-50 100l-48.9004 -100h-14l51.0996 106.9l-22.2998 9.39941l6 14l68.6006 -29.0996l-6 -14.2998zM259.1 270.6l68.6006 -29.3994l-29.4004 -68.2998l-68.2998 29.0996zM339.4 227.7
-l54.5996 -23.1006l-23.4004 -54.2998l-54.2998 23.1006z" />
-    <glyph glyph-name="meetup" unicode="&#xf2e0;" horiz-adv-x="512" 
-d="M99 33.7002c1.09961 -5.7002 -2.2998 -11.1006 -8 -12.2998c-5.40039 -1.10059 -10.9004 2.2998 -12 8c-1.09961 5.39941 2.2998 11.0996 7.7002 12.2998c5.39941 1.2002 11.0996 -2.2998 12.2998 -8zM242.1 -37.7002c6.60059 4.60059 15.5 2.7998 19.7002 -3.7002
-c4.60059 -6.59961 2.90039 -15.3994 -3.39941 -20c-6.60059 -4.59961 -15.4004 -2.89941 -20 3.7002c-4.30078 6.60059 -2.60059 15.4004 3.69922 20zM156.1 424.6c-6.2998 -1.5 -12.5 2.5 -13.8994 9.10059c-1.2002 6.2998 2.7998 12.5996 9.09961 14
-c6.2998 1.5 12.6006 -2.5 13.7002 -9.10059c1.40039 -6.2998 -2.59961 -12.5996 -8.90039 -14zM34.4004 221.7c10 -7.10059 12.5996 -20.7998 5.69922 -31.2002c-6.89941 -10.2998 -20.5996 -12.7998 -30.5996 -5.7002c-10 6.90039 -12.5996 20.9004 -5.7002 30.9004
-c6.90039 10.2998 20.6006 12.8994 30.6006 6zM306.4 392.6c-10.3008 -6.2998 -23.7002 -2.89941 -29.7002 7.40039c-6.2998 10.5996 -2.90039 24.2998 7.39941 30.5996c10.3008 6.30078 23.7002 2.90039 30 -7.69922c6 -10.3008 2.90039 -24 -7.69922 -30.3008zM115.3 334.6
-c-7.5 -5.19922 -18 -3.5 -23.0996 4.30078c-5.10059 7.69922 -3.40039 18.2998 4.2998 23.6992c7.40039 5.10059 18 3.40039 23.0996 -4.2998c5.10059 -7.7002 3.40039 -18.2998 -4.2998 -23.7002zM487.6 178.6c7.40039 1.40039 14.8008 -3.5 16.3008 -10.8994
-c1.69922 -7.7002 -3.2002 -15.2002 -10.6006 -16.6006c-7.39941 -1.69922 -14.8994 3.2002 -16.2998 10.6006c-1.7002 7.7998 3.2002 15.2002 10.5996 16.8994zM527.3 235.4c1.40039 -5.7002 -2.2998 -11.1006 -7.7002 -12.6006
-c-5.69922 -1.09961 -11.1992 2.60059 -12.2998 8c-1.09961 5.7002 2.2998 11.5 8 12.6006c5.40039 1.09961 10.9004 -2.30078 12 -8zM447 309.1c8.2998 6 20 3.80078 25.7002 -4.89941c5.7002 -8.60059 3.7002 -20.2998 -4.60059 -26.2998
-c-8.59961 -5.7002 -20.2998 -3.7002 -26 4.89941c-5.69922 8.60059 -3.69922 20.2998 4.90039 26.2998zM440.7 169.7c26.2998 -43.1006 15.0996 -100 -26.2998 -129.101c-17.4004 -12.2998 -37.1006 -17.6992 -56.9004 -17.0996
-c-12 -47.0996 -69.4004 -64.5996 -105.1 -32.5996c-1.10059 -0.900391 -2.60059 -1.7002 -3.7002 -2.90039c-39.1006 -27.0996 -92.2998 -17.4004 -119.4 22.2998c-9.7002 14.2998 -14.5996 30.6006 -15.0996 46.9004c-65.4004 10.8994 -90 94 -41.1006 139.7
-c-28.2998 46.8994 0.600586 107.399 53.4004 114.899c25.0996 66.2002 107.6 97.6006 163.6 54.2002c67.4004 22.2998 136.301 -29.4004 130.9 -101.1c41.0996 -12.6006 52.7998 -66.9004 19.7002 -95.2002zM370.7 95.4004
-c-3.10059 20.5996 -40.9004 4.59961 -43.1006 27.0996c-3.09961 32 43.7002 101.1 40 128c-3.39941 24 -19.3994 29.0996 -33.3994 29.4004c-13.4004 0.299805 -16.9004 -2 -21.4004 -4.60059c-2.89941 -1.7002 -6.59961 -4.89941 -11.7002 0.299805
-c-6.2998 6 -11.0996 11.7002 -19.3994 12.9004c-12.2998 2 -17.7002 -2 -26.6006 -9.7002c-3.39941 -2.89941 -12 -12.8994 -20 -9.09961c-3.39941 1.7002 -15.3994 7.7002 -24 11.3994c-16.2998 7.10059 -40 -4.59961 -48.5996 -20
-c-12.9004 -22.8994 -38 -113.1 -41.7002 -125.1c-8.59961 -26.5996 10.9004 -48.5996 36.9004 -47.0996c11.0996 0.599609 18.2998 4.59961 25.3994 17.3994c4 7.40039 41.7002 107.7 44.6006 112.601c2 3.39941 8.89941 8 14.5996 5.09961
-c5.7002 -3.09961 6.90039 -9.40039 6 -15.0996c-1.09961 -9.7002 -28 -70.9004 -28.8994 -77.7002c-3.40039 -22.9004 26.8994 -26.6006 38.5996 -4c3.7002 7.09961 45.7002 92.5996 49.4004 98.2998c4.2998 6.2998 7.39941 8.2998 11.6992 8
-c3.10059 0 8.30078 -0.900391 7.10059 -10.9004c-1.40039 -9.39941 -35.1006 -72.2998 -38.9004 -87.6992c-4.59961 -20.6006 6.60059 -41.4004 24.9004 -50.6006c11.3994 -5.7002 62.5 -15.7002 58.5 11.1006zM376.4 3.09961c10.5996 7.5 24.8994 4.60059 32.2998 -6
-c7.09961 -10.5996 4.59961 -25.1992 -6 -32.5996c-10.6006 -7.09961 -24.9004 -4.59961 -32 6c-7.2002 10.5996 -4.60059 25.2002 5.7002 32.5996z" />
-    <glyph glyph-name="font-awesome-alt" unicode="&#xf35c;" 
-d="M339.3 276.8c5.40039 0 9.5 -3 7.7002 -7.09961v-134.4c0 -4.2002 -3 -6 -7.2002 -7.7998c-15.5996 -7.09961 -33.5 -13.7002 -52 -13.7002c-26.2998 0 -38.2002 16.1006 -69.2998 16.1006c-22.7002 0 -46 -8.30078 -65.7002 -16.7002
-c-0.599609 -0.600586 -1.7998 -1.2002 -3 -1.2002v-44.2002c0 -1.7998 0 -3 -0.599609 -4.7998v-1.2998c-2.40039 -7.7002 -9.5 -13.7002 -18.5 -13.7002c-10.7002 0 -19.7002 8.90039 -19.7002 19.7002v212.1c-7.7002 6 -12.5 15.5 -12.5 25.7002
-c0 18 14.2998 32.2998 32.2998 32.2998s32.2998 -14.3994 32.2998 -32.2998c0 -10.7998 -4.69922 -19.7002 -12.5 -25.7002v-17.8994c1.2002 0.599609 3 1.19922 4.80078 1.7998c17.8994 7.09961 39.3994 13.7002 59.6992 13.7002
-c22.1006 0 39.4004 -5.90039 59.1006 -13.7002c4.09961 -1.7998 8.2998 -2.40039 12.5 -2.40039c22.7002 0 46.5996 15.5 52.5996 15.5zM397.8 416c27.5 0 50.2002 -22.7002 50.2002 -50.2002v-347.6c0 -27.5 -22.7002 -50.2002 -50.2002 -50.2002h-347.6
-c-27.5 0 -50.2002 22.7002 -50.2002 50.2002v347.6c0 27.5 22.7002 50.2002 50.2002 50.2002h347.6zM412.1 18.2998v347.601c0 7.69922 -6.5 14.2998 -14.2998 14.2998v-0.100586h-347.6c-7.7002 0 -14.2998 -6.5 -14.2998 -14.2998v-347.5
-c0 -7.7002 6.5 -14.2998 14.2998 -14.2998h347.6c7.7002 0 14.2998 6.5 14.2998 14.2998z" />
-    <glyph glyph-name="accessible-icon" unicode="&#xf368;" 
-d="M423.9 192.2l-12.9004 -157.3c-3.2998 -40.7002 -63.9004 -35.1006 -60.5996 4.89941l10 122.5l-41.1006 -2.2998c10.1006 -20.7002 15.7998 -43.9004 15.7998 -68.5c0 -41.2002 -16.0996 -78.7002 -42.2998 -106.5l-39.2998 39.2998
-c57.9004 63.7002 13.0996 167.2 -74 167.2c-25.9004 0 -49.5 -9.90039 -67.2002 -26l-39.2998 39.2998c22 20.7002 50.0996 35.1006 81.4004 40.2002l75.2998 85.7002l-42.6006 24.7998l-51.5996 -46c-30 -26.7998 -70.5996 18.5 -40.5 45.4004l68 60.6992
-c9.7998 8.80078 24.0996 10.2002 35.5 3.60059c0 0 139.3 -80.9004 139.5 -81.1006c16.2002 -10.0996 20.7002 -36 6.09961 -52.5996l-58.3994 -66.5l106.1 5.90039c18.5 1.09961 33.6006 -14.4004 32.1006 -32.7002zM359 346.2
-c-28.0996 0 -50.9004 22.7998 -50.9004 50.8994c0 28.1006 22.8008 50.9004 50.9004 50.9004s50.9004 -22.7998 50.9004 -50.9004c0 -28.0996 -22.8008 -50.8994 -50.9004 -50.8994zM179.6 -8.5c20.8008 0 40.1006 6.40039 56.1006 17.2998l39.7002 -39.7002
-c-100.7 -78.8994 -251.4 -8.19922 -251.4 122.5c0 36.1006 12.4004 69.4004 33.2002 95.7002l39.7002 -39.7002c-44.7002 -65.5 2.09961 -156.1 82.6992 -156.1z" />
-    <glyph glyph-name="accusoft" unicode="&#xf369;" horiz-adv-x="640" 
-d="M322.1 196c-1.69922 -1.59961 -89.5996 -82.5 -90.1992 -83.2998l-92.6006 -33.7998c-4.7998 -2 -7.59961 -3.7002 -7 -8.90039c0.200195 -1.5 0.600586 -22.5996 1 -27.7002c-0.700195 -0.5 -0.0996094 0 -0.599609 -0.599609c0 0 -113.7 -36.6006 -114.5 -36.6006
-c-14.1006 -5.09961 -22.7002 -8.2998 -15.7002 1.7002c1.2998 1.7998 234.4 231.601 243.4 240.9c13 13.5 25 15.0996 25 15.0996l51.1992 -65.7998v-1zM482.2 75.9004c-5.7002 6.89941 -232.2 297.1 -239.9 306.6c-13.7002 17.2002 0 16.7998 19.2002 16.9004
-c9.7002 0.0996094 106.3 0.599609 116.5 0.599609c24.0996 0.0996094 28.7002 -0.599609 38.4004 -12.7998c2.09961 -2.7002 205.1 -245.8 207.199 -248.3c5.5 -6.7002 15.2002 -19.1006 7.2002 -23.4004c-2.39941 -1.2998 -114.6 -47.7002 -117.8 -48.9004
-c-10.0996 -4 -17.5 -6.7998 -30.7998 9.30078zM634.9 74.2998c6 -1.39941 7.09961 -4.2002 1.69922 -8.2002c-2 -1.39941 -123.699 -76.5996 -125.8 -77.7998c-15.0996 -8.7998 -38 -1.59961 -53.5996 1.7002c-7.10059 1.5 -305.3 68.2998 -308 69.0996
-c-2.60059 0.900391 -4.40039 1 -4.60059 3.5c-0.299805 4 6 5.60059 11.1006 7.60059c5 1.89941 145.3 52.5996 150.2 54.7002c4.7998 2.09961 11.2998 2.69922 14.3994 2.89941c4.90039 0.299805 59.9004 -8.39941 65.2998 -9.2998l57.1006 -74
-c9.7998 -11.4004 20.7002 -21.9004 36.7002 -14.5996c2.5 1.19922 117.5 51.5996 117.5 51.5996c13.3994 -2.5 35.6992 -6.90039 38 -7.2002z" />
-    <glyph glyph-name="adversal" unicode="&#xf36a;" horiz-adv-x="512" 
-d="M482.1 416c24.5 0 29.9004 -5.59961 29.9004 -30.2002v-388.1c0 -24.5 -5.5 -29.7002 -29.9004 -29.7002h-453.399c-22.9004 0 -28.7002 5.59961 -28.7002 28.9004v390.199c0 23 5.7998 28.9004 28.7002 28.9004h453.399zM178.4 227.7
-c9.39941 -7.2002 12.3994 -17.1006 11.2998 -27.2998c-1.7998 -19.1006 -75.7998 -11.4004 -114 -30.9004c-27.2002 -13.9004 -42.7002 -41.7002 -39.6006 -71c6.7002 -64.7002 89.6006 -79.7002 147 -43.2998c4.60059 3.2002 8.30078 4.89941 11.9004 1
-c2.09961 -2.60059 2 -4 3.90039 -6.2002c7.2998 -9.59961 38.1992 -14.0996 46.5996 -7.40039c3.09961 2.80078 4.59961 6.30078 2.7002 10.7002c-13.6006 30.5 -6.60059 63 -9.2998 88.7998c0 69.3008 6.39941 111.7 -34.5 128.5
-c-41.9004 17.4004 -84.2002 16.6006 -125.301 -4.7998c-16.2998 -9 -53.6992 -52.8994 -24.8994 -64.2998c5.2998 -2.2998 12.7998 -4 22.5 -5.5c8.2002 -1.2002 13.2002 -2.7998 17.5 8.2998c12.0996 32.1006 56.7002 43.6006 84.2002 23.4004zM465.1 5.7002
-c0 14.2998 -9.7998 9.89941 -16.5996 9.89941c-132.3 0.400391 -264.5 0.400391 -396.8 0c-6.60059 0 -16.7002 4.80078 -17.1006 -9.09961c-0.399414 -15.5 10.4004 -10.7002 17.8008 -10.7002h394.899c6.7002 0 17.7998 -5.2002 17.7998 9.90039zM468.9 346.2
-c0 0.200195 0 0.299805 0.0996094 0.5c0 9.89941 -3.5 15.0996 -13.5996 14.2998c-3.10059 -0.400391 -6.60059 0 -9.7002 0c-26.1006 0 -26 0 -26 -26.2002v-71c-79.2002 45.6006 -124.3 -6.59961 -136.101 -30.5c-16.3994 -32.8994 -21.7998 -66.5996 -15.6992 -100
-c16.2998 -92.2998 91 -114.899 144.399 -85.2002c4.60059 2.80078 6.60059 7.5 12.4004 -1.19922c8.59961 -12.7002 23.7002 -5.2002 36.0996 -5.60059c7.40039 0 8.10059 8.2002 8.10059 13.9004v291zM417.4 113.9c-19.5 -47.6006 -72.9004 -43.3008 -90 -5.2002
-c-15.1006 33.2998 -15.5 68.2002 0.399414 101.5c16.2998 34.0996 59.7002 35.7002 81.5 4.7998c20.6006 -28.7998 14.9004 -84.5996 8.10059 -101.1zM122.6 78.5996c-7.5 1.30078 -33 3.30078 -33.6992 27.8008c-0.400391 13.8994 7.7998 23 19.7998 25.7998
-c24.3994 5.89941 49.2998 9.89941 73.7002 14.7002c8.89941 2 7.39941 -4.40039 7.7998 -9.5c1.39941 -33 -26.1006 -59.2002 -67.6006 -58.8008z" />
-    <glyph glyph-name="affiliatetheme" unicode="&#xf36b;" horiz-adv-x="512" 
-d="M159.7 210.6c-51.2998 -70.8994 -116.601 -110.8 -145.7 -89.1992c-29.2002 21.6992 -11.2002 96.5996 40.2002 167.5c51.2998 70.8994 116.6 110.8 145.7 89.1992c29.0996 -21.5996 11.0996 -96.5996 -40.2002 -167.5zM510.9 267.9
-c0.699219 -8.2002 1.09961 -16.5 1 -25c0 -151.801 -121.601 -274.9 -271.601 -274.9c-82.8994 0 -157.2 37.5996 -207 96.9004c71.2998 19.3994 130.5 68.3994 164.101 133.199c7.69922 -32.5996 24 -58.5996 49 -73.7998c72.5996 -44.0996 190.699 20.2002 264.5 143.601z
-" />
-    <glyph glyph-name="algolia" unicode="&#xf36c;" 
-d="M229.3 265.4c49.2002 0 89.2002 -39.9004 89.2002 -89.2002s-39.9004 -89.2002 -89.2002 -89.2002s-89.2002 39.9004 -89.2002 89.2002s39.9004 89.2002 89.2002 89.2002zM292 208.8c1.2998 0.700195 1.7998 2.40039 1.09961 3.7002
-c-12.1992 21.4004 -34.8994 36.0996 -61.0996 37.0996c-1.40039 0.100586 -2.7002 -1.09961 -2.7002 -2.59961v-66.5c0 -1.90039 2 -3.2002 3.7998 -2.2998zM389.1 416c32.5 0 58.9004 -26.4004 58.8008 -58.9004v-330.199c0 -32.5 -26.3008 -58.9004 -58.9004 -58.9004
-h-330.1c-32.5 0 -58.9004 26.4004 -58.9004 59v330.1c0 32.5 26.4004 58.9004 58.9004 58.9004h330.199zM186.5 331.3h0.0996094v-15.7998c0 -1.7002 1.7002 -3 3.40039 -2.5c12.7002 3.7002 25.9004 5.5 39.4004 5.5c13 0 25.7998 -1.7002 38.0996 -5.09961
-c1.59961 -0.5 3.2998 0.699219 3.2998 2.5v15.3994c0 10.7998 -8.7002 19.5 -19.5 19.5h-45.2998c-10.7998 0 -19.5 -8.7002 -19.5 -19.5zM102.1 294.3c-7.59961 -7.59961 -7.59961 -19.8994 0 -27.3994l7.7002 -7.7002c1.10059 -1.2002 3 -1 4 0.299805
-c4.40039 6.09961 9.40039 12 14.7998 17.4004c5.5 5.5 11.4004 10.3994 17.6006 14.8994c1.2998 1 1.39941 2.90039 0.299805 4l-7.7002 7.7002c-7.59961 7.59961 -19.8994 7.59961 -27.5 0zM229.3 49.5c69.9004 0 126.601 56.7998 126.601 126.6
-c0 70 -56.6006 126.601 -126.601 126.601c-69.8994 0 -126.6 -56.7002 -126.6 -126.601c0 -69.8994 56.5996 -126.6 126.6 -126.6z" />
-    <glyph glyph-name="amilia" unicode="&#xf36d;" 
-d="M240.1 416c134.101 0 191.9 -55.7002 192 -136v-296.6c0 -3 -1 -8.10059 -5.09961 -9.10059c-4 -1 -57.2998 -0.700195 -66.5 -0.700195s-56.7998 1 -59.9004 2c-4 0.900391 -6.09961 6.10059 -6.09961 9.10059v25.3994
-c-39.5996 -21.3994 -105.5 -42.0996 -153.3 -42.0996c-109.7 0 -124.9 85.7002 -124.9 104s-5.09961 95.5 30.4004 111.8c31.5 13.2002 156.3 36.5 243.7 47.7998v38.5c0 44.7002 -1 73.1006 -58.9004 73.1006c-55.7998 0 -119.8 -25.4004 -152.3 -47.7002
-c-6.10059 -4.09961 -16.2002 -4.09961 -20.2998 6.09961c-5.10059 12.2002 -9.10059 34.5 -10.2002 39.6006c-1.90039 10.2002 2.09961 16.2998 7.2002 19.3994c52.6992 38.5 122.3 55.4004 184.199 55.4004zM290.3 68v106.7c-44.7002 -4.10059 -95.5 -20.2998 -119.8 -33.5
-c-21.2998 -10.2002 -18.2998 -40.7002 -18.2998 -52.9004c0.0996094 -11.2002 6.2002 -44.7002 59 -44.7002c30.3994 0 57.7002 11.2002 79.0996 24.4004z" />
-    <glyph glyph-name="angrycreative" unicode="&#xf36e;" horiz-adv-x="640" 
-d="M640 209.8l-3.2002 -28.2002l-34.5 -2.2998l-2 -18.0996l34.5 2.2998l-3.2002 -28.2002l-34.3994 -2.2002l-2.2998 -20.0996l34.3994 2.2002l-3 -26.1006l-64.7002 -4.09961l12.7002 113.2l-47.2998 -115.4l-31.9004 -2l-23.7998 117.8l30.2998 2l13.6006 -79.3994
-l31.7002 82.3994zM426.8 76.5l12.7998 120l28.4004 1.90039l-12.9004 -120.101zM162 59.9004l-19.4004 36l-3.5 -37.4004l-28.1992 -1.7002l2.69922 29.1006c-11 -18 -32 -34.3008 -56.8994 -35.8008c-32.7998 -2 -59.7002 20.9004 -56.4004 58.2002
-c2.60059 29.2998 26.7002 62.7998 67.5 65.4004c37.7002 2.39941 47.6006 -23.2002 51.2998 -28.7998l2.80078 30.7998l38.8994 2.5c20.1006 1.2998 38.7002 -3.7002 42.5 -23.7002l2.60059 26.5996l64.7998 4.2002l-2.7002 -27.8994l-36.4004 -2.40039l-1.69922 -17.9004
-l36.3994 2.30078l-2.7002 -27.9004l-36.3994 -2.2998l-1.90039 -19.9004l36.2998 2.2998l-2.09961 -20.7998l55 117.2l23.7998 1.59961l32.1006 -110.6l8.89941 85.5996l-22.2998 -1.39941l2.90039 27.8994l75 4.90039l-3 -28l-24.3008 -1.59961l-9.69922 -91.9004
-l-58 -3.7002l-4.30078 15.6006l-39.3994 -2.5l-8 -16.3008zM117.7 130.1l-26.4004 -1.69922c-6.7002 12.3994 -14.3994 16.5996 -26.2998 15.7998c-19 -1.2002 -33.2998 -17.5 -34.5996 -33.2998c-1.40039 -16 7.2998 -32.5 28.6992 -31.2002
-c12.8008 0.799805 21.3008 8.59961 28.9004 18.8994l27 1.7002zM173.8 137.8c1.2002 12.9004 -7.59961 13.6006 -26.0996 12.4004l-2.7002 -28.5c14.2002 0.899414 27.5 2.09961 28.7998 16.0996zM194.9 67l5.7998 60c-5 -13.5 -14.7002 -21.0996 -27.9004 -26.5996z
-M330.3 112l-7.89941 37.7998l-15.8008 -39.2998zM160.2 186.6l-4.2998 17.5l-39.6006 -2.59961l-8.09961 -18.2002l-31.9004 -2.09961l57 121.899l23.9004 1.60059l30.7002 -102l9.89941 104.7l27 1.7998l37.7998 -63.6006l6.5 66.6006l28.5 1.89941l-4 -41.1992
-c7.40039 13.5 22.9004 44.6992 63.6006 47.5c40.5 2.7998 52.3994 -29.3008 53.3994 -30.3008l3.30078 32l39.2998 2.7002c12.7002 0.900391 27.7998 -0.299805 36.2998 -9.7002l-4.40039 11.9004l32.2002 2.2002l12.9004 -43.2002l23 45.7002l31 2.2002l-43.6006 -78.4004
-l-4.7998 -44.2998l-28.3994 -1.90039l4.7998 44.2998l-15.7998 43c1 -22.2998 -9.2002 -40.0996 -32 -49.5996l25.1992 -38.7998l-36.3994 -2.40039l-19.2002 36.7998l-4 -38.2998l-28.4004 -1.89941l3.30078 31.5c-6.7002 -9.30078 -19.7002 -35.4004 -59.6006 -38
-c-26.2002 -1.7002 -45.5996 10.2998 -55.3994 39.1992l-4 -40.2998l-25 -1.59961l-37.6006 63.2998l-6.2998 -66.2002zM436.8 268.7c10.2002 0.700195 17.5 2.09961 21.6006 4.2998c4.5 2.40039 7 6.40039 7.59961 12.0996
-c0.599609 5.30078 -0.599609 8.80078 -3.40039 10.4004c-3.59961 2.09961 -10.5996 2.7998 -22.8994 2zM327.7 234c5.59961 -5.90039 12.7002 -8.5 21.2998 -7.90039c4.7002 0.300781 9.09961 1.80078 13.2998 4.10059c5.5 3 10.6006 8 15.1006 14.2998l-34.2002 -2.2998
-l2.39941 23.8994l63.1006 4.30078l1.2002 12l-31.2002 -2.10059c-4.10059 3.7002 -7.7998 6.60059 -11.1006 8.10059c-4 1.69922 -8.09961 2.7998 -12.1992 2.5c-8 -0.5 -15.3008 -3.60059 -22 -9.2002c-7.7002 -6.40039 -12 -14.5 -12.9004 -24.4004
-c-1.09961 -9.59961 1.40039 -17.2998 7.2002 -23.2998zM126.4 225.8l23.7998 1.60059l-8.2998 37.5996z" />
-    <glyph glyph-name="app-store" unicode="&#xf36f;" horiz-adv-x="512" 
-d="M255.9 327.1l9.09961 15.7002c5.59961 9.7998 18.0996 13.1006 27.9004 7.5c9.7998 -5.59961 13.0996 -18.0996 7.5 -27.8994l-87.5 -151.5h63.2998c20.5 0 32 -24.1006 23.0996 -40.8008h-185.5c-11.2998 0 -20.3994 9.10059 -20.3994 20.4004
-s9.09961 20.4004 20.3994 20.4004h52l66.6006 115.399l-20.8008 36.1006c-5.59961 9.7998 -2.2998 22.1992 7.5 27.8994c9.80078 5.60059 22.2002 2.2998 27.9004 -7.5zM177.2 109.1l-19.6006 -34c-5.59961 -9.7998 -18.0996 -13.0996 -27.8994 -7.5
-c-9.7998 5.60059 -13.1006 18.1006 -7.5 27.9004l14.5996 25.2002c16.4004 5.09961 29.7998 1.2002 40.4004 -11.6006zM346.1 170.8h53.1006c11.2998 0 20.3994 -9.09961 20.3994 -20.3994c0 -11.3008 -9.09961 -20.4004 -20.3994 -20.4004h-29.5l19.8994 -34.5
-c5.60059 -9.7998 2.30078 -22.2002 -7.5 -27.9004c-9.7998 -5.59961 -22.1992 -2.2998 -27.8994 7.5c-33.5 58.1006 -58.7002 101.601 -75.4004 130.601c-17.0996 29.5 -4.89941 59.0996 7.2002 69.0996c13.4004 -23 33.4004 -57.7002 60.0996 -104zM256 440
-c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM472 192c0 119.9 -97.2998 216 -216 216c-119.9 0 -216 -97.2998 -216 -216c0 -119.9 97.2998 -216 216 -216c119.9 0 216 97.2998 216 216z" />
-    <glyph glyph-name="app-store-ios" unicode="&#xf370;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM127 63.5l19.2998 33.2998c-10.2998 12.5 -23.5 16.2998 -39.5996 11.4004l-14.2998 -24.7002
-c-5.5 -9.5 -2.30078 -21.7998 7.2998 -27.2998c9.5 -5.5 21.7998 -2.2998 27.2998 7.2998zM265.9 117.4c8.7998 16.2998 -2.5 40 -22.7002 40h-62.1006l85.8008 148.6c5.5 9.5 2.2998 21.7998 -7.30078 27.2998c-9.5 5.5 -21.7998 2.2998 -27.2998 -7.2998
-l-8.89941 -15.4004l-8.90039 15.4004c-5.5 9.5 -17.7002 12.7998 -27.2998 7.2998c-9.5 -5.5 -12.7998 -17.7002 -7.2998 -27.2998l20.5 -35.4004l-65.4004 -113.199h-51c-11 0 -20 -9 -20 -20s9 -20 20 -20h181.9zM364 117.4c11 0 20 8.89941 20 20c0 11 -9 20 -20 20h-52
-c-26.2002 45.2998 -45.7998 79.2998 -58.9004 102c-11.8994 -9.80078 -23.7998 -38.8008 -7.09961 -67.8008c16.5 -28.3994 41.0996 -71.1992 74 -128.1c5.5 -9.5 17.7002 -12.7998 27.2998 -7.2998c9.5 5.5 12.7998 17.7002 7.2998 27.2998l-19.5996 33.9004h29z" />
-    <glyph glyph-name="apper" unicode="&#xf371;" horiz-adv-x="640" 
-d="M42.0996 208.9c22.2002 0 29 -2.80078 33.5 -14.6006h0.800781v22.9004c0 11.2998 -4.80078 15.3994 -17.9004 15.3994c-11.2998 0 -14.4004 -2.5 -15.0996 -12.7998h-38.6006c0.299805 13.9004 1.5 19.1006 5.7998 24.4004
-c7.30078 8.7998 18.9004 11.7998 46.1006 11.7998c33 0 47.0996 -5 53.8994 -18.9004c2 -4.2998 4 -15.5996 4 -23.6992v-76.3008h-38.2998l1.2998 19.1006h-1c-5.2998 -15.6006 -13.5996 -20.4004 -35.5 -20.4004c-30.2998 0 -41.0996 10.1006 -41.0996 37.2998
-c0 25.2002 12.2998 35.8008 42.0996 35.8008zM59.2002 160.8c13.0996 0 16.8994 3 16.8994 13.4004c0 9.09961 -4.2998 11.5996 -19.5996 11.5996c-13.0996 0 -17.9004 -3 -17.9004 -12.0996c-0.0996094 -10.4004 3.7002 -12.9004 20.6006 -12.9004zM137 255.7h38.2998
-l-1.5 -20.6006h0.799805c9.10059 17.1006 15.9004 20.9004 37.5 20.9004c14.4004 0 24.7002 -3 31.5 -9.09961c9.80078 -8.60059 12.8008 -20.4004 12.8008 -48.1006c0 -30 -3 -43.0996 -12.1006 -52.8994c-6.7998 -7.30078 -16.3994 -10.1006 -33.2002 -10.1006
-c-20.3994 0 -29.1992 5.5 -33.7998 21.2002h-0.799805v-70.2998h-39.5v169zM217.9 195c0 27.5 -3.30078 32.5 -20.7002 32.5c-16.9004 0 -20.7002 -5 -20.7002 -28.7002c0 -28 3.5 -33.5 21.2002 -33.5c16.3994 0 20.2002 5.60059 20.2002 29.7002zM275.8 255.7h38.2998
-l-1.5 -20.6006h0.800781c9.09961 17.1006 15.8994 20.9004 37.5 20.9004c14.3994 0 24.6992 -3 31.5 -9.09961c9.7998 -8.60059 12.7998 -20.4004 12.7998 -48.1006c0 -30 -3 -43.0996 -12.1006 -52.8994c-6.7998 -7.30078 -16.3994 -10.1006 -33.2998 -10.1006
-c-20.3994 0 -29.2002 5.5 -33.7998 21.2002h-0.799805v-70.2998h-39.5v169h0.0996094zM356.7 195c0 27.5 -3.2998 32.5 -20.7002 32.5c-16.9004 0 -20.7002 -5 -20.7002 -28.7002c0 -28 3.5 -33.5 21.2002 -33.5c16.4004 0 20.2002 5.60059 20.2002 29.7002zM410.5 198.8
-c0 25.4004 3.2998 37.7998 12.2998 45.7998c8.7998 8.10059 22.2002 11.3008 45.1006 11.3008c42.7998 0 55.6992 -12.8008 55.6992 -55.7002v-11.1006h-75.2998c-0.299805 -2 -0.299805 -4 -0.299805 -4.7998c0 -16.8994 4.5 -21.8994 20.0996 -21.8994
-c13.9004 0 17.9004 3 17.9004 13.8994h37.5v-2.2998c0 -9.7998 -2.5 -18.9004 -6.7998 -24.7002c-7.2998 -9.7998 -19.6006 -13.5996 -44.2998 -13.5996c-27.5 0 -41.6006 3.2998 -50.6006 12.2998c-8.5 8.5 -11.2998 21.2998 -11.2998 50.7998zM486.9 210.4
-c-0.300781 1.7998 -0.300781 3.2998 -0.300781 3.7998c0 12.2998 -3.2998 14.5996 -19.5996 14.5996c-14.4004 0 -17.0996 -3 -18.0996 -15.0996l-0.300781 -3.2998h38.3008zM542.5 255.7h38.2998l-1.7998 -19.9004h0.700195
-c6.7998 14.9004 14.3994 20.2002 29.7002 20.2002c10.7998 0 19.0996 -3.2998 23.3994 -9.2998c5.2998 -7.2998 6.7998 -14.4004 6.7998 -34c0 -1.5 0 -5 0.200195 -9.2998h-35c0.299805 1.7998 0.299805 3.2998 0.299805 4c0 15.3994 -2 19.3994 -10.2998 19.3994
-c-6.2998 0 -10.7998 -3.2998 -13.0996 -9.2998c-1 -3 -1 -4.2998 -1 -12.2998v-68h-38.2998v118.5h0.0996094z" />
-    <glyph glyph-name="asymmetrik" unicode="&#xf372;" horiz-adv-x="576" 
-d="M517.5 138.8c-13.9004 -14.2998 -30.4004 -27.7002 -48.9004 -39.7998l73.4004 -110.4h-101.6l-45.9004 71.8008c-17.5996 -7.2002 -35.9004 -13.4004 -54.5 -18.7002l32.5996 -53.1006h-135.5l22.8008 37.1006c-23.3008 -2.7002 -46.4004 -3.7002 -68.6006 -2.7002
-l-22 -34.4004h-101.6l34.5 51.7002c-45 17.9004 -68.9004 47.9004 -68.4004 83c0.299805 25.7998 14 54.2998 41.7002 82.9004c38.9004 40 96.5 72.5996 161.6 92.8994c-22.2998 -8.09961 -42 -18.5 -62 -30.6992c-31.1992 -16.2002 -58.6992 -35.9004 -79.5 -58.1006
-c-57.3994 -61 -46.5 -121.8 19.1006 -151.2l190.2 285.5l150.899 -226.399c13 9.5 24.7998 19.7998 35 30.5996c98 104.2 53.7002 207.9 -98.7998 231.7c-68.2998 10.5996 -146.8 5.7002 -221.3 -14.7998c-60.1006 -10 -118.7 -31.7002 -170.7 -58.2002
-c118.1 66.9004 277.9 102.1 406.6 82.4004c110 -16.8008 170.2 -69.5 169.4 -135c-0.400391 -36.1006 -19.7002 -76.1006 -58.5 -116.101zM329.9 58.2998c18.3994 5.2998 36.5 11.7998 53.6992 19.2002l-78.6992 123l-101.9 -159.3
-c22.5 -0.700195 45.7998 0.899414 69.2002 4.39941l32.7002 53.3008z" />
-    <glyph glyph-name="audible" unicode="&#xf373;" horiz-adv-x="640" 
-d="M640 248.1v-54l-320 -200l-320 199.9v54l320 -200zM445.5 176.1c-70.7998 94.4004 -200.5 110.7 -290.2 36.3008c-2.59961 -2.2002 -5.2002 -4.40039 -7.7002 -6.7002h-0.299805c37.1006 55.7002 100.601 92.3994 172.601 92.3994s135.5 -36.7998 172.699 -92.5996z
-M225.4 157.3c21 29.6006 55.5 49 94.3994 49c39.2002 0 73.9004 -19.5996 94.7998 -49.5l-45.3994 -28.3994c-21.2002 29.1992 -52 47.5996 -86.4004 47.5996c-20.8994 0 -40.5 -6.7998 -57.3994 -18.7002zM103.6 286.9c-11.5 -9.10059 -24.2998 -22.1006 -34.1992 -32.6006
-c53.8994 82.1006 147 135.601 250.5 135.601c104.899 0 197.199 -54 250.699 -135.7l-48.7998 -30.4004l-0.700195 1c-99.2998 138.5 -285.699 166.4 -417.5 62.1006zM570.6 254.2z" />
-    <glyph glyph-name="avianex" unicode="&#xf374;" horiz-adv-x="512" 
-d="M453.1 416c39 0 64.8008 -31.2002 57.8008 -69.7998l-56.7002 -308.5c-7.10059 -38.5 -44.4004 -69.7002 -83.2998 -69.7002h-312c-39 0 -64.8008 31.2002 -57.7002 69.7002l56.5996 308.6c7.10059 38.5 44.4004 69.7002 83.2998 69.7002h312zM394.9 68.7002
-l6.2998 7.89941l-94.9004 119.4l-4.5 7.2998c19.7998 14.2002 33.5 24.2998 35.2998 25.6006c7.90039 6.59961 6.30078 20.7998 -2.69922 31.2998c-9.2002 10.7998 -23 14.3994 -30.7002 7.89941c0 0 -14.4004 -13.5996 -33.7998 -32.3994l-4.90039 4.5l-103.1 112.399
-l-8.90039 -4.7998l-18.7998 -28.8994l68.7998 -99.8008l20.5 -29.5996c-12 -12.2998 -23.5 -24.4004 -32.7998 -34.9004l-58 31.1006l-15.7002 -15.4004l52.4004 -48.0996l40.5996 -61l17.9004 12.7002l-22.1006 64.1992c12.5 7.60059 27 17.1006 41.7002 27.1006
-l115.4 -110z" />
-    <glyph glyph-name="aws" unicode="&#xf375;" horiz-adv-x="640" 
-d="M180.41 244.99c-0.719727 -22.6504 10.5996 -32.6807 10.8799 -39.0498c-0.276367 -2.69141 -1.85352 -4.99902 -4.09961 -6.27051l-12.8008 -8.95996c-1.60352 -1.12402 -3.54785 -1.82422 -5.62988 -1.91992c-0.429688 0.0195312 -8.18945 -1.83008 -20.4795 25.6104
-c-14.4111 -17.9883 -36.5596 -29.5156 -61.3789 -29.5156c-0.427734 0 -0.804688 0.0585938 -1.23145 0.0654297c-16.2803 -0.890625 -60.4004 9.24023 -58.1299 56.21c-1.58984 38.2803 34.0596 62.0596 70.9297 60.0498
-c7.10059 -0.0195312 21.6006 -0.370117 46.9902 -6.26953v15.6191c2.69043 26.46 -14.7002 46.9902 -44.8096 43.9102c-2.40039 -0.00976562 -19.4004 0.5 -45.8408 -10.1094c-7.35938 -3.37988 -8.2998 -2.82031 -10.75 -2.82031
-c-7.40918 0 -4.35938 21.4795 -2.93945 24.2002c5.20996 6.39941 35.8604 18.3496 65.9395 18.1797c2.25586 0.199219 4.53906 0.301758 6.84668 0.301758c18.5547 0 35.5566 -6.61719 48.8438 -17.582c11.1152 -12.4326 17.877 -28.8398 17.877 -46.8135
-c0 -1.87891 -0.0615234 -3.70508 -0.207031 -5.5459zM93.9902 212.6c32.4297 0.470703 46.1602 19.9707 49.29 30.4707c2.45996 10.0498 2.0498 16.4102 2.0498 27.3994c-9.66992 2.32031 -23.5898 4.85059 -39.5605 4.87012
-c-15.1494 1.14062 -42.8193 -5.62988 -41.7393 -32.2598c-1.24023 -16.79 11.1201 -31.4004 29.96 -30.4805zM264.91 189.55c-7.86035 -0.719727 -11.5205 4.86035 -12.6797 10.3701l-49.8008 164.65c-0.969727 2.7793 -1.60938 5.64941 -1.91992 8.58008
-c-0.0341797 0.227539 -0.0527344 0.459961 -0.0527344 0.697266c0 2.30566 1.70117 4.21387 3.91309 4.55273c0.240234 0.0400391 -2.12988 0 22.25 0c8.78027 0.879883 11.6396 -6.03027 12.5498 -10.3701l35.7197 -140.83l33.1602 140.83
-c0.530273 3.21973 2.94043 11.0693 12.7998 10.2393h17.1602c2.16992 0.180664 11.1104 0.5 12.6807 -10.3691l33.4199 -142.631l36.8701 142.631c0.479492 2.17969 2.71973 11.3691 12.6797 10.3691h19.7197c0.850586 0.130859 6.15039 0.810547 5.25 -8.5791
-c-0.429688 -1.85059 3.41016 10.6592 -52.75 -169.9c-1.14941 -5.50977 -4.82031 -11.0898 -12.6797 -10.3701h-18.6904c-10.9395 -1.15039 -12.5098 9.66016 -12.6797 10.75l-33.1602 137.13l-32.7803 -136.99c-0.15918 -1.08984 -1.72949 -11.8994 -12.6797 -10.75
-h-18.2998v-0.00976562zM538.39 183.92c-5.87988 -0.00976562 -33.9199 0.299805 -57.3594 12.29c-4.59375 1.94531 -7.81934 6.49609 -7.81934 11.7949c0 0.0410156 0.00878906 0.0742188 0.00878906 0.115234v10.75c0 8.4502 6.2002 6.89941 8.83008 5.88965
-c10.04 -4.05957 16.4805 -7.13965 28.8105 -9.59961c36.6494 -7.53027 52.7695 2.2998 56.7197 4.47949c13.1504 7.81055 14.1895 25.6807 5.25 34.9502c-10.4805 8.79004 -15.4805 9.12012 -53.1299 21c-4.64062 1.29004 -43.7002 13.6104 -43.79 52.3604
-c-0.610352 28.2402 25.0498 56.1797 69.5195 55.9502c12.6699 0.00976562 46.4307 -4.13086 55.5703 -15.6201c1.34961 -2.08984 2.01953 -4.5498 1.91992 -7.04004v-10.1104c0 -4.43945 -1.62012 -6.66016 -4.87012 -6.66016
-c-7.70996 0.860352 -21.3896 11.1699 -49.1602 10.75c-6.88965 0.360352 -39.8896 -0.910156 -38.4092 -24.9697c-0.430664 -18.96 26.6094 -26.0703 29.6992 -26.8896c36.46 -10.9707 48.6504 -12.79 63.1201 -29.5801c17.1406 -22.25 7.90039 -48.2998 4.35059 -55.4404
-c-19.0801 -37.4902 -68.4199 -34.4395 -69.2607 -34.4199zM578.59 79.0596c-70.0303 -51.7197 -171.689 -79.25 -258.49 -79.25c-1.0498 -0.00683594 -2.10059 -0.00976562 -3.15234 -0.00976562c-120.699 0 -230.949 45.7383 -314.117 120.74
-c-6.53027 5.88965 -0.770508 13.96 7.16992 9.46973c93.1143 -53.2637 200.925 -83.7148 315.791 -83.7148c0.138672 0 0.950195 -0.405273 1.08887 -0.405273c85.4404 0.458984 167.381 18.2432 241.59 49.5508c11.7803 5 21.7705 -7.80078 10.1201 -16.3809z
-M607.78 112.35c-8.95996 11.5205 -59.2803 5.38086 -81.8105 2.69043c-6.79004 -0.770508 -7.93945 5.12012 -1.79004 9.46973c40.0703 28.1699 105.88 20.1006 113.44 10.6299c7.5498 -9.46973 -2.0498 -75.4092 -39.5605 -106.909
-c-5.75977 -4.87012 -11.2695 -2.30078 -8.70996 4.09961c8.44043 21.25 27.3906 68.4902 18.4307 80.0195z" />
-    <glyph glyph-name="bimobject" unicode="&#xf378;" 
-d="M416 416c17.5996 0 32 -14.4004 32 -32v-384c0 -17.5996 -14.4004 -32 -32 -32h-384c-17.5996 0 -32 14.4004 -32 32v384c0 17.5996 14.4004 32 32 32h384zM352 158.6h-0.0996094v35c0 49.4004 -11.4004 82.5 -103.801 82.5h-17.2998
-c-30 0 -65.0996 -8.2998 -69.7002 -38.7998h-1.09961v74.7002h-64v-232h64v34.7998h0.900391c8 -23.8994 26.2998 -38.7998 70.3994 -38.7998h16.9004c92.3994 0 103.8 33.2002 103.8 82.5996zM288 187.5v-22.9004c0 -21.6992 -3.40039 -33.7998 -38.4004 -33.7998h-45.2998
-c-28.8994 0 -44.0996 6.5 -44.0996 35.7002v19c0 29.2998 15.2002 35.7002 44.0996 35.7002h45.2998c35 0.200195 38.4004 -12 38.4004 -33.7002z" />
-    <glyph glyph-name="bitcoin" unicode="&#xf379;" horiz-adv-x="512" 
-d="M504 192c0 -136.967 -111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248s248 -111.033 248 -248zM362.349 227.33c4.9375 32.999 -20.1904 50.7393 -54.5498 62.5732l11.1465 44.7021l-27.2129 6.78027l-10.8516 -43.5234
-c-7.1543 1.78223 -14.502 3.46387 -21.8027 5.12988l10.9287 43.8096l-27.1982 6.78125l-11.1523 -44.6855c-5.92188 1.34863 -11.7354 2.68164 -17.377 4.08398l0.0302734 0.139648l-37.5293 9.37012l-7.23926 -29.0625s20.1914 -4.62695 19.7646 -4.91309
-c11.0225 -2.75098 13.0146 -10.0439 12.6807 -15.8242l-12.6963 -50.9258c0.759766 -0.193359 1.74414 -0.472656 2.8291 -0.90625c-0.907227 0.224609 -1.87598 0.472656 -2.87598 0.712891l-17.7959 -71.3379c-1.34961 -3.34863 -4.76758 -8.37012 -12.4717 -6.46484
-c0.271484 -0.394531 -19.7793 4.9375 -19.7793 4.9375l-13.5107 -31.1475l35.4141 -8.82617c6.58887 -1.65137 13.0449 -3.37988 19.4004 -5.00684l-11.2617 -45.2129l27.1816 -6.78027l11.1533 44.7324c7.14062 -1.93457 14.4863 -3.84082 21.6865 -5.62695
-l-11.1152 -44.5225l27.2139 -6.78125l11.2617 45.1279c46.4043 -8.78125 81.2988 -5.23926 95.9863 36.7266c11.8359 33.79 -0.589844 53.2812 -25.0049 65.9912c17.7803 4.09766 31.1748 15.792 34.7471 39.9492zM300.172 140.151
-c-8.41016 -33.79 -65.3076 -15.5234 -83.7549 -10.9434l14.9443 59.8994c18.4453 -4.60352 77.5996 -13.7178 68.8105 -48.9561zM308.589 227.818c-7.67285 -30.7363 -55.0312 -15.1201 -70.3926 -11.292l13.5479 54.3262
-c15.3633 -3.82715 64.8359 -10.9727 56.8447 -43.0342z" />
-    <glyph glyph-name="bity" unicode="&#xf37a;" horiz-adv-x="496" 
-d="M78.4004 380.8c95.3994 89.2002 246.1 91.2002 343.1 -3.7998c14.2998 -14.0996 -6.40039 -37.0996 -22.4004 -21.5c-84.7998 82.4004 -215.8 80.2998 -298.899 3.2002c-16.2998 -15.1006 -36.5 8.2998 -21.7998 22.0996zM177.3 -37.7998
-c-128.7 38.2998 -201.899 170.7 -169.8 298.1c5.2998 21 35.2002 12.5 30.2002 -7.09961c-28.2998 -111.3 35.2998 -227.101 147.5 -261c21.3994 -6.40039 11.3994 -35.7002 -7.90039 -30zM325.4 -35.7998c-19.2002 -6.2998 -30 22.7002 -8.80078 29.7002
-c106.101 35.5 167.4 145.699 143.2 253.399c-4.89941 21.7002 25.5 27.6006 30 7.90039c28.5 -124.101 -42.5 -250.8 -164.399 -291zM262.5 43.2002c0 -8.2002 -6.59961 -14.7998 -14.7998 -14.7998s-14.7998 6.59961 -14.7998 14.7998l0.199219 71.7998
-c0 8.09961 6.60059 14.7998 14.8008 14.7998c8.19922 0 14.7998 -6.59961 14.7998 -14.7998zM333.5 312.2c0 21.7998 32.5 19.5996 32.5 0v-71.6006c0 -69.2998 -60.7002 -90.8994 -118 -90.0996c-57.2998 -0.799805 -118 20.7998 -118 90.0996v71.6006
-c0 19.5996 32.5 21.7998 32.5 0c-1.40039 -88.2002 -7 -131.8 85.5 -132.5c90.2002 0.599609 87.5996 41.5996 85.5 132.5z" />
-    <glyph glyph-name="blackberry" unicode="&#xf37b;" horiz-adv-x="512" 
-d="M166 331.1c0 -23.3994 -16.4004 -49.0996 -72.5 -49.0996h-70.0996l21 88.7998h67.7998c42.0996 0 53.7998 -23.2998 53.7998 -39.7002zM292.2 370.8c42.0996 0 53.7998 -23.2998 53.7002 -39.7002c0 -23.3994 -16.3008 -49.0996 -70.1006 -49.0996h-70.0996
-l18.7002 88.7998h67.7998zM88.7998 239.9c42.1006 0 53.7998 -23.4004 53.7998 -39.7002c0 -25.7002 -16.3994 -49.1006 -72.5 -49.1006h-70.0996l21 88.8008h67.7998zM268.9 239.9c42 0 53.6992 -23.4004 53.6992 -39.7002c0 -25.7002 -16.2998 -49.1006 -70.0996 -49.1006
-h-70.0996l18.6992 88.8008h67.8008zM458.2 293.7c42.0996 0 53.7998 -23.4004 53.7002 -39.7002c0 -25.7002 -16.3008 -49.0996 -70.1006 -49.0996h-70.0996l18.7002 88.7998h67.7998zM430.2 155.8c42.0996 0 53.7002 -23.3994 53.7002 -39.7002
-c0 -25.6992 -14 -49.0996 -70.1006 -49.0996h-70.0996l18.7002 88.7998h67.7998zM240.8 102c42.1006 0 53.7998 -23.4004 53.7002 -39.7002c0 -23.3994 -14 -49.0996 -70.0996 -49.0996h-70.1006l18.7002 88.7998h67.7998z" />
-    <glyph glyph-name="blogger" unicode="&#xf37c;" 
-d="M162.4 252c4.7998 4.90039 6.19922 5.09961 36.3994 5.09961c27.2002 0 28.1006 -0.0996094 32.1006 -2.09961c5.7998 -2.90039 8.2998 -7 8.2998 -13.5996c0 -5.90039 -2.40039 -10 -7.60059 -13.4004c-2.7998 -1.7998 -4.5 -1.90039 -31.0996 -2.09961
-c-16.4004 -0.100586 -29.5 0.199219 -31.5 0.799805c-10.2998 2.89941 -14.0996 17.7002 -6.59961 25.2998zM223.8 157.5c55.4004 0 55.1006 0 60.4004 -4.7002c7.39941 -7 5.89941 -19.2998 -3.10059 -24.3994l-9.19922 -1.5l-47.9004 -0.600586
-c-42.2002 -0.5 -54.0996 0.200195 -56.2998 1.2002c-4.40039 1.90039 -8.5 7.2998 -9.2002 12c-0.599609 4.5 1.59961 10.7998 5.09961 13.9004c4.40039 3.89941 6.30078 4.09961 60.2002 4.09961zM447.2 27.4004c-3.5 -28.4004 -23 -50.4004 -51.1006 -57.5
-c-7.19922 -1.80078 -9.69922 -1.90039 -172.899 -1.80078c-157.8 0 -165.9 0.100586 -172 1.80078c-8.40039 2.19922 -15.6006 5.5 -22.2998 10c-5.60059 3.7998 -13.9004 11.7998 -17 16.3994c-3.80078 5.60059 -8.2002 15.2998 -10 22
-c-1.80078 6.7002 -1.90039 9.40039 -1.90039 173.4c0 163.1 0 166.6 1.7998 173.7c6.2998 24.6992 25.9004 43.5996 51.2002 49.1992c7.2998 1.60059 332.1 1.90039 340 0.300781c21.2002 -4.30078 37.9004 -17.1006 47.5996 -36.4004c7.7002 -15.2998 7 1.5 7.30078 -180.6
-c0.199219 -115.801 0 -164.5 -0.700195 -170.5zM361.8 212.6c-1.09961 5 -4.2002 9.60059 -7.7002 11.5c-1.09961 0.600586 -8 1.30078 -15.5 1.7002c-12.3994 0.600586 -13.7998 0.799805 -17.7998 3.10059c-6.2002 3.59961 -7.89941 7.59961 -8 18.2998
-c0 20.3994 -8.5 39.3994 -25.2998 56.5c-12 12.2002 -25.2998 20.5 -40.5996 25.0996c-3.60059 1.10059 -11.8008 1.5 -39.2002 1.7998c-42.9004 0.5 -52.5 -0.399414 -67.1006 -6.19922c-27 -10.7002 -46.2998 -33.4004 -53.3994 -62.4004
-c-1.2998 -5.40039 -1.60059 -14.2002 -1.90039 -64.2998c-0.399414 -62.7998 0 -72.1006 4 -84.5c9.7002 -30.7002 37.1006 -53.4004 64.6006 -58.4004c9.19922 -1.7002 122.199 -2.09961 133.699 -0.5c20.1006 2.7002 35.9004 10.7998 50.7002 25.9004
-c10.7002 10.8994 17.4004 22.7998 21.7998 38.5c3.2002 10.8994 2.90039 88.3994 1.7002 93.8994z" />
-    <glyph glyph-name="blogger-b" unicode="&#xf37d;" 
-d="M446.6 225.3c2 -8.89941 2.40039 -134.1 -2.5 -151.7c-7.09961 -25.2998 -17.8994 -44.3994 -35.1992 -62.0996c-23.9004 -24.4004 -49.4004 -37.5 -81.9004 -41.9004c-18.7002 -2.5 -201.2 -1.89941 -216 0.800781c-44.5 8 -88.7998 44.6992 -104.4 94.2998
-c-6.2998 20.0996 -7 35 -6.39941 136.5c0.5 81 1 95.0996 3.09961 103.899c11.4004 46.8008 42.6006 83.4004 86.1006 100.601c23.5996 9.39941 39 10.7998 108.399 10c44.2002 -0.5 57.4004 -1.10059 63.2998 -2.90039c24.6006 -7.5 46.2002 -20.7998 65.5 -40.5
-c27.1006 -27.5996 40.8008 -58.2998 40.9004 -91.2998c0.0996094 -17.2002 2.7998 -23.5996 12.9004 -29.5c6.39941 -3.7002 8.59961 -4.09961 28.6992 -5c12 -0.5 23.2002 -1.7002 25 -2.7002c5.7002 -3.09961 10.7002 -10.5 12.5 -18.5zM124.5 288.9
-c-12.2002 -12.3008 -6 -36.1006 10.5996 -40.8008c3.10059 -0.799805 24.3008 -1.39941 50.8008 -1.19922c43 0.199219 45.6992 0.399414 50.2998 3.2998c8.5 5.39941 12.2998 12.0996 12.2998 21.5996c0 10.6006 -4.09961 17.2002 -13.4004 21.9004
-c-6.39941 3.2998 -7.89941 3.39941 -51.7998 3.39941c-48.7998 0 -51 -0.299805 -58.7998 -8.19922zM316.3 89.0996c14.4004 8.2002 17 28.1006 4.90039 39.4004c-8.5 7.90039 -8 7.90039 -97.6006 7.7998c-87.0996 -0.0996094 -90.1992 -0.299805 -97.2998 -6.7002
-c-5.59961 -5.09961 -9.2998 -15.0996 -8.2002 -22.3994c1.10059 -7.7002 7.80078 -16.2998 14.9004 -19.4004c3.59961 -1.59961 22.7998 -2.7998 90.9004 -2l77.5 0.900391z" />
-    <glyph glyph-name="buromobelexperte" unicode="&#xf37f;" 
-d="M0 416h128v-128h-128v128zM120 296v112h-112v-112h112zM160 416h128v-128h-128v128zM280 296v112h-112v-112h112zM320 416h128v-128h-128v128zM440 296v112h-112v-112h112zM0 256h128v-128h-128v128zM120 136v112h-112v-112h112zM160 256h128v-128h-128v128zM280 136v112
-h-112v-112h112zM320 256h128v-128h-128v128zM440 136v112h-112v-112h112zM0 96h128v-128h-128v128zM120 -24v112h-112v-112h112zM160 96h128v-128h-128v128zM280 -24v112h-112v-112h112zM320 96h128v-128h-128v128z" />
-    <glyph glyph-name="centercode" unicode="&#xf380;" horiz-adv-x="512" 
-d="M329.2 179.4c-3.7998 -35.2002 -35.4004 -60.6006 -70.6006 -56.8008c-35.1992 3.80078 -60.5996 35.4004 -56.7998 70.6006s35.4004 60.5996 70.6006 56.7998c35.0996 -3.7998 60.5996 -35.4004 56.7998 -70.5996zM243.4 -55.7002
-c-146.7 7.7002 -251.601 138.2 -233.301 279.4c11.2002 86.5996 65.8008 156.899 139.101 192c161 77.0996 349.7 -37.4004 354.7 -216.601c4.09961 -147 -118.4 -262.199 -260.5 -254.8zM423.3 124.3c27.9004 118 -160.5 205.9 -237.2 234.2
-c-57.5 -56.2998 -69.0996 -188.6 -33.7998 -344.4c68.7998 -15.7998 169.101 26.4004 271 110.2z" />
-    <glyph glyph-name="cloudscale" unicode="&#xf383;" 
-d="M318.1 294c6.2002 6.2998 15.8008 -3.09961 9.5 -9.59961l-75.1992 -88.8008c0.899414 -8.19922 -1.80078 -16.7998 -8.10059 -23.0996c-11.0996 -11 -28.8994 -11 -40 0c-11.0996 11.0996 -11.0996 29 0 40c6.2998 6.2998 14.7998 9 23.1006 8.09961l25.1992 20.4004
-c-16.3994 15.2998 -38.3994 24.7002 -62.5996 24.7002c-50.7998 0 -94.5996 -41.4004 -92.5996 -97.4004c-1 6.2998 -1.40039 12.7998 -1.40039 19.4004c0 71.5 57.7998 132.3 129.4 132.3c31.7998 0 60.7998 -14.2998 83.2998 -33.5996zM234.3 182.5
-c5.60059 5.5 5.60059 14.5996 0 20.2002c-5.59961 5.59961 -14.5996 5.59961 -20.2002 0c-5.59961 -5.60059 -5.59961 -14.6006 0 -20.2002c5.60059 -5.5 14.6006 -5.5 20.2002 0zM224 416c123.5 0 224 -100.5 224 -224s-100.5 -224 -224 -224s-224 100.5 -224 224
-s100.5 224 224 224zM224 32c88.2002 0 160 71.7998 160 160s-71.7998 160 -160 160s-160 -71.7998 -160 -160s71.7998 -160 160 -160z" />
-    <glyph glyph-name="cloudsmith" unicode="&#xf384;" horiz-adv-x="332" 
-d="M332.5 28.0996c0 -46.3994 -37.5996 -84.0996 -84 -84.0996s-84 37.7002 -84 84.0996c0 46.4004 37.5996 84 84 84s84 -37.5996 84 -84zM248.5 272c-46.4004 0 -80 -33.5996 -80 -80s-37.5996 -80 -84 -80s-84 33.5996 -84 80s37.5996 88 84 88s76 29.5996 76 76
-s41.5996 84 88 84s80 -37.5996 80 -84s-33.5996 -84 -80 -84z" />
-    <glyph glyph-name="cloudversify" unicode="&#xf385;" horiz-adv-x="616" 
-d="M148.6 144v-0.0996094h-48.8994c-6.40039 0 -11.7002 5.39941 -11.7002 11.7998v40.3994c0 7.60059 7 11.9004 10.7998 11.9004h46.7998v-6.59961c0 -10.7002 8.80078 -16.7002 19.5 -16.7002h20.2002c10.7998 0 19.5 8.7998 19.5 19.5v20.3994
-c0 10.6006 -3.5 19.5 -15.2002 19.5c18.5 15.2002 37.2002 21.4004 45 24.1006c15 56.5 42 92.3994 99.3008 109.7c55.0996 16.5 153.5 3.09961 186.5 -85c73.8994 -22.6006 106.899 -92.6006 92.0996 -155.101c-13 -54.8994 -62.2998 -100.6 -131.5 -99.5
-c-49.5996 -51.3994 -135.2 -48.8994 -186.4 -5.59961c-78.5996 -4.2002 -137.8 42.7998 -146 111.3zM376 136c8.7002 -54.0996 59.7002 -65.5 91.7998 -59.2002c39.1006 7.7002 70.5 37.5 79.7002 76.5c5.7998 24.4004 2.40039 50 -9.40039 72l-10.5 19.6006
-c1.2002 -22.5 -12.5 -60.6006 -47.5 -76.9004c65.5 67.7002 2.10059 141.2 -67.6992 150.5c-49.8008 6.59961 -83.3008 -13 -114.2 -43.7002c48 -4.7002 87.7002 -26.7998 101.8 -74.7998c-30.0996 49.2998 -103 56.5996 -133.6 40.7998
-c-35.5 -18.2002 -60 -54 -57 -93.8994c3.59961 -47.4004 39.5 -67.4004 57.3994 -79.8008c-4.5 21.7002 -4 71.3008 29.2002 92.9004c-36.2998 -60 28.0996 -144.6 135.3 -110.8c-33.5996 14.3994 -66 40.5 -55.2998 86.7998zM128 240h-39.7998
-c-8.90039 0 -16.2002 7.2998 -16.2002 16.2002v39.5996c0 8.90039 7.2998 16.2002 16.2002 16.2002h39.7998c8.90039 0 16.2002 -7.2998 16.2002 -16.2002v-39.5996c0 -8.90039 -7.2998 -16.2002 -16.2002 -16.2002zM10.0996 280c-5.59961 0 -10.0996 4.5 -10.0996 10.0996
-v27.8008c0 5.59961 4.5 10.0996 10.0996 10.0996h27.7002c5.5 0 10.1006 -4.5 10.1006 -10.0996v-27.8008c0 -5.59961 -4.5 -10.0996 -10.1006 -10.0996h-27.7002zM168 305.3v21.4004c0 5.09961 4.2002 9.2998 9.2998 9.2998h21.4004
-c5.09961 0 9.2998 -4.2002 9.2998 -9.2998v-21.4004c0 -5.09961 -4.2002 -9.2998 -9.2998 -9.2998h-21.4004c-5.09961 0 -9.2998 4.2002 -9.2998 9.2998zM56 212.5v-25c0 -6.2998 -5.09961 -11.5 -11.4004 -11.5h-25.1992c-6.30078 0 -11.4004 5.2002 -11.4004 11.5v25
-c0 6.2998 5.09961 11.5 11.4004 11.5h25.0996c6.40039 0 11.5 -5.2002 11.5 -11.5z" />
-    <glyph glyph-name="cpanel" unicode="&#xf388;" horiz-adv-x="640" 
-d="M210.3 227.8c6.60059 -29.0996 -14.5 -65.2998 -51.7002 -65.2998h-32l6.40039 23.7998c1.7998 6.2002 7.2998 10.7998 14.2998 10.7998h10.2998c12.4004 0 20.8008 11.7002 18.3008 22.6006c-2.10059 9.2002 -9.90039 14.7998 -18.3008 14.7998h-19.7998
-l-25.7998 -95.7002c-1.90039 -6.2002 -7.40039 -10.7002 -14.2002 -10.7002l-24.7002 -0.0996094l34.9004 130.1c1.7998 6.40039 7.2002 10.9004 14.2998 10.9004h37c24.1006 0 45.4004 -16.4004 51 -41.2002zM53.7998 199.8c-24.8994 0 -24.7002 -37.3994 0 -37.3994
-h11.2998c4.2002 0 7.60059 -3.90039 6.40039 -8.30078l-7.09961 -26.0996h-12.4004c-33.5 0 -59 31.4004 -50.2998 65.2002c7.2998 27 28.2998 41.0996 51.2002 41.0996h40l-6.2002 -23.5996c-1.90039 -6.5 -7.40039 -10.9004 -14.2998 -10.9004h-18.6006zM301.3 234.6
-c18.7998 0 33.2998 -17.5996 28.5 -36.7998l-14 -51.7998c-2.7998 -10.5996 -12.2002 -17.7998 -23.3994 -17.7998l-57.5 0.200195c-42.9004 0 -38.5 63.7998 0.699219 63.7998h48.4004l-3.5 -13.2002c-1.90039 -6.2002 -7.40039 -10.7998 -14.2002 -10.7998h-21.5996
-c-5.2998 0 -5.2998 -7.90039 0 -7.90039h34.8994c4.60059 0 5.10059 3.90039 5.5 5.2998l8.60059 31.8008c0.299805 1 1.89941 5.2998 -2.10059 5.2998h-57.5c-9.69922 0 -16.5996 8.89941 -14.1992 18.5l3.5 13.3994h77.8994zM633.1 269c4.5 0 7.7002 -4 6.5 -8.2998
-l-26.5 -98.2002c-5.09961 -20.7002 -24.1992 -34.5 -44.8994 -34.5l35.5996 133.1c1.2002 4.7002 5.5 7.90039 10.4004 7.90039h18.8994zM396.8 234.3c34.4004 0 59.2998 -32.2998 50.2998 -65.3994l-8.7998 -33.1006c-1.2002 -4.89941 -5.7002 -7.7998 -10.2998 -7.7998
-h-19.0996c-4.5 0 -7.60059 4 -6.40039 8.2998l10.5996 40c3.30078 11.6006 -5.59961 23.4004 -18.0996 23.4004h-19.7998l-17.2002 -64c-1.2002 -4.7998 -5.59961 -7.7998 -10.4004 -7.7998h-18.8994c-4.2002 0 -7.60059 3.89941 -6.40039 8.2998l26.2002 98h48.2998
-v0.0996094zM495.1 159.7h73.3008l-5.7002 -21c-1.90039 -6.2002 -7.40039 -10.7002 -14.2002 -10.7002h-66.7002c-20 0 -33.2998 19 -28.2998 36.7002l10.7998 40c4.7998 17.5996 20.7002 29.5996 38.6006 29.5996h47.2998c19 0 33.2002 -17.7002 28.2998 -36.7998
-l-3.2002 -12c-2.89941 -11 -12.7002 -17.5996 -23.2002 -17.5996h-53.3994l3.5 13c1.59961 6.19922 7.2002 10.7998 14.2002 10.7998h21.5996c2 0 3.2998 1 3.90039 3l0.699219 2.59961c0.700195 2.7002 -1.2998 5.10059 -3.89941 5.10059h-32.9004
-c-4.09961 0 -6.89941 -2.10059 -7.7998 -6l-8 -30c-0.900391 -3.30078 1.5 -6.7002 5.09961 -6.7002z" />
-    <glyph glyph-name="css3-alt" unicode="&#xf38b;" horiz-adv-x="384" 
-d="M0 416h384l-34.9004 -395.8l-157.1 -52.2002l-157.1 52.2002zM313.1 336h-242.199l5.7998 -47.2998h122.899l-6.5 -2.7002l-112.1 -46.7002l3.59961 -46.2998l0.200195 0.0996094v-0.0996094l166.3 -0.5l-3.69922 -61.5996l-54.7002 -15.4004l-52.6006 13.2998
-l-3.19922 38.2998h-48.9004l6.40039 -73.8994l98.7998 -29.2002l98.2002 28.7002l12.7998 146.6h-111.5l0.299805 0.100586l115.3 49.2998z" />
-    <glyph glyph-name="cuttlefish" unicode="&#xf38c;" horiz-adv-x="440" 
-d="M344 142.5c13.7002 -50.9004 41.7002 -93.2998 87 -117.8c-45.2998 -49.6006 -110.5 -80.7002 -183 -80.7002c-137 0 -248 111 -248 248s111 248 248 248c72.5 0 137.7 -31.0996 183 -80.7002c-45.2998 -24.5 -73.2998 -66.8994 -87 -117.8
-c-17.5 31.5996 -57.4004 54.5 -96 54.5c-56.5996 0 -104 -47.4004 -104 -104s47.4004 -104 104 -104c38.5996 0 78.5 22.9004 96 54.5z" />
-    <glyph glyph-name="d-and-d" unicode="&#xf38d;" horiz-adv-x="576" 
-d="M82.5 349.1c-0.599609 17.2002 2 33.8008 12.7002 48.2002c0.299805 -7.39941 1.2002 -14.5 4.2002 -21.5996c5.89941 27.5 19.6992 49.2998 42.2998 65.5c-1.90039 -5.90039 -3.5 -11.7998 -3 -17.7002c8.7002 7.40039 18.7998 17.7998 44.3994 22.7002
-c14.7002 2.7998 29.7002 2 42.1006 -1c38.5 -9.2998 61 -34.2998 69.7002 -72.2998c5.2998 -23.1006 0.699219 -45 -8.30078 -66.4004c-5.19922 -12.4004 -12 -24.4004 -20.6992 -35.0996c-2 1.89941 -3.90039 3.7998 -5.80078 5.59961
-c-42.7998 40.7998 -26.7998 25.2002 -37.3994 37.4004c-1.10059 1.19922 -1 2.19922 -0.100586 3.59961c8.30078 13.5 11.8008 28.2002 10 44c-1.09961 9.7998 -4.2998 18.9004 -11.2998 26.2002c-14.5 15.2998 -39.2002 15 -53.5 -0.600586
-c-11.3994 -12.5 -14.0996 -27.3994 -10.8994 -43.5996c0.199219 -1.2998 0.399414 -2.7002 0 -3.90039c-3.40039 -13.6992 -4.60059 -27.5996 -2.5 -41.5996c0.0996094 -0.5 0.0996094 -1.09961 0.0996094 -1.59961c0 -0.300781 -0.0996094 -0.5 -0.200195 -1.10059
-c-21.7998 11 -36 28.2998 -43.2002 52.2002c-8.2998 -17.7998 -11.0996 -35.5 -6.59961 -54.0996c-15.5996 15.1992 -21.2998 34.2998 -22 55.1992zM552.1 225.9c0.5 -0.600586 1.2002 -1 1.7002 -1.40039v-0.5c-15 3.59961 -29.7998 1.7998 -44.5 -1.2998
-c-9.2998 -2 -18.2998 -4.7002 -26.7002 -9c-2.89941 -1.5 -5.69922 -3.2998 -8 -4.7002c-5.7998 2.40039 -11.2998 5.5 -17.1992 6.7998c-24.5 5.2998 -45.8008 -1.2002 -62.5 -20c-19.7002 -22.2002 -34.5 -47.5996 -46.7002 -74.5l-1.2002 -2.7002
-c-0.0996094 -0.199219 -0.200195 -0.299805 -0.400391 -0.399414c-12.0996 8.2998 -21.5996 20.2998 -36.0996 25.5996c0.299805 0.400391 0.400391 0.900391 0.700195 1.2998c20.5996 28.2002 44.8994 52.5 75.0996 70.4004c16 9.5 33 16.0996 51.5 18.5
-c1.7998 0.200195 3.5 0.400391 5.2998 1.09961c-4.39941 0 -8.7998 0.300781 -13.0996 -0.0996094c-21.2002 -1.90039 -40.5 -9.59961 -58.7002 -20.2002c-13.7998 -8 -26.2002 -17.7002 -36.5996 -29.7998c-0.400391 -0.5 -0.600586 -1.09961 -0.900391 -1.7002
-c-0.299805 0.299805 -0.700195 0.600586 -1 0.900391c11 30.8994 30.7002 55 57.7002 73.2998c0.200195 -0.200195 0.5 -0.299805 0.700195 -0.5c-1.2002 -1.7002 -2.5 -3.2998 -3.5 -5.09961c-1.7998 -3.30078 -3.7002 -6.5 -5.10059 -10
-c-1.7998 -4.30078 1.60059 -8.60059 12 -0.5c18.2002 14.0996 29.6006 26.2998 48.9004 29.5996c0.700195 0.0996094 1.2998 0.299805 1.90039 0.299805h2.5c-1 -0.700195 -1.60059 -1.09961 -2.2002 -1.5c-11.6006 -7.7998 -11.7998 -7.39941 -15 -12
-c-2.60059 -3.7002 -0.200195 -8 4.7002 -6.7998c2.59961 0.599609 5.19922 1.2998 7.69922 2.2002c9.40039 3.2998 19 5.7998 29 6.39941c13.9004 0.800781 27.1006 -1.89941 39.9004 -7.09961c15.0996 -6.2002 28.5 -15 40.0996 -26.5996zM316.7 50.4004
-c1.5 -1.30078 1.89941 -2.40039 0.899414 -4.2002c-25.2998 -50.2002 -61.0996 -89.1006 -116 -98.7998c-26.7998 -4.7002 -52.8994 -2.7002 -77.8994 8.59961c-18.5 8.2002 -34.6006 19.5996 -47.2002 35.5996c-2 2.60059 -3.7002 5.40039 -5.90039 8.60059
-c-0.699219 -7.7998 0.100586 -14.9004 1.5 -21.9004c-0.199219 -0.200195 -0.399414 -0.299805 -0.599609 -0.5c-3.2002 3.40039 -6.59961 6.60059 -9.5 10.2998c-12.2002 15.5 -19.5 33.3008 -24.0996 52.3008c-11.8008 48.2998 -0.5 78.7998 7.7998 101.1
-c-8.7002 -4.7998 -16.2002 -10.2998 -23.6006 -16.2002c11.6006 32.7998 31.9004 59.9004 56.1006 84.6006c2.39941 -2.10059 3.2998 -4.7002 3 -7.40039c-0.200195 -1 -5.90039 -38.9004 -5.60059 -44.7002c18.9004 18.9004 40.5 33.2998 64.8008 43.9004
-c-7.5 -11.1006 -11 -23.4004 -11.8008 -37.2998c13.4004 12.1992 27.7002 20.0996 46.4004 13.8994c-8.5 -9.09961 -30.7998 -30.5 -38.5996 -64.2998c-5.10059 -21.9004 -3.80078 -43.0996 8.19922 -62.5996c11.2002 -18.3008 27.8008 -27.8008 49.4004 -27.8008
-c12.5996 0 23.7998 5 34.0996 11.8008c18.5 12.2998 32.8008 28.5 44 47.5996c1.90039 3.2002 1.10059 2.09961 1.90039 3c19.9004 -16.0996 3.2998 -2.59961 42.7002 -35.5996zM488.7 96.7998c20.2002 -6.59961 35.5 -18.7998 43.7998 -38.8994
-c9.2002 -23.1006 2.09961 -49.4004 -17.4004 -66c-16.3994 -14 -35.6992 -19.2002 -57 -17.4004c-0.599609 0 -1.19922 0 -1.89941 -0.299805c15.0996 -10.7002 31.5996 -15.2002 50.8994 -10.6006c-2.19922 -2.39941 -3.89941 -4.69922 -5.89941 -6.5
-c-12.2998 -10.8994 -26.9004 -16.8994 -42.9004 -19.7998c-39.5996 -7.2998 -75.5996 12.7998 -85 56.9004c-0.5 2.09961 -0.599609 4.2002 -0.899414 6.39941c-10.8008 -8.19922 -16.4004 -34.0996 -0.700195 -52.2998c-1.60059 0.5 -2.60059 0.700195 -3.60059 1.10059
-c-21.2998 8.2998 -34.3994 28.2998 -33.5 51.1992c0.900391 23.2002 4.90039 41 -13 56c-16.5 13.8008 -33 27.4004 -49.5 41.1006c-8.09961 6.7002 -14.7998 14.5 -17 25.0996c-1 4.60059 -1.39941 9.40039 -1.7998 14.1006c-0.5 6.09961 -3.2998 11 -7.89941 14.7998
-c-4.5 3.89941 -9.30078 7.39941 -13.8008 11.2002c-8.89941 7.5 -12.2998 18.8994 -7.2998 29.8994c2.7998 -12.8994 9.60059 -18.8994 22.6006 -20.2998c4.39941 -0.5 8.89941 -0.799805 13.2998 -1.5c8.09961 -1.2002 12.7998 -6.09961 14.2998 -14.2002
-c0.700195 -3.39941 1.2998 -6.7998 2.2002 -10.2002c1.59961 -5.59961 4.5 -8 10.3994 -8.39941c4.60059 -0.299805 9.30078 -0.5 13.9004 -0.900391c7.59961 -0.599609 14.2002 -3.7998 20.0996 -8.7002c19.4004 -16.1992 39 -32.1992 58.5 -48.2998
-c5.7002 -4.7002 12 -8.2002 19.6006 -8.5c16.7002 -0.599609 29 15.2002 24.7998 31.7998c-0.200195 0.700195 -0.400391 1.5 -0.0996094 2.80078c2.39941 -2 4.89941 -3.80078 7 -5.90039c14.0996 -14 18.0996 -39.2998 8.69922 -56.0996
-c-2.09961 -3.80078 -5.2998 -7.10059 -8.09961 -10.8008c0.700195 -0.199219 1.7998 -0.5 3 -0.599609c14 -1.40039 27.2002 1 38.9004 9.09961c15.7998 10.9004 18 31.2002 5.39941 45.6006c-4.7002 5.39941 -8.89941 8 -18.7998 12
-c6.5 1.2998 19.2002 0.200195 28.7002 -2.90039zM99.4004 268.7c-5.30078 9.2002 -13.2002 15.5996 -22.1006 21.2998c13.7002 0.5 26.6006 -0.200195 39.6006 -3.7002c-7 12.2002 -8.5 24.7002 -5 38.7002c5.2998 -11.9004 13.6992 -20.0996 23.5996 -26.7998
-c19.7002 -13.2002 35.7002 -19.6006 46.7002 -30.2002c3.39941 -3.2998 6.2998 -7.09961 9.59961 -10.9004c-0.799805 2.10059 -1.39941 4.10059 -2.2002 6c-5 10.6006 -13 18.6006 -22.5996 25c-1.7998 1.2002 -2.7998 2.5 -3.40039 4.5
-c-3.2998 12.5 -3 25.1006 -0.699219 37.6006c1 5.5 2.7998 10.8994 4.5 16.2998c0.799805 2.40039 2.2998 4.59961 4 6.59961c0.599609 -6.89941 0 -25.5 19.5996 -46c10.7998 -11.2998 22.4004 -21.8994 33.9004 -32.6992c9 -8.5 18.2998 -16.7002 25.5 -26.8008
-c1.09961 -1.59961 2.19922 -3.2998 3.7998 -4.69922c-5 13 -14.2002 24.0996 -24.2002 33.7998c-9.59961 9.2998 -19.4004 18.3994 -29.2002 27.3994c-3.2998 3 -4.59961 6.7002 -5.09961 10.9004c-1.2002 10.4004 0 20.5996 4.2998 30.2002c0.5 1 1.09961 2 1.90039 3.2998
-c0.5 -4.2002 0.599609 -7.90039 1.39941 -11.5996c4.7998 -23.1006 20.4004 -36.3008 49.2998 -63.5c10 -9.40039 19.3008 -19.2002 25.6006 -31.6006c4.7998 -9.2998 7.2998 -19 5.7002 -29.5996c-0.100586 -0.600586 0.5 -1.7002 1.09961 -2
-c6.2002 -2.60059 10 -6.90039 9.7002 -14.2998c7.7002 2.59961 12.5 8 16.3994 14.5c4.2002 -20.2002 -9.09961 -50.3008 -27.1992 -58.7002c0.399414 4.5 5 23.3994 -16.5 27.7002c-6.80078 1.2998 -12.8008 1.2998 -22.9004 2.09961c4.7002 9 10.4004 20.5996 0.5 22.4004
-c-24.9004 4.59961 -52.7998 -1.90039 -57.7998 -4.60059c8.2002 -0.399414 16.2998 -1 23.5 -3.2998c-2 -6.5 -4 -12.7002 -5.7998 -18.9004c-1.90039 -6.5 2.09961 -14.5996 9.2998 -9.59961c1.2002 0.900391 2.2998 1.90039 3.2998 2.7002
-c-3.09961 -17.9004 -2.90039 -15.9004 -2.7998 -18.2998c0.299805 -10.2002 9.5 -7.80078 15.7002 -7.30078c-2.5 -11.7998 -29.5 -27.2998 -45.4004 -25.7998c7 4.7002 12.7002 10.2998 15.9004 17.9004c-6.5 -0.799805 -12.9004 -1.60059 -19.2002 -2.40039
-l-0.299805 0.900391c4.69922 3.39941 8 7.7998 10.1992 13.0996c8.7002 21.1006 -3.59961 38 -25 39.9004c-9.09961 0.799805 -17.7998 -0.799805 -25.8994 -5.5c6.2002 15.5996 17.2002 26.5996 32.5996 34.5c-15.2002 4.2998 -8.89941 2.7002 -24.5996 6.2998
-c14.5996 9.2998 30.2002 13.2002 46.5 14.5996c-5.2002 3.2002 -48.1006 3.60059 -70.2002 -20.8994c7.90039 -1.40039 15.5 -2.7998 23.2002 -4.2002c-23.7998 -7 -44 -19.7002 -62.4004 -35.5996c1.10059 4.7998 2.7002 9.5 3.2998 14.2998
-c0.600586 4.5 0.800781 9.2002 0.100586 13.5996c-1.5 9.40039 -8.90039 15.1006 -19.7002 16.2998c-7.90039 0.900391 -15.5996 -0.0996094 -23.2998 -1.2998c-0.900391 -0.0996094 -1.7002 -0.299805 -2.90039 0c15.7998 14.7998 36 21.7002 53.1006 33.5
-c6 4.5 6.7998 8.2002 3 14.9004zM227.8 241.9c3.2998 -16 12.6006 -25.5 23.7998 -24.3008c-4.59961 11.3008 -12.0996 19.5 -23.7998 24.3008z" />
-    <glyph glyph-name="deploydog" unicode="&#xf38e;" horiz-adv-x="512" 
-d="M382.2 312h51.7002v-239.6h-51.7002v20.6992c-19.7998 -24.7998 -52.7998 -24.0996 -73.7998 -14.6992c-26.2002 11.6992 -44.3008 38.0996 -44.3008 71.7998c0 29.7998 14.8008 57.8994 43.3008 70.7998c20.1992 9.09961 52.6992 10.5996 74.7998 -12.9004v103.9z
-M317.5 150.2c0 -18.2002 13.5996 -33.5 33.2002 -33.5c19.7998 0 33.2002 16.3994 33.2002 32.8994c0 17.1006 -13.7002 33.2002 -33.2002 33.2002c-19.6006 0 -33.2002 -16.3994 -33.2002 -32.5996zM188.5 312h51.7002v-239.6h-51.7002v20.6992
-c-19.7998 -24.7998 -52.7998 -24.0996 -73.7998 -14.6992c-26.2002 11.6992 -44.2998 38.0996 -44.2998 71.7998c0 29.7998 14.7998 57.8994 43.2998 70.7998c20.2002 9.09961 52.7002 10.5996 74.7998 -12.9004v103.9zM123.8 150.2c0 -18.2002 13.6006 -33.5 33.2002 -33.5
-c19.7998 0 33.2002 16.3994 33.2002 32.8994c0 17.1006 -13.7002 33.2002 -33.2002 33.2002c-19.7002 0 -33.2002 -16.3994 -33.2002 -32.5996zM448 352h-384c-17.5996 0 -32 -14.5 -32 -32v-256c0 -17.5996 14.5 -32 32 -32h384c17.5996 0 32 14.5 32 32v256
-c0 17.5996 -14.5 32 -32 32zM448 384c35.2002 0 64 -28.7998 64 -64v-256c0 -35.2002 -28.7998 -64 -64 -64h-384c-35.2002 0 -64 28.7998 -64 64v256c0 35.2002 28.7998 64 64 64h384z" />
-    <glyph glyph-name="deskpro" unicode="&#xf38f;" horiz-adv-x="480" 
-d="M205.9 -64l31.0996 38.4004c12.2998 0.199219 25.5996 1.39941 36.5 6.59961c38.9004 18.5996 38.4004 61.9004 38.2998 63.7998c-0.0996094 5 -0.799805 4.40039 -28.8994 37.4004h79.0996c-0.200195 -50.1006 -7.2998 -68.5 -10.2002 -75.7002
-c-9.39941 -23.7002 -43.8994 -62.7998 -95.2002 -69.4004c-8.69922 -1.09961 -32.7998 -1.19922 -50.6992 -1.09961zM406.3 103.7l-119.2 -0.100586l17.4004 31.3008l175.5 -0.300781c-15.2002 -17.2998 -35.0996 -30.8994 -73.7002 -30.8994zM362.7 327.6v-168.3h-73.5
-l-32.7002 -55.5h-6.5c-52.2998 0 -58.0996 56.5 -58.2998 58.9004c-1.2002 13.2002 -21.2998 11.5996 -20.1006 -1.7998c1.40039 -15.8008 8.80078 -40 26.4004 -57.1006h-91c-25.5 0 -110.8 26.7998 -107 114v213.3c0 16 9.7002 16.6006 15 16.8008h82
-c0.200195 0 0.299805 -0.100586 0.5 -0.100586c4.2998 0.400391 50.0996 2.10059 50.0996 -43.7002c0 -13.2998 20.2002 -13.3994 20.2002 0c0 18.2002 -5.5 32.8008 -15.7998 43.7002h84.2002c108.7 0.400391 126.5 -79.3994 126.5 -120.2zM230.2 271.6l64 -29.2998
-c13.2998 45.5 -42.2002 71.7002 -64 29.2998z" />
-    <glyph glyph-name="digital-ocean" unicode="&#xf391;" horiz-adv-x="512" 
-d="M87 -33.7998v73.5996h73.7002v-73.5996h-73.7002zM25.4004 101.4h61.5996v-61.6006h-61.5996v61.6006zM491.6 271.1c53.2002 -170.3 -73 -327.1 -235.6 -327.1v95.7998h0.299805v0.299805c101.7 0.200195 180.5 101 141.4 208
-c-14.2998 39.6006 -46.1006 71.4004 -85.7998 85.7002c-107.101 38.7998 -208.101 -39.8994 -208.101 -141.7h-95.7998c0 162.2 156.9 288.7 327 235.601c74.2002 -23.2998 133.6 -82.4004 156.6 -156.601zM256.3 40.0996h-0.299805v-0.299805h-95.2998v95.6006h95.5996
-v-95.3008z" />
-    <glyph glyph-name="discord" unicode="&#xf392;" 
-d="M297.216 204.8c0 -15.6162 -11.5195 -28.416 -26.1123 -28.416c-14.3359 0 -26.1113 12.7998 -26.1113 28.416s11.5195 28.416 26.1113 28.416c14.5928 0 26.1123 -12.7998 26.1123 -28.416zM177.664 233.216c14.5918 0 26.3682 -12.7998 26.1123 -28.416
-c0 -15.6162 -11.5205 -28.416 -26.1123 -28.416c-14.3359 0 -26.1123 12.7998 -26.1123 28.416s11.5205 28.416 26.1123 28.416zM448 395.264v-459.264c-64.4941 56.9941 -43.8682 38.1279 -118.784 107.776l13.5684 -47.3604h-290.304
-c-28.9287 0 -52.4805 23.5518 -52.4805 52.7363v346.111c0 29.1846 23.5518 52.7363 52.4805 52.7363h343.039c28.9287 0 52.4805 -23.5518 52.4805 -52.7363zM375.04 152.576c0 82.4316 -36.8643 149.248 -36.8643 149.248
-c-36.8643 27.6475 -71.9355 26.8799 -71.9355 26.8799l-3.58398 -4.0957c43.5195 -13.3125 63.7441 -32.5127 63.7441 -32.5127c-60.8115 33.3291 -132.244 33.335 -191.232 7.42383c-9.47168 -4.35156 -15.1035 -7.42383 -15.1035 -7.42383
-s21.2471 20.2246 67.3271 33.5361l-2.55957 3.07227s-35.0723 0.767578 -71.9355 -26.8799c0 0 -36.8643 -66.8164 -36.8643 -149.248c0 0 21.5039 -37.1201 78.0801 -38.9121c0 0 9.47168 11.5195 17.1514 21.248c-32.5117 9.72754 -44.7998 30.208 -44.7998 30.208
-c3.7666 -2.63574 9.97656 -6.05273 10.4961 -6.40039c43.21 -24.1973 104.588 -32.126 159.744 -8.95996c8.95996 3.32812 18.9443 8.19238 29.4395 15.1045c0 0 -12.7998 -20.9922 -46.3359 -30.4639c7.68066 -9.72852 16.8965 -20.7363 16.8965 -20.7363
-c56.5762 1.79199 78.3359 38.9121 78.3359 38.9121z" />
-    <glyph glyph-name="discourse" unicode="&#xf393;" 
-d="M225.9 416c122.699 0 222.1 -102.3 222.1 -223.9c0 -121.6 -99.4004 -223.899 -222.1 -223.899l-225.801 -0.200195s-0.0996094 224 -0.0996094 227.9c0 121.6 103.3 220.1 225.9 220.1zM224 64c70.7002 0 128 57.2998 128 128s-57.2998 128 -128 128
-s-128 -57.2998 -128 -128c0 -22.0996 5.59961 -42.9004 15.4004 -61l-22.9004 -75l81.0996 20.0996c16.5 -7.7998 35 -12.0996 54.4004 -12.0996z" />
-    <glyph glyph-name="dochub" unicode="&#xf394;" horiz-adv-x="416" 
-d="M397.9 288h-141.9v140.4zM304 256h96v-126.1c0 -129.301 -70.2998 -193.9 -210.8 -193.9h-189.2v512h189.2c12.2002 0 23.7002 -1.09961 34.5996 -3.2998v-84c-10 1.7002 -21.0996 2.5 -33.0996 2.5h-94.7002v-337.3h94.7002c76.7998 0 113.3 33.2998 113.3 100.1v130z
-" />
-    <glyph glyph-name="docker" unicode="&#xf395;" horiz-adv-x="640" 
-d="M349.9 211.7h-66.1006v59.3994h66.1006v-59.3994zM349.9 416v-60.7002h-66.1006v60.7002h66.1006zM428.1 271.2v-59.4004h-66.0996v59.4004h66.0996zM271.8 343.3v-60.0996h-66.0996v60.0996h66.0996zM349.9 343.3v-60.0996h-66.1006v60.0996h66.1006zM626.7 243.3
-l13.2998 -8.89941c-1.90039 -3.90039 -7 -14.6006 -8.5 -17.1006c-23.7002 -45.2998 -69.9004 -45.5996 -91.2998 -45.2002c-54.5 -131.699 -171 -204.199 -328.4 -204.199c-72.7002 0 -128.3 22.2998 -165.399 66.1992c-38.2002 45.3008 -52.7002 111.301 -44 162.101
-h434.699c22.6006 -0.400391 39.7002 6 48.4004 10.7002c-19.7002 30.1992 -14.7002 76 3.7002 103.8l9.2998 14l14 -9.2998c24.4004 -18.8008 37.7998 -39.7002 41.0996 -63.7002c25.5 4.7998 58.7002 1.2998 73.1006 -8.40039zM115.6 271.2h0.100586v-59.4004h-66.1006
-v59.4004h66zM193.7 271.2v-59.4004h-66.1006v59.4004h66.1006zM271.8 271.2v-59.4004h-66.0996v59.4004h66.0996zM193.7 343.3v-60.0996h-66.1006v60.0996h66.1006z" />
-    <glyph glyph-name="draft2digital" unicode="&#xf396;" horiz-adv-x="480" 
-d="M480 49.9004l-144 -81.9004v64.2002l-336 -0.100586c18.2998 19.1006 84.5 87.8008 161.1 174.801c32.6006 37.1992 78 83.2998 69.7002 127.6c-5.2998 28.2998 -42.2002 50.7998 -83.2998 33.5c-8.59961 -3.59961 -24.5 -17.4004 -26.2998 -24.7002
-c28.2998 -4.7002 48 -29.7002 48 -56.7998c0 -31.7002 -25.6006 -57.4004 -57.2998 -57.4004c-37.3008 0 -62.2002 34.1006 -56.7002 67.1006c1.2002 7.89941 5.09961 26.7998 18.2002 47.7002c14.8994 23.8994 45.1992 54.8994 104.3 67.2998
-c103.8 21.7002 161.6 -36.6006 166 -41.2002c28.8994 -29.9004 48 -90.7002 12.7998 -153.3c-30 -53.4004 -81 -114.3 -111.8 -149.3h91.2998v64.6992zM369.9 77v-54.4004l47.0996 27.2002zM134.2 286.6c0 12.3008 -10 22.4004 -22.4004 22.4004
-c-12.3994 0 -22.3994 -10 -22.3994 -22.4004c0 -12.3994 10 -22.3994 22.3994 -22.3994c12.4004 0 22.4004 10 22.4004 22.3994zM82.5 67.5h114.4c17.5996 19.2002 91.5 100.8 128.5 166.7c36.5996 65.0996 -5.80078 113.3 -5.80078 113.3
-c-14.1992 14.9004 -36.8994 36.2002 -82.1992 38.2998c6.7998 -5.5 16.8994 -16.8994 24.2998 -35.7002c11.8994 -30.2998 6.7002 -69.5996 -28.4004 -112.699c-53.0996 -65.2002 -125.2 -142.5 -150.8 -169.9z" />
-    <glyph glyph-name="dribbble-square" unicode="&#xf397;" 
-d="M90.2002 219.8c8.89941 42.4004 37.3994 77.7002 75.7002 95.7002c3.59961 -4.90039 28 -38.7998 50.6992 -79c-64 -17 -120.3 -16.7998 -126.399 -16.7002zM314.6 294c-2.5 -3.5 -23 -31.0996 -71.5996 -49.4004c-22.4004 41.1006 -47.2002 74.9004 -51 80
-c43.2998 10.5 89 -0.799805 122.6 -30.5996zM140.1 84c14.3008 29.2002 53 66.7998 108.101 85.5996c19.2002 -49.7998 27.2002 -91.5996 29.2002 -103.6c-44 -18.7002 -96.8008 -13.5996 -137.301 18zM238.9 192.2c-49.4004 -13.9004 -94.3008 -53.9004 -116.5 -91.7998
-c-21.8008 24.2998 -35.1006 56.2998 -35.1006 91.3994c0 1.40039 0.100586 2.7998 0.100586 4.2002c6 -0.200195 72.1992 -1 140.399 19.4004c3.90039 -7.7002 7.7002 -15.4004 11.1006 -23.2002zM273.8 175.9c42.7998 6.89941 80.5 -4.30078 85.1006 -5.80078
-c-6.10059 -38 -27.9004 -70.8994 -58.6006 -91.5996c-1.39941 8.2998 -8.59961 48.2998 -26.5 97.4004zM253.5 224.3c50.5 20.7002 73.4004 50 76.2998 53.9004c19.1006 -23.2002 30.6006 -52.7998 30.9004 -85.1006c-4.5 1 -49.7002 10.1006 -95.2002 4.40039
-c-3.7002 9 -7.2002 17 -12 26.7998zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM384 192c0 88.2002 -71.7998 160 -160 160s-160 -71.7998 -160 -160s71.7998 -160 160 -160
-s160 71.7998 160 160z" />
-    <glyph glyph-name="dyalog" unicode="&#xf399;" horiz-adv-x="416" 
-d="M0 416h171.2c74.5 0 137.7 -24 182.5 -69.5996c40.2002 -40.9004 62.2998 -95.6006 62.2998 -154.301c0 -111.399 -84.0996 -224.1 -244.8 -224.1h-171.2v64h171.2c122.2 0 180.8 84 180.8 160.1c0 79.7002 -67.4004 159.9 -180.8 159.9h-107.2v-55.2002h-64v119.2z" />
-    <glyph glyph-name="earlybirds" unicode="&#xf39a;" horiz-adv-x="480" 
-d="M313.2 400.5c1.2002 13 21.2998 14 36.5996 8.7002c0.900391 -0.299805 26.2002 -9.7002 19 -15.2002c-27.8994 7.40039 -56.3994 -18.2002 -55.5996 6.5zM112.2 393.6c-7.7998 6.2002 19.8994 16.4004 20.8994 16.7002c16.8008 5.7002 38.9004 4.60059 40.2002 -9.59961
-c0.900391 -27.1006 -30.3994 1 -61.0996 -7.10059zM319.4 288c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16c-8.80078 0 -16 7.2002 -16 16s7.19922 16 16 16zM159.7 288c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16s-16 7.2002 -16 16s7.2002 16 16 16z
-M478.2 124.8c-9.90039 -24 -40.7002 -11 -63.9004 1.2002c-13.5 -69.0996 -58.0996 -111.4 -126.3 -124.2c0.299805 -0.899414 -2 0.100586 24 -1c33.5996 -1.39941 63.7998 3.10059 97.4004 8c-19.8008 13.7998 -11.4004 37.1006 -9.80078 38.1006
-c1.40039 0.899414 14.7002 -1.7002 21.6006 -11.5c8.59961 12.5 28.3994 14.7998 30.2002 13.5996c1.59961 -1.09961 6.59961 -20.9004 -6.90039 -34.5996c4.7002 0.899414 8.2002 1.59961 9.7998 2.09961c2.60059 0.799805 17.7002 -11.2998 3.10059 -13.2998
-c-14.3008 -2.2998 -22.6006 -5.10059 -47.1006 -10.7998c-45.8994 -10.7002 -85.8994 -11.8008 -117.7 -12.8008l1 -11.5996c3.80078 -18.0996 -23.3994 -24.2998 -27.5996 -6.2002c0.799805 -17.8994 -27.0996 -21.7998 -28.4004 1l-0.5 -5.2998
-c-0.699219 -18.4004 -28.3994 -17.9004 -28.2998 0.599609c-7.5 -13.5 -28.0996 -6.7998 -26.3994 8.5l1.19922 12.4004c-36.6992 -0.900391 -59.6992 -3.09961 -61.7998 -3.09961c-20.8994 0 -20.8994 31.5996 0 31.5996c2.40039 0 27.7002 -1.2998 63.2002 -2.7998
-c-61.0996 15.5 -103.7 55 -114.9 118.2c-25 -12.8008 -57.5 -26.8008 -68.1992 -0.800781c-10.5 25.4004 21.5 42.6006 66.7998 73.4004c0.700195 6.59961 1.59961 13.2998 2.7002 19.7998c-14.4004 19.6006 -11.6006 36.2998 -16.1006 60.4004
-c-16.7998 -2.40039 -23.2002 9.09961 -23.5996 23.0996c0.299805 7.2998 2.09961 14.9004 2.39941 15.4004c1.10059 1.7998 10.1006 2 12.7002 2.59961c6 31.7002 50.6006 33.2002 90.9004 34.5c19.7002 21.7998 45.2002 41.5 80.8994 48.2998
-c-15.2998 19.4004 -3.39941 39.9004 -2.39941 40.4004c1.7002 0.799805 21.2002 -4.2998 26.2998 -23.2002c5.2002 8.7998 18.2998 11.4004 19.5996 10.7002c1.10059 -0.599609 6.40039 -15 -4.89941 -25.9004c40.2998 -3.5 72.2002 -24.6992 96 -50.6992
-c36.0996 -1.5 71.7998 -5.90039 77.0996 -34c2.7002 -0.600586 11.6006 -0.800781 12.7002 -2.60059c0.299805 -0.5 2.09961 -8.09961 2.40039 -15.3994c-0.5 -13.9004 -6.80078 -25.4004 -23.6006 -23.1006c-3.2002 -17.2998 -2.7002 -32.8994 -8.7002 -47.7002
-c2.40039 -11.6992 4 -23.7998 4.80078 -36.3994c37 -25.4004 70.2998 -42.5 60.2998 -66.9004zM207.4 288.1c0.899414 44 -37.9004 42.2002 -78.6006 40.3008c-21.7002 -1 -38.8994 -1.90039 -45.5 -13.9004c-11.3994 -20.9004 5.90039 -92.9004 23.2002 -101.2
-c9.7998 -4.7002 73.4004 -7.89941 86.2998 7.10059c8.2002 9.39941 15 49.3994 14.6006 67.6992zM259.4 229.8c-4.30078 12.4004 -6 30.1006 -15.3008 32.7002c-2 0.5 -9 0.5 -11 0c-10 -2.7998 -10.7998 -22.0996 -17 -37.2002c15.4004 0 19.3008 -9.7002 23.7002 -9.7002
-c4.2998 0 6.2998 11.3008 19.6006 14.2002zM395.1 314.5c-6.59961 12.0996 -24.7998 12.9004 -46.5 13.9004c-40.1992 1.89941 -78.1992 3.7998 -77.2998 -40.3008c-0.5 -18.2998 5 -58.2998 13.2002 -67.7998c13 -14.8994 76.5996 -11.7998 86.2998 -7.09961
-c15.7998 7.59961 36.5 78.8994 24.2998 101.3z" />
-    <glyph glyph-name="erlang" unicode="&#xf39d;" horiz-adv-x="640" 
-d="M87.2002 394.5c-41.5 -50.2002 -65.6006 -116.2 -65.5 -192.9c-0.100586 -86.7998 29 -159.5 78.7002 -212.1h-100.4v405h87.2002zM325.4 384.8c46.1992 -0.0996094 79.5996 -33.5 80.6992 -83.2002h-169.899c4.09961 49.7002 43.2998 83.1006 89.2002 83.2002z
-M556.1 394.4h0.300781l-0.100586 0.0996094zM556.4 394.4h83.5996v-405h-80.7998c21.3994 23 40.5 49.8994 57.8994 80.7998l-96.3994 48.2002c-33.9004 -55.1006 -83.4004 -105.801 -151.9 -106.101c-99.7002 0.400391 -138.8 85.6006 -138.6 195.3h372.399
-c0.5 12.4004 0.5 18.1006 0 24.1006c2.5 65.2002 -14.7998 120 -46.1992 162.7z" />
-    <glyph glyph-name="facebook-f" unicode="&#xf39e;" horiz-adv-x="320" 
-d="M279.14 160h-74.6895v-224h-100.17v224h-81.3906v92.6602h81.3906v70.6201c0 80.3398 47.8594 124.72 121.08 124.72c35.0693 0 71.75 -6.25977 71.75 -6.25977v-78.8906h-40.4199c-39.8203 0 -52.2402 -24.71 -52.2402 -50.0596v-60.1299h88.9102z" />
-    <glyph glyph-name="facebook-messenger" unicode="&#xf39f;" horiz-adv-x="512" 
-d="M256.55 440c140.04 0 247.45 -102.34 247.45 -240.57c0 -175.13 -166.15 -273.229 -319.44 -231.04c-8.96973 2.44043 -9.64941 0.600586 -62.5596 -22.6992c-2.4375 -1.06445 -5.14355 -1.6543 -7.97168 -1.6543c-10.7617 0 -19.541 8.55176 -19.9082 19.2236
-c-1.41992 46.3701 0.299805 50.7207 -8.0498 58.2305c-48.3604 43.1602 -78.0703 105.64 -78.0703 177.939c0 138.23 108.52 240.57 248.55 240.57zM405.79 254.87c7.0498 11.0801 -6.65039 23.5996 -17.0898 15.6201l-78.4102 -59.3799
-c-2.50586 -1.87988 -5.64258 -2.99316 -9.0127 -2.99316s-6.48145 1.11328 -8.9873 2.99316l-58.0596 43.46c-6.23047 4.65234 -13.9668 7.46582 -22.333 7.46582c-13.2803 0 -24.9512 -6.94434 -31.5771 -17.3965l-73 -115.569
-c-7.05078 -11.0703 6.64941 -23.6006 17.1094 -15.6699l78.3701 59.4395c2.50586 1.87891 5.64258 2.99316 9.0127 2.99316s6.48242 -1.11426 8.9873 -2.99316l58.0801 -43.4697c6.23047 -4.65039 13.9658 -7.46191 22.3301 -7.46191
-c13.2803 0 24.9512 6.94141 31.5801 17.3916z" />
-    <glyph glyph-name="firstdraft" unicode="&#xf3a1;" horiz-adv-x="384" 
-d="M384 256h-64v-128h-128v-128h-192v25.5996h166.4v128h128v128h89.5996v-25.5996zM358.4 217.6h25.5996v-153.6h-128v-128h-192v25.5996h166.4v128h128v128zM384 25.5996v-25.5996h-64v-64h-25.5996v89.5996h89.5996zM0 448h384v-128h-128v-128h-128v-128h-128v384z" />
-    <glyph glyph-name="fonticons-fi" unicode="&#xf3a2;" horiz-adv-x="384" 
-d="M114.4 224h92.3994l-15.2002 -51.2002h-76.3994v-157.8c0 -8 -2.7998 -9.2002 4.39941 -10l59.6006 -5.59961v-34.4004h-179.2v35.2002l29.2002 2.7998c7.2002 0.799805 9.2002 3.2002 9.2002 10.7998v155.8c0 3.2002 -4 3.2002 -8 3.2002h-30.4004v51.2002h38.4004
-v28.7998c0 68 36.3994 96 106 96c46.7998 0 88.7998 -11.2002 88.7998 -72.3994l-69.6006 -8.40039c0.400391 25.5996 -6 31.5996 -22.3994 31.5996c-25.2002 0 -26 -13.5996 -26 -37.5996v-32c0 -3.2002 -4.7998 -6 -0.799805 -6zM384 -35h-140.8v34.4004l28 3.59961
-c7.2002 0.799805 10.3994 2.40039 10.3994 10v148c0 5.59961 -4 9.2002 -9.19922 10.7998l-33.2002 8.7998l9.2002 40.4004h110v-208c0 -8 -3.60059 -8.7998 4 -10l21.5996 -3.59961v-34.4004zM354 312.2l12.4004 -45.6006l-10 -10l-42.8008 22.8008l-42.7998 -22.8008
-l-10 10l12.4004 45.6006l-30 36.3994l4.7998 10h38l21.2002 38.4004h12.7998l21.2002 -38.4004h38l4.7998 -13.1992z" />
-    <glyph glyph-name="fort-awesome-alt" unicode="&#xf3a3;" horiz-adv-x="512" 
-d="M208 210.6c2.09961 0 3.7002 -1.59961 3.7002 -3.69922v-51.7002c0 -2.10059 -1.60059 -3.7002 -3.7002 -3.7002h-22.2002c-2.09961 0 -3.7002 1.59961 -3.7002 3.7002v51.7002c0 2.09961 1.60059 3.69922 3.7002 3.69922h22.2002zM326.2 210.6
-c2 0 3.59961 -1.59961 3.7002 -3.69922v-51.7002c0 -2.10059 -1.60059 -3.7002 -3.7002 -3.7002h-22.2002c-2.09961 0 -3.7002 1.59961 -3.7002 3.7002v51.7002c0 2.09961 1.60059 3.69922 3.7002 3.69922h22.2002zM458.2 335.7
-c28.8994 -40.7002 45.7998 -90.2002 45.7998 -143.7c0 -2 0 -4 -0.0996094 -6c0 -0.700195 0 -1.2998 -0.100586 -2c0 -1.2998 -0.0996094 -2.7002 -0.200195 -4c0 -0.799805 -0.0996094 -1.5 -0.0996094 -2.2998
-c-0.0996094 -1.2002 -0.0996094 -2.40039 -0.200195 -0.700195c-0.0996094 -0.799805 -0.0996094 -1.59961 -0.200195 -2.40039c-0.0996094 -1.19922 -0.199219 -2.39941 -0.299805 -3.5c-0.0996094 -0.799805 -0.200195 -1.59961 -0.200195 -2.39941
-c-0.0996094 -1.2002 -0.299805 -2.40039 -0.399414 -3.60059c-0.100586 -0.799805 -0.200195 -1.5 -0.299805 -2.2998c-0.200195 -1.2998 -0.400391 -2.59961 -0.5 -3.89941c-0.100586 -0.600586 -0.200195 -1.30078 -0.300781 -1.90039l-0.899414 -5.7002
-c-0.100586 -0.599609 -0.200195 -1.09961 -0.299805 -1.7002c-0.200195 -1.2998 -0.5 -2.69922 -0.800781 -4c-0.199219 -0.799805 -0.299805 -1.59961 -0.5 -2.39941c-0.199219 -1.10059 -0.5 -2.2002 -0.699219 -3.2002
-c-0.200195 -0.900391 -0.400391 -1.7002 -0.600586 -2.59961c-0.200195 -1 -0.5 -2 -0.700195 -3c-0.199219 -0.900391 -0.5 -1.80078 -0.699219 -2.7002c-0.300781 -1 -0.5 -1.90039 -0.800781 -2.90039c-0.199219 -0.899414 -0.5 -1.7998 -0.799805 -2.7002
-c-0.299805 -0.899414 -0.599609 -1.89941 -0.799805 -2.7998c-0.299805 -0.899414 -0.5 -1.7998 -0.799805 -2.7002c-0.299805 -0.899414 -0.600586 -1.7998 -0.900391 -2.7998c-0.5 -1.59961 -1.09961 -3.2998 -1.7002 -4.89941
-c-0.299805 -0.900391 -0.599609 -1.80078 -1 -2.80078c-0.399414 -1 -0.699219 -2 -1.09961 -3c-0.299805 -0.799805 -0.599609 -1.5 -0.900391 -2.2998l-1.19922 -3c-0.300781 -0.700195 -0.600586 -1.5 -0.900391 -2.2002c-0.400391 -1 -0.799805 -2 -1.2998 -3
-l-0.900391 -2.09961c-0.399414 -1 -0.899414 -2 -1.39941 -3c-0.300781 -0.700195 -0.600586 -1.2998 -0.900391 -2c-0.5 -1 -1 -2.09961 -1.5 -3.09961c-0.299805 -0.600586 -0.599609 -1.10059 -0.799805 -1.7002c-0.600586 -1.10059 -1.10059 -2.2002 -1.7002 -3.2998
-c-0.0996094 -0.200195 -0.200195 -0.300781 -0.299805 -0.5c-2.2002 -4.10059 -4.40039 -8.2002 -6.7998 -12.2002c-0.200195 -0.400391 -0.5 -0.799805 -0.700195 -1.2002c-0.700195 -1.09961 -1.2998 -2.2002 -2 -3.2998
-c-0.299805 -0.5 -0.600586 -0.900391 -0.900391 -1.40039c-0.700195 -1.09961 -1.39941 -2.09961 -2 -3.2002c-0.299805 -0.5 -0.599609 -0.899414 -0.899414 -1.39941c-0.700195 -1.10059 -1.40039 -2.10059 -2.10059 -3.2002
-c-0.299805 -0.400391 -0.599609 -0.799805 -0.799805 -1.2002c-0.799805 -1.09961 -1.5 -2.2002 -2.2998 -3.2998c-0.200195 -0.200195 -0.299805 -0.5 -0.5 -0.700195c-37.6006 -54.7002 -94.5 -91.3994 -160.101 -102.399
-c-0.899414 -0.100586 -1.69922 -0.300781 -2.59961 -0.400391c-1 -0.200195 -2.09961 -0.299805 -3.09961 -0.5c-0.900391 -0.0996094 -1.80078 -0.299805 -2.80078 -0.400391c-1 -0.0996094 -2 -0.299805 -3 -0.399414c-1 -0.100586 -2 -0.200195 -2.89941 -0.299805
-c-1 -0.100586 -1.90039 -0.200195 -2.90039 -0.300781c-1 -0.0996094 -2.09961 -0.199219 -3.09961 -0.299805c-0.900391 -0.0996094 -1.7998 -0.200195 -2.7002 -0.200195c-1.09961 -0.0996094 -2.2998 -0.0996094 -3.40039 -0.199219
-c-0.799805 0 -1.69922 -0.100586 -2.5 -0.100586c-1.2998 -0.0996094 -2.59961 -0.0996094 -3.89941 -0.0996094c-0.700195 0 -1.40039 -0.100586 -2.10059 -0.100586c-2 0 -4 -0.0996094 -6 -0.0996094s-4 0 -6 0.0996094c-0.699219 0 -1.39941 0 -2.09961 0.100586
-c-1.2998 0 -2.59961 0.0996094 -3.90039 0.0996094c-0.799805 0 -1.69922 0.100586 -2.5 0.100586c-1.09961 0.0996094 -2.2998 0.0996094 -3.39941 0.199219c-0.900391 0.100586 -1.7998 0.100586 -2.7002 0.200195c-1 0.100586 -2.09961 0.200195 -3.09961 0.299805
-c-1 0.100586 -1.90039 0.200195 -2.90039 0.300781c-1 0.0996094 -2 0.199219 -2.90039 0.299805c-1 0.0996094 -2 0.200195 -3 0.399414c-0.899414 0.100586 -1.7998 0.300781 -2.7998 0.400391s-2.09961 0.299805 -3.09961 0.5
-c-0.900391 0.0996094 -1.7002 0.299805 -2.60059 0.400391c-65.5996 10.8994 -122.5 47.6992 -160 99.3994c-0.199219 0.200195 -0.299805 0.5 -0.5 0.700195c-0.799805 1.09961 -1.59961 2.2002 -2.2998 3.2998c-0.299805 0.400391 -0.599609 0.799805 -0.799805 1.2002
-c-0.700195 1.09961 -1.40039 2.09961 -2.09961 3.2002c-0.300781 0.5 -0.600586 0.899414 -0.900391 1.39941c-0.700195 1.10059 -1.40039 2.10059 -2 3.2002c-0.299805 0.5 -0.599609 0.900391 -0.900391 1.40039c-0.699219 1.09961 -1.2998 2.2002 -2 3.2998
-c-0.199219 0.400391 -0.5 0.799805 -0.699219 1.2002c-2.40039 4 -4.60059 8.09961 -6.80078 12.2002c-0.0996094 0.199219 -0.199219 0.299805 -0.299805 0.5c-0.599609 1.09961 -1.09961 2.19922 -1.7002 3.2998c-0.299805 0.599609 -0.599609 1.09961 -0.799805 1.7002
-c-0.5 1 -1 2.09961 -1.5 3.09961c-0.299805 0.700195 -0.599609 1.2998 -0.899414 2c-0.5 1 -0.900391 2 -1.40039 3l-0.900391 2.09961c-0.399414 1 -0.899414 2 -1.2998 3c-0.299805 0.700195 -0.599609 1.5 -0.899414 2.2002l-1.2002 3
-c-0.299805 0.799805 -0.600586 1.5 -0.900391 2.2998c-0.399414 1 -0.799805 2 -1.09961 3c-0.299805 0.900391 -0.600586 1.80078 -1 2.80078c-0.600586 1.59961 -1.10059 3.2998 -1.7002 4.89941c-0.299805 0.900391 -0.599609 1.7998 -0.900391 2.7998
-c-0.299805 0.900391 -0.5 1.80078 -0.799805 2.7002c-0.299805 0.900391 -0.599609 1.90039 -0.799805 2.7998c-0.299805 0.900391 -0.5 1.80078 -0.799805 2.7002c-0.299805 1 -0.5 1.90039 -0.799805 2.90039c-0.200195 0.899414 -0.5 1.7998 -0.700195 2.7002
-c-0.299805 1 -0.5 2 -0.700195 3c-0.200195 0.899414 -0.400391 1.69922 -0.599609 2.59961c-0.200195 1.09961 -0.5 2.2002 -0.700195 3.2002c-0.200195 0.799805 -0.299805 1.59961 -0.5 2.39941c-0.299805 1.30078 -0.5 2.7002 -0.799805 4
-c-0.100586 0.600586 -0.200195 1.10059 -0.300781 1.7002l-0.899414 5.7002c-0.100586 0.599609 -0.200195 1.2998 -0.299805 1.90039c-0.200195 1.2998 -0.400391 2.59961 -0.5 3.89941c-0.100586 0.799805 -0.200195 1.5 -0.300781 2.2998
-c-0.0996094 1.2002 -0.299805 2.40039 -0.399414 3.60059c-0.100586 0.799805 -0.200195 1.59961 -0.200195 2.39941c-0.0996094 1.2002 -0.200195 2.40039 -0.299805 3.5c-0.100586 0.800781 -0.100586 1.60059 -0.200195 2.40039
-c-0.0996094 1.2002 -0.200195 2.40039 -0.200195 3.7002c0 0.799805 -0.0996094 1.5 -0.0996094 2.2998c-0.100586 1.2998 -0.100586 2.7002 -0.200195 4c0 0.700195 0 1.2998 -0.0996094 2c0 2 -0.100586 4 -0.100586 6c0 53.5 16.9004 103 45.7998 143.6
-c2.30078 3.2002 4.7002 6.40039 7.10059 9.5c4.89941 6.2002 10.0996 12.3008 15.5996 18c2.7002 2.90039 5.5 5.7002 8.40039 8.40039c2.89941 2.7002 5.7998 5.40039 8.7998 8c4.5 3.90039 9.09961 7.59961 13.9004 11.2002c1.59961 1.2002 3.19922 2.39941 4.7998 3.5
-c27.2998 19.5996 59 33.7002 93.2998 40.7998c16.0996 3.2998 32.9004 5 50 5s33.7998 -1.7002 50 -5c34.2998 -7 66 -21.0996 93.5996 -40.7002c1.60059 -1.2002 3.2002 -2.2998 4.80078 -3.5c4.7998 -3.59961 9.39941 -7.2998 13.8994 -11.2002
-c12 -10.3994 23 -21.8994 32.7998 -34.3994c2.5 -3.10059 4.80078 -6.2998 7.10059 -9.5zM448 76.5v71.2998c0 2.10059 -1.59961 3.7002 -3.7002 3.7002h-22.2002c-2.09961 0 -3.69922 -1.59961 -3.69922 -3.7002v-25.7998h-29.5v144
-c0 2.09961 -1.60059 3.7002 -3.7002 3.7002h-22.1006c-2.09961 0 -3.69922 -1.60059 -3.69922 -3.7002v-25.9004h-29.5v25.9004c0 2.09961 -1.60059 3.7002 -3.7002 3.7002h-22.2002c-2.09961 0 -3.7002 -1.60059 -3.7002 -3.7002v-25.9004h-29.5v25.9004
-c0 4.7998 -6.5 3.7002 -9.5 3.7002v30.7002c6.7002 1.59961 13.7998 2.7998 20.7998 2.7998c8.80078 0 16.8008 -3.5 25.4004 -3.5c3.7002 0 22.4004 0.899414 22.4004 6.5v48.3994c0 2.10059 -1.60059 3.7002 -3.7002 3.7002c-4.2002 0 -12.2002 -3.5 -19.4004 -3.5
-c-7.89941 0 -16.8994 3.5 -26.2998 3.5c-6.5 0 -12.9004 -0.899414 -19.2002 -2.2998v3.90039c4.40039 2.09961 7.40039 6.69922 7.40039 11.5c0 16.7998 -25.4004 16.7998 -25.4004 0c0 -4.80078 3 -9.5 7.40039 -11.5v-90.2002c-3 0 -9.5 1.09961 -9.5 -3.7002v-25.9004
-h-29.5v25.9004c0 2.09961 -1.60059 3.7002 -3.7002 3.7002h-22.2002c-2.09961 0 -3.7002 -1.60059 -3.7002 -3.7002v-25.9004h-29.5v25.9004c0 2.09961 -1.59961 3.7002 -3.69922 3.7002h-22.1006c-2.09961 0 -3.7002 -1.60059 -3.7002 -3.7002v-144h-29.5996v25.7998
-c0 2.10059 -1.59961 3.7002 -3.7002 3.7002h-22.0996c-2.10059 0 -3.7002 -1.59961 -3.7002 -3.7002v-71.2998c9.40039 -15.5 20.5996 -29.9004 33.5996 -42.9004c20.6006 -20.5996 44.5 -36.6992 71.2002 -48c13.9004 -5.89941 28.2002 -10.2998 42.9004 -13.1992v75.7998
-c0 58.5996 88.5996 58.5996 88.5996 0v-75.7998c14.7002 2.89941 29 7.39941 42.9004 13.1992c26.7002 11.3008 50.5996 27.4004 71.2002 48c13 13 24.1992 27.4004 33.5996 42.9004z" />
-    <glyph glyph-name="freebsd" unicode="&#xf3a4;" 
-d="M303.7 351.8c11.0996 11.1006 115.5 77 139.2 53.2002c23.6992 -23.7002 -42.1006 -128.1 -53.2002 -139.2c-11.1006 -11.0996 -39.4004 -0.899414 -63.1006 22.9004c-23.7998 23.7002 -34.0996 52 -22.8994 63.0996zM109.9 379.9
-c-31.6006 -19.4004 -57.9004 -46.5 -76.4004 -78.7002c-20.7998 36.2998 -44.5 89.0996 -27.9004 105.7c16.4004 16.5 68 -6.40039 104.301 -27zM406.7 274c3.2998 5.5 7 11.7998 10.8994 18.7998c17.6006 -31.2998 27.7002 -67.3994 27.7002 -105.8
-c0 -119.1 -96.5 -215.6 -215.6 -215.6c-119.101 0 -215.601 96.5996 -215.601 215.6c0 119.1 96.5 215.6 215.601 215.6c35.8994 0 69.7002 -8.7998 99.5 -24.2998c-7.2998 -4 -13.9004 -8 -19.6006 -11.5996c-26 4.7002 -32.8994 -16.4004 -14.8994 -48.7002
-c21.7998 -43.0996 89 -90.4004 109.3 -70.0996c5.40039 5.39941 6 14.7998 2.7002 26.0996z" />
-    <glyph glyph-name="gitkraken" unicode="&#xf3a6;" horiz-adv-x="592" 
-d="M565.7 329.9c11.7998 -31.6006 18.2998 -65.7002 18.2998 -101.4c0 -155.1 -122.6 -281.6 -276.3 -287.7v145.8c-8.40039 -0.5 -16.6006 -0.399414 -23.4004 0v-145.899c-153.7 6.2002 -276.3 132.7 -276.3 287.8c0 35.7002 6.5 69.7998 18.2998 101.3
-c2.2998 6.2002 9.2998 9.2002 15.2998 6.60059c5.7002 -2.40039 8.5 -8.80078 6.30078 -14.6006c-10.9004 -29 -16.9004 -60.5 -16.9004 -93.2998c0 -134.6 100.4 -245.7 230.2 -262.7v123.7c-7.90039 1.59961 -15.4004 3.7002 -23 6.2002v-104
-c-106.7 26 -185.9 122.1 -185.9 236.8c0 91.7998 50.7998 171.8 125.8 213.3c5.80078 3.2002 13 0.900391 15.9004 -5c2.7002 -5.5 0.700195 -12.0996 -4.7002 -15.0996c-67.8994 -37.7002 -113.899 -110.101 -113.899 -193.2c0 -93.4004 57.8994 -173.2 139.8 -205.4
-v92.2002c-14.2002 4.5 -24.7998 17.7002 -24.7998 33.5c0 13.1006 6.69922 24.4004 17.2998 30.5c-8.2002 79.6006 -44.5 58.6006 -44.5 83.9004v14.7998c0 38 87.8994 161.7 129.1 164.7c2.60059 0.200195 5.10059 0.200195 7.60059 0
-c41.0996 -2.90039 129 -126.7 129 -164.7v-14.7002c0 -25.2998 -36.2002 -4.39941 -44.5 -83.8994c10.5 -6.10059 17.2998 -17.4004 17.2998 -30.5c0 -15.8008 -10.7002 -29 -24.9004 -33.5v-92.2002c81.9004 32.2998 139.8 112.1 139.8 205.399
-c0 83.2002 -46 155.601 -113.899 193.2c-5.2998 2.90039 -7.40039 9.60059 -4.7002 15.1006c2.90039 5.89941 10.2002 8.19922 15.9004 5c75 -41.5 125.8 -121.5 125.8 -213.301c0 -114.699 -79.2002 -210.899 -185.9 -236.8v104
-c-7.5 -2.59961 -15.0996 -4.7002 -23 -6.2002v-123.699c129.9 17 230.2 128.1 230.2 262.699c0 32.8008 -6 64.3008 -16.9004 93.3008c-2.19922 5.69922 0.600586 12.1992 6.30078 14.5996c6 2.59961 13 -0.5 15.2998 -6.59961zM365.9 172.5
-c-13.1006 0 -23.7002 -10.5996 -23.7002 -23.7002c0 -13.2002 10.7002 -23.7002 23.7002 -23.7002c13.0996 0 23.6992 10.6006 23.6992 23.7002c0 13.2002 -10.6992 23.7002 -23.6992 23.7002zM226.1 125.2c13.2002 0 23.7002 10.7002 23.7002 23.7002
-c0 13.0996 -10.5996 23.6992 -23.7002 23.6992c-13.1992 0 -23.6992 -10.6992 -23.6992 -23.6992s10.5 -23.7002 23.6992 -23.7002z" />
-    <glyph glyph-name="gofore" unicode="&#xf3a7;" horiz-adv-x="400" 
-d="M324 128.2c54.2998 0 65.7002 -50.1006 67.7002 -77.7002c-46.5 -56.2998 -107.8 -82.5 -171 -82.5c-123.7 0 -220.7 101.5 -220.7 224c0 123.4 98 224 220.7 224c59 0 114.3 -23.2998 156.1 -65.5996l-62.2998 -63.3008c-25 25.4004 -58.2998 39.4004 -93.5996 39.4004
-c-73.2002 0 -132.4 -60.2998 -132.4 -134.4c0 -74.1992 59.2002 -134.399 132.4 -134.399c33.5996 0 65.3994 12.7002 89.8994 35.7998v34.7002h13.2002zM311.9 240.7c47.6992 0 88.0996 -35 88.0996 -100.2v-30.5996c-15.5 26.6992 -42.5 41.7998 -76 41.7998h-118.4v89
-h106.301z" />
-    <glyph glyph-name="goodreads" unicode="&#xf3a8;" 
-d="M299.9 256.8c5.09961 -37.2998 -4.7002 -79 -35.9004 -100.7c-22.2998 -15.5 -52.7998 -14.0996 -70.7998 -5.69922c-37.1006 17.2998 -49.5 58.5996 -46.7998 97.1992c4.2998 60.9004 40.8994 87.9004 75.2998 87.5c46.8994 0.200195 71.7998 -31.7998 78.2002 -78.2998
-zM448 360v-336c0 -30.9004 -25.0996 -56 -56 -56h-336c-30.9004 0 -56 25.0996 -56 56v336c0 30.9004 25.0996 56 56 56h336c30.9004 0 56 -25.0996 56 -56zM330 134.8c0 0 -0.0996094 34 -0.0996094 217.3h-29v-40.2998c-0.800781 -0.299805 -1.2002 0.5 -1.60059 1.2002
-c-9.59961 20.7002 -35.8994 46.2998 -76 46c-51.8994 -0.400391 -87.2002 -31.2002 -100.6 -77.7998c-4.2998 -14.9004 -5.7998 -30.1006 -5.5 -45.6006c1.7002 -77.8994 45.0996 -117.8 112.399 -115.199c28.9004 1.09961 54.5 17 69 45.1992
-c0.5 1 1.10059 1.90039 1.7002 2.90039c0.200195 -0.0996094 0.400391 -0.0996094 0.600586 -0.200195c0.299805 -3.7998 0.199219 -30.7002 0.0996094 -34.5c-0.200195 -14.7998 -2 -29.5 -7.2002 -43.5c-7.7998 -21 -22.2998 -34.7002 -44.5 -39.5
-c-17.7998 -3.89941 -35.5996 -3.7998 -53.2002 1.2002c-21.5 6.09961 -36.5 19 -41.0996 41.7998c-0.299805 1.60059 -1.2998 1.2998 -2.2998 1.2998h-26.7998c0.799805 -10.5996 3.19922 -20.2998 8.5 -29.1992c24.1992 -40.5 82.6992 -48.5 128.199 -37.4004
-c49.9004 12.2998 67.3008 54.9004 67.4004 106.3z" />
-    <glyph glyph-name="goodreads-g" unicode="&#xf3a9;" horiz-adv-x="384" 
-d="M42.5996 44.7002h2.80078c12.6992 0 25.5 0 38.1992 -0.100586c1.60059 0 3.10059 0.400391 3.60059 -2.09961c7.09961 -34.9004 30 -54.5996 62.8994 -63.9004c26.9004 -7.59961 54.1006 -7.7998 81.3008 -1.7998c33.7998 7.40039 56 28.2998 68 60.4004
-c8 21.5 10.6992 43.7998 11 66.5c0.0996094 5.7998 0.299805 47 -0.200195 52.7998l-0.900391 0.299805c-0.799805 -1.5 -1.7002 -2.89941 -2.5 -4.39941c-22.0996 -43.1006 -61.2998 -67.4004 -105.399 -69.1006c-103 -4 -169.4 57 -172 176.2
-c-0.5 23.7002 1.7998 46.9004 8.2998 69.7002c20.5996 71.0996 74.5996 118.2 153.899 118.8c61.3008 0.400391 101.5 -38.7002 116.2 -70.2998c0.5 -1.10059 1.2998 -2.2998 2.40039 -1.90039v61.6006h44.2998c0 -280.301 0.0996094 -332.2 0.0996094 -332.2
-c-0.0996094 -78.5 -26.6992 -143.7 -103 -162.2c-69.5 -16.9004 -159 -4.7998 -196 57.2002c-8 13.5 -11.7998 28.2998 -13 44.5zM188.9 411.5c-52.5 0.5 -108.5 -40.7002 -115 -133.8c-4.10059 -59 14.7998 -122.2 71.5 -148.601
-c27.5996 -12.8994 74.2998 -15 108.3 8.7002c47.5996 33.2002 62.7002 97 54.7998 154c-9.7002 71.1006 -47.7998 120 -119.6 119.7z" />
-    <glyph glyph-name="google-drive" unicode="&#xf3aa;" horiz-adv-x="512" 
-d="M339 133.1l-163.6 282.9h161.199l163.601 -282.9h-161.2zM201.5 109.5h310.5l-80.5996 -141.5h-310.5zM154.1 380.6l82.9004 -141.399l-156.4 -271.2l-80.5996 141.5z" />
-    <glyph glyph-name="google-play" unicode="&#xf3ab;" horiz-adv-x="512" 
-d="M325.3 213.7l-220.7 221.3l280.801 -161.2zM47 448l256.6 -255.9l-256.6 -256c-13 6.80078 -21.7002 19.2002 -21.7002 35.3008v441.3c0 16.0996 8.7002 28.5 21.7002 35.2998zM472.2 222.4c19.2002 -14.3008 19.2002 -46.5 1.2002 -60.8008l-60.1006 -34.0996
-l-65.7002 64.5l65.7002 64.5zM104.6 -51l220.7 221.3l60.1006 -60.0996z" />
-    <glyph glyph-name="gripfire" unicode="&#xf3ac;" horiz-adv-x="384" 
-d="M112.5 146.6c0 -26.8994 16.5996 -47.1992 32.5996 -69.5c22.5 -30.1992 44.2002 -56.8994 44.2002 -86.5c-0.0996094 -14.5 -4.39941 -29.6992 -17.5 -46.3994c0 5.2998 4.7998 12.2002 4.7998 22.2998c0 15.2002 -13 39.9004 -78.0996 86.5996
-c-34.2998 29.1006 -66.5 58.5 -66.5 108.301c0 114.699 147.1 176.5 147.1 268.6c0 3.2998 -0.199219 6.7002 -0.599609 10c5.09961 -2.40039 39.0996 -43.2998 39.0996 -90.4004c0 -80.5 -105.1 -129.199 -105.1 -203zM317.8 185.6
-c1.5 -8.39941 2.2002 -16.5996 2.2002 -24.5996c0 -51.7998 -29.4004 -97.5 -67.2998 -136.8c-1 -1 -2.2002 -2.40039 -3.2002 -2.40039c-3.59961 0 -35.5 41.6006 -35.5 53.2002c0 0 41.7998 55.7002 41.7998 96.9004c0 10.7998 -2.7002 21.6992 -9.09961 33.3994
-c-1.5 -32.2998 -55.7002 -87.7002 -58.1006 -87.7002c-2.69922 0 -17.8994 22 -17.8994 42.1006c0 5.2998 1 10.7002 3.2002 15.7998c2.39941 5.5 56.5996 72 56.5996 116.7c0 6.2002 -1 12 -3.40039 17.0996l-4 7.2002c16.7002 -6.5 82.6006 -64.0996 94.7002 -130.9z" />
-    <glyph glyph-name="grunt" unicode="&#xf3ad;" horiz-adv-x="384" 
-d="M61.2998 258.7c0.5 4.89941 2.7998 10 7 12h0.100586c-4.60059 1.7002 -9.2002 3.09961 -13.5 4.09961c42.1992 10.2002 73.3994 -20.5996 83.0996 -31.7998c16.5996 -19.2002 35.5 -8.7998 35.5 -8.7998c0.299805 -11.1006 -10.2998 -19 -21.0996 -19.5
-c1.19922 -15.4004 -13.9004 -32.5 -13.9004 -32.5s5.59961 15 2.7002 25.2998c-0.900391 3.2002 -2 6.09961 -3 8.5c-19.2998 -17.2002 -48 -1.5 -54.9004 6.09961c-9.59961 10.6006 -12.3994 23.8008 -12.7998 34.1006c-1.7998 -3.7998 -3.2998 -9.10059 -4 -16.6006
-c0 0 -6.2998 9.10059 -5.2002 19.1006zM89.5996 260.5c-2.89941 -9.09961 -3.39941 -27.7002 6.90039 -35.2998c16.2998 -12.1006 32.2998 -5 38 -1.7002c-7.5 11.2998 -25.4004 26 -44.9004 37zM231.7 214.7c-10.7998 0.399414 -21.4004 8.39941 -21.2002 19.2998
-c0 0 18.7998 -10.4004 35.5 8.7998c9.7002 11.2002 40.7998 42 83.0996 31.7998c-4.2998 -0.899414 -8.89941 -2.2998 -13.5 -4.09961h0.100586c4.09961 -1.7998 6.39941 -6.7998 7 -11.7998c1.2002 -10 -5.2002 -19.1006 -5.2002 -19.1006
-c-0.599609 7.5 -2.2002 12.8008 -4 16.6006c-0.5 -10.2998 -3.2002 -23.5 -12.7998 -34.1006c-6.7998 -7.59961 -35.5 -23.3994 -54.7998 -6.09961c-1 -2.5 -2.10059 -5.2998 -3 -8.5c-2.90039 -10.2998 2.69922 -25.2998 2.69922 -25.2998s-15.0996 17 -13.8994 32.5z
-M294.4 260.5c-19.5 -11 -37.4004 -25.5996 -44.9004 -37c5.7002 -3.40039 21.5996 -10.5 37.9004 1.59961c10.3994 7.7002 10 26.3008 7 35.4004zM160 29.5c4.09961 0 7 -0.900391 8.7998 -2.7002c2.2002 -2.2998 1.5 -5.2998 0.900391 -6.7998
-c-1.10059 -2.7002 -5.5 -11.5996 -13 -19.7998c-2.7002 -2.90039 -6.60059 -4.60059 -11 -4.60059c-4.2998 0 -8.7002 1.60059 -11.7998 4.30078c-2.30078 2.09961 -10.2002 9.5 -13.7002 18.5996c-1.2998 3.40039 -1 6.09961 0.899414 8.09961
-c1.30078 1.30078 4 2.90039 9.5 2.90039h29.4004zM349.2 130.7c0 0 29.2998 -22.5 21.0996 -70.9004c-5.2998 -29.5 -23.2002 -46 -47 -54.7002c-8.7998 -19.0996 -29.3994 -45.6992 -67.2998 -49.5996c-14.5 -11.7998 -34.5 -19.5 -63.5996 -19.5h-0.200195
-c-29.2002 0 -49.2002 7.7002 -63.6006 19.5c-37.8994 3.90039 -58.5 30.5 -67.2998 49.5996c-23.7998 8.60059 -41.7998 25.2002 -47 54.7002c-8.59961 48.2002 20.6006 70.7998 20.6006 70.7998c2.39941 -17.8994 13 -33.8994 24.5996 -43.7998
-c3.09961 22.7002 3.7002 55.5 3.7002 62.4004c0 14.7002 -9.5 24.5 -12.2002 26.0996c-2.5 1.5 -5.2998 3 -8.2998 4.60059c-18 9.59961 -40.4004 21.5996 -40.4004 43.6992c0 16.1006 9.2998 23.2002 15.4004 27.8008c0.799805 0.599609 1.5 1.19922 2.2002 1.69922
-c2.09961 1.7002 3.69922 3 4.2998 4.40039c4.39941 9.7998 3.59961 34.2002 1.7002 37.5996c-0.600586 0.700195 -16.8008 21 -11.8008 39.2002c2 7.40039 6.90039 13.2998 14.1006 17c5.2998 2.7002 11.7998 4.2002 19.5 4.5c0.0996094 2 0.5 4 0.899414 5.90039
-c0.5 2.59961 1.10059 5.2998 0.900391 8.09961c-0.400391 4.7002 -0.799805 9.10059 -2.2002 11.2998c-8.39941 13.3008 -28.7998 17.6006 -29 17.6006l-12.2998 2.39941l8.09961 9.40039c0.200195 0.200195 17.3008 17.5 46.3008 17.5c7.89941 0 16 -1.2998 23.8994 -3.5
-c24.2998 -7.7998 42.9004 -30.5 49.4004 -39.2998c2 0.599609 3.89941 1.2002 5.89941 1.7002c-1 26.3994 20.7002 47.3994 28.2002 48.2998c0.5 -4.5 -0.399414 -22.2002 7.2002 -27.6006c2.2002 14.4004 9.59961 30.3008 39.0996 40.7002
-c-6.2998 -16.7002 -0.799805 -30.7002 1.80078 -37.2002c20.0996 18.2002 33.6992 15.2002 33.6992 15.2002s-13.1992 -22.7002 -9 -38.5c3.30078 -0.799805 6.5 -1.7002 9.60059 -2.7002c6.5 8.80078 25.2002 31.5 49.3994 39.3008
-c8.10059 2.59961 16.2002 3.89941 24.1006 3.89941c29 0 46.2002 -17.2998 46.2998 -17.5l8.09961 -9.5l-12.2998 -2.39941c-0.200195 0 -20.5996 -4.30078 -29 -17.6006c-1.39941 -2.2998 -1.7998 -6.59961 -2.2002 -11.2998
-c-0.199219 -2.7998 0.300781 -5.5 0.900391 -8.09961c0.400391 -2 0.799805 -3.90039 0.900391 -5.90039c7.59961 -0.299805 14.1992 -1.7998 19.5 -4.5c7.19922 -3.7002 12.0996 -9.59961 14.0996 -17c4.90039 -18.2998 -11.2002 -38.5996 -11.7998 -39.2002
-c-1.90039 -3.39941 -2.7002 -27.7998 1.7002 -37.5996c0.599609 -1.40039 2.19922 -2.7002 4.2998 -4.40039c0.700195 -0.599609 1.39941 -1.09961 2.2002 -1.7002c6.09961 -4.59961 15.3994 -11.5996 15.3994 -27.7998c0 -22.0996 -22.3994 -34.0996 -40.3994 -43.7002
-c-2.90039 -1.59961 -5.80078 -3.09961 -8.30078 -4.59961c-2.69922 -1.59961 -12.1992 -11.4004 -12.1992 -26.0996c0 -6.90039 0.599609 -39.7002 3.69922 -62.4004c11.6006 9.90039 22.2002 25.7998 24.6006 43.7002zM305.7 410.3
-c-17.7998 -5.7002 -31.6006 -23.0996 -37.7002 -32.2002c1.59961 -0.699219 3.09961 -1.39941 4.7002 -2.19922c2.59961 -1.2002 4.89941 -2.40039 7.09961 -3.7002c2.7002 5.5 8.40039 13.7002 20.7002 22.3994c8.2002 5.80078 18.2002 8.90039 28.7002 8.90039
-c3.59961 0 6.7998 -0.400391 9.2002 -0.799805c3.2998 2.09961 6.59961 3.89941 9.69922 5.2998c-4.7998 2 -13.6992 5 -24.6992 5c-6.10059 0 -12.1006 -0.900391 -17.7002 -2.7002zM326.7 392.1c-7.40039 -0.299805 -14 -2.69922 -19.6006 -7
-c-8 -6.39941 -12.0996 -17.6992 -13.5 -22.5c4.90039 -4.19922 8.2002 -8.09961 10.5 -11.1992c3.40039 1 7.30078 1.89941 11.5 2.69922c3.30078 4.5 3.90039 10.6006 4.40039 17c0.5 6.2002 1.09961 12.6006 4.40039 17.8008c0.699219 1.09961 1.5 2.19922 2.2998 3.19922
-zM45.5996 402.7c2.40039 0.399414 5.60059 0.799805 9 0.899414c10.6006 0 20.5 -3.09961 28.8008 -8.89941c12.3994 -8.7002 18.0996 -17 20.6992 -22.4004c2.2002 1.2002 4.60059 2.5 7.10059 3.7002c1.59961 0.799805 3.2002 1.5 4.7998 2.2002
-c-6.09961 8.89941 -19.9004 26.2998 -37.7002 32.0996c-5.7002 1.7998 -11.5996 2.7002 -17.7002 2.7002c-11 0 -19.8994 -3 -24.6992 -5c3.09961 -1.2998 6.39941 -3.09961 9.69922 -5.2998zM90.2998 362.6c-1.39941 4.80078 -5.5 16.1006 -13.5 22.4004
-c-5.5 4.40039 -12.0996 6.7002 -19.5 7c0.799805 -1 1.60059 -2.09961 2.2998 -3.2002c3.30078 -5.2002 3.90039 -11.5996 4.40039 -17.7998c0.5 -6.40039 1 -12.5 4.2998 -16.9004c4.2002 -0.799805 8.10059 -1.7998 11.5 -2.69922c2.2002 3.19922 5.60059 7 10.5 11.1992z
-M58.0996 188.1c8.7002 -5 18.1006 -16.7998 19 -34.1992c0.900391 -14.7002 -0.899414 -49.9004 -3.39941 -75.9004c12.5 -4.7998 26.7002 -6.40039 39.7002 -6.7998c2 4.09961 3.89941 8.5 5.5 13.0996c0.699219 1.90039 19.5996 51 26.3994 62.2002
-c-5.39941 -39 -17.5 -73.7002 -23.5 -89.5996c3.40039 0.399414 7.2998 0.699219 11.7002 0.699219h117c4.40039 0 8.2002 -0.199219 11.7002 -0.699219c-6 15.8994 -18 50.5996 -23.5 89.5996c6.7998 -11.0996 25.7002 -60.2002 26.3994 -62.2002
-c1.60059 -4.59961 3.5 -9 5.5 -13.0996c13 0.399414 27.3008 2 39.7002 6.7998c-2.5 26 -4.2998 61.2998 -3.39941 75.9004c1.09961 17.5 10.3994 29.1992 19.0996 34.1992c2.7002 1.5 5.5 3.10059 8.40039 4.60059c14.7998 8 30.1992 16.2998 30.1992 30.5
-c0 11.0996 -4.2998 14.5 -8.89941 18.2002l-0.5 0.399414c-0.700195 0.600586 -1.5 1.2002 -2.2002 1.7998c0.900391 -7.19922 1.90039 -13.2998 2.7002 -14.8994c0 0 -12.1006 15 -15.7002 44.2998c-1.40039 11.5 1.09961 34.2002 5.09961 43
-c-0.199219 -4.90039 0 -9.7998 0.300781 -14.4004c0.399414 0.900391 0.799805 1.60059 1.2998 2.2002c3.2998 4 11.8994 17.5 9.39941 26.6006c-1 3.39941 -3.19922 6 -6.69922 7.7998c-3.80078 1.89941 -8.80078 2.89941 -15.1006 2.89941
-c-12.2998 0 -25.8994 -3.7998 -32.8994 -6c-25.1006 -7.89941 -55.4004 -30.8994 -64.1006 -37.6992c-0.200195 -0.200195 -0.399414 -0.300781 -0.399414 -0.300781l-5.60059 -3.89941l3.5 5.7998c0.200195 0.299805 19.1006 31.4004 53.1006 46.5
-c-2 2.90039 -7.40039 8.2002 -21.6006 15.0996c-21.3994 10.5 -46.3994 15.8008 -74.2998 15.8008c-27.7998 0 -52.9004 -5.30078 -74.2998 -15.8008c-14.2002 -7 -19.6006 -12.1992 -21.6006 -15.0996c34.1006 -15.0996 53 -46.2002 53.2002 -46.5l3.5 -5.7998
-l-5.59961 3.89941s-0.200195 0.100586 -0.400391 0.300781c-8.7002 6.7998 -39 29.6992 -64.0996 37.6992c-7 2.30078 -20.6006 6 -32.9004 6c-6.2998 0 -11.2998 -1 -15.0996 -2.89941c-3.60059 -1.7998 -5.7998 -4.2998 -6.7002 -7.7998
-c-2.40039 -9.10059 6.2002 -22.6006 9.40039 -26.6006c0.5 -0.599609 0.899414 -1.39941 1.2998 -2.2002c0.299805 4.60059 0.5 9.5 0.299805 14.4004c4 -8.7002 6.5 -31.5 5.09961 -43c-3.59961 -29.2998 -15.6992 -44.2998 -15.6992 -44.2998
-c0.799805 1.59961 1.7998 7.7002 2.69922 14.8994c-0.799805 -0.599609 -1.5 -1.19922 -2.19922 -1.7998l-0.5 -0.399414c-4.60059 -3.60059 -8.90039 -7.10059 -8.90039 -18.2002c0 -14.2002 15.2998 -22.5 30.2002 -30.5c2.7998 -1.5 5.7002 -3 8.39941 -4.60059z
-M34.7998 43.4004c11.9004 -19.7002 35.5 -29.4004 58.2002 -29.5c-4.5 13.2998 -3.09961 24 4.09961 31.7998l1.40039 1.39941c1.7998 2.40039 4.2998 5.80078 7 10c-27.2002 1.10059 -63.5 11 -74.4004 45.4004c-5 -5 -8.39941 -39.0996 3.7002 -59.0996zM80.5 -0.0996094
-c6.5 -9.5 16.5 -19.6006 30.9004 -25.5c-4.90039 7.19922 -8.80078 15.0996 -12.3008 23.0996c-6.39941 0.5 -12.5996 1.2998 -18.5996 2.40039zM192 -50.2002c60.5996 0.100586 78.2998 45.9004 84.9004 64.7002c3.59961 10.5 3.2998 18.2998 -0.900391 23.0996
-c-2.7998 3.30078 -9.5 7.2002 -24.5996 7.2002h-118.801c-15.0996 0 -21.6992 -3.89941 -24.5996 -7.2002c-4.2998 -4.89941 -4.59961 -12.5996 -0.900391 -23.0996c6.60059 -18.9004 24.3008 -64.5996 84.9004 -64.7002zM272.6 -25.5996
-c14.4004 5.89941 24.4004 16 30.9004 25.5c-6 -1.10059 -12.2002 -1.90039 -18.5996 -2.40039c-3.5 -8 -7.40039 -15.9004 -12.3008 -23.0996zM349.2 43.4004c12.2002 19.8994 8.7998 54 3.7998 59c-10.9004 -34.4004 -47.2002 -44.2002 -74.4004 -45.4004
-c2.7002 -4.2002 5.2002 -7.59961 7 -10c0.5 -0.5 1 -1 1.40039 -1.5c7.2002 -7.7002 8.59961 -18.5 4.09961 -31.7998c22.5 0.399414 46.1006 10 58.1006 29.7002zM191.9 260.3c-12.7002 0.200195 -27.2002 17.7998 -27.2002 17.7998
-c9.89941 -6 18.7998 -8.09961 27.2998 -8.2998c8.5 0.200195 17.4004 2.2998 27.2998 8.2998c0 0 -14.5 -17.6992 -27.2002 -17.7998h-0.199219zM253.6 29.5996c5.40039 -0.0996094 8.10059 -1.69922 9.40039 -3c1.90039 -1.89941 2.2002 -4.59961 0.900391 -7.89941
-c-3.5 -8.90039 -11.4004 -16.1006 -13.7002 -18.1006c-3.10059 -2.59961 -7.40039 -4.19922 -11.7998 -4.19922c-4.40039 0 -8.30078 1.59961 -11 4.5c-7.5 8 -12 16.6992 -13 19.2998c-0.600586 1.5 -1.30078 4.39941 0.899414 6.7002
-c1.7002 1.7998 4.7002 2.69922 8.90039 2.69922h29.3994z" />
-    <glyph glyph-name="gulp" unicode="&#xf3ae;" horiz-adv-x="256" 
-d="M209.8 56.9004l-14.0996 -24.6006l-4.60059 -80.2002c0 -8.89941 -28.2998 -16.0996 -63.0996 -16.0996s-63.0996 7.2002 -63.0996 16.0996l-5.80078 79.4004l-14.8994 25.4004c41.2002 -17.3008 126 -16.7002 165.6 0zM13.7998 310.2
-c30.7002 -17 197.8 -16.9004 228.3 0.200195l-14.7998 -136.801c-4.7998 -4.19922 -11.5996 -10.1992 -16.5996 -14.0996c-1.60059 -1.2002 -6 -4.7002 -8 -4.7002c-1.2998 0 -2.2002 0.5 -2.2002 1.7998c0.0996094 1 3.40039 4.5 5 6.40039
-c4.90039 5.7002 13.7998 16 13.7998 23.4004c0 7 -10.7002 14.0996 -25.7002 0.199219c-1.59961 -1.5 -3.09961 -3 -4.5 -4.5c0.400391 1.10059 1.10059 5.10059 1.10059 6.2002c0 2.7998 -1.40039 4 -4.2002 4c-1 0 -1.90039 -0.599609 -2.7002 -1.59961
-c-2.59961 -3.10059 -3.89941 -7.5 -5.2998 -11.2998c-0.5 -1.80078 -1.09961 -3.60059 -1.7002 -5.5c-0.399414 -0.200195 -0.700195 -0.300781 -0.899414 -0.600586c-3.80078 -3.89941 -17.7002 -17 -23.1006 -17c-2.2998 0 -1.59961 3.60059 -1 5.7998
-c1 3.40039 6.7998 17.7002 8.7002 22.3008c4.59961 11.0996 8 19.7998 13.2002 31.8994c3.89941 9.2002 3.7998 8.60059 4.5 10.5c0.700195 2.10059 0.700195 4.90039 -1 6.2002c-1 0.700195 -2 1.09961 -3.2002 1.09961c-2.40039 0 -4.7998 -1.39941 -6.09961 -4.69922
-c-25.5 -64.4004 -25.2002 -63.3008 -26.4004 -68.2002c-2 -1.7002 -4.40039 -3.40039 -6.7998 -4.5c-3.10059 -1.40039 -6.7998 -2.2002 -6.7998 1.2002c0 3.69922 1.39941 8.19922 2.69922 11.6992c2.2002 6.10059 4.90039 11.1006 6.90039 16.7002
-c0.900391 2.40039 1.2998 4.7002 -0.400391 6.90039c-0.799805 1 -1.89941 1.5 -3.19922 1.5c-2.60059 0 -4.10059 -2.60059 -5.2002 -5.10059c-0.700195 -1.5 -1.2998 -3.09961 -1.7998 -4.7998c-1.2002 -4 -3.60059 -8.7002 -5.60059 -12.2998
-c-2.7998 -5 -6.5 -10.0996 -11.0996 -13.5c-2.2002 -1.59961 -4.5 -2.40039 -6.90039 -2.40039c-3.5 0 -2.39941 5.7002 -1.5 9c2.2002 7.80078 5.5 13.3008 9.2998 20.8008c1.30078 2.69922 2.30078 5.39941 -0.299805 7.19922c-0.5 0.300781 -1 0.5 -1.59961 0.700195
-c-3.40039 0.900391 -6 -1.09961 -7.60059 -4.5c-3.09961 -6.2998 -5.39941 -11.7002 -7.09961 -16.2002c-3.2998 -8.89941 -6.90039 -18.2998 -4.59961 -23.7998c1.5 -3.7002 4.5 -5.09961 8.59961 -5.09961c9.7998 0 17.7998 6.7002 22.4004 14.8994
-c-4.30078 -19.7998 8.19922 -17.2998 20 -8.09961c0.0996094 -0.400391 0.0996094 -0.799805 0.199219 -1.2002c1.5 -6.7002 8.7002 -6.7002 14.5 -4.09961c3.5 1.59961 8.2002 4.5 14.4004 10.5c0.200195 0.299805 0.799805 1.39941 -0.799805 -2.2998
-c-7.2002 -16.2002 -13.5 -28.2002 -15 -34.3008c-0.200195 -0.899414 -0.299805 -1.7998 -0.299805 -2.69922c0 -1.80078 0.399414 -3.10059 1.2998 -3.7002c1.59961 -1.2002 4.2002 -1.2998 6.09961 -0.299805c1.7998 1 3.10059 2.59961 4 4.5
-c1 2.19922 0.200195 0.699219 5.2002 14c5 13.3994 2.90039 7.7998 9.09961 22c1.90039 4.2998 4.2002 9.5 8.5 15.5c2.5 3.39941 5.5 7 8.7002 9.69922c5.7002 4.7002 11.7002 5.40039 11.7002 2.5c0 -2.19922 -3.2998 -6.39941 -4.7002 -8.09961
-c-5.2998 -6.7002 -14.3994 -16.2998 -14.3994 -21.5c0 -9.5 12 -8 17.3994 -5.7002c7.2998 3.2002 13.9004 9.60059 19.6006 14.7998l-10.9004 -94.5996c-1.90039 -4.90039 -39.0996 -17.0996 -88.2002 -17.0996c-49 0 -86.2002 12.0996 -88.2002 17.0996l-7.59961 79.5996
-c2.09961 -1.5 4.2998 -2.39941 7.7002 -2.39941c7.39941 0 16.0996 6.7002 21.5 11.7998c2.2998 2.2002 4.39941 4.40039 6.39941 6.59961c-1 -3 -7.09961 -22 -7.2998 -25.1992c-0.0996094 -1 -0.200195 -4.90039 0.799805 -6.30078
-c0.5 -0.799805 1.40039 -1.19922 2.60059 -1.19922c2.89941 0 5.59961 4.69922 6.2998 7.5c0 0 1.7998 6.2998 7.59961 25.7998c6.30078 21.0996 10 24.5 10 34.7002c0 5.59961 -7.2998 6.7998 -9.89941 0l-5.2002 -15.5c-2.2002 -4.5 -8 -11.5 -12.5 -16
-c-3.5 -3.5 -10.7998 -10.1006 -15.7998 -10.1006c-2.40039 0 -3.90039 1.40039 -4.90039 3.60059c-2.2998 5.2998 -0.899414 14.2998 0.600586 19.8994c2.59961 9.7002 6.89941 19.4004 12 28.2002c4.19922 7.2998 10.1992 15.7002 17.0996 20.7002
-c6.59961 4.7998 12.7998 4.5 16.9004 -2.7998c1.5 -2.7002 3.7998 -7.30078 6.7998 -7.30078c2.5 0 5.7002 2.60059 4.5 9.10059c-0.5 2.5 -4.90039 8.7998 -10.1006 11.7998c-6 3.59961 -12.3994 3.59961 -18.6992 0.900391
-c-19.2002 -8.2002 -34.1006 -35.2002 -40 -55.2002zM243.5 318.7c0 -21 -231.2 -21 -231.2 0c0 8.7998 51.7998 15.8994 115.601 15.8994c9 0 17.7998 -0.0996094 26.2998 -0.399414l12.5996 48.7002l61.2998 64.5c1.40039 1.39941 5.80078 0.199219 9.90039 -3.5
-c4.09961 -3.7002 6.59961 -7.90039 5.2998 -9.30078l-0.0996094 -0.0996094l-57.2998 -60.5l-10 -40.7002c39.8994 -2.59961 67.5996 -8.09961 67.5996 -14.5996zM174.1 314.1c0 0.800781 -0.899414 1.5 -2.5 2.10059l-0.199219 -0.799805
-c0 -1.30078 -5 -2.40039 -11.1006 -2.40039c-6.09961 0 -11.0996 1.09961 -11.0996 2.40039c0 0.0996094 0 0.199219 0.0996094 0.299805l0.200195 0.700195c-1.7998 -0.600586 -3 -1.40039 -3 -2.30078c0 -2.09961 6.2002 -3.69922 13.7002 -3.69922
-c7.7002 -0.100586 13.8994 1.59961 13.8994 3.69922z" />
-    <glyph glyph-name="hacker-news-square" unicode="&#xf3af;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM21.2002 218.8h-0.200195c0.0996094 0.100586 0.200195 0.299805 0.299805 0.400391c0 -0.100586 0 -0.299805 -0.0996094 -0.400391z
-M239.2 164.9l80.7998 155.1h-34.7998c-54.7998 -101.2 -48.2998 -98.5996 -60.6006 -125.6c-10.0996 24.3994 -6.7998 27.2998 -59.2998 125.6h-37.2998l79.7998 -153.3v-102.7h31.4004v100.9z" />
-    <glyph glyph-name="hire-a-helper" unicode="&#xf3b0;" horiz-adv-x="512" 
-d="M443.1 448c3.90039 -36.4004 32.5 -65.7998 68.9004 -71.7002v-370.5c-35.4004 -4 -64.9004 -33.3994 -67.9004 -69.7998h-372.199c-5.90039 36.4004 -34.5 63.9004 -71.9004 68.7998v371.5c37.4004 3.90039 67.9004 34.4004 71.9004 71.7002h371.199zM406.1 43.0996
-c7.80078 0 5.80078 10.8008 0 10.8008c-10.2998 3.39941 -13.5 3.59961 -21.6992 13.7998c-7.80078 12.8994 -7.90039 44.3994 -7.90039 127.8v101.2c0 22.0996 12.2002 28.2998 28.5996 32.3994c8.90039 2.2002 3.90039 11.8008 -1 11.8008
-c-36.5 0 -20.5996 -2 -57.0996 -2c-32.7002 0 -16.5 2 -49.2002 2c-3.2998 0 -8.5 -8.30078 -1 -10.8008c4.90039 -1.59961 27.6006 -3.69922 27.6006 -39.2998c0 -45.5996 0.199219 -55.7998 -1 -68.7998c0 -1.2998 -2.30078 -12.7998 -12.8008 -12.7998h-109.199
-c-10.5 0 -12.8008 11.5 -12.8008 12.7998c-1.19922 13 -1 23.2002 -1 68.7998c0 35.6006 22.7002 37.7002 27.6006 39.2998c7.5 2.5 2.2998 10.8008 -1 10.8008c-32.7002 0 -16.5 -2 -49.2002 -2c-36.5 0 -20.5996 2 -57.0996 2c-5 0 -9.80078 -9.60059 -1 -11.8008
-c16.3994 -4.09961 28.5996 -10.1992 28.5996 -32.3994v-101.2c0 -83.4004 -0.200195 -114.9 -7.90039 -127.8c-8.19922 -10.2998 -11.5 -10.4004 -21.6992 -13.7998c-5.80078 0 -7.90039 -10.8008 0 -10.8008c36.2998 0 18.7998 2 55.0996 2c35.7998 0 21 -2 56.0996 -2
-c6 0 4.90039 8.2002 0 9.80078c-22.7998 7.59961 -22.8994 10.2998 -24.5996 12.7998c-10.4004 15.5996 -5.90039 83 -5.90039 113c0 5.2998 6.40039 12.7998 13.8008 12.7998h111.199c7.40039 0 13.8008 -7.5 13.8008 -12.7998c0 -30 4.5 -97.4004 -5.90039 -113
-c-1.7002 -2.60059 -1.7998 -5.2002 -24.5996 -12.7998c-4.90039 -1.60059 -5.90039 -9.80078 0 -9.80078c35.0996 0 20.2998 2 56.0996 2c36.2998 0 18.7998 -2 55.0996 -2z" />
-    <glyph glyph-name="hotjar" unicode="&#xf3b1;" 
-d="M414.9 286.5c30 -53 41.7998 -121.6 26.2998 -180.9c-14.7002 -56.6992 -68.2998 -120.3 -148.8 -145.6c54.5 76.9004 43.8994 200.1 -27.1006 215.5c54.2002 -93.9004 -53.7002 -180.3 -110.8 -93.9004c-2.5 -7.19922 -25.0996 -74.5 4.09961 -129.6
-c-61.0996 9.09961 -117.8 33.5 -144.6 93.4004c-35 78.1992 -2.7002 149.8 79 204.899c129.2 87.2998 28.0996 197.7 28.0996 197.7s219.101 -29 293.801 -161.5z" />
-    <glyph glyph-name="hubspot" unicode="&#xf3b2;" horiz-adv-x="512" 
-d="M267.4 236.4l-163.2 114.699c-7.90039 -4.69922 -17 -7.59961 -26.7998 -7.59961c-28.8008 0 -52.2002 23.4004 -52.2002 52.2998c0 28.7998 23.3994 52.2002 52.2002 52.2002c28.8994 0 52.3994 -23.4004 52.3994 -52.2002c0 -4.7998 -0.799805 -9.39941 -2 -13.7998
-c51.4004 -39.0996 141.3 -103.9 168.9 -124.8c13.0996 6.89941 27.5 11.5 42.7002 13.5996v61.2002c-17.5 7.40039 -28.2002 23.7998 -28.2002 42.9004c0 26.0996 20.5996 47.8994 46.7002 47.8994c26.0996 0 47 -21.7998 47 -47.8994
-c0 -19.1006 -10.7002 -35.5 -28.2002 -42.9004v-61.5996c62.5 -9.5 110.2 -63.5 110.2 -128.7c0 -71.9004 -58.1006 -130.2 -130 -130.2c-29.9004 0 -57.3008 10 -79.3008 26.9004l-50 -50.2002c1.30078 -3.90039 1.90039 -7.90039 1.90039 -12.1006
-c0 -10.6992 -4.2002 -20.8994 -11.7998 -28.5c-7.7002 -7.69922 -17.7998 -11.5996 -28.6006 -11.5996c-10.6992 0 -20.8994 4 -28.5 11.5996c-7.59961 7.60059 -11.7998 17.7002 -11.7998 28.5c0 10.8008 4.2002 21 11.7998 28.6006
-c7.60059 7.59961 17.7002 11.7998 28.5 11.7998c4.90039 0 9.60059 -0.900391 14 -2.5l49.5 49.7998c-16.2998 21.7002 -26 48.7002 -26 78c0 37.2998 15.7002 70.9004 40.8008 94.6006zM356.9 72.7998c38.0996 0 69 30.9004 69 69c0 38.1006 -30.9004 69 -69 69
-c-38.1006 0 -69 -30.8994 -69 -69c0 -38.0996 30.8994 -69 69 -69z" />
-    <glyph glyph-name="itunes" unicode="&#xf3b4;" 
-d="M223.6 367.7c94.5 0 171.2 -76.7002 171.2 -171.3c0 -94.5 -76.5996 -171.2 -171.2 -171.2c-94.5996 0 -171.1 76.7998 -171.1 171.3s76.5 171.2 171.1 171.2zM303 127.7c1.40039 6.2002 0.900391 -3 1 167.6c0 5.7002 -3.2998 9.10059 -9 8.7002
-c-1.7998 0 -14.0996 -2.40039 -115.1 -21.4004c-0.900391 0 -4.60059 -1 -6.7002 -2.69922c-2 -1.60059 -3.10059 -3.80078 -3.5 -6.40039c-1.7002 -6.7002 2.39941 -128 -2.60059 -133.7c-2.09961 -2.5 -4.69922 -3.2002 -7.69922 -3.7002
-c-17.7002 -3.19922 -29.6006 -4.7998 -38 -12.7998c-14.5 -14.2002 -7 -38.8994 14.3994 -42.8994c8 -1.40039 23.1006 0.599609 31.4004 5.19922c7.2998 3.80078 12.7998 10.6006 14.8994 19.6006c1.7002 7.7002 1.2002 2.39941 1.2002 118.5
-c0 5.7002 1.7002 7.2002 6.7002 8.2998c0 0 87.9004 16.4004 91.9004 17.0996c5.69922 1 8.39941 -0.5 8.39941 -6.09961c0 -78.7998 1 -77.2002 -2.2002 -80.7998c-2.09961 -2.5 -4.69922 -3.2002 -7.69922 -3.7002c-17.7002 -3.2002 -29.6006 -4.7998 -38 -12.7998
-c-10.6006 -10.4004 -10.4004 -26.7998 1.39941 -36.7998c9.7002 -7.80078 19.7998 -7.2002 31.9004 -5c13.7998 2.59961 24.0996 10.1992 27.2998 23.7998zM345.2 416c56.8994 0 102.8 -45.9004 102.8 -102.8v-242.4c0 -56.8994 -45.7998 -102.8 -102.8 -102.8h-242.4
-c-56.8994 0 -102.8 45.9004 -102.8 102.8v242.4c0 56.8994 45.9004 102.8 102.8 102.8h242.4zM223.6 4c106.301 0 192.5 86.2002 192.5 192.5s-86.1992 192.5 -192.5 192.5c-106.3 0 -192.5 -86.2002 -192.5 -192.5s86.2002 -192.5 192.5 -192.5z" />
-    <glyph glyph-name="itunes-note" unicode="&#xf3b5;" horiz-adv-x="384" 
-d="M381.9 59.7998c-6.40039 -27.3994 -27.2002 -42.7998 -55.1006 -48c-24.5 -4.5 -44.8994 -5.59961 -64.5 10.2002c-23.8994 20.0996 -24.2002 53.4004 -2.7002 74.4004c17 16.1992 40.9004 19.5 76.8008 25.7998c6 1.09961 11.1992 2.5 15.5996 7.39941
-c6.40039 7.2002 4.40039 4.10059 4.40039 163.2c0 11.2002 -5.5 14.2998 -17 12.2998c-8.2002 -1.39941 -185.7 -34.5996 -185.7 -34.5996c-10.2002 -2.2002 -13.4004 -5.2002 -13.4004 -16.7002c0 -234.7 1.10059 -223.899 -2.5 -239.5
-c-4.2002 -18.2002 -15.3994 -31.8994 -30.2002 -39.5c-16.7998 -9.2998 -47.1992 -13.3994 -63.3994 -10.3994c-43.2002 8.09961 -58.4004 58 -29.1006 86.5996c17 16.2002 40.9004 19.5 76.8008 25.7998c6 1.10059 11.1992 2.5 15.5996 7.40039
-c10.0996 11.5 1.7998 256.6 5.2002 270.2c0.799805 5.19922 3 9.59961 7.09961 12.8994c4.2002 3.5 11.7998 5.5 13.4004 5.5c204 38.2002 228.899 43.1006 232.399 43.1006c11.5 0.799805 18.1006 -6 18.1006 -17.6006c0.200195 -344.5 1.09961 -326 -1.7998 -338.5z" />
-    <glyph glyph-name="jenkins" unicode="&#xf3b6;" horiz-adv-x="512" 
-d="M487.1 23c1.5 -11.9004 -5.2998 -28.2998 -8.69922 -39.7002c-4.90039 -16.2998 -9.7002 -31.8994 -14.6006 -47.2002h-422c-0.700195 1.90039 -1.39941 4 -2.09961 6c-4.60059 14.2002 -12.6006 31.7002 -14.7002 45.8008
-c-3.09961 20.8994 16.5996 22.0996 29.2002 31.0996c19.5 14 34.7998 21.7998 55.8994 34.2998c6.30078 3.7998 25.1006 13.2002 27.3008 17.6006c4.2998 8.69922 -7.30078 20.8994 -10.4004 27.6992c-4.90039 10.7002 -7.5 19.8008 -8.2002 30.4004
-c-17.7002 2.7998 -31.0996 13.2998 -39.2002 25.2002c-13.3994 19.7002 -22.6992 56 -11.0996 83.7002c0.900391 2.19922 5.40039 6.5 6.09961 9.7998c1.40039 6.59961 -2.5 15.3994 -2.69922 22.3994c-1.2002 36 6.09961 67 30.2998 77.8008
-c9.7998 39.0996 45 52.1992 78.0996 71.5996c12.2998 7.2998 26 11.9004 40.1006 17.0996c50.5 18.7002 128.1 15.1006 170.1 -16.5996c17.7998 -13.5 46.2002 -41.9004 56.4004 -62.5c26.8994 -54.2998 25 -145.1 6.19922 -211.2
-c-2.5 -8.89941 -6.19922 -21.8994 -11.2998 -32.5996c-3.59961 -7.40039 -14.7002 -22.2998 -13.2998 -28.9004c1.40039 -6.7998 25.2998 -24.8994 30.4004 -29.8994c9.19922 -8.80078 26.7998 -20.7002 28.1992 -31.9004zM205.9 414.3
-c-33.2002 -9.39941 -75.7002 -33.5 -89.3008 -63.3994c10.6006 1.5 17.9004 6.7998 28.3008 7.5c3.89941 0.299805 9.09961 -1.60059 13.5996 -0.5c9 2.2998 16.5996 22.5 23.4004 30c6.59961 7.39941 14.5996 10.5 20 17.1992c3.5 1.7002 8.69922 1.60059 8.89941 6.80078
-c-1.5 1.69922 -3.09961 2.89941 -4.89941 2.39941zM101.1 320.7c-14.6992 -16.1006 -11.5996 -46.2998 -9.7998 -67.7998c26.5 16.6992 61.6006 -1.30078 61.2998 -29.6006c12.6006 0.299805 4.7002 15.7998 2.40039 25.7002c-7.5 32.5996 12.5996 67.9004 0.900391 97.5996
-c-22.7002 -1.7998 -41.3008 -11 -54.8008 -25.8994zM137.8 120.5c4.90039 -20 15.7002 -46 26.2998 -61.4004c13.6006 -19.3994 40.1006 -22.2998 68.7002 -24.1992c5.10059 11 23.9004 10.0996 36.2002 7.19922c-14.7002 5.80078 -28.4004 19.9004 -39.7002 32.4004
-c-13 14.2998 -26.0996 29.7002 -26.7998 48.4004c24.5 -34 44.7998 -63.8008 89.5 -78.8008c33.7998 -11.2998 73.2002 5.2002 99.2002 23.4004c10.7998 7.59961 17.2002 19.5996 24.8994 30.5996c28.7002 41.2002 42 100.101 39.1006 157.101
-c-1.2002 23.5 -1.10059 47 -9 62.7998c-8.2998 16.5996 -36.2002 31.2998 -52.5 16.4004c-3 16.0996 13.5996 26.0996 33.0996 20.2998c-13.8994 18 -28.5996 39.5996 -48.2998 50.7002c-34.4004 19.5 -92.7002 34.0996 -129.3 15.7998
-c-29.6006 -14.7002 -69.5 -39.1006 -83.1006 -70c12.7002 -29.7998 -3.7998 -57.1006 -4.7998 -87.4004c-0.599609 -16.0996 7.60059 -30.2002 8.2002 -47.7002c-4.40039 -7.19922 -17.7002 -8.09961 -26.9004 -7.59961c-3.09961 15.5 -8.5 32.9004 -24.5 34.7002
-c-22.5 2.39941 -39.0996 -16.2998 -40.0996 -35.7998c-1.2002 -23 17.7002 -61 44.4004 -58.4004c10.2998 1.09961 12.7998 11.4004 24.0996 11.2998c6.09961 -12.2002 -9.40039 -16 -11 -24.7002c-0.400391 -2.19922 1.2998 -11 2.2998 -15.0996zM359.8 -3.59961
-c-1.59961 -4.40039 0.299805 -10.4004 -0.599609 -16.5c14.8994 -4.2002 31.8994 -6.40039 50.7002 -7c3.69922 4.7998 4.89941 13.7998 4.5 22.7998c-0.600586 10.7998 -3.40039 33.0996 -10.1006 37c-14.0996 8.2002 -39 -16.5 -49.5996 -20.2998
-c1.2002 -3.40039 3.09961 -6 3.2002 -10.2002c6.2998 1.5 13.8994 0.5 19.2998 -2.2002c-6.2998 -0.700195 -13.2998 -0.599609 -17.4004 -3.59961zM342.6 16.4004c7.60059 5.5 14.3008 12 22.2002 17.0996c-18.2002 -1.59961 -41 -12.9004 -59 -4.90039
-c-0.0996094 -0.899414 -1.2998 -0.599609 -1.5 -1.39941c12.2998 -9.60059 21.5 -11.6006 38.2998 -10.7998zM330.5 -16.7998c26.9004 -8.40039 22.2002 36.7998 -2.7998 20.2002c-0.700195 -8.2002 1.2002 -10.8008 2.7998 -20.2002zM226 9.40039
-c0 6.19922 3.59961 12 2.7998 16.3994c-13.7998 2.40039 -31.8994 0.799805 -41.2998 7.2998c-9.59961 -9.69922 26.9004 -23 38.5 -23.6992zM57.7002 -49.0996v-0.100586h180.7c-0.800781 2.5 -1.5 4.90039 -2.2002 7.2002c-4.7998 15.2998 -7.5 26.7002 -8.7002 35.5
-c-19.2002 9.2002 -39.7002 18.5 -56.2002 30.2002c-3 2.2002 -23.3994 28.7002 -26.2002 27.5996c-36.8994 -14.5996 -71.3994 -39.7002 -102.199 -63.5c5.59961 -11.7998 10.5 -24.2002 14.7998 -36.8994zM298.3 -54.7998h-0.799805
-c0.299805 0.200195 0.5 0.399414 0.799805 0.5v-0.5zM305.8 -49.0996h9.60059c-1 1.5 -2.10059 2.89941 -3.2002 4.2998c-2.10059 -1.5 -4.2998 -2.90039 -6.40039 -4.2998zM320.9 -24.4004c0.0996094 3.60059 0.299805 7.2002 0.399414 10.6006
-c-6.5 3.2002 -14 5.5 -23.5 5.89941c6.5 3.30078 15.9004 3.2002 21.7998 7.10059c0.100586 1.5 0.100586 2.89941 0.200195 4.2998c-10.7998 0.900391 -14.7998 5.59961 -21.8994 9.5c-11.6006 6.40039 -29 13.2002 -43.9004 16.0996
-c-18.5 3.60059 -16.7998 -25.1992 -16 -42.3994c0.700195 -13.6006 7.7002 -28 10.7998 -37c1.5 -4.2002 1.7998 -8.7002 5.40039 -9.5c6.39941 -1.5 27.3994 6.89941 33.3994 10.2002c12.7002 6.89941 22.5 17.8994 33.3008 25.1992zM374.3 -49.0996l0.600586 12.5996
-c-11.2002 -0.700195 -17.5 10.2002 -25.4004 11c-6.90039 0.700195 -12.7002 -7.90039 -21.7002 -4.2002c-2 -2.2002 -3.89941 -4.7002 -6 -6.89941c3.2002 -3.90039 6.10059 -8.10059 8.90039 -12.5h17.3994c0.200195 3.19922 2.80078 5.7998 6.10059 5.7998
-s6 -2.60059 6.09961 -5.7998h14zM383 -49.0996h36.2998c-6.7002 10.1992 -20.0996 18.7998 -35.7002 11.5c-0.199219 -3.7002 -0.399414 -7.5 -0.599609 -11.5zM466.4 -12.0996c1.19922 6.19922 4.59961 19.5996 3.7998 25.0996
-c-1.40039 9.7998 -14.6006 17.0996 -21.4004 23.0996c-12.3994 11.1006 -20.2002 21 -33.2002 31.4004c-5.19922 -7.7998 -16.5 -13 -20.7998 -19.2998c30.7002 14.8994 36.2998 -55.7998 24.2002 -78.5c1.90039 -6.7998 8.2998 -9.40039 10.9004 -15.5
-c-0.700195 -1.10059 -1.30078 -2.2002 -1.90039 -3.2998h27.9004c0.199219 0 0.399414 0 0.599609 -0.100586c4.09961 13.1006 7.59961 25.9004 9.90039 37.1006zM222.2 317.5c5.39941 14.9004 27.2002 34.7002 45 32c7.7002 -1.2002 18 -8.2002 12.2002 -17.7002
-c-30.2002 7 -45.2002 -12.5996 -54.4004 -33.0996c-8.09961 2 -4.90039 13.0996 -2.7998 18.7998zM406.3 254.4c8.2002 3.59961 22.4004 0.699219 29.6006 5.2998c-4.2002 11.5 -10.3008 21.3994 -9.30078 37.7002c0.5 0 1 0 1.40039 -0.100586
-c6.7998 -14.2002 12.7002 -29.2002 21.4004 -41.7002c-5.7002 -13.5 -43.6006 -25.3994 -43.1006 -1.19922zM309.5 251.7c-6.7998 10.8994 -19 32.5 -14.5 45.2998c6.5 -11.9004 8.59961 -24.4004 17.7998 -33.2998c4.10059 -4 12.2002 -9 8.2002 -20.2002
-c-0.900391 -2.7002 -7.7998 -8.59961 -11.7002 -9.7002c-14.3994 -4.2998 -47.8994 -0.899414 -36.5996 17.1006c11.8994 -0.700195 27.8994 -7.80078 36.7998 0.799805zM336.8 181.7c3.7998 -6.60059 1.40039 -18.7002 12.1006 -20.6006
-c20.1992 -3.39941 43.5996 12.3008 58.0996 17.8008c9 15.1992 -0.799805 20.6992 -8.90039 30.5c-16.5996 20 -38.7998 44.7998 -38 74.6992c6.7002 4.90039 7.30078 -7.39941 8.2002 -9.69922c8.7002 -20.3008 30.4004 -46.2002 46.2998 -63.5
-c3.90039 -4.30078 10.3008 -8.40039 11 -11.2002c2.10059 -8.2002 -5.39941 -18 -4.5 -23.5c-21.6992 -13.9004 -45.7998 -29.1006 -81.3994 -25.6006c-7.40039 6.7002 -10.2998 21.4004 -2.90039 31.1006zM135.5 190.9c-6.7998 3.89941 -8.40039 21 -16.4004 21.3994
-c-11.3994 0.700195 -9.2998 -22.2002 -9.2998 -35.5c-7.7998 7.10059 -9.2002 29.1006 -3.5 40.2998c-6.59961 3.2002 -9.5 -3.59961 -13.0996 -5.89941c4.7002 34.0996 49.7998 15.7998 42.2998 -20.2998zM435.1 162.1c-10.0996 -19.1992 -24.3994 -40.3994 -54 -41
-c-0.599609 6.2002 -1.09961 15.6006 0 19.4004c22.7002 2.2002 36.6006 13.7002 54 21.5996zM293.2 149.7c18.8994 -9.90039 53.5996 -11 79.2998 -10.2002c1.40039 -5.59961 1.2998 -12.5996 1.40039 -19.4004c-33 -1.7998 -72 6.40039 -80.7002 29.6006zM385.4 103
-c-1.7002 -4.2998 -5.30078 -9.2998 -9.80078 -11.0996c-12.0996 -4.90039 -45.5996 -8.7002 -62.3994 0.299805c-10.7002 5.7002 -17.5 18.5 -23.4004 26c-2.7998 3.59961 -16.8994 12.8994 -0.200195 12.8994c13.1006 -32.6992 58 -29 95.8008 -28.0996z" />
-    <glyph glyph-name="joget" unicode="&#xf3b7;" horiz-adv-x="496" 
-d="M378.1 403c116.601 -71.7998 152.9 -224.6 81 -341.2c-71.8994 -116.5 -224.6 -152.8 -341.199 -80.8994c-116.601 71.8994 -152.9 224.6 -81 341.199c46.8994 76 128.1 117.9 211.3 117.9c44.3994 0 89.3994 -11.9004 129.899 -37zM429.9 79.7998
-c5.2998 8.7002 9.89941 17.6006 13.8994 26.6006c-32.0996 -1.10059 -157.1 1.5 -208.8 -17.6006c-58.4004 -21.5 -36.9004 -53.3994 -31.2002 -67.0996c3.7998 -9.10059 14.7002 -28.7998 23.7002 -42.4004c6.7998 -0.599609 13.5996 -1 20.4004 -1
-c71.5996 0 141.6 36 182 101.5zM229.1 166.1c51 -1.2998 205.4 -4.39941 230.301 -4.89941c11.8994 81.7998 -24.5 166.6 -99.3008 212.7c-100.5 61.8994 -232.1 30.6992 -294 -69.8008c-28.5996 -46.3994 -37.2998 -99.3994 -28.5 -149.1
-c11 40.9004 49.7002 131.5 178.301 140.2c50.8994 4 41.5 -19.2002 23.5996 -29.7002c-17.7998 -10.5 -45.7002 -23.7998 -68.9004 -51.2002c-23.1992 -27.3994 3 -46.7998 58.5 -48.2002zM412.9 220.9c22.6992 -6 19.0996 -15.5 19.0996 -15.5l-46.5 -23.4004
-l-169.5 -1.59961s33.7998 10.7998 65.2998 31.2998c26 16.8994 49.7002 35.5996 67.5 35.5996c3.7002 0 7.2002 -0.899414 10.4004 -2.7002c18.5 -10.5996 -2.90039 -18.1992 -13.4004 -24.5996s-50.7002 -34.5 -50.7002 -34.5s1.40039 -7.59961 31.1006 8.2002
-c29.7002 15.8994 64 33.2002 86.7002 27.2002z" />
-    <glyph glyph-name="js" unicode="&#xf3b8;" 
-d="M0 416h448v-448h-448v448zM243.8 66.5996v143.7h-42.0996v-143.1c0 -21.1006 -8.7998 -26.5 -22.6006 -26.5c-14.5 0 -20.5 9.89941 -27.0996 21.5996l-34.2998 -20.7002c10 -21.0996 29.5 -38.5 63.2002 -38.5c37.2998 0 62.8994 19.9004 62.8994 63.5zM343.4 3.09961
-c39.8994 0 69.6992 20.8008 69.6992 58.6006c0 35.2002 -20.0996 50.8994 -55.8994 66.2002l-10.5 4.5c-18.1006 7.89941 -25.9004 13 -25.9004 25.5996c0 10.2002 7.7998 18 20.1006 18c12.0996 0 19.8994 -5.09961 27.0996 -18l32.7998 21
-c-13.7998 24.4004 -33 33.7002 -59.7998 33.7002c-37.5 0 -61.5996 -24 -61.5996 -55.6006c0 -34.2998 20.0996 -50.5996 50.5 -63.5l10.5 -4.5c19.2998 -8.5 30.6992 -13.5996 30.6992 -28c0 -12.0996 -11.1992 -20.7998 -28.5996 -20.7998
-c-20.7002 0 -32.5 10.9004 -41.5 25.6006l-34.2998 -19.8008c12.2998 -24.3994 37.5996 -43 76.7002 -43z" />
-    <glyph glyph-name="js-square" unicode="&#xf3b9;" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM243.8 66.5996v143.7h-42.0996v-143.1c0 -21.1006 -8.7998 -26.5 -22.6006 -26.5c-14.5 0 -20.5 9.89941 -27.0996 21.5996
-l-34.2998 -20.7002c10 -21.0996 29.5 -38.5 63.2002 -38.5c37.2998 0 62.8994 19.9004 62.8994 63.5zM343.4 3.09961c39.8994 0 69.6992 20.8008 69.6992 58.6006c0 35.2002 -20.0996 50.8994 -55.8994 66.2002l-10.5 4.5c-18.1006 7.89941 -25.9004 13 -25.9004 25.5996
-c0 10.2002 7.7998 18 20.1006 18c12.0996 0 19.8994 -5.09961 27.0996 -18l32.7998 21c-13.7998 24.4004 -33 33.7002 -59.7998 33.7002c-37.5 0 -61.5996 -24 -61.5996 -55.6006c0 -34.2998 20.0996 -50.5996 50.5 -63.5l10.5 -4.5
-c19.2998 -8.5 30.6992 -13.5996 30.6992 -28c0 -12.0996 -11.1992 -20.7998 -28.5996 -20.7998c-20.7002 0 -32.5 10.9004 -41.5 25.6006l-34.2998 -19.8008c12.2998 -24.3994 37.5996 -43 76.7002 -43z" />
-    <glyph glyph-name="keycdn" unicode="&#xf3ba;" horiz-adv-x="512" 
-d="M63.7998 38.7002l60.5 59c32.1006 -42.7998 71.1006 -66 126.601 -67.4004c30.5 -0.700195 60.2998 7 86.3994 22.4004c5.10059 -5.2998 18.5 -19.5 20.9004 -22c-32.2002 -20.7002 -69.6006 -31.1006 -108.101 -30.2002
-c-43.2998 1.09961 -84.5996 16.7002 -117.699 44.4004c0.299805 0.599609 -38.2002 -37.5 -38.6006 -37.9004c9.5 -29.7998 -13.0996 -62.4004 -46.2998 -62.4004c-26.7998 0.100586 -47.5 21.7002 -47.5 48.5c0 34.3008 33.0996 56.6006 63.7998 45.6006zM418.7 291.1
-c19.0996 -31.2998 29.5996 -67.3994 28.7002 -104c-1.10059 -44.7998 -19 -87.5 -48.6006 -121c0.299805 -0.299805 23.7998 -25.1992 24.1006 -25.5c9.59961 1.30078 19.1992 -2 25.8994 -9.09961c11.2998 -12 10.9004 -30.9004 -1.09961 -42.4004
-c-12 -11.2998 -30.9004 -10.8994 -42.4004 1.10059c-6.7002 7 -9.39941 16.7998 -7.59961 26.2998c-24.9004 26.5996 -44.4004 47.2002 -44.4004 47.2002c42.7002 34.0996 63.2998 79.5996 64.4004 124.2c0.700195 28.8994 -7.2002 57.1992 -21.1006 82.1992zM104 394.9
-c6.7002 -7 9.40039 -16.8008 7.59961 -26.3008l45.9004 -48.0996c-4.7002 -3.7998 -13.2998 -10.4004 -22.7998 -21.2998c-25.4004 -28.5 -39.6006 -64.7998 -40.7002 -102.9c-0.700195 -28.8994 6.09961 -57.2002 20 -82.3994l-22 -21.5
-c-19.2998 31.5996 -28.9004 67.6992 -27.7998 104.699c1 44.6006 18.2998 87.6006 47.5 121.101l-25.2998 26.3994c-9.60059 -1.2998 -19.2002 2 -25.9004 9.10059c-11.2998 12 -10.9004 30.8994 1.09961 42.3994c11.9004 11.2002 30.6006 10.9004 42.4004 -1.19922z
-M464.9 440c26 0 47.0996 -22.4004 47.0996 -48.2998c0 -25.9004 -21.0996 -47.7002 -47.0996 -47.7002c-6.30078 -0.0996094 -14 1.09961 -15.9004 1.7998l-62.9004 -59.7002c-32.6992 43.6006 -76.6992 65.9004 -126.899 67.2002
-c-30.5 0.700195 -60.2998 -6.7998 -86.2002 -22.3994l-21.0996 22c32.1992 20.7998 69.5996 31.0996 108.1 30.1992c43.2998 -1.09961 84.5996 -16.6992 117.7 -44.5996l41.0996 38.5996c-1.5 4.7002 -2.2002 9.60059 -2.2002 14.5
-c-0.0996094 26.7002 22.3008 48.4004 48.3008 48.4004zM256.7 334.6c5.5 0 10.8994 -0.399414 16.3994 -1.09961c78.1006 -9.7998 133.4 -81.0996 123.801 -159.1c-9.80078 -78.1006 -81.1006 -133.4 -159.101 -123.801c-78.0996 9.80078 -133.399 81.1006 -123.8 159.2
-c9.2998 72.4004 70.0996 124.601 142.7 124.8zM197.7 215.2c0.599609 -22.7002 12.2002 -41.7998 32.3994 -52.2002l-11 -51.7002h73.7002l-11 51.7002c20.1006 10.9004 32.1006 29 32.4004 52.2002c-0.400391 32.7998 -25.7998 57.5 -58.2998 58.2998
-c-32.1006 -0.799805 -57.3008 -24.7998 -58.2002 -58.2998zM256 288z" />
-    <glyph glyph-name="kickstarter" unicode="&#xf3bb;" 
-d="M400 -32h-352c-26.4004 0 -48 21.5996 -48 48v352c0 26.4004 21.5996 48 48 48h352c26.4004 0 48 -21.5996 48 -48v-352c0 -26.4004 -21.5996 -48 -48 -48zM199.6 269.5c0 30.7002 -17.5996 45.0996 -39.6992 45.0996c-25.8008 0 -40 -19.7998 -40 -44.5v-154.8
-c0 -25.7998 13.6992 -45.5996 40.5 -45.5996c21.5 0 39.1992 14 39.1992 45.5996v41.7998l60.6006 -75.6992c12.2998 -14.9004 39 -16.8008 55.7998 0c14.5996 15.0996 14.7998 36.7998 4 50.3994l-49.0996 62.7998l40.5 58.7002c9.39941 13.5 9.5 34.5 -5.60059 49.1006
-c-16.3994 15.8994 -44.5996 17.2998 -61.3994 -7l-44.8008 -64.7002v38.7998z" />
-    <glyph glyph-name="kickstarter-k" unicode="&#xf3bc;" horiz-adv-x="384" 
-d="M147.3 333.6v-70.5996l82.7998 118.2c31.2002 44.3994 83.3008 41.7998 113.601 12.7998c27.8994 -26.7002 27.7998 -65.0996 10.3994 -89.7998l-74.8994 -107.4l90.7998 -114.8c19.9004 -24.7998 19.5996 -64.5996 -7.40039 -92.2002
-c-31.0996 -30.7002 -80.5 -27.2002 -103.199 0l-112.101 138.3v-76.5c0 -57.7998 -32.5996 -83.3994 -72.3994 -83.3994c-49.6006 0 -74.9004 36.0996 -74.9004 83.3994v283c0 45.2002 26.2002 81.4004 73.9004 81.4004c40.8994 0 73.3994 -26.2002 73.3994 -82.4004z" />
-    <glyph glyph-name="laravel" unicode="&#xf3bd;" horiz-adv-x="512" 
-d="M504.4 332.17c0.15625 -0.650391 0.240234 -1.32324 0.240234 -2.02051c0 -0.0234375 0 -0.046875 -0.000976562 -0.0693359v-109.85c0.000976562 -0.0244141 0.00878906 -0.0429688 0.00878906 -0.0673828c0 -2.96191 -1.61328 -5.5498 -4.00879 -6.93262
-l-92.2393 -53.1104v-105.26c0 -0.0078125 0.0078125 -0.00976562 0.0078125 -0.0166016c0 -2.96289 -1.61328 -5.55078 -4.00781 -6.93359l-192.561 -110.84c-0.442383 -0.231445 -0.916016 -0.428711 -1.39941 -0.580078
-c-0.180664 -0.0605469 -0.350586 -0.169922 -0.550781 -0.220703c-0.654297 -0.174805 -1.33789 -0.268555 -2.04688 -0.268555c-0.709961 0 -1.39844 0.09375 -2.05273 0.268555c-0.219727 0.0605469 -0.419922 0.180664 -0.629883 0.260742
-c-0.458008 0.143555 -0.908203 0.327148 -1.33008 0.540039l-192.5 110.84c-2.39551 1.38281 -4 3.96582 -4 6.92773v0.0224609v329.699c0.00195312 0.727539 0.0996094 1.42969 0.280273 2.10059c0.0839844 0.228516 0.181641 0.454102 0.290039 0.669922
-c0.133789 0.427734 0.307617 0.84668 0.509766 1.24023c0.149414 0.259766 0.370117 0.469727 0.549805 0.719727c0.21582 0.329102 0.450195 0.636719 0.709961 0.929688c0.250977 0.217773 0.512695 0.416016 0.790039 0.600586
-c0.274414 0.254883 0.56543 0.483398 0.879883 0.689453v0l96.2705 55.4199c1.1748 0.678711 2.55469 1.06738 4.00781 1.06738s2.81641 -0.388672 3.99219 -1.06738l96.29 -55.4199v0c0.307617 -0.210938 0.598633 -0.435547 0.879883 -0.679688
-c0.271484 -0.1875 0.529297 -0.385742 0.779297 -0.599609c0.260742 -0.298828 0.499023 -0.610352 0.720703 -0.94043c0.169922 -0.25 0.399414 -0.459961 0.540039 -0.719727c0.203125 -0.393555 0.379883 -0.813477 0.519531 -1.24023
-c0.0800781 -0.230469 0.219727 -0.44043 0.280273 -0.679688c0.181641 -0.661133 0.280273 -1.35352 0.280273 -2.07129v-0.0195312v-205.93l80.2197 46.1904v105.239c0.00292969 0.720703 0.100586 1.41602 0.280273 2.08008
-c0.0693359 0.240234 0.199219 0.450195 0.279297 0.680664c0.144531 0.427734 0.320312 0.850586 0.520508 1.25c0.149414 0.259766 0.370117 0.469727 0.540039 0.709961c0.21875 0.329102 0.457031 0.636719 0.719727 0.929688
-c0.248047 0.216797 0.505859 0.416016 0.780273 0.599609c0.277344 0.250977 0.568359 0.479492 0.879883 0.69043v0l96.2803 55.4502c1.1748 0.677734 2.55469 1.06641 4.00781 1.06641s2.81641 -0.388672 3.99219 -1.06641l96.2598 -55.4199
-c0.316406 -0.208984 0.613281 -0.433594 0.899414 -0.680664c0.25 -0.199219 0.540039 -0.379883 0.770508 -0.599609c0.260742 -0.298828 0.499023 -0.609375 0.719727 -0.94043c0.198242 -0.223633 0.376953 -0.458008 0.540039 -0.709961
-c0.207031 -0.396484 0.386719 -0.819336 0.530273 -1.25c0.106445 -0.217773 0.201172 -0.447266 0.280273 -0.679688zM111.6 430.72l-80.1895 -46.1602l80.1797 -46.1699l80.2002 46.1807l-80.1904 46.1494v0zM199.85 370.72l-33.6895 -19.4297l-46.5303 -26.79v-201.29
-l33.6904 19.4004l46.5293 26.79v201.319zM199.85 -42.0596l-0.109375 92.3594l-92.1904 52.1807v0v0c-0.301758 0.203125 -0.585938 0.421875 -0.859375 0.65918c-0.25 0.200195 -0.540039 0.360352 -0.770508 0.580078v0
-c-0.240234 0.265625 -0.458008 0.542969 -0.660156 0.839844c-0.21582 0.25 -0.414062 0.507812 -0.599609 0.780273v0c-0.166016 0.316406 -0.308594 0.655273 -0.419922 1c-0.149414 0.285156 -0.27832 0.589844 -0.379883 0.900391v0
-c-0.0820312 0.383789 -0.135742 0.77832 -0.160156 1.17969c-0.0595703 0.293945 -0.0996094 0.594727 -0.120117 0.900391v215.18l-46.5205 26.7998l-33.6895 19.3799v-311.18zM207.85 64.1104l117.62 67.1494l58.7998 33.5605l-80.1299 46.1299l-92.2598 -53.1104
-l-84.0898 -48.4102zM392.37 59.54v91.4102l-45.7705 -26.1504l-130.72 -74.5996v-92.3105zM392.37 178.67v91.3301l-46.5303 26.8096l-33.6895 19.4004v-91.4199l46.5293 -26.79zM400.37 283.95l80.1797 46.1797l-80.1797 46.1504l-80.2002 -46.1602zM408.37 178.67
-l80.3096 46.1504v0v91.3896l-33.6797 -19.4004l-46.6299 -26.8096v-91.3301z" />
-    <glyph glyph-name="line" unicode="&#xf3c0;" 
-d="M272.1 243.8v-71.0996c0 -1.7998 -1.39941 -3.2002 -3.19922 -3.2002h-11.4004c-1.09961 0 -2.09961 0.599609 -2.59961 1.2998l-32.6006 44v-42.2002c0 -1.7998 -1.39941 -3.19922 -3.2002 -3.19922h-11.3994c-1.7998 0 -3.2002 1.39941 -3.2002 3.19922v71.1006
-c0 1.7998 1.40039 3.2002 3.2002 3.2002h11.2998c1 0 2.09961 -0.5 2.59961 -1.40039l32.6006 -44v42.2002c0 1.7998 1.39941 3.2002 3.2002 3.2002h11.3994c1.7998 0.0996094 3.2998 -1.40039 3.2998 -3.10059zM190.1 247c1.80078 0 3.2002 -1.5 3.2002 -3.2002v-71.0996
-c0 -1.7998 -1.39941 -3.2002 -3.2002 -3.2002h-11.3994c-1.7998 0 -3.2002 1.40039 -3.2002 3.2002v71.0996c0 1.7998 1.40039 3.2002 3.2002 3.2002h11.3994zM162.6 187.4c1.7002 0 3.10059 -1.5 3.10059 -3.2002v-11.4004c0 -1.7998 -1.40039 -3.2002 -3.2002 -3.2002
-h-45.7002c-0.899414 0 -1.59961 0.400391 -2.2002 0.900391c-0.599609 0.599609 -0.899414 1.2998 -0.899414 2.2002v71.0996c0 1.7998 1.39941 3.2002 3.2002 3.2002h11.3994c1.7998 0 3.2002 -1.40039 3.2002 -3.2002v-56.3994h31.0996zM332.1 247
-c1.7002 0 3.10059 -1.5 3.2002 -3.2002v-11.3994c0 -1.80078 -1.39941 -3.2002 -3.2002 -3.2002h-31.0996v-12h31.0996c1.80078 0 3.2002 -1.40039 3.2002 -3.2002v-11.5c0 -1.7998 -1.39941 -3.2002 -3.2002 -3.2002h-31.0996v-12h31.0996
-c1.80078 0 3.2002 -1.39941 3.2002 -3.2002v-11.3994c0 -1.7998 -1.39941 -3.2002 -3.2002 -3.2002h-45.6992c-1.80078 0 -3.2002 1.5 -3.2002 3.2002v71.0996c0 1.7998 1.5 3.2002 3.2002 3.2002h45.6992zM448 334.3v-285.3
-c-0.0996094 -44.7998 -36.7998 -81.0996 -81.7002 -81h-285.3c-44.7998 0.0996094 -81.0996 36.9004 -81 81.7002v285.3c0.0996094 44.7998 36.9004 81.0996 81.7002 81h285.3c44.7998 -0.0996094 81.0996 -36.7998 81 -81.7002zM386.4 211.7
-c0 73 -73.2002 132.399 -163.101 132.399c-89.8994 0 -163.1 -59.3994 -163.1 -132.399c0 -65.4004 58 -120.2 136.399 -130.601c19.1006 -4.09961 16.9004 -11.0996 12.6006 -36.7998c-0.700195 -4.09961 -3.2998 -16.0996 14.0996 -8.7998
-c17.4004 7.2998 93.9004 55.2998 128.2 94.7002c23.5996 26 34.9004 52.2998 34.9004 81.5z" />
-    <glyph glyph-name="lyft" unicode="&#xf3c3;" horiz-adv-x="512" 
-d="M0 366.9h77.7998v-208.7c0 -33.1006 15 -52.7998 27.2002 -61c-12.7002 -11.1006 -51.2002 -20.9004 -80.2002 2.7998c-17 14 -24.7998 37.2998 -24.7998 59v207.9zM485.9 193.4c0 -14.2002 11.5996 -25.9004 26.0996 -25.9004v-76.5
-c-56.7002 0 -102.7 46.0996 -102.7 102.7v77.0996c0 34.6006 -52.2002 34.6006 -52.2002 0v-23.2998h38.8008v-76.7998h-38.8008v-6.7002c0 -21.7998 -7.69922 -45 -24.7998 -59c-16.2998 -13.7002 -35.7002 -16.2998 -51.7002 -14v179.2
-c0 56.7002 46.1006 102.7 102.7 102.7c49.1006 0 90.2002 -34.4004 100.3 -80.7002h26.1006v-76.7998h-23.7998v-22zM191.6 292.4v0.5h77.1006v-178.2c0 -52.4004 -29.7002 -91.7002 -76.7998 -100.8c-26.1006 -5.10059 -52.5 -2.80078 -77.6006 4.69922v70.3008
-c9.7998 -4.2002 29.5 -9.40039 45 -7.80078c20.4004 2 32.7998 11.9004 34.9004 25.3008c0 0 -21.2002 -20.4004 -58.2002 -10.6006c-37 9.90039 -45 40.1006 -45 63.9004v132.7h76.7998v-113c0 -15.4004 23.7998 -15.4004 23.7998 0v113z" />
-    <glyph glyph-name="magento" unicode="&#xf3c4;" 
-d="M445.7 320.1v-256.1l-63.4004 -36.5v255.8l-158.5 91.6006l-158.6 -91.6006l0.399414 -255.899l-63.2998 36.5996v255.9l221.9 128.1zM255.6 27.5v255.9l63.4004 -36.6006v-256l-95.0996 -54.8994l-94.9004 54.8994l-0.0996094 255.9l63.2998 36.5996v-256
-l31.7998 -18.2002z" />
-    <glyph glyph-name="medapps" unicode="&#xf3c6;" horiz-adv-x="320" 
-d="M118.3 209.6c3.5 12.5 6.90039 33.6006 13.2002 33.6006c8.2998 -1.7998 9.59961 -23.4004 18.5996 -36.6006c4.60059 23.5 5.30078 85.1006 14.1006 86.7002c9 0.700195 19.7002 -66.5 22 -77.5c9.89941 -4.09961 48.8994 -6.59961 48.8994 -6.59961
-c1.90039 -7.2998 -24 -7.60059 -40 -7.7998c-4.59961 -14.8008 -5.39941 -27.7002 -11.3994 -28c-4.7002 -0.200195 -8.2002 28.7998 -17.5 49.5996l-9.40039 -65.5c-4.39941 -13 -15.5 22.5 -21.8994 39.2998c-3.30078 0.100586 -62.4004 1.60059 -47.6006 7.7998zM228 0
-h-136c-21.2002 0 -21.2002 32 0 32h136c21.2002 0 21.2002 -32 0 -32zM204 -64h-88c-21.2002 0 -21.2002 32 0 32h88c21.2002 0 21.2002 -32 0 -32zM238.2 77.5c-3.60059 -21.2998 -36 -15.5 -32.6006 5.09961c3.60059 21.2002 5.60059 40.6006 15.3008 58.6006
-c32.5996 60.2998 66.0996 95.5 66.0996 151.6c0 67.9004 -57 123.2 -127 123.2s-127 -55.2998 -127 -123.2c0 -56.0996 33.5 -91.2998 66.0996 -151.7c9.7002 -17.8994 11.7002 -36.8994 15.3008 -58.5996c3.5 -20.7998 -29.1006 -26.0996 -32.6006 -5.09961
-c-3.2002 19.0996 -5.2002 36.3994 -11.8994 48.8994c-8 14.7002 -16.1006 28.1006 -24 41c-24.6006 40.4004 -45.9004 75.2998 -45.9004 125.5c0 85.6006 71.7998 155.2 160 155.2s160 -69.5996 160 -155.2c0 -50.2998 -21.2998 -85.0996 -45.9004 -125.5
-c-7.89941 -12.8994 -16.0996 -26.2998 -24 -41c-6.69922 -12.3994 -8.69922 -29.8994 -11.8994 -48.7998z" />
-    <glyph glyph-name="medium-m" unicode="&#xf3c7;" horiz-adv-x="512" 
-d="M71.5 305.7c0.599609 5.89941 -1.7002 11.7998 -6.09961 15.7998l-45.1006 54.4004v8.09961h140.2l108.4 -237.7l95.2998 237.7h133.7v-8.09961l-38.6006 -37c-3.2998 -2.5 -5 -6.7002 -4.2998 -10.8008v-272c-0.700195 -4.09961 1 -8.2998 4.2998 -10.7998l37.7002 -37
-v-8.09961h-189.7v8.09961l39.1006 37.9004c3.7998 3.7998 3.7998 5 3.7998 10.7998v219.8l-108.7 -275.899h-14.7002l-126.399 275.899v-184.899c-1.10059 -7.80078 1.5 -15.6006 7 -21.2002l50.7998 -61.6006v-8.09961h-144v8l50.7998 61.7002
-c5.40039 5.59961 7.90039 13.5 6.5 21.2002v213.8z" />
-    <glyph glyph-name="medrt" unicode="&#xf3c8;" horiz-adv-x="544" 
-d="M113.7 192c0 -121.8 83.8994 -222.8 193.5 -241.1c-18.7002 -4.5 -38.2002 -6.90039 -58.2002 -6.90039c-137.6 0 -249 111 -249 248s111.4 248 248.9 248c20.0996 0 39.5996 -2.40039 58.1992 -6.90039c-109.6 -18.2998 -193.399 -119.3 -193.399 -241.1zM411.1 91.7002
-c77.7002 55.3994 104.4 155.1 67 233.899c11.2002 -9.89941 21.5 -21.2998 30.5 -34.1992c61.6006 -88.3008 40.8008 -210.301 -46.5 -272.601c-87.2998 -62.2998 -208.1 -41.2002 -269.699 47c-9 12.7998 -16.2002 26.4004 -21.7002 40.5
-c60.7998 -62.0996 162.7 -70 240.399 -14.5996zM192.3 335.7c72.5 54.5996 171.601 45.7002 221.601 -19.7998c45.2998 -59.7002 34.3994 -145.601 -22.3008 -201.801c18.5 51.4004 11.3008 111 -24.3994 158c-43 56.5 -114.601 78.3008 -178.9 60.5
-c1.2998 1 2.60059 2.10059 4 3.10059zM296 224h40c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-40c-4.40039 0 -8 -3.59961 -8 -8v-40c0 -4.40039 -3.59961 -8 -8 -8h-48c-4.40039 0 -8 3.59961 -8 8v40c0 4.40039 -3.59961 8 -8 8h-40
-c-4.40039 0 -8 3.59961 -8 8v48c0 4.40039 3.59961 8 8 8h40c4.40039 0 8 3.59961 8 8v40c0 4.40039 3.59961 8 8 8h48c4.40039 0 8 -3.59961 8 -8v-40c0 -4.40039 3.59961 -8 8 -8z" />
-    <glyph glyph-name="microsoft" unicode="&#xf3ca;" 
-d="M0 416h214.6v-214.6h-214.6v214.6zM233.4 416h214.6v-214.6h-214.6v214.6zM0 182.6h214.6v-214.6h-214.6v214.6zM233.4 182.6h214.6v-214.6h-214.6v214.6z" />
-    <glyph glyph-name="mix" unicode="&#xf3cb;" 
-d="M0 384h448v-204.1c0 -56.6006 -88 -59.9004 -88 0v23.7998c0 56.7998 -82.7002 59 -88 4.2998v-116.1c0 -58 -96 -57.9004 -96 0v175.3c0 56.8994 -80.0996 59.3994 -88 6.5v-238.601c0 -58.0996 -88 -56.1992 -88 0v348.9z" />
-    <glyph glyph-name="mizuni" unicode="&#xf3cc;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111.1 248 -248c0 -137 -111 -248 -248 -248s-248 111 -248 248c0 136.9 111 248 248 248zM168 88.0996v223.9c0 22.0996 -17.9004 40 -40 40s-40 -17.9004 -40 -40v-272.1c21.2002 20.8994 48.5996 37.5996 80 48.1992zM288 98v214
-c0 22.0996 -17.9004 40 -40 40s-40 -17.9004 -40 -40v-214c13 2 26.4004 3.09961 40.2002 3.09961c13.5996 0 26.8994 -1.09961 39.7998 -3.09961zM408 40.2998v271.7c0 22.0996 -17.9004 40 -40 40s-40 -17.9004 -40 -40v-223.7c31.4004 -10.5996 58.7998 -27.2002 80 -48z
-" />
-    <glyph glyph-name="monero" unicode="&#xf3d0;" horiz-adv-x="496" 
-d="M352 64h108.4c-43.4004 -71.9004 -122.301 -120 -212.4 -120s-169 48.0996 -212.4 120h108.4v127.8l104 -104.8l104 105v-128zM88 112h-74.7998c-8.60059 25.0996 -13.2002 52 -13.2002 80c0 137 111 248 248 248s248 -111 248 -248c0 -28 -4.7002 -54.9004 -13.2002 -80
-h-74.7998v208l-160.6 -159.4l-159.4 159.4v-208z" />
-    <glyph glyph-name="napster" unicode="&#xf3d2;" horiz-adv-x="496" 
-d="M298.3 74.4004c-14.2002 -13.6006 -31.2998 -24.1006 -50.3994 -30.5c-19 6.39941 -36.2002 16.8994 -50.3008 30.5h100.7zM342.3 274c-56.3994 39.7998 -132.1 39.9004 -188.899 -0.0996094c-19.9004 16.7998 -43.6006 29.5 -69.5 36.3994v-161.6
-c0 -217.3 328 -219.101 328 0.299805v161.2c-26 -7 -49.6006 -19.2998 -69.6006 -36.2002zM133.5 332.5c6.5 -3.2002 14.0996 -7.40039 20.4004 -11.4004c58.6992 30.5 129.199 30.6006 187.899 0.100586c6.7002 4.2002 13.5 8 20.6006 11.5
-c-64.6006 59.8994 -164.5 59.7998 -228.9 -0.200195zM43.7998 354.8c17.5 -0.5 34.2998 -3.09961 50.6006 -7.5c82 91.6006 225.5 91.6006 307.5 0.100586c16.0996 4.39941 32.7998 6.89941 50.0996 7.39941v-69.2002c58.7002 -36.5 58.5 -121.899 -0.200195 -158.199
-l-0.299805 -1.7002c-25.9004 -238.8 -381.2 -243.601 -407.6 1.5c-58.5 37.2002 -58.5 121.8 -0.100586 158.3v69.2998zM259.2 96c13.0996 59.2998 33.5 56 113 55.4004c-0.799805 -8.2002 0.0996094 -32.3008 -26.2002 -47.4004c-4.40039 -2.5 -15.2998 -6 -25.5 -6.5
-c-25.2998 -1.2002 -61.2998 -1.5 -61.2998 -1.5zM123.7 151.3c79.2998 0.700195 99.7998 4 113 -55.3994c0 0 -36 0.399414 -61.2998 1.5c-10.3008 0.5 -21.1006 4 -25.5 6.5c-26.3008 15.0996 -25.4004 39.1992 -26.2002 47.3994zM292.8 27.9004
-c3 -4.90039 3.2002 -8.80078 3.2998 -8.90039c-29.0996 -17.5996 -67.0996 -17.5996 -96.1992 0c0 0 0.899414 5.5 3.69922 9.59961c3.5 5.10059 6.40039 6.60059 6.40039 6.60059c23.7002 -6.90039 51.0996 -7.2998 75.9004 0c0 0 3.69922 -2 6.89941 -7.2998z" />
-    <glyph glyph-name="node-js" unicode="&#xf3d3;" 
-d="M224 -60c-6.7002 0 -13.5 1.7998 -19.4004 5.2002l-61.6992 36.5c-9.2002 5.2002 -4.7002 7 -1.7002 8c12.2998 4.2998 14.7998 5.2002 27.8994 12.7002c1.40039 0.799805 3.2002 0.5 4.60059 -0.400391l47.3994 -28.0996c1.7002 -1 4.10059 -1 5.7002 0l184.7 106.6
-c1.7002 1 2.7998 3 2.7998 5v213.2c0 2.09961 -1.09961 4 -2.89941 5.09961l-184.601 106.5c-1.7002 1 -4 1 -5.7002 0l-184.5 -106.6c-1.7998 -1 -2.89941 -3 -2.89941 -5.10059v-213.1c0 -2 1.09961 -4 2.89941 -4.90039l50.6006 -29.1992
-c27.5 -13.7002 44.2998 2.39941 44.2998 18.6992v210.4c0 3 2.40039 5.2998 5.40039 5.2998h23.3994c2.90039 0 5.40039 -2.2998 5.40039 -5.2998v-210.5c0 -36.5996 -20 -57.5996 -54.7002 -57.5996c-10.7002 0 -19.0996 0 -42.5 11.5996l-48.4004 27.9004
-c-12 6.89941 -19.3994 19.7998 -19.3994 33.6992v213.101c0 13.7998 7.39941 26.7998 19.3994 33.7002l184.5 106.6c11.7002 6.59961 27.2002 6.59961 38.8008 0l184.699 -106.7c12 -6.89941 19.4004 -19.7998 19.4004 -33.7002v-213.1
-c0 -13.7998 -7.40039 -26.7002 -19.4004 -33.7002l-184.699 -106.6c-5.90039 -3.40039 -12.6006 -5.2002 -19.4004 -5.2002zM373.1 150.1c0 -40.1992 -33.5996 -63.2998 -92 -63.3994c-80.8994 0 -97.7998 37.0996 -97.7998 68.2002c0 2.89941 2.2998 5.2998 5.2998 5.2998
-h23.9004c2.7002 0 4.90039 -1.90039 5.2998 -4.5c3.60059 -24.2998 14.2998 -36.6006 63.2002 -36.6006c38.9004 0 55.5 8.80078 55.5 29.4004c0 11.9004 -4.7002 20.7998 -65.2002 26.7002c-50.5 5 -81.7998 16.2002 -81.7998 56.5996c0 37.2998 31.4004 59.5 84.0996 59.5
-c59.2002 0 88.5 -20.5 92.2002 -64.5996c0.100586 -1.5 -0.399414 -3 -1.39941 -4.10059c-1 -1.09961 -2.40039 -1.69922 -3.90039 -1.69922h-24c-2.5 0 -4.7002 1.7998 -5.2002 4.19922c-5.7998 25.6006 -19.7998 33.8008 -57.7002 33.8008
-c-42.5 0 -47.3994 -14.8008 -47.3994 -25.9004c0 -13.4004 5.7998 -17.2998 63.2002 -24.9004c56.6992 -7.5 83.6992 -18.0996 83.6992 -58z" />
-    <glyph glyph-name="npm" unicode="&#xf3d4;" horiz-adv-x="576" 
-d="M288 160h-32v64h32v-64zM576 288v-192h-288v-32h-128v32h-160v192h576zM160 256h-128v-128h64v96h32v-96h32v128zM320 256h-128v-160h64v32h64v128zM544 256h-192v-128h64v96h32v-96h32v96h32v-96h32v128z" />
-    <glyph glyph-name="ns8" unicode="&#xf3d5;" horiz-adv-x="640" 
-d="M104.324 178.828v26.1777h26.0664v-26.1777h-26.0664zM156.79 205.006h-26.3428v26.1777c-0.124023 7.05762 -5.8916 12.748 -12.9785 12.748c-7.08594 0 -12.8535 -5.69043 -12.9775 -12.748v-0.166016h-26.4004v0.166016
-c-0.000976562 0.119141 -0.000976562 0.220703 -0.000976562 0.339844c0 21.7041 17.6211 39.3242 39.3242 39.3242c21.5039 0 38.999 -17.2959 39.3213 -38.7227v-0.941406zM209.146 179.16v26.0117h26.3438v-26.0117
-c0 -0.0371094 -0.000976562 -0.0722656 -0.000976562 -0.109375c0 -64.7373 -52.5439 -117.3 -117.274 -117.331h-0.774414c-0.0380859 0 -0.0732422 0.000976562 -0.110352 0.000976562c-64.7373 0 -117.299 52.543 -117.33 117.273v0.166016h26.3369
-c0 -50.2793 40.8203 -91.1006 91.0996 -91.1006h0.609375c50.2793 0 91.1006 40.8213 91.1006 91.1006zM51.9131 179.16v25.96h-26.291v25.3994c0 50.6445 41.1162 91.7617 91.7607 91.7617s91.7607 -41.1172 91.7607 -91.7617v-25.293h-26.3438v25.293v0.200195
-c0 36.1055 -29.3135 65.4199 -65.4199 65.4199c-35.7656 0 -64.8672 -28.7646 -65.4121 -64.4023v-26.6201h26.2891v-25.957c0.356445 -21.2305 17.7031 -38.3564 39.0176 -38.3564s38.6611 17.126 39.0176 38.3564h26.3438
-c-0.140625 -35.9551 -29.374 -65.1016 -65.3613 -65.1016s-65.2207 29.1465 -65.3613 65.1016zM470.313 250.333c-11.3467 0 -20.8633 -4.75977 -24.2402 -12.1172v-8.41211c2.21875 -4.53809 6.30859 -7.69238 12.6191 -9.62988
-c4.75879 -1.37891 9.76562 -2.3623 14.832 -2.87793c6.36426 -0.827148 13.0068 -1.71484 20.6992 -4.42676c13.7256 -4.59375 24.0742 -13.2275 28.9443 -24.2412l0.166016 -0.664062l-0.166016 -25.8994c-7.69238 -17.0479 -28.668 -28.4473 -52.2998 -28.4473
-c-25.6797 0 -47.374 12.6182 -55.2891 32.0439l-0.552734 1.43848l23.0205 11.5078l0.719727 -1.49414c5.97754 -12.1211 17.5996 -19.0391 31.9336 -19.0391c12.0098 0 22.083 4.81445 25.791 12.3418v9.85059c-2.37988 4.59473 -6.47656 7.75098 -12.8398 9.85156
-c-5.20312 1.71582 -10.3506 2.37988 -15.8291 3.09961c-6.78809 0.675781 -13.4814 2.04199 -19.8135 3.98438c-14.1123 4.87109 -23.9678 13.2275 -28.668 24.2412c-0.158203 0.949219 -0.123047 -2.02637 0 24.8496c7.36133 17.0469 27.8379 28.4473 50.9727 28.4473
-c24.9062 0 45.3818 -12.0098 53.4062 -31.2705l0.609375 -1.43848l-23.2451 -11.5117l-0.71875 1.5498c-5.47949 11.6221 -16.3818 18.2637 -30.0518 18.2637zM287.568 136.656v68.3994h26.0664v-68.3994h-26.0664zM639.834 189.956l0.166016 -0.722656l-0.166016 -28.8906
-c-7.52734 -15.9941 -27.8916 -26.7305 -50.584 -26.7305s-43.0029 10.7363 -50.585 26.7305l-0.166016 0.720703l0.166016 28.8887c2.93262 6.25391 8.24121 12.0137 15.4414 16.7139c-5.57422 3.90332 -10.0391 9.14453 -13.0068 15.3311l-0.166016 0.664062
-l0.166016 25.3467c7.36133 15.9922 26.7334 26.7324 48.1504 26.7324s40.7881 -10.7402 48.1504 -26.7295l0.166016 -0.664062l-0.166016 -25.3467c-2.90137 -6.22852 -7.38379 -11.4873 -13.0078 -15.3301c7.1416 -4.7041 12.5088 -10.46 15.4414 -16.7139z
-M566.614 240.762v-13.7246c3.48535 -6.19922 12.5068 -10.3486 22.5801 -10.3486c10.0723 0 19.0938 4.14844 22.6357 10.3486v13.7246c-3.59766 6.31055 -12.6191 10.5166 -22.6357 10.5166c-10.0176 0 -18.9805 -4.20605 -22.5801 -10.5166zM613.933 168.593v16.1572
-c-3.76367 6.36523 -13.3379 10.5146 -24.6826 10.5146c-11.1836 0 -20.9756 -4.20605 -24.6836 -10.5146v-16.1572c3.70801 -6.52734 13.5586 -10.8994 24.6836 -10.8994c11.3447 0 20.9189 4.25879 24.6826 10.8994zM376.4 182.038v89.7129h25.8994v-135.095h-25.6777
-l-62.5391 94.085v0.386719h-26.5098v40.623h29z" />
-    <glyph glyph-name="nutritionix" unicode="&#xf3d6;" horiz-adv-x="400" 
-d="M88 439.9c0 0 133.4 8.19922 121 -104.4c0 0 19.0996 74.9004 103 40.5996c0 0 -17.7002 -74 -88 -56c0 0 14.5996 54.6006 66.0996 56.6006c0 0 -39.8994 10.2998 -82.0996 -48.7998c0 0 -19.7998 94.5 -93.5996 99.6992c0 0 75.1992 -19.3994 77.5996 -107.5
-c0 -0.0996094 -106.4 -7 -104 119.801zM400 124.3c0 -48.5 -9.7002 -95.2998 -32 -132.3c-42.2002 -30.9004 -105 -48 -168 -48c-62.9004 0 -125.8 17.0996 -168 48c-22.2998 37 -32 83.7998 -32 132.3c0 48.4004 17.7002 94.7002 40 131.7
-c42.2002 30.9004 97.0996 48.5996 160 48.5996c63 0 117.8 -17.5996 160 -48.5996c22.2998 -37 40 -83.2998 40 -131.7zM120 20c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM120 86.2002c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28
-s12.5 -28 28 -28s28 12.5 28 28zM120 152.4c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM192 20c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM192 86.2002c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28
-s12.5 -28 28 -28s28 12.5 28 28zM192 152.4c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM264 20c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM264 86.2002c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28
-s12.5 -28 28 -28s28 12.5 28 28zM264 152.4c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM336 20c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM336 86.2002c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28
-s12.5 -28 28 -28s28 12.5 28 28zM336 152.4c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM360 192c-4.7998 22.2998 -7.40039 36.9004 -16 56c-38.7998 19.9004 -90.5 32 -144 32s-105.2 -12.0996 -144 -32
-c-8.7998 -19.5 -11.2002 -33.9004 -16 -56c42.2002 7.90039 98.7002 14.7998 160 14.7998s117.8 -6.89941 160 -14.7998z" />
-    <glyph glyph-name="page4" unicode="&#xf3d7;" horiz-adv-x="496" 
-d="M248 -56c-137 0 -248 111 -248 248s111 248 248 248c20.9004 0 41.2998 -2.59961 60.7002 -7.5l-266.4 -376.5h205.7v-112zM248 87.5996h-149.4l149.4 213.601v-213.601zM344 56h111.4c-26.9004 -41 -65.7002 -73.5 -111.4 -92.7002v92.7002zM401.4 194.2v-16.7002
-l-21.2002 8.2998zM381.1 139.7c5.90039 0 8.2002 -4.7002 8.2002 -10.6006v-10h-16.2002v7.7002c0 6.60059 1.30078 12.9004 8 12.9004zM496 192c0 -37.2998 -8.2002 -72.7002 -23 -104.4h-129v333.101c89.2998 -37.5 152 -125.8 152 -228.7zM360.4 304.4h68.1992v47.5996
-h-13.8994v-32.5996h-13.9004v29.5996h-13.8994v-29.5996h-12.7002v32.5996h-13.9004v-47.5996h0.100586zM428.5 119.1h-26.5v11c0 15.4004 -5.59961 25.2002 -20.9004 25.2002c-15.3994 0 -20.6992 -10.5996 -20.6992 -25.8994v-25.3008h68.1992v15h-0.0996094zM428.5 222.1
-l-68.2002 -29.6992v-12.4004l68.2002 -29.5v16.5996l-14.4004 5.7002v26.5l14.4004 5.90039v16.8994zM423.7 290.6h-35.6006v-26.5996h13.9004v12.2002h11c8.59961 -15.7998 1.2998 -35.2998 -18.5996 -35.2998c-22.5 0 -28.3008 25.2998 -15.5 37.6992l-11.6006 10.6006
-c-16.2002 -17.5 -12.2002 -63.9004 27.1006 -63.9004c34 0 44.6992 35.9004 29.2998 65.2998z" />
-    <glyph glyph-name="palfed" unicode="&#xf3d8;" horiz-adv-x="576" 
-d="M384.9 254.1c0.0996094 -53.3994 -46.5 -96.1992 -83.3008 -96.1992c-12.5 0 -14.3994 3.39941 -15.0996 6.19922c0.5 39.1006 1.7002 80.4004 3 119.801c40.2002 14.3994 95.4004 17.5996 95.4004 -29.8008zM190.4 181.9
-c-0.200195 0.599609 -0.400391 2.09961 -0.600586 4.59961c0 25.5996 37 60.9004 58.5 75.9004c-1.2002 -36.4004 -5.5 -198.101 -1.39941 -242.5c3 -32.3008 26.7998 -32.9004 36.3994 -22.3008c5.90039 6.60059 5.5 15.7002 5.2998 19.1006v0.200195
-c-1.7998 25.5996 -2.7998 60.5996 -2.69922 100c60.7998 -14.4004 140.1 60.2998 140.1 138.199c0 71 -63 94.2002 -135.2 72c-2.89941 14.6006 -18.2998 20.1006 -29.5 11.1006c-7.5 -6.2002 -9.5 -15.7998 -10.5 -28.2002c-57.7998 -30.9004 -100.7 -84.5 -100.7 -126.5
-c0 -24.9004 15.6006 -43 37.1006 -43c35.0996 0 41 44.0996 14.3994 44.0996c-4.69922 0 -11 -2.69922 -11.1992 -2.69922zM8 266.9c0 38.5996 38.4004 37.3994 38.4004 37.3994h29c15.5 70.1006 120.5 74.2998 120.5 74.2998h28.0996v19.1006
-c0 18.3994 21.0996 18.3994 21.0996 18.3994h85.8008c18.3994 0 21.0996 -18.3994 21.0996 -18.3994v-19.1006h28c89.2002 0 112.1 -48.6992 119.4 -74.2998h30.0996c38.5 0 38.4004 -37.3994 38.4004 -37.3994c0 -38.6006 -38.4004 -37.4004 -38.4004 -37.4004h-30
-l-22.4004 -217.2c0 -43.8994 -44.6992 -44.2998 -44.6992 -44.2998h-288.9c-44.7002 0 -44.7002 44.2998 -44.7002 44.2998l-22.3994 217.2h-30c-38.5 0 -38.4004 37.4004 -38.4004 37.4004z" />
-    <glyph glyph-name="patreon" unicode="&#xf3d9;" horiz-adv-x="512" 
-d="M512 253.2c0 -101.3 -82.4004 -183.8 -183.8 -183.8c-101.7 0 -184.4 82.3994 -184.4 183.8c0 101.6 82.7002 184.3 184.4 184.3c101.399 0 183.8 -82.7002 183.8 -184.3zM0 -53.5v491h90v-491h-90z" />
-    <glyph glyph-name="periscope" unicode="&#xf3da;" 
-d="M370 384.4c38.4004 -40.7002 59.5 -94.3008 59.5 -150.801c0 -74.2998 -57.4004 -159.5 -82 -192.6c-8 -10.7998 -79.2998 -105 -120.9 -105c-34 0 -88.7998 56.5 -125.399 104.9c-24.9004 32.8994 -82.7002 117.6 -82.7002 192.699c0 118.2 93.4004 214.4 208.1 214.4
-c53.9004 0 104.801 -22.5996 143.4 -63.5996zM226.6 -45.9004c37.3008 0 184.801 167.301 184.7 279.4c0 107.3 -83.8994 196.3 -184.7 196.3c-106.1 0 -190 -88.8994 -190 -196.3c0 -112.1 147.5 -279.4 190 -279.4zM338 241.2c0 -59.1006 -51.0996 -109.7 -110.8 -109.7
-c-100.601 0 -150.7 108.2 -92.9004 181.8v-0.399414c0 -24.5 20.1006 -44.4004 44.7998 -44.4004c24.7002 0 44.8008 19.9004 44.8008 44.4004c0 18.1992 -11.1006 33.7998 -26.9004 40.6992c76.5996 19.2002 141 -39.2998 141 -112.399z" />
-    <glyph glyph-name="phabricator" unicode="&#xf3db;" horiz-adv-x="496" 
-d="M323 185.9c0 0 21.5996 -19.6006 20.9004 -20.7002l-8.10059 -19.7998c-0.5 -1.40039 -29.7002 -0.5 -29.7002 -0.5l-9.09961 -9.10059s1.59961 -31.5 0.200195 -32.0996l-20 -7.5c-1.2998 -0.5 -21.7998 23.2998 -21.7998 23.2998l-13.1006 0.200195
-s-19.2998 -24.1006 -20.7002 -23.5l-20.0996 8.2998c-1.40039 0.5 -1.2002 32.2998 -1.2002 32.2998l-9.39941 9.2998s-28.9004 -0.899414 -29.5 0.5l-9.5 20c-0.600586 1.40039 21.0996 21.2002 21.0996 21.2002l-0.0996094 12.9004s-21.6006 19.5996 -21 21
-l8.09961 19.7998c0.5 1.2998 29.7002 0.400391 29.7002 0.400391l9.09961 9.09961s-1.59961 28.4004 -0.200195 28.9004l20 8.2998c1.40039 0.599609 21.9004 -20.7998 21.9004 -20.7998l13.0996 -0.200195s19.3008 21.5996 20.7002 21l20.1006 -9.2002
-c1.39941 -0.599609 1.19922 -29.0996 1.19922 -29.0996l9.40039 -9.30078s28.9004 0.900391 29.5 -0.5l9.5 -20c0.599609 -1.39941 -21.0996 -21.1992 -21.0996 -21.1992zM278.1 194.6c-0.699219 17 -15.5 30.3008 -32.7998 29.5
-c-17.2998 -0.699219 -30.7998 -15.1992 -30.0996 -32.2998c0.700195 -17.0996 15.5 -30.3994 32.7998 -29.5996s30.7998 15.2998 30.0996 32.3994zM479.3 232.5c22.2998 -22.2998 22.2998 -58.7002 0 -81c-67.3994 -67.4004 -44.2998 -44.4004 -95.2998 -95.2998
-c-74.4004 -74.5 -194.7 -74.9004 -269.8 -1.60059l-0.100586 -0.0996094c-51 51 -27.5 27.5996 -97.3994 97c-22.2998 22.2998 -22.2998 58.7002 0 81c67.8994 67.4004 44.7998 44.2998 95.7002 95.2998c74.3994 74.4004 194.699 74.9004 269.8 1.60059l0.0996094 0.0996094
-zM140.4 84.2002c59.5996 -59.5 156 -59.6006 215.6 -0.100586c59.5996 59.6006 59.5 156.101 0 215.601c-59.5996 59.5 -156.1 59.5996 -215.6 0c-59.6006 -59.5 -59.6006 -156 0 -215.5z" />
-    <glyph glyph-name="phoenix-framework" unicode="&#xf3dc;" horiz-adv-x="640" 
-d="M212.9 103.7c-36.7002 -1.2002 -108.7 29.2998 -127.7 106.399c-8.7002 35.3008 -2.7002 51.8008 -8 86.1006c-8.2002 53.3994 -32.1006 72.2002 -55.9004 76.5c-6.2002 1.09961 -12.3994 1.2998 -18.7002 0.299805
-c-0.799805 -0.0996094 -1.59961 -0.200195 -2.39941 -0.200195c-0.100586 0.200195 -0.100586 0.299805 -0.200195 0.5c0.700195 0.600586 1.40039 1.2002 2.2002 1.7998c36.8994 26.9004 92 38.4004 136.3 35c123.6 -9.5 141.3 -156.6 252.5 -173.1
-c6.09961 -0.900391 12.2998 -1.09961 18.5 -1.7002c0.700195 -0.0996094 1.40039 -0.0996094 2.5 -0.200195c-2.09961 -2.19922 -21.5996 -11.7998 -36.5 -14.5c-18.4004 -3.39941 -35.7002 -0.0996094 -51.2998 10.3008c-14.5 9.7998 -24.5 23.5 -38.9004 27.3994
-c-13 3.60059 -34.0996 1.7002 -35.8994 -19.5996c-1.30078 -15.9004 14.1992 -51.7998 51.7998 -74.6006c40.3994 -24.5 101.399 -26.8994 134.7 -14.7998c0.299805 0.100586 0.699219 0.200195 1.09961 0.299805c0.200195 0.100586 0.400391 0 1 -0.0996094
-c-23.5996 -28.4004 -71.2002 -49.9004 -108.2 -45.4004c-50.3994 6.2002 -77.7002 75.9004 -113.7 97.5c-19.0996 11.5 -49.0996 7 -52 -18.5c-1.09961 -10 2.10059 -19 6.40039 -27.5996c24.4004 -48.5996 65.5996 -47 68 -49.5996
-c-2.7998 -0.800781 -21.7998 -2.10059 -25.5996 -2.2002zM75.2998 383.1c13.1006 -14.5 34.2002 -7.89941 35.2998 6.80078c-12.3994 -0.700195 -24.5 -2.2002 -36.5996 -4.80078c0.400391 -0.799805 0.400391 -1 1.2998 -2zM272.2 32.5996
-c-42.7998 -1.19922 -92 26.7002 -123.5 61.4004c-4.60059 5 -16.7998 20.2002 -18.6006 23.4004l0.400391 0.399414c6.59961 -4.09961 25.7002 -18.5996 54.7998 -27c24.2002 -7 48.1006 -6.2998 71.6006 3.2998c22.6992 9.30078 41 0.5 43.0996 -2.89941
-c-18.5 -3.7998 -20.0996 -4.40039 -24 -7.90039c-5.09961 -4.39941 -4.59961 -11.7002 7 -17.2002c26.2002 -12.3994 63 2.80078 97.2002 -25.3994c2.39941 -2 8.09961 -7.7998 10.0996 -10.7002c-0.0996094 -0.200195 -0.299805 -0.299805 -0.399414 -0.5
-c-4.80078 1.5 -16.4004 7.5 -40.2002 9.2998c-24.7002 2 -46.2998 -5.2998 -77.5 -6.2002zM447 284.6c16.4004 5.2002 41.2998 13.4004 66.5 3.30078c16.0996 -6.5 26.2002 -18.7002 32.0996 -34.6006c3.5 -9.39941 5.10059 -19.7002 5.10059 -28.7002
-c-0.200195 0 -0.400391 0 -0.600586 -0.0996094c-0.199219 0.400391 -0.399414 0.900391 -0.5 1.2998c-5 22 -29.8994 43.7998 -67.5996 29.9004c-50.2002 -18.6006 -130.4 -9.7002 -176.9 48c-0.699219 0.899414 -2.39941 1.7002 -1.2998 3.2002
-c0.100586 0.199219 2.10059 -0.600586 3 -1.30078c18.1006 -13.3994 38.2998 -21.8994 60.2998 -26.1992c30.5 -6.10059 54.6006 -2.90039 79.9004 5.19922zM549.7 167.1c-32.4004 -0.199219 -33.7998 -50.0996 -103.601 -64.3994
-c-18.1992 -3.7002 -38.6992 -4.60059 -44.8994 -4.2002v0.400391c2.7998 1.5 14.7002 2.59961 29.7002 16.5996c7.89941 7.2998 15.2998 15.0996 22.7998 22.9004c19.5 20.1992 41.3994 42.1992 81.8994 39c23.1006 -1.80078 29.3008 -8.2002 36.1006 -12.7002
-c0.299805 -0.200195 0.399414 -0.5 0.700195 -0.900391c-0.5 0 -0.700195 -0.0996094 -0.900391 0c-7 2.7002 -14.2998 3.2998 -21.7998 3.2998zM537.4 191.2c-0.100586 -0.200195 -0.100586 -0.400391 -0.200195 -0.600586c-28.9004 4.40039 -48 7.90039 -68.5 -4
-c-17 -9.89941 -31.4004 -20.5 -62 -24.3994c-27.1006 -3.40039 -45.1006 -2.40039 -66.1006 8c-0.299805 0.200195 -0.599609 0.399414 -1 0.599609c0 0.200195 0.100586 0.299805 0.100586 0.5c24.8994 -3.7998 36.3994 -5.09961 55.5 5.7998
-c22.2998 12.9004 40.0996 26.6006 71.2998 31c29.5996 4.10059 51.2998 -2.5 70.9004 -16.8994zM268.6 350.7c-0.599609 0.599609 -1.09961 1.2002 -2.09961 2.2998c7.59961 0 29.7002 1.2002 53.4004 -8.40039c19.6992 -8 32.1992 -21 50.1992 -32.8994
-c11.1006 -7.2998 23.4004 -9.2998 36.4004 -8.10059c4.2998 0.400391 8.5 1.2002 12.7998 1.7002c0.400391 0.100586 0.900391 0 1.5 -0.299805c-0.599609 -0.400391 -1.2002 -0.900391 -1.7998 -1.2002c-8.09961 -4 -16.7002 -6.2998 -25.5996 -7.09961
-c-26.1006 -2.60059 -50.3008 3.7002 -73.4004 15.3994c-19.2998 9.90039 -36.4004 22.9004 -51.4004 38.6006zM640 112.3c-3.5 -3.09961 -22.7002 -11.5996 -42.7002 -5.2998c-12.2998 3.90039 -19.5 14.9004 -31.5996 24.0996
-c-10 7.60059 -20.9004 7.90039 -28.1006 8.40039c0.600586 0.799805 0.900391 1.2002 1.2002 1.40039c14.7998 9.19922 30.5 12.1992 47.2998 6.5c12.5 -4.2002 19.2002 -13.5 30.4004 -24.2002c10.7998 -10.4004 21 -9.90039 23.0996 -10.5
-c0.100586 0.0996094 0.200195 0 0.400391 -0.400391zM427.5 -24.7002c2.2002 -1.2002 1.59961 -1.5 1.5 -2c-18.5 1.40039 -33.9004 7.60059 -46.7998 22.2002c-21.7998 24.7002 -41.7002 27.9004 -48.6006 29.7002c0.5 0.200195 0.800781 0.399414 1.10059 0.399414
-c13.0996 -0.0996094 26.0996 -0.699219 38.8994 -3.89941c25.3008 -6.40039 35 -25.4004 41.6006 -35.2998c3.2002 -4.80078 7.2998 -8.30078 12.2998 -11.1006z" />
-    <glyph glyph-name="playstation" unicode="&#xf3df;" horiz-adv-x="576" 
-d="M570.9 75.7002c-11.3008 -14.2002 -38.8008 -24.2998 -38.8008 -24.2998l-205.1 -73.6006v54.2998l150.9 53.8008c17.0996 6.09961 19.7998 14.7998 5.7998 19.3994c-13.9004 4.60059 -39.1006 3.2998 -56.2002 -2.89941l-100.5 -35.5v56.3994
-c23.2002 7.7998 47.0996 13.6006 75.7002 16.7998c40.8994 4.5 90.8994 -0.599609 130.2 -15.5c44.1992 -14 49.1992 -34.6992 38 -48.8994zM346.5 168.2v139c0 16.2998 -3 31.2998 -18.2998 35.5996c-11.7002 3.7998 -19 -7.09961 -19 -23.3994v-347.9l-93.7998 29.7998
-v414.7c39.8994 -7.40039 98 -24.9004 129.199 -35.4004c79.5 -27.2998 106.4 -61.2998 106.4 -137.8c0 -74.5 -46 -102.8 -104.5 -74.5996zM43.2002 37.7998c-45.4004 12.7998 -53 39.5 -32.2998 54.7998c19.0996 14.2002 51.6992 24.9004 51.6992 24.9004l134.5 47.7998
-v-54.5l-96.7998 -34.5996c-17.0996 -6.10059 -19.7002 -14.7998 -5.7998 -19.4004c13.9004 -4.59961 39.0996 -3.2998 56.2002 2.90039l46.3994 16.8994v-48.7998c-51.5996 -9.2998 -101.399 -7.2998 -153.899 10z" />
-    <glyph glyph-name="pushed" unicode="&#xf3e1;" horiz-adv-x="432" 
-d="M407 336.1c21.7002 -1.89941 33.7998 -28 17.4004 -44.7998l-235.2 -231.3l-35.2998 -80.7998c-11 -17.2002 -41.2002 -14.2998 -47.7002 7l-105.101 348.3c-4.59961 18.2998 6.30078 33.9004 21.4004 36.5996l271.3 44.4004c17.9004 3.40039 39.1006 -13.5 28.7002 -37
-l-14 -33.4004zM297.6 394.4l-189 -31l177.4 -16.3008l16.7998 39.9004c2.2998 4.90039 -0.0996094 8.09961 -5.2002 7.40039zM22.7002 340.1l157.899 -244.3l96.9004 230.7l-248.7 22.7002c-5.09961 0.899414 -9.2002 -4 -6.09961 -9.10059zM136 -8.40039
-c0 0 28.2002 64.1006 35.2002 79.1006l-127.7 197.6l83.0996 -275.5c1.5 -4.2998 6.80078 -5.2002 9.40039 -1.2002zM408.8 306.1c3.10059 3.30078 1.40039 7.5 -2.59961 8.60059l-106.4 9.7002l-89.7002 -213.7z" />
-    <glyph glyph-name="python" unicode="&#xf3e2;" 
-d="M439.8 247.5c10.7002 -42.9004 11.2002 -75.0996 0 -108.6c-10.7998 -32.5 -22.2998 -54.2002 -53.3994 -54.2002h-160.2v-13.6006h106.7v-40.6992c0 -30.8008 -26.5 -46.5 -53.4004 -54.3008c-40.5 -11.6992 -73 -9.89941 -106.8 0
-c-28.2002 8.30078 -53.4004 25.3008 -53.4004 54.3008v101.8c0 29.2998 24.2002 54.2998 53.4004 54.2998h106.8c35.5996 0 66.7998 31 66.7998 67.7998v47.4004h40.1006c31.0996 0 45.6992 -23.2998 53.3994 -54.2002zM286.2 44c-11 0 -20 -9 -20.1006 -20.2998
-c0 -11.2002 9.10059 -20.4004 20.1006 -20.4004c11.0996 0 20.0996 9.10059 20.0996 20.4004c0 11.2002 -9 20.2998 -20.0996 20.2998zM167.8 199.9c-36.2998 0 -66.7998 -31.1006 -66.7998 -66.4004v-48.7998h-36.7002c-31.0996 0 -49.2002 22.5996 -56.7998 54.2002
-c-10.2002 42.5 -9.7998 67.8994 0 108.6c8.5 35.5 35.7002 54.2002 66.7998 54.2002h147v13.5996h-106.899v40.7002c0 30.9004 8.19922 47.5996 53.3994 55.5996c32.1006 5.7002 71 6 106.8 0.100586c29 -4.90039 53.4004 -26.6006 53.4004 -55.6006v-101.899
-c0 -29.7998 -23.7002 -54.2998 -53.4004 -54.2998h-106.8zM161.1 342.5c11.1006 0 20.1006 9.09961 20.1006 20.2998s-9.10059 20.4004 -20.1006 20.4004c-11.0996 0 -20 -9.10059 -20.0996 -20.4004c0 -11.2002 9 -20.2998 20.0996 -20.2998z" />
-    <glyph glyph-name="red-river" unicode="&#xf3e3;" 
-d="M353.2 416c52.3994 0 94.7998 -42.4004 94.7998 -94.7998v-258.4c0 -52.3994 -42.4004 -94.7998 -94.7998 -94.7998h-258.4c-52.3994 0 -94.7998 42.4004 -94.7998 94.7998v258.4c0 52.3994 42.4004 94.7998 94.7998 94.7998h258.4zM144.9 247.1
-c-0.600586 12.4004 11.6992 24.6006 24 24h56.2998c27 0 48.8994 21.9004 48.8994 48.9004h-154.199c-13.2002 0 -23.9004 -10.7002 -23.9004 -23.9004v-154.199c27 0 48.9004 21.8994 48.9004 48.8994v56.2998zM321.2 175.1c27 0 48.8994 21.9004 48.8994 48.9004h-154.199
-c-13.2002 0 -23.9004 -10.7002 -23.9004 -23.9004v-154.199c27 0 48.9004 21.8994 48.9004 48.8994v56.2998c-0.600586 12.4004 11.6992 24.6006 24 24h56.2998z" />
-    <glyph glyph-name="wpressr" unicode="&#xf3e4;" horiz-adv-x="496" 
-d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM419.33 281.4c2.41016 5.47949 0.459961 8.2793 -5.62012 8.26953c-104.8 0.00976562 -107.69 -0.0302734 -130.78 0.0302734
-c-4.31934 0.00976562 -7.10938 -1.82031 -8.83984 -5.78027c-5.70996 -13.0996 -11.5195 -26.1504 -17.2998 -39.21c-2.57031 -5.7998 -1 -8.26953 5.26953 -8.26953c25.2607 0 50.5205 -0.0107422 75.7803 0.0195312
-c10.0303 0.00976562 8.54004 -13.6602 -3.89941 -13.6396c-26.4307 0.0498047 -52.8604 0 -79.29 0.0498047c-4.91016 0.00976562 -8.33008 -1.88965 -10.3506 -6.5c-4.2998 -9.83008 -32.1494 -73.0801 -32.1895 -73.1602
-c-3.2002 -7.16016 -16.2607 -6.09961 -11.2803 5.33008c8.26953 18.9902 16.6504 37.9297 24.9795 56.8896c2.25 5.11035 -0.0996094 8.74023 -5.65918 8.75c-15.21 0.0205078 -30.4307 -0.0400391 -45.6406 0.0400391
-c-3.35938 0.0107422 -5.41016 -1.29004 -6.76953 -4.38965c-31.4307 -71.8701 -29.7803 -67.3203 -30.0098 -67.6904c-3.87012 -6.37012 -14.8604 -3.34961 -10.9502 5.60059c5.66992 13.0098 11.3701 26.0098 17.0898 39c13.5703 30.7793 27.1396 61.5596 40.7402 92.3301
-c2.54004 5.75 -0.419922 10.5801 -6.66016 10.5898c-14.2402 0.0302734 -28.4805 -0.0498047 -42.7197 0.0498047c-4.26074 0.0302734 -6.84082 -1.76953 -8.54004 -5.65039c-12.8604 -29.3896 -25.8203 -58.7295 -38.75 -88.0791
-c-8.62012 -19.5605 -17.2305 -39.1201 -25.8906 -58.6602c-1.58008 -3.55078 -1.47949 -6.78027 1.20996 -9.73047c11.2207 -12.3096 22.4707 -24.6094 33.6807 -36.9395c2.08984 -2.30078 4.58984 -3.4502 7.71973 -3.4502c45.9395 0.0195312 91.8701 0.00976562 137.81 0
-c3.86035 0 6.37988 1.78027 7.91992 5.29004c10.3203 23.5 20.7607 46.9395 30.9502 70.5c2.08984 4.83008 5.21973 6.75 10.3398 6.71973c23.0205 -0.110352 46.0303 -0.0400391 69.0508 -0.0498047c6.0791 0 10.5293 2.72949 12.9697 8.24023
-c15.2598 34.4795 30.4502 68.9893 45.6299 103.5z" />
-    <glyph glyph-name="replyd" unicode="&#xf3e6;" 
-d="M320 -32h-192c-70.4004 0 -128 57.5996 -128 128v192c0 70.4004 57.5996 128 128 128h192c70.4004 0 128 -57.5996 128 -128v-192c0 -70.4004 -57.5996 -128 -128 -128zM193.4 174.8c-6.10059 2 -11.6006 3.10059 -16.4004 3.10059
-c-7.2002 0 -13.5 -1.90039 -18.9004 -5.60059c-5.39941 -3.7002 -9.59961 -9 -12.7998 -15.7998h-1.09961l-4.2002 18.2998h-28v-138.899h36.0996v89.6992c1.5 5.40039 4.40039 9.80078 8.7002 13.2002c4.2998 3.40039 9.7998 5.10059 16.2002 5.10059
-c4.59961 0 9.7998 -1 15.5996 -3.10059zM308.6 71.4004c-3.19922 -2.40039 -7.69922 -4.80078 -13.6992 -7.10059s-12.8008 -3.5 -20.4004 -3.5c-12.2002 0 -21.0996 3 -26.5 8.90039c-5.5 5.89941 -8.5 14.7002 -9 26.3994h83.2998
-c0.900391 4.80078 1.60059 9.40039 2.10059 13.9004c0.5 4.40039 0.699219 8.59961 0.699219 12.5c0 10.7002 -1.59961 19.7002 -4.69922 26.9004c-3.2002 7.19922 -7.30078 13 -12.5 17.1992c-5.2002 4.30078 -11.1006 7.30078 -17.8008 9.2002
-c-6.69922 1.7998 -13.5 2.7998 -20.5996 2.7998c-21.0996 0 -37.5 -6.09961 -49.2002 -18.2998s-17.5 -30.5 -17.5 -55c0 -22.7998 5.2002 -40.7002 15.6006 -53.7002c10.3994 -13.0996 26.7998 -19.5996 49.1992 -19.5996c10.7002 0 20.9004 1.5 30.4004 4.59961
-c9.5 3.10059 17.0996 6.80078 22.5996 11.2002zM286.8 141.7c3.7998 -5.40039 5.2998 -13.1006 4.60059 -23.1006h-51.7002c0.899414 9.40039 3.7002 17 8.2002 22.6006c4.5 5.59961 11.5 8.5 21 8.5c8.19922 0.0996094 14.0996 -2.60059 17.8994 -8zM366.7 139.2
-c4.09961 -3.90039 9.39941 -5.7998 16.0996 -5.7998c7 0 12.6006 1.89941 16.7002 5.7998c4.09961 3.89941 6.09961 9.09961 6.09961 15.5996s-2 11.6006 -6.09961 15.4004s-9.59961 5.7002 -16.7002 5.7002c-6.7002 0 -12 -1.90039 -16.0996 -5.7002
-c-4.10059 -3.7998 -6.10059 -8.90039 -6.10059 -15.4004s2 -11.7002 6.10059 -15.5996zM366.7 38.7002c4.09961 -3.90039 9.39941 -5.7998 16.0996 -5.7998c7 0 12.6006 1.89941 16.7002 5.7998c4.09961 3.89941 6.09961 9.09961 6.09961 15.5996
-s-2 11.6006 -6.09961 15.4004s-9.59961 5.7002 -16.7002 5.7002c-6.7002 0 -12 -1.90039 -16.0996 -5.7002c-4.10059 -3.7998 -6.10059 -8.90039 -6.10059 -15.4004c0 -6.59961 2 -11.7002 6.10059 -15.5996z" />
-    <glyph glyph-name="resolving" unicode="&#xf3e7;" horiz-adv-x="496" 
-d="M281.2 169.8l-197.9 -57.2002l-28.5996 98.6006l188.2 54.0996c52.6992 15.2998 65 8.10059 71.0996 -12.7998l11.2002 -39.2998c5.59961 -19.9004 2 -30.1006 -44 -43.4004zM248.5 440c137 0 248.5 -111.4 247.5 -247.7c0 -136.899 -111.5 -248.3 -248.5 -248.3
-c-46 0 -89.5 12.7002 -126.3 34.7002l-23 80.2002l286.8 -37.3008l48.0996 13.3008l-9.69922 34.1992l-220.4 27.1006l92.5996 26.5996c30.2002 8.7002 42 15.7998 61.4004 33.2002c24.5 23 31.7002 45.5 23.5 73.5996l-10.7002 37.8008
-c-8.7002 30.1992 -25.0996 49.0996 -61.3994 55.1992c-25.1006 3.5 -44.5 2 -79.3008 -8.19922l-221.899 -63.9004c26 108.8 124.2 189.5 241.3 189.5zM38.2998 59.4004c-24 38.3994 -38.2998 83.2998 -38.2998 131.8z" />
-    <glyph glyph-name="rocketchat" unicode="&#xf3e8;" horiz-adv-x="576" 
-d="M284.046 223.2c0.0341797 0 0.0664062 -0.00195312 0.100586 -0.00195312c18.8496 0 34.1592 -15.2754 34.2168 -34.1113c0 -18.8281 -15.2822 -34.1143 -34.1104 -34.1143s-34.1143 15.2861 -34.1143 34.1143c0 18.7588 15.1748 34.002 33.9072 34.1133zM173.596 223.2
-c0.0332031 0 0.0673828 -0.00195312 0.100586 -0.00195312c18.8496 0 34.1592 -15.2754 34.2168 -34.1113c0 -18.8281 -15.2822 -34.1143 -34.1104 -34.1143s-34.1143 15.2861 -34.1143 34.1143c0 18.7588 15.1748 34.002 33.9072 34.1133zM394.519 223.2
-c0.0351562 0 0.0683594 -0.00195312 0.102539 -0.00195312c18.8496 0 34.1592 -15.2754 34.2148 -34.1113c0 -18.8281 -15.2822 -34.1143 -34.1104 -34.1143s-34.1133 15.2861 -34.1133 34.1143c0 18.7588 15.1738 34.002 33.9062 34.1133zM548.326 278.519
-c17.3076 -26.9443 26.0674 -55.9189 26.0898 -86.9395c0 -30.209 -8.76074 -59.2021 -26.0703 -86.125c-15.5342 -24.1934 -37.3076 -45.5703 -64.6787 -63.6191c-52.8672 -34.8164 -122.354 -53.9746 -195.667 -53.9746
-c-0.150391 -0.000976562 0.0664062 -0.00585938 -0.0830078 -0.00585938c-24.5488 0 -48.5908 2.18359 -71.9443 6.36621c-14.8564 -14.2842 -31.3604 -26.5059 -49.5098 -36.5889c-66.7744 -33.3467 -125.6 -20.9092 -155.324 -10.2002
-c-5.54492 1.96289 -9.51758 7.25488 -9.51758 13.4697c0 3.82715 1.50879 7.30469 3.96289 9.87109c20.9619 21.6748 55.6416 64.5342 47.1162 103.49c-33.1426 33.9004 -51.1123 74.7764 -51.1123 118.148c0 42.5605 17.9697 83.4365 51.1123 117.337
-c8.52148 38.9521 -26.1582 81.7939 -47.1201 103.47c-2.45996 2.56738 -3.97656 6.0498 -3.97656 9.88281c0 6.21973 3.98047 11.5156 9.53125 13.4785c29.7246 10.71 88.5488 23.1211 155.302 -10.2109c18.1504 -10.0811 34.6553 -22.3027 49.5107 -36.5879
-c23.3457 4.18066 47.0137 6.35742 71.5547 6.35742c0.15918 0 0.318359 -0.000976562 0.476562 -0.000976562c73.293 0 142.78 -19.1826 195.666 -54c27.3711 -18.0479 49.1465 -39.4453 64.6816 -63.6182zM284.987 38.0996c128.612 0 232.866 67.376 232.866 150.487
-c0 83.0957 -104.274 150.469 -232.866 150.469c-128.593 0 -232.847 -67.3691 -232.847 -150.469c0 -36.2002 19.7861 -69.4375 52.7783 -95.4004c9.28809 -29.5986 3.84668 -62.958 -16.3252 -100.078c-0.960938 -1.79297 -1.8584 -3.58496 -2.8418 -5.35645
-c18.6367 1.63574 36.5557 6.875 52.5225 14.8701c13.5889 7.65625 25.9609 16.8633 37.1377 27.585l20.1289 19.3926c28.2617 -7.47852 57.8037 -11.501 88.4033 -11.501c0.347656 0 0.695312 0 1.04297 0.000976562z" />
-    <glyph glyph-name="rockrms" unicode="&#xf3e9;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM405.4 20.5l-101.5 118.9s73.5996 0.199219 74.1992 0.199219c29.6006 -1.09961 46.6006 33.3008 27.6006 56.1006l-157.7 185.1c-13.2002 17.2998 -40.0996 18.4004 -54.5 0
-l-147.1 -172.5h90l84.2998 98.9004l84.5996 -99.2998h-75.2998c-30.5 0 -44.5 -35.7002 -26.5996 -56.1006l112 -131.3h90z" />
-    <glyph glyph-name="schlix" unicode="&#xf3ea;" 
-d="M350.5 290.3l-54.2002 46.1006l73.4004 39l78.2998 -44.2002zM192 325.9l45.7002 28.1992l34.7002 -34.5996l-55.4004 -29zM126.9 319.3l31.8994 22.1006l17.2002 -28.4004l-36.7002 -22.5zM103.6 231.1l-8.7998 34.8008l29.6006 18.2998l13.0996 -35.2998z
-M82.4004 314.8l23.8994 18.1006l8.90039 -24l-26.7002 -18.3008zM59 241.5l-3.59961 28.4004l22.2998 15.5l6.09961 -28.7002zM28.4004 224.9l20.7998 12.7998l3.2998 -33.4004l-22.9004 -12zM1.40039 180l19.1992 10.2002l0.400391 -38.2002l-21 -8.7998zM60.5 120.7
-l-28.2998 -8.2998l-1.60059 46.7998l25.1006 10.7002zM99 184.8l-31.0996 -13l-5.2002 40.7998l27.3994 14.4004zM123.2 71l-41.6006 -5.90039l-8.09961 63.5l35.2002 10.8008zM151.7 210.9l21.2002 -57.1006l-46.2002 -13.5996l-13.7002 54.0996zM237.4 -19.5996
-l-70.9004 3.2998l-24.2998 95.7998l55.2002 8.59961zM152.5 260.1l42.2002 22.4004l28 -45.9004l-50.7998 -21.2998zM193.5 165.2l61.2998 18.7002l52.7998 -86.6006l-79.7998 -11.2998zM244.9 250.8l67.2998 28.7998l65.5 -65.3994l-88.6006 -26.2002z" />
-    <glyph glyph-name="searchengin" unicode="&#xf3eb;" horiz-adv-x="460" 
-d="M220.6 317.7l-67.1992 -209.3v130.3l-54.7002 -24.2002l54.7002 190.3v-115.3zM137.4 414.4l-1.30078 -4.7002l-15.1992 -52.9004c-40.3008 -15.5 -68.9004 -54.5996 -68.9004 -100.3c0 -52.2998 34.2998 -95.9004 83.4004 -105.5v-53.5996
-c-77.9004 10.5 -135.4 78.1992 -135.4 159c0 80.5 59.7998 147.199 137.4 158zM448.8 -32.7998c-11.2002 -11.2002 -23.0996 -12.2998 -28.5996 -10.5c-5.40039 1.7998 -27.1006 19.8994 -60.4004 44.3994c-33.2998 24.6006 -33.5996 35.7002 -43 56.7002
-c-9.39941 20.9004 -30.3994 42.6006 -57.5 52.4004l-9.7002 14.7002c-24.6992 -16.9004 -53 -26.9004 -81.2998 -28.7002l2.10059 6.59961l15.8994 49.5c46.5 11.9004 80.9004 54 80.9004 104.2c0 54.5 -38.4004 102.1 -96 107.1v52.1006
-c83.2002 -5.10059 148.8 -74.5 148.8 -159.3c0 -33.6006 -11.2002 -64.7002 -29 -90.4004l14.5996 -9.59961c9.80078 -27.1006 31.5 -48 52.4004 -57.4004s32.2002 -9.7002 56.7998 -43c24.6006 -33.2002 42.7002 -54.9004 44.5 -60.2998
-c1.7998 -5.40039 0.700195 -17.2998 -10.5 -28.5zM438.9 -14.9004c0 4.40039 -3.60059 8 -8 8c-4.40039 0 -8 -3.59961 -8 -8c0 -4.39941 3.59961 -8 8 -8c4.39941 0 8 3.60059 8 8z" />
-    <glyph glyph-name="servicestack" unicode="&#xf3ec;" horiz-adv-x="496" 
-d="M88 232c81.7002 -10.2002 273.7 -102.3 304 -232h-392c99.5 8.09961 184.5 137 88 232zM120 384c102.8 -15.5 335.3 -167.9 376 -384h-96c-26.2998 126.7 -150.7 216.7 -233.6 250.4c1.2998 49.6992 -14.1006 98 -46.4004 133.6z" />
-    <glyph glyph-name="sistrix" unicode="&#xf3ee;" 
-d="M448 -1l-30.5 -31l-146 148.1c-28.7002 -23.6992 -65.2002 -37.8994 -105 -37.8994c-91.7998 0 -166.5 75.7998 -166.5 168.899c0 93.1006 74.7002 168.9 166.6 168.801c91.8008 0 166.5 -75.8008 166.5 -168.9c0 -37 -11.8994 -71.2998 -31.8994 -99.2002zM166.5 117.2
-c70.7002 0 128.1 58.2998 128.1 129.899c0 71.6006 -57.5 129.9 -128.1 129.9s-128.1 -58.2998 -128.1 -129.9c0 -71.5996 57.5 -129.899 128.1 -129.899z" />
-    <glyph glyph-name="slack-hash" unicode="&#xf3ef;" 
-d="M446.2 177.6c6.2002 -19 -3.90039 -39.6992 -22.9004 -45.6992l-45.3994 -15.1006l15.6992 -47c6.10059 -19.0996 -3.89941 -39.7002 -23 -45.8994c-21.2998 -6.10059 -40.0996 6 -46 22.8994l-15.6992 47l-93.6006 -31.2998l15.7002 -47
-c6.09961 -19.0996 -3.90039 -39.7002 -23 -45.9004c-21.2998 -6.09961 -40.0996 6 -46 22.9004l-15.7002 47c-45.7002 -15.2002 -50.8994 -17.7998 -57.7002 -16.7998c-14.5 0.599609 -28.5996 10.0996 -33.5996 24.5996c-6.09961 19 4 39.7002 23 45.9004l45.4004 15.0996
-l-30.3008 90c-45.6992 -15.2002 -50.8994 -17.7998 -57.6992 -16.7998c-14.5 0.599609 -28.6006 10.0996 -33.6006 24.5996c-6.09961 19.1006 3.90039 39.7002 23 45.9004l45.2998 15l-15.6992 47c-6.10059 19.0996 3.89941 39.7002 23 45.9004
-c19.0996 6.19922 39.7998 -3.90039 46 -22.9004l15.6992 -47l93.4004 31.2002l-15.7002 47c-6.09961 19.0996 3.90039 39.7002 23 45.8994c19.1006 6.2002 39.7998 -3.89941 46 -22.8994l15.7002 -47l45.4004 15.0996c19.0996 6.2002 39.7998 -3.89941 46 -22.8994
-c6.09961 -19.1006 -3.90039 -39.7002 -23 -45.9004l-45.4004 -15.0996l30.2998 -90l45.4004 15.0996c19.0996 6.2002 39.7998 -3.90039 46 -22.9004zM192.1 130.4l93.5 31.2998l-30.2998 90.2002l-93.5 -31.3008z" />
-    <glyph glyph-name="speakap" unicode="&#xf3f3;" 
-d="M64 56.2197c-79.4102 88.1904 -72 224.36 16.6396 304.141c88.6406 79.7793 224.801 73 304.21 -15.2402c79.4102 -88.2402 72 -224.36 -16.6396 -304.14c-18.7402 -16.8701 64 -43.0908 42 -52.2607c-82.0596 -34.21 -253.91 -35 -346.229 67.5h0.0195312z
-M277.31 267.82l38.5 40.8594c-9.60938 8.89062 -32 26.8301 -76.1699 27.6006c-52.3301 0.910156 -95.8594 -28.2998 -96.7695 -80c-0.200195 -11.3301 0.290039 -36.7207 29.4199 -54.8301c34.46 -21.4199 86.5195 -21.5098 86 -52.2598
-c-0.370117 -21.2803 -26.4199 -25.8105 -38.5898 -25.6006c-3 0.0498047 -30.2305 0.459961 -47.6104 24.6201l-40 -42.6104c28.1602 -27 59 -32.6191 83.4902 -33.0498c10.2295 -0.179688 96.4199 -0.330078 97.8398 81
-c0.280273 15.8105 -2.07031 39.7197 -28.8604 56.5898c-34.3594 21.6406 -85 19.4502 -84.4297 49.75c0.410156 23.25 31 25.3701 37.5303 25.2607c0.429688 0 26.6201 -0.260742 39.6201 -17.3701z" />
-    <glyph glyph-name="staylinked" unicode="&#xf3f5;" horiz-adv-x="440" 
-d="M382.7 155.5l44.2998 -41.2998c3.7002 -3.5 3.2998 -9 -0.700195 -12.2002l-198 -163.9c-9.89941 -7.59961 -17.2998 -0.799805 -17.2998 -0.799805l-208.7 196.101c-3.5 3.5 -3 9 1.2002 12.1992l45.7998 34.9004c4.2002 3.2002 10.4004 3 13.9004 -0.5l151.899 -147.5
-c3.7002 -3.5 10 -3.7002 14.2002 -0.400391l93.2002 74c4.09961 3.2002 4.5 8.7002 0.900391 12.2002l-84 81.2998c-3.60059 3.5 -9.90039 3.7002 -14 0.5l-0.100586 -0.0996094c-4.09961 -3.2002 -10.3994 -3 -14 0.5l-68.0996 64.2998
-c-3.5 3.5 -3.10059 9 1.09961 12.2002l57.2998 43.5996c4.10059 3.2002 10.3008 3 13.8008 -0.5l170 -167.3zM437.2 238.9c3.7002 -3.5 3.39941 -9 -0.700195 -12.2002l-45.7998 -35.7998c-4.10059 -3.2002 -10.4004 -3 -14.1006 0.5l-160.399 159
-c-3.60059 3.5 -9.7998 3.69922 -13.9004 0.5l-92.2002 -71.5c-4.19922 -3.30078 -4.69922 -8.7002 -1.09961 -12.2002l94.5996 -91.7998c3.7002 -3.5 10 -3.60059 14.2002 -0.400391l0.100586 0.0996094c4.19922 3.2002 10.5996 3 14.1992 -0.5l57.1006 -54.3994
-c3.7002 -3.5 3.2998 -9 -0.900391 -12.2002l-7.7002 -6l0.300781 -0.299805l-50.2002 -38.7998c-4.2002 -3.30078 -10.6006 -3.10059 -14.2998 0.399414l-171.7 165.101l-42.2998 41.6992c-3.60059 3.5 -3 9 1.19922 12.2002l206.801 162.101
-c8.2998 6.59961 14.7998 2.2998 16.2998 1.09961z" />
-    <glyph glyph-name="steam-symbol" unicode="&#xf3f6;" 
-d="M395.5 270.5c0 -33.7998 -27.5 -61 -61 -61c-33.7998 0 -61 27.2998 -61 61s27.2998 61 61 61c33.5 0 61 -27.2002 61 -61zM448 270.3c0 -63 -51 -113.8 -113.7 -113.8l-109.3 -79.7998c-4 -43 -40.5 -76.7998 -84.5 -76.7998c-40.5 0 -74.7002 28.7998 -83 67
-l-57.5 23.0996v107.3l97.2002 -39.2998c15.0996 9.2002 32.2002 13.2998 52 11.5l71 101.7c0.5 62.2998 51.5 112.8 114 112.8c62.7998 0 113.8 -51 113.8 -113.7zM203 85c0 34.7002 -27.7998 62.5 -62.5 62.5c-4.5 0 -9 -0.5 -13.5 -1.5l26 -10.5
-c25.5 -10.2002 38 -39 27.7002 -64.5c-10.2002 -25.5 -39.2002 -38 -64.7002 -27.5c-10.2002 4 -20.5 8.2998 -30.7002 12.2002c10.5 -19.7002 31.2002 -33.2002 55.2002 -33.2002c34.7002 0 62.5 27.7998 62.5 62.5zM410.5 270.3c0 42 -34.2998 76.2002 -76.2002 76.2002
-c-42.2998 0 -76.5 -34.2002 -76.5 -76.2002c0 -42.2002 34.2998 -76.2002 76.5 -76.2002c41.9004 -0.0996094 76.2002 33.9004 76.2002 76.2002z" />
-    <glyph glyph-name="sticker-mule" unicode="&#xf3f7;" horiz-adv-x="576" 
-d="M561.7 248.4c-1.2998 -0.300781 0.299805 0 0 0zM555.5 325.8c20.2002 -50.0996 20.5996 -45.2002 20.5996 -52.8994c0 -7.5 -4.09961 -11 -7.19922 -16.5c-1.5 -3 -4.60059 -7.5 -7.2002 -8c-0.400391 0 -3 -0.5 -13.4004 -2.5c-7.2002 -1 -13.3994 4.5 -14.8994 9.5
-c-1.60059 4.69922 2.7998 10.0996 -11.8008 22.8994c-10.2998 10 -21.0996 11.2998 -31.8994 17c-9.7998 5.7002 -11.9004 -1 -18 -8c-18 -22.8994 -34 -46.8994 -52 -69.7998c-11.7998 -15 -24.2002 -30.4004 -33.5 -47.4004
-c-3.90039 -6.7998 -9.5 -28.0996 -10.2998 -29.8994c-6.2002 -17.7002 -5.5 -25.7998 -16.5 -68.2998c-3.10059 -10 -5.7002 -21.4004 -8.7002 -32.4004c-2.2002 -6.7998 -7.40039 -49.2998 -0.5 -59.4004c2.09961 -3.5 8.7002 -4.5 11.2998 -8
-c0.0996094 -0.0996094 9.59961 -18.1992 9.2998 -20c0 -6.09961 -9.39941 -5.59961 -11.2998 -6.5c-4.7998 -2.89941 -3.7998 -5.89941 -6.40039 -7.39941c-5.89941 -2.90039 -32.0996 -3.2002 -36.5 0.5c-4.09961 3 -2.19922 11.8994 -1.5 15
-c2.2002 15 -2.5 7.89941 -9.7998 11.5c-3.09961 1.5 -4.09961 5.5 -4.59961 10c-0.5 1.5 -1 2.5 -1.5 3.5c-1.7002 10.7002 6.7998 33.5996 8.2002 43.3994c4.89941 23.7002 -0.700195 37.2002 1.5 46.9004c3.69922 16.2002 4.09961 3.5 4.09961 29.9004
-c-1.40039 25.8994 3.2998 36.8994 0.5 38.8994c-14.7998 0 -64.2998 -10.7002 -112.2 -2c-46.0996 8.90039 -59.3994 29 -65.3994 30.9004c-10.3008 4.5 -23.2002 -0.5 -27.3008 -7c-0.0996094 -0.100586 -35 -70.6006 -39.5996 -87.7998
-c-6.2002 -20.5 -0.5 -47.4004 4.09961 -66.8008c0 -0.0996094 4.5 -14.5996 10.3008 -19.5c2.09961 -1.5 5.09961 -2.5 7.19922 -4.5c2.80078 -2.69922 9.40039 -15.1992 9.80078 -16c2.59961 -4.5 3.59961 -8 -1.5 -10.5c-3.60059 -2 -9.30078 -2.5 -14.4004 -2.5
-c-2.59961 -0.5 -1.5 -3.5 -3.09961 -5c-2.90039 -2.7998 -20.7002 -6.09961 -29.9004 -2.5c-2.59961 1 -5.7002 3 -6.2002 5c-1.5 4 2.10059 9 -1 12.5c-4.5 2.90039 -13.0996 2 -17 12c-2.2002 5.40039 -2.59961 7.60059 -2.59961 49.4004
-c0 9.7002 -5.90039 38.7002 -8.2002 46.9004c-1.5 5.5 -1.5 11.5 0 16c0.299805 0.899414 4.09961 4.59961 4.09961 13c-1 1.5 -4.59961 0.5 -5.09961 1.5c-10.4004 80.5996 -5.90039 79 -7.7002 98.2998c-1.5 16 -10.8994 43.8994 -6.7002 64.2998
-c0.5 2.40039 3.40039 21 24.2002 38.9004c31 26.6992 48.4004 38.2998 159 11.5c1.10059 -0.400391 66.2998 -21.1006 110.7 9c15.5 11.2998 28.7998 11.2998 35.5 16c0.0996094 0.0996094 61.7002 52.0996 87 65.2998c47.2002 29.3994 69.9004 16.7002 75.0996 18
-c4.7002 1 13.4004 25.7998 17 25.7998c5.5 0 1.60059 -20.2002 3.60059 -25.9004c0.5 -2 3.59961 -5 6.2002 -5c2.2998 0 1.69922 0.800781 10.2998 5c8.39941 5.40039 14.8994 17.6006 20.5996 17c11.7002 -1.59961 -19 -41.5996 -19 -46.8994
-c0 -2 0.200195 -0.799805 4.60059 -9.5c2.59961 -5.5 4.59961 -13.5 6.19922 -20c8.30078 -29.7002 5.7002 -14.6006 13.4004 -36.9004z" />
-    <glyph glyph-name="studiovinari" unicode="&#xf3f8;" horiz-adv-x="512" 
-d="M480.3 260.3l4.2002 -28v-28l-25.0996 -44.0996l-39.8008 -78.4004l-56.0996 -67.5l-79.0996 -37.7998l-17.7002 -24.5l-7.7002 -12l-9.59961 -4s17.2998 63.5996 19.3994 63.5996c2.10059 0 20.2998 -0.699219 20.2998 -0.699219l66.7002 38.5996l-92.5 -26.0996
-l-55.8994 -36.8008l-22.8008 -28l-6.59961 -1.39941l20.7998 73.5996l6.90039 5.5l20.7002 -12.8994l88.2998 45.1992l56.7998 51.5l14.7998 68.4004l-125.399 -23.2998l15.1992 18.2002l-173.399 53.2998l81.8994 10.5l-166 122.899l114.9 -18.0996l-101.3 108
-l252.899 -126.6l-31.5 38l124.4 -74.4004l-143.3 99l18.7002 -38.4004l-49.6006 18.1006l-45.5 84.2998l194.601 -122l-42.9004 55.7998l108 -96.3994l12 8.89941l-21 16.4004l4.2002 37.7998l37.7998 10.4004l29.2002 -24.7002l11.5 -4.2002l-7 -6.2002l8.5 -12
-l-13.1006 -7.39941l-10.2998 -20.2002z" />
-    <glyph glyph-name="supple" unicode="&#xf3f9;" horiz-adv-x="640" 
-d="M640 185.5c0 -64.0996 -109 -116.1 -243.5 -116.1c-24.7998 0 -48.5996 1.7998 -71.0996 5c7.69922 -0.400391 15.5 -0.600586 23.3994 -0.600586c134.5 0 243.5 56.9004 243.5 127.101c0 29.3994 -19.0996 56.3994 -51.2002 78
-c60 -21.1006 98.9004 -55.1006 98.9004 -93.4004zM47.7002 220.1c0.0996094 -29.3994 19.2998 -56.5 51.5996 -78c-60.2002 21 -99.2002 55 -99.2998 93.3008c-0.0996094 64.0996 108.8 116.3 243.3 116.699c24.7002 0 48.5 -1.69922 71 -4.89941
-c-7.7002 0.299805 -15.3994 0.5 -23.2998 0.5c-134.5 -0.299805 -243.4 -57.4004 -243.3 -127.601zM107.9 180.2l8.7998 10.8994s8.7998 -10.0996 20.7002 -10.0996c6.5 0 12.2998 3.5 12.2998 10.0996c0 14.5 -40.2002 13.3008 -40.2002 39.9004
-c0 13.9004 12 24.0996 28.5 24.0996c10 0 25.4004 -4.69922 25.4004 -16.7998v-7.89941h-14.2002v3.89941c0 4 -5.60059 6.60059 -11.2998 6.60059c-7.2002 0 -12.5 -3.7002 -12.5 -9.10059c0 -14.5996 40.1992 -11.7002 40.1992 -39.7002
-c0 -13.5996 -10.5 -25.0996 -28.3994 -25.0996c-18.7998 0 -29.2998 13.2002 -29.2998 13.2002zM228.7 253.8h15.7002v-55c0 -18.8994 -13.3008 -31.8994 -33.4004 -31.8994c-20.2998 0 -33.7002 13 -33.7002 31.8994v55h15.7998v-54.5
-c0 -11.2002 7.10059 -17.7002 17.8008 -17.7002c10.6992 0 17.7998 6.5 17.7998 17.8008v54.3994zM263.1 168.4v72h-7.7998v13.3994h39.1006c16 0 27.1992 -11.2002 27.1992 -27.7998s-11.1992 -28.0996 -27.1992 -28.0996h-15.5v-29.5h-15.8008zM278.9 211.4h12.5996
-c8.90039 0 14 5.7998 14 14.6992c0 8.7002 -5 14.4004 -13.7002 14.4004h-12.8994v-29.0996zM335.9 168.4v72h-7.80078v13.3994h39.1006c16 0 27.2002 -11.2002 27.2002 -27.7998s-11.2002 -28.0996 -27.2002 -28.0996h-15.5v-29.5h-15.7998zM351.6 211.4h12.6006
-c9 0 14 5.7998 14 14.6992c0 8.7002 -5 14.4004 -13.7002 14.4004h-12.9004v-29.0996zM408.7 176.6h0.0996094v61.2002c0 1.60059 -0.899414 2.60059 -2.59961 2.60059h-5.2002v13.3994h15.4004c5.7998 0 8.19922 -2.5 8.19922 -8.2002v-61.1992
-c0 -1.60059 0.900391 -2.60059 2.60059 -2.60059h18.5996c1.60059 0 2.60059 0.900391 2.60059 2.60059v5.19922h14.2998v-13c0 -5.7998 -2.40039 -8.19922 -8.2002 -8.19922h-37.5996c-5.80078 0 -8.2002 2.39941 -8.2002 8.19922zM472.1 176.6h-0.0996094v63.9004h-7.7998
-v13.4004h51.5996c5.7002 0 8.2002 -2.5 8.2002 -8.2002v-13h-14.2002v5.2002c0 1.59961 -0.899414 2.59961 -2.59961 2.59961h-19.2002v-22.4004h27.7002v-13.3994h-27.7002v-20.2998c0 -1.60059 0.900391 -2.60059 2.59961 -2.60059h19.7002
-c1.60059 0 2.60059 0.900391 2.60059 2.60059v5.19922h14.2998v-13c0 -5.7998 -2.5 -8.19922 -8.2002 -8.19922h-38.7002c-5.7998 0 -8.2002 2.39941 -8.2002 8.19922zM531 252.6h-2.7002v1.2002h7v-1.2002h-2.7002v-5.89941h-1.59961v5.89941zM536.7 253.8h2.39941
-l2.10059 -5.09961l2.09961 5.09961h2.2998v-7.09961h-1.5v5.7002l-2.2998 -5.7002h-1.2998l-2.2998 5.7002v-5.7002h-1.5v7.09961z" />
-    <glyph glyph-name="telegram-plane" unicode="&#xf3fe;" 
-d="M446.7 349.4l-67.6006 -318.801c-5.09961 -22.5 -18.3994 -28.0996 -37.2998 -17.5l-103 75.9004l-49.7002 -47.7998c-5.5 -5.5 -10.0996 -10.1006 -20.6992 -10.1006l7.39941 104.9l190.9 172.5c8.2998 7.40039 -1.7998 11.5 -12.9004 4.09961l-236 -148.6
-l-101.6 31.7998c-22.1006 6.90039 -22.5 22.1006 4.59961 32.7002l397.4 153.1c18.3994 6.90039 34.5 -4.09961 28.5 -32.1992z" />
-    <glyph glyph-name="uber" unicode="&#xf402;" 
-d="M414.1 416c18.7002 0 33.9004 -15.2002 33.8008 -33.9004v-380.199c0 -18.7002 -15.2002 -33.9004 -33.9004 -33.9004h-380.1c-18.7002 0 -33.9004 15.2002 -33.9004 34v380.1c0 18.7002 15.2002 33.9004 33.9004 33.9004h380.199zM237.6 56.9004
-c74.6006 7.5 129 74.0996 121.5 148.6c-7 69.4004 -65.3994 122.2 -135.1 122.2s-128.1 -52.7998 -135.1 -122.2h94.3994v20.4004c0 3.7998 3.10059 6.7998 6.7998 6.7998h67.9004c3.7998 0 6.7998 -3.10059 6.7998 -6.7998v-67.9004
-c0 -3.7998 -3.09961 -6.7998 -6.7998 -6.7998h-67.9004c-3.7998 0 -6.7998 3.09961 -6.7998 6.7998v20.4004h-94.3994c7.5 -74.6006 74.0996 -129 148.699 -121.5z" />
-    <glyph glyph-name="uikit" unicode="&#xf403;" 
-d="M443.9 320v-256l-225.9 -128l-218 128v214.3l87.5996 -45.0996v-117l133.5 -75.5l135.801 75.5v151l-101.101 57.5996l87.6006 53.1006zM308.6 398.9l-87.3994 -53l-86 47.2998l88.5996 54.7998z" />
-    <glyph glyph-name="uniregistry" unicode="&#xf404;" horiz-adv-x="384" 
-d="M192 -32c-39.5 0 -76.2002 11.7998 -106.7 32.2002h213.5c-30.5996 -20.4004 -67.2998 -32.2002 -106.8 -32.2002zM102.9 161.1c0 -2.5 0.0996094 -5 0.299805 -7.39941h-103.101c-0.0996094 2.39941 -0.0996094 4.89941 -0.0996094 7.39941v12.4004h102.9v-12.4004z
-M123.4 104.1c8.89941 -10.5996 20.0996 -19.0996 33 -24.7998h-138.301c-3.7998 8 -7 16.2998 -9.59961 24.7998h114.9zM105.7 138.8c2 -7.89941 5.2002 -15.3994 9.2002 -22.2998h-109.7c-1.7002 7.2998 -3 14.7002 -3.90039 22.2998h104.4zM102.9 208.1v-17.2998h-102.9
-v17.2998h102.9zM102.9 381.3v-4.89941h-102.9v4.89941h102.9zM102.9 416v-2.5h-102.9v2.5h102.9zM102.9 346.7v-7.40039h-102.9v7.40039h102.9zM102.9 242.7v-14.7998h-102.9v14.7998h102.9zM102.9 312v-9.90039h-102.9v9.90039h102.9zM102.9 277.4v-12.4004h-102.9v12.4004
-h102.9zM269.1 116.5c4 6.90039 7.10059 14.4004 9.2002 22.2998h104.4c-0.799805 -7.59961 -2.10059 -15 -3.90039 -22.2998h-109.7zM281.1 302.2v9.7998h102.9v-9.7998h-102.9zM281.1 265v12.4004h102.9v-12.4004h-102.9zM281.1 339.3v7.40039h102.9v-7.40039h-102.9z
-M281.1 416h102.9v-2.5h-102.9v2.5zM78.0996 5.09961c-11.7998 8.7002 -23.5996 18.7002 -33.1992 29.7002h293.1c-9.5 -11.0996 -20.4004 -21 -32.2002 -29.7002h-227.7zM281.1 376.4v4.89941h102.9v-4.89941h-102.9zM281.1 227.9v14.7998h102.9v-14.7998h-102.9z
-M38.7998 42.2998c-6.59961 8.5 -10.5996 17.6006 -15.7998 27.2002h338.9c-5.2002 -9.59961 -11.1006 -18.7002 -17.8008 -27.2002h-305.3zM227.6 79.4004c12.8008 5.59961 24.1006 14.0996 32.9004 24.7998h115c-2.7002 -8.60059 -4.7998 -16.7998 -8.5 -24.7998h-139.4z
-M281.1 161.1v12.4004h102.9v-12.4004c0 -2.5 -0.0996094 -4.89941 -0.200195 -7.39941h-103.1c0.299805 2.39941 0.399414 4.89941 0.399414 7.39941zM281.1 190.8v17.2998h102.9v-17.2998h-102.9z" />
-    <glyph glyph-name="untappd" unicode="&#xf405;" horiz-adv-x="640" 
-d="M401.3 398.1c-79.7998 -160.1 -84.5996 -152.5 -87.8994 -173.199l-5.2002 -32.8008c-1.90039 -12 -6.60059 -23.5 -13.7002 -33.3994l-148.9 -207.8c-7.59961 -10.6006 -20.3994 -16.2002 -33.3994 -14.6006c-40.2998 5 -77.7998 32.2002 -95.2998 68.5
-c-5.7002 11.7998 -4.5 25.7998 3.09961 36.4004l148.9 207.899c7.09961 9.90039 16.3994 18 27.1992 23.7002l29.3008 15.5c18.5 9.7998 9.69922 11.9004 135.6 138.9c1 4.7998 1 7.2998 3.59961 8c3 0.700195 6.60059 1 6.30078 4.59961l-0.400391 4.60059
-c-0.200195 1.89941 1.2998 3.59961 3.2002 3.59961c4.5 0.0996094 13.2002 -1.2002 25.5996 -10c12.2998 -8.90039 16.4004 -16.7998 17.7002 -21.0996c0.599609 -1.80078 -0.599609 -3.7002 -2.40039 -4.2002l-4.5 -1.10059
-c-3.39941 -0.899414 -2.5 -4.39941 -2.2998 -7.39941c0.100586 -2.7998 -2.2998 -3.60059 -6.5 -6.10059zM230.1 411.6c-3.19922 0.800781 -8.19922 1.2002 -6.7998 5.40039c1.2998 4.2998 5.40039 12.2002 17.7002 21.0996c12.4004 8.90039 21.0996 10.1006 25.5996 10
-c4.2002 -0.0996094 3.10059 -4.89941 2.80078 -8.19922c-0.300781 -3.60059 3.2998 -3.80078 6.2998 -4.60059c2.59961 -0.700195 2.59961 -3.2998 3.59961 -8c9.10059 -9.2002 17.6006 -17.8994 25.6006 -26.0996c1.2998 -1.40039 1.19922 -3.5 -0.100586 -4.90039
-c-15.8994 -16.3994 -29.2998 -30.5996 -40.5 -42.5996c-1 -1 -2.59961 -0.799805 -3.2998 0.5c-6.90039 13.5 -14.2998 28.0996 -22.2002 44c-4.2998 2.5 -6.59961 3.2998 -6.39941 6c0.199219 3 1.09961 6.5 -2.30078 7.39941zM620 41.2998
-c7.7002 -10.7002 8.7998 -24.7002 3.40039 -36.5996c-17.7002 -36.6006 -55.4004 -63.7002 -95.7002 -68.6006c-12.9004 -1.5 -25.5 4.10059 -33.1006 14.7002l-148.899 207.9c-7.10059 9.89941 -11.7998 21.3994 -13.7002 33.3994
-c-1.59961 9.80078 -2 19.1006 -0.299805 29.8008c1.89941 12 2.7002 6 49 94.7998c0.700195 1.39941 2.59961 1.59961 3.59961 0.5c16.2998 -18 19.2998 -23 30.5 -28.9004c29.7998 -15.7002 43.2002 -20.5996 56.4004 -39.0996z" />
-    <glyph glyph-name="ussunnah" unicode="&#xf407;" horiz-adv-x="512" 
-d="M156.8 162.9l5.7002 -14.4004h-8.2002c-1.2998 3.2002 -3.09961 7.7002 -3.7998 9.5c-2.5 6.2998 -1.09961 8.40039 0 10c1.90039 2.7002 3.2002 4.40039 3.59961 5.2002c0 -2.2002 0.800781 -5.7002 2.7002 -10.2998zM454.1 144.1
-c-2.09961 -13.7998 -5.69922 -27.0996 -10.5 -39.6992l43 -23.4004l-44.7998 18.7998c-5.2998 -13.2002 -12 -25.5996 -19.8994 -37.2002l34.1992 -30.1992l-36.7998 26.3994c-8.39941 -11.7998 -18 -22.5996 -28.7002 -32.2998l24.9004 -34.7002l-28.0996 31.7998
-c-11 -9.59961 -23.1006 -18 -36.1006 -25.0996l15.7002 -37.2002l-19.2998 35.2998c-13.1006 -6.7998 -27 -12.0996 -41.6006 -15.8994l6.7002 -38.4004l-10.5 37.4004c-14.2998 -3.40039 -29.2002 -5.2998 -44.5 -5.40039l-1.7998 -38.2998l-1.90039 38.4004
-c-15.2998 0.0996094 -30.1992 2 -44.5 5.2998l-10.5996 -37.2998l6.7002 38.1992c-14.6006 3.7002 -28.6006 9.10059 -41.7002 15.8008l-19.2002 -35.1006l15.6006 37c-13 7 -25.2002 15.4004 -36.2002 25.1006l-27.9004 -31.6006l24.7002 34.4004
-c-10.7002 9.7002 -20.4004 20.5 -28.7998 32.2998l-36.5 -26.2002l33.8994 29.9004c-7.89941 11.5996 -14.5996 24.0996 -20 37.2998l-44.3994 -18.7002l42.5996 23.2002c-4.7998 12.7002 -8.39941 26.0996 -10.5 39.9004l-51 -9l50.2998 14.1992
-c-1.09961 8.5 -1.69922 17.1006 -1.69922 25.9004c0 4.7002 0.199219 9.40039 0.5 14.0996l-55.4004 2.90039l56 2.7998c1.2998 13.1006 3.7998 25.7998 7.5 38.1006l-57.0996 16.0996l58.8994 -10.4004c4 12 9.10059 23.5 15.2002 34.4004l-55.0996 30l58.2998 -24.5996
-c6.2998 10.5996 13.5 20.3994 21.5996 29.5996l-49.5 43.5996l53.9004 -38.6992c8.09961 8.59961 17 16.5 26.5996 23.5996l-40 55.5996l45.6006 -51.5996c9.5 6.59961 19.6992 12.2998 30.2998 17.2002l-27.2998 64.8994l33.7998 -62.0996
-c10.5 4.40039 21.3994 7.90039 32.7002 10.4004l-12.4004 70.6992l19.5 -69.1992c11 2.09961 22.2998 3.19922 33.7998 3.39941l3.7002 72.2002l3.59961 -72.2002c11.5 -0.200195 22.8008 -1.39941 33.8008 -3.5l19.5996 69.2998l-12.4004 -70.6992
-c11.3008 -2.60059 22.2002 -6.10059 32.6006 -10.5l33.8994 62.1992l-27.3994 -65.0996c10.5996 -4.90039 20.7002 -10.7002 30.2002 -17.2002l45.7998 51.7998l-40.1006 -55.8994c9.5 -7.10059 18.4004 -15 26.5 -23.6006l54.2002 38.9004l-49.7002 -43.9004
-c8 -9.09961 15.2002 -18.8994 21.5 -29.3994l58.7002 24.7002l-55.5 -30.2002c6.10059 -10.9004 11.1006 -22.2998 15.1006 -34.2998l59.2998 10.3994l-57.5 -16.2002c3.7002 -12.1992 6.2002 -24.8994 7.5 -37.8994l56.2998 -2.7002l-56 -2.7998
-c0.299805 -4.60059 0.5 -9.2998 0.5 -14.1006c0 -8.69922 -0.599609 -17.2998 -1.59961 -25.7998l50.6992 -14.2998zM432.3 175.1c0 97.5 -79 176.5 -176.5 176.5s-176.5 -79 -176.5 -176.5s79 -176.5 176.5 -176.5s176.5 79 176.5 176.5zM408.3 175.1
-c0 -84.2998 -68.2998 -152.6 -152.6 -152.6s-152.601 68.2998 -152.601 152.6c0 84.3008 68.3008 152.601 152.601 152.601s152.6 -68.2998 152.6 -152.601zM195 207c0 -2.09961 1.2998 -3.7998 3.59961 -5.09961c3.30078 -1.90039 6.2002 -4.60059 8.2002 -8.2002
-c2.7998 5.7002 4.2998 9.5 4.2998 11.2002c0 2.19922 -1.09961 4.39941 -3.19922 7c-2.10059 2.5 -3.2002 5.19922 -3.30078 7.69922c-6.5 -6.7998 -9.59961 -10.8994 -9.59961 -12.5996zM154.3 226c0 -2.09961 1.2998 -3.7998 3.60059 -5.09961
-c3.5 -1.90039 6.19922 -4.60059 8.19922 -8.2002c2.80078 5.7002 4.30078 9.5 4.30078 11.2002c0 2.19922 -1.10059 4.39941 -3.2002 7c-2.10059 2.5 -3.2002 5.19922 -3.2998 7.69922c-6.5 -6.7998 -9.60059 -10.8994 -9.60059 -12.5996zM135.3 226
-c0 -2.09961 1.2998 -3.7998 3.60059 -5.09961c3.2998 -1.90039 6.19922 -4.60059 8.19922 -8.2002c2.80078 5.7002 4.30078 9.5 4.30078 11.2002c0 2.19922 -1.10059 4.39941 -3.2002 7c-2.10059 2.5 -3.2002 5.19922 -3.2998 7.69922
-c-6.40039 -6.7998 -9.60059 -10.8994 -9.60059 -12.5996zM340.2 138.1c-8.40039 3 -8.7002 6.80078 -8.7002 15.6006v112.3c-8.2002 -12.5 -14.2002 -18.5996 -18 -18.5996c6.2998 -14.4004 9.5 -23.9004 9.5 -28.3008v-64.2998c0 -2.2002 -2.2002 -6.5 -4.7002 -6.5h-18
-c-2.7998 7.5 -10.2002 26.9004 -15.2998 40.2998c-2 -2.5 -7.2002 -9.19922 -10.7002 -13.6992c2.40039 -1.60059 4.10059 -3.60059 5.2002 -6.30078c2.59961 -6.69922 6.40039 -16.5 7.90039 -20.1992h-9.2002c-3.90039 10.3994 -9.60059 25.3994 -11.7998 31.0996
-c-2 -2.5 -7.2002 -9.2002 -10.7002 -13.7002c2.39941 -1.59961 4.09961 -3.59961 5.2002 -6.2998c0.799805 -2 2.7998 -7.2998 4.2998 -10.9004h-9.2002c-1.5 4.10059 -5.59961 14.6006 -8.40039 22c-2 -2.5 -7.19922 -9.19922 -10.6992 -13.6992
-c2.5 -1.60059 4.2998 -3.60059 5.19922 -6.30078c0.200195 -0.599609 0.5 -1.39941 0.600586 -1.69922h-17.7002c-4.59961 13.8994 -11.4004 27.6992 -11.4004 34.0996c0 2.2002 0.300781 5.09961 1.10059 8.2002c-8.7998 -10.7998 -14 -15.9004 -14 -25
-c0 -7.5 10.3994 -28.2998 10.3994 -33.2998c0 -1.7002 -0.5 -3.30078 -1.39941 -4.90039c-9.60059 12.7002 -15.5 20.7002 -18.7998 20.7002h-12l-11.2002 28c-3.7998 9.59961 -5.7002 16 -5.7002 18.7998c0 3.7998 0.5 7.7002 1.7002 12.2002
-c-1 -1.2998 -3.7002 -4.7002 -5.5 -7.10059c-0.799805 2.10059 -3.10059 7.7002 -4.60059 11.5c-2.09961 -2.5 -7.5 -9.09961 -11.1992 -13.5996c0.899414 -2.2998 3.2998 -8.09961 4.89941 -12.2002c-2.5 -3.2998 -9.09961 -11.7998 -13.5996 -17.7002
-c-4 -5.2998 -5.7998 -13.2998 -2.7002 -21.7998c2.5 -6.7002 2 -7.89941 -1.7002 -14.0996h61.7002c5.5 0 14.2998 -14 15.5 -22c13.2002 16 15.4004 19.5996 16.7998 21.5996h107c3.90039 0 7.2002 1.90039 9.90039 5.7998zM360.3 164.7v101.6
-c-9 -12.5 -15.8994 -18.5996 -20.7002 -18.5996c7.10059 -14.4004 10.7002 -23.9004 10.7002 -28.2998v-66.3008c0 -17.5 8.60059 -20.3994 24 -20.3994c8.10059 0 12.5 0.799805 13.7002 2.7002c-4.2998 1.59961 -7.59961 2.5 -9.90039 3.2998
-c-8.09961 3.2002 -17.7998 7.39941 -17.7998 26z" />
-    <glyph glyph-name="vaadin" unicode="&#xf408;" 
-d="M224.5 307.3c1.5 17.6006 4.90039 52.7002 49.7998 52.7002h98.6006c20.6992 0 32.0996 7.7998 32.0996 21.5996v12.3008c0 12.1992 9.2998 22.0996 21.5 22.0996s21.5 -9.90039 21.5 -22.0996v-36.5c0 -42.9004 -21.5 -62 -66.7998 -62h-100.5
-c-30.1006 0 -33 -14.7002 -33 -27.1006c0 -1.2998 -0.100586 -2.5 -0.200195 -3.7002c-0.700195 -12.2998 -10.9004 -22.1992 -23.4004 -22.1992s-22.6992 9.7998 -23.3994 22.1992c-0.100586 1.2002 -0.200195 2.40039 -0.200195 3.7002c0 12.2998 -3 27.1006 -33 27.1006
-h-100.7c-45.2998 0 -66.7998 19.0996 -66.7998 62v36.5c0 12.1992 9.40039 22.0996 21.5996 22.0996c12.2002 0 21.5 -9.90039 21.5 -22.0996v-12.3008c0 -13.7998 11.4004 -21.5996 32.1006 -21.5996h98.5996c44.7998 0 48.2998 -35.0996 49.7998 -52.7002h0.900391z
-M224 -8c-11.5 0 -21.4004 7 -25.7002 16.2998c-1.09961 1.7998 -97.0996 169.5 -98.2002 171.4c-11.8994 19.7002 3.2002 44.2998 27.2002 44.2998c13.9004 0 23.4004 -6.40039 29.7998 -20.2998l66.9004 -117.7l66.9004 117.7c6.5 13.8994 15.8994 20.2998 29.7998 20.2998
-c24 0 39.0996 -24.7002 27.2002 -44.2998c-1.10059 -1.7998 -97.1006 -169.601 -98.2002 -171.4c-4.2998 -9.2998 -14.2002 -16.2998 -25.7002 -16.2998z" />
-    <glyph glyph-name="viber" unicode="&#xf409;" horiz-adv-x="512" 
-d="M444 398.1c42.2002 -36.6992 65.5996 -117.899 49.7998 -246.5c-15.2002 -124.6 -109.1 -136.6 -125.7 -142c-7.19922 -2.2998 -70.2998 -18.0996 -152.5 -11.1992c-9.09961 -10.5 -21.0996 -24.3008 -29.7998 -33.7002
-c-15.8994 -17.1006 -25.7002 -33 -42.2998 -27.7998c-13.7998 4.19922 -13 25.0996 -13 25.0996l0.0996094 51.5996h-0.0996094c-120.1 33.8008 -118.4 158.4 -117 224.9s14.2998 120.2 50.9004 156.8c65.7998 60.4004 200.899 52.2998 200.899 52.2998
-c114.601 -0.5 166 -37.7998 178.7 -49.5zM457.9 161c13.2998 107.3 -4.90039 180.5 -40.6006 211.1c-10.7998 9.80078 -57.2002 39 -154.1 39.4004c0 0 -114.7 7.5 -170.4 -43c-31 -30.5996 -41.5 -76.0996 -42.5996 -131.6
-c-1.10059 -55.5 -7.10059 -161.601 94.7002 -189.801c-0.100586 0 -0.100586 0 0 0c0 0 -0.400391 -78.7998 -0.400391 -85.6992c-0.0996094 -10.5 5.7002 -11 11 -5.7002c16.2002 16.2998 68.2002 79 68.2002 79c69.7002 -4.5 125.2 9.2998 131.2 11.2002
-c14 4.5 90.0996 11.0996 103 115.1zM318.9 241.8c0.399414 -8.59961 -12.5 -9.2002 -12.9004 -0.599609c-1.09961 22 -11.4004 32.7002 -32.5996 33.8994c-8.60059 0.5 -7.80078 13.4004 0.699219 12.9004c27.9004 -1.5 43.4004 -17.5 44.8008 -46.2002zM339.2 230.5
-c1 42.4004 -25.5 75.5996 -75.7998 79.2998c-8.5 0.600586 -7.60059 13.5 0.899414 12.9004c58 -4.2002 88.9004 -44.1006 87.7998 -92.5c-0.0996094 -8.60059 -13.0996 -8.2002 -12.8994 0.299805zM386.2 217.1c0.0996094 -8.59961 -12.9004 -8.69922 -12.9004 -0.0996094
-c-0.599609 81.5 -54.8994 125.9 -120.8 126.4c-8.5 0.0996094 -8.5 12.8994 0 12.8994c73.7002 -0.5 133 -51.3994 133.7 -139.2zM374.9 119v-0.200195c-10.8008 -19 -31 -40 -51.8008 -33.2998l-0.199219 0.299805c-21.1006 5.90039 -70.8008 31.5 -102.2 56.5
-c-16.2002 12.7998 -31 27.9004 -42.4004 42.4004c-10.2998 12.8994 -20.7002 28.2002 -30.7998 46.5996c-21.2998 38.5 -26 55.7002 -26 55.7002c-6.7002 20.7998 14.2002 41 33.2998 51.7998h0.200195c9.2002 4.7998 18 3.2002 23.9004 -3.89941
-c0 0 12.3994 -14.8008 17.6992 -22.1006c5 -6.7998 11.7002 -17.7002 15.2002 -23.7998c6.10059 -10.9004 2.2998 -22 -3.7002 -26.5996l-12 -9.60059c-6.09961 -4.89941 -5.2998 -14 -5.2998 -14s17.7998 -67.2998 84.2998 -84.2998c0 0 9.10059 -0.799805 14 5.2998
-l9.60059 12c4.59961 6 15.7002 9.7998 26.5996 3.7002c14.7002 -8.2998 33.4004 -21.2002 45.7998 -32.9004c7 -5.69922 8.60059 -14.3994 3.80078 -23.5996z" />
-    <glyph glyph-name="vimeo" unicode="&#xf40a;" 
-d="M403.2 416c24.7002 0 44.7998 -20.0996 44.7998 -44.7998v-358.4c0 -24.7002 -20.0996 -44.7998 -44.7998 -44.7998h-358.4c-24.7002 0 -44.7998 20.0996 -44.7998 44.7998v358.4c0 24.7002 20.0996 44.7998 44.7998 44.7998h358.4zM377 267.2
-c1.90039 42.2002 -13.7998 63.7998 -47.0996 64.7002c-44.9004 1.39941 -75.3008 -23.9004 -91.2002 -76c19.8994 8.5 49.2998 10.7998 45.7998 -22.4004c-1 -11.2002 -8.2998 -27.5 -21.7998 -48.9004c-37.7002 -59.3994 -46.9004 -39.5996 -67.6006 91.6006
-c-5.7998 36.8994 -21.2998 54.0996 -46.5 51.7002c-22.2998 -2 -57.8994 -38.4004 -95.1992 -71.2002l15.1992 -19.6006c14.5 10.1006 23 15.2002 25.4004 15.2002c21 0 31.9004 -54.7002 57.4004 -148c13.0996 -34.8994 29 -52.2998 47.8994 -52.2998
-c30.4004 0 67.7002 28.5996 111.7 85.7998c42.5996 54.7002 64.5996 97.9004 66 129.4z" />
-    <glyph glyph-name="vnv" unicode="&#xf40b;" horiz-adv-x="640" 
-d="M104.9 96c-34.1006 0 -46.4004 30.4004 -46.4004 30.4004l-55.9004 111.5s-10.3994 18.0996 10.4004 18.0996h32.7998c10.4004 0 13.2002 -8.7002 18.7998 -18.0996l36.7002 -74.5s5.2002 -13.1006 21.1006 -13.1006c15.8994 0 21.0996 13.1006 21.0996 13.1006
-l36.7002 74.5c5.59961 9.5 8.39941 18.0996 18.7998 18.0996h32.7998c20.7998 0 10.4004 -18.0996 10.4004 -18.0996l-55.7998 -111.5s-12.2002 -30.4004 -46.4004 -30.4004h-35.0996zM499.9 96c-34.1006 0 -46.4004 30.4004 -46.4004 30.4004l-55.9004 111.5
-s-10.3994 18.0996 10.4004 18.0996h32.7998c10.4004 0 13.2002 -8.7002 18.7998 -18.0996l36.7002 -74.5s5.2002 -13.1006 21.1006 -13.1006c15.8994 0 21.0996 13.1006 21.0996 13.1006l36.7998 74.5c5.60059 9.5 8.40039 18.0996 18.7998 18.0996h32.9004
-c20.7998 0 10.4004 -18.0996 10.4004 -18.0996l-55.9004 -111.5s-12.2002 -30.4004 -46.4004 -30.4004h-35.1992zM337.6 256c34.1006 0 46.4004 -30.4004 46.4004 -30.4004l55.9004 -111.5s10.3994 -18.0996 -10.4004 -18.0996h-32.7998
-c-10.4004 0 -13.2002 8.7002 -18.7998 18.0996l-36.7002 74.5s-5.2002 13.1006 -21.1006 13.1006c-15.8994 0 -21.0996 -13.1006 -21.0996 -13.1006l-36.7002 -74.5c-5.59961 -9.39941 -8.39941 -18.0996 -18.7998 -18.0996h-32.9004
-c-20.7998 0 -10.3994 18.0996 -10.3994 18.0996l55.8994 111.5s12.2002 30.4004 46.4004 30.4004h35.0996z" />
-    <glyph glyph-name="whatsapp-square" unicode="&#xf40c;" 
-d="M224 325.2c35.2002 0 68.2002 -13.7002 93.2002 -38.7002c24.8994 -24.9004 40.0996 -58 40.0996 -93.2002c0 -72.7002 -60.7002 -131.8 -133.3 -131.8h-0.0996094c-23.7002 0 -46.9004 6.40039 -67.1006 18.4004l-4.7998 2.89941l-49.9004 -13.0996l13.3008 48.5996
-l-3.10059 5c-13.2002 20.9004 -20.2002 45.2002 -20.2002 70.1006c0.100586 72.6992 59.2002 131.8 131.9 131.8zM301.5 136.8c3.2998 9.2002 3.2998 17.2002 2.40039 19.1006c-1 1.59961 -3.60059 2.59961 -7.60059 4.59961s-23.5 11.5996 -27.0996 12.9004
-c-3.60059 1.2998 -6.2998 2 -8.90039 -2c-2.59961 -3.90039 -10.2002 -12.9004 -12.5 -15.5c-2.2998 -2.7002 -4.59961 -3 -8.59961 -1c-23.2998 11.6992 -38.6006 20.7998 -53.9004 47.0996c-4.09961 7 4 6.40039 11.6006 21.5996
-c1.39941 2.60059 0.699219 4.90039 -0.300781 6.90039s-8.89941 21.5 -12.1992 29.4004c-3.2002 7.69922 -6.5 6.69922 -8.90039 6.7998c-2.2998 0.0996094 -5 0.0996094 -7.59961 0.0996094c-2.7002 0 -7 -1 -10.6006 -5c-3.7002 -4 -13.8994 -13.5996 -13.8994 -33.0996
-s14.1992 -38.4004 16.1992 -41c2 -2.60059 28 -42.6006 67.7002 -59.7998c25.1006 -10.8008 34.9004 -11.8008 47.5 -9.90039c7.60059 1.09961 23.4004 9.5 26.7002 18.7998zM400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48
-v352c0 26.5 21.5 48 48 48h352zM223.9 34.7998c87.3994 0 160.1 71.1006 160.1 158.5c0 42.4004 -18 82.2002 -47.9004 112.2c-30 30 -69.7998 46.5 -112.199 46.5c-87.4004 0 -158.5 -71.0996 -158.601 -158.5c0 -28 7.2998 -55.2998 21.2002 -79.2998l-22.5 -82.2002
-l84.0996 22.0996c23.1006 -12.5996 49.2002 -19.2998 75.8008 -19.2998z" />
-    <glyph glyph-name="whmcs" unicode="&#xf40d;" 
-d="M448 287l-29.0996 -7l-2.2002 -12.0996l20.8994 -18.8008l-10.2998 -20.0996l-28.7998 8.7998l-7.7998 -8.09961l8.7998 -28l-20.4004 -12.1006l-20.6992 21.6006l-11.6006 -3.5l-6.7002 -28.7998l-22.5996 0.299805l-6.7002 28.5l-11.5996 2.89941l-19.4004 -20.3994
-l-19.8994 11.5996l8.09961 26.9004l-7.2002 8.59961l-29.5996 -7.5l-10.4004 18.5l20.1006 19.9004l-2.40039 12.0996l-28.7998 7.5l0.299805 21.7002l28.5 7.7998l2.90039 10.4004l-20.7002 21l11 19.0996l28.5 -7.5l8.09961 8.40039l-8.09961 27.7002l19.3994 11
-l19.7002 -21l12.1006 3.19922l6.19922 26.4004h22.6006l7 -26.4004l10.7002 -3.19922l21.2998 21l19.0996 -11.6006l-7.5 -28.2002l7.2002 -7.5l29 7.5l10.4004 -19.3994l-20.1006 -20.7002l2.2002 -10.4004l28.5 -8.7998v-21.2998zM328.8 241.8
-c31.4004 0 56.7998 25.2998 56.7998 56.7998c0 31.4004 -25.3994 56.8008 -56.7998 56.8008c-31.3994 0 -56.7998 -25.4004 -56.7998 -56.8008c0 -31.3994 25.5 -56.7998 56.7998 -56.7998zM401.1 225.4l46.9004 -14.5v-39.9004l-55.0996 -13.4004l-4.10059 -22.6992
-l38.9004 -35.3008l-19.2002 -37.8994l-54 16.7002l-14.5996 -15.2002l16.6992 -52.5l-38.2998 -22.7002l-38.8994 40.5l-21.7002 -6.59961l-12.6006 -54l-42.3994 0.5l-12.6006 53.5996l-21.6992 5.59961l-36.4004 -38.3994l-37.4004 21.7002l15.2002 50.5l-13.7002 16.0996
-l-55.5 -14.0996l-19.6992 34.7998l37.8994 37.3994l-4.7998 22.8008l-54 14.0996l0.5 40.9004l53.5 14.6992l5.7002 19.7002l-38.9004 39.4004l20.7002 35.7998l53.5996 -14.0996l15.2002 15.6992l-15.2002 52l36.4004 20.7002l36.7998 -39.3994l22.7002 6.09961l11.5996 52
-h42.4004l11.5996 -45.9004l-22.5996 5.90039l-6.2998 1.7002l-3.2998 -5.7002l-11 -19.0996l-3.30078 -5.60059l4.60059 -4.59961l17.2002 -17.4004l-0.300781 -1l-23.7998 -6.5l-6.2002 -1.7002l-0.0996094 -6.39941l-0.200195 -12.9004
-c-47.5 -10.3994 -83.2998 -52.7998 -83.2998 -103.5c0 -58.2998 47.2998 -105.7 105.7 -105.7c50.5 0 92.7002 35.4004 103.2 82.8008l13.1992 -0.200195l6.90039 -0.100586l1.59961 6.7002l5.60059 24l1.89941 0.600586l17.1006 -17.8008l4.7002 -4.89941l5.7998 3.39941
-l20.3994 12.1006l5.80078 3.5l-2 6.5z" />
-    <glyph glyph-name="wordpress-simple" unicode="&#xf411;" horiz-adv-x="512" 
-d="M256 440c136.7 0 248 -111.2 248 -248c0 -136.7 -111.3 -248 -248 -248s-248 111.3 -248 248c0 136.8 111.3 248 248 248zM33 192c0 -88.2002 51.2998 -164.5 125.7 -200.7l-106.4 291.4c-12.3994 -27.7002 -19.2998 -58.4004 -19.2998 -90.7002zM256 -31
-c26 0 50.9004 4.5 74 12.5996c-0.599609 1 -1.09961 2 -1.59961 3.10059l-68.5 187.8l-66.9004 -194.4c20 -5.89941 41.0996 -9.09961 63 -9.09961zM286.7 296.5l80.7002 -239.6l22.1992 74.2998c9.7002 30.8994 17 53 17 72.0996c0 27.6006 -9.89941 46.7002 -18.3994 61.5
-c-11.2998 18.4004 -21.9004 33.9004 -21.9004 52.2998c0 20.5 15.5 39.6006 37.4004 39.6006c1 0 1.89941 -0.100586 2.89941 -0.200195c-39.6992 36.2998 -92.5996 58.5 -150.6 58.5c-77.9004 0 -146.4 -40 -186.3 -100.5
-c5.2998 -0.200195 10.2002 -0.299805 14.3994 -0.299805c23.3008 0 59.4004 2.7998 59.4004 2.7998c12 0.700195 13.4004 -17 1.40039 -18.4004c0 0 -12.1006 -1.39941 -25.5 -2.09961l81.1992 -241.5l48.8008 146.3l-34.7002 95.2002
-c-12 0.700195 -23.4004 2.09961 -23.4004 2.09961c-12 0.700195 -10.5996 19.1006 1.40039 18.4004c0 0 36.7998 -2.7998 58.7002 -2.7998c23.2998 0 59.3994 2.7998 59.3994 2.7998c12 0.700195 13.4004 -17 1.40039 -18.4004c0 0 -12.1006 -1.39941 -25.5 -2.09961z
-M368.1 -0.700195c66.3008 38.6006 110.9 110.4 110.9 192.7c0 38.7998 -9.90039 75.2002 -27.2998 107c1 -7.09961 1.5 -14.7002 1.5 -22.9004c0 -22.6992 -4.2998 -48.0996 -17 -79.8994z" />
-    <glyph glyph-name="xbox" unicode="&#xf412;" horiz-adv-x="512" 
-d="M369.9 129.8c44.2998 -54.2998 64.6992 -98.7998 54.3994 -118.7c-7.89941 -15.0996 -56.7002 -44.5996 -92.5996 -55.8994c-29.6006 -9.2998 -68.4004 -13.2998 -100.4 -10.2002c-38.2002 3.7002 -76.8994 17.4004 -110.1 39
-c-27.9004 18.2002 -34.2002 25.7002 -34.2002 40.5996c0 29.9004 32.9004 82.3008 89.2002 142.101c32 33.8994 76.5 73.7002 81.3994 72.5996c9.40039 -2.09961 84.3008 -75.0996 112.301 -109.5zM188.6 304.2c-66.3994 -81.5 -106 -155.4 -120.3 -194.4
-c-9.7998 -26.5 -13.7002 -53 -9.5 -64c2.7998 -7.39941 0.200195 -4.7002 -9.2998 9.90039c-23.2002 35.5 -34.9004 70.3994 -40.5 120.899c-1.90039 16.7002 -1.2002 26.3008 4.2002 60.5c6.7998 42.7002 31.0996 92 60.2998 122.4
-c12.4004 12.9004 13.5 13.2002 28.7002 8.09961c28.2998 -9.5 56.7002 -36.5 86.3994 -63.3994zM500.2 240.7c4.7002 -22.6006 5.09961 -70.9004 0.799805 -93.4004c-3.59961 -18.5 -11.2002 -42.5 -18.5996 -58.7002c-5.5 -12.1992 -19.3008 -35.7998 -25.4004 -43.5
-c-3.09961 -3.89941 -3.09961 -3.89941 -1.40039 4.60059c2.30078 11.2002 -0.599609 31.5996 -7.39941 52.2998c-20.7002 62.9004 -80.5 149 -122.9 202.3c23.2998 21.4004 41 38.2998 64.2998 52.7998c11.8008 7.40039 28.7002 13.9004 36 13.9004
-c7.10059 0 57.7002 -50.2998 74.6006 -130.3zM141.3 405c-14.5996 -0.700195 -14 0.0996094 9.40039 11.2002c81.2002 38.2998 170 27.5996 233.899 -11.7002c-13.3994 0.599609 -43.5 5.90039 -107.399 -25.2002c-11.2002 -5.5 -20.9004 -9.7998 -21.6006 -9.7002
-c-4.59961 0.900391 -66.5996 37.9004 -114.3 35.4004z" />
-    <glyph glyph-name="yandex" unicode="&#xf413;" horiz-adv-x="256" 
-d="M153.1 132.2l-87.3994 -196.2h-63.7002l96 209.8c-45.0996 22.9004 -75.2002 64.4004 -75.2002 141.101c-0.0996094 107.399 68 161.1 148.9 161.1h82.2998v-512h-55.0996v196.2h-45.8008zM198.9 401.5h-29.4004c-44.4004 0 -87.4004 -29.4004 -87.4004 -114.6
-c0 -82.3008 39.4004 -108.801 87.4004 -108.801h29.4004v223.4z" />
-    <glyph glyph-name="yandex-international" unicode="&#xf414;" horiz-adv-x="320" 
-d="M129.5 -64v166.1l-111 297.9h55.7998l81.7998 -229.7l94.1006 277.7h51.2998l-120.7 -347.8v-164.2h-51.2998z" />
-    <glyph glyph-name="apple-pay" unicode="&#xf415;" horiz-adv-x="640" 
-d="M116.9 289.5c-7.5 -8.90039 -19.5 -15.9004 -31.5 -14.9004c-1.5 12 4.39941 24.8008 11.2998 32.6006c7.5 9.09961 20.5996 15.5996 31.2998 16.0996c1.2002 -12.3994 -3.7002 -24.7002 -11.0996 -33.7998zM127.8 272.3c6.7998 -0.5 26.2998 -2.5 38.7998 -21.0996
-c-1 -0.799805 -23.1992 -13.5 -22.8994 -40.2998c0.299805 -32 28 -42.6006 28.2998 -42.9004c-0.200195 -0.799805 -4.40039 -15.0996 -14.5 -29.9004c-8.90039 -13 -18 -25.6992 -32.5 -26c-14 -0.199219 -18.7002 8.40039 -34.7998 8.40039
-c-16 0 -21.2002 -8.09961 -34.5 -8.59961c-14 -0.5 -24.6006 13.7998 -33.5 26.7998c-18.2002 26.2998 -32.1006 74 -13.2998 106.3c9.09961 16.0996 25.6992 26.2002 43.5996 26.5c13.7998 0.299805 26.4004 -9.09961 34.7998 -9.09961
-c8.2002 0 23.1006 10.8994 40.5 9.89941zM228.2 308.5h73.2002c37.6992 0 64.0996 -26 64.0996 -64s-26.7998 -64.2998 -65.0996 -64.2998h-41.9004v-66.6006h-30.2998v194.9zM258.5 283v-77.4004h34.7998c26.4004 0 41.4004 14.2002 41.4004 38.8008
-c0 24.5996 -15 38.5996 -41.2998 38.5996h-34.9004zM420.7 112.1c-28.1006 0 -47.7002 16.8008 -47.7998 42c0 25 19 39.4004 54.0996 41.5l37.7998 2.30078v10.7998c0 15.8994 -10.3994 24.5 -28.8994 24.5c-15.2002 0 -26.3008 -7.90039 -28.6006 -19.9004h-27.2998
-c0.900391 25.2002 24.7002 43.6006 56.7998 43.6006c34.6006 0 57.1006 -18.2002 57.1006 -46.3008v-97h-28v23.4004h-0.600586c-8 -15.2998 -25.5996 -24.9004 -44.5996 -24.9004zM428.9 135.2c20.5 0 36 13 36 31.2002v11l-33.6006 -2.10059
-c-18.8994 -1.09961 -28.7998 -8.2002 -28.7998 -20.5c0 -11.7998 10.2998 -19.5996 26.4004 -19.5996zM531.4 60.5996c-2.30078 0 -9.80078 0.300781 -11.6006 0.700195v23.4004c1.90039 -0.200195 6.5 -0.5 8.90039 -0.5c13.3994 0 20.8994 5.7002 25.5 20.2998
-l2.7998 8.59961l-51.2002 141.9h31.6006l35.5996 -115.1h0.599609l35.6006 115.1h30.7998l-53.0996 -149c-12.1006 -34.0996 -26 -45.4004 -55.5 -45.4004z" />
-    <glyph glyph-name="cc-apple-pay" unicode="&#xf416;" horiz-adv-x="576" 
-d="M302.2 229.6c0 -17.1992 -10.5 -27.0996 -29 -27.0996h-24.2998v54.2002h24.3994c18.4004 0 28.9004 -9.7998 28.9004 -27.1006zM349.7 167c0 8.59961 6.89941 13.5 20.2002 14.4004l23.5 1.5v-7.7002c0 -12.7998 -10.8008 -21.9004 -25.2002 -21.9004
-c-11.2998 0 -18.5 5.40039 -18.5 13.7002zM576 369v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48zM127.8 250.8c8.40039 -0.700195 16.7998 4.2002 22.1006 10.4004
-c5.19922 6.39941 8.59961 15 7.69922 23.7002c-7.39941 -0.300781 -16.5996 -4.90039 -21.8994 -11.3008c-4.7998 -5.5 -8.90039 -14.3994 -7.90039 -22.7998zM188.4 176.3c-0.200195 0.200195 -19.6006 7.60059 -19.8008 30c-0.199219 18.7002 15.3008 27.7002 16 28.2002
-c-8.7998 13 -22.3994 14.4004 -27.0996 14.7002c-12.2002 0.700195 -22.5996 -6.90039 -28.4004 -6.90039c-5.89941 0 -14.6992 6.60059 -24.2998 6.40039c-12.5 -0.200195 -24.2002 -7.2998 -30.5 -18.6006c-13.0996 -22.5996 -3.39941 -56 9.2998 -74.3994
-c6.2002 -9.10059 13.7002 -19.1006 23.5 -18.7002c9.30078 0.400391 13 6 24.2002 6c11.2998 0 14.5 -6 24.2998 -5.90039c10.2002 0.200195 16.5 9.10059 22.8008 18.2002c6.89941 10.4004 9.7998 20.4004 10 21zM323.8 229.7c0 26.5996 -18.5 44.7998 -44.8994 44.7998
-h-51.2002v-136.4h21.2002v46.6006h29.2998c26.7998 0 45.5996 18.3994 45.5996 45zM413.8 206c0 19.7002 -15.7998 32.4004 -40 32.4004c-22.5 0 -39.0996 -12.9004 -39.7002 -30.5h19.1006c1.59961 8.39941 9.39941 13.8994 20 13.8994c13 0 20.2002 -6 20.2002 -17.2002
-v-7.5l-26.4004 -1.59961c-24.5996 -1.5 -37.9004 -11.5996 -37.9004 -29.0996c0 -17.7002 13.7002 -29.4004 33.4004 -29.4004c13.2998 0 25.5996 6.7002 31.2002 17.4004h0.399414v-16.4004h19.6006v68h0.0996094zM516 237.1h-21.5l-24.9004 -80.5996h-0.399414
-l-24.9004 80.5996h-22.2998l35.9004 -99.2998l-1.90039 -6c-3.2002 -10.2002 -8.5 -14.2002 -17.9004 -14.2002c-1.69922 0 -4.89941 0.200195 -6.19922 0.300781v-16.4004c1.19922 -0.400391 6.5 -0.5 8.09961 -0.5c20.7002 0 30.4004 7.90039 38.9004 31.7998z" />
-    <glyph glyph-name="fly" unicode="&#xf417;" horiz-adv-x="384" 
-d="M197.8 20.2002c12.9004 -11.7002 33.7002 -33.2998 33.2002 -50.7002c0 -0.799805 -0.0996094 -1.59961 -0.0996094 -2.5c-1.80078 -19.7998 -18.8008 -31.0996 -39.1006 -31c-25 0.0996094 -39.8994 16.7998 -38.7002 35.7998c1 16.2002 20.5 36.7002 32.4004 47.6006
-c2.2998 2.09961 2.7002 2.69922 5.59961 3.59961c3.40039 0 3.90039 -0.299805 6.7002 -2.7998zM331.9 380.7c23.8994 -40 27.7998 -73.2998 20.7998 -112.5c-15.2002 -69.9004 -103.601 -166.5 -155.9 -215.7c-1.7002 -1.59961 -1.39941 -1.40039 -3.5 -2.09961
-l-3.2998 0.0996094c-1.7002 0.599609 -4.5 3.5 -6.2002 5.09961c-58.7998 57.8008 -148.7 151.601 -155.8 233.801c-1.5 71.3994 29.2998 113.399 82.9004 141.3c9.89941 4.09961 37 17.2998 81.0996 17.2998c22 0.200195 51.0996 -4.5 76.5996 -15.2002
-c24.7002 -11.5 47 -26.3994 63.3008 -52.0996zM186.8 96.0996v325.7c-57.8994 -5.5 -72.7002 -89.2002 -69.2998 -136.7c4.09961 -58.2998 41.2998 -137.899 69.2998 -189zM328.7 268c15.7998 54.9004 -10.9004 134.7 -99.7002 153
-c38.2002 -25.5996 49.5996 -85.5 48 -131.4c-2 -58.5996 -39.4004 -140 -67.2002 -191.899c41.6006 42.2998 102.5 113.5 118.9 170.3z" />
-    <glyph glyph-name="node" unicode="&#xf419;" horiz-adv-x="640" 
-d="M316.3 -4c-2.09961 0 -4.2002 0.599609 -6.09961 1.59961l-19.2002 11.4004c-2.90039 1.59961 -1.5 2.2002 -0.5 2.5c3.7998 1.2998 4.59961 1.59961 8.7002 4c0.399414 0.200195 1 0.0996094 1.39941 -0.0996094l14.8008 -8.80078
-c0.5 -0.299805 1.2998 -0.299805 1.7998 0l57.7998 33.4004c0.5 0.299805 0.900391 0.900391 0.900391 1.59961v66.7002c0 0.700195 -0.300781 1.2998 -0.900391 1.60059l-57.7998 33.2998c-0.5 0.299805 -1.2002 0.299805 -1.7998 0l-57.8008 -33.2998
-c-0.599609 -0.300781 -0.899414 -1 -0.899414 -1.60059v-66.7002c0 -0.599609 0.399414 -1.19922 0.899414 -1.5l15.8008 -9.09961c8.59961 -4.2998 13.8994 0.799805 13.8994 5.7998v65.9004c0 0.899414 0.700195 1.7002 1.7002 1.7002h7.2998
-c0.900391 0 1.7002 -0.700195 1.7002 -1.7002v-65.9004c0 -11.5 -6.2002 -18 -17.0996 -18c-3.30078 0 -6 0 -13.3008 3.60059l-15.1992 8.69922c-3.7002 2.2002 -6.10059 6.2002 -6.10059 10.5v66.7002c0 4.2998 2.2998 8.40039 6.10059 10.5l57.7998 33.4004
-c3.7002 2.09961 8.5 2.09961 12.0996 0l57.7998 -33.4004c3.7002 -2.2002 6.10059 -6.2002 6.10059 -10.5v-66.7002c0 -4.2998 -2.2998 -8.39941 -6.10059 -10.5l-57.7998 -33.3994c-1.7002 -1.10059 -3.7998 -1.7002 -6 -1.7002zM363 61.7998
-c0 -12.5996 -10.5 -19.7998 -29 -19.7998c-25.2998 0 -30.5996 11.5996 -30.5996 21.2998c0 1 0.799805 1.7002 1.69922 1.7002h7.5c0.900391 0 1.60059 -0.599609 1.7002 -1.40039c1.10059 -7.59961 4.5 -11.3994 19.7998 -11.3994
-c12.2002 0 17.4004 2.7002 17.4004 9.2002c0 3.69922 -1.5 6.39941 -20.4004 8.2998c-15.7998 1.59961 -25.5996 5 -25.5996 17.7002c0 11.5996 9.7998 18.5996 26.2998 18.5996c18.5 0 27.6006 -6.40039 28.7998 -20.2002
-c0.100586 -0.5 -0.0996094 -0.899414 -0.399414 -1.2998c-0.299805 -0.299805 -0.700195 -0.5 -1.2002 -0.5h-7.5c-0.799805 0 -1.40039 0.5 -1.59961 1.2998c-1.80078 8 -6.2002 10.6006 -18.1006 10.6006c-13.2998 0 -14.7998 -4.60059 -14.7998 -8.10059
-c0 -4.2002 1.7998 -5.39941 19.7998 -7.7998c17.7998 -2.40039 26.2002 -5.7002 26.2002 -18.2002zM417.5 111.9c0 -6.10059 -5 -11.1006 -11.0996 -11.1006c-6.10059 0 -11.1006 5 -11.1006 11.1006c0 6.2998 5.2002 11.0996 11.1006 11.0996
-c6 0.0996094 11.0996 -4.7998 11.0996 -11.0996zM415.7 111.9c0 5.19922 -4.2002 9.2998 -9.40039 9.2998c-5.09961 0 -9.2998 -4.10059 -9.2998 -9.2998c0 -5.2002 4.2002 -9.40039 9.2998 -9.40039c5.2002 0.0996094 9.40039 4.2998 9.40039 9.40039zM411.2 105.7
-h-2.60059c-0.0996094 0.599609 -0.5 3.7998 -0.5 3.89941c-0.199219 0.700195 -0.399414 1.10059 -1.2998 1.10059h-2.2002v-5h-2.39941v12.5h4.2998c1.5 0 4.40039 0 4.40039 -3.2998c0 -2.30078 -1.5 -2.80078 -2.40039 -3.10059
-c1.7002 -0.0996094 1.7998 -1.2002 2.09961 -2.7998c0.100586 -1 0.300781 -2.7002 0.600586 -3.2998zM408.4 114.5c0 1.7002 -1.2002 1.7002 -1.80078 1.7002h-2v-3.5h1.90039c1.59961 0 1.90039 1.09961 1.90039 1.7998zM137.3 257l-0.200195 -95
-c0 -1.2998 -0.699219 -2.59961 -1.7998 -3.2002c-1.09961 -0.700195 -2.59961 -0.700195 -3.7002 0l-36.3994 20.9004c-2.2998 1.2998 -3.7002 3.7998 -3.7002 6.39941v44.4004c0 2.59961 -1.40039 5.09961 -3.7002 6.40039l-15.5 8.89941
-c-1.09961 0.700195 -2.39941 1 -3.7002 1c-1.2998 0 -2.5 -0.299805 -3.69922 -1l-15.5 -8.89941c-2.30078 -1.30078 -3.7002 -3.80078 -3.7002 -6.40039v-44.4004c0 -2.59961 -1.40039 -5 -3.7002 -6.39941l-36.4004 -20.9004
-c-1.19922 -0.700195 -2.59961 -0.700195 -3.69922 0c-1.10059 0.700195 -1.80078 1.90039 -1.80078 3.2002l-0.0996094 95c0 2.59961 1.40039 5.09961 3.7002 6.40039l61.2002 35.2998c1.09961 0.599609 2.19922 1 3.39941 1h0.600586
-c1.19922 -0.100586 2.39941 -0.400391 3.39941 -1l61.2998 -35.2998c2.30078 -1.30078 3.7002 -3.7002 3.7002 -6.40039zM472.5 360.7v-176.4c0 -2.59961 -1.40039 -5.09961 -3.7002 -6.39941l-61.2998 -35.4004c-2.2998 -1.2998 -5.09961 -1.2998 -7.40039 0
-l-61.2998 35.4004c-2.2998 1.2998 -3.7002 3.7998 -3.7002 6.39941v70.7998c0 2.60059 1.40039 5.10059 3.7002 6.40039l61.2998 35.4004c2.30078 1.2998 5.10059 1.2998 7.40039 0l15.2998 -8.80078c1.7002 -1 3.90039 0.300781 3.90039 2.2002v94
-c0 2.7998 3 4.60059 5.5 3.2002l36.5 -20.4004c2.2998 -1.19922 3.7998 -3.69922 3.7998 -6.39941zM426.5 231.8c0 0.700195 -0.400391 1.2998 -0.900391 1.60059l-21 12.1992c-0.599609 0.300781 -1.2998 0.300781 -1.89941 0l-21 -12.1992
-c-0.600586 -0.300781 -0.900391 -0.900391 -0.900391 -1.60059v-24.2998c0 -0.700195 0.400391 -1.2998 0.900391 -1.59961l21 -12.1006c0.599609 -0.299805 1.2998 -0.299805 1.7998 0l21 12.1006c0.599609 0.299805 0.900391 0.899414 0.900391 1.59961v24.2998h0.0996094
-zM636.3 232.5l-36.7002 -21.2998c-2.5 -1.40039 -5.59961 0.399414 -5.59961 3.2002v17.3994c0 1.2998 -0.799805 2.5 -1.90039 3.2002l-19.1992 11.0996c-1.10059 0.700195 -2.60059 0.700195 -3.7002 0l-19.2002 -11.0996
-c-1.2002 -0.700195 -1.90039 -1.90039 -1.90039 -3.2002v-22.2002c0 -1.2998 0.700195 -2.5 1.90039 -3.19922l61.7002 -35.4004c2.5 -1.40039 2.5 -5 0 -6.40039l-36.7998 -20.5c-2.30078 -1.2998 -5.10059 -1.2998 -7.30078 0l-60.8994 34.7002
-c-2.2998 1.2998 -3.7002 3.7002 -3.7002 6.40039v70.7998c0 2.59961 1.40039 5.09961 3.7002 6.40039l61.2998 35.3994c2.2998 1.2998 5.09961 1.2998 7.40039 0l60.8994 -35.3994c2.2998 -1.30078 3.7002 -3.80078 3.7002 -6.40039v-17.0996
-c0 -2.60059 -1.40039 -5.10059 -3.7002 -6.40039zM559 229l11.7998 6.7998c0.400391 0.299805 1 0.299805 1.40039 0l11.7998 -6.7998c0.400391 -0.200195 0.700195 -0.700195 0.700195 -1.2002v-13.5996c0 -0.5 -0.299805 -0.900391 -0.700195 -1.2002l-11.7998 -6.7998
-c-0.400391 -0.299805 -1 -0.299805 -1.40039 0l-11.7998 6.7998c-0.400391 0.200195 -0.700195 0.700195 -0.700195 1.2002v13.5996c0 0.5 0.299805 0.900391 0.700195 1.2002zM304.8 185.5c0 -0.599609 -0.0996094 -1.2002 -0.200195 -1.7002
-c-0.5 -2 -1.7998 -3.7002 -3.59961 -4.7002l-61 -35.1992c-2.2002 -1.30078 -5 -1.40039 -7.40039 0l-61.1992 35.1992c-2.10059 1.2002 -4 3.60059 -4 6.40039v70.4004c0 2.69922 1.59961 5.09961 3.89941 6.39941l61.1006 35.2002
-c2.39941 1.40039 5.2998 1.2002 7.39941 0l61.1006 -35.2002c2.2998 -1.2998 3.89941 -3.7998 3.89941 -6.39941v-70.4004zM230.5 310.4l-0.799805 -0.5h1.09961zM306.7 180.2l-0.400391 0.700195v-0.900391z" />
-    <glyph glyph-name="osi" unicode="&#xf41a;" horiz-adv-x="512" 
-d="M8 181.56c2.2998 135.801 97.3994 232.441 213.799 248.102c138.8 18.5996 255.601 -75.7998 278 -201.101c21.2998 -118.8 -44 -230 -151.6 -274c-9.2998 -3.7998 -14.4004 -1.69922 -18 7.7002c-17.7998 46.2998 -35.5996 92.6328 -53.3994 138.999
-c-3.09961 8.10059 -1 13.2002 7 16.7998c24.2002 11 39.2998 29.4004 43.2998 55.8008c0.561523 3.60547 0.852539 7.2998 0.852539 11.0615c0 37.3613 -28.7998 67.9971 -65.3525 71.1377c-39 3.40039 -71.7998 -23.6992 -77.5 -59.6992
-c-5.19922 -33 11.1006 -63.7002 41.9004 -77.7002c9.59961 -4.40039 11.5 -8.60059 7.7998 -18.4004c-17.8994 -46.5996 -35.7998 -93.2324 -53.7002 -139.899c-2.59961 -6.90039 -8.2998 -9.30078 -15.5 -6.5c-52.5996 20.2998 -101.399 61 -130.8 119
-c-24.8994 49.1992 -25.2002 87.6992 -26.7998 108.699zM28.8994 183.461c0.399414 -6.59961 0.599609 -14.3008 1.2998 -22.1006c6.2998 -71.9004 49.5996 -143.5 131 -183.101c3.2002 -1.5 4.39941 -0.799805 5.59961 2.2998c14.9004 39.1006 29.9004 78.2012 45 117.302
-c1.2998 3.2998 0.600586 4.7998 -2.39941 6.69922c-31.6006 19.9004 -47.3008 48.5 -45.6006 86c1 21.6006 9.2998 40.5 23.7998 56.3008c30 32.6992 77 39.7998 115.5 17.5996c27.4619 -15.834 45.9629 -45.4971 45.9629 -79.4463
-c0 -3.75879 -0.321289 -7.3125 -0.762695 -10.9541c-3.59961 -30.5996 -19.2998 -53.8994 -45.7002 -69.7998c-2.69922 -1.59961 -3.5 -2.89941 -2.2998 -6c15.2002 -39.2002 30.2666 -78.4336 45.2002 -117.7c1.2002 -3.09961 2.40039 -3.7998 5.59961 -2.2998
-c35.5 16.6006 65.2002 40.2998 88.1006 72c34.7998 48.2002 49.0996 101.9 42.2998 161c-13.7002 117.5 -119.4 214.8 -255.5 198c-106.1 -13 -195.3 -102.5 -197.1 -225.8z" />
-    <glyph glyph-name="react" unicode="&#xf41b;" horiz-adv-x="512" 
-d="M418.2 270.8c54.3994 -18.7002 93.7998 -48.0996 93.7998 -78.3994c0 -31.7002 -41.7998 -62.6006 -99.5 -81.7002c-3.09961 -1 -6.2002 -2 -9.40039 -2.90039c1.10059 -4.59961 2.10059 -9.09961 3 -13.5c11.4004 -57.5996 2.60059 -104.899 -24.3994 -120.5
-c-26.1006 -15.0996 -68.4004 -0.200195 -111.2 36.6006c-4.59961 4 -9.2002 8.09961 -13.5996 12.3994c-3.5 -3.39941 -7 -6.59961 -10.5 -9.7002c-44.2002 -38.6992 -89.6006 -54.6992 -116.601 -39.0996c-26.2002 15.0996 -34.3994 59.0996 -23.8994 114.6
-c1.19922 6.10059 2.5 12 4 18c-4.60059 1.30078 -9.10059 2.80078 -13.6006 4.30078c-55.5 19 -96.2998 50.2998 -96.2998 81.5c0 30.1992 38.2998 59.3994 91.7002 77.8994c5.89941 2.10059 12.2002 4.10059 18.5996 5.90039
-c-1.39941 5.59961 -2.59961 11.0996 -3.7002 16.7002c-11 56.3994 -3.19922 101.5 23 116.699c27.3008 15.9004 72.9004 -1.09961 118.4 -41.5c2.7998 -2.5 5.59961 -5.09961 8.2998 -7.69922c4 3.89941 8.2002 7.7998 12.5 11.5
-c43.4004 37.7998 86.2998 53.5 112.601 38.3994c27.2998 -15.7998 35.3994 -63.7002 23.0996 -123.3c-0.799805 -3.7002 -1.59961 -7.40039 -2.5 -11.0996c5.40039 -1.60059 10.7998 -3.30078 16.2002 -5.10059zM282.9 355.7c-4 -3.5 -7.80078 -7 -11.7002 -10.7002
-c15.3994 -16.7002 29.5996 -34.5 42.5996 -53.0996c22.6006 -2 45.1006 -5.60059 67.2998 -10.6006c0.900391 3.2998 1.60059 6.60059 2.30078 10c10.5996 51.5 4.09961 90.7002 -12.8008 100.4c-15.7998 9.09961 -50.5 -3.60059 -87.6992 -36zM167.2 140.5
-c-5 8.59961 -9.7002 17.2998 -14.2998 26.0996c-6.40039 -15.1992 -11.9004 -30.0996 -16.3008 -44.5c15.3008 -3.2998 30.8008 -5.7998 46.4004 -7.5c-5.5 8.5 -10.7002 17.2002 -15.7998 25.9004zM136.9 260.8c4.39941 -14.0996 9.69922 -28.7002 16 -43.5996
-c4.5 8.7998 9.2998 17.5 14.1992 26c4.90039 8.59961 10.1006 17.0996 15.4004 25.3994c-15.9004 -2 -31.2002 -4.59961 -45.5996 -7.7998zM164.3 191.9c6.7002 -13.8008 13.7998 -27.3008 21.5 -40.6006s15.9004 -26.2998 24.6006 -39
-c14.6992 -0.899414 29.8994 -1.39941 45.5996 -1.39941s31.2002 0.5 46.0996 1.59961c8.5 12.7998 16.6006 25.7002 24.2002 39c7.7002 13.4004 14.9004 27 21.6006 40.7998c-6.80078 13.7002 -14 27.2002 -21.7002 40.4004s-15.7998 26.0996 -24.2998 38.7002
-c-14.9004 1.09961 -30.3008 1.69922 -45.9004 1.69922s-30.9004 -0.599609 -45.9004 -1.69922c-8.59961 -12.7002 -16.7998 -25.6006 -24.3994 -38.9004c-7.60059 -13.2998 -14.7998 -26.7998 -21.4004 -40.5996zM344.9 140.7c-5 -8.60059 -10.1006 -17.2002 -15.5 -25.6006
-c15.7998 1.80078 31.5 4.5 47 8c-4.90039 15.1006 -10.5 29.8008 -16.9004 44.3008c-4.7002 -9 -9.5 -17.9004 -14.5996 -26.7002zM359.3 217.2c6.10059 14.2002 11.5 28.5996 16.1006 43.3994c-14.4004 3.30078 -29.8008 6 -45.9004 8
-c5.2998 -8.2998 10.4004 -16.6992 15.2998 -25.1992c5 -8.60059 9.7998 -17.4004 14.5 -26.2002zM256.2 329.7c-10 -10.9004 -20.1006 -22.9004 -29.9004 -35.7998c19.7998 0.899414 39.7002 0.899414 59.5 0c-9.2002 12.3994 -19.0996 24.3994 -29.5996 35.7998zM140.2 391
-c-15.7998 -9.09961 -22 -45.5996 -12.6006 -94c1.10059 -5.2002 2.2002 -10.4004 3.5 -15.5c22.2002 4.90039 44.6006 8.40039 67.2002 10.4004c13.1006 18.5996 27.4004 36.3994 42.9004 53.0996c-2.60059 2.40039 -5.10059 4.7998 -7.60059 7
-c-39.2998 34.7998 -76.5996 48.7998 -93.3994 39zM115.7 127.4c6.89941 22 15.2002 43.5996 24.7998 64.5c-9.5 20.5996 -17.7002 41.8994 -24.5 63.5996c-5.7998 -1.7002 -11.5996 -3.5 -17.2998 -5.5c-45.6006 -15.9004 -77.2002 -39.2998 -77.2002 -57.5996
-c1.90039 -12.1006 8.7002 -22.9004 18.7998 -29.9004c17.5 -13.9004 41.7002 -24.5 63 -31.2002c4.10059 -1.39941 8.2002 -2.7002 12.4004 -3.89941zM232.3 29.4004c3.2002 2.7998 6.40039 5.7998 9.60059 8.89941c-15.5 16.7998 -30 34.7002 -43.2002 53.4004
-c-22.9004 1.7002 -45.5 5 -67.9004 9.7998c-1.39941 -5.5 -2.59961 -11.0996 -3.7002 -16.7002c-9 -47.5 -2.39941 -82.7998 13.5 -92c11.4004 -4.5 24.2002 -4 35.3008 1.2998c20.7998 8.2002 39.8994 20.2002 56.3994 35.3008zM256.8 53.7002
-c10.5 11.5996 20.4004 23.7002 29.6006 36.3994c-10 -0.5 -20.1006 -0.699219 -30.4004 -0.699219c-10 0 -19.9004 0.199219 -29.5 0.599609c9.90039 -13.0996 20.0996 -25.2998 30.2998 -36.2998zM387.5 23.7002c3.2002 22.2002 2.40039 44.7002 -2.5 66.2998
-c-0.799805 4 -1.7002 8.09961 -2.7002 12.2002c-22.5 -5.10059 -45.2998 -8.60059 -68.2002 -10.5c-12.7998 -18.7998 -26.8994 -36.7002 -42.1992 -53.6006c4.2998 -4 8.5 -7.89941 12.6992 -11.5c36.6006 -31.3994 70.5 -43.3994 86.4004 -34.1992
-c9.59961 7.69922 15.5996 19.0996 16.5 31.2998zM405.7 131.2c49.8994 16.5 84.7998 41.7998 84.7998 61.3994c0 18.2002 -32.7002 42 -79.2998 58c-4.7998 1.60059 -9.7998 3.2002 -15 4.7002c-6.7998 -21.5 -14.9004 -42.5 -24.5 -62.8994
-c9.89941 -20.7002 18.5 -42 25.5 -63.8008c2.89941 0.800781 5.7002 1.7002 8.5 2.60059zM256 146.2c-25.2998 0 -45.7998 20.5 -45.7998 45.7998s20.5 45.7998 45.7998 45.7998s45.7998 -20.5 45.7998 -45.7998s-20.5 -45.7998 -45.7998 -45.7998z" />
-    <glyph glyph-name="autoprefixer" unicode="&#xf41c;" horiz-adv-x="640" 
-d="M318.4 432l164.1 -480h-77.5l-25.2002 81.4004h-119.5l-25.3994 -81.4004h-77.5zM278.1 90.0996h83.6006l-40.9004 130.4h-1.5zM640 43l-158.5 -9.5l-19.4004 56.5l167.9 -15.5996zM177.9 90l-19.4004 -56.4004l-158.5 9.40039l10 31.2998z" />
-    <glyph glyph-name="less" unicode="&#xf41d;" horiz-adv-x="640" 
-d="M612.7 229c0 -11 6.7998 -22.5996 27.2998 -23.2998v-27.2998c-20.5 -1 -27.2998 -12.6006 -27.2998 -23.6006c0 -20.3994 3.2002 -32 3.2002 -54.5996c0 -34.2002 -12.7002 -45.2002 -40.5 -45.2002h-20.5v25.2002h6.2998v0.5c13.5996 0 17.2998 4.7002 17.2998 22.5996
-c0 17.2998 -1.59961 32.6006 -1.59961 51.5c0 24.2002 7.7998 33.6006 23.5996 37.2998v1.60059c-15.7002 3.7002 -23.5996 13.0996 -23.5996 37.2998c0 18.9004 1.59961 35.2002 1.59961 51.5c0 17.4004 -3.09961 22.0996 -17.2998 22.0996h-6.2998v24.2002h20.5
-c27.8994 0 40.5 -11 40.5 -45.2002c0 -22 -3.2002 -34.0996 -3.2002 -54.5996zM507.1 197c20.5 -6.7998 43 -18.9004 43 -47.7998c0 -28.9004 -22.5996 -51 -64.5996 -51c-20 0 -44.0996 9 -59.9004 22.0996l21 30.5c14.2002 -11 27.4004 -16.2998 40.5 -16.2998
-c14.2002 0 20.5 5.2002 20.5 13.0996c0 10.5 -15.7998 15.8008 -32.0996 22.1006c-18.9004 7.2998 -41.5 20.5 -41.5 46.2002c0 28.8994 24.2002 49.3994 59.9004 49.3994c24.1992 0 42.0996 -10.5 55.1992 -20.5l-21 -27.7998c-11.5 8.40039 -22 13.0996 -33.5996 13.0996
-s-17.9004 -4.69922 -17.9004 -12.5996c0 -10.5 14.7002 -14.2002 30.5 -20.5zM148.2 137.6c1.59961 0 3.09961 0 6.2002 0.800781l5.2998 -34.2002c-5.7002 -2.10059 -13.6006 -3.7002 -23.6006 -3.7002c-32.0996 0 -43.0996 21 -43.0996 53.0996v150.801h-14.0996
-c-13.6006 0 -17.3008 -4.80078 -17.3008 -22.1006s1.60059 -32.5996 1.60059 -51.5c0 -24.2002 -7.7998 -33.5996 -23.6006 -37.2998v-1.59961c15.7002 -3.7002 23.6006 -13.1006 23.6006 -37.3008c0 -19.3994 -1.60059 -34.1992 -1.60059 -51.5
-c0 -17.2998 4.2002 -22.5996 17.3008 -22.5996h6.2998v-24.2002h-20.5c-27.9004 0 -40.5 11 -40.5 45.2002c0 22.5996 3.2002 34.2002 3.2002 53.5996c0 11 -6.80078 22.6006 -27.3008 23.1006v27.2998c20.5 1 27.3008 12.5996 27.3008 23.5996
-c0 19.4004 -3.2002 32 -3.2002 54.6006c0 34.2002 12.5996 45.2002 41 45.2002h74.5996v-178.2c0 -9.90039 4.7002 -13.1006 8.40039 -13.1006zM379.9 197c20.5 -6.7998 43.0996 -18.9004 43 -47.7998c0 -28.9004 -22.6006 -51 -64.6006 -51
-c-20 0 -44.0996 9 -59.8994 22.0996l20.5 30.5c14.1992 -11 27.3994 -16.2998 40.5 -16.2998c14.1992 0 20.5 5.2002 20.5 13.0996c0 10.5 -15.8008 15.8008 -32.1006 22.1006c-18.8994 7.2998 -41.5 20.5 -41.5 46.2002c0 28.8994 24.2002 49.3994 59.9004 49.3994
-c24.2002 0 42.0996 -10.5 55.2002 -20.5l-21 -27.7998c-11.5 8.40039 -22 13.0996 -33.6006 13.0996c-11.5996 0 -17.8994 -4.69922 -17.8994 -12.5996c0 -10.5 14.6992 -14.2002 31 -20.5zM224.9 265.8c44.0996 0 67.2998 -33.0996 66.6992 -75.7002
-c0 -8.39941 -1.09961 -15.6992 -1.59961 -19.3994h-95.2002c4.2002 -24.2002 20.5 -34.2002 41.5 -34.2002c11.6006 0 22.6006 3.2002 34.2002 10l15.7998 -27.7998c-16.2998 -11.1006 -37.2998 -17.9004 -56.2002 -17.9004c-45.0996 0 -79.2998 30.5 -79.2998 82.5
-c-1 50.4004 35.7002 82.5 74.1006 82.5zM194.9 199.6h56.7998c0 17.9004 -7.40039 31 -26.2998 31c-14.7002 0 -27.3008 -10 -30.5 -31z" />
-    <glyph glyph-name="sass" unicode="&#xf41e;" horiz-adv-x="640" 
-d="M301.84 69.0801c-0.299805 -0.599609 -0.599609 -1.08008 0 0zM550.97 156.08c57.9092 0.300781 90.5703 -37.0801 88.9707 -71.0801c-1.10059 -26.9004 -25.6904 -37.9004 -30.29 -38.7002c-3.30078 -0.599609 -5.10059 -0.700195 -5.60059 1.90039
-c-0.299805 1.7998 0.900391 2.7002 4.7998 5.09961c3.90039 2.40039 15.6006 10.5 17.7002 25c2.10059 14.5 -8.7998 49.2998 -64.4795 55.7998c-26 3 -46.3906 -0.599609 -62.0898 -7.19922c2.89941 -7.60059 5.09961 -15.5 5.39941 -23.4004
-c0.799805 -17.5 -11.29 -30.4004 -23.79 -39.5996c-6.50391 -4.72559 -13.8096 -8.50879 -21.5898 -11.1006c-5.2002 -2.2002 -12.2002 -4.5 -17.0996 -3.5c-10.9004 2.2002 -16.7002 11.7998 -9.30078 33.1006c4 11.5 15.5 29 34.0908 44.0996
-c-4.30078 8.7002 -8.99023 17.5996 -11.3906 25.7002c-2.58984 8.31934 -4.7002 17.0566 -6.2002 25.7998c0 0 -15.2998 -31.7197 -35.0898 -60.6201c-1.09961 -1.7002 -2.2998 -3.39941 -3.39941 -5c3.7998 -9 6.89941 -18.5996 7.2998 -28.2002
-c0.700195 -17.3994 -6.90039 -30.5996 -19.4004 -39.7998c-6.1377 -4.40625 -12.9531 -8.00488 -20.1895 -10.5996c-3.90039 -1.7998 -12 -4.60059 -23.5 -5.40039c-6.29004 -0.5 -12.29 -0.0996094 -15.6904 2.5c-4.59961 3.40039 -5.2002 7.7998 -2.7998 13.7002
-c2 5 17.21 22.4004 30 37.5996c3.5 4.2002 6.90039 8.5 9.90039 12.5c-0.0556641 0.0507812 -0.0927734 0.121094 -0.100586 0.200195c0 0 2.2998 3 6.10059 8.2002c-4.7002 10.0996 -10.6006 20.5 -13.4004 30c-2.58984 8.32031 -4.7002 17.0576 -6.2002 25.7998
-c0 0 -15.4902 -39.7002 -31.6895 -71.5c-12.4902 -24.5996 -20.79 -39.5 -24.5908 -46v-0.299805s-0.5 -0.900391 -1.5 -2.40039c-0.5 -0.799805 -0.699219 -1.19922 -0.699219 -1.19922v0.0996094c-4.20996 -6.2002 -13.6104 -18.2998 -23 -18.2998
-c-25.7002 0 -16.3008 52.2002 -16.3008 52.2002s-7.5 -19.3008 -16 -35.9004c-6.88965 -13.5996 -13.0898 -25 -26.8896 -25c-3.90039 0 -10.1904 0.0996094 -15.3896 5c-11.8008 11.2002 -20.9004 39.7002 -19.1006 61.7002c1.5 18.7998 4.40039 31.7998 8.40039 42.5996
-c-7.10059 -3.89941 -15.2002 -8.39941 -23.4902 -13.2998c-4.2998 -2.5 -8.59961 -5 -12.7998 -7.5c0.0996094 -0.299805 0.299805 -0.5 0.400391 -0.799805c10.5996 -20.4004 13.3896 -65.2002 -9.60059 -99.5s-65.7803 -55.2002 -107.57 -43.6006
-c-13.3896 3.80078 -33.79 31.6006 -16.29 70.4004c15.4902 34.2002 77.3809 66.5996 93.6709 74.7002c1.39941 0.799805 2.89941 1.59961 4.5 2.5c-32.4902 28.3994 -113.671 66.7998 -125.061 125.7c-3.2002 16.5996 4.58984 56.2998 53.2803 101.899
-c40.9902 38.2998 97.9697 67.7002 150.66 86.4004c88.4297 31.3994 181.949 12.8994 196.31 -43.5c14.1006 -55.5 -33.9902 -121.8 -95.7695 -145.601c-54.9902 -21.2998 -100.471 -17.8994 -119.17 -11.7998c-21.29 7 -33.79 21 -36.79 28.9004
-c-1.2002 3.09961 -3.30078 8.2998 0 10.0996c2 1.10059 2.7998 0.799805 8.09961 -5.09961c5.09961 -5.60059 25.4902 -20.6006 64.2803 -16.2998c101.77 11.3994 163.06 90.5 143.66 133c-13.4902 29.7998 -91.8408 43.1992 -189.841 -5.60059
-c-119.569 -59.5996 -126.069 -108.7 -127.069 -127.399c-2.7998 -51.3008 63.2793 -78.3008 99.0693 -116.5c0.5 -0.5 0.900391 -1 1.40039 -1.5c6.7002 3.69922 13.7998 7.59961 20.7002 11.3994c18 9.90039 35.0996 19.2002 43 23.5
-c12.5801 18.2998 38.1797 38.5 56.5801 38.5c29.4893 0 19.3896 -42.3994 19.3896 -42.3994s0.599609 2 1.40039 2c0.799805 0 4.09961 5.5 13.1992 2.19922c9.40039 -3.5 7.2002 -10 7.30078 -10.6992c0.0996094 -1.30078 -11 -38.9004 -15.7002 -63.1006
-c-2.2002 -11.5 -0.900391 -19.8994 -0.299805 -19.8994c0.899414 0 2.7998 2.89941 4.5 6.09961v0.0996094s1.2998 2.40039 3.5 6.7002c0 0.200195 -0.200195 -0.299805 -0.5 -0.799805c0.199219 0.400391 0.5 0.900391 0.899414 1.7002
-c2.60059 5 6.2002 12.3994 10.4004 21.5996c8.18945 18.1006 39.4795 87.7002 42.0801 95.4004c2.59961 7.7002 4 15.7002 5.2998 19.0996c1.2998 3.40039 12.4102 6 25.2998 5.90039c12.8906 -0.100586 14.1904 -5.60059 14.29 -6.7002
-c0.100586 -1.09961 -6.2002 -16.4004 -7.59961 -27.2002c-1.40039 -10.7998 -0.100586 -16.2002 1.09961 -25.2998c0.799805 -6 4.5 -13.5 8.90039 -22c13.2998 21.7998 36.79 63.5996 39.0898 75.2998c1.25195 6.51465 3.06152 12.9941 5.2998 19.1006
-c1.29004 3.39941 12.3896 6 25.29 5.89941c12.9004 -0.0996094 14.2002 -5.59961 14.2998 -6.7002c0.100586 -1.09961 -6.2002 -16.3994 -7.59961 -27.1992c-1.40039 -10.8008 -0.100586 -16.2002 1.09961 -25.3008c1 -7.7998 7.10059 -18.1992 13 -30.0996
-c17.4492 8.59473 37.2061 13.5 57.957 13.5h0.0429688zM121.79 11.3799c19.4004 21.0996 27.3896 47.9199 19.0996 78.3203c-1 -0.600586 -2 -1.10059 -2.89941 -1.7002c0 0 -0.400391 -0.200195 -1.2002 -0.700195c-4.7998 -2.89941 -8.7002 -5.2998 -11.4004 -6.89941
-c-11.7998 -7.40039 -29.5898 -19.4004 -43.3896 -32.4004c-22.6904 -21.4199 -27.3896 -51 -15.4902 -57.9199c11.0898 -6.40039 36.8906 1.2002 55.2803 21.2998zM256.15 102.78c4 9.7998 19.6992 53.2998 16.1992 59.2002c-2.59961 4.5 -13.6992 0.899414 -23.79 -10.4004
-c-6.2998 -7 -16.8994 -25 -21.8994 -40.0996c-9.90039 -30 -5.60059 -60.5 1.39941 -62.3008c8.2002 -2.09961 21.6904 37.9004 28.0908 53.6006zM367.15 49.7803c7.7998 4.7998 24.96 16.8994 25.0898 34.7998c0 0.599609 -0.100586 1.09961 -0.100586 1.59961
-c-3.98926 -5.19922 -7.68945 -9.89941 -10.8896 -13.8994c-5.5 -6.7998 -19.4004 -21.7002 -19.4004 -21.7002s-2 -1.90039 -1.09961 -2.40039c1.2002 -0.699219 3.7002 0.200195 6.40039 1.60059zM452.73 69.2803c9.68945 3.5 25.7998 11.8994 25.8994 34.3994
-c-0.0830078 3.7627 -0.750977 7.4043 -1.89941 10.8008c-10.4102 -9.2002 -16.4004 -18.8008 -19 -24.5c-6.7002 -14.6006 -7 -19.3008 -5 -20.7002z" />
-    <glyph glyph-name="vuejs" unicode="&#xf41f;" 
-d="M356.9 383.7h91.0996l-224 -383.7l-224 383.7h176l48 -88.6006l56 88.6006h76.9004zM55.7002 351.7l168.3 -288.2l168.2 288.2h-53.7998l-114.4 -198.2l-114.5 198.2h-53.7998z" />
-    <glyph glyph-name="angular" unicode="&#xf420;" 
-d="M185.7 179.9l38.0996 91.5996l38.1006 -91.5996h-76.2002zM223.8 416l207.8 -74.4004l-31.7998 -275.699l-176 -97.9004l-176 97.9004l-31.7998 275.699zM354 74.2002l-130.2 292.3l-130.1 -292.3h48.7002l26.1992 65.3994h110.601l26.2002 -65.3994h48.5996z" />
-    <glyph glyph-name="aviato" unicode="&#xf421;" horiz-adv-x="640" 
-d="M107.2 164.5l-19 41.7998h-52.1006l-19 -41.7998h-17.0996l62.2002 131.4l62.2002 -131.4h-17.2002zM62.2002 262.6l-19.6006 -42.5h39.2002zM174.9 160.2l-62.2002 131.399h17.0996l45.1006 -96l45.0996 96h17zM255.5 164.5v127.1h15.5v-127.1h-15.5zM464.6 280.1
-v-115.6h-17.2998v115.6h-41.2002v11.5h99.6006v-11.5h-41.1006zM640 229.2c0 -9.2002 -1.7002 -17.7998 -5.09961 -25.7998c-3.40039 -8 -8.2002 -15.1006 -14.2002 -21.1006s-13.1006 -10.7998 -21.1006 -14.2002c-8 -3.39941 -16.5996 -5.09961 -25.7998 -5.09961
-s-17.7998 1.7002 -25.7998 5.09961c-8 3.40039 -15.0996 8.2002 -21.0996 14.2002s-10.8008 13 -14.2002 21.1006c-3.40039 8 -5.10059 16.5996 -5.10059 25.7998s1.7002 17.7998 5.10059 25.7998c3.39941 8 8.2002 15.0996 14.2002 21.0996s13 8.40039 21.0996 11.9004
-c8 3.40039 16.5996 5.09961 25.7998 5.09961s17.7998 -1.69922 25.7998 -5.09961s15.1006 -5.7998 21.1006 -11.9004c6 -6 10.7002 -13.0996 14.2002 -21.0996c3.39941 -8 5.09961 -16.5996 5.09961 -25.7998zM624.5 229.2c0 7.2998 -1.2998 14 -3.90039 20.2998
-c-2.59961 6.2998 -6.19922 11.7002 -10.7998 16.2998c-4.59961 4.60059 -10 8.2002 -16.2002 10.9004c-6.19922 2.7002 -12.7998 4 -19.7998 4s-13.5996 -1.2998 -19.7998 -4s-11.5996 -6.2998 -16.2002 -10.9004c-4.59961 -4.59961 -8.2002 -10 -10.7998 -16.2998
-s-3.90039 -13.0996 -3.90039 -20.2998c0 -7.2998 1.30078 -14 3.90039 -20.2998c2.59961 -6.30078 6.2002 -11.7002 10.7998 -16.3008c4.60059 -4.59961 10 -8.19922 16.2002 -10.8994s12.7998 -4 19.7998 -4s13.6006 1.2998 19.7998 4
-c6.2002 2.7002 11.6006 6.2998 16.2002 10.8994c4.60059 4.60059 8.2002 10 10.7998 16.3008c2.60059 6.2998 3.90039 13.0996 3.90039 20.2998zM529.7 132.5c6 -0.900391 10.5 -6 10.7002 -12.2998c0 -6.7998 -5.60059 -12.4004 -12.4004 -12.4004
-s-12.4004 5.60059 -12.4004 12.4004c0 6.2002 4.60059 11.2998 10.5 12.2002v5.7998l-80.2998 -9v-5.40039c5.60059 -1.09961 9.90039 -6.09961 9.90039 -12.0996c0 -6.7998 -5.60059 -10.2002 -12.4004 -10.2002s-12.3994 3.40039 -12.3994 10.2002
-c0 5.89941 4.19922 11 9.89941 12.0996v4.90039l-28.3994 -3.2002v-23.7002h5.89941v-13.7998h-5.89941v6.59961h-5v-6.59961h-5.90039v13.7998h5.90039v23.2002l-38.3008 -4.2998c-8.09961 -11.5 -19 -13.6006 -19 -13.6006l0.100586 -6.69922l5.09961 -0.200195
-l0.100586 -12.1006h-4.10059l-0.0996094 5h-5.2002l-0.0996094 -5h-4.10059l0.100586 12.1006l5.09961 0.200195l0.0996094 6.69922s-10.8994 2.2002 -19 13.6006l-38.2998 4.2998v-23.2002h5.90039v-13.7998h-5.90039v6.59961h-5v-6.59961h-5.89941v13.9004h5.89941
-v23.6992l-28.3994 3.2002v-4.89941c5.59961 -1.10059 9.89941 -6.10059 9.89941 -12.1006c0 -6.7998 -5.59961 -10.2002 -12.3994 -10.2002c-6.80078 0 -12.4004 3.40039 -12.4004 10.2002c0 5.90039 4.2002 11 9.90039 12.1006v5.39941l-80.3008 9v-5.7998
-c5.90039 -0.900391 10.5 -6 10.5 -12.2002c0 -6.7998 -5.59961 -12.3994 -12.3994 -12.3994s-12.4004 5.59961 -12.4004 12.3994c0 6.2002 4.60059 11.2998 10.5 12.2002v6.2998l-88.8994 10l242.899 -13.5c-0.599609 2.2002 -1.09961 4.60059 -1.39941 7.2002
-c-0.300781 2.09961 -0.5 4.2002 -0.600586 6.5l-64.7998 8.09961l64.9004 -1.89941c0 0.399414 0 0.799805 0.0996094 1.09961c2.7998 17.2002 25.5 23.7002 25.5 23.7002l1.09961 26.4004h-23.5996l-19 -41.8008h-17.0996l62.1992 131.4l62.2002 -131.4h-17.0996
-l-19 41.8008h-23.7998l1.09961 -26.3008s22.7002 -6.5 25.5 -23.6992c0 -0.400391 0.0996094 -0.700195 0.0996094 -1.10059l64.9004 1.90039l-64.7998 -8.10059c-0.100586 -2.2998 -0.299805 -4.5 -0.600586 -6.5c-0.299805 -2.59961 -0.799805 -5 -1.39941 -7.19922
-l242.899 13.3994l-88.8994 -10v-6.2998zM328.9 220.1h17.8994l1.7002 40.3008l1.7002 -40.3008h17.8994l-19.5996 42.5z" />
-    <glyph glyph-name="ember" unicode="&#xf423;" horiz-adv-x="640" 
-d="M639.9 193.4c1.09961 -10.8008 -5.30078 -14.3008 -5.30078 -14.3008s-26.5996 -19.5996 -47 -13.6992c-20.3994 5.89941 -21.5 43.1992 -21.5 43.1992h-1.89941l-20.7002 -57.1992s-8.2998 -27.9004 -20.7002 -22.8008
-c-12.3994 5.10059 -12.0996 18.6006 -12.0996 18.6006s-19.2998 -21.2998 -54.7998 -18.6006c-31.1006 2.30078 -41.1006 26.7002 -41.1006 26.7002s-20.7998 -14.3994 -79.0996 -25.8994c-26.1006 -2.90039 -44.6006 12.8994 -44.6006 12.8994
-c-2.39941 -2.39941 -18 -10.2002 -18 -10.2002s-22.2998 -10.2998 -30.8994 5.30078c-8.60059 15.5996 -3 63.6992 -3 63.6992h-1.60059s-12.8994 -26.2998 -19.5996 -49.8994c-6.7002 -23.6006 -15 -21.2002 -15 -21.2002s-15.2998 -1.40039 -18.7998 11.4004
-c-3.5 12.8994 5.59961 59.6992 5.59961 59.6992l-1.2998 -0.299805s-0.799805 1.40039 -12.5996 -23.5996c-20.1006 -48.9004 -24.9004 -50 -36.5 -47.9004c-11.6006 2.10059 -12.1006 16.7002 -12.1006 16.7002l-15.8994 -8.7998s-38.6006 -16.6006 -58.8008 -1.2998
-c-13.3994 10.1992 -18 22.1992 -19.5996 29.6992c0 0 -17 1.80078 -28.0996 6.10059c-11.1006 4.2998 0.0996094 18.2998 0.0996094 18.2998s3.5 5.2998 10 0s18.7998 -2.90039 18.7998 -2.90039c1 8.5 2.5 19.7002 7.7998 31.5c11 24.7002 27.6006 33 41.3008 33.3008
-c13.6992 0.199219 23.3994 -3.5 31.6992 -15.3008c18.6006 -45.8994 -49.3994 -69.1992 -49.3994 -69.1992s-1.7998 -12.1006 16.7002 -11.8008c18.5996 0.200195 46.7998 20.4004 46.7998 20.4004c1.2998 15.4004 12.0996 63.5 15 70.7002
-c2.89941 7.2002 14.2002 5.89941 14.2002 5.89941s8.89941 1.90039 10.5 -7.5c1.69922 -9.39941 -6.40039 -47.5996 -6.40039 -47.5996l1.2998 -1.59961c0.799805 3.69922 20.4004 36.5 20.4004 36.5s11.2998 19.5996 28.5 18.7998s-0.799805 -53.5 -0.799805 -53.5
-l1.2998 -1.60059l1.2998 2.40039c2.2002 5.90039 27.7002 44.5996 27.7002 44.5996s9.59961 11.3008 18.5 8.60059c8.7998 -2.60059 9.39941 -6.7002 9.89941 -14.2002s-7 -52.0996 -7 -52.0996s-4.2998 -29.2002 5.40039 -28.7002s20.2002 10.7002 20.2002 10.7002
-s7.5 57.5996 12.5996 105.1c5.10059 47.5 27.1006 79.5 27.1006 79.5s6.5 10 23.5 16.7002c11.1992 4 23.3994 1.2998 29.1992 -23.1006c9.5 -41 -23.2998 -87.8994 -36.8994 -105.199c5.89941 5.7998 15.7998 12.0996 27.2002 5.2998
-c40.2998 -25.2998 7.2998 -80.9004 7.2998 -80.9004c11.7998 3.7998 33 18 33 18s0.5 6.10059 0.700195 7.5c7.19922 41.2998 32 56.2002 36.5996 59.7002c4.7998 3.59961 47.0996 19.7998 49 -24s-52.9004 -59.0996 -52.9004 -59.0996s4.80078 -12.6006 25 -9.40039
-c20.2002 3.2002 43.3008 22.7998 43.3008 22.7998c0.799805 18 12.5996 61 15 67.2002c2.39941 6.2002 17.1992 6.5 18.7998 3c2.2002 -7 0.299805 -37.5996 0.299805 -37.5996l1.59961 0.5c5.90039 17.5 18.3008 31.1992 18.3008 31.1992s9.89941 9.7002 18 7.30078
-c8.09961 -2.30078 5.09961 -30.4004 5.09961 -30.4004s-4.2998 -30.7002 9.40039 -32c13.6992 -1.40039 29.2998 10.7002 29.2998 10.7002s9.59961 3.89941 10.7002 -6.7998zM61.9004 188.1c0 0 6.19922 -1.89941 19.8994 7.60059
-c13.7002 9.39941 16.4004 24.3994 9.10059 31.3994c-7.2002 6.90039 -28.2002 -7 -29 -39zM334.7 311.9c0 0 -15.9004 -54.5 -16.4004 -70.7002c0 0 44.5 72 40 96.2002c-4.5 24.1992 -23.5996 -25.5 -23.5996 -25.5zM357.5 173.5
-c12.5996 33.0996 -3.59961 45.5 -3.59961 45.5s-23.4004 12.9004 -33.3008 -20.2002c-9.89941 -33.0996 -6.39941 -44.8994 -6.39941 -44.8994s30.7002 -13.4004 43.2998 19.5996zM442.1 188.1c0 0 15.7002 -1.09961 26.4004 14.2002s1.2998 25.5 1.2998 25.5
-s-8.59961 11.1006 -19.5996 -9.09961c-11.1006 -20.1006 -8.10059 -30.6006 -8.10059 -30.6006z" />
-    <glyph glyph-name="font-awesome-flag" unicode="&#xf425;" 
-d="M444.373 88.5762c0 -7.16797 -6.14453 -10.2402 -13.3125 -13.3125c-28.6719 -12.2881 -59.3916 -23.5518 -92.1592 -23.5518c-46.0801 0 -67.584 28.6719 -122.88 28.6719c-39.9365 0 -81.9209 -14.3359 -115.713 -29.6953
-c-2.04785 -1.02441 -4.0957 -1.02441 -6.14355 -2.04883v-77.8232c0 -21.4053 -16.1221 -34.8164 -33.792 -34.8164c-19.4561 0 -34.8164 15.3604 -34.8164 34.8164v374.783c-13.3115 10.2402 -22.5273 26.624 -22.5273 45.0566c0 31.7441 25.5996 57.3438 57.3438 57.3438
-s57.3438 -25.5996 57.3438 -57.3438c0 -18.4326 -8.19141 -34.8164 -22.5273 -45.0566v-31.7432c4.12402 1.37402 58.7676 28.6719 114.688 28.6719c65.2705 0 97.6758 -27.6484 126.976 -27.6484c38.9121 0 81.9209 27.6484 92.1602 27.6484
-c8.19238 0 15.3604 -6.14453 15.3604 -13.3125v-240.64z" />
-    <glyph glyph-name="gitter" unicode="&#xf426;" horiz-adv-x="384" 
-d="M66.4004 125.5h-50.4004v322.5h50.4004v-322.5zM166.9 371.9v-435.9h-50.4004v435.9h50.4004zM267.5 371.9v-435.9h-50.4004v435.9h50.4004zM368 372v-247h-50.4004v247h50.4004z" />
-    <glyph glyph-name="hooli" unicode="&#xf427;" horiz-adv-x="640" 
-d="M144.5 96v16c12.2998 -6.59961 25.0996 -12.2002 38.2998 -16.7998zM202.2 101.3c29.5 -10.7002 55.3994 -13.5 75.2998 -13.2998c-24.7998 -7 -58.2002 -5.2998 -94.7002 7.2002l19.4004 0.799805v5.2998zM611.1 216.5c-16 0 -28.8994 13 -28.8994 28.9004
-c0 15.8994 13 24.5 28.8994 24.5c16 0 28.9004 -8.5 28.9004 -24.5s-13 -28.9004 -28.9004 -28.9004zM582.1 96v110.5h57.9004v-110.5h-57.9004zM508.4 96v168l57.8994 27.2998v-195.3h-57.8994zM477.4 215.4c18.0996 -18.1006 16.6992 -33.8008 16.7998 -52.6006
-c0 -18.7002 1.39941 -34.2998 -16.7998 -52.5c-18.1006 -18.2002 -50.4004 -17.0996 -50.4004 -17.0996s-32.2002 -1.10059 -50.4004 17.0996c-18.1992 18.2002 -16.7998 33.7998 -16.7998 52.5s-1.39941 34.4004 16.7998 52.6006
-c18.1006 18.1992 50.4004 17.0996 50.4004 17.0996s32.2002 1.09961 50.4004 -17.0996zM437.6 143.5v40.4004c0 8.7998 -7.2998 10.8994 -10.6992 10.8994c-3.40039 0 -10.7002 -2.2002 -10.7002 -10.8994v-40.4004c0 -3.59961 1.7998 -12.5 10.7002 -12.5
-c8.89941 0 10.6992 8.90039 10.6992 12.5zM331.4 215.4c18.1992 -18.1006 16.6992 -33.8008 16.6992 -52.3008c0 -18.6992 1.5 -34.2998 -16.6992 -52.5c-18.1006 -18.1992 -50.4004 -17.0996 -50.4004 -17.0996s-32.2002 -1.09961 -50.4004 17.0996
-c-18.1992 18.2002 -16.7998 33.8008 -16.7998 52.5c0 15.6006 -0.899414 29.1006 9.2998 43.7002c-16 11.7998 -58 37.4004 -99.8994 58.2998v-54.2998c8 13.7002 22.7002 22 38.5 21.9004c27.2002 0 40.5996 -18.7002 40.5996 -37.4004v-93.8994
-c-20.3994 7.5 -39.7002 17.3994 -57.7002 29.5996v48.7002c0 8.09961 -1.5 15 -10.5996 15s-10.7998 -11.2998 -10.7998 -18.2002v-29.7998l-4.5 3.59961c-22.9004 18.9004 -40.2998 35.6006 -53.4004 50.2998v-31c11 -9.7998 23.6006 -20.1992 38.4004 -31.3994
-c6.39941 -4.90039 12.8994 -9.40039 19.3994 -13.6006v-28.5996h-57.8994v73.7002c-86.7002 78 -61.7998 110.8 -61.7998 110.8c8.2998 18.2998 42.8994 22.2002 97.2998 0.0996094l22.5 10.6006v-20.7002c29.5996 -14.5996 63.8994 -31.5 102.1 -61.0996
-c1.60059 2.09961 3.40039 4.09961 5.2998 6c18.2002 18.1992 50.4004 17.0996 50.4004 17.0996s32.2002 1.09961 50.4004 -17.0996zM65.2002 264l29.2002 13.7002c-26.9004 10.0996 -50.9004 13.5 -64.4004 2.09961c-3.7002 -3.09961 -13.5 -24.5996 35.2002 -79.0996
-v63.2998zM291.7 143.5v40.4004c0 8.7998 -7.2998 10.8994 -10.7002 10.8994s-10.7002 -2.2002 -10.7002 -10.8994v-40.4004c0 -3.59961 1.7998 -12.5 10.7002 -12.5s10.7002 8.90039 10.7002 12.5z" />
-    <glyph glyph-name="strava" unicode="&#xf428;" horiz-adv-x="384" 
-d="M158.4 448l150.199 -292h-88.5l-61.6992 116.1l-62.2002 -116.1h-89.2002zM308.6 156h67.6006l-111.5 -220l-112.2 220h67.5996l44.6006 -88.2002z" />
-    <glyph glyph-name="stripe" unicode="&#xf429;" horiz-adv-x="640" 
-d="M165 303.3l0.0996094 -38.5h33.7002v-37.7998h-33.7002v-63.2002c0 -26.2002 28 -18 33.7002 -15.7002v-33.7998c-5.89941 -3.2002 -16.5996 -5.89941 -31.2002 -5.89941c-26.2998 0 -46.0996 17 -46.0996 43.2998l0.200195 142.399zM254.1 251.7
-c10.4004 19.0996 31.1006 15.2002 37.1006 13.0996v-40.7998c-5.7002 1.7998 -23.4004 4.5 -33.9004 -9.2998v-103.101h-44.2998v153.2h38.4004zM346.4 324v-36.2002l-44.6006 -9.5v36.2002zM44.9004 219.7c0 -20 67.8994 -10.5 67.8994 -63.4004
-c0 -32 -25.3994 -47.7998 -62.2998 -47.7998c-15.2998 0 -32 3 -48.5 10.0996v40c14.9004 -8.09961 33.9004 -14.1992 48.5996 -14.1992c9.90039 0 17 2.69922 17 10.8994c0 21.2002 -67.5 13.2002 -67.5 62.4004c0 31.3994 24 50.2002 60 50.2002
-c14.7002 0 29.4004 -2.30078 44.1006 -8.10059v-41.7998c-13.5 7.2998 -30.7002 11.4004 -44.2002 11.4004c-9.2998 -0.100586 -15.0996 -2.80078 -15.0996 -9.7002zM640 186.4c0 -4.30078 -0.400391 -13.6006 -0.599609 -15.9004h-86.9004
-c2 -20.7998 17.2002 -26.9004 34.5 -26.9004c17.5996 0 31.5 3.7002 43.5996 9.80078v-33.4004c-12.0996 -6.7002 -28 -11.5 -49.1992 -11.5c-43.2002 0 -73.5 24.7002 -73.5 78.2002c0 45.2002 25.6992 81.0996 67.8994 81.0996s64.2002 -35.8994 64.2002 -81.3994z
-M552.1 203.2h45.9004c0 20 -11.5996 28.3994 -22.5 28.3994c-11.0996 0 -23.4004 -8.39941 -23.4004 -28.3994zM439.2 267.8c31.2002 0 60.5996 -28.0996 60.5 -79.7002c0 -56.3994 -29 -79.5996 -60.7998 -79.5996c-15.5 0 -25 6.5 -31.4004 11.2002l-0.0996094 -50.2002
-l-44.4004 -9.40039v204.801h39.0996l2.30078 -11c6.19922 5.69922 17.3994 13.8994 34.7998 13.8994zM428.6 145.3c16.5 0 27.5 17.9004 27.4004 41.7998c0 23.2002 -11.2002 41.4004 -27.4004 41.4004c-10.1992 0 -16.5996 -3.7002 -21.1992 -8.7998l0.299805 -66
-c4.2998 -4.60059 10.5 -8.40039 20.8994 -8.40039zM301.9 111.6v153.2h44.5996v-153.2h-44.5996z" />
-    <glyph glyph-name="stripe-s" unicode="&#xf42a;" horiz-adv-x="384" 
-d="M155.3 293.4c0 -64.2002 218 -33.7002 218 -203.9c0 -102.6 -81.7002 -153.6 -200.3 -153.6c-55.2773 0.125 -108.22 11.7861 -156 32.3994v128.5c47.9004 -26 108.9 -45.5 156.1 -45.5c31.8008 0 54.7002 8.5 54.7002 34.9004c0 68.0996 -216.8 42.5 -216.8 200.399
-c0 101 77.0996 161.4 192.8 161.4c47.2998 0 94.5 -7.2002 141.8 -26.0996v-134.301c-43.3994 23.4004 -98.5 36.7002 -141.899 36.7002c-29.7998 0 -48.4004 -8.59961 -48.4004 -30.8994z" />
-    <glyph glyph-name="typo3" unicode="&#xf42b;" 
-d="M178.7 369.6c0 -66.3994 83.3994 -264.899 140.6 -264.899c6.90039 0 11.5 0 18.5 2.2998c-49.3994 -79.5 -110.399 -139 -146.7 -139c-77.2998 0 -184.1 234 -184.1 337.5c0 16.2998 3.90039 29.4004 9.2998 37.0996c27 32.4004 106.8 57.9004 176.3 66.4004
-c-8.5 -7 -13.8994 -14.7002 -13.8994 -39.4004zM301.5 416c71.7998 0 138.8 -11.5996 138.8 -52.5c0 -82.5996 -52.5 -182.3 -78.7998 -182.3c-47.9004 0 -101.7 132.1 -101.7 198.5c0 30.8994 11.6006 36.2998 41.7002 36.2998z" />
-    <glyph glyph-name="amazon-pay" unicode="&#xf42c;" horiz-adv-x="640" 
-d="M14 122.7c2.2998 4.2002 5.2002 4.89941 9.7002 2.5c10.3994 -5.60059 20.5996 -11.4004 31.2002 -16.7002c39.8447 -19.8691 83.1084 -35.7148 127.399 -46.2998c20.5771 -4.96484 41.8789 -8.95996 63.2002 -11.7998
-c26.4932 -3.56152 53.5293 -5.40039 80.9922 -5.40039c4.97266 0 9.06348 0.0800781 14.0078 0.200195c17.4004 0.399414 34.7998 1.7998 52.0996 3.7998c56.8682 6.62891 112.369 21.4697 163.301 42.7998c2.89941 1.2002 5.89941 2 9.09961 1.2002
-c6.7002 -1.7998 9 -9 4.09961 -13.9004c-2.98828 -2.74707 -6.16797 -5.2002 -9.59961 -7.39941c-30.7002 -21.1006 -64.2002 -36.4004 -99.5996 -47.9004c-24.0801 -7.76074 -49.5137 -13.7686 -75.1006 -17.5996c-17.4854 -2.67871 -35.0918 -4.29395 -53.2002 -4.7998
-c-0.847656 -0.0517578 -1.68066 -0.152344 -2.5 -0.300781h-21.0996c-0.818359 0.148438 -1.65234 0.249023 -2.5 0.300781c-3.59961 0.199219 -7.2002 0.299805 -10.7002 0.399414c-17.1182 0.776367 -33.8633 2.55957 -50.3994 5.2998
-c-27.5244 4.48633 -54.7959 11.6387 -80.4004 20.9004c-54.1943 19.5449 -103.535 49.2734 -145.6 87c-1.80078 1.59961 -3 3.7998 -4.40039 5.7002v2zM172 382.9c2.7998 0 5.5 0 8.2998 -0.100586c3.2998 -0.5 6.60059 -0.799805 9.7998 -1.5
-c21.3008 -4.39941 35.4004 -17.2998 43.9004 -36.8994c6.90039 -15.9004 8.59961 -32.7002 8.09961 -49.8008c-0.399414 -15.3994 -3.2998 -30.1992 -10.2998 -44.0996c-9.2002 -18.4004 -23.3994 -30.9004 -43.7998 -34.9004c-22.5 -4.39941 -43.0996 0.5 -61 15.4004
-c-0.5 0.5 -1.09961 1 -2.2002 1.90039v-72.4004c0 -1 0 -2 -0.0996094 -3c-0.299805 -3 -2.10059 -5 -5 -5c-7 -0.0996094 -14.1006 -0.0996094 -21.1006 0c-2.89941 0.0996094 -4.69922 2 -4.89941 5c-0.100586 1 -0.100586 2 -0.100586 3v209.3
-c0 6.90039 1.30078 8.2002 8.2002 8.2002h11.5c4.60059 0 6.90039 -2 7.60059 -6.59961c0.5 -2.7002 0.899414 -5.5 1.2998 -8.2002c0.0537109 -0.494141 0.193359 -0.970703 0.399414 -1.40039c2.5 1.90039 4.7002 3.7002 7.10059 5.40039
-c10.8691 7.98535 23.957 13.3662 38 15.0996zM124.6 341c0.100586 -14.0996 0 -28 0 -42.0996c0 -14.1006 0.100586 -28.1006 0 -42.2002c-0.00585938 -0.0849609 -0.0126953 -0.165039 -0.0126953 -0.250977c0 -1.29102 0.686523 -2.42188 1.71289 -3.04883
-c11.2002 -7.90039 23.4004 -13.3008 37.4004 -13.9004c20.2002 -0.900391 35.7998 7.2002 42.5996 28.5c3.2002 10 4 20.2002 4 30.5996c0 11.2002 -1 22.3008 -4.89941 33c-6.40039 17.5 -18.6006 24.8008 -33.5 25.9004
-c-16.8008 1.2998 -31.9004 -3.7002 -45.6006 -13.2002c-1.02734 -0.605469 -1.71289 -1.7168 -1.71289 -2.99414c0 -0.103516 0.00390625 -0.205078 0.0126953 -0.305664zM330.3 382.9c4 0 8 0 11.9004 0.0996094c3.59961 -0.5 7.2002 -0.799805 10.7998 -1.2998
-c7.7002 -1.10059 15.0996 -3.10059 21.7998 -7.10059c11.6006 -6.89941 17.1006 -17.5 19 -30.3994c0.597656 -3.93945 0.905273 -7.87793 0.905273 -11.9834c0 -0.305664 -0.00195312 -0.611328 -0.00488281 -0.916992v-106
-c0.00292969 -0.157227 0.00488281 -0.282227 0.00488281 -0.44043c0 -0.794922 -0.0351562 -1.58203 -0.105469 -2.35938c-0.0742188 -2.59277 -2.19336 -4.67969 -4.7998 -4.7002c-5.39941 -0.0996094 -10.8994 -0.0996094 -16.2998 0
-c-2.90039 0.100586 -4.7998 2.10059 -5.40039 5.2002c-0.699219 3.59961 -1.19922 7.2002 -1.7998 11c-0.583984 -0.296875 -1.11816 -0.665039 -1.59961 -1.09961c-11.7998 -9.7002 -25.2002 -16.1006 -40.2998 -18.4004c-13.1006 -2 -26 -1.2002 -37.9004 5.40039
-c-12.4004 6.89941 -19.4004 17.6992 -21.4004 31.6992c-1.5 10.5 -0.799805 20.9004 3.90039 30.7002c6.09961 12.6006 16.5 20.4004 29.4004 24.9004c10.7998 3.7998 22 4.5 33.2998 3.89941c10.9355 -0.680664 21.6748 -2.35449 32 -4.89941
-c0.399414 -0.100586 0.799805 0 1.2998 -0.100586c0.107422 0.453125 0.174805 0.921875 0.200195 1.40039c-0.100586 8.2998 0 16.5996 -0.299805 24.9004c-0.200195 5.89941 -1.60059 11.5996 -5.30078 16.3994c-4.19922 5.5 -10.2998 7.40039 -16.7998 8.40039
-c-12.5 1.89941 -24.8994 0.899414 -37.2002 -1.40039c-7.89941 -1.5 -15.6992 -3.7002 -23.5 -5.7002c-4.69922 -1.19922 -6.69922 0.100586 -6.7998 4.90039c-0.0996094 3.2998 0.100586 6.59961 0 9.90039c-0.0996094 3.89941 1.7002 6.5 5.2998 7.69922
-c5.90039 2 11.8008 4.2002 17.9004 5.80078c9.3125 2.27539 18.9932 3.68164 28.9004 4.09961c0.899414 0.0996094 1.89941 0.299805 2.89941 0.400391zM365.3 255.2c-0.0996094 4.7002 0.100586 9.2998 0.100586 14.0996s-0.100586 9.5 0 14.2998
-c0 1.60059 -0.5 2.40039 -2.10059 2.60059c-8.39941 1.09961 -16.5996 2.7002 -25 3.39941c-2.34766 0.273438 -4.66895 0.400391 -7.08984 0.400391c-6.15625 0 -12.1016 -0.90918 -17.71 -2.59961c-8 -2.60059 -13.9004 -7.30078 -16.4004 -15.6006
-c-0.914062 -3.01953 -1.40527 -6.22168 -1.40527 -9.53906c0 -3.43457 0.527344 -6.74707 1.50586 -9.86035c1.77637 -6.16602 6.41895 -11.1133 12.3994 -13.3008c5.40039 -2.19922 11.1006 -2.39941 16.8008 -1.7998c13.8994 1.40039 26.1992 6.7998 37.3994 14.9004
-c0.90918 0.594727 1.50684 1.61719 1.50684 2.7832c0 0.0732422 -0.00195312 0.145508 -0.00683594 0.216797zM625.2 125.8v-17.2998c-0.700195 -3.59961 -1.2998 -7.2998 -2.10059 -10.9004c-4.39941 -20.2998 -11.8994 -39.1992 -24.6992 -55.5996
-c-3.97559 -4.76562 -8.1582 -9.17773 -12.7002 -13.4004c-1.33008 -1.21289 -2.98242 -2.09082 -4.7998 -2.5c-2.90039 -0.699219 -4.60059 1.2002 -4.10059 4.10059c0.243164 1.03027 0.584961 2.04785 1 3c5.7998 14.7998 11.7002 29.7002 15.7998 45.0996
-c2.10059 7.60059 3.90039 15.2998 3.5 23.2998c-0.199219 5.2002 -2.5 9 -7.59961 10.4004c-4.60352 1.3623 -9.46191 2.29004 -14.4004 2.7002c-11.3994 0.899414 -22.8994 0.200195 -34.2998 -0.900391c-7.7998 -0.799805 -15.5 -1.7002 -23.2998 -2.5
-c-0.607422 -0.0693359 -1.20215 -0.104492 -1.82715 -0.104492c-0.125 0 -0.249023 0.00195312 -0.373047 0.00488281c-1.5 -0.100586 -3.2002 0.299805 -3.59961 1.7998c-0.129883 0.450195 -0.197266 0.930664 -0.197266 1.42285
-c0 0.939453 0.253906 1.82031 0.697266 2.57715c1.00879 1.39258 2.25 2.56836 3.7002 3.5c12.0996 8.2998 25.6992 12.9004 40 15.5996c8.68945 1.59961 17.376 2.43945 26.5254 2.43945c4.26953 0 8.49707 -0.182617 12.6738 -0.539062
-c7.24512 -0.454102 14.3311 -1.80273 21 -3.90039c4.30078 -1.39941 8.10059 -3.2998 9.10059 -8.2998zM493.1 249c0.300781 -0.700195 0.501953 -1.2998 0.902344 -2.40039c2.59961 7.7002 5.2002 15 7.7002 22.2002l34.7998 100
-c0.5 1.40039 1.09961 2.7002 1.59961 4.10059c0.980469 3.02734 3.81543 5.21777 7.16699 5.21777c0.179688 0 0.357422 -0.00585938 0.533203 -0.0185547c6.60059 0 13.2998 0.100586 19.9004 0c2.7998 0 4.09961 -1.59961 3.7002 -4.39941
-c-0.335938 -1.89648 -0.884766 -3.76465 -1.60059 -5.5c-23.3662 -59.9336 -46.8994 -119.801 -70.5996 -179.601c-2.58691 -6.37598 -5.6875 -12.5654 -9.2002 -18.3994c-8.7998 -14.9004 -22.4004 -21.7998 -39.5 -21.4004c-5.7666 0.225586 -11.3984 0.905273 -16.9004 2
-c-5.39941 0.900391 -7.2998 3.40039 -7.39941 8.90039c-0.100586 3.2666 -0.100586 6.56641 0 9.89941c0.0996094 3.5 1.7998 5 5.2002 4.80078c2.5 -0.200195 5 -0.800781 7.5 -1c1.57227 -0.178711 3.11328 -0.264648 4.7334 -0.264648
-c3.68457 0 7.25879 0.473633 10.666 1.36426c7.2002 1.90039 12.2002 6.7998 15.2002 13.2998c3.40039 7.2998 6 15 9.2998 22.2998c1.90039 4.2002 1.5 7.7002 -0.200195 11.8008c-19.7998 48.5 -39.5 97 -59.1006 145.5
-c-0.770508 1.95117 -1.41797 4.02051 -1.90039 6.09961c-0.5 2.5 0.700195 4.5 3.2002 4.5c7.7002 0.0996094 15.2998 0 22.9004 -0.0996094c3.2002 0 5.2998 -1.90039 6.39941 -4.80078c2.10059 -5.59961 4.30078 -11.1992 6.30078 -16.8994
-c12.8994 -35.7666 25.7988 -71.5 38.6982 -107.2z" />
-    <glyph glyph-name="cc-amazon-pay" unicode="&#xf42d;" horiz-adv-x="576" 
-d="M124.7 246.2c0.0996094 11.7998 0 23.5 0 35.2998v35.2998c0 1.2998 0.399414 2 1.39941 2.7002c11.5 8 24.1006 12.0996 38.2002 11.0996c12.5 -0.899414 22.7002 -7 28.1006 -21.6992c3.2998 -8.90039 4.09961 -18.2002 4.09961 -27.7002
-c0 -8.7002 -0.700195 -17.2998 -3.40039 -25.6006c-5.69922 -17.7998 -18.6992 -24.6992 -35.6992 -23.8994c-11.7002 0.5 -21.9004 5 -31.4004 11.7002c-0.900391 0.799805 -1.40039 1.59961 -1.2998 2.7998zM279.6 231.6c-5.19922 2 -8.7998 5.7002 -10.3994 11.2002
-c-1.7002 5.40039 -1.7002 10.7998 -0.100586 16.2002c2 6.90039 7 10.9004 13.7002 13.0996c6.7998 2.2002 13.7998 2.5 20.7998 1.90039c7 -0.700195 13.9004 -2 20.9004 -2.90039c1.40039 -0.199219 1.7998 -0.799805 1.7998 -2.19922c-0.0996094 -4 0 -8 0 -12
-c0 -3.90039 -0.0996094 -7.90039 0 -11.8008c0 -1.19922 -0.399414 -1.89941 -1.2998 -2.5c-9.40039 -6.7998 -19.7002 -11.2998 -31.2998 -12.5c-4.7998 -0.5 -9.5 -0.299805 -14.1006 1.5zM576 368v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352
-c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48zM368.5 344.1c0.400391 -1.69922 0.900391 -3.39941 1.59961 -5.09961c16.5 -40.5996 32.9004 -81.2998 49.5 -121.9c1.40039 -3.5 1.7002 -6.39941 0.200195 -9.89941
-c-2.7998 -6.2002 -4.89941 -12.6006 -7.7998 -18.7002c-2.59961 -5.5 -6.7002 -9.5 -12.7002 -11.2002c-4.2002 -1.09961 -8.5 -1.2998 -12.8994 -0.899414c-2.10059 0.199219 -4.2002 0.699219 -6.30078 0.799805c-2.7998 0.200195 -4.19922 -1.10059 -4.2998 -4
-c-0.0996094 -2.7998 -0.0996094 -5.60059 0 -8.2998c0.100586 -4.60059 1.60059 -6.7002 6.2002 -7.5c4.7002 -0.800781 9.40039 -1.60059 14.2002 -1.7002c14.2998 -0.299805 25.7002 5.39941 33.0996 17.8994c2.90039 4.90039 5.60059 10.1006 7.7002 15.4004
-c19.7998 50.0996 39.5 100.3 59.2002 150.5c0.599609 1.5 1.09961 3 1.2998 4.59961c0.400391 2.40039 -0.700195 3.60059 -3.09961 3.7002c-5.60059 0.100586 -11.1006 0 -16.7002 0c-3.10059 0 -5.2998 -1.39941 -6.40039 -4.2998
-c-0.399414 -1.09961 -0.899414 -2.2998 -1.2998 -3.40039l-29.0996 -83.6992c-2.10059 -6.10059 -4.2002 -12.1006 -6.5 -18.6006c-0.400391 0.900391 -0.600586 1.40039 -0.800781 1.90039c-10.7998 29.8994 -21.5996 59.8994 -32.3994 89.7998
-c-1.7002 4.7002 -3.5 9.5 -5.2998 14.2002c-0.900391 2.5 -2.7002 4 -5.40039 4c-6.40039 0.0996094 -12.7998 0.200195 -19.2002 0.0996094c-2.2002 0 -3.2998 -1.59961 -2.7998 -3.7002zM242.4 242c1.69922 -11.7002 7.59961 -20.7998 18 -26.5996
-c9.89941 -5.5 20.6992 -6.2002 31.6992 -4.60059c12.7002 1.90039 23.9004 7.2998 33.8008 15.5c0.399414 0.299805 0.799805 0.600586 1.39941 1c0.5 -3.2002 0.900391 -6.2002 1.5 -9.2002c0.5 -2.59961 2.10059 -4.2998 4.5 -4.39941
-c4.60059 -0.100586 9.10059 -0.100586 13.7002 0c2.2998 0.0996094 3.7998 1.59961 4 3.89941c0.0996094 0.800781 0.0996094 1.60059 0.0996094 2.30078v88.7998c0 3.59961 -0.199219 7.2002 -0.699219 10.7998c-1.60059 10.7998 -6.2002 19.7002 -15.9004 25.4004
-c-5.59961 3.2998 -11.7998 5 -18.2002 5.89941c-3 0.400391 -6 0.700195 -9.09961 1.10059h-10c-0.799805 -0.100586 -1.60059 -0.300781 -2.5 -0.300781c-8.2002 -0.399414 -16.2998 -1.39941 -24.2002 -3.5c-5.09961 -1.2998 -10 -3.19922 -15 -4.89941
-c-3 -1 -4.5 -3.2002 -4.40039 -6.5c0.100586 -2.7998 -0.0996094 -5.60059 0 -8.2998c0.100586 -4.10059 1.80078 -5.2002 5.7002 -4.10059c6.5 1.7002 13.1006 3.5 19.7002 4.7998c10.2998 1.90039 20.7002 2.7002 31.0996 1.2002
-c5.40039 -0.799805 10.5 -2.39941 14.1006 -7c3.09961 -4 4.2002 -8.7998 4.39941 -13.7002c0.300781 -6.89941 0.200195 -13.8994 0.300781 -20.7998c0 -0.399414 -0.100586 -0.700195 -0.200195 -1.2002c-0.400391 0 -0.799805 0 -1.10059 0.100586
-c-8.7998 2.09961 -17.6992 3.59961 -26.7998 4.09961c-9.5 0.5 -18.8994 -0.0996094 -27.8994 -3.2002c-10.8008 -3.7998 -19.5 -10.2998 -24.6006 -20.7998c-4.09961 -8.2998 -4.59961 -17 -3.39941 -25.7998zM98.7002 341.1v-175.3c0 -0.799805 0 -1.7002 0.0996094 -2.5
-c0.200195 -2.5 1.7002 -4.09961 4.10059 -4.2002c5.89941 -0.0996094 11.7998 -0.0996094 17.6992 0c2.5 0 4 1.7002 4.10059 4.10059c0.0996094 0.799805 0.0996094 1.7002 0.0996094 2.5v60.7002c0.900391 -0.700195 1.40039 -1.2002 1.90039 -1.60059
-c15 -12.5 32.2002 -16.5996 51.0996 -12.8994c17.1006 3.39941 28.9004 13.8994 36.7002 29.1992c5.7998 11.6006 8.2998 24.1006 8.7002 37c0.5 14.3008 -1 28.4004 -6.7998 41.7002c-7.10059 16.4004 -18.9004 27.2998 -36.7002 30.9004
-c-2.7002 0.599609 -5.5 0.799805 -8.2002 1.2002h-7c-1.2002 -0.200195 -2.40039 -0.300781 -3.59961 -0.5c-11.7002 -1.40039 -22.3008 -5.80078 -31.8008 -12.7002c-2 -1.40039 -3.89941 -3 -5.89941 -4.5c-0.100586 0.5 -0.299805 0.799805 -0.400391 1.2002
-c-0.399414 2.2998 -0.700195 4.59961 -1.09961 6.89941c-0.600586 3.90039 -2.5 5.5 -6.40039 5.60059h-9.7002c-5.89941 0.0996094 -6.89941 -1 -6.89941 -6.80078zM493.6 109c-2.69922 0.700195 -5.09961 0 -7.59961 -1c-43.9004 -18.4004 -89.5 -30.2002 -136.8 -35.7998
-c-14.5 -1.7002 -29.1006 -2.7998 -43.7002 -3.2002c-26.5996 -0.700195 -53.2002 0.799805 -79.5996 4.2998c-17.8008 2.40039 -35.5 5.7002 -53 9.90039c-37 8.89941 -72.7002 21.7002 -106.7 38.7998c-8.7998 4.40039 -17.4004 9.2998 -26.1006 14
-c-3.7998 2.09961 -6.19922 1.5 -8.19922 -2.09961v-1.7002c1.19922 -1.60059 2.19922 -3.40039 3.69922 -4.7998c36 -32.2002 76.6006 -56.5 122 -72.9004c21.9004 -7.90039 44.4004 -13.7002 67.3008 -17.5c14 -2.2998 28 -3.7998 42.1992 -4.5
-c3 -0.0996094 6 -0.200195 9 -0.400391c0.700195 0 1.40039 -0.199219 2.10059 -0.299805h17.7002c0.699219 0.100586 1.39941 0.299805 2.09961 0.299805c14.9004 0.400391 29.7998 1.80078 44.5996 4c21.4004 3.2002 42.4004 8.10059 62.9004 14.7002
-c29.5996 9.60059 57.7002 22.4004 83.4004 40.1006c2.7998 1.89941 5.69922 3.7998 8 6.19922c4.2998 4.40039 2.2998 10.4004 -3.30078 11.9004zM544 136.7c-0.799805 4.2002 -4 5.7998 -7.59961 7c-5.7002 1.89941 -11.6006 2.7998 -17.6006 3.2998
-c-11 0.900391 -22 0.400391 -32.7998 -1.59961c-12 -2.2002 -23.4004 -6.10059 -33.5 -13.1006c-1.2002 -0.799805 -2.40039 -1.7998 -3.09961 -3c-0.600586 -0.899414 -0.700195 -2.2998 -0.5 -3.39941c0.299805 -1.30078 1.69922 -1.60059 3 -1.5
-c0.599609 0 1.19922 0 1.7998 0.0996094l19.5 2.09961c9.59961 0.900391 19.2002 1.5 28.7998 0.800781c4.09961 -0.300781 8.09961 -1.2002 12 -2.2002c4.2998 -1.10059 6.2002 -4.40039 6.40039 -8.7002c0.299805 -6.7002 -1.2002 -13.0996 -2.90039 -19.5
-c-3.5 -12.9004 -8.2998 -25.4004 -13.2998 -37.7998c-0.299805 -0.799805 -0.700195 -1.7002 -0.799805 -2.5c-0.400391 -2.5 1 -4 3.39941 -3.5c1.40039 0.299805 3 1.09961 4 2.09961c3.7002 3.60059 7.5 7.2002 10.6006 11.2002
-c10.6992 13.7998 17 29.5996 20.6992 46.5996c0.700195 3 1.2002 6.10059 1.7002 9.10059c0.200195 4.7002 0.200195 9.59961 0.200195 14.5z" />
-    <glyph glyph-name="ethereum" unicode="&#xf42e;" horiz-adv-x="320" 
-d="M311.9 187.2l-151.9 -92.7998l-152 92.7998l152 260.8zM160 64.5996l152 92.8008l-152 -221.4l-152 221.4z" />
-    <glyph glyph-name="korvue" unicode="&#xf42f;" horiz-adv-x="446" 
-d="M386.5 414c32.7002 0 59.5 -26.7998 59.5996 -59.5v-327c0 -32.7002 -26.5 -59.5 -59.5 -59.5h-327.1c-32.7002 0 -59.5 26.7998 -59.5 59.4004v327.1c0 32.7002 26.7998 59.5 59.5 59.5h327zM87.0996 327.2v-132h187.5l81.2002 132h-110.899l-61.8008 -116v116h-96z
-M248.9 55.0996h118.399l-88.5996 130.801h-191.5v-130.801h96v113.601z" />
-    <glyph glyph-name="elementor" unicode="&#xf430;" 
-d="M425.6 416c12.4004 0 22.4004 -10 22.4004 -22.4004v-403.199c0 -12.4004 -10 -22.4004 -22.4004 -22.4004h-403.199c-12.4004 0 -22.4004 10 -22.4004 22.4004v403.199c0 12.4004 10 22.4004 22.4004 22.4004h403.199zM164.3 92.5v199h-39.7998v-199h39.7998z
-M323.6 92.5v39.7998h-119.5v-39.7998h119.5zM323.6 172.1v39.8008h-119.5v-39.8008h119.5zM323.6 251.8v39.7998h-119.5v-39.7998h119.5z" />
-    <glyph glyph-name="youtube-square" unicode="&#xf431;" 
-d="M186.8 245.9l95.2002 -54.1006l-95.2002 -54.0996v108.2zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM406 191.7c0 0 0 59.5996 -7.59961 88.2002
-c-4.2002 15.7998 -16.5 28.1992 -32.2002 32.3994c-28.2998 7.7002 -142.2 7.7002 -142.2 7.7002s-113.9 0 -142.2 -7.7002c-15.7002 -4.2002 -28 -16.5996 -32.2002 -32.3994c-7.59961 -28.5 -7.59961 -88.2002 -7.59961 -88.2002s0 -59.6006 7.59961 -88.2002
-c4.2002 -15.7998 16.5 -27.7002 32.2002 -31.9004c28.2998 -7.59961 142.2 -7.59961 142.2 -7.59961s113.9 0 142.2 7.7002c15.7002 4.2002 28 16.0996 32.2002 31.8994c7.59961 28.5 7.59961 88.1006 7.59961 88.1006z" />
-    <glyph glyph-name="flipboard" unicode="&#xf44d;" 
-d="M0 416h448v-448h-448v448zM358.4 236.8v89.6006h-268.801v-268.801h89.6006v89.6006h89.5996v89.5996h89.6006z" />
-    <glyph glyph-name="hips" unicode="&#xf452;" horiz-adv-x="640" 
-d="M251.6 290.4v-201.801c0 -1.89941 -0.899414 -2.7998 -2.7998 -2.7998h-40.8994c-1.60059 0 -2.7002 1.40039 -2.7002 2.7998v201.801c0 1.39941 1.09961 2.7998 2.7002 2.7998h40.8994c1.90039 0 2.7998 -0.900391 2.7998 -2.7998zM156.5 280
-c18.7002 -13.5 28 -31.9004 28 -55.2998v-136.101c0 -1.89941 -0.900391 -2.7998 -2.7002 -2.7998h-27.2998c-9.09961 0 -16.4004 7.2998 -16.4004 16.2998v122.601c0 0.899414 2.7002 27 -45.7998 27c-48.5996 0 -45.7998 -26.2002 -45.7998 -27v-136.101
-c0 -1.89941 -0.900391 -2.7998 -2.7998 -2.7998h-41c-1.7998 0 -2.7002 0.900391 -2.7002 2.7998v279.2c0 1.7998 0.900391 2.7002 2.7002 2.7002h40.8994c1.90039 0 2.80078 -0.900391 2.80078 -2.7002v-81.2002c15.1992 7.7002 31.6992 11.5 49.7998 11.4004
-c24 -0.0996094 44.2002 -6.2002 60.2998 -18zM634.9 169.9c5.5 -12.6006 6.59961 -25.6006 3.09961 -39.1006c-9.59961 -36.8994 -44.9004 -45.5 -45.5996 -45.7998c-10.5 -3.09961 -23.6006 -4.2998 -36.3008 -4.2998c-16.5996 0 -32.5996 2.7002 -48.1992 8.2002
-c-9.7002 3.39941 -14.6006 10.2998 -14.6006 20.6992v34.4004c0 2.09961 2.2998 3.7002 4.40039 2.2998c13.7002 -10.2002 34.0996 -19.0996 58.3994 -19.0996c23.3008 0 32.8008 4.5 36.5 13.5996c3 7.90039 -0.599609 16.1006 -12.1992 21.2002l-53.6006 23.5
-c-21.3994 9.40039 -33.7998 24 -37.2002 43.5996c-5.69922 33.7002 22.2002 53.3008 22.7002 53.7002c13.2002 9.60059 32 15.4004 58.5 15.4004c19 0 37.4004 -3.2998 55.1006 -9.90039c1.2998 -0.5 1.89941 -1.2998 1.89941 -2.59961v-44.7002
-c0 -2.09961 -2.2998 -3.40039 -4 -2.40039c-39.7002 20.7002 -76.5996 12.3008 -84 6.80078c-6.59961 -4.90039 -6 -12.5 2.60059 -16.1006l57.5996 -25.2998c16.5 -7.09961 28.0996 -18.4004 34.9004 -34.0996zM376.2 298.2c60.3994 0 108.7 -48.2998 108.6 -108.601
-c0 -60.1992 -48.2002 -108.699 -108.7 -108.699c-21.8994 0 -41.1992 6.39941 -57.6992 19.0996v-88.7998c0 -1.7998 -0.900391 -2.7002 -2.80078 -2.7002h-40.8994c-2.10059 0 -2.7002 1.90039 -2.7002 2.7002v183.5c0 83.3994 72.5 103.5 104.2 103.5zM376.2 127.3
-c34.8994 0 62.2998 27.9004 62.2002 62.2002c0 34.5996 -27.7002 62.2002 -62.2002 62.2002c-34.6006 0 -62.2002 -27.7002 -62.2002 -62.2002c0 -17.2002 6 -31.7998 18.2002 -44c12.0996 -12.0996 26.7998 -18.2002 44 -18.2002zM228.3 375.5
-c15.9004 0 28.9004 -12.7002 28.9004 -28.9004c0 -15.7998 -12.7002 -28.8994 -28.9004 -28.8994s-28.8994 13.2998 -28.8994 28.8994c0.0996094 16 13 28.9004 28.8994 28.9004z" />
-    <glyph glyph-name="php" unicode="&#xf457;" horiz-adv-x="640" 
-d="M320 343.5c-171.3 0 -303.2 -72.2002 -303.2 -151.5s131.8 -151.5 303.2 -151.5c171.3 0 303.2 72.2002 303.2 151.5s-131.8 151.5 -303.2 151.5zM320 360.3c176.7 0 320 -75.2998 320 -168.3s-143.3 -168.3 -320 -168.3s-320 75.2998 -320 168.3s143.3 168.3 320 168.3z
-M218.2 205.5c7.39941 38.4004 -18.4004 34.2998 -56.4004 34.2998l-13.7002 -70.5996c34.3008 0 62.2002 -4.2002 70.1006 36.2998zM97.4004 97.7002l32.6992 168.7h70.7002c21.2002 0 36.7998 -5.5 46.5 -16.7002c18.6006 -21.4004 11.7998 -64.1006 -14.2998 -88.1006
-c-23.5996 -22.0996 -49.0996 -19.0996 -90.2002 -19.0996l-8.7002 -44.7998h-36.6992zM283.1 311.3h36.5l-8.69922 -44.7998c31.5 0 60.6992 2.2998 74.7998 -10.7002c14.7998 -13.5996 7.7002 -31 -8.2998 -113.1h-37c15.3994 79.3994 18.2998 86 12.6992 92
-c-5.39941 5.7998 -17.6992 4.59961 -47.3994 4.59961l-18.7998 -96.5996h-36.5zM505 205.5c7.40039 38.4004 -18.2002 34.2998 -56.4004 34.2998l-13.6992 -70.5996c33.3994 0 62.0996 -4.7998 70.0996 36.2998zM384.2 97.7002l32.7998 168.7h70.7002
-c21.2002 0 36.7998 -5.5 46.5 -16.7002c18.5996 -21.4004 11.7998 -64.1006 -14.2998 -88.1006c-23.1006 -21.5996 -47 -19.0996 -90.2002 -19.0996l-8.7002 -44.7998h-36.7998z" />
-    <glyph glyph-name="quinscape" unicode="&#xf459;" horiz-adv-x="512" 
-d="M313.6 -26.5996c4.40039 -4.40039 8.10059 -9 13.3008 -12.5c-21.7051 -6.54492 -44.666 -10.1084 -68.4922 -10.1084c-0.636719 0 -1.27246 0.00292969 -1.9082 0.0078125c-135 0 -244.5 109.5 -244.5 244.601c0 135.1 109.4 244.6 244.5 244.6
-s244.6 -109.5 244.6 -244.6c0 -35.3008 -6.89941 -67.4004 -20.2998 -97.7002c-3 5.7002 -7.2002 10.2002 -11.2002 15.2998c11.2002 93.5 -62.0996 176.6 -157 176.6c-87.2578 0 -158.1 -70.8418 -158.1 -158.1s70.8418 -158.1 158.1 -158.1h1zM313.5 -26.5
-l0.400391 -0.0996094zM391.9 142.4c54.7393 0 99.1992 -44.4414 99.1992 -99.1797v-0.0205078c0 -54.75 -44.4492 -99.2002 -99.1992 -99.2002s-99.2002 44.4502 -99.2002 99.2002s44.4502 99.2002 99.2002 99.2002z" />
-    <glyph glyph-name="readme" unicode="&#xf4d5;" horiz-adv-x="576" 
-d="M528.3 401.5c26.4004 -0.200195 47.7002 -21.7002 47.7002 -48.0996v-245.7c0 -26.5 -21.5 -48 -48 -48h-89.7002c-102.1 0 -132.6 -24.4004 -147.3 -75c-0.799805 -2.7998 -5.2998 -2.7998 -6 0c-14.5996 50.5996 -45.0996 75 -147.3 75h-89.7002
-c-26.5 0 -48 21.5 -48 48v245.8c0 26.5 21.5 48 48 48h139.7c48.0996 0 89.7998 -33.2998 100.399 -80.2998c10.5 47 52.3008 80.2998 100.4 80.2998h139.8zM242 136.1h0.0996094v22.9004c0 2 -1.59961 3.5 -3.5 3.5h-160.399c-2 0 -3.5 -1.59961 -3.5 -3.5v-22.9004
-c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.60059 3.5 3.5zM242 197h0.0996094v22.9004c0 2 -1.59961 3.5 -3.5 3.5h-160.399c-2 0 -3.5 -1.60059 -3.5 -3.5v-22.9004c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.59961 3.5 3.5zM242 257.9h0.0996094v22.8994
-c0 2 -1.59961 3.5 -3.5 3.5h-160.399c-2 0 -3.5 -1.59961 -3.5 -3.5v-22.8994c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.59961 3.5 3.5zM501.3 136.2h0.100586v22.8994c0 2 -1.60059 3.5 -3.5 3.5h-160.4c-2 0 -3.5 -1.59961 -3.5 -3.5v-22.8994
-c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.59961 3.5 3.5zM501.3 197.1h0.100586v22.9004c0 2 -1.60059 3.5 -3.5 3.5h-160.4c-2 0 -3.5 -1.59961 -3.5 -3.5v-22.9004c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.60059 3.5 3.5zM501.3 258h0.100586v22.7998
-c0 2 -1.60059 3.5 -3.5 3.5h-160.4c-2 0 -3.5 -1.59961 -3.5 -3.5v-22.7998c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.59961 3.5 3.5z" />
-    <glyph glyph-name="java" unicode="&#xf4e4;" horiz-adv-x="384" 
-d="M277.74 135.1c-94.5 -24.8994 -277 -13.2998 -224.5 12.1006c44.5 21.3994 80.5996 19 80.5996 19s-93.0996 -22.1006 -33 -30.1006c25.4004 -3.39941 76 -2.59961 123.101 1.30078c38.5 3.19922 77.1992 10.1992 77.1992 10.1992s-13.5996 -5.7998 -23.3994 -12.5z
-M192.34 167.2c-48.5 43.7998 -84.0996 82.2998 -60.2002 118.2c35.1006 52.5 132.2 78.0996 110.7 162.6c0 0 53.1602 -53.2002 -50.5 -135c-83.0996 -65.5996 -19 -103.1 0 -145.8zM306.94 343.4c-111.601 -64.7002 -91 -83.5 -64.1006 -121.301
-c28.7998 -40.5 -33.8994 -72.8994 -33.8994 -72.8994s31.1992 25.5996 6.5 54c-83.7002 96.3994 91.5996 140.2 91.5 140.2zM300.84 72.9004c96.1006 49.8994 51.6006 97.8994 20.6006 91.3994c-3.75195 -0.703125 -7.4834 -1.72656 -11 -3
-c2.01367 2.86523 4.85742 5.07227 8.19922 6.2998c61.3008 21.6006 108.5 -63.5996 -19.7998 -97.2998c0.78125 0.773438 1.44922 1.63965 2 2.60059zM348 10.5996c53 -23.8994 -115.16 -72 -319.4 -38.7998c-74.8994 12.1006 36.1006 54.5 56.4004 40.2002
-c0 0 -6.5 0.400391 -17.7002 -2c-10.7998 -2.2998 -45.0996 -13.4004 -26.7998 -21.2998c50.7998 -22.1006 233.7 -16.7998 291.6 0.700195c30.4004 9.2998 15.9004 21.1992 15.9004 21.1992zM124.44 52c0 0 -19.6006 -11.4004 13.8994 -15.2002
-c40.6006 -4.59961 61.2998 -4 106 4.5c8.91016 -5.33594 18.4062 -9.99512 28.2002 -13.7998c-100.2 -42.9004 -226.8 2.5 -148.1 24.5zM304.24 -45.2002c69.7998 13.2002 76.2002 29.7002 76.2002 29.7002c-3.30078 -43.5996 -144.9 -52.7998 -237.101 -46.9004
-c-60.5996 3.90039 -72.3994 13.7002 -72.3994 13.6006c57.5 -9.5 154.6 -11.2002 233.3 3.59961zM260.64 95c6.01562 -5.61719 13.1807 -10.0039 21.1006 -12.7998c-121.3 -35.5 -256.3 -2.90039 -169.5 25.8994c0 0 -21.9004 -16.1992 11.5996 -19.6992
-c43.2998 -4.5 77.6006 -4.80078 136.8 6.59961z" />
-    <glyph glyph-name="pied-piper-hat" unicode="&#xf4e5;" horiz-adv-x="640" 
-d="M640 423.1c-80.7998 -53.5996 -89.4004 -92.5 -96.4004 -104.399c-6.69922 -12.2002 -11.6992 -60.2998 -23.2998 -83.6006c-11.7002 -23.5996 -54.2002 -42.1992 -66.0996 -50c-11.7002 -7.7998 -28.2998 -38.0996 -41.9004 -64.1992
-c-108.1 4.39941 -167.399 -38.8008 -259.2 -93.6006c29.4004 9.7002 43.3008 16.7002 43.3008 16.7002c94.1992 36 139.3 68.2998 281.1 49.2002c1.09961 0 1.90039 -0.600586 2.7998 -0.799805c3.90039 -2.2002 5.2998 -6.90039 3.10059 -10.8008l-53.9004 -95.7998
-c-2.5 -4.7002 -7.7998 -7.2002 -13.0996 -6.09961c-126.801 23.7998 -226.9 -17.2998 -318.9 -18.6006c-73.4004 -1.09961 -97.5 33.5 -97.5 35.1006c0 1.09961 0.599609 1.7002 1.7002 1.7002c0 0 38.2998 0 103.1 15.2998c73.6006 140.3 139.2 189.399 210.601 189.399
-c0 0 71.6992 0 90.5996 -61.8994c22.7998 39.7002 28.2998 49.2002 28.2998 49.2002c5.2998 9.39941 35 77.1992 86.4004 141.399c51.5 64 90.3994 79.9004 119.3 91.7998z" />
-    <glyph glyph-name="creative-commons-by" unicode="&#xf4e7;" horiz-adv-x="496" 
-d="M314.9 253.6v-101.399h-28.3008v-120.5h-77.0996v120.399h-28.2998v101.5c0 4.40039 1.59961 8.2002 4.59961 11.3008c3.10059 3.09961 6.90039 4.69922 11.2998 4.69922h101.9c4.09961 0 7.7998 -1.59961 11.0996 -4.69922
-c3.10059 -3.2002 4.80078 -6.90039 4.80078 -11.3008zM213.4 317.3c0 23.2998 11.5 35 34.5 35s34.5 -11.7002 34.5 -35c0 -23 -11.5 -34.5 -34.5 -34.5s-34.5 11.5 -34.5 34.5zM247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248
-c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3z" />
-    <glyph glyph-name="creative-commons-nc" unicode="&#xf4e8;" horiz-adv-x="496" 
-d="M247.6 440c139.801 0 248.4 -107.9 248.4 -248c0 -147.2 -118.5 -248 -248.4 -248c-134.5 0 -247.6 110.8 -247.6 248c0 132.9 104.7 248 247.6 248zM55.7998 258.9c-7.39941 -20.4004 -11.0996 -42.7002 -11.0996 -66.9004c0 -110.9 92.0996 -202.4 203.7 -202.4
-c122.399 0 177.199 101.801 178.5 104.101l-93.4004 41.5996c-7.7002 -37.0996 -41.2002 -53 -68.2002 -55.3994v-38.1006h-28.7998v38.2002c-27.5 0.299805 -52.5996 10.2002 -75.2998 29.7002l34.0996 34.5c31.7002 -29.4004 86.4004 -31.7998 86.4004 2.2002
-c0 6.19922 -2.2002 11.1992 -6.60059 15.0996c-14.1992 6 -1.7998 0.0996094 -219.3 97.4004zM248.4 395.7c-38.4004 0 -112.4 -8.7002 -170.5 -93l94.7998 -42.5c10 31.2998 40.3994 42.8994 63.7998 44.2998v38.0996h28.7998v-38.0996
-c22.7002 -1.2002 43.4004 -8.90039 62 -23l-32.2998 -33.2002c-42.7002 29.9004 -83.5 8 -70 -11.0996c53.4004 -24.1006 43.7998 -19.7998 93 -41.6006l127.1 -56.6992c4.10059 17.3994 6.2002 35.0996 6.2002 53.0996c0 57 -19.7998 105 -59.2998 143.9
-c-39.2998 39.8994 -87.2002 59.7998 -143.6 59.7998z" />
-    <glyph glyph-name="creative-commons-nc-eu" unicode="&#xf4e9;" horiz-adv-x="496" 
-d="M247.7 440c140.7 0 248.3 -109 248.3 -248c0 -147.1 -118.1 -248 -248.3 -248c-136 0 -247.7 111.7 -247.7 248c0 131.2 103.6 248 247.7 248zM248.3 -10.7002c122.601 0 177.3 102.2 178.8 104.3l-128.3 56.8008h-90.2998
-c9.2002 -39.3008 39.0996 -50.2002 67.2998 -50.2002c19.1006 0 38.6006 6.2002 47.2998 10.7998l10 -46.0996c-14.1992 -7.90039 -38.1992 -15.8008 -64.7998 -15.8008c-57.3994 0 -113.2 34.3008 -124.6 101.301h-27v29.5h22.7998
-c0 16.2998 0.400391 13.2998 0.400391 19.5h-23.3008v29.5h4.7002l-65.7002 29.0996c-7.19922 -20.7998 -10.8994 -42.7998 -10.8994 -66c0 -110.2 91.5996 -202.7 203.6 -202.7zM231.6 179.9l-0.5 0.399414l0.900391 -0.399414h-0.400391zM308.8 199.4l136.101 -60.5
-c4.19922 16.5996 6.2998 34.1992 6.2998 52.8994c0 113.2 -90 203.4 -203 203.4c-13 0 -106.101 3.2002 -170.7 -93.6006l81.5996 -36.0996c4.10059 7.2002 8.60059 14 13.9004 20.0996c23.7002 26.5 56.9004 42.3008 95.9004 42.3008
-c25.2998 0 47.2998 -5.80078 62.2998 -12.4004l-11.6006 -47.2998c-10.7998 4.59961 -27.7998 10 -46.0996 10c-20 0 -38.2002 -6.60059 -51.0996 -22.4004c-3.40039 -3.7998 -6.30078 -8.7998 -8.80078 -14.2998l28.6006 -12.5996h70.2998v-29.5h-3.7002z" />
-    <glyph glyph-name="creative-commons-nc-jp" unicode="&#xf4ea;" horiz-adv-x="496" 
-d="M247.7 440c140.8 0 248.3 -109.2 248.3 -248c0 -147.2 -118.1 -248 -248.3 -248c-135.9 0 -247.7 111.6 -247.7 248c0 131.2 103.6 248 247.7 248zM248.3 -10.7002c118.101 0 173.7 96.1006 175.2 98.2998l-81 36.1006v-35.7002h-64.2002v-56h-61.7002v56h-63.7998
-v38.7002h63.7998v18.7002l-5.69922 11.7998h-58.1006v38.5996h27.9004l-127 56.5c-6 -19.0996 -9 -39.2002 -9 -60.2998c0 -110.2 91.5996 -202.7 203.6 -202.7zM335.9 126.6l-54.7002 24.3008l-2.90039 -5.60059v-18.7002h57.6006zM342.4 178l101 -45.0996
-c5.19922 18.3994 7.89941 38 7.89941 59c0 113.399 -90.2002 203.399 -203 203.399c-91.0996 0 -145.899 -54 -173.7 -98.0996l81.9004 -36.5l-27.2998 51h65.7998l39.5996 -85.7002l23 -10.2002l43.4004 96h65.7998l-63 -116h38.6006v-17.7998z" />
-    <glyph glyph-name="creative-commons-nd" unicode="&#xf4eb;" horiz-adv-x="496" 
-d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
-c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM342.4 251v-42.5h-180.301v42.5h180.301zM342.4 171.2v-42.5h-180.301v42.5h180.301z" />
-    <glyph glyph-name="creative-commons-pd" unicode="&#xf4ec;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111.1 248 -248c0 -137 -111 -248 -248 -248s-248 111 -248 248c0 136.9 111 248 248 248zM248 -9.5c76.0996 0 142.4 42.4004 176.7 104.8c-1.40039 0.299805 12.5 -5.7998 -217.9 96.7998c0.200195 -32 16.1006 -71.8994 53.9004 -71.8994
-c18.7002 0 30.7998 10.3994 36.2998 16.7002l36.0996 -43.9004c-25.8994 -22.7998 -56.5 -29.5 -79.3994 -29.5c-46.5 0 -120.4 27.9004 -120.4 126.9c0 11.3994 1.2002 22.3994 3.2998 32.8994l-78.7998 35.1006c-45.5996 -129.9 51 -267.9 190.2 -267.9zM442.2 140.5
-c0.200195 -0.200195 0.299805 -0.299805 0.599609 -0.400391c4.40039 16.6006 6.7998 34 6.7998 52c0 111.101 -90.3994 201.5 -201.5 201.5c-70.3994 0 -132.399 -36.2998 -168.5 -91.1992l74.9004 -33.4004c19.7998 31.0996 53.2998 51.5996 100.7 51.5996
-c20.0996 0 51 -4.19922 78.0996 -27.5l-40.3994 -41.5996c-19.8008 19.7002 -55.9004 23 -74.7002 -11z" />
-    <glyph glyph-name="creative-commons-pd-alt" unicode="&#xf4ed;" horiz-adv-x="496" 
-d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 -10.7998c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3
-c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8zM316.7 262c21.3994 0 70 -5.2002 70 -68.5996c0 -63.5 -48.6006 -68.6006 -70 -68.6006h-53.2002v137.2h53.2002zM317.5 153.5c24 0 34.5 15.2998 34.5 39.9004
-c0 42 -31.2002 39.8994 -35 39.8994l-19.4004 -0.0996094v-79.7002h19.9004zM203.7 262c33.7002 0 50.5 -15.5 50.5 -46.5c0 -9 -3 -46.5 -57.1006 -46.5h-27v-44.2998h-34.5996v137.3h68.2002zM198.8 194.7c27.9004 0 30 41.5996 -0.899414 41.5996h-28.3008v-41.5996
-h29.2002z" />
-    <glyph glyph-name="creative-commons-remix" unicode="&#xf4ee;" horiz-adv-x="496" 
-d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
-c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM410.1 187.6l4.90039 -2.19922v-70c-7.2002 -3.60059 -63.4004 -27.5 -67.2998 -28.8008c-6.5 1.80078 -113.7 46.8008 -137.3 56.2002l-64.2002 -26.5996l-63.2998 27.5v63.7998
-l59.2998 24.7998c-0.700195 0.700195 -0.400391 -5 -0.400391 70.4004l67.2998 29.7002l151.9 -62.9004v-61.5996zM339.7 106.1v43.8008h-0.400391v1.7998l-113.8 46.5v-45.2002l113.8 -46.9004v0.400391zM347.2 163.7l39.8994 16.3994l-36.7998 15.5l-39 -16.3994z
-M399.5 125.6v43l-44.2998 -18.5996v-43.4004z" />
-    <glyph glyph-name="creative-commons-sa" unicode="&#xf4ef;" horiz-adv-x="496" 
-d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
-c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM137.7 227c13 83.9004 80.5 95.7002 108.899 95.7002c99.8008 0 127.5 -82.5 127.5 -134.2c0 -63.5996 -41 -132.9 -128.899 -132.9c-38.9004 0 -99.1006 20 -109.4 97h62.5
-c1.5 -30.0996 19.6006 -45.1992 54.5 -45.1992c23.2998 0 58 18.1992 58 82.7998c0 82.5 -49.0996 80.5996 -56.7002 80.5996c-33.0996 0 -51.6992 -14.5996 -55.7998 -43.7998h18.2002l-49.2002 -49.2002l-49 49.2002h19.4004z" />
-    <glyph glyph-name="creative-commons-sampling" unicode="&#xf4f0;" horiz-adv-x="496" 
-d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
-c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM252 342.1c2.7998 0.300781 11.5 -1 11.5 -11.5l6.59961 -107.199l4.90039 59.2998c0 6 4.7002 10.5996 10.5996 10.5996c5.90039 0 10.6006 -4.7002 10.6006 -10.5996
-c0 -2.5 -0.5 5.7002 5.7002 -81.5l5.7998 64.2002c0.299805 2.89941 2.89941 9.2998 10.2002 9.2998c3.7998 0 9.89941 -2.2998 10.5996 -8.90039l11.5 -96.5l5.2998 12.7998c1.7998 4.40039 5.2002 6.60059 10.2002 6.60059h58v-21.2998h-50.9004l-18.1992 -44.3008
-c-3.90039 -9.89941 -19.5 -9.09961 -20.8008 3.10059l-4 31.8994l-7.5 -92.5996c-0.299805 -3 -3 -9.2998 -10.1992 -9.2998c-3 0 -9.80078 2.09961 -10.6006 9.2998c0 1.90039 0.600586 -5.7998 -6.2002 77.9004l-5.2998 -72.2002
-c-1.09961 -4.7998 -4.7998 -9.2998 -10.5996 -9.2998c-2.90039 0 -9.7998 2 -10.6006 9.2998c0 1.89941 0.5 -6.7002 -5.7998 87.7002l-5.7998 -94.8008c0 -6.2998 -3.59961 -12.3994 -10.5996 -12.3994c-5.2002 0 -10.6006 4.09961 -10.6006 12l-5.7998 87.7002
-c-5.7998 -92.5 -5.2998 -84 -5.2998 -85.9004c-1.10059 -4.7998 -4.7998 -9.2998 -10.6006 -9.2998c-3 0 -9.7998 2.09961 -10.5996 9.2998c0 0.700195 -0.400391 1.09961 -0.400391 2.59961l-6.19922 88.6006l-4.90039 -56.7002
-c-0.700195 -6.5 -6.7002 -9.2998 -10.5996 -9.2998c-5.80078 0 -9.60059 4.09961 -10.6006 8.89941l-11.0996 76.4004c-2 -4 -3.5 -8.40039 -11.1006 -8.40039h-51.3994v21.3008h44.7998l13.7002 27.8994c4.39941 9.90039 18.2002 7.2002 19.8994 -2.7002l3.10059 -20.3994
-l8.39941 97.8994c0 6 4.80078 10.6006 10.6006 10.6006c0.5 0 10.5996 0.200195 10.5996 -12.4004l4.90039 -69.0996l6.59961 92.5996c0 10.1006 9.5 10.6006 10.2002 10.6006c0.599609 0 10.5996 -0.700195 10.5996 -10.6006l5.30078 -80.5996l6.19922 97.8994
-c0.100586 1.10059 -0.599609 10.3008 9.90039 11.5z" />
-    <glyph glyph-name="creative-commons-sampling-plus" unicode="&#xf4f1;" horiz-adv-x="496" 
-d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
-c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM355.4 189.7l58.3994 0.299805v-23.2002h-50.5l-18 -43.3994c-4.59961 -11 -20.8994 -8.7002 -22.2998 3.09961l-2.7002 22.2998l-6.7998 -83
-c-1.09961 -14.0996 -22 -14.2002 -23.0996 0.100586l-4.90039 64.3994l-4.59961 -58.5996c-1.10059 -14.2998 -22.3008 -14.1006 -23.2002 0.200195l-4.5 71.7998l-4.90039 -80.5c-0.899414 -14.5 -22.2998 -14.5 -23.2002 -0.100586l-4.7998 73.3008l-4.59961 -70.4004
-c-0.900391 -14.2998 -22.1006 -14.5 -23.2002 -0.0996094l-5.7002 78.2998l-3.7998 -43.6006c-1.2002 -13.6992 -21.0996 -14.1992 -23.0996 -0.699219l-10.7002 73.0996c-2 -3.90039 -6 -6.40039 -10.4004 -6.40039h-51.2998v23.2002h43.9004l13.1992 27.7002
-c4.90039 10.2998 20.3008 8.09961 22 -3.2998l1.80078 -12.2002l7.69922 89.7998c1.2002 14.1006 22.1006 14.1006 23.2002 -0.200195l4.10059 -57l5.2998 80.2002c1 14.4004 22.2998 14.4004 23.2002 0l4.2998 -66.2998l5.09961 83.7002
-c0.900391 14.3994 22.2998 14.5 23.2002 0l5.90039 -94.2998l3.5 44.8994c1.09961 14.2002 22.0996 14.2998 23.1992 0l5.2002 -68.7998l4.2998 51.4004c1.10059 13.7998 21.4004 14.2998 23.1006 0.399414l11 -92.7998l4 9.5c1.7002 4.40039 6 7.2002 10.7002 7.2002z
-M277.4 184.5c4.09961 0 7.5 3.40039 7.5 7.5c0 4.2002 -3.40039 7.5 -7.5 7.5h-21.9004v21.9004c0 4.19922 -3.40039 7.5 -7.5 7.5s-7.5 -3.40039 -7.5 -7.5v-21.9004h-21.9004c-4.09961 0 -7.5 -3.40039 -7.5 -7.5c0 -4.2002 3.40039 -7.5 7.5 -7.5h21.9004v-21.9004
-c0 -4.19922 3.40039 -7.5 7.5 -7.5c4.2002 0 7.5 3.40039 7.5 7.5v21.9004h21.9004z" />
-    <glyph glyph-name="creative-commons-share" unicode="&#xf4f2;" horiz-adv-x="496" 
-d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
-c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM349.4 262.9c7.7998 0 13.6992 -6.10059 13.6992 -13.7002v-182.5c0 -7.7002 -6.09961 -13.7002 -13.6992 -13.7002h-135.101c-7.7002 0 -13.7002 6 -13.7002 13.7002v54h-54
-c-7.7998 0 -13.6992 6 -13.6992 13.7002v182.5c0 8.19922 6.59961 12.6992 12.3994 13.6992h136.4c7.7002 0 13.7002 -6 13.7002 -13.6992v-54h54zM159.9 147.7h40.6992v101.399c0 7.40039 5.80078 12.6006 12 13.7002h55.8008v40.2998h-108.5v-155.399zM336.1 235.8h-108.5
-v-155.399h108.5v155.399z" />
-    <glyph glyph-name="creative-commons-zero" unicode="&#xf4f3;" horiz-adv-x="496" 
-d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
-c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM248 334.8c81.9004 0 102.5 -77.2998 102.5 -142.8s-20.5996 -142.8 -102.5 -142.8s-102.5 77.2998 -102.5 142.8s20.5996 142.8 102.5 142.8zM248 280.9
-c-42.0996 0 -44.0996 -60.1006 -44.0996 -88.9004c0 -9.2998 0.199219 -21.7002 1.89941 -34.4004l54.5 100.2c5.7002 9.7998 2.7998 16.7998 -3.09961 21.9004c-2.7998 0.700195 -5.90039 1.2002 -9.2002 1.2002zM288.8 234.7l-60.8994 -105.2
-c-12.5 -18.7002 6.59961 -26.4004 20.0996 -26.4004c42.0996 0 44.0996 60 44.0996 88.9004c0 11.2998 -0.399414 27.2998 -3.2998 42.7002z" />
-    <glyph glyph-name="ebay" unicode="&#xf4f4;" horiz-adv-x="640" 
-d="M606 258.5h34l-99.2002 -194.8h-35.8994l28.5 54.0996l-61.5 116.101c3.09961 -6.60059 4.7998 -14.5 4.7998 -23.8008v-65.5996c0 -9.2998 0.299805 -18.5996 1 -26.7998h-29.7998c-0.800781 6.89941 -1.10059 13.5996 -1.10059 20.2002
-c-16.0996 -19.8008 -35.2998 -25.5 -61.8994 -25.5c-39.5 0 -60.6006 20.8994 -60.6006 45c0 3.19922 0.200195 6.19922 0.700195 9c-8.40039 -32.3008 -36.4004 -54.2002 -73.2998 -54.2002c-23.2998 0 -45.1006 8.2998 -58.7002 24.8994
-c0 -6.59961 -0.400391 -13.1992 -1.09961 -19.5h-31.5c0.5 10.2002 1.09961 22.8008 1.09961 33.1006v169.5h32.0996v-80.6006c15.7002 18.7002 37.4004 24.2002 58.7002 24.2002c35.7002 0 75.4004 -24.0996 75.4004 -76.2002c0 -5.59961 -0.5 -11 -1.5 -16.1992
-c7.09961 24.3994 34.2998 33.5 76.7002 34.3994c13.6992 0.299805 29 0.400391 41.6992 0.400391v3.39941c0 23.4004 -15 33 -41 33c-19.2998 0 -33.5996 -8 -35 -21.7998h-33.6992c3.59961 34.4004 39.6992 43.1006 71.5 43.1006c27.3994 0 51.7998 -7 63.2998 -26
-l-10.9004 20.5996h37.5l54.9004 -109.9zM243.7 134.2c29.7998 0 50.2002 21.5 50.2002 53.7998c0 32.4004 -20.4004 53.7998 -50.2002 53.7998c-29.6006 0 -50.2002 -21.3994 -50.2002 -53.7998c0 -32.2998 20.5996 -53.7998 50.2002 -53.7998zM444.6 181.5v3.2998
-c-11.7998 0 -26.2998 -0.0996094 -39.3994 -0.599609c-29.1006 -0.900391 -47.2002 -6.2002 -47.2002 -25.2998c0 -12.4004 9.90039 -25.8008 35 -25.8008c33.7002 0 51.5996 18.4004 51.5996 48.4004zM32.7002 179.9c3.5 -58.3008 79.2002 -57.4004 91.2002 -21.6006
-h33.0996c-6.40039 -34.3994 -43 -46.0996 -74.4004 -46.0996c-57.1992 0 -82.5 31.5 -82.5 74c0 46.7998 26.2002 77.5996 83 77.5996c45.3008 0 78.4004 -23.7002 78.4004 -75.3994v-8.5h-128.8zM127.7 201.3c-2.2998 54.7002 -87.5 56.6006 -94.4004 0h94.4004z" />
-    <glyph glyph-name="keybase" unicode="&#xf4f5;" 
-d="M286.17 29c9.93457 0 18 -8.06543 18 -18s-8.06543 -18 -18 -18s-18 8.06543 -18 18s8.06543 18 18 18zM398.09 176.6c22.9102 -33.46 35.9102 -72.3398 35.9102 -110.92c0 -31.6797 -5 -60.6797 -14.5996 -86.2295
-c-3.04004 -8.0498 -10.9502 -12.7197 -18.3701 -11.1504c-6.83984 1.24023 -11.1201 9.28027 -8.60059 15.7402c11.1904 28.71 14.8799 58.3398 14.8799 81.6396c-0.0634766 9.75 -1.02246 19.1807 -2.7998 28.4307c-0.649414 -1.06055 -1.12988 -2.2207 -1.84961 -3.2207
-c-17.29 -24.5293 -50.54 -33.8896 -84.7402 -23.8398c-78.8701 23.1699 -178.02 3.81055 -236.25 -38.5898l24.6602 74.1104l-46.8203 -59.8301c2.4834 -18.6582 7.96191 -36.7539 15.7598 -53.1299c6.25 -13.1904 0.460938 -18.2402 -3.75 -20.1104
-c-4.76953 -2.12012 -13.8594 -2.7998 -19.6396 7.33008c-6.41504 11.584 -11.4131 24.3486 -14.5596 37.5596l-23.3203 -29.7998v33.6406c0 55.7695 0 125.109 62.6504 188.409c13.7461 13.917 29.1787 25.7891 46.29 35.54l-8.93066 0.540039
-c-27.8799 1.64062 -49.2402 24.8506 -47.6299 51.8506l2.36035 36.6797c0 -6.24023 0.139648 45.8799 50.75 45.8799c2.05957 0 -0.470703 0.120117 41.0596 -2.33008c2.82715 -0.19043 5.60742 -0.616211 8.29004 -1.25c7.41992 11.3398 15.6504 22.8301 24.3398 34.8906
-l5.48047 7.55957l22.8994 -13.5195c-11.29 -24 -10 -33 -9.39941 -35c9.08008 0.229492 20 -1.6709 32.4102 -5.77051c31.2002 -10.3584 53.6846 -39.8262 53.6846 -74.4844c0 -10.4883 -2.0625 -20.498 -5.80469 -29.6455
-c6.18652 -2.13965 12.3135 -4.56348 18.3799 -7.27051c47.8896 -21.2598 77.7598 -59.0898 87.2598 -73.71zM142.37 319.42c1.87695 6.54492 4.25684 13.041 7 19.1699l-29.1104 1.73047c0.610352 -0.0507812 -12.2598 0.849609 -13.2598 -11.3203l-2.41016 -36.6602
-c-0.00683594 -0.174805 -0.00292969 -0.34375 -0.00292969 -0.520508c0 -6.60449 5.22461 -11.998 11.7627 -12.2695l22.3809 -1.33984c-0.457031 3.73438 -0.692383 7.34863 -0.692383 11.2061c0 2.81836 0.125977 5.6084 0.37207 8.36426l-13.1299 0.779297l1.38965 21.79
-zM290.79 147.24c2.27441 1.75195 3.72949 4.50586 3.72949 7.59668c0 2.19922 -0.742188 4.22559 -1.98926 5.84277l-81.0898 96.3203c-1.9043 2.21094 -4.72949 3.60156 -7.87305 3.60156c-2.42578 0 -4.65918 -0.833984 -6.42773 -2.23145
-c-2.27344 -1.74805 -3.72754 -4.49902 -3.72754 -7.58594c0 -2.19531 0.741211 -4.21973 1.98828 -5.83398c0.0898438 -0.140625 18.5996 -22.1406 18.5996 -22.1406l-16.9102 -13.29c-1.75879 -1.34863 -2.88477 -3.47461 -2.88477 -5.86133
-c0 -1.68359 0.564453 -3.23633 1.51465 -4.47852c0.0800781 -0.109375 2.37988 -2.91113 3.7998 -4.5293c1.4209 -1.61914 3.50977 -2.63477 5.83105 -2.63477c1.79395 0 3.44531 0.610352 4.75977 1.63477l17.0898 13.4492l14.1396 -16.7393l-34.5703 -27.1807
-c-1.74805 -1.34961 -2.86621 -3.46875 -2.86621 -5.84668c0 -1.69043 0.569336 -3.24805 1.52637 -4.49316l15.7803 -18.6396c1.48438 -1.72363 3.68555 -2.80762 6.13574 -2.80762c1.88379 0 3.61816 0.645508 4.99414 1.72754l34.4199 27l9.68066 -11.4902
-c1.92676 -2.2041 4.76465 -3.58789 7.91992 -3.58789c2.4209 0 4.65234 0.820312 6.42969 2.19824zM187.44 29c9.93359 0 18 -8.06543 18 -18s-8.06641 -18 -18 -18c-9.93457 0 -18 8.06543 -18 18s8.06543 18 18 18z" />
-    <glyph glyph-name="mastodon" unicode="&#xf4f6;" 
-d="M433 268.89c0 0 0.799805 -71.6992 -9 -121.5c-6.23047 -31.5996 -55.1104 -66.1992 -111.23 -72.8994c-20.0996 -2.40039 -93.1191 -14.2002 -178.75 6.7002c0 -0.116211 -0.00390625 -0.119141 -0.00390625 -0.235352c0 -4.63281 0.307617 -9.19434 0.904297 -13.665
-c6.62988 -49.5996 49.2197 -52.5996 89.6299 -54c40.8105 -1.2998 77.1201 10.0996 77.1201 10.0996l1.7002 -36.8994s-28.5098 -15.2998 -79.3203 -18.1006c-28.0098 -1.59961 -62.8193 0.700195 -103.33 11.4004c-112.229 29.7002 -105.63 173.4 -105.63 289.1
-c0 97.2002 63.7197 125.7 63.7197 125.7c61.9209 28.4004 227.96 28.7002 290.48 0c0 0 63.71 -28.5 63.71 -125.7zM357.88 143.69c0 122 5.29004 147.71 -18.4199 175.01c-25.71 28.7002 -79.7197 31 -103.83 -6.10059l-11.5996 -19.5l-11.6006 19.5
-c-24.0098 36.9004 -77.9297 35 -103.83 6.10059c-23.6094 -27.1006 -18.4092 -52.9004 -18.4092 -175h46.7295v114.2c0 49.6992 64 51.5996 64 -6.90039v-62.5098h46.3301v62.5c0 58.5 64 56.5996 64 6.89941v-114.199h46.6299z" />
-    <glyph glyph-name="r-project" unicode="&#xf4f7;" horiz-adv-x="581" 
-d="M581 221.4c0 -54.8008 -33.9004 -104.301 -88.4004 -139.7l67.4004 -113.7h-112l-40.0996 75.4004c-21.8008 -6.5 -45.1006 -11.2002 -69.4004 -13.9004v-61.5h-99.0996v61.9004c-136.101 16.0996 -239.4 95.6992 -239.4 191.5c0 107.5 130.1 194.6 290.5 194.6
-s290.5 -87.0996 290.5 -194.6zM114.2 206.9c0 -52.8008 51.0996 -98.4004 125.2 -119.9v208.3h199s90.5996 -1.59961 90.5996 -87.8994c0 -86.3008 -86.5996 -92.7002 -86.5996 -92.7002s17.5996 -5.2998 27.7998 -10.5c1.7002 -0.799805 4 -2.10059 6.39941 -3.7002
-c43.8008 21.4004 70.3008 56.2998 70.3008 106.4c0 92.2998 -90 133 -211.9 133s-220.8 -59.5 -220.8 -133zM339.3 168.6c49.6006 0 87.7998 -8.19922 87.7998 28.3008c0 34.0996 -30 27.2998 -87.7998 27.2998v-55.6006zM338.4 96.0996v-22.0996
-c17.5996 0.0996094 34.5 1 50.5996 2.90039c-5.09961 7.5 -13.2002 19.1992 -24 19.1992h-26.5996z" />
-    <glyph glyph-name="researchgate" unicode="&#xf4f8;" 
-d="M0 416h448v-448h-448v448zM262.2 81.5996v7.30078c-10 0 -20 6.89941 -27.2002 14.6992c-12.2002 13.3008 -28.5996 34.7002 -42.2002 58.9004c22.5 5.2998 39.2002 26.4004 39.2002 47.5c0 31.2002 -24.2002 45.5996 -55.9004 45.5996
-c-17.7998 0 -45.0996 -1.59961 -70.8994 -0.599609v-8.09961c15.5996 -2.90039 22 -1.30078 22 -23.9004v-109.4c0 -22.5996 -6.5 -21 -22 -23.8994v-8.10059c7.5 0.200195 20.5 0.800781 33.5996 0.800781c12.5 0 28.7002 -0.5 35.6006 -0.800781v8.10059
-c-19.8008 2.7002 -25.8008 0.399414 -25.8008 23.8994v46.4004c6.7002 -0.599609 12.5 -0.599609 21.4004 -0.599609c16.9004 -30.3008 33 -53 42.2002 -63.6006c16.7998 -20.2002 43.3994 -17.2002 50 -14.2002zM285.1 216.6c38.7002 0 34 29.4004 34 49.9004h-30.3994
-v-10.7002h17.8994c0 -15.8994 -7.39941 -26.7998 -21.5 -26.7998c-11.2998 0 -17.8994 9.90039 -17.8994 23.2998v26.7998c0 12.4004 11.7998 19.7002 19.7002 19.7002c14.1992 0 19.6992 -12.5 19.6992 -12.5l10.7002 7.2002s-5.2002 17.9004 -30.3994 17.9004
-c-25.2002 0 -34 -18.2002 -34 -30.4004v-32.2002c0 -16.5 8.89941 -32.2002 32.1992 -32.2002zM168.6 171.9c-9.39941 0 -13.5996 0.299805 -20 0.799805v69.7002c6.40039 0.599609 15 0.599609 22.5 0.599609c23.3008 0 37.2002 -12.2002 37.2002 -34.5
-c0 -21.9004 -15 -36.5996 -39.7002 -36.5996z" />
-    <glyph glyph-name="teamspeak" unicode="&#xf4f9;" horiz-adv-x="512" 
-d="M244.2 101.21c-2.40039 -12.5 -10.6006 -20 -22.5 -24.2998c-9.2002 -3.2002 -50.1006 -1.60059 -61.7002 -1c-18 1.2998 -33.2002 8.5 -43.4004 24c-14.5 22.5 -19.5 47.7002 -14.5 73.8994c4.60059 24.5 24.6006 34.7002 46.3008 22.7002
-c15.1992 -7.5 42.5 -27.3994 63.3994 -46.5996c20.4004 -18.7002 34.7998 -36.4004 32.4004 -48.7002zM449.2 80.4102c6.7002 -5.41016 11.2002 -22 11.5996 -32.1006c1 -50.3994 -23.8994 -68 -46.5996 -85.3994c-65.1006 -50 -295.101 -16.9004 -145.4 -6.40039
-c127.4 9 164.101 96.1006 172.101 121.5c0.679688 2.0918 2.64941 3.60352 4.9668 3.60352c1.2666 0 2.42871 -0.452148 3.33301 -1.20312zM511.2 202.81c0 -17.1992 1.89941 -34.5996 -1 -51.6992c-4 -24.7002 -29.1006 -41.7002 -53.2002 -36.7002
-c-7.2002 1.7002 -9.40039 7.2002 -9.40039 14.2002c0 28.0996 0.800781 56.3994 0 84.5996c-1.89941 75.79 -36.1992 132.79 -102.3 169.4c-111 60.3896 -253.2 -7 -277.8 -131.5c-6.09961 -30.4004 -1.7002 -48.3008 -3.7002 -125.801
-c-0.299805 -7.19922 -4.2998 -11.1992 -12 -11.5c-30.7998 -1.39941 -51.7998 18.2002 -51.7998 49v20.9004l0.799805 26.4902c2.40039 15.5 10.7002 27 24.9004 34c3.5 1.7998 5.7002 3.5 6.39941 7.7998c6.10059 33.4102 19.5 64 39.3008 91.71
-c2.2998 3.09961 4 5.2998 1 9.2998c-3.7002 5.40039 -1 10.2002 3 14.5c28.0996 31.7998 61.8994 55.1006 102 67.4004c96 29.4668 180.1 9.29688 252.3 -60.5098c6.7002 -6.40039 15.5 -12.9004 7 -24.4004c-1.2998 -1.7998 1.09961 -3.5 2.2002 -5
-c20.0586 -27.0264 34.2529 -59.1357 40.3994 -93.5898c0.900391 -3.7002 3 -5.10059 5.90039 -6.40039c17.3994 -8.7998 25.7002 -23.2998 26 -42.2002zM351.6 71.3096l-51.5996 7.7002c-22.7998 5.90039 -51 32.7002 22.2002 60.7998
-c21.5996 8.5 85.7002 37.2002 87.7998 -8c0.900391 -32 -21.9004 -63.2998 -58.4004 -60.5z" />
-    <glyph glyph-name="first-order-alt" unicode="&#xf50a;" horiz-adv-x="496" 
-d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM248 -48.21c132.66 0 240.21 107.55 240.21 240.21s-107.55 240.21 -240.21 240.21s-240.21 -107.55 -240.21 -240.21s107.55 -240.21 240.21 -240.21z
-M248 411.71c121.34 0 219.71 -98.3701 219.71 -219.71s-98.3701 -219.71 -219.71 -219.71s-219.71 98.3701 -219.71 219.71s98.3701 219.71 219.71 219.71zM248 -19.5098c116.81 0 211.51 94.7002 211.51 211.51s-94.7002 211.51 -211.51 211.51
-s-211.51 -94.6895 -211.51 -211.51s94.7002 -211.51 211.51 -211.51zM434.23 143.47c-4.46582 -17.1914 -11.3633 -33.7256 -20.1309 -48.6895l-74.1299 35.8799l61.4805 -54.8203c-10.709 -14.1553 -23.0713 -26.5469 -37.2002 -37.29l-54.7998 61.5703l35.8799 -74.2705
-c-14.9385 -8.80469 -31.4502 -15.7354 -48.6299 -20.2295l-27.29 78.4697l4.79004 -82.9297c-8.61035 -1.17969 -17.4004 -1.7998 -26.3301 -1.7998s-17.7197 0.620117 -26.3301 1.7998l4.75977 82.46l-27.1494 -78.0303
-c-17.1836 4.48828 -33.7021 11.4092 -48.6504 20.2002l35.9297 74.3398l-54.8701 -61.6396c-14.1318 10.7412 -26.5 23.1299 -37.2197 37.2793l61.5898 54.9004l-74.2598 -35.9297c-8.77051 14.9639 -15.6709 31.4971 -20.1396 48.6895l77.8398 27.1104l-82.2305 -4.75977
-c-1.15918 8.56934 -1.7793 17.3193 -1.7793 26.21c0 9 0.629883 17.8398 1.81934 26.5098l82.3799 -4.76953l-77.9395 27.1592c4.5 17.1895 11.4307 33.7148 20.2295 48.6699l74.2207 -35.9199l-61.5205 54.8604c10.7412 14.1328 23.1299 26.501 37.2803 37.2197
-l54.7598 -61.5293l-35.8301 74.1699c14.9521 8.76465 31.4717 15.6621 48.6504 20.1299l26.8701 -77.25l-4.70996 81.6094c8.60938 1.18066 17.3896 1.80078 26.3193 1.80078c8.93066 0 17.71 -0.620117 26.3203 -1.80078l-4.74023 -82.1592l27.0498 77.7598
-c17.2705 -4.5 33.6006 -11.3506 48.6309 -20.1699l-35.8203 -74.1201l54.7197 61.4697c14.1426 -10.7178 26.5186 -23.0908 37.2402 -37.2295l-61.4502 -54.7705l74.1201 35.8604c8.78906 -14.9492 15.71 -31.4678 20.2002 -48.6504l-77.8105 -27.0996l82.2402 4.75
-c1.19043 -8.66016 1.82031 -17.5 1.82031 -26.4902c0 -8.87988 -0.610352 -17.6299 -1.78027 -26.1904l-82.1201 4.75z" />
-    <glyph glyph-name="fulcrum" unicode="&#xf50b;" horiz-adv-x="320" 
-d="M95.75 283.86l-35.3799 -43.5508l-35.3701 43.5508l35.3799 43.5498zM144.23 448v-211.11l-41.0801 -44.8896l41.0801 -44.8896v-211.11l-20.5107 198.18l-51 57.8203l50.9707 57.8203zM223.9 283.86l35.3799 43.5498l35.3799 -43.5498l-35.3799 -43.5508zM175.42 236.86
-v211.14l20.5801 -198.18l51 -57.8203l-51 -57.8203l-20.5801 -198.18v211.11l41.0801 44.8896z" />
-    <glyph glyph-name="galactic-republic" unicode="&#xf50c;" horiz-adv-x="496" 
-d="M248 -56c-136.75 0 -248 111.25 -248 248s111.25 248 248 248s248 -111.25 248 -248s-111.25 -248 -248 -248zM248 423.47c-127.63 0 -231.47 -103.84 -231.47 -231.47s103.84 -231.47 231.47 -231.47s231.47 103.84 231.47 231.47s-103.84 231.47 -231.47 231.47z
-M275.62 401.66c37.6602 -4.91016 72.21 -19.7402 100.96 -41.7998l-17.3896 -17.3604c-23.9795 17.7627 -52.7207 29.9941 -83.5703 34.54v24.6201zM220.25 401.59v-24.54c-30.9697 -4.60938 -59.4502 -16.8301 -83.5195 -34.6699h-0.0800781l-17.2803 17.3604
-c28.7197 22.0498 63.2402 36.9102 100.88 41.8496zM232.5 351.42h31v-82.8604c10.0498 -2.0293 19.3701 -6.00977 27.6201 -11.5l58.6699 58.6709l21.9297 -21.9307l-58.6699 -58.6699c5.46973 -8.24023 9.48047 -17.5996 11.5 -27.6201h82.8701v-31h-82.8701
-c-2.03027 -10.0195 -6.04004 -19.3096 -11.5 -27.54l58.6699 -58.6895l-21.9297 -21.9307l-58.6699 58.6904c-8.25 -5.49023 -17.5703 -9.52051 -27.6201 -11.5498v-82.9004h-31v82.9004c-10.0039 2.02148 -19.4531 6.00977 -27.6699 11.4697l-58.6201 -58.6201
-l-21.9297 21.9297l58.6699 58.6904c-5.45996 8.23047 -9.4502 17.5205 -11.4697 27.54h-82.9004v31h82.9004c2.01953 10.0303 6 19.3896 11.4697 27.6201l-58.6699 58.6699l21.9297 21.9297l58.6201 -58.5898c8.25 5.48047 17.6299 9.38965 27.6699 11.4199v82.8701z
-M415.74 320.7c22.0996 -28.7402 36.9795 -63.3398 41.9297 -101.03h-24.6201c-4.58496 30.8906 -16.8604 59.665 -34.6699 83.6699zM80.1904 320.57l17.3896 -17.3906c-17.8301 -24.0693 -29.9902 -52.5596 -34.5898 -83.5195h-24.6504
-c4.94043 37.6494 19.79 72.1895 41.8506 100.91zM38.3398 164.33l24.6504 0.00976562c4.58984 -30.9502 16.7002 -59.4502 34.5098 -83.5195l-17.3604 -17.3906c-22.0498 28.7207 -36.8799 63.2607 -41.7998 100.9zM433.04 164.33h24.6201
-c-4.9502 -37.6699 -19.8506 -72.2197 -41.9297 -100.96l-17.3604 17.3604c17.8701 24.0996 30.0596 52.6094 34.6699 83.5996zM136.66 41.6201c24.0703 -17.8604 52.6094 -30.0205 83.5996 -34.6504v-24.6396c-37.6602 4.9502 -72.2295 19.8398 -100.96 41.9297z
-M359.19 41.5703h0.0791016l17.3105 -17.3906c-28.75 -22.0596 -63.29 -36.9297 -100.96 -41.8496v24.5703c30.9902 4.58984 59.4795 16.8301 83.5703 34.6699z" />
-    <glyph glyph-name="galactic-senate" unicode="&#xf50d;" horiz-adv-x="512" 
-d="M249.86 414.52h12.2793v-26.0693c13.5801 -20.6201 23.8604 -108.59 24.4902 -215.351c-11.7402 15.6201 -19.1299 33.3301 -19.1299 48.2402v16.8799c0.0302734 5.32031 -0.75 10.5303 -2.19043 15.6504c-0.649414 2.13965 -1.38965 4.07031 -2.61914 5.82031
-c-1.23047 1.73926 -3.44043 3.79004 -6.68066 3.79004c-3.25 0 -5.4502 -2.04004 -6.67969 -3.79004c-1.23047 -1.74023 -1.96973 -3.68066 -2.62012 -5.82031c-1.44043 -5.12012 -2.21973 -10.3301 -2.19043 -15.6504v-16.8799
-c0 -14.9102 -7.38965 -32.6201 -19.1299 -48.2402c0.610352 106.761 10.8906 194.73 24.4707 215.351v26.0693zM223.52 266.75c-1.59961 -22.4004 -2.75 -46.5195 -3.47949 -72.0703c-23.2998 -11.2793 -40.7705 -33.1602 -46.3203 -59.5098
-c-7.71973 -2.25977 -22.71 -3.91992 -40.4893 -4.21973c-7.51074 3.66016 -16.5 5.85938 -26.1807 6.04004c1.90039 14.9102 5.87012 29.1699 11.6504 42.4199c15.4395 -8.10059 30.9297 -8.66016 35.4697 -0.959961c4.57031 7.74023 -3.58984 21.04 -18.3203 30.6602
-c8.68066 11.7695 18.9805 22.2998 30.5605 31.0898c9.50977 -15.5898 23.3594 -24.4404 31.3594 -19.8203c8.05078 4.65039 7.19043 21.1699 -1.70996 37.29c8.76074 3.88965 17.9404 6.92969 27.46 9.08008zM288.48 266.75
-c9.45508 -2.12695 18.7754 -5.23145 27.4492 -9.08008c-8.89941 -16.1299 -9.75977 -32.6396 -1.70996 -37.29c8 -4.62012 21.8506 4.23047 31.3604 19.8203c11.5801 -8.79004 21.8799 -19.3203 30.5596 -31.0898c-14.7197 -9.61035 -22.8896 -22.9199 -18.3193 -30.6602
-c4.54004 -7.7002 20.0293 -7.14062 35.4697 0.959961c5.79004 -13.25 9.75 -27.5098 11.6504 -42.4199c-9.68066 -0.19043 -18.6709 -2.37988 -26.1807 -6.04004c-17.7793 0.299805 -32.7695 1.95996 -40.4902 4.21973c-5.5498 26.3496 -23.0293 48.2305 -46.3193 59.5098
-c-0.719727 25.5508 -1.87988 49.6699 -3.46973 72.0703zM256 258.15c3.23047 0 5.86035 -8.81055 6.08984 -19.9307h0.0498047v-16.8799c0 -41.4199 49.0107 -95.04 93.4902 -95.04c52 0 122.76 1.4502 156.37 -29.1699v-2.50977
-c-9.41992 -17.1104 -20.5801 -33.1699 -33.1797 -47.9697c-12.5303 21.0898 -51.5898 40.96 -108.021 41.3496c-45.6797 -1.01953 -79.0195 -20.3301 -90.7598 -40.8701c-0.00976562 -0.00976562 0.00976562 -0.0400391 0 -0.0498047
-c-7.66992 -2.13965 -15.8496 -3.23047 -24.04 -3.20996c-8.19043 -0.0205078 -16.3701 1.07031 -24.04 3.20996c-0.00976562 0.00976562 0.00976562 0.0400391 0 0.0498047c-11.7295 20.54 -45.0801 39.8506 -90.7598 40.8701
-c-56.4307 -0.400391 -95.5 -20.2598 -108.021 -41.3496c-12.5996 14.7998 -23.7598 30.8496 -33.1797 47.9697v2.50977c33.6201 30.6201 104.37 29.1699 156.37 29.1699c44.4795 0 93.4902 53.6201 93.4902 95.04v16.8799h0.0498047
-c0.229492 11.1201 2.85938 19.9307 6.08984 19.9307zM256 161.56c-22.4199 0 -40.5996 -18.1797 -40.5996 -40.5996s18.1797 -40.6504 40.5996 -40.6504s40.5996 18.2305 40.5996 40.6504s-18.1797 40.5996 -40.5996 40.5996zM256 153.92
-c18.1904 0 32.96 -14.7695 32.96 -32.96s-14.7695 -32.96 -32.96 -32.96s-32.96 14.7695 -32.96 32.96s14.7695 32.96 32.96 32.96zM256 147.78c-14.8096 0 -26.8203 -12.0107 -26.8203 -26.8203s12.0107 -26.8203 26.8203 -26.8203s26.8203 12.0107 26.8203 26.8203
-s-12.0107 26.8203 -26.8203 26.8203zM141.2 81.1104c18.75 -0.419922 35.1895 -4.18066 48.6094 -9.66992c12.5508 -16.0303 29.1602 -30.04 49.5801 -33.0703c0.100586 -0.00976562 0.169922 -0.0302734 0.270508 -0.0498047
-c0.0498047 -0.0107422 0.109375 -0.0400391 0.160156 -0.0507812c5.23926 -1.06934 10.6396 -1.59961 16.1895 -1.59961c5.56055 0 10.9502 0.530273 16.1904 1.59961c0.0498047 0.0107422 0.109375 0.0400391 0.160156 0.0507812
-c0.0996094 0.00976562 0.179688 0.0292969 0.269531 0.0498047c20.4199 3.04004 37.04 17.04 49.5801 33.0703c13.4199 5.5 29.8496 9.25 48.6104 9.66992c10.1797 -0.0800781 21.5996 -0.360352 30.5 -1.66016c-0.430664 -4.41992 -1.51074 -18.6299 -7.11035 -29.7598
-c-9.11035 2.55957 -18.3604 3.89941 -27.6201 3.89941c-41.2803 -0.939453 -71.4795 -34.3496 -78.2598 -74.4697l-0.110352 -4.7002c-10.3994 -1.91992 -21.1797 -2.93945 -32.21 -2.93945c-11.0195 0 -21.8096 1.0293 -32.21 2.93945l-0.109375 4.7002
-c-6.78027 40.1201 -36.9805 73.5303 -78.2607 74.4697c-9.25977 0 -18.5098 -1.33984 -27.6201 -3.89941c-5.59961 11.1299 -6.67969 25.3398 -7.10938 29.7598c8.89941 1.2998 20.3096 1.58984 30.5 1.66016z" />
-    <glyph glyph-name="jedi-order" unicode="&#xf50e;" 
-d="M398.5 74.4004c0 0 26.2998 16.1992 49.9004 77.6992c0 0 -17 -183.3 -222 -185.699h-4.10059c-205.1 2.39941 -222 185.699 -222 185.699c23.2002 -61.5996 49.4004 -77.6992 49.4004 -77.6992c-95.9004 122.1 -17.2002 233.1 -17.2002 233.1
-c-45.4004 -85.7002 41.4004 -170.5 41.4004 -170.5c-105 171.6 60.5 271.5 60.5 271.5c-96.9004 -72.5996 10.0996 -190.7 10.0996 -190.7c-85.7998 -158.399 68.5996 -230.1 68.5996 -230.1s0.400391 16.8994 2.2002 85.7002l-34.5 -36.2002l24.2002 47.3994
-l-62.5996 9.10059l62.5996 9.09961l-20.2002 55.5l31.4004 -45.8994c2.2998 87.8994 7.89941 305.899 7.89941 306.899v2.40039v-1v1v-2.40039c0.100586 -1.7998 5.7002 -219.2 7.90039 -306.899l31.4004 45.8994l-20.2002 -55.5l62.5996 -9.09961l-62.5996 -9.10059
-l24.2002 -47.3994s-30.2002 31.7002 -34.5 36.2002c1.7998 -68.8008 2.19922 -85.7002 2.19922 -85.7002s154.4 71.7002 68.6006 230.1c0 0 107 118 10.0996 190.7c0 0 165.5 -100 60.5 -271.5c0 0 86.7998 84.7002 41.4004 170.5c0 0 78.7002 -111 -17.2002 -233.1z" />
-    <glyph glyph-name="mandalorian" unicode="&#xf50f;" 
-d="M232.27 -63.8896c-1 3.25977 -1.68945 15.8301 -1.38965 24.5801c0.549805 15.8896 1 24.7197 1.40039 28.7598c0.639648 6.2002 2.87012 20.7197 3.2793 21.3799c0.600586 1 0.400391 27.8701 -0.239258 33.1299c-0.310547 2.58008 -0.629883 11.9004 -0.69043 20.7305
-c-0.129883 16.4697 -0.530273 20.1191 -2.72949 24.7598c-1.10059 2.31934 -1.23047 3.83984 -1 11.4297c0.0546875 1.30957 0.0830078 2.62695 0.0830078 3.9502c0 3.00586 -0.142578 5.82715 -0.423828 8.75977c-2 13 -3.45996 27.7002 -3.25 33.9004
-s0.430664 7.14941 2.06055 9.66992c3.0498 4.70996 6.50977 14 8.62012 23.2695c2.25977 9.86035 3.87988 17.1807 4.58984 20.7402c1.1123 5.11914 2.61816 10.2246 4.41992 15.0498c2.26953 6.25 2.49023 15.3906 0.370117 15.3906
-c-0.299805 0 -1.37988 -1.2207 -2.41016 -2.70996c-1.03027 -1.49023 -4.75977 -4.80078 -8.29004 -7.36035c-8.37012 -6.08008 -11.7002 -9.38965 -12.6602 -12.5801s-1 -7.22949 -0.160156 -7.75977c0.34082 -0.209961 1.29004 -2.40039 2.11035 -4.87988
-c0.926758 -2.82617 1.42773 -5.84375 1.42773 -8.97754c0 -2.19824 -0.241211 -4.3252 -0.708008 -6.38281c-0.389648 -1.76953 -1 -5.46973 -1.45996 -8.22949c-0.459961 -2.76074 -1 -6.46094 -1.25 -8.2207c-0.181641 -1.55176 -0.731445 -3.01367 -1.5498 -4.25977
-c-1 -1 -1.13965 -0.910156 -2.0498 0.530273c-0.724609 1.4541 -1.22656 3.07324 -1.44043 4.75c-0.25 1.73926 -1.62988 7.10938 -3.08008 11.9297c-3.2793 10.9004 -3.51953 16.1504 -1 21c0.800781 1.39648 1.38086 2.96875 1.66992 4.61035
-c0 2.38965 -2.19922 5.31934 -7.40918 9.88965c-7 6.17969 -8.62988 7.91992 -10.2305 11.2998c-1.70996 3.60059 -3.05957 4.06055 -4.54004 1.54004c-1.78027 -3 -2.59961 -9.10938 -3 -22l-0.339844 -12.1895l2 -2.25c3.20996 -3.7002 12.0703 -16.4502 13.7803 -19.8301
-c3.41016 -6.74023 4.33984 -11.6904 4.41016 -23.5605c0.0693359 -11.8701 0.949219 -22.75 2 -24.71c0.359375 -0.660156 0.509766 -1.34961 0.339844 -1.51953s0.410156 -2.08984 1.29004 -4.27051c1.02539 -2.84082 1.73633 -5.8916 2.05957 -9
-c0.37207 -3.50684 0.950195 -6.99219 1.70996 -10.3701c2.23047 -9.55957 2.77051 -14.0801 2.39062 -20.1396c-0.200195 -3.26953 -0.530273 -11.0703 -0.730469 -17.3203c-1.30957 -41.7598 -1.84961 -58 -2 -61.21c-0.120117 -2 -0.389648 -11.5098 -0.599609 -21.0693
-c-0.360352 -16.3008 -1.30078 -27.3701 -2.41992 -28.6504c-0.640625 -0.729492 -8.07031 4.91016 -12.5205 9.49023c-3.75 3.87012 -4 4.79004 -2.83008 9.9502c0.700195 3 2.25977 18.29 3.33008 32.6191c0.360352 4.78027 0.80957 10.5 1 12.7109
-c0.830078 9.36914 1.66016 20.3496 2.61035 34.7793c0.55957 8.45996 1.33008 16.4404 1.71973 17.7305s0.889648 9.88965 1.12988 19.1094l0.429688 16.7705l-2.25977 4.2998c-1.71973 3.28027 -4.87012 6.94043 -13.2197 15.3398
-c-6 6.07031 -11.8398 12.2998 -12.9102 13.8506l-1.9502 2.80957l0.75 10.9004c1.08984 15.71 1.10059 48.5693 0 59.0596l-0.889648 8.7002l-3.28027 4.51953c-5.85938 8.08008 -5.7998 7.75 -6.21973 33.2705c-0.100586 6.07031 -0.379883 11.5 -0.629883 12.0596
-c-0.830078 1.87012 -3.0498 2.66016 -8.54004 3.05078c-8.86035 0.619141 -11 1.89941 -23.8506 14.5498c-6.14941 6 -12.3398 12 -13.75 13.1895c-2.80957 2.41992 -2.79004 2 -0.55957 9.62988l1.34961 4.65039l-1.68945 3
-c-0.764648 1.42578 -1.62793 2.78223 -2.58984 4.07031c-1.33008 1.50977 -5.5 10.8896 -6 13.4893c-0.100586 0.362305 -0.154297 0.743164 -0.154297 1.13672c0 1.05469 0.385742 2.02148 1.02441 2.76367c2.22949 2.86035 3.39941 5.67969 4.44922 10.7305
-c2.33008 11.1895 7.74023 26.0898 10.6006 29.2197c3.17969 3.46973 7.7002 1 9.41016 -5c1.33984 -4.79004 1.36914 -9.79004 0.0996094 -18.5498c-0.53418 -3.65918 -0.869141 -7.33594 -1 -11.1104c0 -4 0.19043 -4.69043 2.25 -7.38965
-c3.33008 -4.37012 7.72949 -7.41016 15.2002 -10.5205c1.71777 -0.71582 3.30566 -1.67969 4.71973 -2.84961c11.1699 -10.7207 18.6201 -16.1807 22.9502 -16.8506c5.17969 -0.799805 8 -4.54004 10 -13.3896c1.30957 -5.65039 4 -11.1396 5.45996 -11.1396
-c1.2041 0.246094 2.3418 0.729492 3.33008 1.38965c2 1.21973 2.25 1.73047 2.25 4.17969c-0.267578 6.07031 -0.943359 12.0078 -2 17.8398c-0.370117 1.66016 -0.780273 4.06055 -0.930664 5.35059c-0.149414 1.29004 -0.609375 3.84961 -1 5.68945
-c-2.5498 11.1602 -3.64941 15.46 -4.09961 16c-1.5498 2 -4.08008 10.2002 -4.92969 15.9209c-1.64062 11.1094 -4 14.2295 -12.9102 17.3896c-4.92969 1.81641 -9.44238 4.50195 -13.3398 7.87988c-1.15039 1 -4 3.21973 -6.35059 5.05957
-c-2.34961 1.84082 -4.40918 3.53027 -4.59961 3.76074c-0.848633 0.733398 -1.73926 1.39648 -2.69043 2c-6.23926 4.21973 -8.83984 7 -11.2598 12l-2.43945 5l-0.220703 13l-0.219727 13l6.91016 6.5498c3.9502 3.75 8.47949 7.34961 10.5898 8.42969
-c3.30957 1.69043 4.4502 1.89062 11.3701 2c8.53027 0.19043 10.1201 0 11.6602 -1.55957c1.54004 -1.56055 1.35938 -6.40039 -0.290039 -8.5c-0.592773 -0.666992 -1.05273 -1.45508 -1.33984 -2.32031c0 -0.580078 -2.61035 -4.91016 -5.41992 -9
-c-1.03906 -2.12988 -1.85156 -4.44727 -2.37012 -6.82031c20.4395 -13.3896 21.5498 -3.76953 14.0693 -29l11.3604 -2.51953c3.11035 8.66016 6.46973 17.2598 8.61035 26.2197c0.290039 7.62988 -12 4.19043 -15.4004 8.68066
-c-2.33008 5.92969 3.12988 14.1797 6.05957 19.1992c1.60059 2.33984 6.62012 4.7002 8.82031 4.15039c0.879883 -0.219727 4.16016 0.349609 7.37012 1.28027c2.41992 0.759766 4.97461 1.33398 7.5498 1.67969c2.05957 0.222656 4.08984 0.666016 6 1.29004
-c3.65039 1.11035 4.5 1.16992 6.35059 0.400391c1.85156 -0.636719 3.82324 -1.10352 5.81934 -1.36035c2.12598 -0.287109 4.17285 -0.953125 6 -1.91016c1.55078 -0.908203 3.24414 -1.64746 5 -2.16992c2.51074 -0.679688 3 -0.570312 7.05078 1.66992l4.34961 2.40039
-l10.7402 0.389648c10.4395 0.400391 10.8096 0.469727 15.2598 2.67969l4.58008 2.32031l2.45996 -1.42969c1.75977 -1 3.13965 -2.73047 4.84961 -6c2.36035 -4.51074 2.37988 -4.58008 1.37012 -7.37012c-0.879883 -2.44043 -0.889648 -3.2998 -0.0996094 -6.39062
-c0.526367 -2.03027 1.24219 -4.03516 2.09961 -5.90918c0.62793 -1.22852 1.08203 -2.5918 1.31055 -4c0.30957 -4.33008 0 -5.30078 -2.41016 -6.91992c-2.16992 -1.4707 -7 -7.91016 -7 -9.34082c-0.249023 -1.03906 -0.614258 -2.05762 -1.07031 -3
-c-5 -11.5098 -6.75977 -13.5596 -14.2598 -17c-9.2002 -4.19922 -12.2998 -5.18945 -16.21 -5.18945c-3.10059 0 -4 -0.25 -4.54004 -1.25977c-1.17383 -1.44238 -2.53613 -2.67969 -4.08984 -3.70996c-1.82715 -1.21973 -3.32031 -2.84668 -4.37988 -4.78027
-c-0.486328 -1.22852 -1.36426 -2.24707 -2.49023 -2.91016c-0.941406 -0.387695 -1.77246 -0.97168 -2.4502 -1.70996c-2.22168 -1.9502 -4.53613 -3.73047 -7 -5.37988c-3.33008 -2.33984 -6.87012 -5 -7.87012 -6c-0.666992 -0.71875 -1.47168 -1.29688 -2.37988 -1.7002
-c-0.837891 -0.376953 -1.5625 -0.941406 -2.12988 -1.65039c-1.31055 -1.38965 -1.49023 -2.10938 -1.13965 -4.59961c0.310547 -2.00488 0.795898 -3.99707 1.41992 -5.87988c1.31934 -3.7998 1.30957 -7.86035 0 -10.5703
-c-1.31055 -2.70996 -0.890625 -6.64941 1.34961 -9.58984c2 -2.62988 2.16016 -4.55957 0.709961 -8.83984c-0.692383 -2.67969 -1.06152 -5.48926 -1.06152 -8.38379c0 -0.183594 -0.000976562 -0.34375 0.00195312 -0.526367
-c0 -4.87988 0.219727 -6.28027 1.45996 -8.37988c1.23926 -2.09961 1.81934 -2.48047 3.23926 -2.32031c2 0.230469 2.30078 1.0498 4.70996 12.1201c2.18066 10 3.70996 11.9199 13.7607 17.0801c2.93945 1.50977 7.45996 4 10 5.44043
-c2.54004 1.43945 6.79004 3.68945 9.37012 4.90918c5.99512 2.625 11.1807 6.62598 15.2197 11.6709c7.10938 8.78906 10 16.2197 12.8496 33.2998c0.362305 2.81152 1.37402 5.46387 2.86035 7.72949c1.39648 2.17676 2.40332 4.6748 2.88965 7.31055
-c1 5.2998 2.85059 9.08008 5.58008 11.5098c4.7002 4.17969 6 1.08984 4.58984 -10.8701c-0.459961 -3.86035 -1.09961 -10.3301 -1.43945 -14.3799l-0.610352 -7.36035l4.4502 -4.08984l4.4502 -4.08984l0.109375 -8.41992
-c0.0605469 -4.62988 0.470703 -9.53027 0.919922 -10.8896l0.820312 -2.4707l-6.42969 -6.2793c-8.54004 -8.33008 -12.8799 -13.9307 -16.7598 -21.6104c-1.77051 -3.49023 -3.74023 -7.11035 -4.38086 -8c-2.17969 -3.11035 -6.45996 -13 -8.75977 -20.2598
-l-2.29004 -7.2207l-7 -6.48926c-3.83008 -3.57031 -8 -7.25 -9.16992 -8.16992c-3.0498 -2.32031 -4.25977 -5.15039 -4.25977 -10c-0.00878906 -0.204102 -0.0126953 -0.40918 -0.0126953 -0.614258c0 -2.39062 0.583984 -4.65332 1.60254 -6.64648
-c0.789062 -1.54785 1.49512 -3.17871 2.08984 -4.83008c0.350586 -1.05859 0.887695 -2.03809 1.57031 -2.88965c1.40039 -1.58984 1.91992 -16.1201 0.830078 -23.2197c-0.679688 -4.48047 -3.62988 -12 -4.7002 -12c-1.79004 0 -4.05957 -9.27051 -5.07031 -20.7402
-c-0.179688 -2 -0.620117 -5.94043 -1 -8.7002s-1 -10 -1.34961 -16.0498c-0.770508 -12.2197 -0.19043 -18.7705 2 -23.1504c3.41016 -6.68945 0.519531 -12.6895 -11 -22.8398l-4 -3.49023l0.0703125 -5.18945c0.0546875 -3.05273 0.448242 -6.01562 1.13965 -8.87012
-c4.61035 -16 4.73047 -16.9199 4.37988 -37.1299c-0.459961 -26.4004 -0.259766 -40.2705 0.629883 -44.1504c0.489258 -2.28223 0.853516 -4.63086 1.08008 -7c0.169922 -2 0.660156 -5.33008 1.08008 -7.35938c0.469727 -2.26074 0.780273 -11 0.790039 -22.7402v-19.0605
-l-1.80957 -2.62988c-2.70996 -3.91016 -15.1104 -13.54 -15.4902 -12.29zM261.8 -18.7803c-0.179688 0.299805 -0.330078 6.87012 -0.330078 14.5898c0 14.0605 -0.889648 27.54 -2.25977 34.4502c-0.400391 2 -0.80957 9.7002 -0.900391 17.0605
-c-0.149414 11.9297 -1.39941 24.3701 -2.63965 26.3799c-0.660156 1.06934 -3 17.6602 -3 21.2998c0 4.23047 1 6 5.28027 9.12988s4.85938 3.13965 5.47949 0.719727c0.280273 -1.09961 1.4502 -5.61914 2.60059 -10c3.92969 -15.1191 4.13965 -16.2695 4.0498 -21.7393
-c-0.0996094 -5.78027 -0.129883 -6.12988 -1.74023 -17.7305c-1 -7.07031 -1.16992 -12.3896 -1 -28.4297c0.169922 -19.4004 -0.639648 -35.7305 -2 -41.2705c-0.709961 -2.7793 -2.7998 -5.47949 -3.42969 -4.42969zM190.8 18.7998
-c-0.761719 3.52051 -1.3457 7.14453 -1.72949 10.79c-0.382812 3.64648 -0.967773 7.27051 -1.73047 10.79c-0.513672 2.0957 -0.854492 4.27344 -1 6.49023c-0.30957 3.18945 -0.910156 7.45996 -1.33008 9.47949c-1 4.79004 -3.34961 19.3506 -3.41992 21.0703
-c0 0.740234 -0.339844 4.0498 -0.700195 7.36035c-0.669922 6.20996 -0.839844 27.6699 -0.219727 28.29c1 1 6.62988 -2.76074 11.3301 -7.43066l5.28027 -5.25l-0.450195 -6.46973c-0.25 -3.55957 -0.599609 -10.2295 -0.780273 -14.8301
-c-0.179688 -4.59961 -0.490234 -9.87012 -0.669922 -11.71s-0.610352 -9.36035 -0.939453 -16.7197c-0.790039 -17.4102 -1.94043 -31.29 -2.65039 -32c-0.113281 -0.119141 -0.273438 -0.194336 -0.450195 -0.194336c-0.239258 0 -0.446289 0.135742 -0.549805 0.333984
-h0.00976562zM103.62 285.39c21.0703 -12.79 17.8398 -14.1494 28.4902 -17.6592c13 -4.29004 18.8701 -7.13086 23.1494 -16.8701c-43.6602 -36.1406 -69.0098 -57.8604 -76.71 -70.8604c-31 -52 -6 -101.59 62.75 -87.21c-14.1797 -29.2305 -78 -28.6299 -98.6797 4.90039
-c-24.6797 39.9492 -22.0898 118.3 61 187.659v0.0400391zM314.41 106.39c56.6602 -6.87988 82.3203 37.7402 46.54 89.2305c0 0 -26.8701 29.3398 -64.2803 68c3 15.4502 9.49023 32.1201 30.5703 53.8203c89.2002 -63.5107 92 -141.61 92.46 -149.36
-c4.2998 -70.6396 -78.7002 -91.1797 -105.29 -61.71v0.0195312z" />
-    <glyph glyph-name="old-republic" unicode="&#xf510;" horiz-adv-x="496" 
-d="M235.76 437.77c7.5 0.310547 15 0.280273 22.5 0.0908203c3.61035 -0.140625 7.2002 -0.400391 10.79 -0.730469c4.91992 -0.269531 9.79004 -1.03027 14.6699 -1.62012c2.93066 -0.429688 5.83008 -0.979492 8.75 -1.45996
-c7.90039 -1.33008 15.6699 -3.28027 23.3906 -5.39941c12.2393 -3.4707 24.1895 -7.91992 35.7598 -13.21c26.5596 -12.2402 50.9395 -29.21 71.6299 -49.8809c20.0303 -20.0898 36.7197 -43.5498 48.8896 -69.1895c1.12988 -2.58984 2.44043 -5.10059 3.4707 -7.74023
-c2.80957 -6.42969 5.38965 -12.9697 7.58008 -19.6299c4.13965 -12.3301 7.33984 -24.9902 9.41992 -37.8301c0.569336 -3.13965 1.04004 -6.2998 1.39941 -9.46973c0.549805 -3.83008 0.94043 -7.69043 1.18066 -11.5605
-c0.829102 -8.33984 0.839844 -16.7295 0.769531 -25.0996c-0.0703125 -4.96973 -0.259766 -9.94043 -0.75 -14.8896c-0.240234 -3.38086 -0.509766 -6.76074 -0.979492 -10.1201c-0.390625 -2.7207 -0.630859 -5.45996 -1.11035 -8.16992
-c-0.900391 -5.15039 -1.7002 -10.3105 -2.87012 -15.4102c-4.09961 -18.5 -10.2998 -36.5498 -18.5098 -53.6299c-15.7705 -32.8301 -38.8301 -62.1699 -67.1201 -85.1201c-17.2012 -14.0635 -36.3066 -25.8115 -56.9102 -34.8604
-c-6.20996 -2.67969 -12.46 -5.25 -18.8701 -7.41016c-3.50977 -1.16016 -7.00977 -2.37988 -10.5703 -3.38965c-6.61914 -1.87988 -13.2891 -3.63965 -20.0391 -5c-4.66016 -0.910156 -9.34082 -1.73047 -14.0303 -2.48047c-5.25 -0.65918 -10.5 -1.43945 -15.79 -1.73926
-c-6.69043 -0.660156 -13.4102 -0.839844 -20.1201 -0.810547c-6.82031 -0.0292969 -13.6504 0.120117 -20.4502 0.790039c-3.29004 0.230469 -6.57031 0.5 -9.83008 0.950195c-2.71973 0.389648 -5.45996 0.629883 -8.16992 1.11035
-c-4.12012 0.719727 -8.25 1.37012 -12.3496 2.21973c-4.25 0.939453 -8.49023 1.88965 -12.6904 3.01953c-8.62988 2.16992 -17.0801 5.01074 -25.4102 8.13086c-10.4893 4.11914 -20.79 8.75 -30.6396 14.25c-2.13965 1.14941 -4.28027 2.28906 -6.34961 3.56934
-c-11.2207 6.58008 -21.8604 14.1006 -31.9199 22.3398c-34.6807 28.4102 -61.4102 66.4307 -76.3506 108.7c-3.08984 8.74023 -5.70996 17.6504 -7.7998 26.6797c-1.48047 6.16016 -2.52051 12.4209 -3.58008 18.6602
-c-0.400391 2.35059 -0.610352 4.73047 -0.950195 7.08984c-0.599609 3.96094 -0.75 7.96094 -1.16992 11.9404c-0.799805 9.46973 -0.709961 18.9902 -0.509766 28.4902c0.139648 3.50977 0.339844 7.00977 0.700195 10.5098
-c0.30957 3.16992 0.459961 6.37012 0.919922 9.52051c0.410156 2.80957 0.649414 5.64941 1.16016 8.43945c0.699219 3.94043 1.2998 7.90039 2.11914 11.8203c3.43066 16.5195 8.4707 32.7295 15.2607 48.1797c1.14941 2.91992 2.58984 5.71973 3.85938 8.58984
-c8.05078 16.71 17.9004 32.5605 29.4902 47.0605c20 25.3799 45.1006 46.6797 73.2705 62.4697c7.5 4.15039 15.1592 8.0498 23.0693 11.3701c15.8203 6.87988 32.4102 11.9502 49.3105 15.3799c3.50977 0.669922 7.04004 1.24023 10.5596 1.84961
-c2.62012 0.470703 5.28027 0.700195 7.91016 1.08008c3.53027 0.530273 7.09961 0.680664 10.6504 1.04004c2.45996 0.240234 4.90918 0.360352 7.35938 0.509766zM244.4 413.36c-9.23047 -0.100586 -18.4307 -0.990234 -27.5703 -2.23047
-c-7.2998 -1.08008 -14.5303 -2.59961 -21.71 -4.2998c-13.9102 -3.5 -27.4805 -8.33984 -40.46 -14.4199c-10.46 -4.99023 -20.5898 -10.7002 -30.1797 -17.2197c-4.18066 -2.9209 -8.40039 -5.80078 -12.3408 -9.03027
-c-5.08008 -3.96973 -9.97949 -8.16992 -14.6797 -12.5898c-2.50977 -2.24023 -4.80957 -4.7002 -7.21973 -7.06055c-28.2207 -28.79 -48.4404 -65.3896 -57.5 -104.689c-2.04004 -8.44043 -3.54004 -17.0205 -4.44043 -25.6504
-c-1.09961 -8.88965 -1.43945 -17.8496 -1.41016 -26.7998c0.110352 -7.13965 0.379883 -14.2803 1.2207 -21.3701c0.620117 -7.12012 1.87012 -14.1602 3.19922 -21.1797c1.07031 -4.65039 2.03027 -9.32031 3.33008 -13.9102
-c6.29004 -23.3799 16.5 -45.7002 30.0703 -65.75c8.63965 -12.9805 18.7803 -24.9297 29.9805 -35.7705c16.2793 -15.8193 35.0498 -29.04 55.3398 -39.2197c7.2793 -3.51953 14.6602 -6.87012 22.2695 -9.62988c5.04004 -1.75977 10.0605 -3.57031 15.2197 -4.98047
-c11.2607 -3.22949 22.7705 -5.59961 34.3906 -7.05957c2.91016 -0.290039 5.80957 -0.610352 8.71973 -0.900391c13.8203 -1.08008 27.7402 -1 41.54 0.430664c4.4502 0.599609 8.91992 0.989258 13.3496 1.7793c3.63086 0.670898 7.28027 1.25 10.8701 2.10059
-c4.12988 0.979492 8.28027 1.91016 12.3604 3.07031c26.5 7.33984 51.5801 19.71 73.5801 36.1992c15.7803 11.8203 29.96 25.7607 42.1201 41.2803c3.25977 4.02051 6.16992 8.30957 9.12988 12.5498c3.38965 5.06055 6.58008 10.25 9.59961 15.54
-c2.40039 4.44043 4.74023 8.91016 6.9502 13.4502c5.69043 12.0498 10.2803 24.6201 13.75 37.4902c2.58984 10.0098 4.75 20.1602 5.90039 30.4502c1.76953 13.4697 1.93945 27.0996 1.29004 40.6494c-0.290039 3.89062 -0.669922 7.77051 -1 11.6602
-c-2.23047 19.0801 -6.79004 37.9102 -13.8203 55.7998c-5.9502 15.1299 -13.5303 29.6299 -22.6104 43.1299c-12.6895 18.8008 -28.2393 35.6807 -45.9697 49.8301c-25.0498 20 -54.4697 34.5498 -85.6504 42.0801c-7.7793 1.92969 -15.6895 3.33984 -23.6299 4.4502
-c-3.90918 0.589844 -7.84961 0.820312 -11.7695 1.24023c-7.38965 0.569336 -14.8105 0.719727 -22.2197 0.580078zM139.26 364.47c13.2998 8.89062 28.0801 15.3799 43.2998 20.1807c-3.16992 -1.77051 -6.43945 -3.38086 -9.5293 -5.29004
-c-11.21 -6.68066 -21.5205 -14.9004 -30.3799 -24.4902c-6.80078 -7.42969 -12.7607 -15.7305 -17.0107 -24.8896c-3.29004 -6.86035 -5.63965 -14.1904 -6.85938 -21.7109c-0.930664 -4.84961 -1.2998 -9.80957 -1.16992 -14.75
-c0.129883 -13.6592 4.43945 -27.0791 11.29 -38.8193c5.91992 -10.2197 13.6299 -19.3301 22.3594 -27.2598c4.85059 -4.36035 10.2402 -8.09082 14.9502 -12.6006c2.25977 -2.18945 4.49023 -4.41992 6.42969 -6.91016c2.62012 -3.30957 4.89062 -6.98926 5.99023 -11.0996
-c0.900391 -3.02051 0.660156 -6.2002 0.69043 -9.31055c0.0195312 -4.09961 -0.0400391 -8.19922 0.0292969 -12.2998c0.140625 -3.54004 -0.0195312 -7.08984 0.110352 -10.6299c0.0800781 -2.37988 0.0205078 -4.75977 0.0498047 -7.13965
-c0.160156 -5.77051 0.0605469 -11.5303 0.150391 -17.2998c0.109375 -2.91016 0.0195312 -5.82031 0.129883 -8.74023c0.0302734 -1.62988 0.129883 -3.28027 -0.0302734 -4.91016c-0.910156 -0.120117 -1.81934 -0.179688 -2.72949 -0.160156
-c-10.9902 0 -21.8799 2.62988 -31.9502 6.92969c-6 2.7002 -11.8105 5.89062 -17.0898 9.83008c-5.75 4.19043 -11.0898 8.95996 -15.79 14.3105c-6.53027 7.24023 -11.9805 15.3896 -16.6201 23.9502c-1.07031 2.0293 -2.24023 4.01953 -3.17969 6.12012
-c-1.16016 2.63965 -2.62012 5.13965 -3.66992 7.81934c-4.05078 9.68066 -6.57031 19.9404 -8.08008 30.3105c-0.490234 4.43945 -1.09082 8.87988 -1.2002 13.3496c-0.700195 15.7305 0.839844 31.5498 4.66992 46.8203c2.12012 8.14941 4.76953 16.1797 8.30957 23.8301
-c6.32031 14.1992 15.3398 27.1797 26.3008 38.1895c6.2793 6.2002 13.1299 11.8398 20.5293 16.6699zM314.63 384.59c2.74023 -0.740234 5.41016 -1.74023 8.08984 -2.67969c6.36035 -2.33008 12.6807 -4.83984 18.71 -7.95996
-c13.1104 -6.44043 25.3105 -14.8105 35.8203 -24.9697c10.2002 -9.9502 18.7402 -21.6006 25.1396 -34.3408c1.28027 -2.75 2.64062 -5.45996 3.81055 -8.25977c6.30957 -15.0996 10 -31.2598 11.2295 -47.5703c0.410156 -4.54004 0.44043 -9.08984 0.450195 -13.6396
-c0.0703125 -11.6396 -1.49023 -23.25 -4.2998 -34.5303c-1.96973 -7.26953 -4.34961 -14.4893 -7.86035 -21.1797c-3.17969 -6.63965 -6.67969 -13.1602 -10.8398 -19.2402c-6.93945 -10.4697 -15.5996 -19.8701 -25.8203 -27.2197
-c-10.4795 -7.63965 -22.6396 -13.0195 -35.3994 -15.3799c-3.50977 -0.69043 -7.08008 -1.08008 -10.6602 -1.20996c-1.84961 -0.0605469 -3.71973 -0.160156 -5.55957 0.0996094c-0.280273 2.15039 0 4.31055 -0.0107422 6.45996
-c-0.0292969 3.73047 0.140625 7.4502 0.100586 11.1699c0.189453 7.02051 0.0195312 14.0508 0.209961 21.0703c0.0292969 2.37988 -0.0302734 4.75977 0.0292969 7.13965c0.170898 5.07031 -0.0390625 10.1406 0.140625 15.21
-c0.0996094 2.99023 -0.240234 6.04004 0.509766 8.95996c0.660156 2.5 1.78027 4.86035 3.08984 7.08008c4.45996 7.31055 11.0605 12.96 17.6807 18.2607c5.37988 4.17969 10.4697 8.76953 15.0195 13.8398c7.67969 8.37012 14.1699 17.8799 18.7803 28.2695
-c2.5 5.93066 4.51953 12.1006 5.5498 18.46c0.860352 4.37012 1.05957 8.83008 1.00977 13.2705c-0.0195312 7.84961 -1.39941 15.6494 -3.63965 23.1699c-1.75 5.72949 -4.27051 11.1797 -7.08984 16.4502c-3.87012 6.92969 -8.65039 13.3096 -13.96 19.1992
-c-9.94043 10.8506 -21.75 19.9404 -34.6006 27.1006c-1.84961 1.01953 -3.83984 1.82031 -5.62988 2.96973zM213.83 326.14c0.979492 1.18066 1.99023 2.33008 3.12012 3.37988c-0.610352 -0.929688 -1.27051 -1.80957 -1.9502 -2.67969
-c-3.09961 -3.87988 -5.54004 -8.30957 -7.03027 -13.0596c-0.870117 -3.27051 -1.67969 -6.60059 -1.72949 -10c-0.0703125 -2.52051 -0.0800781 -5.07031 0.319336 -7.57031c1.13086 -7.62988 4.33008 -14.8496 8.77051 -21.1201c2 -2.7002 4.25 -5.26953 6.91992 -7.33008
-c1.62012 -1.26953 3.53027 -2.08984 5.33984 -3.0498c3.11035 -1.67969 6.32031 -3.22949 9.07031 -5.47949c2.66992 -2.09082 4.5498 -5.33008 4.39941 -8.79004c-0.00976562 -73.6709 0 -147.341 -0.00976562 -221.021c0 -1.34961 -0.0800781 -2.7002 0.0400391 -4.04004
-c0.129883 -1.47949 0.820312 -2.83008 1.46973 -4.14941c0.860352 -1.66016 1.78027 -3.34082 3.18066 -4.62012c0.849609 -0.770508 1.96973 -1.40039 3.14941 -1.24023c1.5 0.200195 2.66016 1.34961 3.4502 2.57031c0.959961 1.50977 1.67969 3.15918 2.28027 4.84961
-c0.759766 2.12988 0.439453 4.41992 0.540039 6.62988c0.139648 4.03027 -0.0205078 8.06055 0.139648 12.0898c0.0302734 5.89062 0.0302734 11.7705 0.0605469 17.6602c0.139648 3.62012 0.0292969 7.24023 0.109375 10.8604
-c0.150391 4.0293 -0.0195312 8.05957 0.140625 12.0898c0.0292969 5.99023 0.0292969 11.9795 0.0693359 17.9697c0.140625 3.62012 0.0205078 7.24023 0.110352 10.8604c0.139648 3.92969 -0.0205078 7.85938 0.139648 11.7803
-c0.0302734 5.98926 0.0302734 11.9795 0.0605469 17.9697c0.160156 3.93945 -0.00976562 7.87988 0.189453 11.8193c0.290039 -1.43945 0.129883 -2.91992 0.220703 -4.37988c0.189453 -3.60938 0.419922 -7.22949 0.759766 -10.8398
-c0.320312 -3.43945 0.439453 -6.88965 0.859375 -10.3193c0.370117 -3.10059 0.510742 -6.2207 0.950195 -9.31055c0.570312 -4.08984 0.870117 -8.20996 1.54004 -12.29c1.45996 -9.04004 2.83008 -18.1104 5.08984 -26.9902c1.13086 -4.81934 2.40039 -9.60938 4 -14.2998
-c2.54004 -7.89941 5.7207 -15.6699 10.3105 -22.6201c1.72949 -2.63965 3.87012 -4.97949 6.09961 -7.20996c0.270508 -0.25 0.549805 -0.509766 0.879883 -0.709961c0.600586 -0.25 1.31055 0.0703125 1.7002 0.570312c0.709961 0.879883 1.16992 1.93945 1.7002 2.92969
-c4.0498 7.7998 8.17969 15.5605 12.3398 23.3105c0.700195 1.30957 1.44043 2.62012 2.56055 3.60938c1.75 1.57031 3.83984 2.69043 5.97949 3.62988c2.87988 1.2207 5.90039 2.19043 9.03027 2.41992c6.58008 0.620117 13.1094 -0.75 19.5596 -1.84961
-c3.69043 -0.580078 7.40039 -1.16992 11.1299 -1.41016c3.74023 -0.0996094 7.48047 -0.0498047 11.21 0.280273c8.55078 0.919922 16.9902 2.95996 24.9404 6.25c5.2998 2.24023 10.46 4.83008 15.3096 7.92969c11.46 7.20996 21.46 16.5703 30.04 27.0107
-c1.16992 1.41992 2.25 2.89941 3.45996 4.2793c-1.19922 -3.24023 -2.66992 -6.37012 -4.15918 -9.47949c-1.25 -2.90039 -2.84082 -5.61035 -4.27051 -8.41992c-5.16016 -9.62988 -11.0195 -18.9102 -17.75 -27.5205
-c-4.03027 -5.20996 -8.53027 -10.0498 -13.3301 -14.5703c-6.63965 -6.0498 -14.0703 -11.3691 -22.4297 -14.7598c-8.20996 -3.37012 -17.3105 -4.62988 -26.0898 -3.29004c-3.56055 0.580078 -7.01074 1.69043 -10.4102 2.87988
-c-2.79004 0.970703 -5.39062 2.38086 -8.03027 3.69043c-3.42969 1.70996 -6.63965 3.80957 -9.70996 6.08008c2.70996 -3.06055 5.69043 -5.86035 8.7002 -8.61035c4.26953 -3.75977 8.74023 -7.30957 13.6299 -10.2295c3.98047 -2.4502 8.29004 -4.40039 12.8398 -5.51074
-c1.45996 -0.369141 2.95996 -0.459961 4.4502 -0.599609c-1.25 -1.09961 -2.62988 -2.04004 -3.99023 -2.97949c-9.60938 -6.54004 -20.0098 -11.8604 -30.6895 -16.4307c-20.8604 -8.7002 -43.1699 -13.9697 -65.7402 -15.3398
-c-4.66016 -0.240234 -9.32031 -0.360352 -13.9805 -0.360352c-4.97949 0.110352 -9.96973 0.130859 -14.9199 0.650391c-11.2002 0.759766 -22.29 2.73047 -33.1699 5.42969c-10.3496 2.70996 -20.5498 6.12012 -30.2998 10.5508
-c-8.70996 3.85938 -17.1201 8.41992 -24.9902 13.79c-1.83008 1.30957 -3.74023 2.5293 -5.37012 4.0791c6.60059 1.19043 13.0303 3.39062 18.9902 6.48047c5.74023 2.86035 10.9902 6.66016 15.6299 11.0703c2.24023 2.18945 4.29004 4.58984 6.19043 7.08984
-c-3.43066 -2.12988 -6.93066 -4.15039 -10.6201 -5.78027c-4.41016 -2.16016 -9.07031 -3.76953 -13.8105 -5.01953c-5.72949 -1.52051 -11.7393 -1.73047 -17.6094 -1.14062c-8.12988 0.950195 -15.8604 4.27051 -22.5098 8.98047
-c-4.32031 2.93945 -8.2207 6.42969 -11.96 10.0596c-9.93066 10.1602 -18.2002 21.8105 -25.6602 33.8604c-3.94043 6.26953 -7.53027 12.75 -11.1201 19.2197c-1.0498 2.04004 -2.15039 4.0498 -3.17969 6.10059c2.84961 -2.9209 5.56934 -5.9707 8.42969 -8.88086
-c8.99023 -8.96973 18.5596 -17.4395 29.1602 -24.4795c7.5498 -4.90039 15.6699 -9.23047 24.5596 -11.0303c3.11035 -0.729492 6.32031 -0.469727 9.46973 -0.80957c2.77051 -0.280273 5.56055 -0.200195 8.34082 -0.299805
-c5.0498 -0.0605469 10.1094 -0.0400391 15.1592 0.15918c3.65039 0.160156 7.27051 0.660156 10.8906 1.09082c2.06934 0.25 4.10938 0.709961 6.13965 1.19922c3.87988 0.950195 8.11035 0.959961 11.8301 -0.609375c4.75977 -1.85059 8.44043 -5.64062 11.3799 -9.70996
-c2.16016 -3.02051 4.06055 -6.2207 5.66016 -9.58008c1.16016 -2.43066 2.45996 -4.79004 3.5498 -7.26074c1 -2.23926 2.15039 -4.41992 3.41992 -6.51953c0.669922 -1.01953 1.40039 -2.15039 2.62012 -2.5498c1.06055 0.75 1.70996 1.91016 2.28027 3.03027
-c2.09961 4.15918 3.41992 8.64941 4.88965 13.0498c2.02051 6.58984 3.78027 13.2695 5.19043 20.0195c2.20996 9.25 3.25 18.7197 4.54004 28.1299c0.55957 3.98047 0.830078 7.99023 1.30957 11.9707c0.870117 10.6396 1.90039 21.2695 2.24023 31.9395
-c0.0800781 1.86035 0.240234 3.70996 0.25 5.57031c0.00976562 4.34961 0.25 8.68945 0.219727 13.0303c-0.00976562 2.37988 -0.00976562 4.75977 0 7.12988c0.0498047 5.06934 -0.200195 10.1396 -0.219727 15.21c-0.200195 6.60938 -0.709961 13.2002 -1.29004 19.7793
-c-0.730469 5.88086 -1.5498 11.7803 -3.12012 17.5107c-2.0498 7.75 -5.58984 15.0293 -9.7998 21.8193c-3.16016 5.07031 -6.79004 9.87988 -11.0898 14.0303c-3.87988 3.86035 -8.58008 7.08008 -13.9404 8.4502c-1.5 0.410156 -3.05957 0.450195 -4.58984 0.639648
-c0.0703125 2.99023 0.700195 5.93066 1.25977 8.85059c1.58984 7.70996 3.7998 15.2998 6.76074 22.5996c1.51953 4.03027 3.40918 7.90039 5.38965 11.7197c3.4502 6.56055 7.62012 12.79 12.46 18.46zM245.1 324.44
-c0.350586 0.0595703 0.709961 0.119141 1.07031 0.189453c0.19043 -1.79004 0.0898438 -3.58008 0.0996094 -5.37012v-38.1299c-0.00976562 -1.74023 0.130859 -3.49023 -0.149414 -5.21973c-0.360352 0.0302734 -0.709961 0.0498047 -1.06055 0.0498047
-c-0.949219 3.75 -1.71973 7.5498 -2.61914 11.3096c-0.380859 1.53027 -0.580078 3.09082 -1.07031 4.59082c-1.7002 0.239258 -3.42969 0.169922 -5.15039 0.199219c-5.05957 0.0107422 -10.1299 0 -15.1895 0.0107422
-c-1.66016 0.00976562 -3.32031 -0.0898438 -4.98047 0.0292969c-0.0302734 0.390625 -0.259766 0.910156 0.160156 1.18066c1.28027 0.649414 2.71973 0.879883 4.05957 1.34961c3.43066 1.13965 6.88086 2.16016 10.3105 3.31055
-c1.38965 0.479492 2.90039 0.719727 4.16016 1.54004c0.0400391 0.55957 0.0195312 1.12988 -0.0498047 1.67969c-1.23047 0.549805 -2.53027 0.870117 -3.81055 1.28027c-3.12988 1.0293 -6.29004 1.95996 -9.41016 3.01953c-1.79004 0.620117 -3.66992 1 -5.41016 1.79004
-c-0.0292969 0.370117 -0.0693359 0.730469 -0.109375 1.08984c5.08984 0.19043 10.2002 -0.0595703 15.2998 0.120117c3.36035 0.129883 6.73047 -0.0800781 10.0898 0.0703125c0.120117 0.389648 0.259766 0.769531 0.370117 1.16016
-c1.08008 4.93945 2.33008 9.8291 3.38965 14.75zM251.07 324.64c0.359375 -0.0498047 0.719727 -0.120117 1.08008 -0.199219c0.979492 -3.85059 1.72949 -7.76074 2.70996 -11.6104c0.359375 -1.41992 0.55957 -2.87988 1.0293 -4.27051
-c2.53027 -0.179688 5.07031 0.0107422 7.61035 -0.0498047c5.16016 -0.120117 10.3301 -0.120117 15.4902 -0.0693359c0.759766 0.00976562 1.51953 -0.0302734 2.2793 -0.0800781c-0.0390625 -0.360352 -0.0693359 -0.720703 -0.0996094 -1.08008
-c-1.82031 -0.830078 -3.78027 -1.25 -5.66992 -1.89062c-3.73047 -1.22949 -7.48047 -2.38965 -11.2197 -3.56934c-0.570312 -0.169922 -1.12012 -0.419922 -1.66992 -0.640625c-0.150391 -0.549805 -0.180664 -1.12012 -0.120117 -1.68945
-c0.870117 -0.480469 1.81934 -0.810547 2.76953 -1.08984c4.87988 -1.52051 9.73047 -3.14062 14.6299 -4.60059c0.379883 -0.129883 0.780273 -0.269531 1.12988 -0.490234c0.400391 -0.269531 0.230469 -0.790039 0.150391 -1.17969
-c-1.66016 -0.129883 -3.30957 -0.0302734 -4.96973 -0.0400391c-5.16992 -0.00976562 -10.3301 0.00976562 -15.5 -0.00976562c-1.61035 -0.0302734 -3.21973 0.0195312 -4.82031 -0.209961c-0.519531 -1.66992 -0.719727 -3.41992 -1.16992 -5.11035
-c-0.94043 -3.56934 -1.51953 -7.24023 -2.54004 -10.7793c-0.360352 -0.0107422 -0.709961 -0.0205078 -1.05957 -0.0605469c-0.290039 1.73047 -0.150391 3.48047 -0.150391 5.21973v38.1299c0.0205078 1.78027 -0.0800781 3.58008 0.110352 5.37012zM65.0498 279.67
-c1.12012 2.15039 2.08008 4.40039 3.37012 6.45996c-1.82031 -7.55957 -2.91016 -15.2695 -3.62012 -23c-0.799805 -7.70996 -0.849609 -15.4902 -0.540039 -23.2295c1.0498 -19.9404 5.54004 -39.8301 14.2305 -57.8809c2.99023 -5.98926 6.34961 -11.8291 10.5 -17.1094
-c6.12012 -7.46973 12.5293 -14.7598 19.8398 -21.0898c4.7998 -4.10059 9.99023 -7.78027 15.54 -10.8008c3.26953 -1.64941 6.50977 -3.38965 9.93945 -4.67969c5.01074 -2.03027 10.1904 -3.60938 15.4209 -4.93945c3.8291 -0.959961 7.7793 -1.41016 11.5195 -2.70996
-c5 -1.57031 9.46973 -4.61035 13.0303 -8.43066c4.92969 -5.22949 8.08984 -11.8701 10.2002 -18.6699c0.989258 -2.89941 1.58984 -5.91016 2.16992 -8.91992c0.149414 -0.75 0.219727 -1.51953 0.15918 -2.29004c-6.5 -2.78027 -13.2598 -5.05957 -20.2598 -6.17969
-c-4.10938 -0.780273 -8.29004 -0.990234 -12.46 -1.08008c-10.25 -0.240234 -20.4697 1.75977 -30.1201 5.12012c-3.73926 1.41992 -7.48926 2.84961 -11.0293 4.71973c-8.06055 3.83984 -15.6406 8.7002 -22.46 14.46c-2.9209 2.5498 -5.83008 5.12988 -8.40039 8.03027
-c-9.16016 9.83008 -16.2998 21.4102 -21.79 33.6494c-2.38965 5.55078 -4.61035 11.1807 -6.37012 16.96c-1.16992 3.94043 -2.36035 7.89062 -3.25977 11.9102c-0.75 2.94043 -1.21973 5.9502 -1.87012 8.91992c-0.459961 2.14062 -0.69043 4.32031 -1.03027 6.48047
-c-0.849609 5.42969 -1.2793 10.9297 -1.33008 16.4297c0.110352 6.18066 0.25 12.3701 1.07031 18.5c0.400391 2.86035 0.669922 5.74023 1.15039 8.60059c0.979492 5.69922 2.13965 11.3691 3.70996 16.9297c3.08984 11.6504 7.47949 22.9502 12.6895 33.8398z
-M428.78 286.11c1.09961 -1.66016 1.91016 -3.48047 2.7793 -5.26074c2.10059 -4.44922 4.24023 -8.89941 6.02051 -13.4893c7.61035 -18.7607 12.2998 -38.79 13.04 -59.0508c0.0195312 -1.75977 0.0703125 -3.51953 0.110352 -5.29004
-c0.129883 -9.56934 -1.27051 -19.0898 -3.18066 -28.4492c-0.729492 -3.58984 -1.54004 -7.16992 -2.58008 -10.6904c-4.04004 -14.7197 -10 -29 -18.4102 -41.7803c-8.20996 -12.5693 -19.0098 -23.5498 -31.8398 -31.4092
-c-5.72949 -3.59082 -11.79 -6.64062 -18.0498 -9.19043c-5.78027 -2.19043 -11.71 -4.03027 -17.7998 -5.11035c-6.40039 -1.0498 -12.9102 -1.51953 -19.4004 -1.22949c-7.91992 0.479492 -15.7793 2.07031 -23.21 4.84961
-c-1.93945 0.799805 -3.93945 1.45996 -5.83984 2.33008c-0.209961 1.50977 0.25 2.99023 0.530273 4.45996c1.16016 5.74023 3.03027 11.3604 5.7002 16.5801c2.36914 4.50977 5.51953 8.65039 9.45996 11.9004c2.42969 2.0498 5.23926 3.60938 8.15918 4.83008
-c3.58008 1.5 7.4707 1.96973 11.2402 2.83008c7.23047 1.70996 14.3701 3.92969 21.1504 7c10.3496 4.64941 19.71 11.3799 27.6494 19.46c1.59082 1.60938 3.23047 3.17969 4.74023 4.86914c3.37012 3.76074 6.70996 7.57031 9.85059 11.5303
-c7.47949 10.0703 12.8193 21.5898 16.71 33.4805c1.58008 5.2998 3.20996 10.5996 4.20996 16.0498c0.629883 2.87012 1.04004 5.78027 1.51953 8.67969c0.870117 6.08984 1.58984 12.2207 1.67969 18.3799c0.120117 6.65039 0.140625 13.3203 -0.529297 19.9404
-c-0.730469 7.99023 -1.87012 15.96 -3.70996 23.7803z" />
-    <glyph glyph-name="phoenix-squadron" unicode="&#xf511;" horiz-adv-x="512" 
-d="M96 384.62c46.4902 36.1299 105.55 56.0703 164.51 54.5703c29.5801 0.379883 59.1104 -5.37012 86.9102 -15.3301c-24.1299 4.62988 -49 6.33984 -73.3799 2.44922c-42.8701 -5.30957 -83.04 -27.1494 -111.83 -59.1797c5.66992 1 10.7803 3.66992 16 5.86035
-c18.1396 7.87012 37.4902 13.2598 57.2305 14.8301c19.7393 2.12988 39.6396 0.429688 59.2793 -1.91992c-14.4199 -2.79004 -29.1201 -4.57031 -43 -9.59082c-34.4297 -11.0693 -65.2695 -33.1592 -86.2998 -62.6299c-13.7998 -19.71 -23.6299 -42.8594 -24.6699 -67.1299
-c-0.349609 -16.4902 5.21973 -34.8096 19.8301 -44c8.0293 -4.85254 17.4395 -7.64648 27.498 -7.64648c3.4209 0 6.7793 0.289062 10.0215 0.90625c15.4502 2.45996 30.0703 8.64062 43.6006 16.3301c11.5195 6.82031 22.6699 14.5508 32 24.25
-c3.79004 3.2207 2.53027 8.4502 2.62012 12.79c-2.12012 0.339844 -4.37988 1.11035 -6.30078 -0.299805c-11.2676 -6.17773 -23.3838 -11.3975 -35.8193 -15.3701c-20 -6.16992 -42.1602 -8.45996 -62.1006 -0.779297c12.79 -1.73047 26.0605 -0.310547 37.7402 5.43945
-c20.2305 9.71973 36.8105 25.2002 54.4404 38.7705c27.625 21.2686 57.3311 39.7881 88.8994 55.3096c25.71 12 52.9404 22.7803 81.5703 24.1201c-15.6299 -13.7197 -32.1504 -26.5205 -46.7803 -41.3799c-14.5098 -14 -27.46 -29.5 -40.1094 -45.1807
-c-3.52051 -4.59961 -8.9502 -6.93945 -13.5801 -10.1592c-22.333 -15.0176 -40.1992 -35.627 -51.8906 -60.1006c-9.33008 -19.6797 -14.5 -41.8496 -11.7695 -63.6494c1.93945 -13.6904 8.70996 -27.5908 20.8994 -34.9102c12.9004 -8 29.0508 -8.07031 43.4805 -5.10059
-c32.7998 7.4502 61.4297 28.8906 81 55.8408c20.4404 27.5195 30.5195 62.1992 29.1602 96.3496c-0.520508 7.5 -1.57031 15 -1.66016 22.4902c8 -19.4805 14.8203 -39.71 16.6504 -60.8301c2 -14.2803 0.75 -28.7598 -1.62012 -42.9004
-c-1.91016 -11 -5.66992 -21.5098 -7.78027 -32.4297c19.9287 22.3428 33.9023 50.3545 39.3398 81.0703c1.48438 9.39258 2.25488 19.0225 2.25488 28.8301c0 27.0342 -5.95508 52.6875 -16.4648 75.8096c20.7803 -32 32.3398 -69.5801 35.71 -107.48
-c0.490234 -12.7295 0.490234 -25.5098 0 -38.2295c-2.89453 -35.0469 -13.3936 -68.4854 -29.5898 -97.75c-26.1201 -47.3398 -68 -85.6299 -117.19 -108c-78.29 -36.2305 -174.68 -31.3203 -248 14.6797c-39.0088 23.8643 -70.5215 57.7861 -91.4492 98.6602
-c-14.2646 28.0879 -23.2725 59.8086 -25.3604 92.9199v31.3398c3.92969 69.7402 40.8701 135.92 96 178.36zM318 304.29c5.50781 0.932617 10.9404 2.46973 16 4.47949c5 1.77051 9.24023 5.94043 10.3203 11.2207c-8.95996 -4.99023 -17.9805 -9.91992 -26.3203 -15.7002z
-" />
-    <glyph glyph-name="sith" unicode="&#xf512;" 
-d="M0 416l118.75 -69.71l-11.5195 58.9004l91.0596 -69.8701c8.5 1.50977 17.0996 2.29004 25.71 2.29004s17.21 -0.770508 25.71 -2.29004l91.0596 69.8701l-11.5195 -58.9004l118.75 69.71l-69.71 -118.75l58.8604 11.5195l-69.8408 -91.0293
-c3.04004 -17.0098 3.03027 -34.4404 0 -51.4502l69.8408 -91.0303l-58.8604 11.5205l69.71 -118.78l-118.75 69.71l11.5195 -58.8604l-91.0293 69.8408c-17.0098 -3.04004 -34.46 -3.04004 -51.4805 0l-91.0293 -69.8408l11.5195 58.8604l-118.75 -69.71l69.71 118.78
-l-58.8604 -11.5205l69.8408 91.0303c-1.49512 8.39453 -2.27539 16.7734 -2.27539 25.5947s0.780273 17.4609 2.27539 25.8555l-69.8408 91.0293l58.8604 -11.5195zM224 316.22c-31.7998 0 -63.6104 -12.0898 -87.8496 -36.3398c-48.4902 -48.4902 -48.5 -127.2 0 -175.7
-c48.5 -48.4893 127.21 -48.5195 175.699 -0.0292969c48.4902 48.4893 48.5 127.199 0 175.699c-24.25 24.25 -56.0498 36.3701 -87.8496 36.3701zM224 279.56c22.4199 0 44.8301 -8.51953 61.9199 -25.6094c34.1904 -34.1904 34.1797 -89.6904 0 -123.87
-c-34.1895 -34.1797 -89.6504 -34.1904 -123.84 0c-34.1904 34.1895 -34.1797 89.6895 0 123.87c17.0898 17.0898 39.5 25.6094 61.9199 25.6094z" />
-    <glyph glyph-name="trade-federation" unicode="&#xf513;" horiz-adv-x="496" 
-d="M248 439.2c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -43.5996c129.7 0 234.8 105.1 234.8 234.8s-105.1 234.8 -234.8 234.8s-234.8 -105.1 -234.8 -234.8s105.1 -234.8 234.8 -234.8zM403.1 284.9v-0.100586h-145.699
-v-34.7998h83.2998v-47h-83.2998v-195.8h-48.8008v196.8h-117.699l-36.7002 46h155.1v81.7002h193.8v-46.7998zM329.8 239.8h-82.8994v56.2002h145v24.4004h-171.801v-80.6006h-143.899l20.0996 -23.8994h123.8v-197.4h26.8008v197.4h82.8994v23.8994zM168.5 308.8l22 9.2998
-l-15.7998 -18.0996l15.7002 -18.0996l-22.2002 9.5l-12.2998 -20.5l2.09961 24l-23.2998 5.39941l23.5 5.40039l-2.10059 23.7998zM138.9 328.5l9.5 -10.2002l-13.8008 5.2998l-6.7998 -12.1992l0.799805 14.6992l-13.6992 2.7002l14.2998 3.7998l-1.7002 13.9004
-l8 -12.4004l12.7002 5.90039zM304.3 183.3l-9.2998 -10.7998l9.40039 -10.7002l-13.1006 5.5l-7.2998 -12.2002l1.2002 14.2002l-13.9004 3.2002l13.9004 3.2002l-1.2998 14.2002l7.2998 -12.2002zM411.2 260.5l-15 -17.5996l15.0996 -17l-21.2002 8.7998l-11.5 -19.6006
-l1.80078 22.9004l-22.2002 4.90039l22.2998 5.39941l-2.2002 22.7002l12 -19.5996zM248 418.1c125.3 0 226.9 -101.6 226.9 -226.899s-101.601 -226.9 -226.9 -226.9s-226.9 101.601 -226.9 226.9s101.601 226.899 226.9 226.899zM342.6 252h-83.1992v30.9004h145.699
-v50.6992h-197.8v-81.5996h-157.399l40 -49.9004h116.699v-196.8h52.7002v195.7h83.2998v51zM248 404.8c-94.5996 0 -174.9 -61.5996 -202.9 -146.8h157.4v81.5996h199.1c-38.7998 40.2002 -93.2998 65.2002 -153.6 65.2002zM248 -22.2998c117.9 0 213.5 95.5996 213.4 213.5
-c0 51.8994 -18.5 99.5 -49.3008 136.5v-50.7998h-145.6v-19.2002h83.2002v-62.7002h-83.2998v-195.8h-64.6006v196.8h-114.7l-43.7998 56.2998c-5.7998 -19.2998 -8.89941 -39.8994 -8.89941 -61.0996c0 -117.9 95.6992 -213.5 213.6 -213.5zM178.8 173l22.7002 9.2998
-l-16.9004 -17.0996l15.8008 -18.7998l-21.5 10.7998l-13 -20.9004l3.69922 23.7998l-23.7998 5.90039l23.7002 3.90039l-1.7002 24.5z" />
-    <glyph glyph-name="wolf-pack-battalion" unicode="&#xf514;" horiz-adv-x="512" 
-d="M267.73 -23.5303l-11.4404 -21.1396l-11.4404 21.1104l-10.5596 -15.8408l-5.28027 12.3203l-5.2793 -7v-29.8301c-21.0605 7.91992 -21.1104 66.8604 -25.5107 97.21c-4.62012 31.8799 0.879883 92.8105 -81.3701 149.11c8.88086 23.5996 12 49.4297 2.64062 80.0498
-c-27.8701 -3.33008 -53.9404 -10.5801 -63.3398 -54.0996l30.3496 -8.36035c-11.2002 -23.04 -17.0195 -46.7598 -13.2002 -72.1396l27.2705 7l6.16016 -33.4307l18.4697 7l8.7998 -33.4297l19.3496 7l-26.4297 -21.0596l-8.7998 28.1494l-24.6299 -5.28027l-7 35.6309
-l-26.3906 -14.5205c-0.25 20.0205 -6.95996 58.0605 8.80078 84.4502l-26.3906 -5.28027c-3.99023 22.0703 2.37988 39.21 7.91992 56.7402l-22.4297 -9.67969c0.44043 25.0693 29.9404 56.79 61.5898 58.5098c20.2197 1.08984 56.7305 25.1602 54.1006 51.8994
-c-1.95996 19.8701 -17.4502 42.6201 -43.1104 49.7002c43.9795 -36.5098 9.71973 -67.2998 -5.28027 -73.46c-4.39941 11.4404 -17.54 69.0801 0 130.2c40.4697 -22.8701 89.7002 -65.0996 93.21 -147.86l58.0605 -38.71l3.51953 -93.25l-107.33 59.8203l-7 -7
-l17.5801 -3.50977l44 -38.71l15.8398 5.2793l28.1504 -49.2598l3.51953 -119.64l-21.1094 -15.8398l32.5498 -15.8398l32.5498 15.8398l-21.1094 15.8398l3.51953 119.64l28.0996 49.25l15.8408 -5.28027l44 38.7109l17.5898 3.51953l-7 7l-107.3 -59.7695l3.51953 93.25
-l58 38.71c3.5498 82.6895 52.8096 124.92 93.2002 147.79c17.54 -61.1201 4.39941 -118.761 0 -130.2c-14.96 6.16016 -49.2803 36.9502 -5.28027 73.46c-25.6602 -7.08008 -41.1104 -29.8301 -43.1104 -49.7002c-2.63965 -26.7305 33.8809 -50.8096 54.1006 -51.9004
-c31.6396 -1.70996 61.1396 -33.4297 61.5801 -58.5l-22.4307 9.68066c5.54004 -17.5303 11.9209 -34.6699 7.9209 -56.7402l-26.3906 5.28027c15.7998 -26.3906 9.0498 -64.4502 8.7998 -84.4502l-26.3896 14.5195l-7 -35.6299l-24.5898 5.24023l-8.7998 -28.1504
-l-26.3906 21.1104l19.3506 -7l8.7998 33.3896l18.4697 -7l6.16016 33.4307l27.2803 -7.05078c3.7998 25.3809 -2.0498 49.1406 -13.2002 72.1406l30.3496 8.35938c-9.42969 43.5205 -35.4297 50.7305 -63.3398 54.1006
-c-9.35938 -30.6201 -6.24023 -56.4404 2.64062 -80.0498c-82.25 -56.3008 -76.75 -117.221 -81.3701 -149.11c-4.40039 -30.3496 -4.4502 -89.29 -25.5107 -97.21v29.9502l-5.2793 7l-5.28027 -12.3203zM346.9 71.4697l-15.8408 10.5303
-c7.4707 4.36035 13.7607 8.41992 19.3506 12.3203c-0.600586 -7.2207 -0.270508 -13.8398 -3.50977 -22.8398v-0.0107422zM375.05 120.73c-0.399414 -10.9404 -0.899414 -21.6602 -1.75977 -31.6709c-7.84961 1.86035 -15.5703 3.80078 -21.1104 7
-c8.24023 7.94043 15.5508 16.3203 22.8701 24.6807v-0.00976562zM399.68 115.45l-23.75 6.16016c6.78906 8.64844 12.9297 17.708 18.4707 27.2695c3.22949 -9.21973 5.2793 -20 5.2793 -33.4297zM403.2 196.39c19.4395 -12.8096 27.7998 -33.6592 29.9102 -56.2998
-c-12.3203 4.53027 -24.6299 9.31055 -36.9502 10.5605c5.05957 12 6.64941 28.1396 7 45.7393h0.0400391zM401.44 242.13c18.5596 -2.62988 35.1494 -9.18945 45.7598 -28.1494c-14.2197 -4.36035 -24.7803 -5.9707 -44 -14.0801
-c0.0800781 13.4092 -0.950195 27.9297 -1.75977 42.2295zM165.68 71.4805c-3.23926 9 -2.91016 15.5791 -3.50977 22.8398c5.58984 -3.90039 11.8799 -7.95996 19.3496 -12.3203zM137.53 120.74c7.31934 -8.36035 14.6299 -16.7402 22.8701 -24.6699
-c-5.54004 -3.2002 -13.2607 -5.14062 -21.1104 -7c-0.860352 10.0098 -1.36035 20.7295 -1.75977 31.6699zM112.89 115.46c0 13.4297 2 24.21 5.28027 33.4297c5.54102 -9.56152 11.6816 -18.6211 18.4697 -27.2695zM109.37 196.4h0.0898438
-c0.349609 -17.6006 2 -33.7402 7 -45.7402c-12.3701 -1.25 -24.6797 -6.03027 -37 -10.5605c2.11035 22.6406 10.4697 43.4902 29.9102 56.3008zM111.13 242.14c-0.80957 -14.2998 -1.83984 -28.8193 -1.75977 -42.2295c-19.2197 8.10938 -29.7803 9.71973 -44 14.0801
-c10.6299 18.9502 27.2295 25.5195 45.7598 28.1494z" />
-    <glyph glyph-name="hornbill" unicode="&#xf592;" horiz-adv-x="512" 
-d="M76.3799 77.7002c0.219727 -1.64648 0.333008 -3.32617 0.333008 -5.03125c0 -20.8623 -16.9375 -37.7998 -37.8008 -37.7998c-20.8623 0 -37.7998 16.9375 -37.7998 37.7998s16.9375 37.7998 37.7998 37.7998c1.84668 0 3.62207 -0.0927734 5.39746 -0.348633
-c-78.2793 111.35 52 190.53 52 190.53c-5.85938 -43 -8.23926 -91.1602 -8.23926 -91.1602c-67.3105 -41.4902 0.929688 -64.0605 39.8096 -72.8701c19.7207 -53.6396 71.2256 -91.8984 131.66 -91.9404c1.91992 0 3.76953 0.209961 5.66992 0.280273l0.110352 -18.8604
-c-99.2207 -1.38965 -158.7 29.1406 -188.94 51.6006zM184.38 405.4c109.75 73.9395 187.601 -54.0605 187.601 -54.0605c-43.04 5.86035 -91.1807 8.24023 -91.1807 8.24023c-43.0996 70.0098 -65.7998 -6.58008 -73.7998 -44.29
-c-51.5254 -20.7842 -87.8506 -71.208 -87.8896 -130.13c0 -0.910156 0.139648 -1.78027 0.139648 -2.67969l-21.8398 -0.150391c-1.41016 100.43 29.8701 160.09 52.4199 190c-1.02051 -0.0820312 -2.03711 -0.0888672 -3.07812 -0.0888672
-c-20.9453 0 -37.9492 17.0049 -37.9492 37.9502s17.0039 37.9502 37.9492 37.9502c15.0898 0 28.1338 -8.8252 34.248 -21.5918c2.35742 -4.91211 3.70117 -10.4102 3.70117 -16.2188c0 -1.67188 -0.109375 -3.31738 -0.321289 -4.93066zM488.57 271.23
-c-4.87012 -2.31934 -10.2754 -3.63965 -16.0244 -3.63965c-1.09375 0 -2.17578 0.046875 -3.24609 0.139648c84.4502 -113.45 -49 -194.61 -49 -194.61c5.87012 43.0303 8.20996 91.1602 8.20996 91.1602c66.6006 40.96 0.640625 63.54 -38.46 72.54
-c-20.5566 51.9932 -71.2275 88.7393 -130.49 88.7598c-2.75 0 -5.43945 -0.259766 -8.13965 -0.410156l-0.139648 22.5c93.6094 1.33008 151.72 -25.7998 183.45 -47.7402c-0.270508 1.82617 -0.375 3.67676 -0.375 5.57715c0 20.9395 17 37.9395 37.9395 37.9395
-c20.9404 0 37.9404 -17 37.9404 -37.9395c0 -15.1162 -8.85938 -28.1797 -21.665 -34.2764zM374.06 11.7598v-0.0595703c0.112305 0.000976562 0.239258 -0.0332031 0.351562 -0.0332031c20.9336 0 37.9297 -16.9961 37.9297 -37.9297
-c0 -20.9346 -16.9961 -37.9307 -37.9297 -37.9307c-15.0908 0 -28.1348 8.83203 -34.2412 21.6035c-2.0498 4.26074 -3.33984 9.0332 -3.63965 14c-111.98 -80.3398 -191.9 51 -191.9 51c43.0703 -5.87988 91.1904 -8.21973 91.1904 -8.21973
-c41.3301 -67.1709 63.9199 0.540039 72.7695 39.4893c53.3574 19.8584 91.3574 71.2188 91.3906 131.45c0 2.08008 -0.220703 4.08984 -0.300781 6.15039l19.5205 0.139648c1.28027 -89.9697 -23.71 -147.2 -45.1406 -179.66z" />
-    <glyph glyph-name="mailchimp" unicode="&#xf59e;" 
-d="M330.61 204.48c-2.50977 3.17969 -4.70996 8.31934 -5.9707 14.3193c-2.22949 10.6807 -1.98926 18.4102 4.24023 19.4199c6.23047 1.01074 9.25 -5.45996 11.4805 -16.1299c1.5 -7.17969 1.20996 -13.7803 -0.450195 -17.6094
-c-1.53418 0.198242 -3.02441 0.300781 -4.61328 0.300781c-1.58789 0 -3.15234 -0.102539 -4.68652 -0.300781zM277.05 196c-4.45996 1.95996 -10.2598 4.13965 -17.2598 3.7002c-12.5996 -0.770508 -21.75 -7.21973 -22.5996 -3.48047
-c-0.400391 1.83984 2.40918 4.87988 5.40918 7.06055c5.20117 3.80859 11.6621 6.06055 18.5967 6.06055c4.25391 0 8.31152 -0.84668 12.0137 -2.38086c8.63965 -3.7002 14.0098 -11.1504 12.1201 -13.0898c-1.08008 -1.12988 -3.81055 0.129883 -8.28027 2.12988z
-M268.05 190.87c9.68066 1.14941 16.8604 -4.62988 15.4004 -6.85059c-0.629883 -1.00977 -2.02051 -0.829102 -4.94043 -0.489258c-1.85449 0.286133 -3.73438 0.420898 -5.66895 0.420898c-4.59277 0 -8.99121 -0.838867 -13.0508 -2.37109
-c-4.04004 -1.62012 -4.30957 -1.15039 -5.20996 -0.810547c-1.53027 3.57031 4.40039 8.68066 13.4697 10.1006zM322.22 173.77c-3.40039 -6.91016 -17.7002 0.0703125 -14.2998 7c3.40039 6.93066 17.6797 -0.129883 14.2998 -7zM337.88 194.24
-c7.69922 -0.149414 7.42969 -16.0605 -0.259766 -15.9307c-7.69043 0.130859 -7.40039 16.0605 0.259766 15.9307zM119.09 115.34c4.0293 0.910156 3.40039 -1.25 3.37012 -0.359375c0.291016 -0.358398 0.464844 -0.818359 0.464844 -1.31445
-c0 -0.369141 -0.0966797 -0.71582 -0.264648 -1.01562c-3.16016 -7.37012 -20.1904 -7.68066 -21.5801 9c-0.910156 10.8594 9.30957 21.0293 -2.28027 28.6191c-2.02734 1.34277 -4.46289 2.14648 -7.0752 2.14648c-4.51465 0 -8.4873 -2.33691 -10.7744 -5.86621
-c-3.2998 -5.16016 -3.11035 -12.2002 -7.37988 -11.6299c-3.7207 0.540039 -3.70996 14.4805 5 24.0801c7.22949 8 25.9492 11.9297 35.0498 -5.54004c8.11035 -15.3896 -8.2002 -27.7695 -3 -35.7695c2.46973 -3.80078 7.14941 -2.66016 8.46973 -2.35059zM418.81 132.41
-c6.44043 0 16.5605 -7.5 16.5605 -25.2705c0 -17.7695 -7.37012 -37.9092 -9.11035 -42.3799c-54.3896 -130.279 -264.56 -130.06 -322.29 3c-31.5293 -0.0400391 -64.1699 26.9805 -67.5293 60.3799c-0.308594 2.71191 -0.438477 5.42383 -0.438477 8.2168
-c0 8.89062 1.60352 17.4102 4.53809 25.2832l-14.7598 12.5107c-67.5498 57.04 143.72 291.85 211.27 232.93c0.339844 -0.299805 22.9902 -22.5205 23.0498 -22.5703l12.5508 5.33008c59.2695 24.5303 107.359 12.6904 107.42 -26.4697
-c0.0292969 -20.3604 -12.9404 -44.1006 -33.7305 -65.6504c26.1699 -24.2998 20.0205 -71.6094 21.5205 -83c7.19922 -2 30.6992 -7.62012 41.0996 -18.54c18.3604 -19.25 5.52051 -39.5801 3.07031 -43.25c4.20996 -11.2998 3.42969 -8.79004 6.7793 -20.5195z
-M102.81 84.25c29.4502 -0.680664 38.6309 28.2002 34.0908 57.8398c-9.74023 62.9404 -90.1699 48.9805 -84 -12.3301c2.44922 -24.3594 27.0898 -44.8994 49.9092 -45.5098zM84.2998 198.45c19.3105 51.8096 51.54 99.5498 94.2002 132.399
-c31.6504 26.4102 65.7998 45.3506 65.7998 45.3506s-18.3896 21.3193 -23.9395 22.8896c-34.1699 9.23047 -107.94 -41.6494 -155.051 -108.88c-19.0596 -27.21 -46.3096 -75.3604 -33.2998 -100.21c1.58984 -3 10.71 -10.9297 15.5898 -15
-c8.18066 11.9102 21.54 20.5 36.7002 23.4502zM323.18 97.2998c2.58984 0.259766 0.560547 -2.53027 0.560547 -2.53027s-27.4004 -12.75 -71 0.740234c1.20996 -10.2295 11.1699 -14.8193 15.9395 -16.6699c31.4004 -12.21 86.6904 -2.58008 128.46 26
-c0.850586 0.589844 1.41992 0 0.730469 -1c-28.9697 -41.3496 -128.73 -54.7598 -151.37 -21.3496c-12.0801 17.8301 -0.599609 43.8594 19.5498 41.1494c6.7998 -0.769531 53.7705 -8 100.48 13.6807c27.4893 12.7598 37.8701 26.79 36.3096 38.1602
-c-0.537109 3.60742 -2.25 6.85156 -4.74023 9.28906c-5 4.83008 -12.79 8.60059 -26 12.3105c-4.35938 1.22949 -7.31934 2.00977 -10.5098 3.05957c-5.67969 1.83008 -8.47949 3.33008 -9.10938 14c-0.280273 4.62988 -1.09082 20.9102 -1.38086 27.6299
-c-0.519531 11.7607 -1.91992 27.8506 -11.9199 34.4902c-2.71094 1.73535 -5.94238 2.75098 -9.39746 2.75098c-1.44824 0 -2.85645 -0.177734 -4.20215 -0.510742c-5.69043 -0.969727 -9.06055 -4.00977 -13.2598 -7.50977
-c-12.4404 -10.3701 -22.9502 -12.0605 -34.6406 -11.5605c-6.98926 0.290039 -14.3994 1.37988 -22.8799 1.87988l-5 0.290039c-19.5801 1 -40.5693 -15.9092 -44.0693 -39.9092c-4.86035 -33.4307 19.3291 -50.7002 26.3291 -60.8301
-c1.04785 -1.25391 1.74121 -2.82812 1.9209 -4.54004c0 -1.94043 -1.25 -3.48047 -2.48047 -4.79004c-19.9805 -20.54 -26.3701 -53.1699 -18.8398 -80.3701c0.927734 -3.33594 2.13574 -6.6377 3.5498 -9.74023c17.7002 -41.2598 72.4902 -60.4795 126 -43
-c7.01562 2.29199 13.8936 5.20215 20.3398 8.58008c11.8203 5.84668 22.2969 13.7168 31.1504 23.3096c14.2002 14.8408 22.6396 30.9707 25.9297 50.8408c2.81055 18.6191 -7.78027 18.7598 -11.4395 18.0996c-1.37598 8.42188 -3.82812 16.6758 -7.12012 24.2803
-c-15.6299 -12.3506 -35.71 -20.9707 -51 -25.3506c-69.4004 -19.9102 -90.1904 6.35059 -96.4004 -13.8096c33.7705 -12.3701 69.5098 -7.07031 69.5098 -7.07031zM171.31 290.5l0.0605469 0.00976562c-0.107422 -0.130859 -0.170898 -0.297852 -0.170898 -0.480469
-c0 -0.419922 0.34082 -0.759766 0.759766 -0.759766c0.151367 0 0.292969 0.0439453 0.411133 0.120117c11.4199 8.30078 64.9502 42.7705 134.5 26.8301c0.860352 -0.189453 1.39941 1.29004 0.639648 1.7207c-11.3398 6.33984 -28.6895 10.6494 -41 10.7393
-c-0.405273 0.00976562 -0.732422 0.342773 -0.732422 0.750977c0 0.164062 0.0527344 0.31543 0.142578 0.439453c2.23535 2.92383 4.79492 5.49414 7.70996 7.74023c0.18457 0.140625 0.303711 0.362305 0.303711 0.611328
-c0 0.424805 -0.345703 0.770508 -0.770508 0.770508c-0.0175781 0 -0.0351562 -0.000976562 -0.0527344 -0.00195312c-17.5205 -1.08008 -37.5107 -9.4707 -49 -17.2998c-0.12207 -0.0859375 -0.271484 -0.136719 -0.431641 -0.136719
-c-0.414062 0 -0.75 0.335938 -0.75 0.75c0 0.0605469 0.0078125 0.120117 0.0214844 0.176758c0.899414 4.30957 3.72949 9.98926 5.18945 12.6494c0.0644531 0.108398 0.101562 0.236328 0.101562 0.371094c0 0.40332 -0.327148 0.730469 -0.730469 0.730469
-c-0.134766 0 -0.261719 -0.0371094 -0.371094 -0.101562c-18.4697 -9.4502 -39.0898 -26.2803 -55.8301 -45.6299z" />
-    <glyph glyph-name="megaport" unicode="&#xf5a3;" horiz-adv-x="496" 
-d="M214.5 238.4l33.4004 33.3994l33.3994 -33.3994v-66.4004l-33.2998 -33.2998l-33.5 33.5v66.2002zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM393.1 25.5996h0.100586v87.1006l-59.7002 59.7002v87.5996l-59.5 59.5
-v75.5996l-26.0996 19.2002l-26.1006 -19.2002v-75.5996l-59.5 -59.5v-87.9004l-59.5 -59.5v-87l26.1006 -19.1992l26.0996 19.1992v65.5l33.5 33.4004l33.4004 -33.4004v-65.5l26.0996 -19.1992l26.2002 19.1992v65.5l33.3994 33.4004l33.4004 -33.4004v-65.5l26 -19.1992z
-" />
-    <glyph glyph-name="nimblr" unicode="&#xf5a8;" horiz-adv-x="384" 
-d="M246.6 148.71c15.5703 0 27.1504 -11.46 27.1504 -27s-11.6201 -27 -27.1504 -27c-15.6992 0 -27.1494 11.5703 -27.1494 27s11.5498 27 27.1494 27zM113 121.75c0 15.6104 11.6797 27 27.1504 27c15.4697 0 27.1494 -11.46 27.1494 -27s-11.4697 -27 -27.1494 -27
-c-15.4404 0 -27.1504 11.3096 -27.1504 27zM191.76 289c98.3701 0 177.76 -78.9102 177.76 -176.48c0 -97.5693 -79.6094 -176.52 -177.76 -176.52c-98.1494 0 -177.76 78.8701 -177.76 176.52v335.48l45.25 -227c30.2002 48.2305 97.75 68 132.51 68zM191.76 -19.1201
-c73.2402 0 132.51 58.96 132.51 131.64c0 72.6807 -59.2393 131.54 -132.51 131.54c-73.2695 0 -132.51 -58.8994 -132.51 -131.59c0 -72.6895 59.2402 -131.59 132.51 -131.59z" />
-    <glyph glyph-name="rev" unicode="&#xf5b2;" 
-d="M289.67 173.11c0 -36.1895 -29.3809 -65.5703 -65.5703 -65.5703c-36.1885 0 -65.5693 29.3809 -65.5693 65.5703c0 36.1885 29.3906 65.5596 65.5801 65.5596c36.1631 -0.0439453 65.5156 -29.3965 65.5596 -65.5596zM429.22 178.16v-210.16h-210.16v0.110352
-c-110.939 2.70996 -200.06 93.4092 -200.06 205c0 108.569 84.2998 197.319 191 204.569v38.3203l108.77 -62.7803l-108.77 -62.79v39.1201c-80 -7.16016 -143 -74.5498 -143 -156.43c0 -86.6201 70.4902 -157.12 157.11 -157.12s157.09 70.5 157.09 157.12
-c-0.0263672 55.3057 -28.5371 103.871 -71.8105 131.84l45.3799 26.2002c44.3125 -36.582 72.8613 -91.4561 74.3203 -153h0.129883z" />
-    <glyph glyph-name="shopware" unicode="&#xf5b5;" horiz-adv-x="512" 
-d="M403.5 -7.41016c-40.9688 -30.4482 -91.7109 -48.4707 -146.63 -48.4707c-0.223633 0 -0.646484 -0.120117 -0.870117 -0.119141c-137.19 0 -248 111 -248 248c0 137.19 111 248 248 248h0.21582c63.5576 0 121.648 -24.0508 165.484 -63.5
-c0.716797 -0.65332 1.16699 -1.59375 1.16699 -2.63965c0 -1.9707 -1.59961 -3.57031 -3.57031 -3.57031c-0.155273 0 -0.306641 0.0107422 -0.457031 0.0302734c-18.2656 2.43848 -36.9023 3.69727 -55.8301 3.69727c-0.445312 0 -0.43457 -0.0166016 -0.879883 -0.0175781
-c-129.36 0 -222.399 -53.4697 -222.399 -155.35c0 -109 92.1299 -145.881 176.829 -178.73c33.6406 -13 65.4004 -25.3604 87 -41.5898c0.868164 -0.65332 1.42969 -1.69238 1.42969 -2.86133c0 -1.16992 -0.561523 -2.20508 -1.42969 -2.8584zM503 214.91
-c0.698242 -7.59375 0.950195 -15.1699 0.950195 -22.9443c0 -31.8691 -5.99902 -62.3467 -16.9307 -90.3662c-0.526367 -1.31445 -1.81543 -2.24023 -3.31738 -2.24023c-0.608398 0 -1.18066 0.152344 -1.68262 0.420898
-c-29.4893 16.3594 -61.6094 28.3398 -92.6797 39.9297c-60.2803 22.4902 -112.34 41.8896 -112.34 84.4902c0 1.45996 -3.87988 53.6299 80.25 53.6299c50.8604 0 92.7197 -17.4805 144.48 -60.4805c0.706055 -0.598633 1.17871 -1.46484 1.26953 -2.43945z" />
-    <glyph glyph-name="squarespace" unicode="&#xf5be;" horiz-adv-x="512" 
-d="M186.12 104.66l157.22 157.2c38.5703 38.5898 101.13 38.5898 139.72 0c38.5908 -38.5801 38.5908 -101.13 0 -139.721l-119.25 -119.239l-0.0400391 -0.0400391c-19.2891 -19.2705 -50.5498 -19.25 -69.8193 0.0400391l154.149 154.14
-c19.29 19.29 19.29 50.5703 0 69.8604s-50.5693 19.29 -69.8594 0l-157.181 -157.181c-9.64941 -9.64941 -25.29 -9.64941 -34.9395 0c-9.65039 9.65039 -9.65039 25.29 0 34.9404zM430.65 209.46c9.63965 -9.63965 9.63965 -25.2803 -0.0107422 -34.9297l-157.199 -157.2
-c-38.5801 -38.5703 -101.141 -38.5703 -139.721 0l-0.0195312 0.0195312c-9.64062 9.65039 -9.62988 25.29 0.0195312 34.9307l0.0107422 0.00976562c9.64941 9.63965 25.2793 9.62988 34.9199 -0.00976562l0.0498047 -0.0498047
-c19.29 -19.2607 50.5498 -19.2402 69.8193 0.0498047l157.2 157.18c9.64062 9.65039 25.2803 9.65039 34.9307 0zM168.66 122.13c-38.6006 -38.5801 -101.13 -38.5801 -139.73 0.00976562c-38.5801 38.5801 -38.5801 101.13 0 139.721l119.23 119.25l0.0195312 0.0195312
-c19.3008 19.2803 50.5703 19.2705 69.8506 -0.0195312l-154.17 -154.17l-0.0302734 -0.0302734c-19.2803 -19.2998 -19.2598 -50.5605 0.0302734 -69.8398l0.00976562 -0.0107422c19.29 -19.29 50.5703 -19.2793 69.8496 0.0107422l157.21 157.18
-c9.64062 9.63965 25.2705 9.63965 34.9102 0c9.64062 -9.65039 9.64062 -25.29 0 -34.9404zM81.3301 174.53c-9.64062 9.64941 -9.65039 25.29 0 34.9297l157.189 157.19c38.5908 38.5898 101.131 38.5898 139.721 0c9.64941 -9.64062 9.64941 -25.2803 0 -34.9307
-c-9.64062 -9.64941 -25.2803 -9.64941 -34.9307 0l-0.0195312 0.0205078c-19.29 19.2793 -50.5596 19.2695 -69.8398 -0.0205078l-157.21 -157.189c-9.64062 -9.64062 -25.2705 -9.64062 -34.9102 0z" />
-    <glyph glyph-name="themeco" unicode="&#xf5c6;" 
-d="M202.9 439.57c9.89941 5.72949 26 5.81934 35.9492 0.209961l191.15 -107.63c10 -5.60059 18 -19.4404 18 -30.8604v-217.29c0 -11.4404 -8.05957 -25.29 -18 -31l-191.19 -108.74c-9.92969 -5.66016 -26 -5.56934 -35.8496 0.209961l-185.1 108.41
-c-9.86035 5.78027 -17.8604 19.7402 -17.8604 31.1201v217.29c0 11.4404 8 25.3604 17.9102 31.0801zM125.5 239.74c-15.9404 0 -31.8896 -0.140625 -47.8301 -0.140625v-101.449h19.1299v29.8496h28.7002c49.71 0 49.5596 71.7402 0 71.7402zM265.64 139.45
-l-30.7295 34.6396c37 7.50977 34.7998 65.2305 -10.8701 65.5098c-16.0898 0 -32.1699 0.140625 -48.2598 0.140625v-101.59h19.1299v33.9092h18.4102l29.5596 -33.9092h22.7598v1.2998zM224.05 221.77c23.3398 0 23.2598 -32.46 0 -32.46h-29.1299v32.46h29.1299z
-M128.49 223.37c21.1797 0 21.1094 -38.8506 0 -38.8506h-32.3105v38.8408zM321.14 241.62c-68.46 0 -71 -105.8 0 -105.8c69.4805 0.00976562 69.4102 105.8 0 105.8zM321.14 224.23c44.1201 0 44.8008 -70.8604 0 -70.8604c-44.7998 0 -44.4297 70.8604 0 70.8604z" />
-    <glyph glyph-name="weebly" unicode="&#xf5cc;" horiz-adv-x="512" 
-d="M425.09 382.17c50.9102 0 87.5498 -35.1504 86.9199 -83.4697c0 -21.6201 -0.950195 -18.5498 -77.5 -227.2c-22.3799 -60.5703 -67.7695 -69.6699 -92.7402 -69.6699c-39.2393 0 -70.0391 19.46 -85.9297 54.29c-15.8896 -34.5205 -46.7002 -53.9805 -85.9297 -53.9805
-c-24.9697 0 -70.3701 8.78027 -92.7402 69.3506c-72.9902 200.21 -77.1699 204.52 -77.1699 233.479c0 43.3105 38.5898 77.2002 87.54 77.2002c40.21 0 73.2803 -25.7295 83.6602 -64.3301c18.4795 58.0498 65.5 64.3301 85.2803 64.3301
-c19.4492 0 66.7891 -6.26953 84.9492 -64.3301c10.3799 38.6006 43.7803 64.3301 83.6602 64.3301zM451.43 267.36c3.49023 11.1992 7.29004 19.3701 7.61035 27.2393c0 22.3906 -16.1602 35.71 -38.3301 35.71c-18.6904 0 -31.9902 -11.7998 -36.1104 -29.0498
-l-44.0293 -139.819h-0.950195l-44.6602 136.79c-6.01953 19.9697 -16.4697 32.0791 -38.96 32.0791s-32.9404 -12.4092 -38.96 -32.0791l-44.6602 -136.79h-0.950195l-44.0293 139.819c-4.12012 17.25 -17.4199 29.0498 -36.1104 29.0498
-c-22.4902 0 -38.3301 -13.0195 -38.3301 -29.3594c0 -10.5898 2.54004 -19.6699 7.91992 -34.5l64.9404 -175.23c7.91016 -21.4795 21.2197 -37.2197 46.2393 -37.2197c23.1201 0 37.0605 12.0996 44.0205 33.5996l39.2803 117.42h0.949219l39.2803 -117.42
-c6.65039 -21.4893 20.5898 -33.8994 44.0303 -33.8994c25.0195 0 38.3203 15.7295 46.2402 37.2197z" />
-    <glyph glyph-name="wix" unicode="&#xf5cf;" horiz-adv-x="640" 
-d="M393.38 316.31c0 -13.0293 2.08008 -32.6895 -28.6797 -43.8291c-9.52051 -3.4502 -15.9502 -9.66016 -15.9502 -9.66016c0 31 4.71973 42.2197 17.4004 48.8594c9.75 5.11035 27.2295 4.62988 27.2295 4.62988zM277.58 280.77
-c5.47949 26.3408 30.8799 38.3408 55.2998 35.2705l-65.5703 -247.93s-21.6396 -1.56055 -32.46 3.95996c-14.2197 7.25 -20.9893 12.8398 -29.5898 46.5693c-7.66992 30.0703 -29.1494 118.4 -31.1201 124.7c-4.30957 13.8105 -10.6396 14.9404 -15.3994 0
-c-2.00977 -6.29004 -23.4502 -94.6299 -31.1201 -124.7c-8.61035 -33.7295 -15.3701 -39.3193 -29.5898 -46.5693c-10.8301 -5.52051 -32.46 -3.95996 -32.46 -3.95996l-65.5703 247.93c23.8604 3 49.7305 -8.5498 55.2803 -35.2705l34.2393 -132.659l28.4805 108.569
-c7.76953 32.3506 21.0596 48.5303 48.4297 48.5303c27.6201 0 40.7402 -16.54 48.4307 -48.5303l28.4795 -108.569zM393.36 275.56v-8.97949l0.0195312 0.00976562v-150.27c-0.129883 -30.8301 -3.33008 -37.6807 -17.2598 -44.7803
-c-10.8203 -5.52051 -27.3701 -3.42969 -27.3701 -3.42969v152.069c0 21.25 -1.95996 27.9404 13.1797 35.2002c6.19043 2.96973 11.96 5.25 17.9707 8.61035c9.35938 5.22949 13.46 11.5693 13.46 11.5693zM556.8 191.48l82.9902 -123.36s-35.9297 -4.62012 -53.3203 11.21
-c-13.9102 12.6602 -23.7393 28.3398 -53.1396 70.7197c-0.5 0.770508 -6.25977 10.5205 -13.0703 0c-34.9297 -50.3496 -41.0195 -60.2598 -52.5098 -70.7197c-17.3799 -15.8301 -53.9502 -11.21 -53.9502 -11.21l82.9697 123.36l-83.1992 123.739
-s35.1094 5.98047 52.5 -9.84961c13.3799 -12.1797 24.8896 -30.2402 54.1797 -72.4697c6.82031 -10.54 12.5996 -0.730469 13.0703 0c29.7695 42.9199 40.8799 60.3691 54.1797 72.4697c17.3896 15.8301 52.5 9.84961 52.5 9.84961z" />
-    <glyph glyph-name="ello" unicode="&#xf5f1;" horiz-adv-x="496" 
-d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM391.84 154.8c2.48047 7.44043 -2.47949 15.71 -9.91992 17.3604c-7.43945 2.47949 -15.71 -2.48047 -17.3604 -9.91992
-c-14.0498 -52.9102 -62 -90.1104 -116.56 -90.1104s-102.51 37.2002 -116.56 90.1104c-1.65039 7.43945 -9.9209 11.5693 -17.3604 9.91992c-7.44043 -1.65039 -11.5703 -9.91992 -9.91992 -17.3604c16.5303 -65.3096 76.0498 -111.6 143.84 -111.6
-s127.31 46.29 143.84 111.6z" />
-    <glyph glyph-name="hackerrank" unicode="&#xf5f7;" horiz-adv-x="512" 
-d="M477.5 320c14.5 -25 14.4805 -230.92 -0.00976562 -256s-192.391 -128 -221.33 -128c-28.9404 0 -206.83 102.8 -221.32 128s-14.4102 230.79 0 256s192.351 128 221.32 128s206.84 -103.05 221.34 -128zM316.13 33.7803c3.95996 0 40.4404 35.7793 37.5605 38.6895
-c-0.870117 0.839844 -8.82031 1.49023 -17.6904 1.83984c0 32.4004 -3 19.0508 0.679688 210.341c0.0703125 3.65918 -1.04004 5.37988 -4.5 5.37988c-11.0801 0.0693359 -22.1602 0.0195312 -33.2295 -0.0605469c-3.25977 -0.0292969 -4.31055 -1.80957 -4.20996 -5.2002
-c1.58984 -48.8994 1.2002 -79.0898 1.2002 -83.6396h-80.2607c0.629883 25.7998 0.209961 79.6396 2.62988 105.39v3.16016c8.87012 0.350586 15.9004 0.970703 16.7705 1.83984c2.90039 2.91016 -34.3203 38.6904 -38.2705 38.6904
-c-3.94922 0 -41.4092 -35.7695 -38.4893 -38.6904c0.879883 -0.839844 7.58984 -1.48926 17.2598 -1.83984v-3.16992c3.15039 -128.67 1.07031 -179.229 0.150391 -212.67c-0.130859 -4.58008 1.63965 -6.10938 5.73926 -6.10938
-c10.1406 0.0292969 20.2803 -0.0800781 30.4102 -0.0800781c4.16016 -0.0605469 5.96973 1.39941 5.74023 5.93945c-1.83008 36.6797 -1.37012 65.7803 -1.37012 72.8799h79.9297c0 -2.41992 0.44043 -3.84961 0.44043 -5.84961
-c-0.350586 -17.7305 -0.94043 -60.0898 -0.94043 -86.3203c-11.29 -0.349609 -16.6797 -0.959961 -17.5498 -1.83008c-2.91016 -2.91992 34 -38.6895 38 -38.6895z" />
-    <glyph glyph-name="kaggle" unicode="&#xf5fa;" horiz-adv-x="320" 
-d="M304.2 -53.5l1.39941 -7.59961c-0.5 -2 -2.5 -3 -6 -3h-66.8994c-4 0 -7.5 1.7998 -10.5 5.2998l-110.5 140.6l-30.7998 -29.2998v-109c0 -5 -2.5 -7.5 -7.5 -7.5h-51.9004c-5 0 -7.5 2.5 -7.5 7.5v497c0 5 2.5 7.5 7.5 7.5h51.9004c5 0 7.5 -2.5 7.5 -7.5v-306
-l132.3 133.7c3.5 3.5 7 5.2998 10.5 5.2998h69.2002c7 0 7.89941 -7.7998 5.2998 -10.5l-139.8 -135.3z" />
-    <glyph glyph-name="markdown" unicode="&#xf60f;" horiz-adv-x="640" 
-d="M593.8 388.9c25.5 0 46.2002 -20.7002 46.2002 -46.1006v-301.6c0.0996094 -25.4004 -20.5996 -46.1006 -46.0996 -46.1006h-547.7c-25.5 0 -46.2002 20.7002 -46.2002 46.2002v301.5c0 25.4004 20.7002 46.1006 46.2002 46.1006h547.6zM338.5 87.4004h-0.200195v209.199
-h-61.5l-61.5 -76.8994l-61.5 76.8994h-61.5v-209.199h61.7002v120l61.5 -76.9004l61.5 76.9004v-120h61.5zM473.8 84.2998l92.2002 107.7h-61.5v104.6h-61.5v-104.6h-61.5z" />
-    <glyph glyph-name="neos" unicode="&#xf612;" horiz-adv-x="512" 
-d="M415.44 -64h-95.1104l-108.21 154.54v-91.0996l-86.4297 -63.4404h-97.6904v482.18l40.4697 29.8203h108.05l123.74 -176.13v112.68l86.4307 63.4502h97.6895v-461.5zM38.7695 412.73v-460.73l72 52.8799v249.12l215.5 -307.64h84.79l52.3506 38.1699h-78.2705
-l-316.14 450.47zM121.31 -53.8799l80 58.7803v101l-79.7598 114.399v-220.939l-72.5498 -53.25h72.3398zM80.6299 437.23l310.601 -442.57h82.3691v442.57h-79.75v-317.561l-222.939 317.561h-90.2803zM311 256.35l72 -102.81v278.53l-72 -53v-122.721z" />
-    <glyph glyph-name="zhihu" unicode="&#xf63f;" horiz-adv-x="640" 
-d="M170.54 299.87h122.68v-217.55h-49.5293l-42.0107 -26.3701l-7.70996 26.3701l-23.4297 0.00976562v217.54zM268.29 105.94v170.31h-72.8203v-170.31l11.9004 -0.0400391l5.08008 -17.4707l27.8994 17.5107h27.9404zM149.83 200.33
-c7.5 0 7.58984 -23.6104 7.58984 -23.6104h-61.6504c-0.879883 -13.1201 -3.50977 -26.6895 -7.86914 -40.6699l14.6191 11.6201c8.73047 -8.75 29.2109 -32.8896 36.79 -41.8096c9.15039 -13.1006 1.24023 -39.9902 1.24023 -39.9902l-53.96 64.9395
-c-12.6094 -48.3496 -35.5898 -69.25 -35.5898 -69.25c-10.0898 -8.96973 -30.5098 -15.75 -51 -9.89941c42.8301 33.2197 66.4502 75.2402 70.8496 125.1h-65.5801s3.82031 23.6201 15.5605 23.6201h52.2695c0.480469 6.56055 1.68066 62.9404 1.68066 73.4404h-28.8701
-c-2.62988 -7.87012 -3.03027 -8.64062 -5.14062 -14.5303c-11.4697 -21.0303 -30.9492 -21.5703 -36.8398 -22.21c17.4902 34.9795 27.3105 69.2197 30.7002 78.1201c8.2002 21.5693 32.2705 21.5693 32.2705 21.5693c-5.25 -14.0098 -9.63086 -27.5498 -13.1201 -40.6699
-h88.5c10.5498 0.25 8.58008 -22.3096 8.58008 -22.3096h-51.1602c0 -21.8701 -0.459961 -46.3604 -2.2002 -73.46h52.3301zM561.85 201.93l-19.2295 14.4307s30.8301 40.0498 36.8301 48.1992c8.72949 10.7402 27.3799 -4.05957 27.3799 -4.05957
-s-24.1504 -32.9297 -44.9805 -58.5703zM411.76 261.02l0.00976562 0.0107422c8.99023 -8.25 34.6602 -45.8604 34.6602 -45.8604l-19.46 -13.7295c-1.59961 2.40918 -41.1201 57.4492 -41.1201 57.4492s16.9004 10.3799 25.9102 2.12988zM640 189.65
-c0 0 0.950195 -23.79 -8.73047 -23.79h-122.359v-73.3203c0.780273 -28.0303 -15.3301 -45.3096 -44.8906 -45.3096c-9.84961 0 -16.1396 1.75977 -26.0195 6.56934c-12.9805 7.4502 -17.3203 17.8701 -19.3096 21.8398c15.6094 -0.65918 27.6094 -1.91992 41.6895 -1.80957
-c13.29 -0.870117 24.4805 7.15039 24.4805 21.1201v70.9199h-107.94c-22.6895 0.540039 -25.5098 22.8496 -25.5098 22.8496h133.47v99.8105c-12.8301 0 -31.6797 -0.830078 -56.5098 -2.43066c-26.46 -0.80957 -35.8398 -2.58984 -49.1504 0.890625
-c-8.16016 2.46973 -14.1797 10.7295 -15.7793 19.5498c67.1396 1.55957 232.359 18.0498 232.359 18.0498s20.1006 5.75977 23.1699 4.58008c12.8105 -6.25 0.589844 -33.4395 0.589844 -33.4395c-17.6396 -0.810547 -46.8896 -2.40039 -87.7695 -4.81055
-c-10.4297 -0.799805 -18.04 -1.2002 -22.8496 -1.2002v-101c0.149414 0 111.279 0.930664 131.06 0.930664z" />
-    <glyph glyph-name="alipay" unicode="&#xf642;" 
-d="M377.74 416c38.6895 0 70.0898 -31.5703 69.9297 -70.2598v-234.41c-48.6104 16.7002 -99.6895 36.04 -148.62 52.7402c23.1406 44.2998 38.3506 90.9199 38.3506 90.9199h-88.7705v31.2402h109.45v19.0098h-109.44v50.4199h-50.9199v-50.4199h-109.439v-19.0098h109.439
-v-31.2402h-92.0801v-16.7002h178.2s-9.91992 -30.25 -26.4502 -60.3398c-47.7793 14.71 -91.75 24.96 -127.13 24.96c-84.6396 0 -103.49 -42.4902 -99.5195 -81.5c3.30957 -31.0703 26.4502 -76.3701 97.04 -76.3701c64.4795 0 116.55 37.0303 148.62 81
-c61.0098 -28.0996 125.64 -62.8203 171.6 -88.4404c-0.5 -38.5195 -31.7402 -69.5996 -70.2598 -69.5996h-307.48c-38.8496 0 -70.2598 31.4102 -70.2598 70.2598v307.48c0 38.8496 31.4102 70.2598 70.2598 70.2598h307.48zM47.2803 125.05
-c-0.990234 17.5205 10.9102 50.5801 78.3594 50.5801c24.96 0 64.8105 -12.7295 109.44 -31.4102c-25.29 -33.2197 -65.7998 -72.8994 -117.87 -72.8994c-59.6797 0 -68.9404 33.5596 -69.9297 53.7295z" />
-    <glyph glyph-name="the-red-yeti" unicode="&#xf69d;" horiz-adv-x="512" 
-d="M488.23 206.3c2.95508 -3.9668 5.25098 -8.47559 6.76953 -13.2998c3.99121 -10.8701 7.04004 -22.4727 8.90039 -34.2002l-2.5 -0.5l-13 14.2998c-17.9004 -28.0996 -9.90039 -15.3994 -16.7002 -25.0996c0 -124.2 -101.3 -211.5 -223 -211.5
-c-61.5 0 -113.9 20.2002 -157.5 60.2002c-64.5 60.8994 -64.9004 125 -64.9004 150.5c-0.5 1.7998 -0.700195 3.5 -1.2002 5.2002l-20.1992 -22.4004c-6.80078 43 25.6992 74.2998 33 80.7002c0.5 1 0.699219 2.2002 1.19922 3.2002l-28.7998 1l-3 3.39941
-c8.5 3.5 25.2998 13.2998 40.2998 14.2998c7.63672 14.623 16.9365 28.0742 27.8008 40.3008c1.2998 6.39941 3.2998 14.1992 6.59961 25.7998l-7.59961 -4.7002l-1.7002 1.7002l1.7002 8.39941c10.6934 25.7754 26.6318 48.6221 46.6992 67.4004l-33 14.2998h3.7002
-c20.9004 4.90039 33.2002 3.2998 49.2002 0c-2.5 4.10059 -5.40039 10.5 -8.40039 18.9004c-1.36035 3.74219 -2.09961 7.81445 -2.09961 12.0244c0 4.69629 0.923828 9.17871 2.59961 13.2754c8.90039 -7.40039 14.3008 -24.5996 15.2002 -27
-c0.700195 3.59961 2.10059 21.2998 33.7002 45.5l1.83008 -0.5l-12 -44.2002c30 17.7002 63 21.9004 97.9004 11.7998c-12.7002 -12.1992 -24.3008 -28.8994 -42.5 -33c7.39941 -2.2998 28.6992 -9.69922 34.1992 -15.1992l-24.7998 7.09961
-c6.5 -6 19.6006 -16.4004 25.1006 -25.0996c23.7891 -1.09473 46.9111 -5.74414 68.3994 -13.3008l-0.5 0.5c29.4004 14.7002 37.7002 27.3008 74.7998 3c0 -30.1992 -2.2998 -23.3994 3 -29.7998c7.69336 6.50391 16.1553 12.0381 25.3008 16.5
-c13 6.40039 23.0996 4.7002 30.6992 -5.89941c11.8008 0 17.8008 -15.7002 18.4004 -27c14.7998 -2.90039 2.7002 -30.7002 2.5 -30.7002l-7.09961 -18.2002c7.7998 -7.7998 22.0996 -20.9004 31.6992 -44.7998zM398 336.8c-13.0996 8.90039 -22.7002 11.9004 -28.2998 8.5
-c8.09961 -7.2002 13 -14.2998 13.5 -20.7002c1.2002 -7.59961 -2.2002 -14.7998 -10.6006 -21.8994l-4.19922 -3.40039c4.2002 -6.89355 7.1416 -14.793 8.39941 -23.0996h2.5c-2.09961 13.8994 -2.5 11 0.700195 14.7998c11 -6.40039 14.9004 -14.5 16 -19.9004
-c21.7998 10.1006 29.5 12.7002 54.7998 20.9004l-18.2002 -16c11.4004 0 25.6006 0.299805 46.5 -8.40039c7 24.3008 7.10059 20.7002 2.5 20.7002l-4.69922 -11.2998c-1.7002 10.5 -2.90039 18.9004 -3.40039 25.2998c-0.5 6.7002 -3.90039 9.60059 -9.2998 10.1006
-c-0.0117188 -0.470703 -0.0126953 -0.894531 -0.0126953 -1.36816c0 -4.77148 0.594727 -9.40527 1.71289 -13.832l-1.7002 -5.90039c-2.90039 10.6006 -5.90039 20.2002 -9.2998 27.7998c-9.7002 17.7002 -30.2002 -9.19922 -43 -11.2998
-c4.53027 -0.25293 8.71777 -0.380859 13.3115 -0.380859c4.59277 0 9.15723 0.12793 13.6885 0.380859l-22.4004 -5.39941l3.40039 -4.7002c-5.5 0 -16.9004 -0.900391 -22.4004 17.2002zM358.4 346.9l-20.3008 -11.8008
-c11.3008 -7.59961 20.2002 -18.1992 27.8008 -31.1992c6.39941 2.89941 10.0996 5.09961 11.7998 7.59961c2.5 2.7998 2.5 4.7002 3 7.09961c0.599609 1.30078 0.799805 2.7002 -3.40039 11.1006c-7.5 11.7998 -16.2002 15.2998 -18.8994 17.2002zM91 304.9
-c-7.7998 -24.1006 -11.7002 -49.4004 -13.2002 -74.6006l13.2002 -5l1.2002 27c9.5 -16.3994 11.2002 -23.2998 12.2998 -28.7998c2.7998 2.09961 7.7002 7 22.5996 11.2998l1.2002 -1.7002l-7.59961 -10.5996c10.0996 3.5 19.5 3.5 28.2998 0.5l-10.5996 -8.40039
-c22.7998 -8.39941 26.5996 -7.59961 38.3994 -26.0996l-11.7998 1.2002c34.9297 -20.5 66 -47.9004 141.2 -63.2002c15.5996 24.0996 14 21.0996 14 22.9004l0.200195 0.199219l-0.200195 0.200195c-0.700195 1.90039 -14.1006 16.6006 -18.2002 20.7002
-c7.2998 -1.7998 6 -0.900391 10.7998 -3.7002c1.7002 -0.899414 -5.39941 5.40039 -21.8994 20.2002c16.5 -6.7002 27.5996 -15.5 33 -27.7998l1.69922 30.7002l-22.3994 17.6992l6.39941 5.90039c-7.2998 0 -31 3.7002 -49.1992 -16l-2.5 0.5
-c6.9668 14.3867 12.4512 30.0156 16 46c1.9209 9.16797 2.95508 18.5742 3 28.2998c0 19.5 -4.7002 38.4004 -13.5 56.6006c-6.40039 13.5 -16.5 25.2998 -30 35.3994c-6.5957 4.94238 -13.4805 9.43652 -20.7002 13.5c3 0.700195 1 1.2002 -5.40039 1.2002
-c-6.39941 0.200195 -13 0.700195 -19.3994 1.2002v-3c-10.2949 -1.63086 -19.2871 -7.22266 -25.3008 -15.2002h-1.19922l-5.40039 -3.40039c-1.2002 2.90039 0 6.30078 4.2002 9.30078l10.5996 11.2998l-3.39941 -0.5l2 3.39941
-c-2.30078 0.200195 -4.2002 0.5 -6.2002 0.700195l-0.5 1.2002l2.5 1.7002c2.2002 -0.200195 4.59961 -0.5 7.09961 -0.700195c2.9043 1.54785 6.22559 2.4375 9.74414 2.4375c1.45898 0 2.88184 -0.150391 4.25586 -0.4375l2.5 -1.2002l0.200195 -0.5
-c7.93457 0.514648 15.7422 1.49121 23.4004 2.90039c20.6992 2.89941 36.6992 11.2998 48.5 24.7998l-21.1006 0.5c-25.7998 0.5 -49.3994 -5.40039 -71.2998 -18.9004l-2.5 2.5l0.5 4.7002l1.7002 7.10059c1.66211 8.54199 3.83691 17.1143 6.39941 25.2998
-c-1.69922 -0.700195 -4.59961 -4.90039 -9.2998 -11.2998c-4.7002 -6.40039 -8.39941 -13 -10.0996 -19.4004c-1.0957 -5.14258 -3.14062 -10.0195 -5.90039 -14.2998l-13.5 29l8.40039 -35.7998l-0.5 -1.7002c-0.00585938 0 -0.0146484 0.0117188 -0.0195312 0.0117188
-c-5.57227 0 -10.9424 0.87207 -15.9805 2.48828c-3.40039 0.700195 -10.6006 1.2002 -20.9004 1.2002c0.5 0 -0.700195 0 -3.2002 -0.5c5.40039 -1.30078 13.5 -4.2002 24.8008 -8.40039l6.39941 1.2002c-4.2002 -3.40039 -10.8994 -10.1006 -20.2002 -19.4004
-c-9.39941 -8.89941 -20.1992 -26.0996 -32.5 -50.2002l4.2002 1.2002l10.1006 9.2998l-5.40039 -4.69922l13 12.2998l-2.5 -3.40039c-5.09961 -7.59961 -8.09961 -12.2998 -9.2998 -15.2002zM367.5 -25.0996c8.2998 40.2998 3.59961 55.1992 -0.700195 89.5
-c-35.5 -11.8008 -20.2998 -6 -32 -10.8008l10.5 -14.1992l-1.2002 -1.2002c-20.1992 6 -23.1992 10.7998 -27.7998 15c6 -22.2002 13.9004 -26.4004 29.5 -31.7002c-9.5 -9.59961 -25.3994 4 -34.3994 13l2.5 -23.5996l-4.2002 -3c-5 22.0996 -22 39.0996 -25.2998 39.0996
-c-44 -13 -79.1006 -5.7998 -113.9 10.5996c-1.59961 -0.399414 -70.5996 -18 -120.5 37.1006c13.7002 -35 32.2998 -63.7002 71.2998 -82.6006c-4.98047 10.3184 -12.0117 19.3135 -20.7002 26.6006c0 0 0.700195 3.7002 1.2002 10.0996
-c19.4004 -19.3994 50.7002 -39.5 93.2002 -60.2002c-59.5996 24.5 -59.9004 24.8008 -69.0996 29l16 -20.6992c-3 -1.30078 -6.7002 -0.5 -10.1006 1.19922c-12.5371 7.32422 -24.2949 15.5693 -35.3994 24.8008c1.89941 -2.2002 80.0996 -98.5 200.899 -74.3008
-c-43.0996 21.8008 -52.3994 52.4004 -66.5996 73.5l17.7002 -7.59961l-11.8008 23.0996c20.1006 -27.7998 28.6006 -35 38.4004 -44.2998l-30 16.5c12.5996 -27.0996 33.7002 -47 63.5 -58.7998c2.90039 1.5 9.09961 -1.09961 59 23.9004zM482.8 189.3l8.93066 -12.7998
-l-12.3008 32.5c10.9004 0 10 -0.0996094 21.2002 -3.40039c-8.16406 11.4756 -17.0879 22.0469 -27 32l-26.5996 23.1006l1.2002 3l23.5996 2.5c-10.6865 2.35742 -21.708 3.79199 -33 4.2002l-17.7002 -0.5l-0.5 2.89941l14.7998 13l-41.7998 -20.2002l-12.2998 18.9004
-l3.40039 -16l-2.5 -1.2002l-5.90039 4.2002h-10.0996l5.39941 -4.2002v-2l-13.5 -27.7998c-10.0996 -31.2002 -21.8994 -67.9004 -35.3994 -109.7l1.19922 16l-1.19922 -3v-0.5c-6.40039 -16 -13.6006 -29.5 -21.2002 -39.5996l9.2998 21.8994l-46.7002 -20.1992
-c11.7998 13.5 23.6006 19.3994 34.9004 18.8994c-71.2002 11.4004 -106.2 41 -110.4 46c3.60059 -6.2002 13.2002 -17.7998 16 -40.0996l-1.7002 -1.2002c-4.2998 15.5996 -16.3994 46.5996 -55.7998 69.5996l23.6006 -2.5c-10.5 12.6006 -36.3008 17.8008 -40.8008 16
-l-2.5 2.5l8.40039 8.40039l-22.2998 -5.7998l5.39941 13.5c-8.09961 -4.40039 -4.2998 -2.40039 -17 -8.90039l-1.69922 0.5c0.599609 0.600586 0.899414 -0.700195 -3 9.2998c-0.600586 -11 -0.400391 -8.59961 -1 -11.7998
-c-1.29785 -0.430664 -2.54785 -1.00781 -3.7002 -1.7002c-40 20.6006 -57.2002 11 -73 5.2002c36.7998 -6 29.2998 -4 38.3994 -9.2998c-25.7998 -12.2002 -31.8994 -12.5996 -51.3994 -70.0996l22.2695 22.2998l2.5 -16.4004c13.4004 -58 68.7002 -92.5 126.4 -83.3994
-l-26.1006 22.3994l44.8008 -22.3994l-1.2002 -3c4.59961 -1.7002 9.2998 -3 13.5 -4.2002c19.3359 -5.72266 39.5713 -8.83887 60.752 -8.83887c11.0293 0 21.8643 0.832031 32.4482 2.43848l-32.5 21.2002c35.7998 -7 50.6992 -31.4004 56.7998 -39.5996l-7.60059 29
-l1.2002 2.5l19 -27.9004l-9.2998 26.5996l21.9004 -13.5h1.19922l-3.39941 4.2002l7.09961 -4.7002l-14.2998 16l1.2002 3l7.59961 -7.09961c4.2998 1.2002 41.4004 10.5 80.9004 40.2998c47.8994 35.4004 68.0996 73.7998 71.5996 79.7002l-3 9.2998zM476.7 260.6
-l-18.2002 -1.19922l14.2998 -11.8008zM221.9 253.5c2.69922 -5.09961 5.69922 -12.4004 18.3994 -18.7998c-7.5 -10.9004 -8.2998 -10.5 -20.2002 -16c-7.59961 -7.7002 -13.5 -13.1006 -17.6992 -14.7998l7.09961 13c-5.38281 -1.97266 -11.167 -3.06836 -17.2295 -3.06836
-c-2.57324 0 -5.10156 0.194336 -7.57031 0.568359l-0.5 1.19922c19 2.10059 37.2002 9.40039 46.5 16c-4.10059 4.2002 -7.10059 11.3008 -8.7998 21.9004zM225.6 355.8c5.87793 -3.32715 10.7842 -8.04688 14.3008 -13.7998
-c14.6992 -24.0996 19.1992 -40.0996 11.2998 -47.7002c-7.90039 -7.59961 -16.7998 -7.09961 -26.1006 3c-9.2998 10.1006 -13.5 23.7002 -11.7998 39.6006c1.7002 15.8994 5.90039 22.2998 12.2998 18.8994zM220.9 309.5
-c7.09961 -21.2998 33.3994 -23.0996 26.8994 4.90039c-3.89941 16.5 -8.7998 27.0996 -15.2002 32.5c-6.59961 5.39941 -10.0996 6.69922 -11.2998 4.19922c-2.5 -2.89941 -3.5 -11.2998 -3 -24.7998c7.5 12.7998 11.6006 5.90039 12.5 4.7002l-0.5 -0.5
-c-0.799805 -1.7002 -2.59961 -3.09961 1.7002 -6.2002l1.2002 0.5v-4.7002c-1.7998 -12.5 -6.90039 -12.7998 -12.2998 -10.5996zM175.9 315c-2.41016 0.448242 -4.38965 2.04102 -5.40039 4.2002c-3.5 8.5 0 21.2002 8.09961 21.2002
-c2 -0.5 3.7002 -1.7002 5.40039 -4.7002c-1.5 -0.400391 -4.7002 -4.7998 0.700195 -5.90039h0.5c0 -13.7002 -7.7002 -15.0996 -9.2998 -14.7998zM216 365.1l-3.7002 2.40039l-0.5 2.5c18.2998 0 25.7998 -8.7998 28.2998 -14.2998
-c-6.94727 3.78809 -14.9268 5.97363 -23.3916 5.97363c-0.90918 0 -1.81152 -0.0244141 -2.70801 -0.0742188l-0.5 3zM144.2 315.7c1.59961 -1.60059 0.599609 -0.299805 4.89941 -6.60059c-25.3994 -4.69922 -23.1992 -12.2998 -30 -12.2998
-c0.300781 0.600586 7.10059 16 23.6006 16l-7.10059 7.60059c9.40039 0.5 15.2002 2.09961 19.9004 -5.90039c0.0214844 8.14648 1.03027 16.0225 2.90039 23.5996c2 7.60059 3.69922 11.8008 5.39941 13.5c1 1.5 16.2998 15.7002 29 22.4004
-c2.33496 1.68262 5.22168 2.67676 8.31641 2.67676c1.8291 0 3.57715 -0.34668 5.18359 -0.976562c0.321289 -0.390625 0.515625 -0.889648 0.515625 -1.43457c0 -0.0898438 -0.00488281 -0.178711 -0.015625 -0.265625l-13 -7.59961
-c7.60059 -11.8008 10.5 -25.3008 8.7998 -41.3008c-1.11328 -11.292 -6.61426 -21.3291 -14.7998 -28.2998l2.90039 -4.7002c-30 2.2002 -24.7998 6.80078 -46.5 23.6006zM162.9 334.4c-1.80078 -7.2002 -2.30078 -16 -3.10059 -26l5.40039 -6.40039l7.09961 -3.40039
-c2.39648 -0.458008 4.79688 -0.699219 7.3252 -0.699219c1.3418 0 2.66797 0.0673828 3.97461 0.199219c1 1.7002 3.5 4.2002 6.40039 7.60059c5 5.89941 7.90039 13.7998 8.40039 23.0996c0.0849609 1.43848 0.113281 2.82617 0.113281 4.28613
-c0 7.30859 -1.08887 14.3643 -3.11328 21.0137c-3 8.10059 -5.90039 11 -10.1006 9.30078c-5.39941 -1.7002 -10.5996 -5.40039 -16 -11.8008c-3 -4.19922 -5.2002 -9.59961 -6.39941 -17.1992zM204.9 278.3l-3.10059 -6.5c7.10059 4.2002 13.5 7.2002 19.4004 8.40039
-l7.09961 0.5l11.7998 -7.60059h-2.5c-8.7998 3.7002 -19.3994 1.2002 -30.6992 -7.59961c-0.5 -4.7002 1.69922 -14.7002 5.89941 -29.5l9.2002 0.5c-21.9004 -6.59961 -37.5996 -8.40039 -48.9004 -5.40039c-24.8994 6.7002 -27.3994 23.6006 -27.5 24.1006
-c-1.74121 6.70996 -2.67871 13.6348 -2.67871 20.8867c0 4.35645 0.333984 8.63574 0.979492 12.8135c-6.40039 -0.5 -11 -4.2002 -15.2002 -10.6006c-2.90039 5.90039 -5.40039 8.7998 -5.90039 9.2998c1.5 0.700195 12.2998 7.5 32.5 4.90039l0.5 -2.5l-5.89941 -1.2002
-c-0.100586 -0.399414 -1.90039 -29.5 18.8994 -24.7998c1.40039 0.299805 1.2998 -0.0996094 36.1006 14.2998z" />
-    <glyph glyph-name="acquisitions-incorporated" unicode="&#xf6af;" horiz-adv-x="384" 
-d="M357.45 -20.2002c2.2002 -14.2998 4.09961 -28.7002 6.59961 -43.7002c-367.8 0 -153.899 -0.599609 -337.1 0c-4 0 -6.10059 0.700195 -5.2998 5.7002c2.09961 12.9004 3.5 25.9004 5 38.7998c0.5 4.80078 2.2998 6.80078 7.59961 6.80078
-c118.1 -1 114.9 -0.300781 121.4 2.39941c9.39941 4 14.8994 12.9004 14.8994 23.1006c-0.0996094 42.8994 -0.299805 85.8994 -0.200195 128.8c0 3.7998 -1.19922 5.89941 -4.59961 6.7998c-15.7002 3.90039 -31.2998 7.7002 -47.5996 11.7002
-c-5.30078 -12.2998 -10.4004 -24.4004 -15.7002 -36.7002c1.7998 -3.2998 28.3994 -2.90039 35.2998 -2.90039v-27.5996h-114.3c1 8.59961 1.7002 16.7998 3.2002 24.9004c0.299805 1.39941 3.59961 3.09961 5.5 3.19922
-c8.39941 0.400391 16.8994 0.300781 25.3994 0.100586c4 0 5.90039 1.09961 7.60059 5.2002c16.5996 40.6992 13.5 31.1992 67.2998 161c31.5 76.0996 33 76 32.5996 87.3994c-0.700195 18.6006 -25.3994 22.2998 -37.7002 22.1006c-30 -0.400391 -38.3994 0.5 -101.8 0.5
-c-7.2002 44.5 -4.2002 32.0996 -6.39941 45.2998c-0.700195 4.2002 1 5.2998 4.59961 5.2998l339.1 -0.200195c-0.799805 -5.39941 -1.59961 -10.7998 -2.39941 -16.0996c-1.2998 -9.7002 -2.7998 -19.4004 -4 -29.2002c-0.299805 -2.90039 -1.2002 -4.2998 -4.2998 -4.2998
-c-20.6006 -0.100586 -41.2002 -0.100586 -61.8008 -0.5c-18.6992 -0.400391 -37.5996 -0.299805 -56.1992 -2c-13.4004 -1.2002 -23.3008 -12.6006 -18.9004 -26.6006c8.59961 -27.0996 27.7002 -69.0996 36.5 -89.1992c65.7002 -154.2 61.4004 -157 84 -158.601
-c6.59961 -0.5 13.4004 -0.0996094 20.4004 -0.0996094c1.2998 -9.40039 2.59961 -18 4 -27.5h-116v27c10.3994 0 20.3994 0.0996094 30.3994 -0.100586c3.5 0 5 0.700195 3.40039 4.40039c-4.40039 10.2998 -8.7002 20.5996 -13.2002 30.9004
-c-1.59961 3.69922 -4.09961 4.7998 -8.40039 3.5c-12.3994 -3.60059 -24.7998 -6.7002 -37.2998 -9.7002c-4.2998 -1.10059 -6 -2.7998 -5.89941 -7.5c0.799805 -57.5 0.899414 -127.5 1 -129.101c0.399414 -12.5996 8.69922 -21.3994 21 -23.0996
-c0.899414 -0.200195 12.8994 -2.7998 112.699 -2.59961c8.30078 0 8.40039 0.0996094 9.60059 -7.60059zM182.55 185.5c2.87695 -1.01465 5.98633 -1.56641 9.20801 -1.56641s6.31543 0.551758 9.19238 1.56641c13 4.2002 26.2998 7.7998 39.3994 11.7002
-c1.34473 0.620117 2.65234 1.32422 3.90039 2.09961c-6.7002 17.4004 -13.0996 34.2002 -19.7002 50.9004c-8.89941 22.7002 -17.7002 60.2998 -27 82.7998c-1.5 0.799805 -1.89941 -2.40039 -9.39941 0c-17.1006 -44 -34.1006 -87.7998 -51.3008 -132.1
-c1.8457 -1.09766 3.7959 -2.07422 5.80078 -2.90039c13.2998 -4.2998 26.5996 -8.2998 39.8994 -12.5z" />
-    <glyph glyph-name="critical-role" unicode="&#xf6c9;" 
-d="M225.82 448c0.259766 -0.150391 216.569 -124.51 217.12 -124.72c3 -1.18066 3.69922 -3.45996 3.69922 -6.56055c-0.0732422 -83.4463 -0.0732422 -166.899 0 -250.359c0.0117188 -0.150391 0.0175781 -0.302734 0.0175781 -0.456055
-c0 -2.36035 -1.38867 -4.38867 -3.39746 -5.32422c-21.3701 -12 -207.859 -118.29 -218.93 -124.58h-3c-79.3301 45.6602 -218.25 125.44 -218.4 125.52c-1.11816 0.526367 -1.89355 1.66309 -1.89355 2.97949c0 0.0898438 0.00683594 0.173828 0.0136719 0.260742
-c0 0.870117 0 225.94 -0.0498047 253.101c-0.00976562 0.124023 -0.0136719 0.25 -0.0136719 0.376953c0 2.02832 1.20605 3.76855 2.94336 4.55273c23.2607 13.0996 209.271 119.21 220.141 125.21h1.75zM215.4 427.58l-0.219727 0.158203
-c-64.7471 -36.8604 -129.474 -73.7305 -194.18 -110.61c0 -0.120117 0.0800781 -0.229492 0.129883 -0.349609l30.8604 -11.6406c-7.70996 -6 -8.32031 -6 -10.6504 -5.12988c-0.0996094 0 -24.1699 9.28027 -26.7998 10v-230.43
-c0.879883 1.41016 64.0703 110.91 64.1299 111c1.62012 2.82031 3 1.91992 9.12012 1.51953c1.40039 -0.0898438 1.47949 -0.219727 0.780273 -1.41992c-41.1904 -71.3301 -36.4004 -63 -67.4805 -116.939c-0.80957 -1.40039 -0.609375 -1.12988 1.25 -1.12988h186.5
-c1.44043 0 1.69043 0.229492 1.7002 1.63965v8.87988c0 1.33984 2.36035 0.810547 -18.3701 1c-7.45996 0.0703125 -14.1396 3.21973 -21.3799 12.7002c-7.37988 9.66016 -14.6201 19.4297 -21.8496 29.21c-2.28027 3.08008 -3.4502 2.37988 -16.7607 2.37988
-c-1.75 0 -1.7793 0 -1.75977 -1.82031c0.290039 -26.21 0.150391 -25.2695 1 -32.6592c0.520508 -4.37012 2.16016 -4.2002 9.69043 -4.81055c3.13965 -0.259766 3.87988 -4.08008 0.519531 -4.91992c-1.57031 -0.389648 -31.5996 -0.509766 -33.6699 0.0996094
-c-1.02539 0.28125 -1.7793 1.2207 -1.7793 2.33496c0 1.21973 0.905273 2.22949 2.0791 2.39551c3.29004 0.759766 6.16016 -0.80957 6.66016 4.44043c1.2998 13.6592 1.16992 9 1.09961 79.4199c0 10.8193 -0.349609 12.5801 -5.35938 13.5498
-c-1.21973 0.240234 -3.54004 0.160156 -4.69043 0.549805c-2.87988 1 -2 4.83984 1.77051 4.84961c33.6699 0 46.0801 1.07031 56.0596 -4.85938c7.74023 -4.61035 12 -11.4805 12.5098 -20.4004c0.880859 -14.5898 -6.50977 -22.3496 -15 -32.5898
-c-0.313477 -0.267578 -0.511719 -0.666016 -0.511719 -1.11035s0.198242 -0.841797 0.511719 -1.10938c2.60059 -3.25 5 -6.62988 7.70996 -9.83008c27.5605 -33.2305 24.1104 -30.54 41.2803 -33.0605c0.890625 -0.129883 1 0.419922 1 1.15039v11
-c0 1 0.320312 1.42969 1.41016 1.25977c3.57227 -0.542969 7.23047 -0.825195 10.9531 -0.825195c4.35449 0 8.4834 0.386719 12.627 1.125c1.08008 0.150391 1.5 -0.199219 1.47949 -1.33008c0 -0.109375 0.880859 -26.6895 0.870117 -26.7998
-c-0.0498047 -1.51953 0.669922 -1.62012 1.89062 -1.62012h186.71c-27.1533 47.0342 -54.2334 93.9746 -81.2402 140.821c2.25977 0.660156 -0.400391 0 6.69043 1.38965c2 0.390625 2.0498 0.410156 3.10938 -1.43945c7.31055 -12.6396 77.3105 -134 77.3701 -134.061
-v230.44c-1.71973 -0.5 -103.3 -38.7197 -105.76 -39.6797c-1.08008 -0.419922 -1.5498 -0.200195 -1.91016 0.879883c-0.629883 1.89941 -1.33984 3.75977 -2.08984 5.62012c-0.320312 0.790039 -0.0898438 1.12988 0.649414 1.38965
-c0.100586 0 95.5303 35.8496 103 38.7705c-65.4199 37.5693 -130.56 75 -196 112.6l86.8203 -150.39l-0.280273 -0.330078c-9.56934 0.899414 -10.46 1.59961 -11.7998 3.93945c-1 1.69043 -73.5 127.71 -82 142.16c-9.09961 -14.6699 -83.5596 -146.21 -85.3701 -146.32
-c-2.92969 -0.169922 -5.87988 -0.0800781 -9.25 -0.0800781c28.833 49.8271 57.5596 99.4941 86.1797 149.001zM267.331 297.658c1.88379 0.146484 3.74316 0.435547 5.54004 0.849609c1.68945 0.299805 2.53027 -0.200195 2.59961 -1.91992
-c0 -0.109375 0.0703125 -19.0596 -0.859375 -20.4502c-0.930664 -1.38965 -1.87988 -1.21973 -2.60059 0.19043c-5 9.68945 6.2207 9.66016 -39.1201 12c-0.699219 0 -1 -0.230469 -1 -0.929688c0 -0.130859 3.7207 -122 3.73047 -122.11
-c0 -0.889648 0.519531 -1.2002 1.20996 -1.50977c2.97363 -1.18262 5.9043 -2.54883 8.7002 -4.0498c7.30957 -4.33008 11.3799 -10.8408 12.4102 -19.3105c1.43945 -11.7998 -2.77051 -35.7695 -32.21 -37.1396c-2.75 -0.129883 -28.2607 -1.08008 -34.1406 23.25
-c-4.66016 19.2598 8.25977 32.7002 19.8906 36.3994c1.14258 0.208008 2.00977 1.20898 2.00977 2.41113c0 0.0849609 -0.00195312 0.166016 -0.00976562 0.249023c0.0996094 5.62988 3 107.101 3.70996 121.351c0.0498047 1.0791 -0.620117 1.15918 -1.35059 1.14941
-c-32.3496 -0.519531 -36.75 0.339844 -40.2197 -8.51953c-2.41992 -6.18066 -4.13965 -1.32031 -3.9502 -0.230469c1.05957 6 2.16309 12 3.31055 18c0.399414 2.11035 1.42969 2.61035 3.42969 1.86035c5.58984 -2.11035 6.71973 -1.7002 37.25 -1.91992
-c1.72949 0 1.78027 0.0800781 1.82031 1.84961c0.679688 27.4902 0.579102 22.5898 1 29.5498c0.0117188 0.106445 0.0185547 0.213867 0.0185547 0.322266c0 1.11719 -0.679688 2.07129 -1.64941 2.47852c-5.59961 2.90918 -8.75 7.5498 -8.89941 13.8691
-c-0.350586 14.8105 17.7197 21.6699 27.3799 11.5107c6.83984 -7.19043 5.7998 -18.9102 -2.4502 -24.1504c-1.34473 -0.740234 -2.25684 -2.1709 -2.25684 -3.81348c0 -0.180664 0.015625 -0.351562 0.0371094 -0.526367c0 -0.589844 -0.110352 4.30957 1 -30.0498
-c0 -0.900391 0.429688 -1.12012 1.24023 -1.11035c0.0996094 0 23 0.0898438 34.4697 0.370117zM68.2705 306.298c19.8408 4.50977 32.6807 0.560547 52.4902 -1.68945c2.75977 -0.310547 3.74023 -1.2207 3.62012 -4c-0.209961 -5 -1.16016 -22.3301 -1.24023 -23.1504
-c-0.0419922 -1.05566 -0.702148 -1.9541 -1.62988 -2.33984c-4.05957 -1.7002 -3.60938 4.4502 -4 7.29004c-3.12988 22.4297 -73.8701 32.7002 -74.6299 -25.4004c-0.30957 -23.9199 17 -53.6299 54.0801 -50.8799c27.2402 2 19 20.1904 24.8398 20.4697
-c0.120117 0.0166016 0.241211 0.0244141 0.365234 0.0244141c1.50098 0 2.71973 -1.21875 2.71973 -2.71973c0 -0.229492 -0.03125 -0.451172 -0.0849609 -0.664062c-1.83008 -10.8506 -3.41992 -18.9502 -3.4502 -19.1504
-c-1.54004 -9.16992 -86.6992 -22.0898 -93.3496 42.0605c-2.70996 25.8496 10.4404 53.3691 40.2695 60.1494zM148.271 218.628h-19.4893c-0.0703125 -0.00585938 -0.140625 -0.00878906 -0.210938 -0.00878906c-1.15039 0 -2.12109 0.756836 -2.44922 1.79883
-c2.37988 3.75 5.88965 -0.919922 5.86035 6.13965c-0.0800781 25.75 0.209961 38 0.229492 40.1006c0 3.41992 -0.530273 4.64941 -3.32031 4.93945c-7 0.720703 -3.10938 3.37012 -1.10938 3.38086c11.8398 0.0996094 22.6201 0.179688 30.0498 -0.720703
-c8.76953 -1.06934 16.71 -12.6299 7.92969 -22.6201c-2 -2.25 -4 -4.41992 -6.13965 -6.72949c0.950195 -1.15039 6.89941 -8.82031 17.2803 -19.6797c2.65918 -2.78027 6.14941 -3.51074 9.87988 -3.13086h0.0214844c1.18945 0 2.16016 0.943359 2.20801 2.12012
-c0.299805 3.41992 0.259766 -4.72949 0.450195 40.5801c0 5.65039 -0.339844 6.58008 -3.22949 6.83008c-3.9502 0.350586 -4 2.25977 -0.69043 3.37012l19.0898 0.0898438c0.320312 0 4.49023 -0.530273 1 -3.37988c0 -0.0498047 -0.160156 0 -0.240234 0
-c-3.60938 -0.259766 -3.93945 -1 -4 -4.62012c-0.269531 -43.9297 0.0703125 -40.2295 0.410156 -42.8203c0.110352 -0.839844 0.270508 -2.22949 5.10059 -2.13965c2.48926 0 3.85938 -3.37012 0 -3.39941c-10.3701 -0.0800781 -20.7402 0 -31.1104 -0.0703125
-c-10.6699 0 -13.4697 6.2002 -24.21 20.8203c-1.59961 2.17969 -8.31055 2.35938 -8.2002 0.369141c0.879883 -16.4697 0 -17.7793 4 -17.6699c4.75 0.100586 4.73047 -3.56934 0.830078 -3.5498h0.0595703zM423.271 228.778
-c-1.20996 -7.12988 0.170898 -10.3799 -5.2998 -10.3398c-61.5498 0.419922 -47.8193 0.219727 -50.7197 0.30957c-1.24414 0.12207 -2.4707 0.37207 -3.62988 0.730469c-2.53027 0.599609 1.47949 1.22949 -0.379883 5.59961
-c-1.43066 3.37012 -2.78027 6.78027 -4.11035 10.1895c-0.219727 0.831055 -0.976562 1.44336 -1.87598 1.44336c-0.0419922 0 -0.0820312 0 -0.124023 -0.00292969c-2.22852 0.107422 -4.4707 0.161133 -6.72559 0.161133
-c-2.70605 0 -5.18652 -0.0771484 -7.85449 -0.231445c-0.6875 -0.0898438 -1.27734 -0.491211 -1.62012 -1.05957c-1.58008 -3.62012 -3.06934 -7.29004 -4.50977 -11c-1.26953 -3.23047 7.86035 -1.32031 12.1904 -2.16016c3 -0.570312 4.5293 -3.71973 0.65918 -3.72949
-h-26.3691c-2.91992 0 -3.09082 3.14941 -0.740234 3.20996c0.0966797 -0.00488281 0.194336 -0.00683594 0.291992 -0.00683594c2.46484 0 4.59277 1.41211 5.62793 3.47656c1.5 3 2.7998 6 4.11035 9.08984c18.1797 42.1396 17.0596 40.1699 18.4199 41.6104
-c0.330078 0.473633 0.879883 0.783203 1.50098 0.783203s1.16797 -0.30957 1.49902 -0.783203c2.92969 -3.33984 18.3994 -44.71 23.6201 -51.9199c2 -2.7002 5.73926 -2 6.35938 -2c3.61035 -0.130859 4 1.10938 4.12988 4.29004
-c0.0898438 1.86914 0.0800781 -1.1709 0.0703125 41.2393c0 4.45996 -2.36035 3.74023 -5.5498 4.27051c-0.259766 0 -2.56055 0.629883 -0.0800781 3.05957c0.209961 0.200195 -0.890625 0.240234 21.7002 0.150391c2.31934 0 5.31934 -2.75 -1.20996 -3.4502
-c-0.0390625 0.00195312 -0.078125 0.00292969 -0.116211 0.00292969c-1.41309 0 -2.56055 -1.14746 -2.56055 -2.56055c0 -0.0927734 0.00683594 -0.181641 0.0166016 -0.272461c-0.0703125 -1.62988 -0.19043 -38.8896 0.290039 -41.21
-c0.288086 -1.39062 1.52051 -2.43652 2.99609 -2.43652c0.0791016 0 0.155273 0.000976562 0.233398 0.00683594c13.25 -0.430664 14.9199 -0.44043 16 3.41016c1.66992 5.7793 4.12988 2.51953 3.73047 0.189453zM318.551 164.408
-c-4.24023 0 -4.41992 3.38965 -0.609375 3.41016c35.9092 0.160156 28.1094 -0.379883 37.1895 0.649414c1.67969 0.19043 2.37988 -0.239258 2.25 -1.88965c-0.259766 -3.38965 -0.639648 -6.78027 -1 -10.1602c-0.25 -2.16016 -3.2002 -2.61035 -3.39941 0.150391
-c-0.380859 5.30957 -2.15039 4.44922 -15.6309 5.08008c-1.58008 0.0693359 -1.63965 0 -1.63965 -1.52051v-16.1299c0 -1.65039 0 -1.59961 1.62012 -1.46973c3.12012 0.25 10.3096 -0.339844 15.6895 1.51953c0.470703 0.160156 3.30078 1.79004 3.07031 -1.75977
-c0 -0.209961 -0.759766 -10.3496 -1.17969 -11.3896c-0.530273 -1.29004 -1.87988 -1.51074 -2.58008 -0.320312c-1.16992 2 0 5.08008 -3.70996 5.2998c-15.4199 0.900391 -12.9102 2.5498 -12.9102 -6c0 -12.25 -0.759766 -16.1104 3.88965 -16.2402
-c16.6406 -0.479492 14.4004 0 16.4307 5.70996c0.839844 2.37012 3.5 1.77051 3.17969 -0.580078c-0.44043 -3.20996 -0.849609 -6.42969 -1.22949 -9.63965c0 -0.360352 -0.160156 -2.39941 -4.66016 -2.38965c-37.1602 0.0800781 -34.54 0.189453 -35.21 0.30957
-c-2.7207 0.509766 -2.2002 3 0.219727 3.4502c1.09961 0.19043 4 -0.540039 4.16016 2.55957c2.43945 56.2207 -0.0703125 51.3408 -3.91016 51.3301zM318.141 273.928c2.45996 -0.609375 3.12988 -1.75977 2.9502 -4.64941
-c-0.330078 -5.2998 -0.339844 -9 -0.549805 -9.69043c-0.660156 -2.22949 -3.15039 -2.12012 -3.33984 0.270508c-0.379883 4.80957 -3.0498 7.81934 -7.57031 9.14941c-26.2803 7.73047 -32.8096 -15.46 -27.1699 -30.2197c5.87988 -15.4102 22 -15.9199 28.8604 -13.7803
-c5.91992 1.85059 5.87988 6.5 6.91016 7.58008c1.22949 1.2998 2.25 1.83984 3.11914 -1.09961c0 -0.100586 0.570312 -11.8906 -6 -12.75c-1.59961 -0.209961 -19.3799 -3.69043 -32.6797 3.38965c-21 11.1904 -16.7402 35.4697 -6.87988 45.3301
-c14 14.0596 39.9102 7.05957 42.3203 6.46973h0.0292969zM289.801 167.858c3.28027 0 3.66016 -3 0.160156 -3.43066c-2.61035 -0.319336 -5 0.419922 -5 -5.45996c0 -2 -0.19043 -29.0498 0.400391 -41.4502c0.109375 -2.28906 1.14941 -3.51953 3.43945 -3.64941
-c22 -1.20996 14.9502 1.64941 18.79 6.33984c1.83008 2.24023 2.75977 -0.839844 2.75977 -1.08008c0.350586 -13.6201 -4 -12.3896 -5.18945 -12.3994l-38.1602 0.189453c-1.92969 0.230469 -2.05957 3 -0.419922 3.37988c2 0.480469 4.93945 -0.399414 5.12988 2.7998
-c1 15.8701 0.570312 44.6504 0.339844 47.8105c-0.269531 3.76953 -2.7998 3.26953 -5.67969 3.70996c-2.46973 0.379883 -2 3.21973 0.339844 3.21973c1.4502 0.0205078 17.9697 0.0302734 23.0898 0.0205078zM258.171 225.648
-c0.0703125 -4.08008 2.86035 -3.45996 6 -3.58008c2.61035 -0.100586 2.53027 -3.41016 -0.0703125 -3.43066c-6.47949 0 -13.6992 0 -21.6094 0.0605469c-3.83984 0 -3.37988 3.34961 0 3.37012c4.49023 0 3.24023 -1.61035 3.41016 45.54
-c0 5.08008 -3.27051 3.54004 -4.7207 4.22949c-2.58008 1.23047 -1.35938 3.08984 0.410156 3.15039c1.29004 0 20.1904 0.410156 21.1699 -0.209961c0.980469 -0.620117 1.87012 -1.65039 -0.419922 -2.86035c-1 -0.519531 -3.85938 0.280273 -4.14941 -2.46973
-c0 -0.209961 -0.820312 -1.62988 -0.0703125 -43.7998h0.0498047zM221.261 -48.6221c0.46582 -0.311523 1.02539 -0.493164 1.62695 -0.493164c0.602539 0 1.16797 0.181641 1.63281 0.493164c17 9.79004 182 103.57 197.421 112.51
-c-0.140625 0.430664 11.2598 0.180664 -181.521 0.270508c-1.21973 0 -1.57031 -0.370117 -1.53027 -1.56055c0 -0.0996094 1.25 -44.5098 1.2207 -50.3799c-0.0966797 -2.67383 -0.571289 -5.27344 -1.36035 -7.70996c-0.549805 -1.83008 0.379883 0.5 -13.5 -32.2295
-c-0.730469 -1.7207 -1 -2.20996 -2 0.0800781c-4.19043 10.3398 -8.28027 20.7197 -12.5703 31c-1.29785 2.92285 -2.01953 6.15723 -2.01953 9.55957c0 0.412109 -0.000976562 0.823242 0.0195312 1.23047c0.160156 2.45996 0.800781 16.1191 1.51074 48
-c0 1.94922 0 2 -2 2h-183c2.5791 -1.63086 178.319 -102.57 196 -112.761zM130.361 140.128c0 -2.39941 0.359375 -2.79004 2.75977 -3c11.54 -1.16992 21 -3.74023 25.6396 7.32031c6 14.46 2.66016 34.4102 -12.4795 38.8398c-2 0.589844 -16 2.75977 -15.9404 -1.50977
-c0.0498047 -8.04004 0.00976562 -11.6104 0.0205078 -41.6504zM236.111 155.178c0 -2.12988 1.06934 -38.6797 1.08984 -39.1299c0.339844 -9.93945 -25.5801 -5.76953 -25.2305 2.58984c0.0800781 2 1.37012 37.4199 1.10059 39.4307
-c-14.1006 -7.44043 -14.4199 -40.21 6.43945 -48.8008c2.18066 -0.946289 4.58594 -1.4707 7.11328 -1.4707c6.46094 0 12.1299 3.40332 15.2773 8.54102c4.90918 7.75977 6.83984 29.4697 -5.43066 39c-0.114258 -0.0478516 -0.237305 -0.0888672 -0.359375 -0.120117
-v-0.0400391zM223.831 353.178c-9.83008 0 -9.73047 -14.75 -0.0703125 -14.8701c9.66016 -0.119141 10.1006 14.8809 0.0703125 14.9102v-0.0400391zM143.681 249.348c0 -1.7998 0.410156 -2.39941 2.16992 -2.58008c13.6201 -1.38965 12.5107 11 12.1602 13.3604
-c-1.68945 11.2197 -14.3799 10.2002 -14.3496 7.81055c0.0498047 -4.5 -0.0302734 -13.6807 0.0195312 -18.5908zM356.001 242.948l-6.09961 15.8398c-2.16016 -5.48047 -4.16016 -10.5703 -6.23047 -15.8398h12.3301z" />
-    <glyph glyph-name="d-and-d-beyond" unicode="&#xf6ca;" horiz-adv-x="640" 
-d="M313.8 206.5c-9.89941 0 -16 7 -15.7002 7.09961c-4.2998 5.7002 -3 -0.299805 -2.39941 -1.89941c-10.9004 10.2998 -5.2998 25.3994 -5.10059 26c0.700195 1.89941 0 2.2002 -0.599609 1.89941c-1 -0.299805 -2.09961 -1.89941 -2.09961 -1.89941
-c0.799805 9.09961 9.2998 14.7002 9.2998 14.7002l0.200195 -0.200195c1 -1.5 -0.400391 -3.2002 -0.600586 -9c1.60059 2.2998 7.90039 6.59961 11.4004 7.89941c-1.10059 -1.5 -2.10059 -3.59961 -2.10059 -6.59961c3.7002 4.2002 7.5 2.59961 8 2.40039
-c-12.1992 -11.9004 -7 -26.6006 3.2002 -26.6006c5.7002 0 11.5 6.40039 13.9004 10.7002c2.39941 -2.40039 6.39941 -5.5 7.39941 -6.59961c-3.7998 -7.80078 -11 -17.9004 -24.7998 -17.9004zM366.2 227.6c0 -2.89941 -2.90039 -4.09961 -5.40039 -4.5
-c0.700195 1.5 1.7998 5.10059 -0.200195 9c0.700195 -0.0996094 5.60059 -0.5 5.60059 -4.5zM376.5 222.4c-0.400391 -6.5 -6.90039 -11.6006 -14.5996 -10.6006c2 -1.7002 6.59961 -3 9 -1.89941c-3.90039 -6.90039 -23.1006 -7.5 -23.1006 6.39941
-c-2.89941 -2.89941 -2.09961 -7.39941 0 -9.2998c-2.2002 0.700195 -5.7998 3.09961 -6.39941 7.40039c-1.30078 10.0996 4.39941 6.5 -10.4004 18.0996c-4.7998 3.7002 -3 6.59961 -4 8.5c-1.09961 2.2002 -7 4.09961 -4.5 8.5
-c-0.0996094 -1.59961 1 -2.90039 2.59961 -3.5c1.80078 -0.700195 3.2002 -0.200195 4.80078 -1c1.69922 -1.2002 0.899414 -3.90039 2.19922 -5c1.10059 -0.799805 4.2002 0.299805 6.60059 -1.7998c2.59961 -2 8.2002 -6.7002 10.5996 -8.60059
-c4.40039 -3.59961 8.7998 0.400391 7.40039 4.60059c4.5 -2.60059 5 -9.90039 1.2998 -12.5c10.5996 -2.40039 13 10.0996 5 11.3994c7.2998 0.700195 13.5 -4.2998 13.5 -10.6992zM337.1 240.8c4.30078 6.10059 13.3008 15.2998 23.8008 15.7998
-c-5.90039 0.800781 -15.1006 -3.19922 -19.7002 -9c0.899414 3.90039 5.09961 10.1006 10.2002 13c0 0 -2.5 -3.19922 -1.40039 -3.69922c1.59961 -0.800781 5.7998 5.69922 11.2002 5.89941c0 0 -4 -2 -3.2002 -3.39941c0.599609 -0.900391 3.2998 1.2998 8 1.2998
-c5.7998 0 10.9004 -3.5 13.2998 -6.2002c-4 1.09961 -11.5996 -0.799805 -13.7998 -2.7002c-0.299805 0.200195 -11.7998 9 -22 -15.5c-4.7998 3.7998 -4.40039 3.7002 -6.40039 4.5zM579.6 188.9c37.2002 0 60.4004 -19.6006 60.4004 -48.9004
-c0 -28.2002 -17 -48.9004 -59.0996 -48.9004c-20.7002 0 -41.2002 1.30078 -51.6006 2.10059l7.40039 8.2002v77.1992l-7.40039 8.2002c10.2998 0.799805 29.6006 2.10059 50.2998 2.10059zM564.5 113.3c25.4004 -3.2002 46.7998 1.40039 46.7998 27
-c0 22.5 -16.7002 29.6006 -46.7998 26.2998v-53.2998zM301.6 267c0.100586 -0.299805 -2.7998 2.2998 -3.2998 7.5c-0.200195 2.2998 0 19.7998 20 18.9004c11.2002 -0.600586 16.7002 -8.30078 16.7002 -16.5c0 -4.30078 -2.2998 -10.1006 -5.5 -13.8008
-c-2.2002 2.2002 -5.59961 4.60059 -7.7002 7.80078c3.7998 5.59961 2.2002 14.3994 -4.7002 14.3994c-4.2998 0 -7.7998 -4.5 -6.39941 -9.89941c-0.700195 -2.40039 -1 -5.60059 -0.5 -8c-4.90039 2.59961 -6.5 6 -7.5 9c-1.2998 -2.5 -2.10059 -6 -1.10059 -9.40039z
-M301.2 261c0.299805 1.7002 -3.10059 4.59961 -4.7998 5.2002c4.7998 0.200195 7 -0.600586 7 -0.600586c-1.30078 1.7002 -1.60059 4.5 -1 6.7002c2.5 -6.09961 11.6992 -7.09961 13.8994 -12.2002c-0.299805 2.30078 -2.39941 4.7002 -4.7998 6.10059
-c-1.2998 3.2002 -0.299805 9.39941 1.2998 11c-0.5 -8.7998 12 -13.7998 14.6006 -20.2002c-1.40039 5.5 -7.40039 9 -10.1006 12.2002c-1 2.09961 -0.200195 5.7998 0.799805 7.09961c-0.5 -9.7002 15.8008 -14.2998 14.1006 -23.8994
-c0.899414 -0.400391 2.09961 -1.2002 1.89941 -2.60059c1.30078 0.299805 2.60059 1.7002 2.90039 2.7002c0.700195 -4.5 -1.90039 -9 -4.7998 -10.4004c1.59961 4 -2.7002 5.60059 -6.7002 5.10059c0 0 1.59961 2.2998 1 3.39941
-c-0.799805 1.5 -8 0.800781 -11.2002 -0.299805c1.10059 0.100586 3.60059 -0.200195 4.60059 -0.5c-2.10059 -2.89941 -1 -7.09961 1.2998 -4.2002c0 0 -1.10059 -3.5 -0.299805 -4.2998c0.799805 -0.799805 2.59961 -0.200195 2.59961 -0.200195
-c-1.2002 -2.69922 -5.2998 -4.59961 -8.2002 -4.59961c1.10059 0.400391 2.7002 2.2998 3 3.40039c-0.799805 -0.5 -2.7002 -0.700195 -3.5 -0.5c6.10059 3 0 13.1992 -7 8.19922c1 2.7002 3.7002 5.30078 5.7998 6.10059c-1.2998 0.5 -2.69922 0.799805 -4.2998 1.09961
-c1.7998 1.5 6.2998 2.7998 8.5 2.60059c-3.5 0.799805 -9.89941 -0.300781 -12.7998 -3.7002c0.900391 0 3.2998 -0.5 4.2998 -0.799805c-4 -0.700195 -9.39941 -4.40039 -11 -6.2002c0.299805 2.2002 1 4.2002 0.5 5.59961c-0.799805 2 -3 2.7998 -7.7998 1.7998
-c3.2002 3.2002 9.7002 5.10059 10.2002 6.90039zM327.1 253.6c0 0 -0.899414 3 -4.19922 4.30078c0.699219 -2.2002 1.5 -4.30078 4.19922 -4.30078zM366 249.9l0.700195 0.699219c0.5 0.400391 1.59961 0.900391 2.7002 1.40039v-18.4004
-c-1.7002 0.800781 -3.5 1.10059 -5.60059 1.10059c-2.39941 0 -5 -0.5 -5 -0.5c-0.5 0.5 -3.59961 2.89941 -5.09961 3.2002c4.09961 -4.30078 0.5 -9.80078 -3 -7.2002v15.7002c0.700195 0.799805 1.2998 1.7998 2.09961 2.59961
-c1.7002 2.09961 4.60059 3.40039 7.5 3.40039c1.7998 0 3.60059 -0.400391 4.7002 -1.40039zM79.9004 142.1c22 -6.39941 19.3994 -20.0996 19.3994 -25.1992c0 -7.80078 -3.2002 -13.6006 -9.89941 -17.6006c-12.6006 -7.39941 -24.7002 -5.89941 -86.4004 -5.89941
-l8.40039 8.59961v32.2998l-11.4004 14.6006h11.2998v29.5l-8.2998 8.59961h56.0996c12.9004 0 37 -4.40039 37 -25c0 -1.90039 1 -15.2998 -16.1992 -19.9004zM38.5996 169.6v-20.8994c10.6006 0 29.6006 -3.2998 29.6006 8.7998v3
-c0 9.90039 -9.60059 9.09961 -29.6006 9.09961zM38.5996 110.4c20.4004 0 32.9004 -1.90039 32.9004 9.2998h-0.200195v4.5c0 11.0996 -20.5 8.7998 -32.7002 8.7998v-22.5996zM139.8 129.7v-15.4004l60.1006 0.200195l-14.1006 -21.2002h-81.2002l7.40039 8.2002v77.0996
-l-7.40039 8.2002l73.5 0.200195v-0.200195l14.1006 -21h-52.4004v-14.8994h37.2002l-14.0996 -21.2002v-0.200195zM354.5 189.8c73.7998 0 77.5996 -99.2998 -0.299805 -99.2998c-77.2002 0 -73.6006 99.2998 0.299805 99.2998zM354.2 112.3
-c39 0 37 55.2002 0.200195 55.2998c-37.1006 0 -37.6006 -55.2998 -0.200195 -55.2998zM262.9 120.6l0.199219 -19l7.2002 -8.19922h-42.5996l7.7002 8.19922l-0.200195 19.4004l-44.1006 65.7998h44.9004l-6.40039 -7.2002l21 -37.1992h0.300781l20.5 37.1992
-l-6.10059 7.2002h41.7002zM234.5 271.9c-9.09961 6.69922 -9.5 14.0996 -9.59961 14.8994c7.2998 -4.2998 9 -4 39.8994 -4c-5.7998 0 24 3.10059 32.2002 -22.8994c-0.400391 0 -8.40039 -4.80078 -10.4004 -7.90039c5.30078 1.90039 8.90039 1.09961 9 1.09961
-c-8 -5.09961 -9.59961 -14.7998 -9.59961 -20.5c0.900391 2.10059 2.7002 3.7002 2.7002 3.5c-0.600586 -2.5 -1.40039 -7 -0.799805 -12c-8.60059 -7.09961 -16 -8.59961 -26 -8.59961h-35.1006c0.400391 0.0996094 7.7998 4.5 7.90039 4.59961
-c1.89941 1.10059 2.7002 2.2002 2.7002 6.40039v38.7998c0 4.2002 -1.30078 5.2998 -2.90039 6.60059zM256 266.4v-34.6006c4.7002 0 23.0996 -3.39941 23.0996 17.2998c0 20.6006 -18.5 17.3008 -23.0996 17.3008zM484.9 186.8l39.1992 -0.0996094l-7.39941 -8.2998
-v-85.2002h-21.2998c-4 12.7002 -44.8008 45 -48.5 55.5996h-0.300781v-47.3994l7.40039 -8.2002h-39l7.2002 8.2998v76.9004l-7.40039 8.5h31.6006c2.89941 -9.40039 39.7998 -36.5 45.1992 -50.9004h0.300781v42.5zM378.2 282.9
-c32.7002 -1.60059 33.7998 -29.8008 33.7998 -33.6006c0 -6.7002 -3.2998 -34 -36.7002 -34h-0.299805c3.59961 4.2998 3.5 11.9004 -2.2002 16.2998c1.2002 0 19.7002 -3.19922 19.7002 17.3008c0 20.6992 -18.4004 17.2998 -23.0996 17.2998v-4.2998
-c-5.40039 0.799805 -7.40039 -0.300781 -7.5 -0.300781c2.09961 1.80078 4.5 2.60059 6.09961 2.90039c-7.09961 1.59961 -13.5996 -2.40039 -14.5996 -3.5c0.799805 1.7998 2.39941 3.40039 3.5 4.5c-2.30078 -0.799805 -4.30078 -1.90039 -6.10059 -3
-c0 5.2002 0.200195 7.5 -2.89941 9.5c-9.10059 6.59961 -9.5 14.2002 -9.60059 14.9004c7.10059 -4.2002 7.7002 -4 39.9004 -4z" />
-    <glyph glyph-name="dev" unicode="&#xf6cc;" 
-d="M120.12 239.71c3.87012 -2.90039 5.82031 -7.25977 5.83008 -13.0596v-69.6504c0 -5.80957 -1.94043 -10.1602 -5.82031 -13.0596c-3.87988 -2.90039 -7.76953 -4.35059 -11.6494 -4.35059h-17.4502v104.47h17.4395c3.87988 0 7.77051 -1.44922 11.6504 -4.34961z
-M404.1 416c24.2002 0 43.8408 -19.5898 43.9004 -43.7998v-360.4c-0.0595703 -24.21 -19.6904 -43.7998 -43.9004 -43.7998h-360.199c-24.2002 0 -43.8408 19.5898 -43.9004 43.7998v360.4c0.0595703 24.21 19.7002 43.7998 43.9004 43.7998h360.199zM154.2 156.81
-l-0.00976562 70.9307c-0.0107422 18.8193 -11.9307 47.2793 -47.3701 47.2793h-47.3799v-165.46h46.3994c36.75 -0.0595703 48.3604 28.4404 48.3604 47.25zM254.88 245.47l0.00976562 29.5205h-63.1895c-11.1504 -0.280273 -19.9805 -9.54004 -19.71 -20.6904v-125.109
-c0.279297 -11.1602 9.55957 -19.9805 20.7197 -19.6904h62.1797v29.5703h-53.29v38.4102h32.5703v29.5693h-32.5703v38.4199h53.2803zM358.52 130.18l38.4609 144.801h-32.5801l-29.5703 -113.721l-29.71 113.721h-32.5703l38.5303 -144.801
-c10.5898 -24.6299 34.2402 -30.75 47.4395 0z" />
-    <glyph glyph-name="fantasy-flight-games" unicode="&#xf6dc;" horiz-adv-x="512" 
-d="M256 415.14l223.14 -223.14l-223.14 -223.14l-223.14 223.14zM88.3398 192.17c13.8027 -13.6836 27.3086 -27.0547 41.1299 -40.7197c20.1602 19.8799 40.46 39.8994 61.8506 60.9902c12.0596 -12.5801 24.5195 -25.5703 36.54 -38.1104
-c12.0293 11.6895 23.7393 23.0596 35.6895 34.6602c-6.99023 7.4502 -32.1494 32.8301 -35.0898 35.7793c-1.91016 1.9209 -2.29004 3.2207 -0.120117 5.35059c15.5801 15.2295 39.21 17.79 56.9805 5.09961c7.98926 -5.70996 14.2998 -11.6396 48.5098 -43.9502
-c10.8203 11.1504 22.2295 22.8506 33.5 34.6904c0.490234 0.520508 0.0996094 2.63965 -0.580078 3.37988c-0.0898438 0.100586 -37.5195 40.6006 -62.1504 59c-33.5801 25.0801 -78.3193 23.0605 -119.77 -18.6895c-84.5703 -85.1807 -94.5303 -95.4805 -96.4902 -97.4805z
-M323.16 90.5703c18.8203 18.79 80.3301 80.6396 100.5 101.5c-13.7305 13.4492 -27.1797 26.6299 -40.8604 40.0293c-20.0098 -19.7393 -40.2402 -39.6895 -61.25 -60.4199c-12.3301 12.8301 -24.8799 25.8799 -37.25 38.75
-c-1.25977 -0.689453 -1.64941 -0.80957 -1.91016 -1.06934c-10.7295 -10.7705 -21.4199 -21.5801 -32.21 -32.29c-2.22949 -2.20996 -0.519531 -3.35059 0.800781 -4.69043c10.5791 -10.7402 21.1797 -21.4502 31.7695 -32.1797
-c3.5498 -3.60059 3.54004 -3.85059 -0.139648 -7.24023c-16.8008 -15.4697 -40.8408 -16.54 -59.3203 -1.7998c-7.62012 6.08008 -11.6602 10.1797 -44.6797 42.0898c-11.5801 -11.8896 -23.3203 -23.9404 -35.3701 -36.3096
-c33.5498 -34.7607 50.8496 -53.3408 72.9297 -66.8408c28.9004 -17.6699 71.5 -14.96 106.99 20.4707zM256 448l256 -256l-256 -256l-256 256zM16 192l240 -240l240 240l-240 240z" />
-    <glyph glyph-name="penny-arcade" unicode="&#xf704;" horiz-adv-x="640" 
-d="M421.91 283.73c7.33984 -16.2705 2.29004 -5.07031 24.6299 -54.6807l-39.7305 -10.6094c13.7002 59.2295 10.6104 45.8398 15.1006 65.29zM215.82 232.62c32.5 8.99023 41.9492 -37.6396 -0.350586 -47.4297c-14.2002 -3.77051 -6.64941 -1.75 -34.8193 -9.34082
-l-4.45996 46.1904c28.3193 7.5498 19.4395 5.17969 39.6299 10.5801zM541.98 258.81c75.7998 -37.9092 98 -76.3193 97.9893 -104.47c2.10059 -78.8496 -183.3 -130.33 -399.89 -84.8301c0.540039 -13 -8.00977 -24.6494 -20.5801 -28.0195
-c-125.54 -33.54 -117.35 -31.75 -122.53 -31.7598c-14.3701 -0.0107422 -26.4102 10.8896 -27.7998 25.1992l-4.2998 44.4805c-0.0830078 0.875 -0.138672 1.72461 -0.138672 2.62109c0 11.877 7.43945 22.0293 17.9082 26.0488l-1.73926 17.8799
-c-50.2305 28.2598 -80.9004 61.8701 -80.9004 95.3701c0 72.9199 144.26 113.4 309.41 98.3701c3.02734 8.49316 10.0977 15.0625 18.8896 17.4102c96.8701 25.9092 65.3203 17.4795 135.59 36.2295c13.1602 3.50977 26.9307 -2.95996 32.6201 -15.3301zM255.14 149.7
-c20.7529 4.80176 38.666 16.9805 50.75 33.7197c21.6006 32.5898 14.1104 105.561 -42.5498 104.43c-16.04 -0.229492 -8.07031 0.890625 -186.22 -46.6494l4.34961 -44.5l20.1201 5.38965l11.1104 -114.64l-20.0205 -5.35059l4.30078 -44.5195l115.31 30.7803
-l-4.50977 44.5098l-20.5303 -5.50977l-2.45996 23.5498l48.4404 12.9102zM454.32 133.08l108.55 28.96l-4.2998 44.4795l-20.79 -5.55957l-66.6699 145.47c-70.5801 -18.8301 -42.2305 -11.25 -135.591 -36.2393l4.2002 -44.4805l17.1504 4.55957l-33.0801 -126.47
-l-20.9902 -5.58984l4.45996 -44.4297l112.851 30.0693l-4.05078 39.54l-19.1992 -5.12012l4.09961 17.54l57.7598 15.4209l6.61035 -14.6807l-14.9004 -3.97949z" />
-    <glyph glyph-name="wizards-of-the-coast" unicode="&#xf730;" horiz-adv-x="640" 
-d="M219.19 102.31c7.44922 5.80078 16.2598 0.680664 21.7295 -7.0791c7.08984 -10.1201 6.24023 -18.1602 -0.259766 -23.04c-7.62012 -6.24023 -17.0898 0.129883 -21.7305 6.5498c-10.8096 15.1299 -1.63965 22.1895 0.260742 23.5693zM555.94 26.3701
-c1.30957 4.4502 3.92969 10.21 3.93945 20.1699c0 34.04 -41.6299 64.4102 -100.03 68.0801c-53.1592 3.39941 -120.46 -15.4502 -184.35 -73.8506l-0.790039 0.260742c1.58008 10.4697 -0.780273 16.2295 -3.40039 21.21l0.260742 1.56934
-c64.4199 51.3203 134.069 66.5107 188.8 60.4902c61.0098 -6.54004 104.479 -39.54 101.34 -78.0303c-0.790039 -9.68945 -2.88965 -15.71 -4.97949 -19.8994c-1.34082 -1.66992 -1.13086 -1.7002 -0.790039 0zM392.28 207.58
-c-0.530273 7.07031 3.13965 11.7803 6.7998 15.46c3.66992 3.91992 14.9297 10.4697 14.9297 10.4697s-1.2998 -26.4502 -2.08984 -29.8496c-1.04004 -3.92969 -4.96973 -6.81055 -10.4697 -6.5498c-4.98047 0.259766 -8.37988 3.39941 -9.16992 10.4697zM342.26 358.68
-c147.17 0 275.48 -86.6797 291.21 -196.939c0 0 -3.66992 -1.31055 -9.68945 -4.4502c0 -0.259766 1.0498 -10.7402 0.259766 -16.5c-0.259766 -1.83008 -1.0498 -1.0498 -1.0498 0c-0.270508 5.24023 -1.57031 11.5303 -2.36035 14.9297
-c-4.70996 -2.60938 -10.21 -6.54004 -15.9697 -11.7793c0 0 4.70996 -10.21 4.70996 -25.9209c0 -21.21 -8.37988 -32.9893 -16.5 -37.9697l-0.259766 0.520508c9.16992 9.16992 12.5693 21.4795 12.5693 31.9492c0 13.8701 -6.80957 33.25 -14.3994 41.3701
-c0 0 4.4502 -8.12012 6.80957 -17.8096c0 0 -21.21 -21.4697 -26.9697 -62.3203c0 0 -3.66992 9.16992 -10.7402 16.2402c0 0 12.0498 -15.4502 12.0498 -38.2305c0 -19.3799 -12.8398 -37.4395 -27.5 -48.1797c-0.989258 0 -0.790039 -0.169922 -0.790039 0.790039
-c15.71 12.8301 22.2607 28.0205 22.2607 46.3506c0 38.2295 -49.2305 80.3896 -130.15 80.3896c-96.1104 0 -181.74 -58.1299 -236.99 -128.05l-1.0498 0.259766c-40.3203 120.979 -135.64 185.66 -196.13 202.16c-2.09961 0.519531 -1.83984 0.790039 -0.790039 1.30957
-c12.3096 14.4004 136.96 151.88 341.47 151.88zM243.02 69.0596c16.8408 14.5908 4.99023 30.7705 4.71094 31.1602c-4.08008 5.99023 -16.3105 16.8506 -31.1602 5.5c-10.9502 -8.37988 -11.6406 -22.8896 -4.19043 -32.4697
-c6.44043 -8.26953 19.5801 -13.1797 30.6396 -4.19043zM245.11 205.49l1.83008 -8.11035l-3.6709 4.4502l-14.1396 -26.71l24.6201 -28.7998l12.5703 6.01953l-11.7803 70.96zM263.7 87.9102c3.41016 2.35938 7.33984 4.97949 9.67969 6.57031l-0.259766 0.259766
-c-1.56055 -0.780273 -3.11035 -1.0498 -12.5703 15.9697v0.259766c6.87012 5.16016 8.45996 4.89062 11.5205 5.5l0.259766 0.260742c-1.31055 3.66992 -1.31055 3.66992 -1.83008 5.5h-0.259766c-3.95996 -3.31055 -1.4707 -1.58008 -11.5205 -7.86035h-0.259766
-c-1.83008 3.13965 -4.19043 7.33008 -5.75977 9.68945v1.31055c4.4502 3.91992 10.2197 6.7998 12.3096 7.58984c2.87988 1.0498 4.19043 0.520508 5.24023 0.259766l0.259766 0.520508c-1.30957 1.83008 -2.08984 2.87988 -3.39941 4.70996l-0.520508 0.259766
-c-9.9502 -5.5 -17.54 -9.9502 -25.3994 -15.71l0.259766 -0.519531c1.30957 0.259766 3.13965 -0.260742 4.4502 -2.62012c15.04 -25.0801 19.5898 -27.5908 17.54 -31.6904zM318.96 120.38v0.25c-1.99023 0 -2.34961 -1.37012 -14.6602 30.6396v0.260742
-c4.95996 1.85938 8.78027 4.37988 12.3105 2.62012l0.259766 0.519531l-3.13965 4.98047l-0.520508 0.259766c-2.22949 -0.929688 -20.4697 -8.00977 -27.7598 -12.5703l-0.259766 -0.519531l1.0498 -5.76074h0.519531c1.0498 3.68066 9.7998 7.33008 9.9502 7.33008
-l0.259766 -0.259766c12.9404 -29.7598 13.0703 -29.8799 11.7803 -32.4697l0.259766 -0.259766c3.93066 2.09961 6.81055 3.40918 9.9502 4.97949zM363.73 136.88c-0.780273 0.520508 -2.09082 1.31055 -2.63086 3.92969c-1.56934 6.02051 -4.70996 20.1709 -6.2793 26.4502
-c-0.530273 1.57031 -0.530273 3.14062 0.519531 4.4502l-0.259766 0.259766c-3.41016 -0.529297 -6.29004 -1.30957 -10.7402 -2.35938v-0.260742c1.57031 -0.529297 2.10059 -2.09961 2.62012 -3.92969l2.62012 -9.42969l-0.259766 -0.259766
-c-3.40039 -1.05078 -8.90039 -2.62012 -12.8301 -3.93066h-0.259766c-0.780273 2.10059 -1.83008 5.75977 -3.14062 9.69043l0.259766 4.70996l-0.259766 0.259766c-4.71973 -1.30957 -7.59961 -2.34961 -10.7402 -3.40039v-0.519531
-c1.05078 0 2.10059 -1.30957 2.62012 -3.13965c1.0498 -3.40039 8.12012 -24.0908 9.16992 -27.2305c0.790039 -2.09961 0.790039 -3.66992 -0.259766 -4.97949l0.259766 -0.260742c3.14062 1.31055 6.54004 2.87988 10.21 3.93066v0.519531
-c-1.0498 0.259766 -2.08984 0.780273 -2.87988 3.13965c-1.0498 3.93066 -3.39941 11.2607 -4.18945 13.8809l0.259766 0.259766c3.92969 1.30957 9.42969 3.13965 12.8301 3.92969l0.259766 -0.259766c0.530273 -2.09961 2.62012 -10.2197 3.66992 -13.6201
-l-0.519531 -4.4502l0.259766 -0.259766c4.4502 1.57031 5.5 1.83008 9.69043 2.87988zM395.94 143.69c0.529297 1.8291 1.0498 3.65918 1.5791 6.04004h-0.259766c-2.0293 -4.06055 -15.0898 -5.09082 -16.2402 -4.71094l-0.259766 0.260742
-c-0.519531 3.13965 -1.83008 10.4795 -2.08984 12.5693l0.259766 0.260742c8.06055 0.899414 5.40039 1.0293 10.21 0h0.260742c0 3.40918 0.259766 3.66992 0.259766 5.23926h-0.259766c-5.98047 -2.2998 -1.2207 -0.679688 -10.7402 -2.35938l-0.259766 0.259766
-c-0.520508 3.40039 -1.31055 8.37988 -1.57031 9.9502l0.259766 0.259766c12.9004 2.41016 15.1006 0.349609 16.2402 -0.790039l0.259766 0.259766c-0.780273 2.36035 -1.0498 3.14062 -1.57031 5.5l-0.259766 0.260742
-c-4.71973 -0.260742 -15.71 -1.05078 -24.8799 -2.62012l-0.790039 -0.520508c1.83008 -0.790039 2.36035 -1.83984 2.62012 -3.66992c1.58008 -7.59961 3.41016 -18.3301 4.98047 -26.1895l-0.790039 -4.19043l0.259766 -0.259766
-c8.37988 1.83008 17.8096 3.66992 22.5195 4.18945zM406.68 188.2c3.14062 1.56934 7.33008 5.5 7.33008 5.50977c1.95996 -4.58008 0.970703 -2.70996 4.19043 -7.86035c10.1494 -0.459961 8.60938 0.0205078 20.4297 -1.0498l0.790039 4.70996
-s-4.18945 0 -5.75977 1.83008c-1.0498 1.31055 -1.31055 3.14062 -1.57031 5.5c0 2.36035 0.270508 16.5 0.790039 20.6904c0.259766 4.18945 2.08984 20.4199 2.08984 23.04c0.260742 2.62012 1.0498 8.91016 0.260742 12.0498
-c-4.82031 19.2803 -24.4307 17.8096 -50.0205 16.2402l-5.24023 -16.2402l2.62012 -2.87988c16.5498 16.5498 37.6201 4.56934 29.5898 -5.75977c-5.18945 -6.9209 -19.7393 -8.90039 -28.54 -17.0205c-6.47949 -6.49023 -12.2393 -20.9004 -5.5 -31.6904
-c6.12988 -11.0391 17.29 -9.96973 17.54 -9.94922c2.87988 0 6.55078 0.519531 11 2.87988zM443.86 166.99c0 1.83984 0.269531 4.18945 0.269531 5.25l-0.259766 0.519531c-14.3604 8.98047 -26.8604 0.919922 -28.7998 -9.9502
-c-2.83984 -16.0898 15.3594 -25.46 25.6602 -18.5898l0.519531 0.520508c0 0.259766 1.30957 4.4502 1.83008 6.2793l-0.259766 0.260742c-6.39062 -9.58008 -23.3203 -6.87012 -20.6904 10.21c1.91016 12.6602 15.3799 16.0801 21.7305 5.5zM449.63 254.72
-c0 0 4.96973 -0.790039 4.99023 -3.66016c0 -2.08984 -4.98047 -55.25 -4.98047 -55.25c-0.109375 -1.48926 -0.339844 -6.80957 -7.58984 -6.80957l-0.790039 -4.70996c18.3906 -2.83008 19.3701 -3.04004 36.9199 -7.33008l0.520508 4.70996
-c-13.0498 3.91992 -9.74023 7.37012 -4.4502 46.0898c1.09961 0.870117 8.62012 7.14062 20.6904 0.790039l11.2598 11.2598s-9.69043 8.90039 -14.9307 7.33008c-5.23926 -1.30957 -15.4492 -10.7393 -15.4492 -10.7393l1.56934 17.54
-c-8.10938 4.0498 -27.0693 7.3291 -27.7598 7.3291v-6.5498zM460.62 140.28c9.42969 -2.35059 16.2402 2.62012 18.8496 11.5195c2.08984 7.60059 -1.56934 16.7598 -10.7393 19.3799c-6.54004 2.10059 -15.7109 -0.779297 -18.8506 -10.21
-c-3.39941 -9.68945 2.62012 -18.5996 10.7402 -20.6895zM502.78 130.59c-0.780273 1.31055 -1.04004 2.10059 -0.799805 3.91016c1.22949 27.0098 1.5293 24.6602 1.0498 25.1396c-2.08984 0.790039 -5.5 2.09082 -7.58984 2.87988l-0.520508 -0.259766v-2.08984
-c-3.92969 -6.01953 -10.4795 -15.4502 -13.8799 -20.1602l-2.62012 -1.83008v-0.259766c2.08984 -0.259766 4.70996 -1.30957 6.02051 -1.57031v0.260742l0.790039 3.39941c0.789062 1.0498 2.35938 3.66992 3.66992 5.5c0.40918 0 2.25 -0.549805 7.06934 -2.35938
-c0.330078 -0.320312 0.330078 0.649414 -0.259766 -7.59082l-1.57031 -1.8291v-0.260742c1.57031 -0.519531 6.28027 -2.35938 8.64062 -2.87988zM498.07 220.41c-13.2207 -21.1504 -9.39062 -51.6006 9.66992 -52.9004c5.75977 -0.259766 9.42969 3.93066 9.68945 3.66992
-l-2.08984 -6.80957c8.91016 -4.21973 11.4404 -5.29004 17.8105 -8.63965l1.83008 4.44922c-6.14062 3.51074 -1.29004 11.25 24.6191 84.3203c-6.13965 6.45996 -10.2998 10.0596 -22.5195 20.4297l-1.83008 -3.66992c1.62988 -1.35938 6.79004 -5.00977 4.4502 -11.2598
-l-7.58984 -26.1904c-3.28027 12.79 -22.79 14.8701 -34.04 -3.39941zM527.4 141.07l2.35938 3.39941v0.520508c-3.41016 6.83008 -11.9395 7.41992 -14.6602 2.35938c-1.83984 -3.40918 0.260742 -7.06934 1.83008 -9.68945
-c1.57031 -2.87988 3.14062 -6.29004 2.08984 -8.37988c-2.31934 -4.62988 -8.94922 -0.680664 -8.37988 4.97949l-0.790039 -0.259766c-2.09961 -4.7998 -1.83008 -4.00977 -1.83008 -4.70996c3.05078 -6.09961 12.8105 -7.12988 15.4502 -0.790039
-c1.57031 3.15039 0.520508 6.80957 -1.0498 9.42969c-1.83008 3.40039 -4.18945 6.29004 -2.87988 8.37988c1.51953 2.65039 7.86035 0.470703 7.86035 -5.23926zM548.61 127.71l1.30957 3.91016l-0.259766 0.259766c-2.36035 2.08984 -8.64062 6.54004 -12.3105 8.90039
-h-0.259766l-3.13965 -3.40039v-0.259766c4.7998 -0.320312 3.37988 0.149414 6.01953 -1.83008v-0.259766c-2.62012 -4.9707 -6.0293 -11.2607 -9.16992 -17.0205l-2.08984 -1.30957l-0.259766 -0.259766l5.75977 -4.4502l0.259766 0.259766
-c-0.259766 0.530273 -0.519531 1.57031 0.790039 3.92969c2.87988 5.77051 6.28027 12.0508 8.64062 16.2402h0.259766c3.54004 -2.57031 2.49023 -1.43945 4.4502 -4.70996zM575.84 171.97l7.85059 10.46s-9.4209 18.8604 -23.04 16.5
-c-20.8408 -4.0293 -3.15039 -34.21 -2.09082 -38.2295c4.33008 -15.1299 -16.3193 -12.5605 -13.3496 5.24023l-2.87988 2.08984l-4.98047 -14.4004s11.7803 -11.2598 20.1602 -10.4697c8.12012 0.790039 13.8799 6.29004 13.8799 16.5
-c0 8.37988 -7.85938 22.7803 -7.85938 27.7598c0 6.86035 12.2695 4.75977 11.5195 -4.97949c-0.259766 -2.61035 -1.2998 -5.23047 -2.08984 -7.59082zM611.46 182.18c0.780273 -2.35938 1.57031 -1.83008 0.790039 0.270508
-c-32.4697 98.9795 -132.76 138.78 -199.8 139.83c-50.54 0.779297 -89.5605 -11.79 -131.98 -35.8799l20.6904 61.0098l-33.7803 -65.7305l-8.89941 20.9502c3.13965 1.04004 6.2793 2.08984 6.2793 2.08984l-2.62012 8.64062s-3.13965 -0.780273 -7.33008 -2.09082
-l-12.0498 28.2803l13.6201 -61.0098c-5.12012 2.55957 -19.0996 6.83008 -6.5498 19.3799l-2.62012 11c-6.97949 -2.21973 -13.2295 -3.62012 -32.21 -9.68945l-23.0801 11.5l59.1797 -42.6807l-4.70996 -2.08984l-17.2793 13.8799
-c2.23926 -5.13965 3.2998 -12.1699 4.70996 -19.6396l-28.54 -13.0898l-30.1104 36.1396l-17.2803 -9.16992l13.6201 -42.4199l-11.2598 -4.98047l94.2695 29.3301l-3.66992 -10.4697l-0.519531 3.13965l-13.0898 -3.39941l4.97949 -24.6201l-4.4502 -12.3105
-l-25.6592 30.6406l-39.8008 -10.21l18.8506 -58.9199c-60.1299 62.3994 -67.7002 66.3994 -61.7998 75.6797c2.09961 2.87988 7.85938 7.07031 7.85938 7.07031l-4.18945 7.06934c-26.7803 -18.3496 -27.8398 -19.1494 -58.4004 -42.6797l4.98047 -6.01953
-s8.12012 5.75977 13.6201 5.5c7.81934 -0.350586 1.76953 2.93945 113.659 -98.7305l11.7803 8.37988l-27.7598 93.4805l35.8799 -42.1602l-4.70996 -13.8799l41.9004 88.5098c34.6699 -80.5098 29.1494 -66.9502 32.9893 -78.8203l-33.5195 67.2998l-2.36035 -4.44922
-c1.2998 -1.30078 -0.919922 3.05957 22.7803 -59.4404c3.22949 -8.88965 -1.10059 -9.88965 -5.5 -12.8301l2.36035 -4.70996c15.3594 6.79004 22.9395 9.54004 39.0195 14.4004l-1.0498 4.97949c-8.89062 -1.33008 -10.1006 0.169922 -12.0498 4.4502
-c-1.05078 2.09961 -14.1504 40.0703 -20.4307 58.6602l-10.21 4.97949l-2.35938 8.12012l61.54 -36.6602l-13.0908 -43.21c12.1904 3.26074 27.0303 6.74023 49.4902 9.9502l-0.259766 26.71l-4.98047 -1.0498c-0.669922 -13.7998 -6.0293 -22.0801 -19.6396 -22.7803
-l22.2598 80.3906c-27.6201 -0.450195 -59.2695 -7.19043 -66.7695 -8.90039l3.92969 -16.5l-25.1396 19.6396l91.3896 20.6904l-85.6299 -9.16992c38.4902 22.5195 79.3398 39.0195 132.76 37.9697c131.46 -2.08984 180.95 -99.2402 191.95 -129.62zM203.48 295.57
-l2.35938 -8.64062c7.82031 2.61035 10.8604 2.36035 11.2598 2.36035l-9.42969 7.58984c-2.36035 -0.790039 -4.18945 -1.30957 -4.18945 -1.30957zM347.24 257.07l-11.5303 -37.71l-21.7295 17.0195c6.7998 25.5 31.6895 21.29 33.2598 20.6904zM318.43 380.93
-c224.94 0 321.83 -143.76 321.57 -227.55c0 -11 -0.269531 -17.5498 -0.790039 -19.6396c-0.259766 -2.10059 -1.0498 -0.790039 -1.0498 0.519531v9.9502c0 106.58 -121.51 223.37 -301.67 223.37c-61.2705 0 -103.69 -12.0498 -110.24 -13.8799l-1.57031 0.259766
-c-6.80957 7.58984 -12.8301 9.69043 -21.21 11.7803v0.790039c8.91016 2.34961 56.5605 14.3994 114.96 14.3994zM529.49 211.25c-8.61035 -34.4502 -13.6504 -35.3496 -18.3301 -35.3604c-7.33008 0 -6.81055 9.43066 -6.02051 14.9307
-c0.879883 9.72949 7.40039 34.6494 17.0205 33.5195c7.33008 -0.780273 8.63965 -7.33008 7.33008 -13.0898zM467.96 168.3c3.40039 -0.780273 7.84961 -4.4502 5.23047 -14.3896c-2.88086 -11.2598 -8.11035 -11.79 -11.7803 -10.7402
-c-5.5 1.31055 -7.85059 7.84961 -6.02051 14.6602c3.14062 11.2598 9.9502 11.2598 12.5703 10.4697zM491 147.35v0.270508c1.0498 1.83008 5.5 8.63965 6.5498 9.9502c-0.269531 -3.66992 -0.790039 -10.2207 -0.790039 -12.0508
-c-2.62012 0.780273 -3.92969 1.31055 -5.75977 1.83008z" />
-    <glyph glyph-name="think-peaks" unicode="&#xf731;" horiz-adv-x="576" 
-d="M465.4 38.5996l-206.2 353.801l-204.2 -352.101l-32 0.299805l236.2 407.4l206.2 -353.9l55.0996 95l32 -0.299805zM110.1 82.7002l149.601 257.899l235.8 -404.6l-32.5 0.0996094l-203.4 349.101l-117.399 -202.5h-32.1006z" />
-    <glyph glyph-name="reacteurope" unicode="&#xf75d;" horiz-adv-x="576" 
-d="M250.6 236.26l2 6.7998l-5.69922 4.30078l7.19922 0.0996094l2.30078 6.7998l2.2998 -6.7998l7.09961 -0.0996094l-5.7002 -4.30078l2.10059 -6.7998l-5.7998 4.10059zM314.3 236.26l1.90039 6.7998l-5.7002 4.30078l7.2002 0.0996094l2.2998 6.7998l2.2998 -6.7998
-l7.2002 -0.0996094l-5.7002 -4.30078l2.10059 -6.7998l-5.80078 4.10059zM223 185.76c4.90039 0 3.7998 -3.89941 3.7998 -13.7598c0 -10.2998 -6.7002 -14.0996 -16.7998 -14.0996h-0.200195c-10.0996 0 -16.7998 3.69922 -16.7998 14.0996v40.0596
-c0 9.90039 6.7002 14.1006 16.7998 14.1006h0.200195c10.0996 0 16.7998 -4.2002 16.7998 -14.1006c0 -8.39941 0.900391 -12.1992 -3.7998 -12.2998h-3.40039c-4.5 0 -3.7998 3.2998 -3.7998 10.5c0 4.7002 -2.2998 6.10059 -5.7998 6.10059
-s-5.7998 -1.40039 -5.7998 -6.10059v-36.5996c0 -4.7002 2.2998 -6.10059 5.7998 -6.10059s5.7998 1.40039 5.7998 6.10059c0 8.09961 -1 12.0996 3.7998 12.0996h3.40039zM142.3 168.36c2.5 0 3.7998 -1.30078 3.7998 -3.80078v-2.09961
-c0 -2.5 -1.2998 -3.7998 -3.7998 -3.7998h-21.8994c-2.5 0 -3.80078 1.2998 -3.80078 3.7998v59.0996c0 2.5 1.30078 3.90039 3.7002 3.80078h21.7002c2.5 0 3.7998 -1.30078 3.7998 -3.80078v-2.09961c0 -2.5 -1.2998 -3.7998 -3.7998 -3.7998h-14.4004v-18.2998h11.4004
-c2.5 0 3.7998 -1.30078 3.7998 -3.80078v-2.09961c0 -2.5 -1.2998 -3.7998 -3.7998 -3.7998h-11.4004v-19.2998h14.7002zM100.3 186.86l8.10059 -23.9004c0.799805 -2.59961 -0.400391 -4.40039 -3.2002 -4.40039h-3.2998
-c-0.0996094 -0.00683594 -0.196289 -0.0078125 -0.297852 -0.0078125c-1.95703 0 -3.59473 1.37402 -4.00293 3.20801l-7.39941 23.5h-5.60059v-22.8994c0 -2.5 -1.2998 -3.80078 -3.7998 -3.80078h-3.39941c-2.5 0 -3.80078 1.30078 -3.80078 3.80078v59.0996
-c0 2.5 1.30078 3.7998 3.80078 3.7998h13.3994c10.1006 0 16.7998 -4 16.7998 -14.0996v-11.9004c0 -6.39941 -2.69922 -10.3994 -7.2998 -12.3994zM96.5 200.86v8.69922c0 4.80078 -2.5 6.10059 -6.09961 6.10059h-5.80078v-20.9004h5.80078
-c3.59961 0 6.09961 1.2998 6.09961 6.10059zM176 222l11.2002 -59.2002c0.5 -2.7002 -0.799805 -4.09961 -3.40039 -4.09961h-3.5c-0.12207 -0.0117188 -0.241211 -0.015625 -0.366211 -0.015625c-1.98926 0 -3.61719 1.55566 -3.7334 3.51562l-1.7998 11.2998h-12.2002
-l-1.7998 -11.2998c-0.117188 -1.95996 -1.74121 -3.51855 -3.73047 -3.51855c-0.125 0 -0.248047 0.00683594 -0.370117 0.0185547h-3c-2.5 0 -3.89941 1.39941 -3.39941 4.09961l11 59.2002c0.137695 1.90625 1.72559 3.41504 3.66602 3.41504
-c0.112305 0 0.223633 -0.00488281 0.333984 -0.0146484h6.89941c0.132812 0.0136719 0.264648 0.0166016 0.401367 0.0166016c1.97168 0 3.59766 -1.49805 3.79883 -3.41699zM163.7 182.7h9.39941l-4.69922 29.7002zM253 162.5c0 -2.45996 -1.2998 -3.83984 -3.7998 -3.7998
-h-3.40039c-2.5 0 -3.7998 1.2998 -3.7998 3.7998v53.2002h-7.2998c-2.5 0 -3.7998 1.2998 -3.7998 3.7998v2.09961c0 2.5 1.2998 3.80078 3.7998 3.80078h25.7998c2.5 0 3.7998 -1.30078 3.7998 -3.80078v-2.09961c0 -2.5 -1.2998 -3.7998 -3.7998 -3.7998h-7.5v-53.2002z
-M501 163.3c0.0546875 0.00488281 0.108398 -0.03125 0.164062 -0.03125c1.01562 0 1.84082 -0.824219 1.84082 -1.83984c0 -0.0429688 -0.00195312 -0.0859375 -0.00488281 -0.128906v-0.799805c0.00195312 -0.0332031 0.00488281 -0.0664062 0.00488281 -0.100586
-c0 -0.999023 -0.811523 -1.80957 -1.81055 -1.80957c-0.0654297 0 -0.130859 0.00292969 -0.194336 0.00976562h-22.5c-0.0634766 -0.00683594 -0.126953 -0.0117188 -0.192383 -0.0117188c-0.999023 0 -1.81055 0.811523 -1.81055 1.81055
-c0 0.0341797 0.000976562 0.0683594 0.00292969 0.101562v63c-0.0107422 0.0751953 -0.0166016 0.150391 -0.0166016 0.229492c0 0.893555 0.725586 1.61914 1.61914 1.61914c0.137695 0 0.270508 -0.0166016 0.397461 -0.0488281h22.2002
-c0.0771484 0.0107422 0.155273 0.0175781 0.236328 0.0175781c0.976562 0 1.76953 -0.792969 1.76953 -1.76953c0 -0.0498047 -0.00195312 -0.0996094 -0.00585938 -0.147461v-0.800781c0.00195312 -0.0380859 0.00488281 -0.0742188 0.00488281 -0.113281
-c0 -1.04297 -0.84668 -1.88965 -1.88965 -1.88965c-0.0390625 0 -0.0771484 0.000976562 -0.115234 0.00292969h-19.1006v-25.7998h16.1006c0.0380859 0.00292969 0.0742188 0.00488281 0.113281 0.00488281c1.04297 0 1.88965 -0.84668 1.88965 -1.88965
-c0 -0.0390625 -0.000976562 -0.0771484 -0.00292969 -0.115234v-0.799805c0.00195312 -0.0380859 0.00488281 -0.0751953 0.00488281 -0.113281c0 -1.04297 -0.84668 -1.89062 -1.88965 -1.89062c-0.0390625 0 -0.0771484 0.00195312 -0.115234 0.00390625h-16.1006
-v-26.7002h19.4004zM407.9 226.2c10.0996 0 15.2998 -4.74023 15.2998 -14.1006v-40.0996c0 -9.2998 -5.2002 -14.0996 -15.2998 -14.0996h-0.800781c-10.0996 0 -15.2998 4.7998 -15.2998 14.0996v40.0996c0 9.40039 5.2002 14.1006 15.2998 14.1006h0.800781zM418.1 173.8
-v36.6006c0 7.89941 -3 11.0996 -10.5 11.0996s-10.5 -3.2002 -10.5 -11.0996v-36.6006c0 -8 3 -11.0996 10.5 -11.0996s10.4004 3.09961 10.5 11.0996zM371.6 188.3l10.6006 -27.2998c0.5 -1.2998 -0.100586 -2.2998 -1.5 -2.2998h-1.5
-c-0.0429688 -0.00292969 -0.0839844 -0.00488281 -0.12793 -0.00488281c-0.993164 0 -1.8418 0.625977 -2.17188 1.50488l-10.4004 27.2002h-11.5996v-26.9004c0.00488281 -0.0556641 0.00976562 -0.111328 0.00976562 -0.167969
-c0 -0.960938 -0.780273 -1.74023 -1.74023 -1.74023c-0.0576172 0 -0.114258 0.00292969 -0.169922 0.0078125h-1.2002c-0.0634766 -0.00683594 -0.126953 -0.0117188 -0.192383 -0.0117188c-0.999023 0 -1.81055 0.811523 -1.81055 1.81055
-c0 0.0341797 0.000976562 0.0683594 0.00292969 0.101562v63c-0.00195312 0.0332031 -0.00488281 0.0664062 -0.00488281 0.100586c0 0.999023 0.811523 1.80957 1.81055 1.80957c0.0654297 0 0.130859 -0.00292969 0.194336 -0.00976562h13.7002
-c10.0996 0 15.2998 -4.7002 15.2998 -14.1006v-9.7002c0 -7.19922 -3.09961 -11.6992 -9.2002 -13.2998zM365.2 192.2c7.5 0 10.5 3.16016 10.5 11v6.39941c0 8 -3 11.1006 -10.5 11.1006h-10.2002v-28.5h10.2002zM451.1 225.3c10.1006 0 15.3008 -4.7002 15.3008 -14.0996
-v-10.5c0 -9.2998 -5.2002 -14.1006 -15.3008 -14.1006h-10.5996v-26.0996c0.00585938 -0.0556641 0.00976562 -0.111328 0.00976562 -0.167969c0 -0.960938 -0.779297 -1.74023 -1.74023 -1.74023c-0.0566406 0 -0.113281 0.00292969 -0.169922 0.0078125h-1.19922
-c-0.0644531 -0.00683594 -0.12793 -0.0117188 -0.193359 -0.0117188c-0.999023 0 -1.80957 0.811523 -1.80957 1.81055c0 0.0341797 0.000976562 0.0683594 0.00292969 0.101562v63c-0.0107422 0.0751953 -0.0175781 0.150391 -0.0175781 0.229492
-c0 0.893555 0.726562 1.61914 1.62012 1.61914c0.136719 0 0.270508 -0.0166016 0.397461 -0.0488281h13.6992zM461.3 202.5v7.09961c0 7.90039 -3 11.1006 -10.5 11h-10.2002v-29.1992h10.2002c7.5 0 10.5 3.19922 10.5 11.0996zM259.5 140l7.09961 -0.0996094
-l-5.69922 -4.30078l2.09961 -6.7998l-5.7998 4.10059l-5.7998 -4.10059l2.09961 6.7998l-5.7002 4.30078l7.10059 0.0996094l2.2998 6.7998zM487.1 276.1c122.301 -46.0996 118.401 -132.54 -33.8984 -176.34c13.3994 -49.7002 18.0996 -101.899 0.0996094 -133.8
-c-3.7998 -6.7002 -16.7998 -27.7002 -47.5996 -27.7002c-41.5 0 -110.2 41.6006 -182.101 142c-42.7998 3.5 -72.1992 10.1006 -84.5996 13c-20.5 -82.2998 -6.7998 -125.3 15.5 -137.899c1.2002 -0.700195 38.4004 -27.2002 120.9 52.7998
-c3.39941 -3.5 6.79883 -6.90039 10.1982 -10.2002c-63.0996 -61.2002 -110.199 -71 -138.199 -55.2002c-32.4004 18.2998 -42.8008 72 -22.3008 153.9c-18.8994 5 -121.6 33.2002 -122.1 92.7998c-0.400391 40.9004 49.7998 74.7002 120.3 95
-c-13.3994 49.5996 -18.2002 101.8 -0.0996094 133.8c3.7998 6.74023 16.7998 27.7402 47.5996 27.7402c41.6006 0 110.3 -41.6396 182.2 -142.14c28.7607 -2.29492 57.1504 -6.70801 84.5996 -13c20.5 82 6.90039 125.1 -15.5 137.8
-c-1.2998 0.700195 -38.3994 27.2002 -120.899 -52.7998c-3.40039 3.5 -6.80078 6.89941 -10.2002 10.1992c52.2998 50.9404 103.7 74.6006 138.2 55.2402c33.8994 -19.2002 41.8994 -75.8994 22.2998 -153.899c12.0234 -3.14844 24.0938 -6.9873 35.5996 -11.3008z
-M135.901 411.16c-23.1006 -40.7998 1 -121.562 1.19922 -122.961c27.2979 6.86914 55.7041 11.835 84.4004 14.5996c15.5215 22.6875 32.2832 43.9033 50.7002 64.2002c3.39941 -3.33301 6.7998 -6.74609 10.2002 -10.2393
-c-15.1953 -16.6592 -29.1309 -33.958 -42.2002 -52.3994c17.9678 1.35645 34.9062 2.04102 53.2197 2.04102c13.6523 0 27.2158 -0.383789 40.6797 -1.1416c-64.5 86.6006 -126.5 126.2 -163.3 126.2c-23 0 -32 -15.2002 -34.8994 -20.2998zM440.701 -27.1406
-c3.2998 6 21.5 38.5996 -1.2002 123c-4.09961 -1.10059 -37.0996 -9.90039 -84.4004 -14.6006c-15.4961 -22.7061 -32.2598 -43.9238 -50.6992 -64.2002c-3.40039 3.2998 -6.80078 6.7002 -10.2002 10.2002c15.1943 16.6602 29.1299 33.958 42.2002 52.4004
-c-17.9014 -1.38379 -34.792 -2.08301 -53.0459 -2.08301c-13.7139 0 -27.3359 0.398438 -40.8545 1.18262c64.5996 -86.7998 126.6 -126.2 163.3 -126.2c23.1006 0 32 15.2002 34.9004 20.3008zM449.801 111.459c25.6006 7.2998 85.9004 27.4004 105.7 62.5
-c1.40039 2.5 33.5 50.5 -72.5996 90.4004c-11.1553 4.18555 -22.8525 7.92188 -34.5 11c-3.60059 -12.9004 -7.90039 -26.1006 -12.8008 -39.5c-3.71387 -0.506836 -6.9248 -2.60645 -8.89941 -5.60059l-0.100586 0.100586c-1.94824 1.84863 -4.25 3.31445 -6.7998 4.2998
-c5.7002 15 10.6006 29.7998 14.6006 44.2002c-7.2002 1.69922 -31.8008 7.59961 -72.2002 11.6992c16.7002 -24.5 27.8994 -44.0996 34.2998 -55.5c-4.18457 -1.36719 -7.79199 -3.96777 -10.4004 -7.39941c-13.5996 16.3994 -11 19.8994 -42.5 64.5
-c-16.6885 1.17285 -32.207 1.77344 -49.1914 1.77344c-21.2998 0 -42.3818 -0.9375 -63.208 -2.77344c-16.9004 -25 -28.2998 -45.2002 -34.7998 -56.9004c-4.16797 -1.77637 -7.68652 -4.69238 -10.2002 -8.39941c-1.07422 3.39844 -3.37402 6.23633 -6.40039 8
-c6.10059 11.3994 16.9004 31 32.7998 55.2998c-39.5996 -4.60059 -65 -11.2002 -72 -13c4.30078 -14.1006 9.40039 -28.6006 15.2002 -43.2998c-0.866211 -0.632812 -1.63086 -1.36328 -2.2998 -2.2002c-1.5 1.89941 -4 5.2998 -14.4004 5.2998
-c-4.69922 12.2998 -8.7998 24.5 -12.3994 36.4004c-138.8 -40.3604 -158.4 -121.36 1.5 -164c3.59961 12.8994 7.7998 26 12.7002 39.3994c0.328125 -0.0185547 0.651367 -0.0214844 0.984375 -0.0214844c2.0752 0 4.06641 0.360352 5.91504 1.02148
-c3 -1.2002 5.2002 -1 8.40039 -1c-5.5 -14.5996 -10.2002 -28.8994 -14.1006 -42.8994c23.4512 -5.42578 47.71 -9.39258 72.2002 -11.7002c-16.2998 23.8994 -27.5 43.3994 -33.7998 54.5996c8.7002 0 10.7002 1.60059 12.5996 3.2002
-c0.950195 -0.574219 1.95996 -1.08008 3 -1.5c15.3008 -26.7002 28.9004 -46.5996 36.8008 -57.7998c16.6875 -1.17285 32.2051 -1.77344 49.1895 -1.77344c21.2998 0 42.3838 0.9375 63.21 2.77344c16.5 24.2998 27.7002 44 33.9004 55.2002
-c7.2998 0 9.7998 3 10.8994 4.19922c1.82324 -1.3252 3.84766 -2.41113 6 -3.19922c-15 -28 -28.6992 -48.9004 -32.1992 -54.2002c24.4219 2.70312 48.6768 7.11816 72 13c-4.10059 13.7998 -9 27.8994 -14.7002 42.2002c2.00391 0.898438 3.81934 2.11523 5.39941 3.59961
-l0.100586 0.0996094c2.2666 -3.44043 6.1543 -5.7002 10.5781 -5.7002c0.0410156 0 0.0810547 0 0.12207 0.000976562c4.69922 -12.3008 8.7998 -24.5 12.3994 -36.4004zM335.401 225.459c0.0664062 0.00683594 0.132812 0.00878906 0.201172 0.00878906
-c1.07422 0 1.95117 -0.84668 1.99805 -1.90918v-51.5c0 -9.5 -5 -14.0996 -15.0996 -14.0996h-0.400391c-10.0996 0 -15.0996 4.5 -15.0996 14.0996v51.5c-0.00195312 0.0341797 -0.00488281 0.0664062 -0.00488281 0.100586c0 0.999023 0.811523 1.81055 1.81055 1.81055
-c0.0654297 0 0.130859 -0.00390625 0.194336 -0.0107422h1.2002c0.0742188 0.00976562 0.148438 0.0166016 0.224609 0.0166016c0.932617 0 1.69043 -0.756836 1.69043 -1.68945c0 -0.0771484 -0.00488281 -0.15332 -0.015625 -0.227539v-49.7998
-c0 -8 2.60059 -11.0996 10.1006 -11.0996s10.0996 3.2002 10.0996 11.0996v49.7998c-0.00488281 0.0566406 -0.00976562 0.111328 -0.00976562 0.168945c0 0.959961 0.779297 1.73926 1.74023 1.73926c0.0576172 0 0.114258 -0.00195312 0.169922 -0.0078125h1.2002z
-M321.701 139.999l7.09961 -0.0996094l-5.7002 -4.30078l2.10059 -6.7998l-5.7998 4.10059l-5.80078 -4.10059l2.10059 6.7998l-5.7002 4.30078l7.09961 0.0996094l2.30078 6.7998zM290.601 132.599l7.10059 -0.0996094l-5.7002 -4.2998l2.09961 -6.7998l-5.7998 4.09961
-l-5.7998 -4.09961l2.09961 6.7998l-5.69922 4.2998l7.09961 0.0996094l2.2998 6.80078zM295.701 163.399c0.0615234 0.00585938 0.12207 -0.0292969 0.185547 -0.0292969c1.00977 0 1.83008 -0.819336 1.83008 -1.83008
-c0 -0.0810547 -0.00585938 -0.162109 -0.015625 -0.241211v-0.799805c0.00390625 -0.0488281 0.0078125 -0.0966797 0.0078125 -0.145508c0 -0.977539 -0.792969 -1.77051 -1.77051 -1.77051c-0.0800781 0 -0.160156 0.00585938 -0.237305 0.015625h-22.5
-c-0.0644531 -0.00683594 -0.126953 -0.0117188 -0.193359 -0.0117188c-0.999023 0 -1.80957 0.811523 -1.80957 1.81055c0 0.0341797 0.000976562 0.0683594 0.00292969 0.101562v63c-0.00195312 0.0332031 -0.00488281 0.0664062 -0.00488281 0.100586
-c0 0.999023 0.811523 1.80957 1.80957 1.80957c0.0664062 0 0.130859 -0.00292969 0.195312 -0.00976562h22.2002c0.0771484 0.00976562 0.155273 0.0175781 0.235352 0.0175781c0.977539 0 1.77051 -0.793945 1.77051 -1.77051
-c0 -0.0498047 -0.00195312 -0.0986328 -0.00585938 -0.147461v-0.799805c0.00195312 -0.0380859 0.00488281 -0.0751953 0.00488281 -0.113281c0 -1.04395 -0.847656 -1.89062 -1.89062 -1.89062c-0.0380859 0 -0.0761719 0.000976562 -0.114258 0.00390625h-19.1006
-v-25.7998h16.1006c0.0380859 0.00195312 0.0742188 0.00488281 0.113281 0.00488281c1.04297 0 1.88965 -0.847656 1.88965 -1.89062c0 -0.0380859 -0.000976562 -0.0761719 -0.00292969 -0.114258v-0.800781
-c0.00195312 -0.0380859 0.00488281 -0.0742188 0.00488281 -0.113281c0 -1.04297 -0.847656 -1.88965 -1.89062 -1.88965c-0.0380859 0 -0.0761719 0.000976562 -0.114258 0.00292969h-16.1006v-26.6992h19.4004zM288.301 262.799l2.2998 -6.7998l7.10059 -0.0996094
-l-5.7002 -4.30078l2.09961 -6.7998l-5.7998 4.10059l-5.7998 -4.10059l2.09961 6.7998l-5.69922 4.30078l7.09961 0.0996094z" />
-    <glyph glyph-name="artstation" unicode="&#xf77a;" horiz-adv-x="512" 
-d="M2 70.5996h315.1l59.2002 -102.6h-285.399c-0.00488281 0 0.0205078 -0.0498047 0.015625 -0.0498047c-20.0742 0 -37.4736 11.5439 -45.916 28.3496zM501.8 98c19 -29.4004 -0.0996094 -55.9004 -2 -59.0996l-40.7002 -70.5l-257.3 447.6h88.4004
-c0.00390625 0 -0.0234375 0.0527344 -0.0195312 0.0527344c19.6797 0 36.79 -11.0879 45.4189 -27.3525zM275 143.5h-231l115.5 200z" />
-    <glyph glyph-name="atlassian" unicode="&#xf77b;" horiz-adv-x="512" 
-d="M152.2 211.6c66.2998 -70.7998 89.0996 -189.3 51.2002 -267.1c-2.40039 -5.2002 -7.60059 -8.5 -13.4004 -8.40039h-175c-11 0 -18.4004 11.7002 -13.4004 21.7002l125.801 251c5.09961 10.5 17.0996 11 24.7998 2.7998zM244.4 439.9
-c6.7998 10.8994 20.2998 10.6992 25.5996 0.0996094c5.90039 -11.7002 240.4 -482.3 240.4 -482.3c5 -9.90039 -2.2002 -21.7002 -13.4004 -21.7002h-174.2c-5.7002 0 -10.8994 3.2998 -13.3994 8.40039c-73.5 146.899 -187.301 302.1 -65 495.5z" />
-    <glyph glyph-name="canadian-maple-leaf" unicode="&#xf785;" horiz-adv-x="512" 
-d="M383.8 96.2998c-5 -5 -10 -7.5 -5 -22.5s10 -35.0996 10 -35.0996s-95.2002 20.0996 -105.2 22.5996c-8.89941 0.900391 -18.3994 -2.39941 -18.3994 -12.5c0 -10.0996 5.7998 -112.8 5.7998 -112.8h-30s5.7998 102.8 5.7998 112.8s-9.59961 13.4004 -18.2998 12.5
-c-10.0996 -2.5 -105.3 -22.5996 -105.3 -22.5996s5 20.0996 10.0996 35.0996c4.90039 15 0 17.5 -5.09961 22.5c-2.60059 2.5 -105.2 92.4004 -105.2 92.4004l17.5 7.59961c10 4.90039 7.40039 11.4004 5 17.4004c-2.5 7.59961 -20.0996 67.2998 -20.0996 67.2998
-s47.5996 -10 57.6992 -12.5c7.5 -2.40039 10 2.5 12.5 7.5s15 32.2998 15 32.2998s52.6006 -59.7998 55.1006 -62.2998c10.0996 -7.5 20.0996 0 17.5996 10c0 10 -27.5996 129.6 -27.5996 129.6s30.0996 -17.3994 40.0996 -22.3994c7.60059 -5 12.6006 -5 17.6006 5
-c5 7.5 42.5 79.7998 42.5 79.7998s37.5996 -72.2998 42.6992 -79.7998c5 -10 10.1006 -10 17.6006 -5c10 5 40.0996 22.3994 40.0996 22.3994s-27.5996 -119.6 -27.5996 -129.6c-2.5 -10 7.59961 -17.5 17.5996 -10c2.5 2.40039 55.1006 62.2998 55.1006 62.2998
-s12.5 -27.3994 15 -32.3994s5 -9.90039 12.5 -7.5c10 2.5 57.6992 12.5 57.6992 12.5s-17.6992 -59.7002 -20.0996 -67.3008c-2.40039 -5.89941 -5 -12.5 5 -17.3994l17.5 -7.5s-102.7 -89.9004 -105.2 -92.4004z" />
-    <glyph glyph-name="centos" unicode="&#xf789;" 
-d="M289.6 350.5l31.6006 -31.7002l-76.2998 -76.5v108.2h44.6992zM127.2 318.8l31.5996 31.7002h44.7002v-108.2zM168.7 360.4l55.5 55.5996l55.5 -55.5996h-44.7002v-127.9l-10.7998 -10.7998l-10.7998 10.7998v127.9h-44.7002zM194.9 192.3l-10.8008 -10.7998h-128.6
-v-44.7998l-55.5 55.5996l55.5 55.6006v-44.8008h128.6zM274.2 213l76.2998 76.5l31.5996 -31.7002v-44.7998h-107.899zM447.5 192.3l-55.5 -55.5996v44.7998h-127.7l-10.7998 10.7998l10.7998 10.7998h127.7v44.8008zM65.4004 271.8v78.7002h79.3994l-31.5996 -31.7002
-l90.2998 -90.5v-15.2998h-15.2998l-90.2998 90.5zM382.1 350.5v-78.7002l-31.5996 31.7002l-90.2998 -90.5h-15.2998v15.2998l90.2998 90.5l-31.6006 31.7002h78.5zM203.5 34.0996v-0.0996094h-44.7002l-31.5996 31.7002l76.2998 76.5v-108.101zM65.4004 213v44.7998
-l32.5 31.7002l76.2998 -76.5h-108.8zM382.1 112.8v-78.7002h-78.5l31.6006 31.7002l-90.2998 90.5v15.2998h15.2998l90.2998 -90.5zM382.1 171.6v-44.7998l-31.5996 -31.7002l-76.2998 76.5h107.899zM321.2 65.7998l-31.6006 -31.5996h-44.6992v108.1zM97.9004 95.0996
-l-32.5 31.7002v44.7998h108.8zM279.7 24.2002l-55.5 -55.6006l-55.5 55.6006h44.7002v127.899l10.7998 10.8008l10.7998 -10.8008v-127.899h44.7002zM113.2 65.7998l31.5996 -31.7002h-79.3994v78.7002l32.5 -31.7002l90.2998 90.5h15.2998v-15.2998z" />
-    <glyph glyph-name="confluence" unicode="&#xf78d;" horiz-adv-x="512" 
-d="M2.2998 35.7998c42.2998 66.9004 125.2 233.2 373.101 112.601c39.6992 -19.1006 83.6992 -39.9004 105.899 -50.3008c8 -3.69922 11.7002 -13.1992 8.10059 -21.2998l-50.4004 -114.1c-0.0996094 -0.100586 -0.0996094 -0.299805 -0.200195 -0.400391
-c-3.89941 -8.09961 -13.5996 -11.5996 -21.7002 -7.7002c-200.399 95.2002 -213.8 111.5 -280.899 -0.699219c0 0 -0.100586 -0.100586 -0.100586 -0.200195c-4.69922 -7.7002 -14.6992 -10 -22.3994 -5.2998l-105.9 65.1992c-7.59961 4.7002 -10 14.6006 -5.5 22.2002z
-M509.7 347.9c-42.6006 -67.5 -125.4 -232.9 -373.4 -112.9c-39.7002 19.2002 -83.7998 40 -106 50.4004c-8 3.69922 -11.7002 13.1992 -8.09961 21.2998l50.5 114.1c0.0996094 0.100586 0.0996094 0.299805 0.200195 0.400391
-c3.89941 8.09961 13.5996 11.5996 21.6992 7.7002c199.5 -94.7002 213.301 -111.7 280.601 0.899414c0.200195 0.400391 0.399414 0.700195 0.599609 1c5 7.5 15.1006 9.40039 22.6006 4.40039l105.8 -65.1006c7.59961 -4.69922 10 -14.5996 5.5 -22.1992z" />
-    <glyph glyph-name="dhl" unicode="&#xf790;" horiz-adv-x="640" 
-d="M238 146.8l22.2998 30.2002h58.7002l-22.2998 -30.2002h-58.7002zM0 165.1h86.5l-4.7002 -6.39941h-81.7998v6.39941zM172.9 177h68.1992c-5.69922 -7.7998 -24.0996 -30.2998 -57.1992 -30.2998h-100.101l41.1006 55.7998h51c5.59961 0 5.59961 -2.2002 2.7998 -5.90039
-c-2.7998 -3.69922 -7.60059 -10.2998 -10.4004 -14.0996c-1.39941 -1.90039 -4.09961 -5.5 4.60059 -5.5zM490.4 183.9h-62.2002l39.2998 53.3994h62.2002zM95.2998 177l-4.7002 -6.40039h-90.5996v6.40039h95.2998zM206.3 203.6
-c2.7998 3.7002 2.90039 5.90039 -2.7002 5.90039h-111.399l20.3994 27.7998h117.9c29.9004 0 37.5996 -23.5996 29.2002 -35c-6.2002 -8.39941 -13.5 -18.3994 -13.5 -18.3994h-45.6006c-8.69922 0 -6 3.5 -4.59961 5.5c2.7998 3.7998 7.5 10.3994 10.2998 14.1992zM0 146.8
-v6.40039h77.7998l-4.7002 -6.40039h-73.0996zM323 146.8c0 0 22.2002 30.2002 22.2998 30.2002h58.7002l-22.2998 -30.2002h-58.7002zM545 146.7l4.7002 6.39941h90.2998v-6.39941h-95zM567.3 177h72.7002v-6.40039h-77.4004zM553.8 158.7l4.7002 6.39941h81.5v-6.39941
-h-86.2002zM389.6 237.3h58.7002l-39.2998 -53.3994h-143.6l39.2998 53.3994h58.7002l-22.5 -30.5996h26.1992zM423.1 177h133.4l-22.2998 -30.2998h-94.2998c-24.1006 0 -30.6006 11.5996 -23.2002 21.5996c2.09961 2.7998 6.39941 8.7002 6.39941 8.7002z" />
-    <glyph glyph-name="diaspora" unicode="&#xf791;" horiz-adv-x="512" 
-d="M251.64 93.4502c-1.39941 0 -88 -119.9 -88.6992 -119.9c-0.700195 0 -86.6006 60.4502 -86.9404 61.2002s86.5996 125.7 86.5996 127.4c0 2.19922 -129.6 44 -137.6 47.0996c-1.2998 0.5 31.4004 101.8 31.7002 102.1c0.599609 0.700195 144.399 -47 145.5 -47
-c0.399414 0 0.899414 0.600586 1 1.30078c0.399414 2 1 148.6 1.7002 149.6c0.799805 1.2002 104.5 0.700195 105.1 0.299805c1.5 -1 3.5 -156.1 6.09961 -156.1c1.40039 0 138.7 47 139.301 46.2998c0.799805 -0.900391 31.8994 -102.2 31.5 -102.6
-c-0.900391 -0.900391 -140.2 -47.1006 -140.601 -48.8008c-0.299805 -1.39941 82.7998 -122.1 82.5 -122.899s-85.5 -63.5 -86.2998 -63.5c-1 0.200195 -89 125.5 -90.9004 125.5h0.0400391z" />
-    <glyph glyph-name="fedex" unicode="&#xf797;" horiz-adv-x="640" 
-d="M586 163.5l54 -60.5h-64.4004l-22.2998 25l-22.0996 -25h-212.2v11.9004h-0.5c-7.90039 -11.7002 -20.7998 -18.6006 -34.9004 -18.6006c-32.6992 0 -56.3994 26.4004 -60.0996 56.9004h-85.5c0 -23.5 31.0996 -35.5 45.7998 -14.6006h42
-c-27.5996 -67.6992 -130.2 -49.3994 -130.2 23.7002c0 6.40039 0.800781 12.5 2.30078 18.2002h-48.9004v-77.5h-49v184.4h109v-41.1006h-60v-26.2002h54.7998v-24.1992c24.5 43.5996 103.9 45.3994 121.9 -14c7.5 25.5 28.8994 44.8994 57.2998 44.8994
-c13.9004 0 25.7998 -3.7998 35.4004 -14.7998h0.5v75.5h151.199v-48.0996h-56.0996v-16h118.7l22.5 -24.8008l21.7002 24.8008h62.3994zM139.3 180.1h46.5c-4.7998 25.6006 -40.3994 26.3008 -46.5 0zM292.7 131.2c34.5 0 32.5996 62.7998 0 62.7998
-c-34 0 -34.6006 -62.7998 0 -62.7998zM460.5 112.1v29.6006h-56.0996v44.7002h56.0996v28.0996h-55.5v33.9004h56.0996v30.1992h-95v-166.5h94.4004zM414.6 151.9h56.1006v-45.6006l50.7002 57l-50.7002 57v-44h-56.1006v-24.3994zM553.2 141.6l26.2998 -29.5h40.5
-l-46 51.4004l45.4004 51h-38.5l-25.6006 -29.2998l-26.5996 29.2998h-39.7002l45.5996 -51.2002l-45.5996 -51.2002h38.0996z" />
-    <glyph glyph-name="fedora" unicode="&#xf798;" 
-d="M225 416c123.7 -0.299805 223.7 -100.9 223.4 -224.6c-0.300781 -123.7 -100.9 -223.7 -224.601 -223.4l-170.2 0.400391c-29.582 0 -53.6006 24.0117 -53.6006 53.5938c0 0.102539 0 0.204102 0.000976562 0.305664l0.400391 170.3
-c0.399414 123.7 100.899 223.7 224.6 223.4zM394.8 258.8c-0.0947266 7.71387 -1.06445 15.1934 -2.7998 22.4004l-55.2002 56.0996v-1.59961c0 -5.10059 -1.5 -9.60059 -3.7998 -14.2998zM331 353.7c1.94141 -2.71777 3.39453 -5.85449 4.2002 -9.2002l54.2998 -54.5996
-c-9.56543 28.6953 -30.9629 51.8848 -58.5 63.7998zM118.1 200.8c-5.54395 -0.450195 -11.0029 -1.44336 -16.1992 -2.89941l8.5 -8.5c2.04004 4.16895 4.62598 7.98535 7.69922 11.3994zM97 196.6c-4.72363 -1.31543 -9.36719 -3.08691 -13.7002 -5.19922l27 -27.2002
-c-1.51855 3.87012 -2.37598 8.09961 -2.39941 12.5l0.899414 8zM78.7998 189.2c-3.89551 -2.1748 -7.62207 -4.57227 -11.2002 -7.2002l35.3008 -35.9004c4.36133 2.17188 9.16016 3.79395 14.0996 4.7002zM63.5996 179.4
-c-3.7207 -2.78223 -7.0625 -5.89355 -10.0996 -9.40039l34.9004 -34.5996c3.2168 3.18945 6.69531 6.00781 10.5 8.5zM50.2998 167.1c-2.89941 -3.2998 -5.7998 -6.69922 -8.59961 -10.5l35.7998 -35.8994c2.11035 4.12598 4.6875 7.93262 7.7002 11.3994zM39.2998 152.8
-c-2.49414 -3.82227 -4.73926 -7.83984 -6.7002 -12l39.5 -39.7998c0.374023 5.3252 1.63574 10.4883 3.60059 15.2002zM30.5 136.5c-1.7998 -4.90039 -3.2998 -9.59961 -4.7002 -14.5l52.7002 -53.5c-3.96484 7.90234 -6.36621 16.8438 -6.7002 26.2002zM22.5996 93.5
-c0.046875 -7.56934 1.05859 -14.8945 2.90039 -21.9004l55.4004 -55.6992v1.09961c0.0429688 5.14551 1.35156 10.0322 3.59961 14.2998zM27.9004 62.7998c9.59375 -28.6787 30.9805 -51.8564 58.5 -63.7998c-1.90527 2.74219 -3.35254 5.87402 -4.2002 9.2002z
-M22.5996 99.7998l64.4004 -64.2002c2.76953 3.4707 6.08594 6.38965 9.90039 8.7002l-72.2002 72.5c-1.2793 -5.48047 -2.00293 -11.1543 -2.10059 -17zM275.9 151.6c32.5996 -0.0996094 32.6992 49.2002 0.199219 49.4004l-33.5996 0.0996094
-c-4.91504 0.0224609 -8.90039 4.01855 -8.90039 8.93945v0.0605469l0.100586 47c0.0996094 40.5 38.5996 60.8008 66 54.9004c15.3994 -3.90039 30.2998 8.40039 30.2998 23.9004c0 12.0996 -8.7002 22.1992 -19.9004 24c-6.37305 1.50098 -12.9639 2.30078 -19.793 2.30078
-c-0.135742 0 -0.271484 -0.000976562 -0.40625 -0.000976562c-0.143555 0 -0.277344 -0.00292969 -0.420898 -0.00292969c-57.9893 0 -105.081 -47.0303 -105.18 -104.997l-0.0996094 -56l-42.6006 0.0996094c-32.5996 0.100586 -32.6992 -49.2002 -0.0996094 -49.2998
-l33.5996 -0.0996094c4.40039 0 8.90039 -4.5 8.90039 -9l-0.0996094 -47c-0.00585938 -30.8535 -25.0527 -55.9004 -55.9062 -55.9004h-0.194336c-9.39941 0 -9.39941 1.59961 -15.7002 1.59961c-13.458 -0.209961 -24.3447 -11.1289 -24.5 -24.5996
-c0 -15.5 14.2002 -24.2002 19.9004 -24.2002c61.2998 -12.8994 125.5 33.6006 125.7 102.9l0.0996094 56zM299.4 151.9c5.48145 0.538086 10.9062 1.52637 16.0996 2.89941l-8.5 8.5c-1.78711 -4.29492 -4.37207 -8.14844 -7.59961 -11.3994zM320.4 156.1
-c4.74121 1.31738 9.38574 3.12305 13.6992 5.30078l-27 27.1992c1.51855 -3.86914 2.37598 -8.09961 2.40039 -12.5l-0.900391 -8.09961zM338.4 163.5c4 2.2002 8.09961 4.7002 11.8994 7.2002l-36.2002 35.8994c-4.09961 -2.2998 -8.7998 -3.59961 -13.6992 -4.69922z
-M353.9 173.3c3.55273 2.83594 6.87891 5.7998 10.0996 9l-34.9004 35c-3.18457 -3.22266 -6.66797 -6.04492 -10.5 -8.5zM367.1 185.6c3.0625 3.36523 5.89941 6.82812 8.60059 10.5l-35.7998 35.9004c-2.1582 -4.0957 -4.73145 -7.89746 -7.7002 -11.4004zM378.1 199.9
-c2.53027 3.79688 4.77832 7.81738 6.7002 12l-39.5 39.7998c-0.374023 -5.3252 -1.63574 -10.4893 -3.59961 -15.2002zM391.6 230.8l-53.0996 53.4004c4.25977 -7.79688 6.82422 -16.7627 7.09961 -26.2002l41.3008 -41.5c1.7959 4.61523 3.39258 9.46387 4.69922 14.2998z
-M392.6 236.4c1.25586 5.3623 2.04199 10.9189 2.30078 16.5996l-64.3008 64.7002c-2.61426 -3.74805 -5.95898 -6.85938 -9.89941 -9.2002z" />
-    <glyph glyph-name="figma" unicode="&#xf799;" horiz-adv-x="384" 
-d="M277 277.3h-85.4004v-256c-0.0273438 -47.082 -38.2617 -85.2998 -85.3506 -85.2998c-47.1055 0 -85.3496 38.2441 -85.3496 85.3496c0 47.1064 38.2441 85.3506 85.3496 85.3506h0.0507812c-47.1055 0 -85.3496 38.2441 -85.3496 85.3496
-c0 47.1064 38.2441 85.3506 85.3496 85.3506c-47.0781 0 -85.2998 38.2217 -85.2998 85.2998s38.2217 85.2998 85.2998 85.2998h170.7c47.1055 0 85.3496 -38.2441 85.3496 -85.3496c0 -47.1064 -38.2441 -85.3506 -85.3496 -85.3506zM277 277.3
-c47.0762 -0.00488281 85.2949 -38.2236 85.2998 -85.2998c0 -47.0781 -38.2217 -85.2998 -85.2998 -85.2998s-85.2998 38.2217 -85.2998 85.2998s38.2217 85.2998 85.2998 85.2998z" />
-    <glyph glyph-name="intercom" unicode="&#xf7af;" 
-d="M392 416c30.9004 0 56 -25.0996 56 -56v-336c0 -30.9004 -25.0996 -56 -56 -56h-336c-30.9004 0 -56 25.0996 -56 56v336c0 30.9004 25.0996 56 56 56h336zM283.7 333.9v-199.5c0 -19.8008 29.8994 -19.8008 29.8994 0v199.5c0 19.7998 -29.8994 19.7998 -29.8994 0z
-M209.1 341.4v-216.5c0 -19.8008 29.9004 -19.8008 29.9004 0v216.5c0 19.7998 -29.9004 19.7998 -29.9004 0zM134.4 333.9v-199.5c0 -19.8008 29.8994 -19.8008 29.8994 0v199.5c0 19.7998 -29.8994 19.7998 -29.8994 0zM59.7002 304v-134.3
-c0 -19.7998 29.8994 -19.7998 29.8994 0v134.3c0 19.7998 -29.8994 19.7998 -29.8994 0zM383.1 76.2002c14.9004 12.8994 -4.5 35.5996 -19.3994 22.7002c-63.2002 -53.9004 -213.4 -55.3008 -279.3 0c-15 12.7998 -34.4004 -9.90039 -19.4004 -22.7002
-c76.4004 -65.4004 245.3 -63 318.1 0zM388.3 169.7v134.3c0 19.7998 -29.8994 19.7998 -29.8994 0v-134.3c0 -19.7998 29.8994 -19.7998 29.8994 0z" />
-    <glyph glyph-name="invision" unicode="&#xf7b0;" 
-d="M407.4 416c22.3994 0 40.5996 -18.2002 40.5996 -40.5996v-366.801c0 -22.3994 -18.2002 -40.5996 -40.5996 -40.5996h-366.801c-22.3994 0 -40.5996 18.2002 -40.5996 40.5996v366.801c0 22.3994 18.2002 40.5996 40.5996 40.5996h366.801zM176.1 302.4
-c-0.599609 35.0996 -53.5996 34.7998 -53.6992 -0.400391c0 -15 12.1992 -27 27.0996 -27c4.2002 0.0996094 27 4 26.5996 27.4004zM332.8 71c23.7998 0 42.7002 15.2998 53.2002 52l-17.9004 6.7002c-14.2998 -39.5 -31.7998 -32.4004 -31.7998 -16.9004
-c0.299805 8.10059 0.700195 7.7002 14.9004 58.7998c26.0996 85.8008 -61.2998 113.5 -101.8 38l8.89941 40.5h-68.7998l-9.7002 -35.5996h32.2998l-19.7998 -79.4004c-16.5 -36.6992 -57.3994 -44.0996 -57.3994 -23.1992c0.299805 11.2998 -0.700195 4.5 32.8994 138.199
-h-76.3994l-9.7002 -35.5996h31.7998c-22.0996 -90.0996 -22.9004 -89.7998 -23 -104.1c0 -48.7002 63.0996 -56.1006 94.5996 -4.30078l-8.09961 -32.5h45.0996l25.8008 103.301c14.6992 59.6992 74 47.0996 59.8994 0.699219c-9.09961 -32.5996 -40.5996 -106.6 25 -106.6z
-" />
-    <glyph glyph-name="jira" unicode="&#xf7b1;" horiz-adv-x="496" 
-d="M490 206.3c8 -7.89941 8 -20.7002 0 -28.5996c-225.8 -225 137.9 136.3 -241.5 -241.7c-180.7 180.1 -109.7 109.3 -242.5 241.6c-7.90039 8 -7.90039 20.8008 0 28.7002c0 0 77 76.7998 242.5 241.7c72.0996 -71.7998 168.6 -169 241.5 -241.7zM248.5 116.3l76 75.7002
-l-76 75.7002l-76 -75.7002z" />
-    <glyph glyph-name="mendeley" unicode="&#xf7b3;" horiz-adv-x="640" 
-d="M624.6 122.8c23.1006 -22.7002 17.8008 -73.5 0 -88.2998c-36.1992 -38.9004 -100 -18.2002 -104.899 35.2002c-1 11.7002 1.09961 23 5.7002 33c47.2998 103.7 -185.9 106.1 -146.5 8.2002c0.0996094 -0.100586 0.199219 -0.200195 0.299805 -0.400391
-c26.5996 -42.5996 -6.7002 -97.2998 -58.7998 -95.2002c-52 -2.2002 -85.6006 52.4004 -58.8008 95.2002c0.100586 0.200195 0.200195 0.299805 0.300781 0.400391c39.3994 97.8994 -193.801 95.5 -146.5 -8.2002c20.3994 -44.9004 -14.1006 -93.7002 -61.2002 -87.7998
-c-61.9004 7.7998 -62.5 82.8994 -42.6006 102.6c16 16 31.8008 24.7998 53 22.5c43.3008 1 49.7002 34.9004 37.5 98.7998c-22.6992 57.5 14.5 131.601 87.4004 130.8c76.9004 -0.699219 82.7998 -82 130.9 -82c49.1992 0 53.5 81.3008 130.899 82
-c72.5 0.700195 110.2 -73.2998 87.4004 -130.8c-12.2002 -63.8994 -5.7998 -97.7998 37.5 -98.7998c18.7002 2 36.0996 -4.7998 48.3994 -17.2002zM320.7 141.9c43.5996 0 62.7998 37.7998 62.7998 62.7998c0 34.7002 -28.0996 62.7998 -62.7998 62.7998h-0.600586
-c-34.5996 0 -62.7998 -28.0996 -62.7998 -62.7998c0 -25.2998 19.4004 -62.7998 62.7998 -62.7998h0.600586z" />
-    <glyph glyph-name="raspberry-pi" unicode="&#xf7bb;" horiz-adv-x="407" 
-d="M372 215.5c28.7002 -17.2002 54.5996 -72.5996 14 -117.7c-2.59961 -14.0996 -7.09961 -24.2002 -11 -35.3994c-5.90039 -45.2002 -44.4004 -66.3008 -54.5996 -68.8008c-14.9004 -11.1992 -30.7002 -21.7998 -52.2002 -29.1992
-c-20.2002 -20.6006 -42.1006 -28.4004 -64.2002 -28.4004h-1c-22 0 -44 7.7998 -64.2998 28.4004c-21.4004 7.39941 -37.2998 18 -52.2002 29.1992c-10.0996 2.5 -48.7002 23.6006 -54.5996 68.8008c-3.90039 11.1992 -8.40039 21.2998 -11 35.3994
-c-40.5 45 -14.6006 100.5 14.1992 117.7l3.7002 6.5c-0.0996094 46.4004 21.4004 65.2998 46.5 79.7002c-7.59961 2 -15.3994 3.7002 -17.5996 13.2002c-13.1006 3.39941 -15.7998 9.39941 -17.1006 15.7998c-3.39941 2.2998 -14.7998 8.7002 -13.5996 19.7002
-c-6.2998 4.39941 -9.90039 10.0996 -8.09961 18.0996c-6.90039 7.5 -8.7002 13.7002 -5.80078 19.4004c-8.2998 10.1992 -4.59961 15.5 -1.09961 20.8994c-6.2002 11.2002 -0.799805 23.2002 16.5 21.2002c6.90039 10.0996 21.9004 7.7998 24.2002 7.7998
-c2.5 3.2998 6 6 16.5 4.7002c6.7998 6.09961 14.3994 5.09961 22.2998 2.09961c3.2002 2.5 6.09961 3.40039 8.7002 3.5c5 0.100586 9.2998 -2.89941 13.8994 -4.2998c11.3008 3.60059 13.8008 -1.39941 19.4004 -3.39941c12.2998 2.59961 16.0996 -3 22 -8.90039
-l6.90039 0.0996094c18.5996 -10.7998 27.7998 -32.7998 31.0996 -44.0996c3.2998 11.2998 12.5 33.2998 31.0996 44.0996l6.90039 -0.0996094c5.90039 5.90039 9.7002 11.5 22 8.90039c5.5 2.09961 8.09961 7 19.4004 3.39941
-c7.09961 2.2002 13.2998 8.10059 22.5996 0.799805c7.90039 2.90039 15.5 4 22.2998 -2.09961c10.5 1.2998 13.9004 -1.5 16.5 -4.7002c2.2998 0 17.2998 2.2998 24.2002 -7.7998c17.2998 2 22.7998 -10 16.5996 -21.2002c3.5 -5.2998 7.2002 -10.5996 -1.09961 -20.8994
-c2.90039 -5.7002 1.09961 -11.9004 -5.7998 -19.4004c1.89941 -8 -1.7002 -13.7002 -8.10059 -18.0996c1.2002 -11 -10.1992 -17.4004 -13.5996 -19.7002c-1.2998 -6.40039 -4 -12.5 -17.0996 -15.7998c-2.2002 -9.60059 -10 -11.2002 -17.6006 -13.2002
-c25.1006 -14.4004 46.6006 -33.2998 46.5 -79.7002zM349.8 223.5c1.5 48.7002 -36.3994 75.4004 -82.0996 67.9004c-16.7998 -2.80078 80.5996 -86.6006 82.0996 -67.9004zM306.8 130.4c24.5 15.7998 28.9004 51.5996 9.90039 80
-c-19 28.3994 -54.2998 38.5996 -78.7998 22.7998s-28.9004 -51.6006 -9.90039 -80c19 -28.4004 54.2998 -38.6006 78.7998 -22.7998zM238.9 418.7c-16.6006 -15.9004 -40.1006 -55.9004 -5.80078 -71.7998c29 23.5 63.6006 40.6992 102 53.5
-c-49.2998 -25.1006 -78 -45.3008 -93.6992 -62.6006c8.09961 -31.7002 50 -33.2002 65.3994 -32.2998c-3.09961 1.40039 -5.7998 3.09961 -6.7002 5.7998c3.80078 2.7002 17.5 0.299805 27 5.60059c-3.69922 0.699219 -5.39941 1.39941 -7.09961 4.09961
-c9 2.90039 18.7002 5.2998 24.4004 10c-3.10059 0 -6 -0.599609 -10 2.09961c8.09961 4.30078 16.6992 7.7002 23.3994 14.2002c-4.2002 0.100586 -8.7002 0.100586 -10 1.60059c7.40039 4.5 13.6006 9.5 18.7998 15c-5.7998 -0.700195 -8.2998 -0.100586 -9.69922 0.899414
-c5.59961 5.60059 12.5996 10.4004 16 17.2998c-4.40039 -1.5 -8.30078 -2.09961 -11.2002 0.100586c1.89941 4.2998 10 6.7002 14.7002 16.5996c-4.60059 -0.399414 -9.40039 -1 -10.4004 0c2.09961 8.5 5.7002 13.2002 9.2998 18.2002
-c-9.7998 0.200195 -24.5996 0 -23.8994 0.799805l6 6.10059c-9.5 2.5 -19.3008 -0.400391 -26.4004 -2.60059c-3.2002 2.5 0 5.60059 3.90039 8.7998c-8.10059 -1 -15.5 -2.89941 -22.1006 -5.39941c-3.59961 3.09961 2.2998 6.2998 5.10059 9.39941
-c-12.5 -2.2998 -17.8008 -5.59961 -23.1006 -8.89941c-3.7998 3.59961 -0.200195 6.7002 2.40039 9.7998c-9.40039 -3.5 -14.2998 -7.90039 -19.4004 -12.2998c-1.7998 2.2998 -4.39941 4 -1.2002 9.59961c-6.69922 -3.7998 -11.7998 -8.2998 -15.5 -13.2998
-c-4.19922 2.59961 -2.5 6.09961 -2.5 9.40039c-7 -5.60059 -11.3994 -11.5 -16.7998 -17.3008c-1.09961 0.800781 -2.09961 3.40039 -2.89941 7.60059zM204.5 304.1c-27.2002 0.700195 -53.4004 -19.8994 -53.4004 -31.7998
-c-0.0996094 -14.5996 21.5 -29.3994 53.6006 -29.7998c32.7998 -0.200195 53.7002 11.9004 53.7998 26.9004c0.0996094 16.8994 -29.7998 35 -54 34.6992zM81.5 316.9c9.59961 -5.2002 23.2002 -2.80078 27.2002 -5.60059
-c-0.900391 -2.59961 -3.60059 -4.39941 -6.7002 -5.7998c15.4004 -0.900391 57.4004 0.5 65.4004 32.2998c-15.7002 17.2998 -44.4004 37.6006 -93.7002 62.6006c38.3994 -12.8008 73 -30 102 -53.5c34.0996 15.8994 10.5996 55.8994 -6 71.7998
-c-0.900391 -4.2002 -1.7998 -6.7998 -2.90039 -7.60059c-5.39941 5.80078 -9.7998 11.7002 -16.7998 17.3008c0 -3.2002 1.59961 -6.80078 -2.5 -9.40039c-3.7002 5 -8.7998 9.5 -15.5 13.2998c3.2002 -5.59961 0.5 -7.2998 -1.2002 -9.59961
-c-5.09961 4.39941 -10 8.89941 -19.3994 12.2998c2.59961 -3.09961 6.19922 -6.2002 2.39941 -9.7998c-5.2998 3.2998 -10.5996 6.59961 -23.0996 8.89941c2.7998 -3.09961 8.59961 -6.2998 5.09961 -9.39941c-6.7002 2.5 -14 4.2998 -22.0996 5.39941
-c3.7998 -3.19922 7.09961 -6.2998 3.89941 -8.7998c-7.09961 2.2002 -16.8994 5.10059 -26.3994 2.60059l6 -6.10059c0.700195 -0.799805 -14.1006 -0.700195 -23.9004 -0.799805c3.5 -4.90039 7.2002 -9.7002 9.2998 -18.2002c-1 -1 -5.7998 -0.399414 -10.3994 0
-c4.7002 -9.89941 12.7998 -12.3994 14.7002 -16.5996c-2.90039 -2.10059 -6.90039 -1.60059 -11.2002 -0.100586c3.2998 -6.89941 10.3994 -11.6992 16 -17.2998c-1.40039 -1 -3.90039 -1.59961 -9.7002 -0.899414c5.2002 -5.5 11.4004 -10.5 18.7998 -15
-c-1.2998 -1.60059 -5.7998 -1.5 -10 -1.60059c6.7002 -6.5 15.2998 -9.89941 23.4004 -14.2002c-4 -2.7998 -6.90039 -2.09961 -10 -2.09961c5.7002 -4.7002 15.3994 -7.2002 24.3994 -10c-1.69922 -2.59961 -3.39941 -3.40039 -7.09961 -4.09961zM141.6 292.8
-c-45.5996 7.60059 -83.5996 -19.2002 -82.0996 -67.8994c1.5 -18.6006 98.9004 65.0996 82.0996 67.8994zM38.2002 106c21.5996 -9.5 39.0996 105.3 12.5996 98.2998c-43.8994 -24.5996 -36.2998 -79.5 -12.5996 -98.2998zM129.2 7.7998
-c14.0996 10.4004 6.39941 45.7002 -10.5 65.7002c-19.4004 22.2002 -44.6006 35.4004 -60.9004 25.5996c-10.8994 -8.19922 -12.8994 -36 2.60059 -63.3994c23 -32.6006 55.5 -35.7998 68.7998 -27.9004zM102.8 127.5c24.4004 -15.7998 59.7002 -5.59961 78.7998 22.7998
-c19 28.4004 14.6006 64.2002 -9.89941 80s-59.7998 5.60059 -78.7998 -22.7998s-14.6006 -64.2002 9.89941 -80zM205 -48c28.4004 -0.5 57.7002 24.4004 57.2002 35.4004c-0.100586 11.3994 -32 19.8994 -55.7002 18.8994c-23.5 0.600586 -59.7002 -9.2998 -59.2998 -22
-c-0.400391 -8.59961 28.3994 -33.5 57.7998 -32.2998zM263.9 76.9004v0.599609c-0.200195 29.5996 -26.8008 53.5996 -59.4004 53.4004c-32.5996 -0.200195 -59 -24.3008 -58.7998 -54v-0.600586c0.200195 -29.5996 26.7998 -53.5996 59.3994 -53.3994
-c32.6006 0.199219 59 24.2998 58.8008 54zM346.1 34.2002c18.4004 23.2002 12.2002 62 1.7002 72.2998c-15.5996 11.9004 -38 -3.2998 -58.8994 -26.5996c-18.3008 -21.1006 -28.4004 -59.6006 -15.1006 -72c12.7002 -9.60059 47 -8.30078 72.2998 26.2998zM369 107.4
-c23.7002 18.6992 31.2998 73.5996 -12.5996 98.2998c-26.4004 7 -8.90039 -107.7 12.5996 -98.2998z" />
-    <glyph glyph-name="redhat" unicode="&#xf7bc;" horiz-adv-x="512" 
-d="M341.52 162.59v-0.149414c33.6504 0 82.3408 6.93945 82.3408 47c0.219727 6.73926 0.859375 1.81934 -20.8799 96.2393c-4.62012 19.1504 -8.68066 27.8398 -42.3105 44.6504c-26.0898 13.3398 -82.9199 35.3701 -99.7295 35.3701
-c-15.6602 0 -20.2002 -20.1699 -38.8701 -20.1699c-18 0 -31.3105 15.0596 -48.1201 15.0596c-16.1406 0 -26.6602 -11 -34.7803 -33.6201c-27.5 -77.5498 -26.2803 -74.2695 -26.1201 -78.2695c0 -24.7998 97.6406 -106.11 228.47 -106.11zM429.07 193.19
-l-0.0703125 -0.0302734c4.65039 -22 4.65039 -24.3506 4.65039 -27.25c0 -37.6602 -42.3301 -58.5605 -98 -58.5605c-125.74 -0.0800781 -235.91 73.6504 -235.91 122.33v0.078125c0 6.96289 1.46289 13.6279 4.05957 19.6426
-c-45.2402 -2.26074 -103.8 -10.3301 -103.8 -62.0303c0 -84.6699 200.63 -189 359.49 -189c121.79 0 152.51 55.0801 152.51 98.5801c0 34.21 -29.5898 73.0498 -82.9297 96.2402z" />
-    <glyph glyph-name="sketch" unicode="&#xf7c6;" horiz-adv-x="512" 
-d="M27.5 285.8l78.9004 105.8l-6.90039 -130.699h-90.5zM396.3 402.3l7.10059 -133.5l-135.7 147.2zM112.2 229.7l122.6 -239.7l-224.899 261.7h91.0996zM114.2 260.9l142.1 154.1l60.4004 -65.5996l81.5 -88.5h-284zM411.5 251.8v-0.0996094h90.9004l-224.801 -261.7z
-M415.4 379l87.8994 -118.1h-90.2998l-6.09961 113.399l-0.900391 17.2998zM113.5 354.5l2.59961 47.7998l128.601 13.7002l-135.8 -147.1zM401.2 251.8l-144.9 -283.8l-102.7 200.9l-42.3994 82.8994h290z" />
-    <glyph glyph-name="sourcetree" unicode="&#xf7d3;" 
-d="M427.2 245c-0.104492 -90.2461 -59.1543 -166.747 -140.7 -193.1v-101.601c0 -7.89258 -6.40723 -14.2998 -14.2998 -14.2998h-96.4004c-7.89258 0 -14.2998 6.40723 -14.2998 14.2998v101.7c-81.501 26.3281 -140.5 102.814 -140.5 193.03v0.370117
-c0.200195 112 91.0996 202.8 203.2 202.6c112.1 0 203 -90.9004 203 -203zM155.6 245c0 -91 137.2 -89.9004 137.301 0c0 90.7998 -137.301 90.7998 -137.301 0z" />
-    <glyph glyph-name="suse" unicode="&#xf7d6;" horiz-adv-x="640" 
-d="M471.08 345.34c0 1 1.01953 0.759766 0.919922 0.660156c4.2002 -0.599609 92.2002 -13.7002 129.2 -35.2998c12.0996 -6.90039 20.7002 -21.5 34.5 -69.6006c0.700195 -2.7998 -2.7998 -5.09961 -3.60059 -5.69922
-c-26.8994 -18.8008 -56.7998 -36.6006 -145.199 21.6992c11.0996 -26.6992 10.6992 -25.0996 11 -25.5c5.39941 -2.7998 56.2998 -28.6992 81.5996 -28.1992c20.4004 0.399414 42.2002 10.3994 50.9004 15.5996c0 0 4.5 2.7002 3.19922 -2.40039
-c-0.5 -1.89941 -3.2998 -14.5996 -7 -17.6992c-1 -1 -36.5996 -28.4004 -103.1 -28c-42.7002 1 -76.7998 16.3994 -82.4004 -17.4004c-2.7998 -17.0996 6.10059 -37.5 18.9004 -55.7998h-48.5996c-15.9004 28.3994 -23.1006 68.2998 -79.8008 68.2998
-c-51.5996 0 -48.3994 -50.7002 -42.6992 -68.2998h-45.9004c-18.7998 68.7998 -69.2002 98.5996 -102.4 104.3c-74.2998 12.7998 -113 -49.2002 -87 -98.4004c23.1006 -43.5996 81.4004 -44.0996 99.7002 -20.3994c19.2002 25 3.7998 62.8994 -28.5 65.7002
-c-12.2998 1.09961 -25.2998 -4.60059 -25.5 -16.9004v-0.0595703c0 -10.9004 10 -13.8008 12 -14c7.2998 0.399414 8.90039 1.89941 11.7998 2.39941c5.2002 0.900391 16.8008 -1.7998 16.8008 -13.8994c0 -8.40039 -6.80078 -13.1006 -13.3008 -14.9004
-c-4.94922 -1.71484 -10.2754 -2.67285 -15.7998 -2.7002c-17.2002 0 -41.2002 14.7998 -41.5 42.6006c-0.200195 15.6992 7.7002 30 21.6006 39.1992c15.8994 10.5 43.5996 14.1006 69.1992 -1.59961c31.5 -19.2998 39.7002 -57.0996 31.5 -82.9004
-c-11.8994 -37.2998 -45.5996 -57.1992 -90 -53.2998c-31.5 2.7998 -60.6992 19.4004 -78.0996 44.4004c-7.45117 10.6377 -13.1357 22.7852 -16.5 35.7002c-7.12012 28.0596 0 58.0596 5.48047 71.3994c25.6992 63.6006 80.1992 97.2998 99.5996 109.7
-c100.2 61.5996 171.1 59.0996 223 57.2998c61.2998 -2.2002 126.6 -23.2998 135.7 -26.2998c0 2 0.299805 20.2998 0.299805 20.2998zM531.48 272.54c-1.10059 -33.5 39.0996 -51.5996 63.2998 -28.9004c24.3994 22.9004 9 64 -24.4004 65.2002
-c-0.464844 0.0175781 -0.910156 0.00585938 -1.37988 0.00585938c-20.3057 0 -36.8682 -16.1572 -37.5195 -36.3057zM570.08 297.84c14.0928 -0.414062 25.4199 -11.9697 25.4199 -26.1631c0 -0.34668 -0.00683594 -0.692383 -0.0195312 -1.03711
-c-0.505859 -14.0547 -12.0898 -25.3252 -26.2676 -25.3252c-14.499 0 -26.2695 11.7705 -26.2695 26.2695s11.7705 26.2705 26.2695 26.2705c0.290039 0 0.579102 -0.00488281 0.867188 -0.0146484zM574.38 269.04c15.4004 0 15.4004 15.5996 0 15.5996
-c-15.3994 0 -15.3994 -15.5996 0 -15.5996z" />
-    <glyph glyph-name="ubuntu" unicode="&#xf7df;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM300.7 347c-8.7998 -15.2002 -3.60059 -34.7002 11.7002 -43.5996c15.1992 -8.80078 34.6992 -3.5 43.5 11.6992c8.7998 15.3008 3.59961 34.8008 -11.7002 43.6006
-c-15.2002 8.7998 -34.7002 3.5 -43.5 -11.7002zM87.4004 160.1c17.5996 0 31.8994 14.3008 31.8994 31.9004s-14.2998 31.9004 -31.8994 31.9004c-17.6006 0 -31.9004 -14.3008 -31.9004 -31.9004s14.2998 -31.9004 31.9004 -31.9004zM115.5 157
-c8.7002 -32.7002 29.0996 -60.7002 56.5 -79l23.7002 39.5996c-51.5 36.3008 -51.5 112.5 0 148.801l-23.7002 39.5996c-27.4004 -18.4004 -47.9004 -46.2998 -56.5 -79.0996c22.4004 -18 22.2998 -52 0 -69.9004zM344.2 25.2998
-c15.2998 8.7998 20.5 28.2998 11.7002 43.6006c-8.80078 15.2998 -28.3008 20.5 -43.5 11.6992c-15.3008 -8.7998 -20.5 -28.2998 -11.7002 -43.5996s28.2002 -20.5 43.5 -11.7002zM344.5 94.7998c23 22.9004 38 53.9004 40.2998 88.4004l-46.0996 0.700195
-c-5.5 -62.7002 -71.9004 -100.9 -128.9 -74.4004l-22.5 -40.2998c47.7998 -23.7002 91.5 -10.7998 96.7002 -9.40039c4.40039 28.4004 33.7998 45.2998 60.5 35zM338.6 200.1l46 0.600586c-2.19922 34.5996 -17.0996 65.5996 -40.1992 88.5
-c-26.7002 -10.2998 -56.1006 6.7002 -60.5 35c-5.2002 1.39941 -48.8008 14.2998 -96.7002 -9.40039l22.5 -40.2998c57.5996 26.7998 123.5 -12.4004 128.899 -74.4004z" />
-    <glyph glyph-name="ups" unicode="&#xf7e0;" horiz-adv-x="384" 
-d="M103.2 145v123h32.5996v-141.6c-17.7002 -12.1006 -97.8994 -35.9004 -97.8994 39v102.6h32.6992v-104c0 -32.0996 27.4004 -22.5996 32.6006 -19zM4 373.18c93.5996 49.6006 259.1 61.6006 375.4 0v-220.899c0 -103.9 -75.3008 -135.2 -187.7 -184.101
-c-112.8 48.9004 -187.7 80.4004 -187.7 184.101v220.899zM362.1 152.28v216.2c-109.3 10.1992 -238.6 4 -340.899 -89.8008v-126.399c0 -86.6006 53 -113.5 170.5 -165.3c117.2 51.6992 170.399 78.6992 170.399 165.3zM152.5 259.68
-c23.7002 15.3203 104.4 31.8008 104.4 -65.5996c0 -75.9004 -47.3008 -85.7998 -71.7002 -78.5v-68.7002h-32.7002v212.8zM185.2 142.38c2 -0.799805 38.3994 -16.8994 38.3994 51c0 62 -30 53.5 -38.3994 49.2998v-100.3zM264.3 228.78
-c-0.200195 41.0996 51.2002 53.8994 79.7002 31.8994v-28.3994c-17.9004 18.2998 -47.9004 18.0996 -48.5 -2.2002c-0.700195 -26.5996 55.0996 -21.7002 53.4004 -73.2002c-1.30078 -41.5996 -47 -55 -83.2002 -33.5v30.1006
-c20.3994 -18.1006 51.3994 -18.6006 50.7998 4.89941c-0.599609 27.9004 -52.0996 23.1006 -52.2002 70.4004z" />
-    <glyph glyph-name="usps" unicode="&#xf7e1;" horiz-adv-x="576" 
-d="M460.3 206.3c-1.39941 -2.2002 -4.2998 -4.39941 -3.7998 0.100586c2.90039 11.5996 13.9004 30.5 4.40039 32c-17.8008 3.09961 -88.1006 -4.5 -88.1006 0c0 2.39941 26.7002 3.09961 37.9004 8.69922c9.39941 9.40039 10.7998 8 10.8994 8h27
-c26.9004 0 37.5 -7.5 11.7002 -48.7998zM348.2 183.7c-62.2998 -21.2002 -124.8 -54.2002 -321.2 -151.5l52.4004 245.5c185 0 335.199 5.59961 337.899 -22.6006h-196.6l30.7002 -93.2998c35 16.7998 120.899 51.7002 172.6 53.9004
-c21.7998 0.799805 30.5996 -2.90039 26.2002 -5.7998c-4.7002 -2.30078 -38 -4.90039 -102 -26.2002zM94.7002 352h454.3l-67.7002 -319.7h-423.1s402 157.3 406.399 160.2c0 0 35.7002 48 14.6006 67.7002c-6.5 6.59961 -16 6.59961 -52.4004 6.59961
-c-2.09961 19.5 -78.7998 31.5 -332.1 85.2002z" />
-    <glyph glyph-name="yarn" unicode="&#xf7e3;" horiz-adv-x="496" 
-d="M393.9 102.8c-39 -9.2998 -48.4004 -32.0996 -104 -47.3994c0 0 -2.7002 -4 -10.4004 -5.80078c-13.4004 -3.2998 -63.9004 -6 -68.5 -6.09961c-12.4004 -0.0996094 -19.9004 3.2002 -22 8.2002c-6.40039 15.2998 9.2002 22 9.2002 22
-c-8.10059 5 -9 9.89941 -9.7998 8.09961c-2.40039 -5.7998 -3.60059 -20.0996 -10.1006 -26.5c-8.7998 -8.89941 -25.5 -5.89941 -35.2998 -0.799805c-10.7998 5.7002 0.799805 19.2002 0.799805 19.2002s-5.7998 -3.40039 -10.5 3.59961
-c-6 9.2998 -17.0996 37.2998 11.5 62c-1.2998 10.1006 -4.59961 53.7002 40.6006 85.6006c0 0 -20.6006 22.7998 -12.9004 43.2998c5 13.3994 7 13.2998 8.59961 13.8994c5.7002 2.2002 11.3008 4.60059 15.4004 9.10059c20.5996 22.2002 46.7998 18 46.7998 18
-s12.4004 37.7998 23.9004 30.3994c3.5 -2.2998 16.2998 -30.5996 16.2998 -30.5996s13.5996 7.90039 15.0996 5c8.2002 -16 9.2002 -46.5 5.60059 -65.0996c-6.10059 -30.6006 -21.4004 -47.1006 -27.6006 -57.5c-1.39941 -2.40039 16.5 -10 27.8008 -41.3008
-c10.3994 -28.5996 1.09961 -52.6992 2.7998 -55.2998c0.799805 -1.39941 13.7002 -0.799805 36.3994 13.2002c12.8008 7.90039 28.1006 16.9004 45.4004 17c16.7002 0.5 17.5996 -19.2002 4.90039 -22.2002zM496 192c0 -136.9 -111.1 -248 -248 -248s-248 111.1 -248 248
-s111.1 248 248 248s248 -111.1 248 -248zM416.7 116.8c-1.7002 13.6006 -13.2002 23 -28 22.7998c-22 -0.299805 -40.5 -11.6992 -52.7998 -19.1992c-4.80078 -3 -8.90039 -5.2002 -12.4004 -6.80078c3.09961 44.5 -22.5 73.1006 -28.7002 79.4004
-c7.7998 11.2998 18.4004 27.7998 23.4004 53.2002c4.2998 21.7002 3 55.5 -6.90039 74.5c-1.59961 3.09961 -7.39941 11.2002 -21 7.39941c-9.7002 20 -13 22.1006 -15.5996 23.8008c-1.10059 0.699219 -23.6006 16.3994 -41.4004 -28
-c-12.2002 -0.900391 -31.2998 -5.30078 -47.5 -22.8008c-2 -2.19922 -5.89941 -3.7998 -10.0996 -5.39941h0.0996094c-8.39941 -3 -12.2998 -9.90039 -16.8994 -22.2998c-6.5 -17.4004 0.199219 -34.6006 6.7998 -45.7002c-17.7998 -15.9004 -37 -39.7998 -35.7002 -82.5
-c-34 -36 -11.7998 -73 -5.59961 -79.6006c-1.60059 -11.0996 3.69922 -19.3994 12 -23.7998c12.5996 -6.7002 30.2998 -9.59961 43.8994 -2.7998c4.90039 -5.2002 13.7998 -10.0996 30 -10.0996c6.7998 0 58 2.89941 72.6006 6.5c6.7998 1.59961 11.5 4.5 14.5996 7.09961
-c9.7998 3.09961 36.7998 12.2998 62.2002 28.7002c18 11.7002 24.2002 14.2002 37.5996 17.3994c12.9004 3.2002 21 15.1006 19.4004 28.2002z" />
-    <glyph glyph-name="airbnb" unicode="&#xf834;" 
-d="M224 74.8799h0.0595703c24.71 31.1797 39.5508 58.9297 45 83.1797c22.5508 88 -112.609 88 -90.0596 0c4.91992 -23.75 19.7598 -51.5098 45 -83.1797zM362.15 1.65039c35.6396 15.3496 50.1797 53.5693 37.0098 86.6396
-c-25.4902 61.6104 -78.8398 168.47 -114.84 239.09c-16.9707 33.9297 -28.0303 59.8701 -60.3701 59.8701c-33.8203 0 -43.6299 -27.3301 -59.3799 -57.4004c-4.15039 -10.3799 -100.771 -202.399 -115.87 -241.56c-17.8105 -50.0303 21.2998 -98.5205 71.2998 -91.0898
-c24.5996 2.22949 52.6201 18.8701 85.1504 54.9199c-29.2002 37.1104 -47.5 70.3096 -54.4307 99.5c-11.8799 53.9902 18.3604 100.5 73.2803 100.5c64.96 0 122.75 -69.9297 18.8496 -200c35.6309 -39.5898 77.2402 -68.7803 119.301 -50.4697zM409.15 137.77
-c0 -0.679688 16.8496 -35.6895 16.8301 -39.5791c25.2393 -69.3301 -26.7207 -130.24 -89.6104 -130.19c-11.1104 0 -53.6904 -1.37988 -112.37 62.4004c-51.7598 -56.3408 -90.6602 -62.4004 -112.37 -62.4004c-62.8896 0 -114.85 60.8604 -89.6299 130.19
-c0.889648 2.61914 11.1797 32.71 117.34 245.02c19.79 41.1201 39.1406 72.79 84.6602 72.79c49.1299 0 56.2695 -3.92969 185.15 -278.23z" />
-    <glyph glyph-name="battle-net" unicode="&#xf835;" horiz-adv-x="512" 
-d="M448.61 222.38c60.75 -36.25 71.9893 -73.8096 57.3193 -93.6895c-4.70996 -6.88086 -25.1797 -36.2402 -148 -31.6406c-21.8193 -30.3994 -45.25 -53.2695 -67.4697 -69.2695c28.54 -53.7803 54.2998 -85.0303 62.54 -91.7803c0 0 -3.44043 0.160156 -8.58008 3.37012
-c-3.2627 1.95117 -6.17871 4.31836 -8.75 7.08984c-15.6299 16.1797 -35.5195 41.9404 -55.7002 74.1201c-43.9502 -28.1104 -81.1299 -29.0996 -88.4395 -9.4502c-4.83984 10.8301 1.5293 26.5 9.05957 39.3398c-31.3203 -17.5098 -61.7002 -26.8496 -86.7002 -21.1396
-c-6.79004 1.54004 -17.6299 5.50977 -23.1992 18.2598c-4.52051 9.53027 -6.02051 24.2598 -0.150391 47.1406c9.07031 35.3398 37.5801 82.2998 47.3096 97.6992c3.75 -8.62988 -20.7793 40.1904 -26 93.1904c-89.1592 0 -110.56 -8.83984 -111.56 -9.21973
-c1.54004 2.44922 7.86035 7.26953 17.7598 9.71973c22 5.47949 54.6406 9.84961 93 11.2295c-2.38965 52.0703 15.3398 84.7705 36 81.29h0.180664c11.3291 -1.2998 21.2598 -13.5801 28.5 -25.9297c0.669922 35.2002 7.7998 65.54 25 84.0703
-c4.72949 5.14941 13.5693 12.5498 27.3994 11h0.0498047c10.5205 -0.850586 24 -6.91992 40.8398 -23.4707c25.6006 -25.0693 51.54 -71.9893 60.4805 -88.9297c37.25 -3.7002 68.7695 -12.5801 93.7695 -23.7998c32.3506 51.5898 46.4805 89.5303 48.2002 100.05
-c0.640625 -1.25 2.93066 -8.41992 -0.450195 -20.25c-6.22949 -21.6201 -18.5791 -51.7197 -36.3398 -85.2998c45.79 -23.7305 65.3203 -55.0098 52.8506 -71.3301c-3.35059 -4.94043 -12.0498 -12.5498 -38.9199 -12.3701zM370.76 116.16
-c70.4102 4.37988 79.6504 20.5703 78.5098 33.5c-1.87988 21.25 -21.1992 41.2598 -49.0596 58.8301c0.889648 -24.5605 -5.63965 -54.6201 -29.4502 -92.3301zM216.9 60.3096c-19.04 -30.46 9.19922 -39.5596 49.7998 -17.6992
-c-7 12.0898 -13.9199 24.8594 -20.6006 38.1895c-9.66992 -7.37012 -19.4395 -14.2598 -29.1992 -20.4902zM431.9 231.66c36.2598 -1.23047 29.4199 27.8496 -9.64062 51.9502c-7.22559 -12.5537 -14.7959 -24.8359 -22.7402 -36.9004
-c11.2207 -4.70996 22.0908 -9.70996 32.3809 -15.0498zM279.18 50c28.3799 18.2002 60.1689 48.1201 84.7695 85.4297c18.46 27.96 26.1494 56.0205 25.4102 79.5703c-30.5801 17.3203 -89.3604 42.7197 -167.23 57.21c0.350586 18.4805 2.08984 19.8799 2.16016 20.3301
-c13.2168 -1.61523 26.4307 -3.64844 39.3896 -6.0498c39.375 -7.36328 78.5059 -18.1924 115.34 -31.71c-15.6191 33.1494 -41.4092 47.2197 -41.5195 47.2197c1.59961 0.160156 28.1299 -6 48.8604 -43.7197c8.42676 11.2061 16.2031 22.0293 23.3301 32.4697
-c-29.96 15.46 -71.75 28.04 -116.32 30.71c-33.4502 1.99023 -61.6299 -5.38965 -81.6299 -17.8096c0.240234 -35.2607 7.66992 -98.96 34 -173.431c-16.8301 -9.12988 -17.7402 -7.87012 -18.6699 -8.25c-20.2715 48.0654 -35.623 99.999 -44.6699 152.84
-c-21.0908 -30.3994 -20.1406 -59.5 -20.1406 -59.5693c-0.919922 1.22949 -8.81934 27.4297 13.4707 64.2295c-13.5801 1.70996 -26.5508 2.9707 -38.8506 3.87988c1.57031 -33.6797 11.5703 -76.1494 31.5703 -116.069c14.8701 -29.71 35.1201 -50.3105 55.71 -61.4902
-c30.4102 17.9199 81.0498 55.6504 132.75 115.92c14.9697 -9 16.1494 -11.71 16.5098 -12c-7.91309 -10.5332 -16.2227 -20.9033 -24.9287 -31.1104c-26.1514 -30.5225 -54.2061 -58.2285 -85.0605 -84c37.5303 -3.38965 62.5303 12.1807 62.5303 12.25
-c-0.860352 -1.67969 -20.0303 -21.6797 -63.2803 -20.4092c5.5 -12.9404 10.9902 -25.0908 16.5 -36.4404zM306.579 337c-1.58008 2.4502 -39.5801 58.8496 -56.4805 54.6104c-16.8994 1.09961 -36.21 -22.9805 -38.21 -75.2803
-c21.1104 13.2402 50.1299 22.3301 94.6904 20.6699zM175.929 333.9c-3.7998 6.68945 -8.66992 12.4795 -14.4297 13.5693h-0.0898438c-24.79 1.41016 -24.75 -52.8301 -24.6699 -49.5898c13.6602 -0.00976562 27.8496 -0.410156 42.3994 -1.25977
-c-1.62012 12.6602 -2.72949 25.1699 -3.20996 37.2803zM147.869 171.9c-30.7998 -61.5098 -19.8701 -76.6104 -19.6699 -76.8203c7.38965 -15.4902 38.1299 -20.25 84.9199 4.50977c-21.9502 11.7402 -44.4902 32.6104 -65.25 72.3105zM357.929 97.0996z" />
-    <glyph glyph-name="bootstrap" unicode="&#xf836;" 
-d="M292.3 136.07c0 -42.4102 -39.7197 -41.4307 -43.9199 -41.4307h-80.8896v81.6904h80.8896c42.5605 0 43.9199 -31.9004 43.9199 -40.2598zM242.15 209.2h-74.6602v72.1797h74.6602c34.9297 0 38.4395 -20.3496 38.4395 -35.8701
-c0 -37.3096 -37.7695 -36.3096 -38.4395 -36.3096zM448 341.33v-298.66c-0.121094 -41.1553 -33.5146 -74.5488 -74.6699 -74.6699h-298.66c-41.1553 0.121094 -74.5488 33.5146 -74.6699 74.6699v298.66c0.121094 41.1553 33.5146 74.5488 74.6699 74.6699h298.66
-c41.1553 -0.121094 74.5488 -33.5146 74.6699 -74.6699zM338.05 130.14c0 21.5703 -6.64941 58.29 -49.0498 67.3506v0.729492c22.9102 9.78027 37.3398 28.25 37.3398 55.6406c0 7 2 64.7793 -77.5996 64.7793h-127v-261.33c128.229 0 139.87 -1.67969 163.6 5.70996
-c14.21 4.4209 52.71 17.9805 52.71 67.1201z" />
-    <glyph glyph-name="buffer" unicode="&#xf837;" 
-d="M427.84 67.3301l-196.5 -97.8203c-2.24707 -0.963867 -4.72266 -1.49805 -7.32129 -1.49805s-5.10156 0.53418 -7.34863 1.49805l-196.51 97.8203c-4 2 -4 5.28027 0 7.29004l47.0596 23.3799c2.25098 0.964844 4.72949 1.49805 7.33203 1.49805
-c2.60156 0 5.10742 -0.533203 7.3584 -1.49805l134.76 -67c2.24609 -0.969727 4.72168 -1.50684 7.32129 -1.50684s5.10254 0.537109 7.34863 1.50684l134.76 67c2.24902 0.964844 4.72656 1.49902 7.32715 1.49902s5.10449 -0.53418 7.35352 -1.49902l47.0596 -23.4297
-c4.0498 -1.95996 4.0498 -5.24023 0 -7.24023zM427.84 203.86c4.0498 -2.01074 4.0498 -5.29004 0 -7.31055l-196.5 -97.7998c-2.24707 -0.964844 -4.74902 -1.49902 -7.34863 -1.49902c-2.59863 0 -5.07422 0.53418 -7.32129 1.49902l-196.51 97.7998
-c-4 2.02051 -4 5.31055 0 7.31055l47.0596 23.4297c2.25098 0.964844 4.75684 1.49805 7.3584 1.49805c2.60254 0 5.08105 -0.533203 7.33203 -1.49805l134.76 -67.0801c2.24902 -0.959961 4.75 -1.49121 7.34863 -1.49121c2.59766 0 5.07227 0.53125 7.32129 1.49121
-l134.76 67.0801c2.24902 0.964844 4.75293 1.49902 7.35352 1.49902s5.07812 -0.53418 7.32715 -1.49902zM20.1602 317.58c-4.0498 1.86035 -4.0498 4.88965 0 6.74023l196.5 90.2793c2.2666 0.900391 4.76074 1.39551 7.3457 1.39551
-c2.58594 0 5.05762 -0.495117 7.32422 -1.39551l196.51 -90.2793c4 -1.85059 4 -4.87988 0 -6.74023l-196.51 -90.29c-2.26953 -0.890625 -4.76172 -1.37988 -7.3457 -1.37988s-5.05469 0.489258 -7.32422 1.37988z" />
-    <glyph glyph-name="chromecast" unicode="&#xf838;" horiz-adv-x="512" 
-d="M447.8 384c23.6006 0 42.9004 -19.0996 42.9004 -42.7002v-298.6c0 -23.6006 -19.1006 -42.7002 -42.7002 -42.7002h-149.4v42.7002h149.2v298.6h-383.8v-63.8994h-42.7002v63.8994c0 23.6006 19.1006 42.7002 42.7002 42.7002h383.8zM21.2998 64.4004
-c35.2998 0 63.9004 -28.6006 63.9004 -63.9004h-63.9004v63.9004v0zM21.2998 149.4c82.4004 -0.100586 149.4 -67 149.3 -149.4h-42.6992c0 58.9004 -47.7002 107 -106.601 107v42.4004zM213.4 0c-0.100586 106 -86.1006 192.4 -192.101 192.2v42.3994
-c129.5 -0.299805 234.3 -105.1 234.8 -234.6h-42.6992z" />
-    <glyph glyph-name="evernote" unicode="&#xf839;" horiz-adv-x="384" 
-d="M120.82 315.79c1.59961 -22.3096 -17.5508 -21.5898 -21.6104 -21.5898c-68.9297 0 -73.6396 1 -83.5801 -3.33984c-0.55957 -0.220703 -0.740234 0 -0.370117 0.370117l108.53 110.319c0.379883 0.370117 0.599609 0.219727 0.379883 -0.370117
-c-4.34961 -9.98926 -3.34961 -15.0898 -3.34961 -85.3896zM199.82 7.79004c-14.6807 37.0801 13 76.9297 52.5195 76.6201c17.4902 0 22.6006 -23.21 7.9502 -31.4199c-6.19043 -3.2998 -24.9502 -1.74023 -25.1396 -19.2002
-c-0.0507812 -17.0898 19.6699 -25 31.1992 -24.8896h0.0107422c25.1895 0 45.6396 20.4502 45.6396 45.6396v0.00976562v0.0800781c0 11.6299 -7.79004 47.2197 -47.54 55.3398c-7.71973 1.54004 -65 6.35059 -68.3496 50.5205
-c-3.74023 -16.9307 -17.4004 -63.4902 -43.1104 -69.0898c-8.74023 -1.94043 -69.6797 -7.64062 -112.92 36.7695c0 0 -18.5703 15.2305 -28.2305 57.9502c-3.37988 15.75 -9.2793 39.7002 -11.1396 62c0 18 11.1396 30.4502 25.0703 32.2002c81 0 90 -2.32031 101 7.7998
-c9.81934 9.24023 7.7998 15.5 7.7998 102.78c1 8.2998 7.79004 30.8096 53.4102 24.1396c6 -0.860352 31.9102 -4.17969 37.4795 -30.6396l64.2607 -11.1504c20.4297 -3.70996 70.9395 -7 80.5996 -57.9404c22.6602 -121.09 8.91016 -238.46 7.7998 -238.46
-c-15.9795 -114.38 -111.07 -108.85 -111.07 -108.85c-18.9492 0.230469 -54.25 9.40039 -67.2695 39.8301zM280.76 212.63c-1 -1.91992 -2.2002 -6 0.850586 -7c14.0898 -4.92969 39.75 -6.83984 45.8799 -5.53027c3.10938 0.25 3.0498 4.43066 2.47949 6.65039
-c-3.5293 21.8496 -40.8301 26.5 -49.2393 5.91992z" />
-    <glyph glyph-name="itch-io" unicode="&#xf83a;" horiz-adv-x="512" 
-d="M71.9199 413.23c19.2197 1.66992 114.32 2.76953 184.08 2.76953s116.56 -0.400391 184 -2.73047c21.7197 -12.9297 64.5195 -62.0996 64.9199 -75v-21.3398c0 -27.0596 -25.25 -50.8398 -48.25 -50.8398c-27.54 0 -50.54 22.8799 -50.54 50
-c0 -27.1494 -22.2295 -50 -49.7598 -50s-49 22.8799 -49 50c0 -27.1494 -23.5898 -50 -51.1602 -50h-0.5c-27.5703 0 -51.1602 22.8799 -51.1602 50c0 -27.1494 -21.4199 -50 -49 -50s-49.7598 22.8799 -49.7598 50c0 -27.1494 -22.9697 -50 -50.54 -50
-c-22.96 0 -48.25 23.7803 -48.25 50.8398v21.3398c0.400391 12.8906 43.2002 62.0605 64.9199 74.9609zM204.24 278.84c9.91797 -17.3369 28.5586 -28.9785 49.9453 -28.9785c0.614258 0 1.22559 0.00976562 1.83398 0.0283203c28.7109 0 44.6602 16.4502 51.7607 28.9404
-c22 -38.3398 77.8496 -38.7598 99.8496 -0.240234c13.1201 -23.0596 43.0801 -32.0996 56 -27.6602c3.57031 -37.1494 13.9004 -236.88 -17.75 -269.149c-77.6797 -18.1201 -299.76 -18.6699 -379.76 0c-31.4004 32.0195 -21.6006 229 -17.7305 269.149
-c12.8301 -4.41016 42.8301 4.52051 56 27.6602c21.9502 -38.46 77.8506 -38.1494 99.8506 0.25zM162.66 225.07l-0.0205078 -0.0703125c-52.3193 0 -65.21 -77.4502 -83.8799 -144.45c-17.2598 -62.1494 5.52051 -63.6699 33.9404 -63.7295
-c42.1494 1.56934 65.4902 32.1797 65.4902 62.79c53.6191 -8.79004 116.3 -6.43066 155.55 0c0 -30.6104 23.3398 -61.2207 65.4902 -62.79c28.4297 0.0595703 51.21 1.58008 33.9492 63.7295c-18.6494 66.9199 -31.54 144.45 -83.8701 144.45
-c-16.46 0 -31.0898 0 -49.25 -19.71c-14.6436 1.48535 -28.6113 2.24609 -43.6445 2.24609c-15.0342 0 -29.8906 -0.760742 -44.5352 -2.24609c-18.1299 19.7803 -32.75 19.7803 -49.2197 19.7803zM256 177.21l-0.0595703 -0.00976562s44.3496 -40.7598 52.3496 -55.2402
-l-29 1.16992v-25.2803c0 -1.15918 -11.6602 -0.699219 -23.3096 -0.15918c-1.99023 0 -23.3301 -1.39062 -23.3301 0.15918v25.3203l-29 -1.16992c7.96973 14.4404 52.3496 55.21 52.3496 55.21z" />
-    <glyph glyph-name="salesforce" unicode="&#xf83b;" horiz-adv-x="640" 
-d="M248.89 202.36h-26.3496c0.69043 5.15918 3.32031 14.1201 13.6396 14.1201c6.75 0 11.9707 -3.82031 12.71 -14.1201zM385.55 216.24c0.450195 0 14.1104 1.75977 14.1104 -20c0 -6.45996 -1.11035 -20 -14.1104 -20c-0.479492 0 -14.1094 -1.77051 -14.1094 20
-c0 21.7695 13.6396 20 14.1094 20zM142.33 192.48c4.2002 3.60938 15.6104 2.71973 20.9297 1.64941v-16.9395c-5.85938 -1.1709 -16.2295 -2.75 -20.9297 0.949219c-1.20996 1 -3.29004 2.27051 -3.29004 7.05078
-c-0.00976562 0.166992 -0.0205078 0.325195 -0.0205078 0.495117c0 2.75684 1.29492 5.21387 3.31055 6.79492zM640 216c0 -87.5801 -80 -154.39 -165.36 -136.43c-18.3701 -33 -70.7295 -70.75 -132.199 -41.6299c-41.1602 -96.0508 -177.891 -92.1807 -213.811 5.16992
-c-119.72 -23.8906 -178.82 138.37 -75.2695 199.279c-34.75 79.4307 22.6396 173.61 114.31 173.61c40.1748 -0.0253906 75.8613 -19.0605 98.5605 -48.7002c20.6992 21.4004 49.3994 34.8105 81.1494 34.8105c42.3398 0 79 -23.5205 98.7998 -58.5703
-c92.8203 40.6797 193.82 -28.2305 193.82 -127.54zM120.45 184.2c0 11.7598 -11.6904 15.1699 -17.8701 17.1699c-5.27051 2.11035 -13.4102 3.50977 -13.4102 8.93945c0 9.45996 17 6.66016 25.1699 2.12012c0 0 1.16992 -0.709961 1.64062 0.470703
-c0.239258 0.699219 2.35938 6.58008 2.58984 7.29004c0.0341797 0.108398 0.0527344 0.223633 0.0527344 0.34375c0 0.492188 -0.313477 0.911133 -0.75293 1.06543c-12.3301 7.63086 -40.7002 8.51074 -40.7002 -12.6992c0 -12.46 11.4902 -15.4404 17.8799 -17.1699
-c4.71973 -1.58008 13.1699 -3 13.1699 -8.7002c0 -4 -3.5293 -7.06055 -9.16992 -7.06055c-7.11328 0.0126953 -13.709 2.38281 -19 6.35059c-0.469727 0.229492 -1.41992 0.709961 -1.64941 -0.709961l-2.40039 -7.4707
-c-0.469727 -0.939453 0.230469 -1.17969 0.230469 -1.40918c1.75 -1.40039 10.2998 -6.59082 22.8193 -6.59082c13.1699 0 21.4004 7.06055 21.4004 18.1104v-0.0498047zM152.45 226.78c-10.1299 0 -18.6602 -3.16992 -21.4004 -5.18066
-c-0.260742 -0.179688 -0.431641 -0.481445 -0.431641 -0.822266c0 -0.219727 0.0722656 -0.422852 0.191406 -0.586914l2.59082 -7.06055c0.119141 -0.417969 0.504883 -0.723633 0.960938 -0.723633c0.0751953 0 0.148438 0.0078125 0.21875 0.0234375
-c0.650391 0 6.7998 4 16.9297 4c4 0 7.06055 -0.709961 9.18066 -2.35938c3.59961 -2.80078 3.05957 -8.29004 3.05957 -10.5801c-4.79004 0.299805 -19.1104 3.43945 -29.4102 -3.75977c-4.44727 -3.05078 -7.36621 -8.16895 -7.36621 -13.9639
-c0 -0.199219 0.0195312 -0.378906 0.0263672 -0.576172c0 -5.90039 1.50977 -10.4004 6.58984 -14.3506c12.2402 -8.16016 36.2803 -2 38.1006 -1.41016c1.5791 0.320312 3.5293 0.660156 3.5293 1.87988v33.8809c0.0400391 4.60938 0.320312 21.6396 -22.7793 21.6396z
-M199 247.76c0.00195312 0.0244141 0.00195312 0.0488281 0.00195312 0.0732422c0 0.613281 -0.49707 1.11035 -1.10938 1.11035c-0.0244141 0 -0.0488281 -0.00195312 -0.0722656 -0.00292969h-9.82031
-c-0.0205078 0.000976562 -0.0419922 0.000976562 -0.0634766 0.000976562c-0.612305 0 -1.10938 -0.49707 -1.10938 -1.10938c0 -0.0244141 0.000976562 -0.0478516 0.00292969 -0.0722656v-79c-0.00195312 -0.0234375 -0.00195312 -0.0478516 -0.00195312 -0.0722656
-c0 -0.613281 0.49707 -1.11035 1.10938 -1.11035c0.0214844 0 0.0419922 0.00195312 0.0625 0.00292969h9.87988c0.0244141 -0.00195312 0.0488281 -0.00292969 0.0732422 -0.00292969c0.613281 0 1.11035 0.498047 1.11035 1.11035
-c0 0.0244141 -0.00195312 0.0478516 -0.00390625 0.0722656zM254.75 218.83c-2.09961 2.30957 -6.79004 7.53027 -17.6504 7.53027c-3.50977 0 -14.1592 -0.230469 -20.6992 -8.94043c-6.35059 -7.62988 -6.58008 -18.1104 -6.58008 -21.4102
-c0 -3.12012 0.149414 -14.2598 7.05957 -21.1699c2.63965 -2.91016 9.06055 -8.22949 22.8105 -8.22949c10.8193 0 16.4697 2.34961 18.5791 3.75977c0.470703 0.240234 0.710938 0.709961 0.240234 1.87988l-2.34961 6.83008
-c-0.200195 0.430664 -0.637695 0.729492 -1.14355 0.729492c-0.0917969 0 -0.179688 -0.0107422 -0.266602 -0.0292969c-2.58984 -0.94043 -6.34961 -2.82031 -15.29 -2.82031c-17.4199 0 -16.8496 14.7402 -16.9404 16.7002h37.1709
-c0.567383 0.0117188 1.04102 0.40918 1.16992 0.939453c-0.290039 0 2.06934 14.7002 -6.09082 24.2305h-0.0195312zM291.44 166.14c13.1699 0 21.4092 7.06055 21.4092 18.1104c0 11.7598 -11.6992 15.1699 -17.8799 17.1699
-c-4.13965 1.66016 -13.4102 3.37988 -13.4102 8.94043c0 3.75977 3.29004 6.34961 8.4707 6.34961c5.98828 -0.120117 11.6924 -1.64844 16.7002 -4.22949c5.00684 -2.58203 1.17969 -0.710938 1.64941 0.469727c0.230469 0.700195 2.35059 6.58008 2.58008 7.29004
-c0.0351562 0.108398 0.0537109 0.223633 0.0537109 0.34375c0 0.492188 -0.314453 0.911133 -0.753906 1.06641c-7.91016 4.89941 -16.7402 4.93945 -20.2295 4.93945c-12 0 -20.46 -7.29004 -20.46 -17.6396c0 -12.46 11.4795 -15.4404 17.8701 -17.1699
-c6.10938 -2 13.1699 -3.26074 13.1699 -8.7002c0 -4 -3.52051 -7.06055 -9.16992 -7.06055c-7.1123 0.015625 -13.708 2.38574 -19 6.35059c-0.175781 0.150391 -0.402344 0.241211 -0.651367 0.241211c-0.535156 0 -0.973633 -0.422852 -0.999023 -0.951172
-l-2.34961 -7.52051c-0.470703 -0.939453 0.229492 -1.17969 0.229492 -1.40918c1.71973 -1.40039 10.3301 -6.59082 22.79 -6.59082h-0.0195312zM357.09 224c0 0.709961 -0.240234 1.17969 -1.17969 1.17969h-11.7598c0 0.140625 0.939453 8.94043 4.46973 12.4707
-c4.16016 4.14941 11.7598 1.63965 12 1.63965c1.16992 -0.469727 1.41016 0 1.63965 0.469727l2.83008 7.77051c0.700195 0.939453 0 1.16992 -0.240234 1.41016c-5.08984 2 -17.3496 2.86914 -24.46 -4.24023c-5.47949 -5.48047 -7 -13.9199 -8 -19.5205h-8.46973
-c-0.624023 -0.0517578 -1.12305 -0.553711 -1.16992 -1.17969l-1.41992 -7.75977c0 -0.700195 0.240234 -1.16992 1.17969 -1.16992h8.23047c-8.50977 -47.9004 -8.75 -50.21 -10.3506 -55.5205c-1.08008 -3.62012 -3.29004 -6.89941 -5.87988 -7.75977
-c-0.0898438 0 -3.87988 -1.67969 -9.63965 0.240234c0 0 -0.94043 0.469727 -1.41016 -0.709961c-0.240234 -0.709961 -2.58984 -6.82031 -2.83008 -7.53027s0 -1.41016 0.469727 -1.41016c5.11035 -2 13 -1.76953 17.8809 0
-c6.2793 2.28027 9.71973 7.88965 11.5293 12.9404c2.75 7.70996 2.81055 9.79004 11.7598 59.7393h12.2305c0.626953 0.0517578 1.12891 0.553711 1.17969 1.18066zM410.48 208c-0.560547 1.67969 -5.10059 18.1104 -25.1709 18.1104c-15.25 0 -23 -10 -25.1592 -18.1104
-c-1 -3 -3.18066 -14 0 -23.5195c0.0898438 -0.300781 4.40918 -18.1201 25.1592 -18.1201c14.9502 0 22.9004 9.60938 25.1709 18.1201c3.20996 9.60938 1.00977 20.5195 0 23.5195zM455.88 224.7c-5 1.64941 -16.6201 1.89941 -22.1104 -5.41016v4.46973
-c0.00195312 0.0214844 0.00195312 0.0419922 0.00195312 0.0634766c0 0.612305 -0.49707 1.11035 -1.10938 1.11035c-0.0244141 0 -0.0478516 -0.00195312 -0.0722656 -0.00390625h-9.39941c-0.0244141 0.00195312 -0.0488281 0.00292969 -0.0732422 0.00292969
-c-0.612305 0 -1.11035 -0.498047 -1.11035 -1.11035c0 -0.0214844 0.00195312 -0.0410156 0.00292969 -0.0625v-55.2793c-0.000976562 -0.0214844 -0.00195312 -0.0419922 -0.00195312 -0.0634766c0 -0.618164 0.501953 -1.11914 1.12012 -1.11914
-c0.0214844 0 0.0410156 0.000976562 0.0625 0.00195312h9.63965c0.0205078 -0.000976562 0.0410156 -0.00195312 0.0625 -0.00195312c0.618164 0 1.12012 0.501953 1.12012 1.12012c0 0.0214844 -0.00195312 0.0410156 -0.00292969 0.0625v27.7695
-c0 2.91016 0.0498047 11.3701 4.45996 15.0498c4.90039 4.90039 12 3.36035 13.4102 3.06055c0.630859 0.0107422 1.1709 0.393555 1.41016 0.939453c1.15918 2.57324 2.19629 5.28125 3.05957 8c0.0517578 0.130859 0.0800781 0.273438 0.0800781 0.422852
-c0 0.416992 -0.21875 0.783203 -0.549805 0.987305v-0.00976562zM502.69 170.6l-2.12012 7.29004c-0.470703 1.18066 -1.41016 0.709961 -1.41016 0.709961c-4.23047 -1.81934 -10.1504 -1.88965 -11.29 -1.88965c-4.63965 0 -17.1699 1.12988 -17.1699 19.7598
-c0 6.23047 1.84961 19.7607 16.4697 19.7607c0.299805 0.00683594 0.601562 0.0107422 0.90332 0.0107422c3.70605 0 7.26562 -0.587891 10.6172 -1.66113c3.35059 -1.07324 0.939453 -0.469727 1.17969 0.709961c0.939453 2.58984 1.63965 4.46973 2.58984 7.53027
-c0.230469 0.939453 -0.469727 1.16992 -0.709961 1.16992c-11.5898 3.87012 -22.3398 2.5293 -27.7598 0c-1.58984 -0.740234 -16.2305 -6.49023 -16.2305 -27.5205c0 -2.89941 -0.580078 -30.1094 28.9404 -30.1094c5.45117 0.0107422 10.6943 1.02051 15.5195 2.83008
-c0.319336 0.236328 0.527344 0.616211 0.527344 1.04395c0 0.130859 -0.0214844 0.256836 -0.0566406 0.375977v-0.0107422zM556.56 210.12c-0.799805 3 -5.36914 16.2295 -22.3496 16.2295c-16 0 -23.5195 -10.1094 -25.6396 -18.5898
-c-1.07129 -3.53906 -1.64746 -7.29199 -1.64746 -11.1787c0 -0.198242 -0.00585938 -0.383789 -0.00292969 -0.581055c0 -25.8701 18.8398 -29.4004 29.8799 -29.4004c10.8203 0 16.46 2.35059 18.5801 3.76074c0.469727 0.239258 0.709961 0.709961 0.240234 1.87988
-l-2.36035 6.83008c-0.200195 0.430664 -0.636719 0.729492 -1.14258 0.729492c-0.0927734 0 -0.180664 -0.0107422 -0.267578 -0.0302734c-2.58984 -0.939453 -6.34961 -2.81934 -15.29 -2.81934c-17.4199 0 -16.8496 14.7402 -16.9297 16.7002h37.1602
-c0.569336 0.0136719 1.04395 0.40918 1.17969 0.939453c-0.239258 0.00976562 0.94043 7.07031 -1.41016 15.54v-0.00976562zM533.27 216.47c5.11035 0 11.8506 -2.2002 12.7305 -14.1201h-26.3701c0.639648 5.12012 3.31055 14.1201 13.6396 14.1201z" />
-    <glyph glyph-name="speaker-deck" unicode="&#xf83c;" horiz-adv-x="512" 
-d="M213.86 152h-113.86c-55.1914 0 -100 44.8086 -100 100s44.8086 100 100 100h132.84c22.0771 0 40 -17.9238 40 -40s-17.9229 -40 -40 -40h-134.84c-26.4697 0 -26.4502 -40 0 -40h113.82c55.1914 0 100 -44.8086 100 -100s-44.8086 -100 -100 -100h-171.82
-c-22.0762 0 -40 17.9238 -40 40s17.9238 40 40 40h173.86c26.4795 0 26.46 40 0 40zM298 32c26.7314 18.1455 45.667 46.8174 51.1104 80h64.5498c10.8652 0.0927734 19.6572 8.94238 19.6572 19.8291c0 0.0585938 0.00292969 0.113281 0.00292969 0.170898v120v0.173828
-c0 10.8867 -8.79492 19.7334 -19.6602 19.8262h-117.24c9.34473 10.6875 15.0088 24.6729 15.0088 39.9697c0 15.2979 -5.66406 29.3428 -15.0088 40.0303h136.93c43.4404 0 78.6504 -35.8203 78.6504 -80v-160c0 -44.1797 -35.21 -80 -78.6504 -80h-135.35z" />
-    <glyph glyph-name="symfony" unicode="&#xf83d;" horiz-adv-x="512" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM389.74 296.46c15.3496 0.540039 19.7695 15.4404 19.5195 23.1299c-0.639648 18.0605 -19.6699 29.46 -44.8301 28.6504
-c-1.89941 -0.0703125 -65.2598 3.46973 -102.43 -105.53c-10.0596 8.29004 -57.7695 65.1602 -110.58 25.8096c-18.9502 -14.1797 -31.4199 -47.9199 -2.9502 -79.6699c16.9502 -18.1396 26.7207 -25.3301 22.25 -39.8496c-9.14941 -29.79 -55.5596 -16.1602 -51 -1.38965
-c1.36035 4.38965 3.49023 4.46973 6.28027 13.0693c7.74023 25.3203 -27.1104 37.75 -34.6201 13.6006c-4.32031 -14.0605 2.37988 -39.5107 38.3799 -50.6201c42.1602 -12.96 77.8203 10.0098 82.8799 39.9395c3.2002 18.75 -5.29004 32.6904 -20.7998 50.6201l-12.6299 14
-c-7.66016 7.7002 -10.29 20.7002 -2.37012 30.7002c6.69043 8.45996 16.2002 12.0605 31.8105 7.83008c22.7695 -6.16992 32.9199 -21.9697 49.8496 -34.7197c-1.23047 -4 -10.04 -32.3398 -18.2305 -82c-12.1094 -63.4902 -21.3496 -98.3506 -45.3496 -118.351
-c-4.83984 -3.48926 -11.7598 -8.63965 -22.1797 -9c-1.94043 -0.0595703 -14.1406 2.83984 -2.0498 12.5508c15.2393 8.3291 7.00977 34.75 -14.8809 34c-9.85938 -0.330078 -24.8691 -9.59082 -24.3096 -26.5908c0.580078 -17.5293 16.9297 -30.6895 41.5801 -29.8398
-c13.1797 0.44043 42.5801 5.7998 71.5801 40.2598c39.8496 46.7207 47.4395 102.2 58.2002 161.721c51.6797 -6.11035 77.2393 17.8398 77.5996 35.7002c0.549805 24.2998 -28 23.46 -32 5.2998c-1.91992 -8.83984 13.4199 -16.8105 1.41992 -24.5605
-c-8.49023 -5.5 -23.71 -9.37012 -45.1396 -6.21973c10.2998 56.8496 19.1094 112.56 58.8896 113.85c2.70996 0.150391 12.6396 -0.119141 12.8701 -6.66992c0.150391 -5.41016 -6.7998 -9.66992 -6.53027 -18.8496c0.370117 -10.4199 8.2998 -17.2803 19.7705 -16.8701z
-" />
-    <glyph glyph-name="waze" unicode="&#xf83f;" horiz-adv-x="512" 
-d="M502.17 246.33c14.5205 -85.8604 -30.9395 -167.92 -113.17 -208.13c13 -34.1006 -12.4004 -70.2002 -48.3203 -70.2002c-27.5918 0.0214844 -50.1543 21.752 -51.5693 49c-6.44043 -0.19043 -64.2002 0 -76.3301 0.639648
-c-1.11328 -27.5479 -23.8281 -49.5713 -51.6475 -49.5713c-0.725586 0 -1.41504 -0.0175781 -2.13281 0.0117188c-33.8604 1.36035 -57.9502 34.8398 -47 67.9199c-37.21 13.1104 -72.54 34.8701 -99.6201 70.7998c-13 17.2803 -0.479492 41.7998 20.8398 41.7998
-c46.3105 0 32.2207 54.1699 43.1504 110.261c18.4297 93.9395 116.75 157.14 211.72 157.14c102.48 0 197.15 -70.6699 214.08 -169.67zM373.51 59.7197c42 19.1807 81.3301 56.71 96.29 102.141c40.4805 123.09 -64.1494 228 -181.71 228
-c-83.4502 0 -170.32 -55.4199 -186.07 -136c-9.5293 -48.9102 5 -131.351 -68.75 -131.351c24.9404 -33.1094 58.3301 -52.6201 93.7305 -64.0498c24.6602 21.7998 63.8701 15.4697 79.8301 -14.3398c14.2197 -1 79.1895 -1.17969 87.9004 -0.820312
-c8.5625 16.7266 25.9746 28.1865 46.041 28.1865c12.418 0 23.8223 -4.45703 32.7383 -11.7666zM205.12 260.87c0 34.7402 50.8398 34.75 50.8398 0s-50.8398 -34.7402 -50.8398 0zM321.69 260.87c0 34.7402 50.8594 34.75 50.8594 0s-50.8594 -34.75 -50.8594 0z
-M199.08 190.18c-3.44043 16.9404 22.1797 22.1807 25.6201 5.20996l0.0595703 -0.279297c4.14062 -21.4199 29.8506 -44 64.1201 -43.0703c35.6797 0.94043 59.25 22.21 64.1104 42.7695c4.45996 16.0508 28.5996 10.3604 25.4697 -6
-c-5.22949 -22.1797 -31.21 -62 -91.46 -62.8994c-42.5498 0 -80.8799 27.8398 -87.9004 64.25z" />
-    <glyph glyph-name="yammer" unicode="&#xf840;" horiz-adv-x="512" 
-d="M421.78 295.83c-48.1602 -26.3896 -118.561 -58.1504 -130.2 -50s91.4395 80.3701 106.689 88.7695c0.920898 0.5 1.80078 0.970703 2.63086 1.40039c2.07227 0.612305 4.28125 0.954102 6.55176 0.954102c12.7275 0 23.0605 -10.332 23.0605 -23.0596
-c0 -7.31445 -3.41309 -13.8389 -8.73242 -18.0645zM421.78 78.6602c5.27539 -4.22949 8.64258 -10.7148 8.64258 -17.9961c0 -12.7334 -10.3369 -23.0703 -23.0693 -23.0703c-2.24023 0 -4.40527 0.320312 -6.45312 0.916016
-c-0.830078 0.410156 -1.70996 0.900391 -2.63086 1.41016c-15.2695 8.38965 -118.25 80.6396 -106.689 88.7402c11.5596 8.09961 82.04 -23.6201 130.2 -50zM464.21 211c10.4287 -2.18359 18.2344 -11.4395 18.2344 -22.5127
-c0 -11.4219 -8.34375 -20.9102 -19.2646 -22.6973c-54.9102 0.0195312 -131.93 6.00977 -138.21 18.7598c-6.2793 12.75 118.84 26.5098 136.24 26.5098c1.0498 0 2.0498 -0.0595703 3 -0.0595703zM31 351.35c-0.817383 2.46387 -1.26074 5.09766 -1.26074 7.83496
-c0 13.7314 11.1484 24.8799 24.8799 24.8799c9.96582 0 18.5498 -5.8457 22.5205 -14.3145l81 -205.06h1.20996l77 203.529c3.42188 8.7627 11.9502 14.9775 21.9189 14.9775c12.9805 0 23.5195 -10.5391 23.5195 -23.5195
-c0 -2.33398 -0.353516 -4.59863 -0.988281 -6.72754l-109.6 -273.391c-18.5498 -47.2197 -37.1201 -79.5596 -93.29 -79.5596c-0.185547 -0.000976562 -0.371094 -0.000976562 -0.556641 -0.000976562c-7.9707 0 -15.6465 0.666016 -23.2539 1.95117
-c-8.90723 2.55371 -15.4336 10.7646 -15.4336 20.4883c0 11.7607 9.54883 21.3096 21.3105 21.3096c0.349609 0 0.677734 -0.0117188 1.02344 -0.0283203c0.660156 -0.0595703 10.9102 -0.660156 13.8604 -0.660156c30.4697 0 43.7393 18.9404 58.0693 59.4102z" />
-    <glyph glyph-name="git-alt" unicode="&#xf841;" 
-d="M439.55 211.95c5.22266 -5.22363 8.45508 -12.4463 8.45508 -20.4092s-3.23242 -15.1768 -8.45508 -20.4014l-194.689 -194.689c-5.22363 -5.21973 -12.4443 -8.4502 -20.4043 -8.4502c-7.96094 0 -15.1729 3.23047 -20.3965 8.4502l-195.609 195.6
-c-5.22266 5.22363 -8.45508 12.4463 -8.45508 20.4092s3.23242 15.1768 8.45508 20.4014l134.12 134.14l50.79 -50.8496c-5.95996 -14.2607 -2.16016 -36.4902 18.6396 -45v-123c-22.3203 -9.09082 -28.8203 -38.4004 -11.25 -56
-c6.21582 -6.21191 14.8066 -10.0557 24.2803 -10.0557c9.47266 0 18.0547 3.84375 24.2695 10.0557c13.1807 13.1494 16.2197 42.46 -9.08008 55v121.85l46.3506 -46.29c-14.21 -34.4697 29.5098 -63.8301 56 -37.3398c25.71 25.6895 -1.24023 68.4902 -35.4707 56.6895
-l-49.6592 49.6602c9.29004 26.9102 -16.3301 52.8203 -43.3906 43.6807l-51.5195 51.5195l40.6602 40.6299c5.22461 5.2207 12.4463 8.45117 20.4082 8.45117c7.96289 0 15.1768 -3.23047 20.4014 -8.45117z" />
-    <glyph glyph-name="stackpath" unicode="&#xf842;" 
-d="M244.6 215.6c0 -8.5 -4.25977 -20.4893 -21.3398 -20.4893h-19.6094v41.4697h19.6094c17.1299 0 21.3398 -12.3604 21.3398 -20.9805zM448 416v-448h-448v448h448zM151.3 160.16c0 21.2402 -12.1201 34.54 -46.7197 44.8496c-20.5703 7.41016 -26 10.9102 -26 18.6299
-c0 7.7207 7 14.6104 20.4102 14.6104c14.0898 0 20.79 -8.4502 20.79 -18.3496h30.7002l0.189453 0.569336c0.5 19.5703 -15.0596 41.6504 -51.1201 41.6504c-23.3701 0 -52.5498 -10.75 -52.5498 -38.29c0 -19.4004 9.25 -31.29 50.7402 -44.3701
-c17.2598 -6.15039 21.9102 -10.4004 21.9102 -19.4795c0 -15.2002 -19.1309 -14.2305 -19.4707 -14.2305c-20.3994 0 -25.6494 9.09961 -25.6494 21.9004h-30.7998l-0.180664 -0.560547c-0.679688 -31.3203 28.3799 -45.2197 56.6299 -45.2197
-c29.9805 0 51.1201 13.5498 51.1201 38.29zM276.68 215.79c0 25.2998 -18.4297 45.46 -53.4199 45.46h-51.7793v-138.18h32.1699v47.3594h19.6094c30.25 0 53.4199 15.9502 53.4199 45.3604zM297.94 123l49.0596 138.22h-31.0898l-47.9102 -138.22h29.9404zM404.46 261.22
-h-31.0898l-47.9102 -138.22h29.9404z" />
-    <glyph glyph-name="cotton-bureau" unicode="&#xf89e;" horiz-adv-x="512" 
-d="M474.31 117.59h25.1807c-25.7998 -109.78 -111.4 -173.59 -239.67 -173.59c-154.63 -0.339844 -247.82 92.8604 -247.82 248.18c0 154.63 93 247.82 247.82 247.82c128.399 0 214.06 -63.5098 240.18 -173.61h-25.2598
-c-24.8506 95.6104 -99.9199 148.811 -214.69 148.811c-141.85 0 -223.2 -81.3799 -223.2 -223.2c0 -137.93 76.6699 -218 211.101 -223v49.2002c0 48.1602 -26.5498 74.3896 -74.5498 74.3896c-62.1309 0 -99.4004 37.2803 -99.4004 99.4102
-c0 61.3701 36.5195 98.2803 97.3799 99.0596c30.7402 64.6504 144.24 69.3203 177.24 0c60.8496 -0.779297 97.3799 -37.6895 97.3799 -99.0596c0 -62.0098 -37.2002 -99.21 -99.2002 -99.21c-47.9795 0 -74.3896 -26.3896 -74.3896 -74.3896v-49.1602
-c107.67 3.75977 178.24 56.5 201.899 148.35zM357 265.67c3.7998 -21.0801 11.2695 -104.2 -71.79 -120.75c12.2598 -17.7402 32.9805 -27.3301 61.5898 -27.3301c47.9697 0 74.4004 26.4102 74.4004 74.4102c0 44.6699 -22.8301 70.2197 -64.2002 73.6699zM275.32 168.31
-c72.7803 9.89062 58.5 86.9102 56.2295 97c-72.5596 -10 -58.6895 -86.6592 -56.2295 -97zM260 316l-0.179688 -0.259766c-28.3008 0 -49.1602 -9.66016 -61.5703 -27.3506c28.3701 -5.44922 49.3701 -20.5898 61.5996 -43.4492
-c12.2305 22.8594 33.2305 37.9697 61.5908 43.4492c-12.4404 17.9404 -32.8301 27.6104 -61.4404 27.6104zM188.48 265.28h0.239258c-2.75 -10.0498 -16.1602 -87.1602 56.25 -97c2.41992 10.1895 16.6807 86.4297 -56.4893 97zM173.2 117.59l0.330078 0.0302734
-c28.2998 0 49 9.66992 61.1396 27.2998c-73.0303 14.2197 -78.4004 83.5498 -71.6504 120.75c-41.3594 -3.66992 -64.2197 -29.3096 -64.2197 -73.6699c0 -48.0098 26.4004 -74.4102 74.4004 -74.4102zM226.41 105.2h0.269531
-c14.4902 -7.60059 25.5605 -19.3301 33.5605 -33.8301c7.52734 14.4502 19.1924 26.1982 33.5801 33.8301c-14.4902 8.00977 -26.0508 19.0596 -33.8203 33.5498c-7.60156 -14.3262 -19.2539 -25.9658 -33.5898 -33.5498z" />
-    <glyph glyph-name="buy-n-large" unicode="&#xf8a6;" horiz-adv-x="576" 
-d="M288 416c154.73 0 280.21 -100.32 280.21 -224s-125.479 -224 -280.21 -224s-280.21 100.32 -280.21 224s125.479 224 280.21 224zM202.61 58.8096c61.5498 0.600586 99.4697 24.3604 117.71 61.5205c-35.79 6.4502 -62.9307 37.3096 -62.9307 74.4502
-c0 41.7695 34.3408 75.6494 76.6904 75.6494c0.0117188 0 -0.0234375 -0.00292969 -0.0117188 -0.00292969c5.91797 0 11.6826 -0.666016 17.2217 -1.92676c0.623047 2.21875 1.13281 4.53516 1.5 6.84961c6.92969 44.1904 -14.8496 72.8408 -78 72.8408h-133.44
-l-77.25 -290.74zM358 240.89l-9.4502 -36.75l-15 36.75h-31.3398l-26.6299 -90.3096h37.8301l7.83008 35.6299l11.1895 -35.6299h35.4102l22.1602 90.3096h-32zM503.86 58.8096l21.1992 84.0605h-103.869l53.0498 205.36h-92.5l-21.3301 -82.3506
-c29.3799 -10.5996 50.3799 -38.4102 50.3799 -71.0596c0 -41.7803 -34.3496 -75.6504 -76.6904 -75.6504c-0.0205078 0 0.0380859 -0.00292969 0.0166016 -0.00292969c-3.90137 0 -7.73633 0.28418 -11.4863 0.833008l-15.8398 -61.1904h197.07zM211.7 178.61
-c16.1494 0 29.7002 -7.51074 24.1396 -29.8203c-5.83008 -23.4697 -21.7998 -26.6504 -37.9395 -26.6504h-24.7002l13.7998 56.4707h24.7002zM233 278c18.0703 0 32.2305 1.29004 27.5801 -17.5703c-3.83008 -15.5 -21.21 -30.1396 -39.21 -30.1396h-21.3701l11.6602 47.71
-h21.3398z" />
-    <glyph glyph-name="mdb" unicode="&#xf8ca;" horiz-adv-x="576" 
-d="M17.3701 287.59h46.2998l42.3301 -117.33l40.7002 117.33h45.5098l12.79 -191.59h-45.5303l-4.79004 77.4297l-25.54 -77.4297h-44.71l-27.9297 79.8301l-5.58984 -79.8301h-43.9102zM298.37 287.59c0 0 93.4199 -1.58984 94.2002 -95.7998
-c0.799805 -96.5898 -94.2002 -95.79 -94.2002 -95.79h-47.9004v191.59h47.9004zM297.17 141.13c0 0 47.5996 5.21973 46.7998 51.5205c-0.799805 46.2998 -46.7998 50.5693 -46.7998 50.5693v-102.09zM535.46 215.37c0 0 33.54 -11.96 33.54 -55.1006
-c0 -68.6396 -87 -63.8496 -87 -63.8496h-45.5195v191.58h51.8994s49.7402 1.44043 55.0801 -34.3203c0.416992 -2.75586 0.595703 -5.58203 0.595703 -8.45312c0 -10.9678 -3.15039 -21.2061 -8.5957 -29.8564zM483.56 247.31v-21.5898h12s5.43066 5.33984 4 12
-c-2.42969 11.1807 -16 9.58984 -16 9.58984zM483.46 137.85c0 0 41.04 -4.92969 41.3701 20.7207c0.389648 27.1602 -41.1904 22.4297 -41.1904 22.4297h-0.0800781v-18.2305z" />
-    <glyph glyph-name="orcid" unicode="&#xf8d2;" horiz-adv-x="512" 
-d="M294.75 259.81c58.1299 0 84.6699 -35.2598 84.6699 -76.8994c0 -25.5703 -15.5 -76.9102 -83.1201 -76.9102h-47.4697v153.81h45.9199zM256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM175.21 79.2402v207.5h-29.8398v-207.5
-h29.8398zM160.29 310.38c10.7832 0.0380859 19.5312 8.78711 19.5703 19.5703c0 10.8008 -8.76953 19.5693 -19.5703 19.5693s-19.5703 -8.76855 -19.5703 -19.5693s8.76953 -19.5703 19.5703 -19.5703zM300 79c68.3799 0 110 50.6104 110.04 103.89
-c0 49.0205 -33.71 103.851 -110.44 103.851h-80.5996v-207.74h81z" />
-    <glyph glyph-name="swift" unicode="&#xf8e1;" 
-d="M448 291.91c0 -5.35059 -0.000976562 -10.7002 0.00878906 -16.0498v-183.771c-0.0292969 -4.50977 -0.0800781 -9.00977 -0.200195 -13.5098c-0.119141 -10.0547 -0.998047 -19.7852 -2.58984 -29.4199c-1.67969 -9.83789 -4.86914 -19.373 -9.21973 -28
-c-9.04004 -17.748 -23.3896 -32.1074 -41.1299 -41.1602c-8.62891 -4.34375 -18.1641 -7.5293 -28 -9.20996c-9.64355 -1.58594 -19.3809 -2.46387 -29.4404 -2.58984c-4.51953 -0.120117 -9.00977 -0.200195 -13.5195 -0.200195h-199.79
-c-4.52051 0.0302734 -9.02051 0.0800781 -13.5205 0.200195c-10.0576 0.120117 -19.792 0.999023 -29.4297 2.58984c-9.83691 1.67871 -19.3711 4.86523 -28 9.20996c-17.7354 9.05566 -32.083 23.4102 -41.1299 41.1504c-4.35059 8.62598 -7.54004 18.1611 -9.21973 28
-c-1.58398 9.63574 -2.45898 19.3662 -2.58008 29.4199c-0.129883 4.50977 -0.209961 9 -0.209961 13.5098v199.83c0.0292969 4.51953 0.0800781 9.00977 0.209961 13.5195c0.109375 10.0479 0.97168 19.7676 2.54004 29.4004c1.68164 9.83691 4.87109 19.3721 9.21973 28
-c4.52637 8.88477 10.3564 16.875 17.3496 23.8496c1.74023 1.7207 3.55078 3.39062 5.43066 5c5.61426 4.80176 11.7549 8.92383 18.3896 12.3203c2.2334 1.11328 4.50391 2.15332 6.81152 3.12012c6.69531 2.73145 13.8994 4.82422 21.21 6.09961
-c7.22656 1.23633 14.5557 2.01855 22.0596 2.32031c2.45996 0.120117 4.91992 0.200195 7.37012 0.269531c4.51953 0.120117 9.00977 0.200195 13.5195 0.200195h199.75c4.52051 -0.0292969 9.01074 -0.0800781 13.5205 -0.200195
-c10.0576 -0.120117 19.792 -0.998047 29.4297 -2.58984c9.83887 -1.67773 19.374 -4.86719 28 -9.21973c17.7559 -9.03711 32.1191 -23.3965 41.1602 -41.1504c4.34668 -8.62891 7.53516 -18.1631 9.21973 -28c1.58301 -9.63672 2.45801 -19.3662 2.58008 -29.4199
-c0.120117 -4.51953 0.200195 -9.00977 0.200195 -13.5195zM378.119 50.9102c4.91016 -9.58008 15.3604 41.1797 -23.1602 88.5801c0.490234 1.68945 1 3.35938 1.44043 5.08984c18.5996 74.0801 -26.79 161.67 -103.58 207.75
-c33.6494 -45.6201 48.5293 -100.87 35.3096 -149.2c-1.16797 -4.21484 -2.58105 -8.44238 -4.16016 -12.4697c-1.72949 1.14941 -3.84961 2.41992 -6.72949 4c0 0 -76.3906 47.1699 -159.181 130.59c-2.16992 2.2002 44.1504 -66.25 96.7207 -121.74
-c-24.7803 13.9004 -93.7803 64.1201 -137.48 104.12c5.58301 -9.18652 11.8184 -17.7773 18.7803 -25.8994c36.4902 -46.2207 84.0898 -103.37 141.09 -147.221c-40 -24.4902 -96.6396 -26.3994 -153 0c-13.8662 6.50977 -26.9756 14.3477 -39.1699 23.3701
-c25.1133 -39.9365 61.6025 -71.4268 105.29 -90.3701c53.3203 -22.9199 106.35 -21.3799 145.85 -0.379883l0.419922 0.25c1.77051 1 3.53027 2 5.25 3c19.0801 9.7998 56.3105 19.46 76.3105 -19.4697z" />
-    <glyph glyph-name="umbraco" unicode="&#xf8e8;" horiz-adv-x="510" 
-d="M255.35 440c136.99 -0.169922 247.83 -111.31 247.65 -248.28c-0.179688 -136.97 -111.15 -247.67 -248 -247.67c-137 0.0703125 -248.07 111.271 -248 248.271c0.139648 136.96 111.36 247.85 248.35 247.68zM400.35 174
-c0.360352 5.24023 0.524414 10.1309 0.524414 15.4619c0 5.12988 -0.169922 10.2197 -0.503906 15.2656c-0.43457 14.9102 -1.64258 29.4004 -3.61035 43.8799c-1.87012 13.2197 -3.56934 22.3799 -5.38965 32c-1.02051 4.87988 -1.28027 6.39941 -1.83008 8.44922
-c-0.506836 2.22461 -2.49805 3.89062 -4.875 3.89062h-0.0253906h-0.819336l-32 -5c-2.37793 -0.385742 -4.20117 -2.44922 -4.20117 -4.93457c0 -0.0224609 0.000976562 -0.0439453 0.000976562 -0.0654297
-c-0.00976562 -0.128906 -0.0146484 -0.249023 -0.0146484 -0.380859c0 -0.130859 0.00488281 -0.260742 0.0146484 -0.389648l1.68945 -8.7793c1.60645 -8.86719 3.23633 -20.0938 4.88965 -33.6807c1.62695 -13.9551 2.49707 -27.7852 2.59961 -42.1494
-c0.266602 -26.9072 -2.44336 -46.834 -8.12988 -59.7803c-5.62891 -12.7627 -17.1777 -22.3076 -31.1504 -25.2305c-16.2686 -3.44336 -32.8506 -5.2627 -50.1387 -5.2627c-2.38477 0 -4.76172 0.0341797 -7.13086 0.103516h-10.25
-c-2.40625 -0.0712891 -4.53223 -0.0996094 -6.95605 -0.0996094c-17.2725 0 -34.127 1.80566 -50.3838 5.23926c-14.0283 2.86719 -25.6377 12.4033 -31.3105 25.1797c-5.60645 12.9336 -8.31641 32.877 -8.12988 59.8301
-c0.101562 14.3672 0.986328 28.2021 2.64062 42.1504c1.62012 13.6201 3.2334 24.8467 4.83984 33.6797l1.7002 8.78027c0.00976562 0.128906 0.0146484 0.249023 0.0146484 0.379883c0 0.131836 -0.00488281 0.261719 -0.0146484 0.389648
-c0 0.00488281 -0.00488281 0.00878906 -0.00488281 0.0126953c0 2.48633 -1.79297 4.55664 -4.15527 4.9873l-32 5h-0.69043c-2.37402 -0.0214844 -4.3623 -1.6748 -4.89941 -3.88965c-0.540039 -2.03027 -0.820312 -3.57031 -1.82031 -8.4502
-c-1.83008 -9.41992 -3.52051 -18.6094 -5.40039 -32c-1.95898 -14.4814 -3.16406 -28.9697 -3.59961 -43.8799c-0.351562 -5.13867 -0.530273 -9.93066 -0.530273 -15.1582s0.178711 -10.4131 0.530273 -15.5518c0.766602 -27.0928 5.43359 -48.7598 14 -65
-c8.57324 -16.2061 23.0801 -27.873 43.5195 -35c20.4404 -7.12695 48.9209 -10.6172 85.4414 -10.4697h4.59961c36.5605 -0.15332 65.0439 3.33691 85.4502 10.4707c20.4336 7.12012 34.9365 18.7871 43.5098 35.001s13.2402 37.8809 14 65.001z" />
-  </font>
-</defs></svg>
diff --git a/public/vendor/fontawesome/webfonts/fa-brands-400.ttf b/public/vendor/fontawesome/webfonts/fa-brands-400.ttf
deleted file mode 100644
index fc567cd2f1..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-brands-400.ttf and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-brands-400.woff b/public/vendor/fontawesome/webfonts/fa-brands-400.woff
deleted file mode 100644
index db70e73e47..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-brands-400.woff and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-brands-400.woff2 b/public/vendor/fontawesome/webfonts/fa-brands-400.woff2
deleted file mode 100644
index b8a8f656e1..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-brands-400.woff2 and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-regular-400.eot b/public/vendor/fontawesome/webfonts/fa-regular-400.eot
deleted file mode 100644
index fae180dacc..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-regular-400.eot and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-regular-400.svg b/public/vendor/fontawesome/webfonts/fa-regular-400.svg
deleted file mode 100644
index 9dba8c340b..0000000000
--- a/public/vendor/fontawesome/webfonts/fa-regular-400.svg
+++ /dev/null
@@ -1,801 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
-<metadata>
-Created by FontForge 20201107 at Tue Mar 16 10:15:04 2021
- By Robert Madole
-Copyright (c) Font Awesome
-</metadata>
-<!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><defs>
-<font id="FontAwesome5Free-Regular" horiz-adv-x="512" >
-  <font-face 
-    font-family="Font Awesome 5 Free Regular"
-    font-weight="400"
-    font-stretch="normal"
-    units-per-em="512"
-    panose-1="2 0 5 3 0 0 0 0 0 0"
-    ascent="448"
-    descent="-64"
-    bbox="-0.0663408 -64.0662 640.004 448.1"
-    underline-thickness="25"
-    underline-position="-50"
-    unicode-range="U+0020-F5C8"
-  />
-    <missing-glyph />
-    <glyph glyph-name="heart" unicode="&#xf004;" 
-d="M458.4 383.7c75.2998 -63.4004 64.0996 -166.601 10.5996 -221.3l-175.4 -178.7c-10 -10.2002 -23.2998 -15.7998 -37.5996 -15.7998c-14.2002 0 -27.5996 5.69922 -37.5996 15.8994l-175.4 178.7c-53.5996 54.7002 -64.5996 157.9 10.5996 221.2
-c57.8008 48.7002 147.101 41.2998 202.4 -15c55.2998 56.2998 144.6 63.5996 202.4 15zM434.8 196.2c36.2002 36.8994 43.7998 107.7 -7.2998 150.8c-38.7002 32.5996 -98.7002 27.9004 -136.5 -10.5996l-35 -35.7002l-35 35.7002
-c-37.5996 38.2998 -97.5996 43.1992 -136.5 10.5c-51.2002 -43.1006 -43.7998 -113.5 -7.2998 -150.7l175.399 -178.7c2.40039 -2.40039 4.40039 -2.40039 6.80078 0z" />
-    <glyph glyph-name="star" unicode="&#xf005;" horiz-adv-x="576" 
-d="M528.1 276.5c26.2002 -3.7998 36.7002 -36.0996 17.7002 -54.5996l-105.7 -103l25 -145.5c4.5 -26.3008 -23.1992 -45.9004 -46.3994 -33.7002l-130.7 68.7002l-130.7 -68.7002c-23.2002 -12.2998 -50.8994 7.39941 -46.3994 33.7002l25 145.5l-105.7 103
-c-19 18.5 -8.5 50.7998 17.7002 54.5996l146.1 21.2998l65.2998 132.4c11.7998 23.8994 45.7002 23.5996 57.4004 0l65.2998 -132.4zM388.6 135.7l100.601 98l-139 20.2002l-62.2002 126l-62.2002 -126l-139 -20.2002l100.601 -98l-23.7002 -138.4l124.3 65.2998
-l124.3 -65.2998z" />
-    <glyph glyph-name="user" unicode="&#xf007;" horiz-adv-x="448" 
-d="M313.6 144c74.2002 0 134.4 -60.2002 134.4 -134.4v-25.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v25.5996c0 74.2002 60.2002 134.4 134.4 134.4c28.7998 0 42.5 -16 89.5996 -16s60.9004 16 89.5996 16zM400 -16v25.5996
-c0 47.6006 -38.7998 86.4004 -86.4004 86.4004c-14.6992 0 -37.8994 -16 -89.5996 -16c-51.2998 0 -75 16 -89.5996 16c-47.6006 0 -86.4004 -38.7998 -86.4004 -86.4004v-25.5996h352zM224 160c-79.5 0 -144 64.5 -144 144s64.5 144 144 144s144 -64.5 144 -144
-s-64.5 -144 -144 -144zM224 400c-52.9004 0 -96 -43.0996 -96 -96s43.0996 -96 96 -96s96 43.0996 96 96s-43.0996 96 -96 96z" />
-    <glyph glyph-name="clock" unicode="&#xf017;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 -8c110.5 0 200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200zM317.8 96.4004l-84.8994 61.6992
-c-3.10059 2.30078 -4.90039 5.90039 -4.90039 9.7002v164.2c0 6.59961 5.40039 12 12 12h32c6.59961 0 12 -5.40039 12 -12v-141.7l66.7998 -48.5996c5.40039 -3.90039 6.5 -11.4004 2.60059 -16.7998l-18.8008 -25.9004c-3.89941 -5.2998 -11.3994 -6.5 -16.7998 -2.59961z
-" />
-    <glyph glyph-name="list-alt" unicode="&#xf022;" 
-d="M464 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h416zM458 16c3.31152 0 6 2.68848 6 6v340c0 3.31152 -2.68848 6 -6 6h-404c-3.31152 0 -6 -2.68848 -6 -6v-340
-c0 -3.31152 2.68848 -6 6 -6h404zM416 108v-24c0 -6.62695 -5.37305 -12 -12 -12h-200c-6.62695 0 -12 5.37305 -12 12v24c0 6.62695 5.37305 12 12 12h200c6.62695 0 12 -5.37305 12 -12zM416 204v-24c0 -6.62695 -5.37305 -12 -12 -12h-200c-6.62695 0 -12 5.37305 -12 12
-v24c0 6.62695 5.37305 12 12 12h200c6.62695 0 12 -5.37305 12 -12zM416 300v-24c0 -6.62695 -5.37305 -12 -12 -12h-200c-6.62695 0 -12 5.37305 -12 12v24c0 6.62695 5.37305 12 12 12h200c6.62695 0 12 -5.37305 12 -12zM164 288c0 -19.8818 -16.1182 -36 -36 -36
-s-36 16.1182 -36 36s16.1182 36 36 36s36 -16.1182 36 -36zM164 192c0 -19.8818 -16.1182 -36 -36 -36s-36 16.1182 -36 36s16.1182 36 36 36s36 -16.1182 36 -36zM164 96c0 -19.8818 -16.1182 -36 -36 -36s-36 16.1182 -36 36s16.1182 36 36 36s36 -16.1182 36 -36z" />
-    <glyph glyph-name="flag" unicode="&#xf024;" 
-d="M336.174 368c35.4668 0 73.0195 12.6914 108.922 28.1797c31.6406 13.6514 66.9043 -9.65723 66.9043 -44.1162v-239.919c0 -16.1953 -8.1543 -31.3057 -21.7129 -40.1631c-26.5762 -17.3643 -70.0693 -39.9814 -128.548 -39.9814c-68.6084 0 -112.781 32 -161.913 32
-c-56.5674 0 -89.957 -11.2803 -127.826 -28.5566v-83.4434c0 -8.83691 -7.16309 -16 -16 -16h-16c-8.83691 0 -16 7.16309 -16 16v406.438c-14.3428 8.2998 -24 23.7979 -24 41.5615c0 27.5693 23.2422 49.71 51.2012 47.8965
-c22.9658 -1.49023 41.8662 -19.4717 44.4805 -42.3379c0.213867 -1.83398 0.308594 -3.65918 0.308594 -5.5498c0 -5.30273 -0.860352 -10.4053 -2.4502 -15.1768c22.418 8.68555 49.4199 15.168 80.7207 15.168c68.6084 0 112.781 -32 161.913 -32zM464 112v240
-c-31.5059 -14.6338 -84.5547 -32 -127.826 -32c-59.9111 0 -101.968 32 -161.913 32c-41.4365 0 -80.4766 -16.5879 -102.261 -32v-232c31.4473 14.5967 84.4648 24 127.826 24c59.9111 0 101.968 -32 161.913 -32c41.4365 0 80.4775 16.5879 102.261 32z" />
-    <glyph glyph-name="bookmark" unicode="&#xf02e;" horiz-adv-x="384" 
-d="M336 448c26.5098 0 48 -21.4902 48 -48v-464l-192 112l-192 -112v464c0 26.5098 21.4902 48 48 48h288zM336 19.5703v374.434c0 3.31348 -2.68555 5.99609 -6 5.99609h-276c-3.31152 0 -6 -2.68848 -6 -6v-374.43l144 84z" />
-    <glyph glyph-name="image" unicode="&#xf03e;" 
-d="M464 384c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h416zM458 48c3.31152 0 6 2.68848 6 6v276c0 3.31152 -2.68848 6 -6 6h-404c-3.31152 0 -6 -2.68848 -6 -6v-276
-c0 -3.31152 2.68848 -6 6 -6h404zM128 296c22.0908 0 40 -17.9092 40 -40s-17.9092 -40 -40 -40s-40 17.9092 -40 40s17.9092 40 40 40zM96 96v48l39.5137 39.5146c4.6875 4.68652 12.2852 4.68652 16.9717 0l39.5146 -39.5146l119.514 119.515
-c4.6875 4.68652 12.2852 4.68652 16.9717 0l87.5146 -87.5146v-80h-320z" />
-    <glyph glyph-name="edit" unicode="&#xf044;" horiz-adv-x="576" 
-d="M402.3 103.1l32 32c5 5 13.7002 1.5 13.7002 -5.69922v-145.4c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h273.5c7.09961 0 10.7002 -8.59961 5.7002 -13.7002l-32 -32c-1.5 -1.5 -3.5 -2.2998 -5.7002 -2.2998h-241.5v-352h352
-v113.5c0 2.09961 0.799805 4.09961 2.2998 5.59961zM558.9 304.9l-262.601 -262.601l-90.3994 -10c-26.2002 -2.89941 -48.5 19.2002 -45.6006 45.6006l10 90.3994l262.601 262.601c22.8994 22.8994 59.8994 22.8994 82.6992 0l43.2002 -43.2002
-c22.9004 -22.9004 22.9004 -60 0.100586 -82.7998zM460.1 274l-58.0996 58.0996l-185.8 -185.899l-7.2998 -65.2998l65.2998 7.2998zM524.9 353.7l-43.2002 43.2002c-4.10059 4.09961 -10.7998 4.09961 -14.7998 0l-30.9004 -30.9004l58.0996 -58.0996l30.9004 30.8994
-c4 4.2002 4 10.7998 -0.0996094 14.9004z" />
-    <glyph glyph-name="times-circle" unicode="&#xf057;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 -8c110.5 0 200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200zM357.8 254.2l-62.2002 -62.2002l62.2002 -62.2002
-c4.7002 -4.7002 4.7002 -12.2998 0 -17l-22.5996 -22.5996c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-62.2002 62.2002l-62.2002 -62.2002c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-22.5996 22.5996c-4.7002 4.7002 -4.7002 12.2998 0 17l62.2002 62.2002l-62.2002 62.2002
-c-4.7002 4.7002 -4.7002 12.2998 0 17l22.5996 22.5996c4.7002 4.7002 12.2998 4.7002 17 0l62.2002 -62.2002l62.2002 62.2002c4.7002 4.7002 12.2998 4.7002 17 0l22.5996 -22.5996c4.7002 -4.7002 4.7002 -12.2998 0 -17z" />
-    <glyph glyph-name="check-circle" unicode="&#xf058;" 
-d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM256 392c-110.549 0 -200 -89.4678 -200 -200c0 -110.549 89.4678 -200 200 -200c110.549 0 200 89.4678 200 200c0 110.549 -89.4678 200 -200 200z
-M396.204 261.733c4.66699 -4.70508 4.63672 -12.3037 -0.0673828 -16.9717l-172.589 -171.204c-4.70508 -4.66797 -12.3027 -4.63672 -16.9697 0.0683594l-90.7812 91.5156c-4.66797 4.70605 -4.63672 12.3047 0.0683594 16.9717l22.7188 22.5361
-c4.70508 4.66699 12.3027 4.63574 16.9697 -0.0693359l59.792 -60.2773l141.353 140.216c4.70508 4.66797 12.3027 4.6377 16.9697 -0.0673828z" />
-    <glyph glyph-name="question-circle" unicode="&#xf059;" 
-d="M256 440c136.957 0 248 -111.083 248 -248c0 -136.997 -111.043 -248 -248 -248s-248 111.003 -248 248c0 136.917 111.043 248 248 248zM256 -8c110.569 0 200 89.4697 200 200c0 110.529 -89.5088 200 -200 200c-110.528 0 -200 -89.5049 -200 -200
-c0 -110.569 89.4678 -200 200 -200zM363.244 247.2c0 -67.0518 -72.4209 -68.084 -72.4209 -92.8633v-6.33691c0 -6.62695 -5.37305 -12 -12 -12h-45.6475c-6.62695 0 -12 5.37305 -12 12v8.65918c0 35.7451 27.1006 50.0342 47.5791 61.5156
-c17.5615 9.84473 28.3242 16.541 28.3242 29.5791c0 17.2461 -21.999 28.6934 -39.7842 28.6934c-23.1885 0 -33.8936 -10.9775 -48.9424 -29.9697c-4.05664 -5.11914 -11.46 -6.07031 -16.666 -2.12402l-27.8232 21.0986
-c-5.10742 3.87207 -6.25098 11.0654 -2.64453 16.3633c23.627 34.6934 53.7217 54.1846 100.575 54.1846c49.0713 0 101.45 -38.3037 101.45 -88.7998zM298 80c0 -23.1592 -18.8408 -42 -42 -42s-42 18.8408 -42 42s18.8408 42 42 42s42 -18.8408 42 -42z" />
-    <glyph glyph-name="eye" unicode="&#xf06e;" horiz-adv-x="576" 
-d="M288 304c0.114258 0 0.240234 -0.0175781 0.354492 -0.0175781c61.6543 0 111.71 -50.0557 111.71 -111.71s-50.0557 -111.71 -111.71 -111.71s-111.71 50.0557 -111.71 111.71c0 10.7422 1.51953 21.1328 4.35547 30.9678
-c7.95898 -4.52637 17.2129 -7.17188 27 -7.24023c30.9072 0 56 25.0928 56 56c-0.0683594 9.78711 -2.71387 19.041 -7.24023 27c9.88379 3.07617 20.3896 4.83008 31.2402 5zM572.52 206.6c2.21387 -4.37793 3.46094 -9.38965 3.46094 -14.626
-c0 -5.2373 -1.24707 -10.1855 -3.46094 -14.5635c-54.1992 -105.771 -161.59 -177.41 -284.52 -177.41s-230.29 71.5898 -284.52 177.4c-2.21387 4.37793 -3.46094 9.38965 -3.46094 14.626c0 5.2373 1.24707 10.1855 3.46094 14.5635
-c54.1992 105.771 161.59 177.41 284.52 177.41s230.29 -71.5898 284.52 -177.4zM288 48c98.6602 0 189.1 55 237.93 144c-48.8398 89 -139.27 144 -237.93 144s-189.09 -55 -237.93 -144c48.8398 -89 139.279 -144 237.93 -144z" />
-    <glyph glyph-name="eye-slash" unicode="&#xf070;" horiz-adv-x="640" 
-d="M634 -23c3.66895 -2.93262 6.00391 -7.45117 6.00391 -12.5088c0 -3.7832 -1.31543 -7.26074 -3.51367 -10.001l-10 -12.4902c-2.93359 -3.66309 -7.44824 -5.99414 -12.502 -5.99414c-3.77637 0 -7.25 1.31152 -9.98828 3.50391l-598 467.49
-c-3.66895 2.93262 -6.00391 7.45117 -6.00391 12.5088c0 3.7832 1.31543 7.26074 3.51367 10.001l10 12.4902c2.93359 3.66309 7.44824 5.99414 12.502 5.99414c3.77637 0 7.25 -1.31152 9.98828 -3.50391zM296.79 301.53c7.51172 1.60254 15.2266 2.45508 23.21 2.46973
-c60.4805 0 109.36 -47.9102 111.58 -107.85zM343.21 82.46c-7.51367 -1.59375 -15.2285 -2.44336 -23.21 -2.45996c-60.4697 0 -109.35 47.9102 -111.58 107.84zM320 336c-19.8799 0 -39.2803 -2.7998 -58.2197 -7.09961l-46.4102 36.29
-c32.9199 11.8096 67.9297 18.8096 104.63 18.8096c122.93 0 230.29 -71.5898 284.57 -177.4c2.21289 -4.37793 3.45996 -9.38965 3.45996 -14.626c0 -5.2373 -1.24707 -10.1855 -3.45996 -14.5635c-14.1924 -27.5625 -31.9229 -52.6689 -52.9004 -75.1104l-37.7402 29.5
-c17.2305 18.0527 31.9385 38.1318 44 60.2002c-48.8398 89 -139.279 144 -237.93 144zM320 48c19.8896 0 39.2803 2.7998 58.2197 7.08984l46.4102 -36.2803c-32.9199 -11.7598 -67.9297 -18.8096 -104.63 -18.8096c-122.92 0 -230.28 71.5898 -284.51 177.4
-c-2.21387 4.37793 -3.46094 9.38965 -3.46094 14.626c0 5.2373 1.24707 10.1855 3.46094 14.5635c14.1885 27.5586 31.916 52.6621 52.8896 75.1006l37.7402 -29.5c-17.249 -18.0469 -31.9727 -38.1221 -44.0498 -60.1904c48.8496 -89 139.279 -144 237.93 -144z" />
-    <glyph glyph-name="calendar-alt" unicode="&#xf073;" horiz-adv-x="448" 
-d="M148 160h-40c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12zM256 172c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40
-c6.59961 0 12 -5.40039 12 -12v-40zM352 172c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40zM256 76c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v40
-c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40zM160 76c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40zM352 76c0 -6.59961 -5.40039 -12 -12 -12h-40
-c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40zM448 336v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40
-c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48zM400 -10v298h-352v-298c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="comment" unicode="&#xf075;" 
-d="M256 416c141.4 0 256 -93.0996 256 -208s-114.6 -208 -256 -208c-32.7998 0 -64 5.2002 -92.9004 14.2998c-29.0996 -20.5996 -77.5996 -46.2998 -139.1 -46.2998c-9.59961 0 -18.2998 5.7002 -22.0996 14.5c-3.80078 8.7998 -2 19 4.59961 26
-c0.5 0.400391 31.5 33.7998 46.4004 73.2002c-33 35.0996 -52.9004 78.7002 -52.9004 126.3c0 114.9 114.6 208 256 208zM256 48c114.7 0 208 71.7998 208 160s-93.2998 160 -208 160s-208 -71.7998 -208 -160c0 -42.2002 21.7002 -74.0996 39.7998 -93.4004
-l20.6006 -21.7998l-10.6006 -28.0996c-5.5 -14.5 -12.5996 -28.1006 -19.8994 -40.2002c23.5996 7.59961 43.1992 18.9004 57.5 29l19.5 13.7998l22.6992 -7.2002c25.3008 -8 51.7002 -12.0996 78.4004 -12.0996z" />
-    <glyph glyph-name="folder" unicode="&#xf07b;" 
-d="M464 320c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h146.74c8.49023 0 16.6299 -3.37012 22.6299 -9.37012l54.6299 -54.6299h192zM464 48v224h-198.62
-c-8.49023 0 -16.6299 3.37012 -22.6299 9.37012l-54.6299 54.6299h-140.12v-288h416z" />
-    <glyph glyph-name="folder-open" unicode="&#xf07c;" horiz-adv-x="576" 
-d="M527.9 224c37.6992 0 60.6992 -41.5 40.6992 -73.4004l-79.8994 -128c-8.7998 -14.0996 -24.2002 -22.5996 -40.7002 -22.5996h-400c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h160l64 -64h160c26.5 0 48 -21.5 48 -48v-48h47.9004zM48 330v-233.4l62.9004 104.2
-c8.69922 14.4004 24.2998 23.2002 41.0996 23.2002h280v42c0 3.2998 -2.7002 6 -6 6h-173.9l-64 64h-134.1c-3.2998 0 -6 -2.7002 -6 -6zM448 48l80 128h-378.8l-77.2002 -128h376z" />
-    <glyph glyph-name="chart-bar" unicode="&#xf080;" 
-d="M396.8 96c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v230.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h22.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-230.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-22.4004zM204.8 96
-c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v198.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h22.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-198.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-22.4004zM300.8 96
-c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v134.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h22.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-134.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-22.4004zM496 48c8.83984 0 16 -7.16016 16 -16v-16
-c0 -8.83984 -7.16016 -16 -16 -16h-464c-17.6699 0 -32 14.3301 -32 32v336c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-320h448zM108.8 96c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v70.4004c0 6.39941 6.40039 12.7998 12.7998 12.7998h22.4004
-c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-70.4004c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-22.4004z" />
-    <glyph glyph-name="comments" unicode="&#xf086;" horiz-adv-x="576" 
-d="M532 61.7998c15.2998 -30.7002 37.4004 -54.5 37.7998 -54.7998c6.2998 -6.7002 8 -16.5 4.40039 -25c-3.7002 -8.5 -12 -14 -21.2002 -14c-53.5996 0 -96.7002 20.2998 -125.2 38.7998c-19 -4.39941 -39 -6.7998 -59.7998 -6.7998
-c-86.2002 0 -159.9 40.4004 -191.3 97.7998c-9.7002 1.2002 -19.2002 2.7998 -28.4004 4.90039c-28.5 -18.6006 -71.7002 -38.7998 -125.2 -38.7998c-9.19922 0 -17.5996 5.5 -21.1992 14c-3.7002 8.5 -1.90039 18.2998 4.39941 25
-c0.400391 0.399414 22.4004 24.1992 37.7002 54.8994c-27.5 27.2002 -44 61.2002 -44 98.2002c0 88.4004 93.0996 160 208 160c86.2998 0 160.3 -40.5 191.8 -98.0996c99.7002 -11.8008 176.2 -77.9004 176.2 -157.9c0 -37.0996 -16.5 -71.0996 -44 -98.2002zM139.2 154.1
-l19.7998 -4.5c16 -3.69922 32.5 -5.59961 49 -5.59961c86.7002 0 160 51.2998 160 112s-73.2998 112 -160 112s-160 -51.2998 -160 -112c0 -28.7002 16.2002 -50.5996 29.7002 -64l24.7998 -24.5l-15.5 -31.0996c-2.59961 -5.10059 -5.2998 -10.1006 -8 -14.8008
-c14.5996 5.10059 29 12.3008 43.0996 21.4004zM498.3 96c13.5 13.4004 29.7002 35.2998 29.7002 64c0 49.2002 -48.2998 91.5 -112.7 106c0.299805 -3.2998 0.700195 -6.59961 0.700195 -10c0 -80.9004 -78 -147.5 -179.3 -158.3
-c29.0996 -29.6006 77.2998 -49.7002 131.3 -49.7002c16.5 0 33 1.90039 49 5.59961l19.9004 4.60059l17.0996 -11.1006c14.0996 -9.09961 28.5 -16.2998 43.0996 -21.3994c-2.69922 4.7002 -5.39941 9.7002 -8 14.7998l-15.5 31.0996z" />
-    <glyph glyph-name="star-half" unicode="&#xf089;" horiz-adv-x="576" 
-d="M288 62.7002v-54.2998l-130.7 -68.6006c-23.3994 -12.2998 -50.8994 7.60059 -46.3994 33.7002l25 145.5l-105.7 103c-19 18.5 -8.5 50.7998 17.7002 54.5996l146.1 21.2002l65.2998 132.4c5.90039 11.8994 17.2998 17.7998 28.7002 17.7998v-68.0996l-62.2002 -126
-l-139 -20.2002l100.601 -98l-23.7002 -138.4z" />
-    <glyph glyph-name="lemon" unicode="&#xf094;" 
-d="M484.112 420.111c28.1221 -28.123 35.9434 -68.0039 19.0215 -97.0547c-23.0576 -39.584 50.1436 -163.384 -82.3311 -295.86c-132.301 -132.298 -256.435 -59.3594 -295.857 -82.3291c-29.0459 -16.917 -68.9219 -9.11426 -97.0576 19.0205
-c-28.1221 28.1221 -35.9434 68.0029 -19.0215 97.0547c23.0566 39.5859 -50.1436 163.386 82.3301 295.86c132.308 132.309 256.407 59.3496 295.862 82.332c29.0498 16.9219 68.9307 9.09863 97.0537 -19.0234zM461.707 347.217
-c13.5166 23.2031 -27.7578 63.7314 -50.4883 50.4912c-66.6025 -38.7939 -165.646 45.5898 -286.081 -74.8457c-120.444 -120.445 -36.0449 -219.472 -74.8447 -286.08c-13.542 -23.2471 27.8145 -63.6953 50.4932 -50.4883
-c66.6006 38.7949 165.636 -45.5996 286.076 74.8428c120.444 120.445 36.0449 219.472 74.8447 286.08zM291.846 338.481c1.37012 -10.96 -6.40332 -20.957 -17.3643 -22.3271c-54.8467 -6.85547 -135.779 -87.7871 -142.636 -142.636
-c-1.37305 -10.9883 -11.3984 -18.7334 -22.3262 -17.3643c-10.9609 1.37012 -18.7344 11.3652 -17.3643 22.3262c9.16211 73.2852 104.167 168.215 177.364 177.364c10.9531 1.36816 20.9561 -6.40234 22.3262 -17.3633z" />
-    <glyph glyph-name="credit-card" unicode="&#xf09d;" horiz-adv-x="576" 
-d="M527.9 416c26.5996 0 48.0996 -21.5 48.0996 -48v-352c0 -26.5 -21.5 -48 -48.0996 -48h-479.801c-26.5996 0 -48.0996 21.5 -48.0996 48v352c0 26.5 21.5 48 48.0996 48h479.801zM54.0996 368c-3.2998 0 -6 -2.7002 -6 -6v-42h479.801v42c0 3.2998 -2.7002 6 -6 6
-h-467.801zM521.9 16c3.2998 0 6 2.7002 6 6v170h-479.801v-170c0 -3.2998 2.7002 -6 6 -6h467.801zM192 116v-40c0 -6.59961 -5.40039 -12 -12 -12h-72c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h72c6.59961 0 12 -5.40039 12 -12zM384 116v-40
-c0 -6.59961 -5.40039 -12 -12 -12h-136c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h136c6.59961 0 12 -5.40039 12 -12z" />
-    <glyph glyph-name="hdd" unicode="&#xf0a0;" horiz-adv-x="576" 
-d="M567.403 212.358c5.59668 -8.04688 8.59668 -17.6113 8.59668 -27.4121v-136.946c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v136.946c0 10.167 3.19531 19.6465 8.59668 27.4121l105.08 151.053
-c8.67383 12.4678 23.0791 20.5889 39.4043 20.5889h269.838c16.3252 0 30.7305 -8.12109 39.4043 -20.5889zM153.081 336l-77.9131 -112h425.664l-77.9131 112h-269.838zM528 48v128h-480v-128h480zM496 112c0 -17.6729 -14.3271 -32 -32 -32s-32 14.3271 -32 32
-s14.3271 32 32 32s32 -14.3271 32 -32zM400 112c0 -17.6729 -14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32s32 -14.3271 32 -32z" />
-    <glyph glyph-name="hand-point-right" unicode="&#xf0a4;" 
-d="M428.8 310.4c45.0996 0 83.2002 -38.1016 83.2002 -83.2002c0 -45.6162 -37.7646 -83.2002 -83.2002 -83.2002h-35.6475c-1.71387 -7.70605 -4.43555 -15.2051 -7.92969 -22.0645c2.50586 -22.0059 -3.50293 -44.9775 -15.9844 -62.791
-c-1.14062 -52.4863 -37.3984 -91.1445 -99.9404 -91.1445h-21.2988c-60.0635 0 -98.5117 40 -127.2 40h-2.67871c-5.74707 -4.95215 -13.5361 -8 -22.1201 -8h-64c-17.6729 0 -32 12.8936 -32 28.7998v230.4c0 15.9062 14.3271 28.7998 32 28.7998h64.001
-c8.58398 0 16.373 -3.04785 22.1201 -8h2.67871c6.96387 0 14.8623 6.19336 30.1816 23.6689l0.128906 0.148438l0.130859 0.145508c8.85645 9.93652 18.1162 20.8398 25.8506 33.2529c18.7051 30.2471 30.3936 78.7842 75.707 78.7842c56.9277 0 92 -35.2861 92 -83.2002
-c0 -0.0283203 0 0.0361328 0 0.0078125c0 -7.66602 -0.748047 -15.1582 -2.17578 -22.4072h86.1768zM428.8 192c18.9756 0 35.2002 16.2246 35.2002 35.2002c0 18.7002 -16.7754 35.2002 -35.2002 35.2002h-158.399c0 17.3242 26.3994 35.1992 26.3994 70.3994
-c0 26.4004 -20.625 35.2002 -44 35.2002c-8.79395 0 -20.4443 -32.7119 -34.9258 -56.0996c-9.07422 -14.5752 -19.5244 -27.2256 -30.7988 -39.875c-16.1094 -18.374 -33.8359 -36.6328 -59.0752 -39.5967v-176.753c42.79 -3.7627 74.5088 -39.6758 120 -39.6758h21.2988
-c40.5244 0 57.124 22.1973 50.6006 61.3252c14.6113 8.00098 24.1514 33.9785 12.9248 53.625c19.3652 18.2246 17.7871 46.3809 4.9502 61.0498h91.0254zM88 64c0 13.2549 -10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24z" />
-    <glyph glyph-name="hand-point-left" unicode="&#xf0a5;" 
-d="M0 227.2c0 45.0986 38.1006 83.2002 83.2002 83.2002h86.1758c-1.3623 6.91016 -2.17578 14.374 -2.17578 22.3994c0 47.9141 35.0723 83.2002 92 83.2002c45.3135 0 57.002 -48.5371 75.7061 -78.7852c7.73438 -12.4121 16.9951 -23.3154 25.8506 -33.2529
-l0.130859 -0.145508l0.128906 -0.148438c15.3213 -17.4746 23.2197 -23.668 30.1836 -23.668h2.67871c5.74707 4.95215 13.5361 8 22.1201 8h64c17.6729 0 32 -12.8936 32 -28.7998v-230.4c0 -15.9062 -14.3271 -28.7998 -32 -28.7998h-64
-c-8.58398 0 -16.373 3.04785 -22.1201 8h-2.67871c-28.6885 0 -67.1367 -40 -127.2 -40h-21.2988c-62.542 0 -98.8008 38.6582 -99.9404 91.1445c-12.4814 17.8135 -18.4922 40.7852 -15.9844 62.791c-3.49414 6.85938 -6.21582 14.3584 -7.92969 22.0645h-35.6465
-c-45.4355 0 -83.2002 37.584 -83.2002 83.2002zM48 227.2c0 -18.9756 16.2246 -35.2002 35.2002 -35.2002h91.0244c-12.8369 -14.6689 -14.415 -42.8252 4.9502 -61.0498c-11.2256 -19.6465 -1.68652 -45.624 12.9248 -53.625
-c-6.52246 -39.1279 10.0771 -61.3252 50.6016 -61.3252h21.2988c45.4912 0 77.21 35.9131 120 39.6768v176.752c-25.2393 2.96289 -42.9658 21.2227 -59.0752 39.5967c-11.2744 12.6494 -21.7246 25.2998 -30.7988 39.875
-c-14.4814 23.3877 -26.1318 56.0996 -34.9258 56.0996c-23.375 0 -44 -8.7998 -44 -35.2002c0 -35.2002 26.3994 -53.0752 26.3994 -70.3994h-158.399c-18.4248 0 -35.2002 -16.5 -35.2002 -35.2002zM448 88c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24
-s24 10.7451 24 24s-10.7451 24 -24 24z" />
-    <glyph glyph-name="hand-point-up" unicode="&#xf0a6;" horiz-adv-x="448" 
-d="M105.6 364.8c0 45.0996 38.1016 83.2002 83.2002 83.2002c45.6162 0 83.2002 -37.7646 83.2002 -83.2002v-35.6465c7.70605 -1.71387 15.2051 -4.43555 22.0645 -7.92969c22.0059 2.50684 44.9775 -3.50293 62.791 -15.9844
-c52.4863 -1.14062 91.1445 -37.3984 91.1445 -99.9404v-21.2988c0 -60.0635 -40 -98.5117 -40 -127.2v-2.67871c4.95215 -5.74707 8 -13.5361 8 -22.1201v-64c0 -17.6729 -12.8936 -32 -28.7998 -32h-230.4c-15.9062 0 -28.7998 14.3271 -28.7998 32v64
-c0 8.58398 3.04785 16.373 8 22.1201v2.67871c0 6.96387 -6.19336 14.8623 -23.6689 30.1816l-0.148438 0.128906l-0.145508 0.130859c-9.93652 8.85645 -20.8398 18.1162 -33.2529 25.8506c-30.2471 18.7051 -78.7842 30.3936 -78.7842 75.707
-c0 56.9277 35.2861 92 83.2002 92c0.0283203 0 -0.0361328 0 -0.0078125 0c7.66602 0 15.1582 -0.748047 22.4072 -2.17578v86.1768zM224 364.8c0 18.9756 -16.2246 35.2002 -35.2002 35.2002c-18.7002 0 -35.2002 -16.7754 -35.2002 -35.2002v-158.399
-c-17.3242 0 -35.1992 26.3994 -70.3994 26.3994c-26.4004 0 -35.2002 -20.625 -35.2002 -44c0 -8.79395 32.7119 -20.4443 56.0996 -34.9258c14.5752 -9.07422 27.2256 -19.5244 39.875 -30.7988c18.374 -16.1094 36.6328 -33.8359 39.5967 -59.0752h176.753
-c3.7627 42.79 39.6758 74.5088 39.6758 120v21.2988c0 40.5244 -22.1973 57.124 -61.3252 50.6006c-8.00098 14.6113 -33.9785 24.1514 -53.625 12.9248c-18.2246 19.3652 -46.3809 17.7871 -61.0498 4.9502v91.0254zM352 24c-13.2549 0 -24 -10.7451 -24 -24
-s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24z" />
-    <glyph glyph-name="hand-point-down" unicode="&#xf0a7;" horiz-adv-x="448" 
-d="M188.8 -64c-45.0986 0 -83.2002 38.1006 -83.2002 83.2002v86.1758c-6.91016 -1.3623 -14.374 -2.17578 -22.3994 -2.17578c-47.9141 0 -83.2002 35.0723 -83.2002 92c0 45.3135 48.5371 57.002 78.7852 75.707c12.4121 7.73438 23.3154 16.9951 33.2529 25.8506
-l0.145508 0.130859l0.148438 0.128906c17.4746 15.3213 23.668 23.2197 23.668 30.1836v2.67871c-4.95215 5.74707 -8 13.5361 -8 22.1201v64c0 17.6729 12.8936 32 28.7998 32h230.4c15.9062 0 28.7998 -14.3271 28.7998 -32v-64.001
-c0 -8.58398 -3.04785 -16.373 -8 -22.1201v-2.67871c0 -28.6885 40 -67.1367 40 -127.2v-21.2988c0 -62.542 -38.6582 -98.8008 -91.1445 -99.9404c-17.8135 -12.4814 -40.7852 -18.4922 -62.791 -15.9844c-6.85938 -3.49414 -14.3584 -6.21582 -22.0645 -7.92969v-35.6465
-c0 -45.4355 -37.584 -83.2002 -83.2002 -83.2002zM188.8 -16c18.9756 0 35.2002 16.2246 35.2002 35.2002v91.0244c14.6689 -12.8369 42.8252 -14.415 61.0498 4.9502c19.6465 -11.2256 45.624 -1.68652 53.625 12.9248c39.1279 -6.52246 61.3252 10.0771 61.3252 50.6016
-v21.2988c0 45.4912 -35.9131 77.21 -39.6768 120h-176.752c-2.96289 -25.2393 -21.2227 -42.9658 -39.5967 -59.0752c-12.6494 -11.2744 -25.2998 -21.7246 -39.875 -30.7988c-23.3877 -14.4814 -56.0996 -26.1318 -56.0996 -34.9258c0 -23.375 8.7998 -44 35.2002 -44
-c35.2002 0 53.0752 26.3994 70.3994 26.3994v-158.399c0 -18.4248 16.5 -35.2002 35.2002 -35.2002zM328 384c0 -13.2549 10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24z" />
-    <glyph glyph-name="copy" unicode="&#xf0c5;" horiz-adv-x="448" 
-d="M433.941 382.059c8.68848 -8.68848 14.0586 -20.6943 14.0586 -33.9404v-268.118c0 -26.5098 -21.4902 -48 -48 -48h-80v-48c0 -26.5098 -21.4902 -48 -48 -48h-224c-26.5098 0 -48 21.4902 -48 48v320c0 26.5098 21.4902 48 48 48h80v48c0 26.5098 21.4902 48 48 48
-h172.118c13.2461 0 25.252 -5.37012 33.9404 -14.0586zM266 -16c3.31152 0 6 2.68848 6 6v42h-96c-26.5098 0 -48 21.4902 -48 48v224h-74c-3.31152 0 -6 -2.68848 -6 -6v-308c0 -3.31152 2.68848 -6 6 -6h212zM394 80c3.31152 0 6 2.68848 6 6v202h-88
-c-13.2549 0 -24 10.7451 -24 24v88h-106c-3.31152 0 -6 -2.68848 -6 -6v-308c0 -3.31152 2.68848 -6 6 -6h212zM400 336v9.63184c0 1.65527 -0.670898 3.15723 -1.75684 4.24316l-48.3682 48.3682c-1.12598 1.125 -2.65234 1.75684 -4.24316 1.75684h-9.63184v-64h64z" />
-    <glyph glyph-name="save" unicode="&#xf0c7;" horiz-adv-x="448" 
-d="M433.941 318.059c8.68848 -8.68848 14.0586 -20.6943 14.0586 -33.9404v-268.118c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h268.118c13.2461 0 25.252 -5.37012 33.9404 -14.0586zM272 368h-128v-80h128v80z
-M394 16c3.31152 0 6 2.68848 6 6v259.632c0 1.65527 -0.670898 3.15723 -1.75684 4.24316l-78.2432 78.2432v-100.118c0 -13.2549 -10.7451 -24 -24 -24h-176c-13.2549 0 -24 10.7451 -24 24v104h-42c-3.31152 0 -6 -2.68848 -6 -6v-340c0 -3.31152 2.68848 -6 6 -6h340z
-M224 216c48.5234 0 88 -39.4766 88 -88s-39.4766 -88 -88 -88s-88 39.4766 -88 88s39.4766 88 88 88zM224 88c22.0557 0 40 17.9443 40 40s-17.9443 40 -40 40s-40 -17.9443 -40 -40s17.9443 -40 40 -40z" />
-    <glyph glyph-name="square" unicode="&#xf0c8;" horiz-adv-x="448" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM394 16c3.2998 0 6 2.7002 6 6v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340z" />
-    <glyph glyph-name="envelope" unicode="&#xf0e0;" 
-d="M464 384c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h416zM464 336h-416v-40.8047c22.4248 -18.2627 58.1797 -46.6602 134.587 -106.49
-c16.834 -13.2422 50.2051 -45.0762 73.4131 -44.7012c23.2119 -0.371094 56.5723 31.4541 73.4131 44.7012c76.4189 59.8389 112.165 88.2305 134.587 106.49v40.8047zM48 48h416v185.601c-22.915 -18.252 -55.4189 -43.8691 -104.947 -82.6523
-c-22.5439 -17.748 -60.3359 -55.1787 -103.053 -54.9473c-42.9277 -0.231445 -81.2051 37.75 -103.062 54.9551c-49.5293 38.7842 -82.0244 64.3945 -104.938 82.6455v-185.602z" />
-    <glyph glyph-name="lightbulb" unicode="&#xf0eb;" horiz-adv-x="352" 
-d="M176 368c8.83984 0 16 -7.16016 16 -16s-7.16016 -16 -16 -16c-35.2803 0 -64 -28.7002 -64 -64c0 -8.83984 -7.16016 -16 -16 -16s-16 7.16016 -16 16c0 52.9404 43.0596 96 96 96zM96.0596 -11.1699l-0.0400391 43.1797h159.961l-0.0507812 -43.1797
-c-0.00976562 -3.13965 -0.939453 -6.21973 -2.67969 -8.83984l-24.5098 -36.8398c-2.95996 -4.45996 -7.95996 -7.14062 -13.3203 -7.14062h-78.8496c-5.35059 0 -10.3506 2.68066 -13.3203 7.14062l-24.5098 36.8398c-1.75 2.62012 -2.68066 5.68945 -2.68066 8.83984z
-M176 448c97.2002 0 176 -78.7998 176 -176c0 -44.3701 -16.4502 -84.8496 -43.5498 -115.79c-16.6406 -18.9795 -42.7402 -58.79 -52.4199 -92.1602v-0.0498047h-48v0.0996094c0.00488281 4.98145 0.790039 9.78809 2.21973 14.3008
-c5.67969 17.9893 22.9902 64.8496 62.0996 109.46c20.4102 23.29 31.6504 53.1699 31.6504 84.1396c0 70.5801 -57.4199 128 -128 128c-68.2803 0 -128.15 -54.3604 -127.95 -128c0.0898438 -30.9902 11.0703 -60.71 31.6104 -84.1396
-c39.3496 -44.9004 56.5801 -91.8604 62.1699 -109.67c1.42969 -4.56055 2.13965 -9.30078 2.15039 -14.0703v-0.120117h-48v0.0595703c-9.68066 33.3604 -35.7803 73.1709 -52.4209 92.1602c-27.1094 30.9307 -43.5596 71.4102 -43.5596 115.78
-c0 93.0303 73.7197 176 176 176z" />
-    <glyph glyph-name="bell" unicode="&#xf0f3;" horiz-adv-x="448" 
-d="M439.39 85.71c6 -6.44043 8.66016 -14.1602 8.61035 -21.71c-0.0996094 -16.4004 -12.9805 -32 -32.0996 -32h-383.801c-19.1191 0 -31.9893 15.5996 -32.0996 32c-0.0498047 7.5498 2.61035 15.2598 8.61035 21.71c19.3193 20.7598 55.4697 51.9902 55.4697 154.29
-c0 77.7002 54.4795 139.9 127.939 155.16v20.8398c0 17.6699 14.3203 32 31.9805 32s31.9805 -14.3301 31.9805 -32v-20.8398c73.46 -15.2598 127.939 -77.46 127.939 -155.16c0 -102.3 36.1504 -133.53 55.4697 -154.29zM67.5303 80h312.939
-c-21.2197 27.96 -44.4199 74.3203 -44.5293 159.42c0 0.200195 0.0595703 0.379883 0.0595703 0.580078c0 61.8604 -50.1396 112 -112 112s-112 -50.1396 -112 -112c0 -0.200195 0.0595703 -0.379883 0.0595703 -0.580078
-c-0.109375 -85.0898 -23.3096 -131.45 -44.5293 -159.42zM224 -64c-35.3203 0 -63.9697 28.6504 -63.9697 64h127.939c0 -35.3496 -28.6494 -64 -63.9697 -64z" />
-    <glyph glyph-name="hospital" unicode="&#xf0f8;" horiz-adv-x="448" 
-d="M128 204v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12zM268 192c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40
-c0 -6.62695 -5.37305 -12 -12 -12h-40zM192 108c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM268 96c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40
-c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-40zM448 -28v-36h-448v36c0 6.62695 5.37305 12 12 12h19.5v378.965c0 11.6172 10.7451 21.0352 24 21.0352h88.5v40c0 13.2549 10.7451 24 24 24h112c13.2549 0 24 -10.7451 24 -24v-40h88.5
-c13.2549 0 24 -9.41797 24 -21.0352v-378.965h19.5c6.62695 0 12 -5.37305 12 -12zM79.5 -15h112.5v67c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-67h112.5v351h-64.5v-24c0 -13.2549 -10.7451 -24 -24 -24h-112c-13.2549 0 -24 10.7451 -24 24v24
-h-64.5v-351zM266 384h-26v26c0 3.31152 -2.68848 6 -6 6h-20c-3.31152 0 -6 -2.68848 -6 -6v-26h-26c-3.31152 0 -6 -2.68848 -6 -6v-20c0 -3.31152 2.68848 -6 6 -6h26v-26c0 -3.31152 2.68848 -6 6 -6h20c3.31152 0 6 2.68848 6 6v26h26c3.31152 0 6 2.68848 6 6v20
-c0 3.31152 -2.68848 6 -6 6z" />
-    <glyph glyph-name="plus-square" unicode="&#xf0fe;" horiz-adv-x="448" 
-d="M352 208v-32c0 -6.59961 -5.40039 -12 -12 -12h-88v-88c0 -6.59961 -5.40039 -12 -12 -12h-32c-6.59961 0 -12 5.40039 -12 12v88h-88c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h88v88c0 6.59961 5.40039 12 12 12h32c6.59961 0 12 -5.40039 12 -12
-v-88h88c6.59961 0 12 -5.40039 12 -12zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340
-c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="circle" unicode="&#xf111;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 -8c110.5 0 200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200z" />
-    <glyph glyph-name="smile" unicode="&#xf118;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
-s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM332 135.4c8.5 10.1992 23.7002 11.5 33.7998 3.09961c10.2002 -8.5 11.6006 -23.5996 3.10059 -33.7998
-c-30 -36 -74.1006 -56.6006 -120.9 -56.6006s-90.9004 20.6006 -120.9 56.6006c-8.39941 10.2002 -7.09961 25.2998 3.10059 33.7998c10.0996 8.40039 25.2998 7.09961 33.7998 -3.09961c20.7998 -25.1006 51.5 -39.4004 84 -39.4004s63.2002 14.4004 84 39.4004z" />
-    <glyph glyph-name="frown" unicode="&#xf119;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
-s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM248 144c40.2002 0 78 -17.7002 103.8 -48.5996c8.40039 -10.2002 7.10059 -25.3008 -3.09961 -33.8008
-c-10.7002 -8.7998 -25.7002 -6.59961 -33.7998 3.10059c-16.6006 20 -41 31.3994 -66.9004 31.3994s-50.2998 -11.5 -66.9004 -31.3994c-8.5 -10.2002 -23.5996 -11.5 -33.7998 -3.10059c-10.2002 8.5 -11.5996 23.6006 -3.09961 33.8008
-c25.7998 30.8994 63.5996 48.5996 103.8 48.5996z" />
-    <glyph glyph-name="meh" unicode="&#xf11a;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
-s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM336 128c13.2002 0 24 -10.7998 24 -24s-10.7998 -24 -24 -24h-176c-13.2002 0 -24 10.7998 -24 24s10.7998 24 24 24h176z
-" />
-    <glyph glyph-name="keyboard" unicode="&#xf11c;" horiz-adv-x="576" 
-d="M528 384c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h480zM536 48v288c0 4.41113 -3.58887 8 -8 8h-480c-4.41113 0 -8 -3.58887 -8 -8v-288c0 -4.41113 3.58887 -8 8 -8
-h480c4.41113 0 8 3.58887 8 8zM170 178c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM266 178c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28
-c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM362 178c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM458 178c0 -6.62695 -5.37305 -12 -12 -12h-28
-c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM122 96c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM506 96
-c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM122 260c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28
-c6.62695 0 12 -5.37305 12 -12v-28zM218 260c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM314 260c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28
-c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM410 260c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM506 260c0 -6.62695 -5.37305 -12 -12 -12h-28
-c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM408 102c0 -6.62695 -5.37305 -12 -12 -12h-216c-6.62695 0 -12 5.37305 -12 12v16c0 6.62695 5.37305 12 12 12h216c6.62695 0 12 -5.37305 12 -12v-16z" />
-    <glyph glyph-name="calendar" unicode="&#xf133;" horiz-adv-x="448" 
-d="M400 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12
-v-52h48zM394 -16c3.2998 0 6 2.7002 6 6v298h-352v-298c0 -3.2998 2.7002 -6 6 -6h340z" />
-    <glyph glyph-name="play-circle" unicode="&#xf144;" 
-d="M371.7 210c16.3994 -9.2002 16.3994 -32.9004 0 -42l-176 -101c-15.9004 -8.7998 -35.7002 2.59961 -35.7002 21v208c0 18.5 19.9004 29.7998 35.7002 21zM504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM56 192
-c0 -110.5 89.5 -200 200 -200s200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200z" />
-    <glyph glyph-name="minus-square" unicode="&#xf146;" horiz-adv-x="448" 
-d="M108 164c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h232c6.59961 0 12 -5.40039 12 -12v-32c0 -6.59961 -5.40039 -12 -12 -12h-232zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352
-c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="check-square" unicode="&#xf14a;" horiz-adv-x="448" 
-d="M400 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352zM400 16v352h-352v-352h352zM364.136 257.724l-172.589 -171.204
-c-4.70508 -4.66699 -12.3027 -4.63672 -16.9697 0.0683594l-90.7812 91.5156c-4.66699 4.70508 -4.63672 12.3037 0.0693359 16.9717l22.7188 22.5361c4.70508 4.66699 12.3027 4.63672 16.9697 -0.0693359l59.792 -60.2773l141.353 140.217
-c4.70508 4.66699 12.3027 4.63672 16.9697 -0.0683594l22.5361 -22.7178c4.66699 -4.70605 4.63672 -12.3047 -0.0683594 -16.9717z" />
-    <glyph glyph-name="share-square" unicode="&#xf14d;" horiz-adv-x="576" 
-d="M561.938 289.94c18.75 -18.7402 18.75 -49.1406 0 -67.8809l-143.998 -144c-29.9727 -29.9727 -81.9404 -9.05273 -81.9404 33.9404v53.7998c-101.266 -7.83691 -99.625 -31.6406 -84.1104 -78.7598c14.2285 -43.0889 -33.4736 -79.248 -71.0195 -55.7402
-c-51.6924 32.3057 -84.8701 83.0635 -84.8701 144.76c0 39.3408 12.2197 72.7402 36.3301 99.3008c19.8398 21.8398 47.7402 38.4697 82.9102 49.4199c36.7295 11.4395 78.3096 16.1094 120.76 17.9893v57.1982c0 42.9355 51.9258 63.9541 81.9404 33.9404zM384 112l144 144
-l-144 144v-104.09c-110.86 -0.90332 -240 -10.5166 -240 -119.851c0 -52.1396 32.79 -85.6094 62.3096 -104.06c-39.8174 120.65 48.999 141.918 177.69 143.84v-103.84zM408.74 27.5068c7.4375 2.125 14.5508 5.30566 20.9736 9.30273
-c7.97656 4.95215 18.2861 -0.825195 18.2861 -10.2139v-42.5957c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h132c6.62695 0 12 -5.37305 12 -12v-4.48633c0 -4.91699 -2.9873 -9.36914 -7.56934 -11.1514
-c-13.7021 -5.33105 -26.3955 -11.5371 -38.0498 -18.585c-1.82715 -1.11523 -3.98633 -1.76953 -6.28027 -1.77734h-86.1006c-3.31152 0 -6 -2.68848 -6 -6v-340c0 -3.31152 2.68848 -6 6 -6h340c3.31152 0 6 2.68848 6 6v25.9658c0 5.37012 3.5791 10.0596 8.74023 11.541z
-" />
-    <glyph glyph-name="compass" unicode="&#xf14e;" horiz-adv-x="496" 
-d="M347.94 318.14c16.6592 7.61035 33.8096 -9.54004 26.1992 -26.1992l-65.9697 -144.341c-3.19238 -6.9834 -8.78613 -12.5771 -15.7695 -15.7695l-144.341 -65.9697c-16.6592 -7.61035 -33.8096 9.5498 -26.1992 26.1992l65.9697 144.341
-c3.19238 6.9834 8.78613 12.5771 15.7695 15.7695zM270.58 169.42c12.4697 12.4697 12.4697 32.6904 0 45.1602s-32.6904 12.4697 -45.1602 0s-12.4697 -32.6904 0 -45.1602s32.6904 -12.4697 45.1602 0zM248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248
-s-248 111.03 -248 248s111.03 248 248 248zM248 -8c110.28 0 200 89.7197 200 200s-89.7197 200 -200 200s-200 -89.7197 -200 -200s89.7197 -200 200 -200z" />
-    <glyph glyph-name="caret-square-down" unicode="&#xf150;" horiz-adv-x="448" 
-d="M125.1 240h197.801c10.6992 0 16.0996 -13 8.5 -20.5l-98.9004 -98.2998c-4.7002 -4.7002 -12.2002 -4.7002 -16.9004 0l-98.8994 98.2998c-7.7002 7.5 -2.2998 20.5 8.39941 20.5zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352
-c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="caret-square-up" unicode="&#xf151;" horiz-adv-x="448" 
-d="M322.9 144h-197.801c-10.6992 0 -16.0996 13 -8.5 20.5l98.9004 98.2998c4.7002 4.7002 12.2002 4.7002 16.9004 0l98.8994 -98.2998c7.7002 -7.5 2.2998 -20.5 -8.39941 -20.5zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352
-c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="caret-square-right" unicode="&#xf152;" horiz-adv-x="448" 
-d="M176 93.0996v197.801c0 10.6992 13 16.0996 20.5 8.5l98.2998 -98.9004c4.7002 -4.7002 4.7002 -12.2002 0 -16.9004l-98.2998 -98.8994c-7.5 -7.7002 -20.5 -2.2998 -20.5 8.39941zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352
-c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="file" unicode="&#xf15b;" horiz-adv-x="384" 
-d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
-h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416z" />
-    <glyph glyph-name="file-alt" unicode="&#xf15c;" horiz-adv-x="384" 
-d="M288 200v-28c0 -6.59961 -5.40039 -12 -12 -12h-168c-6.59961 0 -12 5.40039 -12 12v28c0 6.59961 5.40039 12 12 12h168c6.59961 0 12 -5.40039 12 -12zM276 128c6.59961 0 12 -5.40039 12 -12v-28c0 -6.59961 -5.40039 -12 -12 -12h-168c-6.59961 0 -12 5.40039 -12 12
-v28c0 6.59961 5.40039 12 12 12h168zM384 316.1v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996l83.9004 -83.9004c9 -8.90039 14.0996 -21.2002 14.0996 -33.9004z
-M256 396.1v-76.0996h76.0996zM336 -16v288h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416h288z" />
-    <glyph glyph-name="thumbs-up" unicode="&#xf164;" 
-d="M466.27 161.31c4.6748 -22.6465 0.864258 -44.5371 -8.98926 -62.9893c2.95898 -23.8682 -4.02148 -48.5654 -17.3398 -66.9902c-0.954102 -55.9072 -35.8232 -95.3301 -112.94 -95.3301c-7 0 -15 0.00976562 -22.2197 0.00976562
-c-102.742 0 -133.293 38.9395 -177.803 39.9404c-3.56934 -13.7764 -16.085 -23.9502 -30.9775 -23.9502h-64c-17.6729 0 -32 14.3271 -32 32v240c0 17.6729 14.3271 32 32 32h98.7598c19.1455 16.9531 46.0137 60.6533 68.7598 83.4004
-c13.667 13.667 10.1533 108.6 71.7607 108.6c57.5801 0 95.2695 -31.9355 95.2695 -104.73c0 -18.4092 -3.92969 -33.7295 -8.84961 -46.5391h36.4795c48.6025 0 85.8203 -41.5654 85.8203 -85.5801c0 -19.1504 -4.95996 -34.9902 -13.7305 -49.8408zM404.52 107.48
-c21.5811 20.3838 18.6992 51.0645 5.21094 65.6191c9.44922 0 22.3594 18.9102 22.2695 37.8105c-0.0898438 18.9102 -16.71 37.8203 -37.8203 37.8203h-103.989c0 37.8193 28.3594 55.3691 28.3594 94.5391c0 23.75 0 56.7305 -47.2695 56.7305
-c-18.9102 -18.9102 -9.45996 -66.1797 -37.8203 -94.54c-26.5596 -26.5703 -66.1797 -97.46 -94.54 -97.46h-10.9199v-186.17c53.6113 0 100.001 -37.8203 171.64 -37.8203h37.8203c35.5117 0 60.8203 17.1201 53.1201 65.9004
-c15.2002 8.16016 26.5 36.4395 13.9395 57.5703zM88 16c0 13.2549 -10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24z" />
-    <glyph glyph-name="thumbs-down" unicode="&#xf165;" 
-d="M466.27 222.69c8.77051 -14.8506 13.7305 -30.6904 13.7305 -49.8408c0 -44.0146 -37.2178 -85.5801 -85.8203 -85.5801h-36.4795c4.91992 -12.8096 8.84961 -28.1299 8.84961 -46.5391c0 -72.7949 -37.6895 -104.73 -95.2695 -104.73
-c-61.6074 0 -58.0938 94.9326 -71.7607 108.6c-22.7461 22.7471 -49.6133 66.4473 -68.7598 83.4004h-7.05176c-5.5332 -9.56152 -15.8662 -16 -27.708 -16h-64c-17.6729 0 -32 14.3271 -32 32v240c0 17.6729 14.3271 32 32 32h64c8.11328 0 15.5146 -3.02539 21.1553 -8
-h10.8447c40.9971 0 73.1953 39.9902 176.78 39.9902c7.21973 0 15.2197 0.00976562 22.2197 0.00976562c77.1172 0 111.986 -39.4229 112.94 -95.3301c13.3184 -18.4248 20.2979 -43.1221 17.3398 -66.9902c9.85352 -18.4521 13.6641 -40.3428 8.98926 -62.9893zM64 152
-c13.2549 0 24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24zM394.18 135.27c21.1104 0 37.7305 18.9102 37.8203 37.8203c0.0898438 18.9004 -12.8203 37.8105 -22.2695 37.8105c13.4883 14.5547 16.3701 45.2354 -5.21094 65.6191
-c12.5605 21.1309 1.26074 49.4102 -13.9395 57.5703c7.7002 48.7803 -17.6084 65.9004 -53.1201 65.9004h-37.8203c-71.6387 0 -118.028 -37.8203 -171.64 -37.8203v-186.17h10.9199c28.3604 0 67.9805 -70.8896 94.54 -97.46
-c28.3604 -28.3604 18.9102 -75.6299 37.8203 -94.54c47.2695 0 47.2695 32.9805 47.2695 56.7305c0 39.1699 -28.3594 56.7197 -28.3594 94.5391h103.989z" />
-    <glyph glyph-name="sun" unicode="&#xf185;" 
-d="M494.2 226.1c11.2002 -7.59961 17.7998 -20.0996 17.8994 -33.6992c0 -13.4004 -6.69922 -26 -17.7998 -33.5l-59.7998 -40.5l13.7002 -71c2.5 -13.2002 -1.60059 -26.8008 -11.1006 -36.3008s-22.8994 -13.7998 -36.2998 -11.0996l-70.8994 13.7002l-40.4004 -59.9004
-c-7.5 -11.0996 -20.0996 -17.7998 -33.5 -17.7998s-26 6.7002 -33.5 17.9004l-40.4004 59.8994l-70.7998 -13.7002c-13.3994 -2.59961 -26.7998 1.60059 -36.2998 11.1006s-13.7002 23.0996 -11.0996 36.2998l13.6992 71l-59.7998 40.5
-c-11.0996 7.5 -17.7998 20 -17.7998 33.5s6.59961 26 17.7998 33.5996l59.7998 40.5l-13.6992 71c-2.60059 13.2002 1.59961 26.7002 11.0996 36.3008c9.5 9.59961 23 13.6992 36.2998 11.1992l70.7998 -13.6992l40.4004 59.8994c15.0996 22.2998 51.9004 22.2998 67 0
-l40.4004 -59.8994l70.8994 13.6992c13 2.60059 26.6006 -1.59961 36.2002 -11.0996c9.5 -9.59961 13.7002 -23.2002 11.0996 -36.4004l-13.6992 -71zM381.3 140.5l76.7998 52.0996l-76.7998 52l17.6006 91.1006l-91 -17.6006l-51.9004 76.9004l-51.7998 -76.7998
-l-91 17.5996l17.5996 -91.2002l-76.7998 -52l76.7998 -52l-17.5996 -91.1992l90.8994 17.5996l51.9004 -77l51.9004 76.9004l91 -17.6006zM256 296c57.2998 0 104 -46.7002 104 -104s-46.7002 -104 -104 -104s-104 46.7002 -104 104s46.7002 104 104 104zM256 136
-c30.9004 0 56 25.0996 56 56s-25.0996 56 -56 56s-56 -25.0996 -56 -56s25.0996 -56 56 -56z" />
-    <glyph glyph-name="moon" unicode="&#xf186;" 
-d="M279.135 -64c-141.424 0 -256 114.64 -256 256c0 141.425 114.641 256 256 256c16.0342 -0.00292969 31.5078 -1.46875 46.7354 -4.27734c44.0205 -8.13086 53.7666 -66.8691 15.0215 -88.9189c-41.374 -23.5439 -67.4336 -67.4121 -67.4336 -115.836
-c0 -83.5234 75.9238 -146.475 158.272 -130.792c43.6904 8.32129 74.5186 -42.5693 46.248 -77.4004c-47.8613 -58.9717 -120.088 -94.7754 -198.844 -94.7754zM279.135 400c-114.875 0 -208 -93.125 -208 -208s93.125 -208 208 -208
-c65.2314 0 123.439 30.0361 161.575 77.0244c-111.611 -21.2568 -215.252 64.0957 -215.252 177.943c0 67.5127 36.9326 126.392 91.6934 157.555c-12.3271 2.27637 -25.0312 3.47754 -38.0166 3.47754z" />
-    <glyph glyph-name="caret-square-left" unicode="&#xf191;" horiz-adv-x="448" 
-d="M272 290.9v-197.801c0 -10.6992 -13 -16.0996 -20.5 -8.5l-98.2998 98.9004c-4.7002 4.7002 -4.7002 12.2002 0 16.9004l98.2998 98.8994c7.5 7.7002 20.5 2.2998 20.5 -8.39941zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352
-c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="dot-circle" unicode="&#xf192;" 
-d="M256 392c-110.549 0 -200 -89.4678 -200 -200c0 -110.549 89.4678 -200 200 -200c110.549 0 200 89.4678 200 200c0 110.549 -89.4678 200 -200 200zM256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248z
-M256 272c44.1826 0 80 -35.8174 80 -80s-35.8174 -80 -80 -80s-80 35.8174 -80 80s35.8174 80 80 80z" />
-    <glyph glyph-name="building" unicode="&#xf1ad;" horiz-adv-x="448" 
-d="M128 300v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12zM268 288c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40
-c0 -6.59961 -5.40039 -12 -12 -12h-40zM140 192c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-40zM268 192c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40
-c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-40zM192 108c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40zM268 96c-6.59961 0 -12 5.40039 -12 12v40
-c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-40zM448 -28v-36h-448v36c0 6.59961 5.40039 12 12 12h19.5v440c0 13.2998 10.7002 24 24 24h337c13.2998 0 24 -10.7002 24 -24v-440h19.5
-c6.59961 0 12 -5.40039 12 -12zM79.5 -15h112.5v67c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-67h112.5v414l-288.5 1z" />
-    <glyph glyph-name="file-pdf" unicode="&#xf1c1;" horiz-adv-x="384" 
-d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
-h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416zM298.2 127.7c10.5 -10.5 8 -38.7002 -17.5 -38.7002c-14.7998 0 -36.9004 6.7998 -55.7998 17c-21.6006 -3.59961 -46 -12.7002 -68.4004 -20.0996c-50.0996 -86.4004 -79.4004 -47 -76.0996 -31.2002
-c4 20 31 35.8994 51 46.2002c10.5 18.3994 25.3994 50.5 35.3994 74.3994c-7.39941 28.6006 -11.3994 51 -7 67.1006c4.7998 17.6992 38.4004 20.2998 42.6006 -5.90039c4.69922 -15.4004 -1.5 -39.9004 -5.40039 -56c8.09961 -21.2998 19.5996 -35.7998 36.7998 -46.2998
-c17.4004 2.2002 52.2002 5.5 64.4004 -6.5zM100.1 49.9004c0 -0.700195 11.4004 4.69922 30.4004 35c-5.90039 -5.5 -25.2998 -21.3008 -30.4004 -35zM181.7 240.5c-2.5 0 -2.60059 -26.9004 1.7998 -40.7998c4.90039 8.7002 5.59961 40.7998 -1.7998 40.7998zM157.3 103.9
-c15.9004 6.09961 34 14.8994 54.7998 19.1992c-11.1992 8.30078 -21.7998 20.4004 -30.0996 35.5c-6.7002 -17.6992 -15 -37.7998 -24.7002 -54.6992zM288.9 108.9c3.59961 2.39941 -2.2002 10.3994 -37.3008 7.7998c32.3008 -13.7998 37.3008 -7.7998 37.3008 -7.7998z" />
-    <glyph glyph-name="file-word" unicode="&#xf1c2;" horiz-adv-x="384" 
-d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
-h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416zM268.1 192v0.200195h15.8008c7.7998 0 13.5 -7.2998 11.5996 -14.9004c-4.2998 -17 -13.7002 -54.0996 -34.5 -136c-1.2998 -5.39941 -6.09961 -9.09961 -11.5996 -9.09961h-24.7002
-c-5.5 0 -10.2998 3.7998 -11.6006 9.09961c-5.2998 20.9004 -17.7998 71 -17.8994 71.4004l-2.90039 17.2998c-0.5 -5.2998 -1.5 -11.0996 -3 -17.2998l-17.8994 -71.4004c-1.30078 -5.39941 -6.10059 -9.09961 -11.6006 -9.09961h-25.2002
-c-5.59961 0 -10.3994 3.7002 -11.6992 9.09961c-6.5 26.5 -25.2002 103.4 -33.2002 136c-1.7998 7.5 3.89941 14.7998 11.7002 14.7998h16.7998c5.7998 0 10.7002 -4.09961 11.7998 -9.69922c5 -25.7002 18.4004 -93.8008 19.0996 -99
-c0.300781 -1.7002 0.400391 -3.10059 0.5 -4.2002c0.800781 7.5 0.400391 4.7002 24.8008 103.7c1.39941 5.2998 6.19922 9.09961 11.6992 9.09961h13.3008c5.59961 0 10.3994 -3.7998 11.6992 -9.2002c23.9004 -99.7002 22.8008 -94.3994 23.6006 -99.5
-c0.299805 -1.7002 0.5 -3.09961 0.700195 -4.2998c0.599609 8.09961 0.399414 5.7998 21 103.5c1.09961 5.5 6 9.5 11.6992 9.5z" />
-    <glyph glyph-name="file-excel" unicode="&#xf1c3;" horiz-adv-x="384" 
-d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
-h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416zM260 224c9.2002 0 15 -10 10.2998 -18c-16 -27.5 -45.5996 -76.9004 -46.2998 -78l46.4004 -78c4.59961 -8 -1.10059 -18 -10.4004 -18h-28.7998c-4.40039 0 -8.5 2.40039 -10.6006 6.2998
-c-22.6992 41.7998 -13.6992 27.5 -28.5996 57.7002c-5.59961 -12.7002 -6.90039 -17.7002 -28.5996 -57.7002c-2.10059 -3.89941 -6.10059 -6.2998 -10.5 -6.2998h-28.9004c-9.2998 0 -15.0996 10 -10.4004 18l46.3008 78l-46.3008 78c-4.59961 8 1.10059 18 10.4004 18
-h28.9004c4.39941 0 8.5 -2.40039 10.5996 -6.2998c21.7002 -40.4004 14.7002 -28.6006 28.5996 -57.7002c6.40039 15.2998 10.6006 24.5996 28.6006 57.7002c2.09961 3.89941 6.09961 6.2998 10.5 6.2998h28.7998z" />
-    <glyph glyph-name="file-powerpoint" unicode="&#xf1c4;" horiz-adv-x="384" 
-d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
-h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416zM120 44v168c0 6.59961 5.40039 12 12 12h69.2002c36.7002 0 62.7998 -27 62.7998 -66.2998c0 -74.2998 -68.7002 -66.5 -95.5 -66.5v-47.2002c0 -6.59961 -5.40039 -12 -12 -12h-24.5c-6.59961 0 -12 5.40039 -12 12z
-M168.5 131.4h23c7.90039 0 13.9004 2.39941 18.0996 7.19922c8.5 9.80078 8.40039 28.5 0.100586 37.8008c-4.10059 4.59961 -9.90039 7 -17.4004 7h-23.8994v-52h0.0996094z" />
-    <glyph glyph-name="file-image" unicode="&#xf1c5;" horiz-adv-x="384" 
-d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
-h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416zM80 32v64l39.5 39.5c4.7002 4.7002 12.2998 4.7002 17 0l39.5 -39.5l87.5 87.5c4.7002 4.7002 12.2998 4.7002 17 0l23.5 -23.5v-128h-224zM128 272c26.5 0 48 -21.5 48 -48s-21.5 -48 -48 -48s-48 21.5 -48 48
-s21.5 48 48 48z" />
-    <glyph glyph-name="file-archive" unicode="&#xf1c6;" horiz-adv-x="384" 
-d="M128.3 288h32v-32h-32v32zM192.3 384v-32h-32v32h32zM128.3 352h32v-32h-32v32zM192.3 320v-32h-32v32h32zM369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1
-c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM256 396.1v-76.0996h76.0996zM336 -16v288h-104c-13.2998 0 -24 10.7002 -24 24v104h-48.2998v-16h-32v16h-79.7002v-416h288zM194.2 182.3l17.2998 -87.7002c6.40039 -32.3994 -18.4004 -62.5996 -51.5 -62.5996
-c-33.2002 0 -58 30.4004 -51.4004 62.9004l19.7002 97.0996v32h32v-32h22.1006c5.7998 0 10.6992 -4.09961 11.7998 -9.7002zM160.3 57.9004c17.9004 0 32.4004 12.0996 32.4004 27c0 14.8994 -14.5 27 -32.4004 27c-17.8994 0 -32.3994 -12.1006 -32.3994 -27
-c0 -14.9004 14.5 -27 32.3994 -27zM192.3 256v-32h-32v32h32z" />
-    <glyph glyph-name="file-audio" unicode="&#xf1c7;" horiz-adv-x="384" 
-d="M369.941 350.059c8.68848 -8.68848 14.0586 -20.6943 14.0586 -33.9404v-332.118c0 -26.5098 -21.4902 -48 -48 -48h-288c-26.5098 0 -48 21.4902 -48 48v416c0 26.5098 21.4902 48 48 48h204.118c13.2461 0 25.252 -5.37012 33.9404 -14.0586zM332.118 320
-l-76.1182 76.1182v-76.1182h76.1182zM48 -16h288v288h-104c-13.2549 0 -24 10.7451 -24 24v104h-160v-416zM192 60.0244c0 -10.6914 -12.9258 -16.0459 -20.4854 -8.48535l-35.5146 35.9746h-28c-6.62695 0 -12 5.37305 -12 12v56c0 6.62695 5.37305 12 12 12h28
-l35.5146 36.9473c7.56055 7.56055 20.4854 2.20605 20.4854 -8.48535v-135.951zM233.201 107.154c9.05078 9.29688 9.05957 24.1328 0.000976562 33.4385c-22.1494 22.752 12.2344 56.2461 34.3945 33.4814c27.1982 -27.9404 27.2119 -72.4443 0.000976562 -100.401
-c-21.793 -22.3857 -56.9463 10.3154 -34.3965 33.4814z" />
-    <glyph glyph-name="file-video" unicode="&#xf1c8;" horiz-adv-x="384" 
-d="M369.941 350.059c8.68848 -8.68848 14.0586 -20.6943 14.0586 -33.9404v-332.118c0 -26.5098 -21.4902 -48 -48 -48h-288c-26.5098 0 -48 21.4902 -48 48v416c0 26.5098 21.4902 48 48 48h204.118c13.2461 0 25.252 -5.37012 33.9404 -14.0586zM332.118 320
-l-76.1182 76.1182v-76.1182h76.1182zM48 -16h288v288h-104c-13.2549 0 -24 10.7451 -24 24v104h-160v-416zM276.687 195.303c10.0049 10.0049 27.3135 2.99707 27.3135 -11.3135v-111.976c0 -14.2939 -17.2959 -21.332 -27.3135 -11.3135l-52.6865 52.6738v-37.374
-c0 -11.0459 -8.9541 -20 -20 -20h-104c-11.0459 0 -20 8.9541 -20 20v104c0 11.0459 8.9541 20 20 20h104c11.0459 0 20 -8.9541 20 -20v-37.374z" />
-    <glyph glyph-name="file-code" unicode="&#xf1c9;" horiz-adv-x="384" 
-d="M149.9 98.9004c3.5 -3.30078 3.69922 -8.90039 0.399414 -12.4004l-17.3994 -18.5996c-1.60059 -1.80078 -4 -2.80078 -6.40039 -2.80078c-2.2002 0 -4.40039 0.900391 -6 2.40039l-57.7002 54.0996c-3.7002 3.40039 -3.7002 9.30078 0 12.8008l57.7002 54.0996
-c3.40039 3.2998 9 3.2002 12.4004 -0.400391l17.3994 -18.5996l0.200195 -0.200195c3.2002 -3.59961 2.7998 -9.2002 -0.799805 -12.3994l-32.7998 -28.9004l32.7998 -28.9004zM369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288
-c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM256 396.1v-76.0996h76.0996zM336 -16v288h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416h288zM209.6 234l24.4004 -7
-c4.7002 -1.2998 7.40039 -6.2002 6 -10.9004l-54.7002 -188.199c-1.2998 -4.60059 -6.2002 -7.40039 -10.8994 -6l-24.4004 7.09961c-4.7002 1.2998 -7.40039 6.2002 -6 10.9004l54.7002 188.1c1.39941 4.7002 6.2002 7.40039 10.8994 6zM234.1 157.1
-c-3.5 3.30078 -3.69922 8.90039 -0.399414 12.4004l17.3994 18.5996c3.30078 3.60059 8.90039 3.7002 12.4004 0.400391l57.7002 -54.0996c3.7002 -3.40039 3.7002 -9.30078 0 -12.8008l-57.7002 -54.0996c-3.5 -3.2998 -9.09961 -3.09961 -12.4004 0.400391
-l-17.3994 18.5996l-0.200195 0.200195c-3.2002 3.59961 -2.7998 9.2002 0.799805 12.3994l32.7998 28.9004l-32.7998 28.9004z" />
-    <glyph glyph-name="life-ring" unicode="&#xf1cd;" 
-d="M256 -56c-136.967 0 -248 111.033 -248 248s111.033 248 248 248s248 -111.033 248 -248s-111.033 -248 -248 -248zM152.602 20.7197c63.2178 -38.3184 143.579 -38.3184 206.797 0l-53.4111 53.4111c-31.8467 -13.5215 -68.168 -13.5059 -99.9746 0zM336 192
-c0 44.1123 -35.8877 80 -80 80s-80 -35.8877 -80 -80s35.8877 -80 80 -80s80 35.8877 80 80zM427.28 88.6016c38.3184 63.2178 38.3184 143.579 0 206.797l-53.4111 -53.4111c13.5215 -31.8467 13.5049 -68.168 0 -99.9746zM359.397 363.28
-c-63.2168 38.3184 -143.578 38.3184 -206.796 0l53.4111 -53.4111c31.8457 13.5215 68.167 13.5049 99.9736 0zM84.7197 295.398c-38.3184 -63.2178 -38.3184 -143.579 0 -206.797l53.4111 53.4111c-13.5215 31.8467 -13.5059 68.168 0 99.9746z" />
-    <glyph glyph-name="paper-plane" unicode="&#xf1d8;" 
-d="M440 441.5c34.5996 19.9004 77.5996 -8.7998 71.5 -48.9004l-59.4004 -387.199c-2.2998 -14.5 -11.0996 -27.3008 -23.8994 -34.5c-7.2998 -4.10059 -15.4004 -6.2002 -23.6006 -6.2002c-6.19922 0 -12.3994 1.2002 -18.2998 3.59961l-111.899 46.2002l-43.8008 -59.0996
-c-27.3994 -36.9004 -86.5996 -17.8008 -86.5996 28.5996v84.4004l-114.3 47.2998c-36.7998 15.0996 -40.1006 66 -5.7002 85.8994zM192 -16l36.5996 49.5l-36.5996 15.0996v-64.5996zM404.6 12.7002l59.4004 387.3l-416 -240l107.8 -44.5996l211.5 184.3
-c14.2002 12.2998 34.4004 -5.7002 23.7002 -21.2002l-140.2 -202.3z" />
-    <glyph glyph-name="futbol" unicode="&#xf1e3;" horiz-adv-x="496" 
-d="M483.8 268.6c42.2998 -130.199 -29 -270.1 -159.2 -312.399c-25.5 -8.2998 -51.2998 -12.2002 -76.6992 -12.2002c-104.5 0 -201.7 66.5996 -235.7 171.4c-42.2998 130.199 29 270.1 159.2 312.399c25.5 8.2998 51.2998 12.2002 76.6992 12.2002
-c104.5 0 201.7 -66.5996 235.7 -171.4zM409.3 74.9004c6.10059 8.39941 12.1006 16.8994 16.7998 26.1992c14.3008 28.1006 21.5 58.5 21.7002 89.2002l-38.8994 36.4004l-71.1006 -22.1006l-24.3994 -75.1992l43.6992 -60.9004zM409.3 310.3
-c-24.5 33.4004 -58.7002 58.4004 -97.8994 71.4004l-47.4004 -26.2002v-73.7998l64.2002 -46.5l70.7002 22zM184.9 381.6c-39.9004 -13.2998 -73.5 -38.5 -97.8008 -71.8994l10.1006 -52.5l70.5996 -22l64.2002 46.5v73.7998zM139 68.5l43.5 61.7002l-24.2998 74.2998
-l-71.1006 22.2002l-39 -36.4004c0.5 -55.7002 23.4004 -95.2002 37.8008 -115.3zM187.2 1.5c64.0996 -20.4004 115.5 -1.7998 121.7 0l22.3994 48.0996l-44.2998 61.7002h-78.5996l-43.6006 -61.7002z" />
-    <glyph glyph-name="newspaper" unicode="&#xf1ea;" horiz-adv-x="576" 
-d="M552 384c13.2549 0 24 -10.7451 24 -24v-336c0 -13.2549 -10.7451 -24 -24 -24h-496c-30.9277 0 -56 25.0723 -56 56v272c0 13.2549 10.7451 24 24 24h42.752c6.60547 18.623 24.3896 32 45.248 32h440zM48 56c0 -4.41113 3.58887 -8 8 -8s8 3.58887 8 8v248h-16v-248z
-M528 48v288h-416v-280c0 -2.7168 -0.204102 -5.38574 -0.578125 -8h416.578zM172 168c-6.62695 0 -12 5.37305 -12 12v96c0 6.62695 5.37305 12 12 12h136c6.62695 0 12 -5.37305 12 -12v-96c0 -6.62695 -5.37305 -12 -12 -12h-136zM200 248v-40h80v40h-80zM160 108v24
-c0 6.62695 5.37305 12 12 12h136c6.62695 0 12 -5.37305 12 -12v-24c0 -6.62695 -5.37305 -12 -12 -12h-136c-6.62695 0 -12 5.37305 -12 12zM352 108v24c0 6.62695 5.37305 12 12 12h104c6.62695 0 12 -5.37305 12 -12v-24c0 -6.62695 -5.37305 -12 -12 -12h-104
-c-6.62695 0 -12 5.37305 -12 12zM352 252v24c0 6.62695 5.37305 12 12 12h104c6.62695 0 12 -5.37305 12 -12v-24c0 -6.62695 -5.37305 -12 -12 -12h-104c-6.62695 0 -12 5.37305 -12 12zM352 180v24c0 6.62695 5.37305 12 12 12h104c6.62695 0 12 -5.37305 12 -12v-24
-c0 -6.62695 -5.37305 -12 -12 -12h-104c-6.62695 0 -12 5.37305 -12 12z" />
-    <glyph glyph-name="bell-slash" unicode="&#xf1f6;" horiz-adv-x="640" 
-d="M633.99 -23.0195c6.91016 -5.52051 8.01953 -15.5908 2.5 -22.4902l-10 -12.4902c-5.53027 -6.88965 -15.5898 -8.00977 -22.4902 -2.49023l-598 467.51c-6.90039 5.52051 -8.01953 15.5908 -2.49023 22.4902l10 12.4902
-c5.52051 6.90039 15.5898 8.00977 22.4902 2.49023zM163.53 80h182.84l61.3994 -48h-279.659c-19.1201 0 -31.9902 15.5996 -32.1006 32c-0.0498047 7.5498 2.61035 15.2598 8.61035 21.71c18.3701 19.7402 51.5703 49.6904 54.8398 140.42l45.4697 -35.5498
-c-6.91992 -54.7803 -24.6895 -88.5498 -41.3994 -110.58zM320 352c-23.3496 0 -45 -7.17969 -62.9404 -19.4004l-38.1699 29.8408c19.6807 15.7793 43.1104 27.3096 69.1299 32.7197v20.8398c0 17.6699 14.3203 32 31.9805 32s31.9805 -14.3301 31.9805 -32v-20.8398
-c73.46 -15.2598 127.939 -77.46 127.939 -155.16c0 -41.3604 6.03027 -70.7197 14.3398 -92.8496l-59.5293 46.54c-1.63086 13.96 -2.77051 28.8896 -2.79004 45.7295c0 0.200195 0.0595703 0.379883 0.0595703 0.580078c0 61.8604 -50.1396 112 -112 112zM320 -64
-c-35.3203 0 -63.9697 28.6504 -63.9697 64h127.939c0 -35.3496 -28.6494 -64 -63.9697 -64z" />
-    <glyph glyph-name="copyright" unicode="&#xf1f9;" 
-d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM256 -8c110.549 0 200 89.4678 200 200c0 110.549 -89.4678 200 -200 200c-110.549 0 -200 -89.4688 -200 -200c0 -110.549 89.4678 -200 200 -200z
-M363.351 93.0645c-9.61328 -9.71289 -45.5293 -41.3965 -104.064 -41.3965c-82.4297 0 -140.484 61.4248 -140.484 141.567c0 79.1514 60.2754 139.4 139.763 139.4c55.5303 0 88.7373 -26.6201 97.5928 -34.7783c2.37793 -2.1875 3.86914 -5.3252 3.86914 -8.80762
-c0 -2.39746 -0.717773 -4.64258 -1.93359 -6.51465l-18.1543 -28.1133c-3.8418 -5.9502 -11.9668 -7.28223 -17.499 -2.9209c-8.5957 6.77637 -31.8145 22.5381 -61.708 22.5381c-48.3037 0 -77.916 -35.3301 -77.916 -80.082c0 -41.5889 26.8877 -83.6924 78.2764 -83.6924
-c32.6572 0 56.8428 19.0391 65.7266 27.2256c5.26953 4.85645 13.5957 4.03906 17.8193 -1.73828l19.8652 -27.1699c1.45996 -1.98145 2.32422 -4.42969 2.32422 -7.07715c0 -3.28809 -1.32422 -6.2793 -3.47656 -8.44043z" />
-    <glyph glyph-name="closed-captioning" unicode="&#xf20a;" 
-d="M464 384c26.5 0 48 -21.5 48 -48v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h416zM458 48c3.2998 0 6 2.7002 6 6v276c0 3.2998 -2.7002 6 -6 6h-404c-3.2998 0 -6 -2.7002 -6 -6v-276c0 -3.2998 2.7002 -6 6 -6h404z
-M246.9 133.7c1.69922 -2.40039 1.5 -5.60059 -0.5 -7.7002c-53.6006 -56.7998 -172.801 -32.0996 -172.801 67.9004c0 97.2998 121.7 119.5 172.5 70.0996c2.10059 -2 2.5 -3.2002 1 -5.7002l-17.5 -30.5c-1.89941 -3.09961 -6.19922 -4 -9.09961 -1.7002
-c-40.7998 32 -94.5996 14.9004 -94.5996 -31.1992c0 -48 51 -70.5 92.1992 -32.6006c2.80078 2.5 7.10059 2.10059 9.2002 -0.899414zM437.3 133.7c1.7002 -2.40039 1.5 -5.60059 -0.5 -7.7002c-53.5996 -56.9004 -172.8 -32.0996 -172.8 67.9004
-c0 97.2998 121.7 119.5 172.5 70.0996c2.09961 -2 2.5 -3.2002 1 -5.7002l-17.5 -30.5c-1.90039 -3.09961 -6.2002 -4 -9.09961 -1.7002c-40.8008 32 -94.6006 14.9004 -94.6006 -31.1992c0 -48 51 -70.5 92.2002 -32.6006c2.7998 2.5 7.09961 2.10059 9.2002 -0.899414z
-" />
-    <glyph glyph-name="object-group" unicode="&#xf247;" 
-d="M500 320h-12v-256h12c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v12h-320v-12c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v72c0 6.62695 5.37305 12 12 12h12v256h-12
-c-6.62695 0 -12 5.37305 -12 12v72c0 6.62695 5.37305 12 12 12h72c6.62695 0 12 -5.37305 12 -12v-12h320v12c0 6.62695 5.37305 12 12 12h72c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12zM448 384v-32h32v32h-32zM32 384v-32h32v32h-32zM64 0v32
-h-32v-32h32zM480 0v32h-32v-32h32zM440 64v256h-12c-6.62695 0 -12 5.37305 -12 12v12h-320v-12c0 -6.62695 -5.37305 -12 -12 -12h-12v-256h12c6.62695 0 12 -5.37305 12 -12v-12h320v12c0 6.62695 5.37305 12 12 12h12zM404 256c6.62695 0 12 -5.37207 12 -12v-168
-c0 -6.62793 -5.37305 -12 -12 -12h-200c-6.62695 0 -12 5.37207 -12 12v52h-84c-6.62695 0 -12 5.37207 -12 12v168c0 6.62793 5.37305 12 12 12h200c6.62695 0 12 -5.37207 12 -12v-52h84zM136 280v-112h144v112h-144zM376 104v112h-56v-76
-c0 -6.62793 -5.37305 -12 -12 -12h-76v-24h144z" />
-    <glyph glyph-name="object-ungroup" unicode="&#xf248;" horiz-adv-x="576" 
-d="M564 224h-12v-160h12c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v12h-224v-12c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v72c0 6.62695 5.37305 12 12 12h12v24h-88v-12
-c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v72c0 6.62695 5.37305 12 12 12h12v160h-12c-6.62695 0 -12 5.37305 -12 12v72c0 6.62695 5.37305 12 12 12h72c6.62695 0 12 -5.37305 12 -12v-12h224v12c0 6.62695 5.37305 12 12 12h72
-c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12h-12v-24h88v12c0 6.62695 5.37305 12 12 12h72c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12zM352 384v-32h32v32h-32zM352 128v-32h32v32h-32zM64 96v32h-32v-32h32zM64 352v32
-h-32v-32h32zM96 136h224v12c0 6.62695 5.37305 12 12 12h12v160h-12c-6.62695 0 -12 5.37305 -12 12v12h-224v-12c0 -6.62695 -5.37305 -12 -12 -12h-12v-160h12c6.62695 0 12 -5.37305 12 -12v-12zM224 0v32h-32v-32h32zM504 64v160h-12c-6.62695 0 -12 5.37305 -12 12v12
-h-88v-88h12c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v12h-88v-24h12c6.62695 0 12 -5.37305 12 -12v-12h224v12c0 6.62695 5.37305 12 12 12h12zM544 0v32h-32v-32h32zM544 256v32h-32v-32h32z" />
-    <glyph glyph-name="sticky-note" unicode="&#xf249;" horiz-adv-x="448" 
-d="M448 99.8936c0 -13.2451 -5.37012 -25.252 -14.0586 -33.9404l-83.8828 -83.8818c-8.68848 -8.68848 -20.6943 -14.0596 -33.9404 -14.0596h-268.118c-26.5098 0 -48 21.4902 -48 48v351.988c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48v-268.106z
-M320 19.8936l76.1182 76.1182h-76.1182v-76.1182zM400 368h-352v-351.988h224v104c0 13.2549 10.7451 24 24 24h104v223.988z" />
-    <glyph glyph-name="clone" unicode="&#xf24d;" 
-d="M464 448c26.5098 0 48 -21.4902 48 -48v-320c0 -26.5098 -21.4902 -48 -48 -48h-48v-48c0 -26.5098 -21.4902 -48 -48 -48h-320c-26.5098 0 -48 21.4902 -48 48v320c0 26.5098 21.4902 48 48 48h48v48c0 26.5098 21.4902 48 48 48h320zM362 -16c3.31152 0 6 2.68848 6 6
-v42h-224c-26.5098 0 -48 21.4902 -48 48v224h-42c-3.31152 0 -6 -2.68848 -6 -6v-308c0 -3.31152 2.68848 -6 6 -6h308zM458 80c3.31152 0 6 2.68848 6 6v308c0 3.31152 -2.68848 6 -6 6h-308c-3.31152 0 -6 -2.68848 -6 -6v-308c0 -3.31152 2.68848 -6 6 -6h308z" />
-    <glyph glyph-name="hourglass" unicode="&#xf254;" horiz-adv-x="384" 
-d="M368 400c0 -80.0996 -31.8984 -165.619 -97.1797 -208c64.9912 -42.1934 97.1797 -127.436 97.1797 -208h4c6.62695 0 12 -5.37305 12 -12v-24c0 -6.62695 -5.37305 -12 -12 -12h-360c-6.62695 0 -12 5.37305 -12 12v24c0 6.62695 5.37305 12 12 12h4
-c0 80.0996 31.8994 165.619 97.1797 208c-64.9912 42.1934 -97.1797 127.436 -97.1797 208h-4c-6.62695 0 -12 5.37305 -12 12v24c0 6.62695 5.37305 12 12 12h360c6.62695 0 12 -5.37305 12 -12v-24c0 -6.62695 -5.37305 -12 -12 -12h-4zM64 400
-c0 -101.621 57.3066 -184 128 -184s128 82.3799 128 184h-256zM320 -16c0 101.62 -57.3076 184 -128 184s-128 -82.3799 -128 -184h256z" />
-    <glyph glyph-name="hand-rock" unicode="&#xf255;" 
-d="M408.864 368.948c48.8213 20.751 103.136 -15.0723 103.136 -67.9111v-114.443c0 -15.3955 -3.08887 -30.3906 -9.18262 -44.5674l-42.835 -99.6562c-4.99707 -11.625 -3.98242 -18.8574 -3.98242 -42.3701c0 -17.6729 -14.3271 -32 -32 -32h-252
-c-17.6729 0 -32 14.3271 -32 32c0 27.3301 1.1416 29.2012 -3.11035 32.9033l-97.71 85.0811c-24.8994 21.6797 -39.1797 52.8926 -39.1797 85.6338v56.9531c0 47.4277 44.8457 82.0215 91.0459 71.1807c1.96094 55.751 63.5107 87.8262 110.671 60.8057
-c29.1895 31.0713 78.8604 31.4473 108.334 -0.0214844c32.7051 18.6846 76.4121 10.3096 98.8135 -23.5879zM464 186.594v114.445c0 34.29 -52 33.8232 -52 0.676758c0 -8.83594 -7.16309 -16 -16 -16h-7c-8.83691 0 -16 7.16406 -16 16v26.751
-c0 34.457 -52 33.707 -52 0.676758v-27.4287c0 -8.83594 -7.16309 -16 -16 -16h-7c-8.83691 0 -16 7.16406 -16 16v40.4658c0 34.3525 -52 33.8115 -52 0.677734v-41.1436c0 -8.83594 -7.16406 -16 -16 -16h-7c-8.83594 0 -16 7.16406 -16 16v26.751
-c0 34.4023 -52 33.7744 -52 0.676758v-116.571c0 -8.83105 -7.17773 -15.9961 -16.0078 -15.9961c-4.0166 0 -7.68848 1.48242 -10.499 3.92969l-7 6.09473c-3.37012 2.93457 -5.49316 7.25293 -5.49316 12.0674v41.2275c0 34.2148 -52 33.8857 -52 0.677734v-56.9531
-c0 -18.8555 8.27441 -36.874 22.7002 -49.4365l97.71 -85.0801c12.4502 -10.8398 19.5898 -26.4463 19.5898 -42.8164v-10.2861h220v7.07617c0 13.21 2.65332 26.0791 7.88281 38.25l42.835 99.6553c3.37891 7.82715 5.28223 16.501 5.28223 25.5625v0.0498047z" />
-    <glyph glyph-name="hand-paper" unicode="&#xf256;" horiz-adv-x="448" 
-d="M372.57 335.359c39.9062 5.63281 75.4297 -25.7393 75.4297 -66.3594v-131.564c-0.00292969 -15.7393 -1.80566 -30.9482 -5.19531 -45.666l-30.1836 -130.958c-3.34668 -14.5234 -16.2783 -24.8125 -31.1816 -24.8125h-222.897
-c-10.7539 0 -20.2588 5.28613 -26.0615 13.4316l-119.97 168.415c-21.2441 29.8203 -14.8047 71.3574 14.5498 93.1533c18.7754 13.9395 42.1309 16.2979 62.083 8.87109v126.13c0 44.0547 41.125 75.5439 82.4053 64.9834c23.8926 48.1963 92.3535 50.2471 117.982 0.74707
-c42.5186 11.1445 83.0391 -21.9346 83.0391 -65.5469v-10.8242zM399.997 137.437l-0.00195312 131.563c0 24.9492 -36.5703 25.5508 -36.5703 -0.691406v-76.3086c0 -8.83691 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16309 -16 16v154.184
-c0 25.501 -36.5703 26.3633 -36.5703 0.691406v-154.875c0 -8.83691 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16309 -16 16v188.309c0 25.501 -36.5703 26.3545 -36.5703 0.691406v-189c0 -8.83691 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16309 -16 16
-v153.309c0 25.501 -36.5713 26.3359 -36.5713 0.691406v-206.494c0 -15.5703 -20.0352 -21.9092 -29.0303 -9.2832l-27.1279 38.0791c-14.3711 20.1709 -43.833 -2.33496 -29.3945 -22.6045l115.196 -161.697h201.92l27.3252 118.551
-c2.63086 11.417 3.96484 23.1553 3.96484 34.8857z" />
-    <glyph glyph-name="hand-scissors" unicode="&#xf257;" 
-d="M256 -32c-44.9561 0 -77.3428 43.2627 -64.0244 85.8535c-21.6484 13.71 -34.0156 38.7617 -30.3408 65.0068h-87.6348c-40.8037 0 -74 32.8105 -74 73.1406c0 40.3291 33.1963 73.1396 74 73.1396l94 -9.14062l-78.8496 18.6787
-c-38.3076 14.7422 -57.04 57.4707 -41.9424 95.1123c15.0303 37.4736 57.7549 55.7803 95.6416 41.2012l144.929 -55.7568c24.9551 30.5566 57.8086 43.9932 92.2178 24.7324l97.999 -54.8525c20.9746 -11.7393 34.0049 -33.8457 34.0049 -57.6904v-205.702
-c0 -30.7422 -21.4404 -57.5576 -51.7979 -64.5537l-118.999 -27.4268c-4.97168 -1.14648 -10.0889 -1.72949 -15.2031 -1.72949zM256 16.0127l70 -0.000976562c1.52441 0 2.99707 0.174805 4.42285 0.501953l119.001 27.4277
-c8.58203 1.97754 14.5762 9.29102 14.5762 17.7812v205.701c0 6.4873 -3.62109 12.542 -9.44922 15.8047l-98 54.8545c-8.13965 4.55566 -18.668 2.61914 -24.4873 -4.50781l-21.7646 -26.6475c-2.93457 -3.59375 -7.40332 -5.87305 -12.4004 -5.87305
-c-2.02246 0 -3.95703 0.375977 -5.73828 1.06152l-166.549 64.0908c-32.6543 12.5664 -50.7744 -34.5771 -19.2227 -46.7168l155.357 -59.7852c6 -2.30859 10.2539 -8.12402 10.2539 -14.9326v-11.6328c0 -8.83691 -7.16309 -16 -16 -16h-182
-c-34.375 0 -34.4297 -50.2803 0 -50.2803h182c8.83691 0 16 -7.16309 16 -16v-6.85645c0 -8.83691 -7.16309 -16 -16 -16h-28c-25.1221 0 -25.1592 -36.5674 0 -36.5674h28c8.83691 0 16 -7.16211 16 -16v-6.85547c0 -8.83691 -7.16309 -16 -16 -16
-c-25.1201 0 -25.1602 -36.5674 0 -36.5674z" />
-    <glyph glyph-name="hand-lizard" unicode="&#xf258;" horiz-adv-x="576" 
-d="M556.686 157.458c12.6357 -19.4863 19.3145 -42.0615 19.3145 -65.2871v-124.171h-224v71.582l-99.751 38.7871c-2.7832 1.08203 -5.70996 1.63086 -8.69727 1.63086h-131.552c-30.8789 0 -56 25.1211 -56 56c0 48.5234 39.4766 88 88 88h113.709l18.333 48h-196.042
-c-44.1123 0 -80 35.8877 -80 80v8c0 30.8779 25.1211 56 56 56h293.917c24.5 0 47.084 -12.2725 60.4111 -32.8291zM528 16v76.1709c0 0.0166016 -0.0439453 0.106445 -0.0439453 0.12207c0 14.3945 -4.24219 27.8057 -11.5439 39.0498l-146.358 225.715
-c-4.44336 6.85254 -11.9707 10.9424 -20.1367 10.9424h-293.917c-4.41113 0 -8 -3.58887 -8 -8v-8c0 -17.6445 14.3555 -32 32 -32h213.471c25.2021 0 42.626 -25.293 33.6299 -48.8457l-24.5518 -64.2812c-7.05371 -18.4658 -25.0732 -30.873 -44.8398 -30.873h-113.709
-c-22.0557 0 -40 -17.9443 -40 -40c0 -4.41113 3.58887 -8 8 -8h131.552c0.0175781 0 0.0712891 -0.0273438 0.0888672 -0.0273438c9.16992 0 17.9404 -1.72461 26.0039 -4.86621l99.752 -38.7881c18.5898 -7.22852 30.6035 -24.7881 30.6035 -44.7363v-23.582h128z" />
-    <glyph glyph-name="hand-spock" unicode="&#xf259;" 
-d="M501.03 331.824c6.92773 -11.1826 10.9697 -24.4053 10.9697 -38.5146c0 -5.92676 -0.706055 -11.6885 -2.03809 -17.208l-57.623 -241.963c-13.2236 -56.1904 -63.707 -98.1387 -123.908 -98.1387h-0.352539h-107.455
-c-0.0761719 0 -0.193359 0.00195312 -0.270508 0.00195312c-40.9248 0 -78.1475 15.9814 -105.761 42.0391l-91.3652 85.9766c-14.3076 13.4434 -23.2246 32.5547 -23.2246 53.7168c0 19.5254 7.61035 37.2861 20.0254 50.4766
-c5.31836 5.66406 29.875 29.3926 68.1152 21.8477l-24.3594 82.1973c-1.97363 6.64844 -2.97656 13.6836 -2.97656 20.9688c0 38.6953 29.8926 70.4639 67.8262 73.4531c-0.246094 2.45117 -0.34082 4.85547 -0.34082 7.37207c0 34.4199 23.585 63.376 55.4619 71.5752
-c43.248 10.9785 80.5645 -17.7012 89.6602 -53.0723l13.6836 -53.207l4.64648 22.6602c6.99023 33.5186 36.6826 58.8037 72.2373 58.916c8.73438 0 56.625 -3.26953 70.7383 -54.0801c15.0664 0.710938 46.9199 -3.50977 66.3105 -35.0176zM463.271 287.219
-c7.86914 32.9844 -42.1211 45.2695 -50.0859 11.9219l-24.8008 -104.146c-4.38867 -18.4141 -31.7783 -11.8926 -28.0557 6.2168l28.5479 139.166c7.39844 36.0703 -43.3076 45.0703 -50.1182 11.9629l-31.791 -154.971
-c-3.54883 -17.3086 -28.2832 -18.0469 -32.7109 -0.804688l-47.3262 184.035c-8.43359 32.8105 -58.3691 20.2676 -49.8652 -12.8359l42.4414 -165.039c4.81641 -18.7207 -23.3711 -26.9121 -28.9648 -8.00781l-31.3438 105.779
-c-9.6875 32.6465 -59.1191 18.2578 -49.3867 -14.625l36.0137 -121.539c6.59375 -22.2441 10.1777 -45.7803 10.1777 -70.1523c0 -6.54297 -8.05664 -10.9355 -13.4824 -5.82617l-51.123 48.1074c-24.7852 23.4082 -60.0527 -14.1875 -35.2793 -37.4902l91.3691 -85.9805
-c19.0469 -17.9736 44.75 -28.998 72.9795 -28.998h0.157227h107.455c0.0732422 0 0.138672 0.0429688 0.212891 0.0429688c37.5791 0 69.1016 26.1416 77.3564 61.2168z" />
-    <glyph glyph-name="hand-pointer" unicode="&#xf25a;" horiz-adv-x="448" 
-d="M358.182 268.639c43.1934 16.6348 89.8184 -15.7949 89.8184 -62.6387v-84c-0.000976562 -5.24023 -0.600586 -10.3037 -1.72754 -15.2041l-27.4297 -118.999c-6.98242 -30.2969 -33.7549 -51.7969 -64.5566 -51.7969h-178.286
-c-21.2588 0 -41.3682 10.4102 -53.791 27.8457l-109.699 154.001c-21.2432 29.8193 -14.8047 71.3574 14.5498 93.1523c18.8115 13.9658 42.1748 16.2822 62.083 8.87207v161.129c0 36.9443 29.7363 67 66.2861 67s66.2861 -30.0557 66.2861 -67v-73.6338
-c20.4131 2.85742 41.4678 -3.94238 56.5947 -19.6289c27.1934 12.8467 60.3799 5.66992 79.8721 -19.0986zM80.9854 168.303c-14.4004 20.2119 -43.8008 -2.38281 -29.3945 -22.6055l109.712 -154c3.43457 -4.81934 8.92871 -7.69727 14.6973 -7.69727h178.285
-c8.49219 0 15.8037 5.99414 17.7822 14.5762l27.4297 119.001c0.333008 1.44629 0.501953 2.93457 0.501953 4.42285v84c0 25.1602 -36.5713 25.1211 -36.5713 0c0 -8.83594 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16406 -16 16v21
-c0 25.1602 -36.5713 25.1201 -36.5713 0v-21c0 -8.83594 -7.16309 -16 -16 -16h-6.85938c-8.83691 0 -16 7.16406 -16 16v35c0 25.1602 -36.5703 25.1201 -36.5703 0v-35c0 -8.83594 -7.16309 -16 -16 -16h-6.85742c-8.83691 0 -16 7.16406 -16 16v175
-c0 25.1602 -36.5713 25.1201 -36.5713 0v-241.493c0 -15.5703 -20.0352 -21.9092 -29.0303 -9.2832zM176.143 48v96c0 8.83691 6.26855 16 14 16h6c7.73242 0 14 -7.16309 14 -16v-96c0 -8.83691 -6.26758 -16 -14 -16h-6c-7.73242 0 -14 7.16309 -14 16zM251.571 48v96
-c0 8.83691 6.26758 16 14 16h6c7.73145 0 14 -7.16309 14 -16v-96c0 -8.83691 -6.26855 -16 -14 -16h-6c-7.73242 0 -14 7.16309 -14 16zM327 48v96c0 8.83691 6.26758 16 14 16h6c7.73242 0 14 -7.16309 14 -16v-96c0 -8.83691 -6.26758 -16 -14 -16h-6
-c-7.73242 0 -14 7.16309 -14 16z" />
-    <glyph glyph-name="hand-peace" unicode="&#xf25b;" horiz-adv-x="448" 
-d="M362.146 256.024c42.5908 13.3184 85.8535 -19.0684 85.8535 -64.0244l-0.0117188 -70.001c-0.000976562 -5.24023 -0.600586 -10.3027 -1.72949 -15.2031l-27.4268 -118.999c-6.99707 -30.3564 -33.8105 -51.7969 -64.5547 -51.7969h-205.702
-c-23.8447 0 -45.9502 13.0303 -57.6904 34.0059l-54.8525 97.999c-19.2607 34.4092 -5.82422 67.2617 24.7324 92.2178l-55.7568 144.928c-14.5791 37.8867 3.72754 80.6113 41.2012 95.6416c37.6406 15.0977 80.3691 -3.63477 95.1123 -41.9424l18.6787 -78.8496
-l-9.14062 94c0 40.8037 32.8096 74 73.1396 74s73.1406 -33.1963 73.1406 -74v-87.6348c26.2451 3.6748 51.2959 -8.69238 65.0068 -30.3408zM399.987 122l-0.000976562 70c0 25.1602 -36.5674 25.1201 -36.5674 0c0 -8.83691 -7.16309 -16 -16 -16h-6.85547
-c-8.83789 0 -16 7.16309 -16 16v28c0 25.1592 -36.5674 25.1221 -36.5674 0v-28c0 -8.83691 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16309 -16 16v182c0 34.4297 -50.2803 34.375 -50.2803 0v-182c0 -8.83691 -7.16309 -16 -16 -16h-11.6328
-c-6.80859 0 -12.624 4.25391 -14.9326 10.2539l-59.7842 155.357c-12.1396 31.5518 -59.2842 13.4326 -46.7168 -19.2227l64.0898 -166.549c0.685547 -1.78125 1.07812 -3.71875 1.07812 -5.74121c0 -4.99707 -2.2959 -9.46289 -5.88965 -12.3975l-26.6475 -21.7646
-c-7.12695 -5.81934 -9.06445 -16.3467 -4.50781 -24.4873l54.8535 -98c3.26367 -5.82812 9.31934 -9.44922 15.8057 -9.44922h205.701c8.49121 0 15.8037 5.99414 17.7812 14.5762l27.4277 119.001c0.333008 1.44629 0.501953 2.93457 0.501953 4.42285z" />
-    <glyph glyph-name="registered" unicode="&#xf25d;" 
-d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM256 -8c110.549 0 200 89.4678 200 200c0 110.549 -89.4678 200 -200 200c-110.549 0 -200 -89.4688 -200 -200c0 -110.549 89.4678 -200 200 -200z
-M366.442 73.791c4.40332 -7.99219 -1.37012 -17.791 -10.5107 -17.791h-42.8096c-0.00488281 0 -0.000976562 -0.0126953 -0.00585938 -0.0126953c-4.58594 0 -8.57422 2.58301 -10.5869 6.37305l-47.5156 89.3027h-31.958v-83.6631c0 -6.61719 -5.38281 -12 -12 -12
-h-38.5674c-6.61719 0 -12 5.38281 -12 12v248.304c0 6.61719 5.38281 12 12 12h78.667c71.251 0 101.498 -32.749 101.498 -85.252c0 -31.6123 -15.2148 -59.2969 -39.4824 -73.1758c3.02148 -4.61719 0.225586 0.199219 53.2715 -96.085zM256.933 208.094
-c20.9131 0 32.4307 11.5186 32.4316 32.4316c0 19.5752 -6.5127 31.709 -38.9297 31.709h-27.377v-64.1406h33.875z" />
-    <glyph glyph-name="calendar-plus" unicode="&#xf271;" horiz-adv-x="448" 
-d="M336 156v-24c0 -6.59961 -5.40039 -12 -12 -12h-76v-76c0 -6.59961 -5.40039 -12 -12 -12h-24c-6.59961 0 -12 5.40039 -12 12v76h-76c-6.59961 0 -12 5.40039 -12 12v24c0 6.59961 5.40039 12 12 12h76v76c0 6.59961 5.40039 12 12 12h24c6.59961 0 12 -5.40039 12 -12
-v-76h76c6.59961 0 12 -5.40039 12 -12zM448 336v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40
-c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48zM400 -10v298h-352v-298c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="calendar-minus" unicode="&#xf272;" horiz-adv-x="448" 
-d="M124 120c-6.59961 0 -12 5.40039 -12 12v24c0 6.59961 5.40039 12 12 12h200c6.59961 0 12 -5.40039 12 -12v-24c0 -6.59961 -5.40039 -12 -12 -12h-200zM448 336v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h48v52
-c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48zM400 -10v298h-352v-298c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="calendar-times" unicode="&#xf273;" horiz-adv-x="448" 
-d="M311.7 73.2998l-17 -17c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-53.7002 53.7998l-53.7002 -53.6992c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-17 17c-4.7002 4.69922 -4.7002 12.2998 0 17l53.7002 53.6992l-53.7002 53.7002c-4.7002 4.7002 -4.7002 12.2998 0 17
-l17 17c4.7002 4.7002 12.2998 4.7002 17 0l53.7002 -53.7002l53.7002 53.7002c4.7002 4.7002 12.2998 4.7002 17 0l17 -17c4.7002 -4.7002 4.7002 -12.2998 0 -17l-53.7998 -53.7998l53.6992 -53.7002c4.80078 -4.7002 4.80078 -12.2998 0.100586 -17zM448 336v-352
-c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48zM400 -10
-v298h-352v-298c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="calendar-check" unicode="&#xf274;" horiz-adv-x="448" 
-d="M400 384c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h48v52c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-52h128v52c0 6.62695 5.37305 12 12 12h40
-c6.62695 0 12 -5.37305 12 -12v-52h48zM394 -16c3.31152 0 6 2.68848 6 6v298h-352v-298c0 -3.31152 2.68848 -6 6 -6h340zM341.151 184.65l-142.31 -141.169c-4.70508 -4.66699 -12.3027 -4.6377 -16.9707 0.0673828l-75.0908 75.6992
-c-4.66699 4.70508 -4.6377 12.3027 0.0673828 16.9707l22.7197 22.5361c4.70508 4.66699 12.3027 4.63672 16.9697 -0.0693359l44.1035 -44.4609l111.072 110.182c4.70508 4.66699 12.3027 4.63672 16.9707 -0.0683594l22.5361 -22.7178
-c4.66699 -4.70508 4.63672 -12.3027 -0.0683594 -16.9697z" />
-    <glyph glyph-name="map" unicode="&#xf279;" horiz-adv-x="576" 
-d="M560.02 416c8.4502 0 15.9805 -6.83008 15.9805 -16.0195v-346.32c0 -13.4707 -8.32422 -24.9951 -20.1201 -29.71l-151.83 -52.8105c-6.23242 -2.02832 -12.9023 -3.12305 -19.8076 -3.12305c-7.07324 0 -13.8799 1.15039 -20.2422 3.27344l-172 60.71l-170.05 -62.8398
-c-1.99023 -0.790039 -4 -1.16016 -5.95996 -1.16016c-8.45996 0 -15.9902 6.83008 -15.9902 16.0195v346.32c0.00292969 13.4697 8.32617 24.9932 20.1201 29.71l151.83 52.8105c6.43945 2.08984 13.1201 3.13965 19.8096 3.13965
-c7.06641 -0.00292969 13.8789 -1.16602 20.2402 -3.28027l172 -60.7197h0.00976562l170.05 62.8398c1.98047 0.790039 4 1.16016 5.95996 1.16016zM224 357.58v-285.97l128 -45.1904v285.97zM48 29.9502l127.36 47.0801l0.639648 0.229492v286.2l-128 -44.5303v-288.979z
-M528 65.0801v288.97l-127.36 -47.0693l-0.639648 -0.240234v-286.19z" />
-    <glyph glyph-name="comment-alt" unicode="&#xf27a;" 
-d="M448 448c35.2998 0 64 -28.7002 64 -64v-288c0 -35.2998 -28.7002 -64 -64 -64h-144l-124.9 -93.5996c-2.19922 -1.7002 -4.69922 -2.40039 -7.09961 -2.40039c-6.2002 0 -12 4.90039 -12 12v84h-96c-35.2998 0 -64 28.7002 -64 64v288c0 35.2998 28.7002 64 64 64h384z
-M464 96v288c0 8.7998 -7.2002 16 -16 16h-384c-8.7998 0 -16 -7.2002 -16 -16v-288c0 -8.7998 7.2002 -16 16 -16h144v-60l67.2002 50.4004l12.7998 9.59961h160c8.7998 0 16 7.2002 16 16z" />
-    <glyph glyph-name="pause-circle" unicode="&#xf28b;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 -8c110.5 0 200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200zM352 272v-160c0 -8.7998 -7.2002 -16 -16 -16h-48
-c-8.7998 0 -16 7.2002 -16 16v160c0 8.7998 7.2002 16 16 16h48c8.7998 0 16 -7.2002 16 -16zM240 272v-160c0 -8.7998 -7.2002 -16 -16 -16h-48c-8.7998 0 -16 7.2002 -16 16v160c0 8.7998 7.2002 16 16 16h48c8.7998 0 16 -7.2002 16 -16z" />
-    <glyph glyph-name="stop-circle" unicode="&#xf28d;" 
-d="M504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM56 192c0 -110.5 89.5 -200 200 -200s200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200zM352 272v-160c0 -8.7998 -7.2002 -16 -16 -16h-160
-c-8.7998 0 -16 7.2002 -16 16v160c0 8.7998 7.2002 16 16 16h160c8.7998 0 16 -7.2002 16 -16z" />
-    <glyph glyph-name="handshake" unicode="&#xf2b5;" horiz-adv-x="640" 
-d="M519.2 320.1h120.8v-255.699h-64c-17.5 0 -31.7998 14.1992 -31.9004 31.6992h-57.8994c-1.7998 -8.19922 -5.2998 -16.0996 -10.9004 -23l-26.2002 -32.2998c-15.7998 -19.3994 -41.8994 -25.5 -64 -16.7998c-13.5 -16.5996 -30.5996 -24 -48.7998 -24
-c-15.0996 0 -28.5996 5.09961 -41.0996 15.9004c-31.7998 -21.9004 -74.7002 -21.3008 -105.601 3.7998l-84.5996 76.3994h-9.09961c-0.100586 -17.5 -14.3008 -31.6992 -31.9004 -31.6992h-64v255.699h118l47.5996 47.6006c10.5 10.3994 24.8008 16.2998 39.6006 16.2998
-h226.8c15.4326 0 29.4326 -6.22168 39.5996 -16.2998zM48 96.4004c8.7998 0 16 7.09961 16 16c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.80078 7.2002 -16 16 -16zM438 103.3c2.7002 3.40039 2.2002 8.5 -1.2002 11.2998l-108.2 87.8008l-8.19922 -7.5
-c-40.3008 -36.8008 -86.7002 -11.8008 -101.5 4.39941c-26.7002 29 -25 74.4004 4.39941 101.3l38.7002 35.5h-56.7002c-2 -0.799805 -3.7002 -1.5 -5.7002 -2.2998l-61.6992 -61.5996h-41.9004v-128.101h27.7002l97.2998 -88
-c16.0996 -13.0996 41.4004 -10.5 55.2998 6.60059l15.6006 19.2002l36.7998 -31.5c3 -2.40039 12 -4.90039 18 2.39941l30 36.5l23.8994 -19.3994c3.5 -2.80078 8.5 -2.2002 11.3008 1.19922zM544 144.1v128h-44.7002l-61.7002 61.6006
-c-1.39941 1.5 -3.39941 2.2998 -5.5 2.2998l-83.6992 -0.200195c-10 0 -19.6006 -3.7002 -27 -10.5l-65.6006 -60.0996c-9.7002 -8.7998 -10.5 -24 -1.2002 -33.9004c8.90039 -9.39941 25.1006 -8.7002 34.6006 0l55.2002 50.6006c6.5 5.89941 16.5996 5.5 22.5996 -1
-l10.9004 -11.7002c6 -6.5 5.5 -16.6006 -1 -22.6006l-12.5 -11.3994l102.699 -83.4004c2.80078 -2.2998 5.40039 -4.89941 7.7002 -7.7002h69.2002zM592 96.4004c8.7998 0 16 7.09961 16 16c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.80078 7.2002 -16 16 -16z
-" />
-    <glyph glyph-name="envelope-open" unicode="&#xf2b6;" 
-d="M494.586 283.484c10.6523 -8.80762 17.4141 -22.1064 17.4141 -36.9932v-262.491c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v262.515c0 14.9355 6.80469 28.2705 17.5146 37.0771c4.08008 3.35449 110.688 89.0996 135.15 108.549
-c22.6992 18.1426 60.1299 55.8594 103.335 55.8594c43.4365 0 81.2314 -38.1914 103.335 -55.8594c23.5283 -18.707 130.554 -104.773 135.251 -108.656zM464 -10v253.632c0 0.00195312 0.00390625 0.000976562 0.00390625 0.00292969
-c0 1.88184 -0.869141 3.56152 -2.22754 4.66016c-15.8633 12.8232 -108.793 87.5752 -132.366 106.316c-17.5527 14.0195 -49.7168 45.3887 -73.4102 45.3887c-23.6016 0 -55.2451 -30.8799 -73.4102 -45.3887c-23.5713 -18.7393 -116.494 -93.4795 -132.364 -106.293
-c-1.40918 -1.13965 -2.22559 -2.85254 -2.22559 -4.66504v-253.653c0 -3.31152 2.68848 -6 6 -6h404c3.31152 0 6 2.68848 6 6zM432.009 177.704c4.24902 -5.15918 3.46484 -12.7949 -1.74512 -16.9814c-28.9746 -23.2822 -59.2734 -47.5967 -70.9287 -56.8623
-c-22.6992 -18.1436 -60.1299 -55.8604 -103.335 -55.8604c-43.4521 0 -81.2871 38.2373 -103.335 55.8604c-11.2793 8.9668 -41.7441 33.4131 -70.9268 56.8643c-5.20996 4.1875 -5.99316 11.8223 -1.74512 16.9814l15.2578 18.5283
-c4.17773 5.07227 11.6572 5.84277 16.7793 1.72559c28.6182 -23.001 58.5654 -47.0352 70.5596 -56.5713c17.5527 -14.0195 49.7168 -45.3887 73.4102 -45.3887c23.6016 0 55.2461 30.8799 73.4102 45.3887c11.9941 9.53516 41.9434 33.5703 70.5625 56.5684
-c5.12207 4.11621 12.6016 3.3457 16.7783 -1.72656z" />
-    <glyph glyph-name="address-book" unicode="&#xf2b9;" horiz-adv-x="448" 
-d="M436 288h-20v-64h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-20v-64h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-20v-48c0 -26.5 -21.5 -48 -48 -48h-320c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48
-h320c26.5 0 48 -21.5 48 -48v-48h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12zM368 -16v416h-320v-416h320zM208 192c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM118.4 64
-c-12.4004 0 -22.4004 8.59961 -22.4004 19.2002v19.2002c0 31.7998 30.0996 57.5996 67.2002 57.5996c11.3994 0 17.8994 -8 44.7998 -8c26.0996 0 34 8 44.7998 8c37.1006 0 67.2002 -25.7998 67.2002 -57.5996v-19.2002c0 -10.6006 -10 -19.2002 -22.4004 -19.2002
-h-179.199z" />
-    <glyph glyph-name="address-card" unicode="&#xf2bb;" horiz-adv-x="576" 
-d="M528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480zM528 16v352h-480v-352h480zM208 192c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64z
-M118.4 64c-12.4004 0 -22.4004 8.59961 -22.4004 19.2002v19.2002c0 31.7998 30.0996 57.5996 67.2002 57.5996c11.3994 0 17.8994 -8 44.7998 -8c26.0996 0 34 8 44.7998 8c37.1006 0 67.2002 -25.7998 67.2002 -57.5996v-19.2002
-c0 -10.6006 -10 -19.2002 -22.4004 -19.2002h-179.199zM360 128c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112c4.40039 0 8 -3.59961 8 -8v-16c0 -4.40039 -3.59961 -8 -8 -8h-112zM360 192c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112
-c4.40039 0 8 -3.59961 8 -8v-16c0 -4.40039 -3.59961 -8 -8 -8h-112zM360 256c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112c4.40039 0 8 -3.59961 8 -8v-16c0 -4.40039 -3.59961 -8 -8 -8h-112z" />
-    <glyph glyph-name="user-circle" unicode="&#xf2bd;" horiz-adv-x="496" 
-d="M248 344c53 0 96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96s43 96 96 96zM248 200c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8
-c49.7002 0 95.0996 18.2998 130.1 48.4004c-14.8994 23 -40.3994 38.5 -69.5996 39.5c-20.7998 -6.5 -40.5996 -9.60059 -60.5 -9.60059s-39.7002 3.2002 -60.5 9.60059c-29.2002 -0.900391 -54.7002 -16.5 -69.5996 -39.5c35 -30.1006 80.3994 -48.4004 130.1 -48.4004z
-M410.7 76.0996c23.3994 32.7002 37.2998 72.7002 37.2998 115.9c0 110.3 -89.7002 200 -200 200s-200 -89.7002 -200 -200c0 -43.2002 13.9004 -83.2002 37.2998 -115.9c24.5 31.4004 62.2002 51.9004 105.101 51.9004c10.1992 0 26.0996 -9.59961 57.5996 -9.59961
-c31.5996 0 47.4004 9.59961 57.5996 9.59961c43 0 80.7002 -20.5 105.101 -51.9004z" />
-    <glyph glyph-name="id-badge" unicode="&#xf2c1;" horiz-adv-x="384" 
-d="M336 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h288zM336 -16v416h-288v-416h288zM144 336c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16h96c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16
-h-96zM192 160c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM102.4 32c-12.4004 0 -22.4004 8.59961 -22.4004 19.2002v19.2002c0 31.7998 30.0996 57.5996 67.2002 57.5996c11.3994 0 17.8994 -8 44.7998 -8
-c26.0996 0 34 8 44.7998 8c37.1006 0 67.2002 -25.7998 67.2002 -57.5996v-19.2002c0 -10.6006 -10 -19.2002 -22.4004 -19.2002h-179.199z" />
-    <glyph glyph-name="id-card" unicode="&#xf2c2;" horiz-adv-x="576" 
-d="M528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480zM528 16v288h-480v-288h32.7998c-1 4.5 -0.799805 -3.59961 -0.799805 22.4004c0 31.7998 30.0996 57.5996 67.2002 57.5996
-c11.3994 0 17.8994 -8 44.7998 -8c26.0996 0 34 8 44.7998 8c37.1006 0 67.2002 -25.7998 67.2002 -57.5996c0 -26 0.0996094 -17.9004 -0.799805 -22.4004h224.8zM360 96c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112c4.40039 0 8 -3.59961 8 -8v-16
-c0 -4.40039 -3.59961 -8 -8 -8h-112zM360 160c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112c4.40039 0 8 -3.59961 8 -8v-16c0 -4.40039 -3.59961 -8 -8 -8h-112zM360 224c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112
-c4.40039 0 8 -3.59961 8 -8v-16c0 -4.40039 -3.59961 -8 -8 -8h-112zM192 128c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64z" />
-    <glyph glyph-name="window-maximize" unicode="&#xf2d0;" 
-d="M464 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h416zM464 22v234h-416v-234c0 -3.2998 2.7002 -6 6 -6h404c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="window-minimize" unicode="&#xf2d1;" 
-d="M480 -32h-448c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32h448c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32z" />
-    <glyph glyph-name="window-restore" unicode="&#xf2d2;" 
-d="M464 448c26.5 0 48 -21.5 48 -48v-320c0 -26.5 -21.5 -48 -48 -48h-48v-48c0 -26.5 -21.5 -48 -48 -48h-320c-26.5 0 -48 21.5 -48 48v320c0 26.5 21.5 48 48 48h48v48c0 26.5 21.5 48 48 48h320zM368 -16v208h-320v-208h320zM464 80v320h-320v-48h224
-c26.5 0 48 -21.5 48 -48v-224h48z" />
-    <glyph glyph-name="snowflake" unicode="&#xf2dc;" horiz-adv-x="448" 
-d="M440.1 92.7998c7.60059 -4.39941 10.1006 -14.2002 5.5 -21.7002l-7.89941 -13.8994c-4.40039 -7.7002 -14 -10.2998 -21.5 -5.90039l-39.2002 23l9.09961 -34.7002c2.30078 -8.5 -2.69922 -17.2998 -11.0996 -19.5996l-15.2002 -4.09961
-c-8.39941 -2.30078 -17.0996 2.7998 -19.2998 11.2998l-21.2998 81l-71.9004 42.2002v-84.5l58.2998 -59.3008c6.10059 -6.19922 6.10059 -16.3994 0 -22.5996l-11.0996 -11.2998c-6.09961 -6.2002 -16.0996 -6.2002 -22.2002 0l-24.8994 25.3994v-46.0996
-c0 -8.7998 -7 -16 -15.7002 -16h-15.7002c-8.7002 0 -15.7002 7.2002 -15.7002 16v45.9004l-24.8994 -25.4004c-6.10059 -6.2002 -16.1006 -6.2002 -22.2002 0l-11.1006 11.2998c-6.09961 6.2002 -6.09961 16.4004 0 22.6006l58.3008 59.2998v84.5l-71.9004 -42.2002
-l-21.2998 -81c-2.2998 -8.5 -10.9004 -13.5996 -19.2998 -11.2998l-15.2002 4.09961c-8.40039 2.2998 -13.2998 11.1006 -11.1006 19.6006l9.10059 34.6992l-39.2002 -23c-7.5 -4.39941 -17.2002 -1.7998 -21.5 5.90039l-7.90039 13.9004
-c-4.2998 7.69922 -1.69922 17.5 5.80078 21.8994l39.1992 23l-34.0996 9.2998c-8.40039 2.30078 -13.2998 11.1006 -11.0996 19.6006l4.09961 15.5c2.2998 8.5 10.9004 13.5996 19.2998 11.2998l79.7002 -21.7002l71.9004 42.2002l-71.9004 42.2002l-79.7002 -21.7002
-c-8.39941 -2.2998 -17.0996 2.7998 -19.2998 11.2998l-4.09961 15.5c-2.30078 8.5 2.69922 17.2998 11.0996 19.6006l34.0996 9.09961l-39.1992 23c-7.60059 4.5 -10.1006 14.2002 -5.80078 21.9004l7.90039 13.8994c4.40039 7.7002 14 10.2998 21.5 5.90039l39.2002 -23
-l-9.10059 34.7002c-2.2998 8.5 2.7002 17.2998 11.1006 19.5996l15.2002 4.09961c8.39941 2.30078 17.0996 -2.7998 19.2998 -11.2998l21.2998 -81l71.9004 -42.2002v84.5l-58.3008 59.3008c-6.09961 6.19922 -6.09961 16.3994 0 22.5996l11.5 11.2998
-c6.10059 6.2002 16.1006 6.2002 22.2002 0l24.9004 -25.3994v46.0996c0 8.7998 7 16 15.7002 16h15.6992c8.7002 0 15.7002 -7.2002 15.7002 -16v-45.9004l24.9004 25.4004c6.09961 6.2002 16.0996 6.2002 22.2002 0l11.0996 -11.2998
-c6.09961 -6.2002 6.09961 -16.4004 0 -22.6006l-58.2998 -59.2998v-84.5l71.8994 42.2002l21.3008 81c2.2998 8.5 10.8994 13.5996 19.2998 11.2998l15.2002 -4.09961c8.39941 -2.2998 13.2998 -11.1006 11.0996 -19.6006l-9.09961 -34.6992l39.1992 23
-c7.5 4.39941 17.2002 1.7998 21.5 -5.90039l7.90039 -13.9004c4.2998 -7.69922 1.7002 -17.5 -5.7998 -21.8994l-39.2002 -23l34.0996 -9.2998c8.40039 -2.30078 13.3008 -11.1006 11.1006 -19.6006l-4.10059 -15.5c-2.2998 -8.5 -10.8994 -13.5996 -19.2998 -11.2998
-l-79.7002 21.7002l-71.8994 -42.2002l71.7998 -42.2002l79.7002 21.7002c8.39941 2.2998 17.0996 -2.7998 19.2998 -11.2998l4.09961 -15.5c2.30078 -8.5 -2.69922 -17.2998 -11.0996 -19.6006l-34.0996 -9.2998z" />
-    <glyph glyph-name="trash-alt" unicode="&#xf2ed;" horiz-adv-x="448" 
-d="M268 32c-6.62305 0 -12 5.37695 -12 12v216c0 6.62305 5.37695 12 12 12h24c6.62305 0 12 -5.37695 12 -12v-216c0 -6.62305 -5.37695 -12 -12 -12h-24zM432 368c8.83105 0 16 -7.16895 16 -16v-16c0 -8.83105 -7.16895 -16 -16 -16h-16v-336
-c0 -26.4922 -21.5078 -48 -48 -48h-288c-26.4922 0 -48 21.5078 -48 48v336h-16c-8.83105 0 -16 7.16895 -16 16v16c0 8.83105 7.16895 16 16 16h82.4102l34.0195 56.7002c8.39258 13.9844 23.6777 23.2998 41.1602 23.2998h100.82
-c0.0078125 0 -0.015625 0.0517578 -0.0078125 0.0517578c17.4824 0 32.7949 -9.36719 41.1875 -23.3516l34 -56.7002h82.4102zM171.84 397.09l-17.4502 -29.0898h139.221l-17.46 29.0898c-1.0498 1.74707 -2.95898 2.91016 -5.14355 2.91016h-0.00683594h-94
-c-0.00585938 0 -0.00683594 0.00683594 -0.0126953 0.00683594c-2.18457 0 -4.09766 -1.16992 -5.14746 -2.91699zM368 -16v336h-288v-336h288zM156 32c-6.62305 0 -12 5.37695 -12 12v216c0 6.62305 5.37695 12 12 12h24c6.62305 0 12 -5.37695 12 -12v-216
-c0 -6.62305 -5.37695 -12 -12 -12h-24z" />
-    <glyph glyph-name="images" unicode="&#xf302;" horiz-adv-x="576" 
-d="M480 32v-16c0 -26.5098 -21.4902 -48 -48 -48h-384c-26.5098 0 -48 21.4902 -48 48v256c0 26.5098 21.4902 48 48 48h16v-48h-10c-3.31152 0 -6 -2.68848 -6 -6v-244c0 -3.31152 2.68848 -6 6 -6h372c3.31152 0 6 2.68848 6 6v10h48zM522 368h-372
-c-3.31152 0 -6 -2.68848 -6 -6v-244c0 -3.31152 2.68848 -6 6 -6h372c3.31152 0 6 2.68848 6 6v244c0 3.31152 -2.68848 6 -6 6zM528 416c26.5098 0 48 -21.4902 48 -48v-256c0 -26.5098 -21.4902 -48 -48 -48h-384c-26.5098 0 -48 21.4902 -48 48v256
-c0 26.5098 21.4902 48 48 48h384zM264 304c0 -22.0908 -17.9092 -40 -40 -40s-40 17.9092 -40 40s17.9092 40 40 40s40 -17.9092 40 -40zM192 208l39.5146 39.5146c4.68652 4.68652 12.2842 4.68652 16.9717 0l39.5137 -39.5146l103.515 103.515
-c4.68652 4.68652 12.2842 4.68652 16.9717 0l71.5137 -71.5146v-80h-288v48z" />
-    <glyph glyph-name="clipboard" unicode="&#xf328;" horiz-adv-x="384" 
-d="M336 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h80c0 35.2998 28.7002 64 64 64s64 -28.7002 64 -64h80zM192 408c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24
-s-10.7002 24 -24 24zM336 -10v340c0 3.2998 -2.7002 6 -6 6h-42v-36c0 -6.59961 -5.40039 -12 -12 -12h-168c-6.59961 0 -12 5.40039 -12 12v36h-42c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h276c3.2998 0 6 2.7002 6 6z" />
-    <glyph glyph-name="arrow-alt-circle-down" unicode="&#xf358;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 -8c110.5 0 200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200zM224 308c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-116
-h67c10.7002 0 16.0996 -12.9004 8.5 -20.5l-99 -99c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-99 99c-7.5 7.59961 -2.2002 20.5 8.5 20.5h67v116z" />
-    <glyph glyph-name="arrow-alt-circle-left" unicode="&#xf359;" 
-d="M8 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM456 192c0 110.5 -89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200s200 89.5 200 200zM384 212v-40c0 -6.59961 -5.40039 -12 -12 -12h-116v-67
-c0 -10.7002 -12.9004 -16 -20.5 -8.5l-99 99c-4.7002 4.7002 -4.7002 12.2998 0 17l99 99c7.59961 7.59961 20.5 2.2002 20.5 -8.5v-67h116c6.59961 0 12 -5.40039 12 -12z" />
-    <glyph glyph-name="arrow-alt-circle-right" unicode="&#xf35a;" 
-d="M504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM56 192c0 -110.5 89.5 -200 200 -200s200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200zM128 172v40c0 6.59961 5.40039 12 12 12h116v67
-c0 10.7002 12.9004 16 20.5 8.5l99 -99c4.7002 -4.7002 4.7002 -12.2998 0 -17l-99 -99c-7.59961 -7.59961 -20.5 -2.2002 -20.5 8.5v67h-116c-6.59961 0 -12 5.40039 -12 12z" />
-    <glyph glyph-name="arrow-alt-circle-up" unicode="&#xf35b;" 
-d="M256 -56c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248s-111 -248 -248 -248zM256 392c-110.5 0 -200 -89.5 -200 -200s89.5 -200 200 -200s200 89.5 200 200s-89.5 200 -200 200zM276 64h-40c-6.59961 0 -12 5.40039 -12 12v116h-67
-c-10.7002 0 -16 12.9004 -8.5 20.5l99 99c4.7002 4.7002 12.2998 4.7002 17 0l99 -99c7.59961 -7.59961 2.2002 -20.5 -8.5 -20.5h-67v-116c0 -6.59961 -5.40039 -12 -12 -12z" />
-    <glyph glyph-name="gem" unicode="&#xf3a5;" horiz-adv-x="576" 
-d="M464 448c4.09961 0 7.7998 -2 10.0996 -5.40039l99.9004 -147.199c2.90039 -4.40039 2.59961 -10.1006 -0.700195 -14.2002l-276 -340.8c-4.7998 -5.90039 -13.7998 -5.90039 -18.5996 0l-276 340.8c-3.2998 4 -3.60059 9.7998 -0.700195 14.2002l100 147.199
-c2.2002 3.40039 6 5.40039 10 5.40039h352zM444.7 400h-56.7998l51.6992 -96h68.4004zM242.6 400l-51.5996 -96h194l-51.7002 96h-90.7002zM131.3 400l-63.2998 -96h68.4004l51.6992 96h-56.7998zM88.2998 256l119.7 -160l-68.2998 160h-51.4004zM191.2 256l96.7998 -243.3
-l96.7998 243.3h-193.6zM368 96l119.6 160h-51.3994z" />
-    <glyph glyph-name="money-bill-alt" unicode="&#xf3d1;" horiz-adv-x="640" 
-d="M320 304c53.0195 0 96 -50.1396 96 -112c0 -61.8701 -43 -112 -96 -112c-53.0195 0 -96 50.1504 -96 112c0 61.8604 42.9805 112 96 112zM360 136v16c0 4.41992 -3.58008 8 -8 8h-16v88c0 4.41992 -3.58008 8 -8 8h-13.5801
-c-4.91113 0 -9.50586 -1.49316 -13.3096 -4.03027l-15.3301 -10.2197c-2.15332 -1.43262 -3.55957 -3.88379 -3.55957 -6.66113c0 -1.6377 0.493164 -3.16113 1.33887 -4.42871l8.88086 -13.3105c1.43164 -2.15234 3.88379 -3.55957 6.66113 -3.55957
-c1.6377 0 3.16016 0.494141 4.42871 1.33984l0.469727 0.310547v-55.4404h-16c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h64c4.41992 0 8 3.58008 8 8zM608 384c17.6699 0 32 -14.3301 32 -32v-320c0 -17.6699 -14.3301 -32 -32 -32h-576
-c-17.6699 0 -32 14.3301 -32 32v320c0 17.6699 14.3301 32 32 32h576zM592 112v160c-35.3496 0 -64 28.6504 -64 64h-416c0 -35.3496 -28.6504 -64 -64 -64v-160c35.3496 0 64 -28.6504 64 -64h416c0 35.3496 28.6504 64 64 64z" />
-    <glyph glyph-name="window-close" unicode="&#xf410;" 
-d="M464 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h416zM464 22v340c0 3.2998 -2.7002 6 -6 6h-404c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h404c3.2998 0 6 2.7002 6 6z
-M356.5 253.4l-61.4004 -61.4004l61.4004 -61.4004c4.59961 -4.59961 4.59961 -12.0996 0 -16.7998l-22.2998 -22.2998c-4.60059 -4.59961 -12.1006 -4.59961 -16.7998 0l-61.4004 61.4004l-61.4004 -61.4004c-4.59961 -4.59961 -12.0996 -4.59961 -16.7998 0
-l-22.2998 22.2998c-4.59961 4.60059 -4.59961 12.1006 0 16.7998l61.4004 61.4004l-61.4004 61.4004c-4.59961 4.59961 -4.59961 12.0996 0 16.7998l22.2998 22.2998c4.60059 4.59961 12.1006 4.59961 16.7998 0l61.4004 -61.4004l61.4004 61.4004
-c4.59961 4.59961 12.0996 4.59961 16.7998 0l22.2998 -22.2998c4.7002 -4.60059 4.7002 -12.1006 0 -16.7998z" />
-    <glyph glyph-name="comment-dots" unicode="&#xf4ad;" 
-d="M144 240c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM256 240c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM368 240c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32
-s-32 14.2998 -32 32s14.2998 32 32 32zM256 416c141.4 0 256 -93.0996 256 -208s-114.6 -208 -256 -208c-32.7998 0 -64 5.2002 -92.9004 14.2998c-29.0996 -20.5996 -77.5996 -46.2998 -139.1 -46.2998c-9.59961 0 -18.2998 5.7002 -22.0996 14.5
-c-3.80078 8.7998 -2 19 4.59961 26c0.5 0.400391 31.5 33.7998 46.4004 73.2002c-33 35.0996 -52.9004 78.7002 -52.9004 126.3c0 114.9 114.6 208 256 208zM256 48c114.7 0 208 71.7998 208 160s-93.2998 160 -208 160s-208 -71.7998 -208 -160
-c0 -42.2002 21.7002 -74.0996 39.7998 -93.4004l20.6006 -21.7998l-10.6006 -28.0996c-5.5 -14.5 -12.5996 -28.1006 -19.8994 -40.2002c23.5996 7.59961 43.1992 18.9004 57.5 29l19.5 13.7998l22.6992 -7.2002c25.3008 -8 51.7002 -12.0996 78.4004 -12.0996z" />
-    <glyph glyph-name="smile-wink" unicode="&#xf4da;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM365.8 138.4c10.2002 -8.5 11.6006 -23.6006 3.10059 -33.8008
-c-30 -36 -74.1006 -56.5996 -120.9 -56.5996s-90.9004 20.5996 -120.9 56.5996c-8.39941 10.2002 -7.09961 25.3008 3.10059 33.8008c10.0996 8.39941 25.2998 7.09961 33.7998 -3.10059c20.7998 -25.0996 51.5 -39.3994 84 -39.3994s63.2002 14.3994 84 39.3994
-c8.5 10.2002 23.5996 11.6006 33.7998 3.10059zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 268c25.7002 0 55.9004 -16.9004 59.7002 -42.0996c1.7998 -11.1006 -11.2998 -18.2002 -19.7998 -10.8008l-9.5 8.5
-c-14.8008 13.2002 -46.2002 13.2002 -61 0l-9.5 -8.5c-8.30078 -7.39941 -21.5 -0.399414 -19.8008 10.8008c4 25.1992 34.2002 42.0996 59.9004 42.0996z" />
-    <glyph glyph-name="angry" unicode="&#xf556;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM248 136c33.5996 0 65.2002 -14.7998 86.7998 -40.5996
-c8.40039 -10.2002 7.10059 -25.3008 -3.09961 -33.8008c-10.6006 -8.89941 -25.7002 -6.69922 -33.7998 3c-24.8008 29.7002 -75 29.7002 -99.8008 0c-8.5 -10.1992 -23.5996 -11.5 -33.7998 -3s-11.5996 23.6006 -3.09961 33.8008
-c21.5996 25.7998 53.2002 40.5996 86.7998 40.5996zM200 208c0 -17.7002 -14.2998 -32.0996 -32 -32.0996s-32 14.2998 -32 32c0 6.19922 2.2002 11.6992 5.2998 16.5996l-28.2002 8.5c-12.6992 3.7998 -19.8994 17.2002 -16.0996 29.9004
-c3.7998 12.6992 17.0996 20 29.9004 16.0996l80 -24c12.6992 -3.7998 19.8994 -17.2002 16.0996 -29.9004c-3.09961 -10.3994 -12.7002 -17.0996 -23 -17.0996zM399 262.9c3.7998 -12.7002 -3.40039 -26.1006 -16.0996 -29.8008l-28.2002 -8.5
-c3.09961 -4.89941 5.2998 -10.3994 5.2998 -16.5996c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32c-10.2998 0 -19.9004 6.7002 -23 17.0996c-3.7998 12.7002 3.40039 26.1006 16.0996 29.9004l80 24c12.8008 3.7998 26.1006 -3.40039 29.9004 -16.0996z" />
-    <glyph glyph-name="dizzy" unicode="&#xf567;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM214.2 209.9
-c-7.90039 -7.90039 -20.5 -7.90039 -28.4004 -0.200195l-17.7998 17.7998l-17.7998 -17.7998c-7.7998 -7.7998 -20.5 -7.7998 -28.2998 0c-7.80078 7.7998 -7.80078 20.5 0 28.2998l17.8994 17.9004l-17.8994 17.8994c-7.80078 7.7998 -7.80078 20.5 0 28.2998
-c7.7998 7.80078 20.5 7.80078 28.2998 0l17.7998 -17.7998l17.9004 17.9004c7.7998 7.7998 20.5 7.7998 28.2998 0s7.7998 -20.5 0 -28.2998l-17.9004 -17.9004l17.9004 -17.7998c7.7998 -7.7998 7.7998 -20.5 0 -28.2998zM374.2 302.1
-c7.7002 -7.7998 7.7002 -20.3994 0 -28.1992l-17.9004 -17.9004l17.7998 -18c7.80078 -7.7998 7.80078 -20.5 0 -28.2998c-7.7998 -7.7998 -20.5 -7.7998 -28.2998 0l-17.7998 17.7998l-17.7998 -17.7998c-7.7998 -7.7998 -20.5 -7.7998 -28.2998 0
-c-7.80078 7.7998 -7.80078 20.5 0 28.2998l17.8994 17.9004l-17.8994 17.8994c-7.80078 7.7998 -7.80078 20.5 0 28.2998c7.7998 7.80078 20.5 7.80078 28.2998 0l17.7998 -17.7998l17.9004 17.7998c7.7998 7.80078 20.5 7.80078 28.2998 0zM248 176
-c35.2998 0 64 -28.7002 64 -64s-28.7002 -64 -64 -64s-64 28.7002 -64 64s28.7002 64 64 64z" />
-    <glyph glyph-name="flushed" unicode="&#xf579;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM344 304c44.2002 0 80 -35.7998 80 -80s-35.7998 -80 -80 -80
-s-80 35.7998 -80 80s35.7998 80 80 80zM344 176c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM344 248c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM232 224c0 -44.2002 -35.7998 -80 -80 -80
-s-80 35.7998 -80 80s35.7998 80 80 80s80 -35.7998 80 -80zM152 176c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM152 248c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM312 104
-c13.2002 0 24 -10.7998 24 -24s-10.7998 -24 -24 -24h-128c-13.2002 0 -24 10.7998 -24 24s10.7998 24 24 24h128z" />
-    <glyph glyph-name="frown-open" unicode="&#xf57a;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM200 240c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32
-s14.2998 32 32 32s32 -14.2998 32 -32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM248 160c35.5996 0 88.7998 -21.2998 95.7998 -61.2002c2 -11.7998 -9.09961 -21.5996 -20.5 -18.0996
-c-31.2002 9.59961 -59.3994 15.2998 -75.2998 15.2998s-44.0996 -5.7002 -75.2998 -15.2998c-11.5 -3.40039 -22.5 6.2998 -20.5 18.0996c7 39.9004 60.2002 61.2002 95.7998 61.2002z" />
-    <glyph glyph-name="grimace" unicode="&#xf57f;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
-s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM344 192c26.5 0 48 -21.5 48 -48v-32c0 -26.5 -21.5 -48 -48 -48h-192c-26.5 0 -48 21.5 -48 48v32c0 26.5 21.5 48 48 48
-h192zM176 96v24h-40v-8c0 -8.7998 7.2002 -16 16 -16h24zM176 136v24h-24c-8.7998 0 -16 -7.2002 -16 -16v-8h40zM240 96v24h-48v-24h48zM240 136v24h-48v-24h48zM304 96v24h-48v-24h48zM304 136v24h-48v-24h48zM360 112v8h-40v-24h24c8.7998 0 16 7.2002 16 16zM360 136v8
-c0 8.7998 -7.2002 16 -16 16h-24v-24h40z" />
-    <glyph glyph-name="grin" unicode="&#xf580;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008
-c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.9004 -123.3 80c-1.7002 9.90039 7.7998 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006s79.7002 4.7998 105.6 13.1006zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
-s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32z" />
-    <glyph glyph-name="grin-alt" unicode="&#xf581;" horiz-adv-x="496" 
-d="M200.3 200c-7.5 -11.4004 -24.5996 -12 -32.7002 0c-12.3994 18.7002 -15.1992 37.2998 -15.6992 56c0.599609 18.7002 3.2998 37.2998 15.6992 56c7.60059 11.4004 24.7002 12 32.7002 0c12.4004 -18.7002 15.2002 -37.2998 15.7002 -56
-c-0.599609 -18.7002 -3.2998 -37.2998 -15.7002 -56zM328.3 200c-7.5 -11.4004 -24.5996 -12 -32.7002 0c-12.3994 18.7002 -15.1992 37.2998 -15.6992 56c0.599609 18.7002 3.2998 37.2998 15.6992 56c7.60059 11.4004 24.7002 12 32.7002 0
-c12.4004 -18.7002 15.2002 -37.2998 15.7002 -56c-0.599609 -18.7002 -3.2998 -37.2998 -15.7002 -56zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200
-s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.8008 -123.3 80c-1.7002 10 7.7998 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006
-s79.7002 4.7998 105.6 13.1006z" />
-    <glyph glyph-name="grin-beam" unicode="&#xf582;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008
-c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.9004 -123.3 80c-1.7002 10 7.89941 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006s79.7002 4.7998 105.6 13.1006zM117.7 216.3c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998
-c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996
-l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002zM277.7 216.3c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998
-c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002z" />
-    <glyph glyph-name="grin-beam-sweat" unicode="&#xf583;" horiz-adv-x="496" 
-d="M440 288c-29.5 0 -53.2998 26.2998 -53.2998 58.7002c0 25 31.7002 75.5 46.2002 97.2998c3.5 5.2998 10.5996 5.2998 14.1992 0c14.5 -21.7998 46.2002 -72.2998 46.2002 -97.2998c0 -32.4004 -23.7998 -58.7002 -53.2998 -58.7002zM248 48
-c-51.9004 0 -115.3 32.9004 -123.3 80c-1.7002 10 7.89941 18.4004 17.7002 15.2998c26 -8.2998 64.3994 -13.0996 105.6 -13.0996s79.7002 4.7998 105.6 13.0996c10 3.2002 19.4004 -5.39941 17.7002 -15.2998c-8 -47.0996 -71.3994 -80 -123.3 -80zM378.3 216.3
-c-3.09961 -0.899414 -7.2002 0.100586 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998
-c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998zM483.6 269.2c8 -24.2998 12.4004 -50.2002 12.4004 -77.2002c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248
-c45.7002 0 88.4004 -12.5996 125.2 -34.2002c-10.9004 -21.5996 -15.5 -36.2002 -17.2002 -45.7002c-31.2002 20.1006 -68.2002 31.9004 -108 31.9004c-110.3 0 -200 -89.7002 -200 -200s89.7002 -200 200 -200s200 89.7002 200 200
-c0 22.5 -3.90039 44.0996 -10.7998 64.2998c0.399414 0 21.7998 -2.7998 46.3994 12.9004zM168 258.6c-12.2998 0 -23.7998 -7.7998 -31.5 -21.5996l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998
-c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996z" />
-    <glyph glyph-name="grin-hearts" unicode="&#xf584;" horiz-adv-x="496" 
-d="M353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.8008 -123.3 80c-1.7002 10 7.89941 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006s79.7002 4.7998 105.6 13.1006zM200.8 192.3
-l-70.2002 18.1006c-20.3994 5.2998 -31.8994 27 -24.1992 47.1992c6.69922 17.7002 26.6992 26.7002 44.8994 22l7.10059 -1.89941l2 7.09961c5.09961 18.1006 22.8994 30.9004 41.5 27.9004c21.3994 -3.40039 34.3994 -24.2002 28.7998 -44.5l-19.4004 -69.9004
-c-1.2998 -4.5 -6 -7.2002 -10.5 -6zM389.6 257.6c7.7002 -20.1992 -3.7998 -41.7998 -24.1992 -47.0996l-70.2002 -18.2002c-4.60059 -1.2002 -9.2998 1.5 -10.5 6l-19.4004 69.9004c-5.59961 20.2998 7.40039 41.0996 28.7998 44.5c18.7002 3 36.5 -9.7998 41.5 -27.9004
-l2 -7.09961l7.10059 1.89941c18.2002 4.7002 38.2002 -4.39941 44.8994 -22zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200
-s89.7002 -200 200 -200z" />
-    <glyph glyph-name="grin-squint" unicode="&#xf585;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008
-c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.9004 -123.3 80c-1.7002 9.90039 7.7998 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006s79.7002 4.7998 105.6 13.1006zM118.9 184.2c-3.80078 4.39941 -3.90039 11 -0.100586 15.5l33.6006 40.2998
-l-33.6006 40.2998c-3.7002 4.5 -3.7002 11 0.100586 15.5c3.89941 4.40039 10.1992 5.5 15.2998 2.5l80 -48c3.59961 -2.2002 5.7998 -6.09961 5.7998 -10.2998s-2.2002 -8.09961 -5.7998 -10.2998l-80 -48c-5.40039 -3.2002 -11.7002 -1.7002 -15.2998 2.5zM361.8 181.7
-l-80 48c-3.59961 2.2002 -5.7998 6.09961 -5.7998 10.2998s2.2002 8.09961 5.7998 10.2998l80 48c5.10059 2.90039 11.5 1.90039 15.2998 -2.5c3.80078 -4.5 3.90039 -11 0.100586 -15.5l-33.6006 -40.2998l33.6006 -40.2998c3.7002 -4.5 3.7002 -11 -0.100586 -15.5
-c-3.59961 -4.2002 -9.89941 -5.7002 -15.2998 -2.5z" />
-    <glyph glyph-name="grin-squint-tears" unicode="&#xf586;" 
-d="M117.1 63.9004c6.30078 0.899414 11.7002 -4.5 10.9004 -10.9004c-3.7002 -25.7998 -13.7002 -84 -30.5996 -100.9c-22 -21.8994 -57.9004 -21.5 -80.3008 0.900391c-22.3994 22.4004 -22.7998 58.4004 -0.899414 80.2998
-c16.8994 16.9004 75.0996 26.9004 100.899 30.6006zM75.9004 105.6c-19.6006 -3.89941 -35.1006 -8.09961 -47.3008 -12.1992c-39.2998 90.5996 -22.0996 199.899 52 274c48.5 48.3994 111.9 72.5996 175.4 72.5996c38.9004 0 77.7998 -9.2002 113.2 -27.4004
-c-4 -12.1992 -8.2002 -28 -12 -48.2998c-30.4004 17.9004 -65 27.7002 -101.2 27.7002c-53.4004 0 -103.6 -20.7998 -141.4 -58.5996c-61.5996 -61.5 -74.2998 -153.4 -38.6992 -227.801zM428.2 293.2c20.2998 3.89941 36.2002 8 48.5 12
-c47.8994 -93.2002 32.8994 -210.5 -45.2002 -288.601c-48.5 -48.3994 -111.9 -72.5996 -175.4 -72.5996c-33.6992 0 -67.2998 7 -98.6992 20.5996c4.19922 12.2002 8.2998 27.7002 12.1992 47.2002c26.6006 -12.7998 55.9004 -19.7998 86.4004 -19.7998
-c53.4004 0 103.6 20.7998 141.4 58.5996c65.6992 65.7002 75.7998 166 30.7998 242.601zM394.9 320.1c-6.30078 -0.899414 -11.7002 4.5 -10.9004 10.9004c3.7002 25.7998 13.7002 84 30.5996 100.9c22 21.8994 57.9004 21.5 80.3008 -0.900391
-c22.3994 -22.4004 22.7998 -58.4004 0.899414 -80.2998c-16.8994 -16.9004 -75.0996 -26.9004 -100.899 -30.6006zM207.9 211.8c3 -3 4.19922 -7.2998 3.19922 -11.5l-22.5996 -90.5c-1.40039 -5.39941 -6.2002 -9.09961 -11.7002 -9.09961h-0.899414
-c-5.80078 0.5 -10.5 5.09961 -11 10.8994l-4.80078 52.3008l-52.2998 4.7998c-5.7998 0.5 -10.3994 5.2002 -10.8994 11c-0.400391 5.89941 3.39941 11.2002 9.09961 12.5996l90.5 22.7002c4.2002 1 8.40039 -0.200195 11.4004 -3.2002zM247.6 236.9
-c-0.0996094 0 -6.39941 -1.80078 -11.3994 3.19922c-3 3 -4.2002 7.30078 -3.2002 11.4004l22.5996 90.5c1.40039 5.7002 7 9.2002 12.6006 9.09961c5.7998 -0.5 10.5 -5.09961 11 -10.8994l4.7998 -52.2998l52.2998 -4.80078c5.7998 -0.5 10.4004 -5.19922 10.9004 -11
-c0.399414 -5.89941 -3.40039 -11.1992 -9.10059 -12.5996zM299.6 148.4c29.1006 29.0996 53 59.5996 65.3008 83.7998c4.89941 9.2998 17.5996 9.89941 23.3994 1.7002c27.7002 -38.9004 6.10059 -106.9 -30.5996 -143.7s-104.8 -58.2998 -143.7 -30.6006
-c-8.2998 5.90039 -7.5 18.6006 1.7002 23.4004c24.2002 12.5 54.7998 36.2998 83.8994 65.4004z" />
-    <glyph glyph-name="grin-stars" unicode="&#xf587;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008
-c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.8008 -123.3 80c-1.7002 10 7.89941 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006s79.7002 4.7998 105.6 13.1006zM125.7 200.9l6.09961 34.8994l-25.3994 24.6006
-c-4.60059 4.59961 -1.90039 12.2998 4.2998 13.1992l34.8994 5l15.5 31.6006c2.90039 5.7998 11 5.7998 13.9004 0l15.5 -31.6006l34.9004 -5c6.19922 -1 8.7998 -8.69922 4.2998 -13.1992l-25.4004 -24.6006l6 -34.8994c1 -6.2002 -5.39941 -11 -11 -7.90039
-l-31.2998 16.2998l-31.2998 -16.2998c-5.60059 -3.09961 -12 1.7002 -11 7.90039zM385.4 273.6c6.19922 -1 8.89941 -8.59961 4.39941 -13.1992l-25.3994 -24.6006l6 -34.8994c1 -6.2002 -5.40039 -11 -11 -7.90039l-31.3008 16.2998l-31.2998 -16.2998
-c-5.59961 -3.09961 -12 1.7002 -11 7.90039l6 34.8994l-25.3994 24.6006c-4.60059 4.59961 -1.90039 12.2998 4.2998 13.1992l34.8994 5l15.5 31.6006c2.90039 5.7998 11 5.7998 13.9004 0l15.5 -31.6006z" />
-    <glyph glyph-name="grin-tears" unicode="&#xf588;" horiz-adv-x="640" 
-d="M117.1 191.9c6.30078 0.899414 11.7002 -4.5 10.9004 -10.9004c-3.7002 -25.7998 -13.7002 -84 -30.5996 -100.9c-22 -21.8994 -57.9004 -21.5 -80.3008 0.900391c-22.3994 22.4004 -22.7998 58.4004 -0.899414 80.2998c16.8994 16.9004 75.0996 26.9004 100.899 30.6006
-zM623.8 161.3c21.9004 -21.8994 21.5 -57.8994 -0.799805 -80.2002c-22.4004 -22.3994 -58.4004 -22.7998 -80.2998 -0.899414c-16.9004 16.8994 -26.9004 75.0996 -30.6006 100.899c-0.899414 6.30078 4.5 11.7002 10.8008 10.8008
-c25.7998 -3.7002 84 -13.7002 100.899 -30.6006zM497.2 99.5996c12.3994 -37.2998 25.0996 -43.7998 28.2998 -46.5c-44.5996 -65.7998 -120 -109.1 -205.5 -109.1s-160.9 43.2998 -205.5 109.1c3.09961 2.60059 15.7998 9.10059 28.2998 46.5
-c33.4004 -63.8994 100.3 -107.6 177.2 -107.6s143.8 43.7002 177.2 107.6zM122.7 223.5c-2.40039 0.299805 -5 2.5 -49.5 -6.90039c12.3994 125.4 118.1 223.4 246.8 223.4s234.4 -98 246.8 -223.5c-44.2998 9.40039 -47.3994 7.2002 -49.5 7
-c-15.2002 95.2998 -97.7998 168.5 -197.3 168.5s-182.1 -73.2002 -197.3 -168.5zM320 48c-51.9004 0 -115.3 32.9004 -123.3 80c-1.7002 10 7.89941 18.4004 17.7002 15.2998c26 -8.2998 64.3994 -13.0996 105.6 -13.0996s79.7002 4.7998 105.6 13.0996
-c10 3.2002 19.4004 -5.39941 17.7002 -15.2998c-8 -47.0996 -71.3994 -80 -123.3 -80zM450.3 216.3c-3.09961 -0.899414 -7.2002 0.100586 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996l-9.5 -17
-c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998zM240 258.6
-c-12.2998 0 -23.7998 -7.7998 -31.5 -21.5996l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004
-c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996z" />
-    <glyph glyph-name="grin-tongue" unicode="&#xf589;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM312 40h0.0996094v43.7998l-17.6992 8.7998c-15.1006 7.60059 -31.5 -1.69922 -34.9004 -16.5l-2.7998 -12.0996c-2.10059 -9.2002 -15.2002 -9.2002 -17.2998 0
-l-2.80078 12.0996c-3.39941 14.8008 -19.8994 24 -34.8994 16.5l-17.7002 -8.7998v-42.7998c0 -35.2002 28 -64.5 63.0996 -65c35.8008 -0.5 64.9004 28.4004 64.9004 64zM340.2 14.7002c64 33.3994 107.8 100.3 107.8 177.3c0 110.3 -89.7002 200 -200 200
-s-200 -89.7002 -200 -200c0 -77 43.7998 -143.9 107.8 -177.3c-2.2002 8.09961 -3.7998 16.5 -3.7998 25.2998v43.5c-14.2002 12.4004 -24.4004 27.5 -27.2998 44.5c-1.7002 10 7.7998 18.4004 17.7002 15.2998c26 -8.2998 64.3994 -13.0996 105.6 -13.0996
-s79.7002 4.7998 105.6 13.0996c10 3.2002 19.4004 -5.39941 17.7002 -15.2998c-2.89941 -17 -13.0996 -32.0996 -27.2998 -44.5v-43.5c0 -8.7998 -1.59961 -17.2002 -3.7998 -25.2998zM168 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32
-s14.2998 32 32 32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32z" />
-    <glyph glyph-name="grin-tongue-squint" unicode="&#xf58a;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM312 40h0.0996094v43.7998l-17.6992 8.7998c-15.1006 7.60059 -31.5 -1.69922 -34.9004 -16.5l-2.7998 -12.0996c-2.10059 -9.2002 -15.2002 -9.2002 -17.2998 0
-l-2.80078 12.0996c-3.39941 14.8008 -19.8994 24 -34.8994 16.5l-17.7002 -8.7998v-42.7998c0 -35.2002 28 -64.5 63.0996 -65c35.8008 -0.5 64.9004 28.4004 64.9004 64zM340.2 14.7002c64 33.3994 107.8 100.3 107.8 177.3c0 110.3 -89.7002 200 -200 200
-s-200 -89.7002 -200 -200c0 -77 43.7998 -143.9 107.8 -177.3c-2.2002 8.09961 -3.7998 16.5 -3.7998 25.2998v43.5c-14.2002 12.4004 -24.4004 27.5 -27.2998 44.5c-1.7002 10 7.7998 18.4004 17.7002 15.2998c26 -8.2998 64.3994 -13.0996 105.6 -13.0996
-s79.7002 4.7998 105.6 13.0996c10 3.2002 19.4004 -5.39941 17.7002 -15.2998c-2.89941 -17 -13.0996 -32.0996 -27.2998 -44.5v-43.5c0 -8.7998 -1.59961 -17.2002 -3.7998 -25.2998zM377.1 295.8c3.80078 -4.39941 3.90039 -11 0.100586 -15.5l-33.6006 -40.2998
-l33.6006 -40.2998c3.7002 -4.5 3.7002 -11 -0.100586 -15.5c-3.59961 -4.2002 -9.89941 -5.7002 -15.2998 -2.5l-80 48c-3.59961 2.2002 -5.7998 6.09961 -5.7998 10.2998s2.2002 8.09961 5.7998 10.2998l80 48c5 3 11.5 1.90039 15.2998 -2.5zM214.2 250.3
-c3.59961 -2.2002 5.7998 -6.09961 5.7998 -10.2998s-2.2002 -8.09961 -5.7998 -10.2998l-80 -48c-5.40039 -3.2002 -11.7002 -1.7002 -15.2998 2.5c-3.80078 4.5 -3.90039 11 -0.100586 15.5l33.6006 40.2998l-33.6006 40.2998c-3.7002 4.5 -3.7002 11 0.100586 15.5
-c3.89941 4.5 10.2998 5.5 15.2998 2.5z" />
-    <glyph glyph-name="grin-tongue-wink" unicode="&#xf58b;" horiz-adv-x="496" 
-d="M152 268c25.7002 0 55.9004 -16.9004 59.7998 -42.0996c0.799805 -5 -1.7002 -10 -6.09961 -12.4004c-5.7002 -3.09961 -11.2002 -0.599609 -13.7002 1.59961l-9.5 8.5c-14.7998 13.2002 -46.2002 13.2002 -61 0l-9.5 -8.5
-c-3.7998 -3.39941 -9.2998 -4 -13.7002 -1.59961c-4.39941 2.40039 -6.89941 7.40039 -6.09961 12.4004c3.89941 25.1992 34.0996 42.0996 59.7998 42.0996zM328 320c44.2002 0 80 -35.7998 80 -80s-35.7998 -80 -80 -80s-80 35.7998 -80 80s35.7998 80 80 80zM328 192
-c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM328 264c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248z
-M312 40h0.0996094v43.7998l-17.6992 8.7998c-15.1006 7.60059 -31.5 -1.69922 -34.9004 -16.5l-2.7998 -12.0996c-2.10059 -9.2002 -15.2002 -9.2002 -17.2998 0l-2.80078 12.0996c-3.39941 14.8008 -19.8994 24 -34.8994 16.5l-17.7002 -8.7998v-42.7998
-c0 -35.2002 28 -64.5 63.0996 -65c35.8008 -0.5 64.9004 28.4004 64.9004 64zM340.2 14.7002c64 33.3994 107.8 100.3 107.8 177.3c0 110.3 -89.7002 200 -200 200s-200 -89.7002 -200 -200c0 -77 43.7998 -143.9 107.8 -177.3
-c-2.2002 8.09961 -3.7998 16.5 -3.7998 25.2998v43.5c-14.2002 12.4004 -24.4004 27.5 -27.2998 44.5c-1.7002 10 7.7998 18.4004 17.7002 15.2998c26 -8.2998 64.3994 -13.0996 105.6 -13.0996s79.7002 4.7998 105.6 13.0996c10 3.2002 19.4004 -5.39941 17.7002 -15.2998
-c-2.89941 -17 -13.0996 -32.0996 -27.2998 -44.5v-43.5c0 -8.7998 -1.59961 -17.2002 -3.7998 -25.2998z" />
-    <glyph glyph-name="grin-wink" unicode="&#xf58c;" horiz-adv-x="496" 
-d="M328 268c25.6904 0 55.8799 -16.9199 59.8701 -42.1201c1.72949 -11.0898 -11.3506 -18.2695 -19.8301 -10.8398l-9.5498 8.47949c-14.8105 13.1904 -46.1602 13.1904 -60.9707 0l-9.5498 -8.47949c-8.33008 -7.40039 -21.5801 -0.379883 -19.8301 10.8398
-c3.98047 25.2002 34.1699 42.1201 59.8604 42.1201zM168 208c-17.6699 0 -32 14.3301 -32 32s14.3301 32 32 32s32 -14.3301 32 -32s-14.3301 -32 -32 -32zM353.55 143.36c10.04 3.13965 19.3906 -5.4502 17.71 -15.3408
-c-7.92969 -47.1494 -71.3193 -80.0195 -123.26 -80.0195s-115.33 32.8701 -123.26 80.0195c-1.69043 9.9707 7.76953 18.4707 17.71 15.3408c25.9297 -8.31055 64.3994 -13.0605 105.55 -13.0605s79.6201 4.75977 105.55 13.0605zM248 440c136.97 0 248 -111.03 248 -248
-s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM248 -8c110.28 0 200 89.7197 200 200s-89.7197 200 -200 200s-200 -89.7197 -200 -200s89.7197 -200 200 -200z" />
-    <glyph glyph-name="kiss" unicode="&#xf596;" horiz-adv-x="496" 
-d="M168 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM304 140c0 -13 -13.4004 -27.2998 -35.0996 -36.4004c21.7998 -8.69922 35.1992 -23 35.1992 -36c0 -19.1992 -28.6992 -41.5 -71.5 -44h-0.5
-c-3.69922 0 -7 2.60059 -7.7998 6.2002c-0.899414 3.7998 1.10059 7.7002 4.7002 9.2002l17 7.2002c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.2002c-6 2.59961 -5.7002 12.3994 0 14.7998l17 7.2002
-c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.19922c-3.59961 1.5 -5.59961 5.40039 -4.7002 9.2002c0.799805 3.7998 4.40039 6.60059 8.2002 6.2002c42.7002 -2.5 71.5 -24.7998 71.5 -44zM248 440c137 0 248 -111 248 -248
-s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32z
-" />
-    <glyph glyph-name="kiss-beam" unicode="&#xf597;" horiz-adv-x="496" 
-d="M168 296c23.7998 0 52.7002 -29.2998 55.7998 -71.4004c0.299805 -3.7998 -2 -7.19922 -5.59961 -8.2998c-3.10059 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996c-12.3008 0 -23.8008 -7.89941 -31.5 -21.5996l-9.5 -17
-c-1.80078 -3.2002 -5.80078 -4.7002 -9.30078 -3.7002c-3.59961 1.10059 -5.89941 4.60059 -5.59961 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8
-c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM304 140c0 -13 -13.4004 -27.2998 -35.0996 -36.4004c21.7998 -8.69922 35.1992 -23 35.1992 -36c0 -19.1992 -28.6992 -41.5 -71.5 -44h-0.5
-c-3.69922 0 -7 2.60059 -7.7998 6.2002c-0.899414 3.7998 1.10059 7.7002 4.7002 9.2002l17 7.2002c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.2002c-6 2.59961 -5.7002 12.3994 0 14.7998l17 7.2002
-c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.19922c-3.59961 1.5 -5.59961 5.40039 -4.7002 9.2002c0.799805 3.7998 4.40039 6.60059 8.2002 6.2002c42.7002 -2.5 71.5 -24.7998 71.5 -44zM328 296
-c23.7998 0 52.7002 -29.2998 55.7998 -71.4004c0.299805 -3.7998 -2 -7.19922 -5.59961 -8.2998c-3.10059 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996c-12.3008 0 -23.8008 -7.89941 -31.5 -21.5996l-9.5 -17
-c-1.80078 -3.2002 -5.80078 -4.7002 -9.30078 -3.7002c-3.59961 1.10059 -5.89941 4.60059 -5.59961 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004z" />
-    <glyph glyph-name="kiss-wink-heart" unicode="&#xf598;" horiz-adv-x="504" 
-d="M304 139.5c0 -13 -13.4004 -27.2998 -35.0996 -36.4004c21.7998 -8.69922 35.1992 -23 35.1992 -36c0 -19.1992 -28.6992 -41.5 -71.5 -44h-0.5c-3.69922 0 -7 2.60059 -7.7998 6.2002c-0.899414 3.7998 1.10059 7.7002 4.7002 9.2002l17 7.2002
-c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.2002c-6 2.59961 -5.7002 12.3994 0 14.7998l17 7.2002c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.19922c-3.59961 1.5 -5.59961 5.40039 -4.7002 9.2002
-c0.799805 3.7998 4.40039 6.60059 8.2002 6.2002c42.7002 -2.5 71.5 -24.7998 71.5 -44zM374.5 223c-14.7998 13.2002 -46.2002 13.2002 -61 0l-9.5 -8.5c-2.5 -2.2998 -7.90039 -4.7002 -13.7002 -1.59961c-4.39941 2.39941 -6.89941 7.39941 -6.09961 12.3994
-c3.89941 25.2002 34.2002 42.1006 59.7998 42.1006s55.7998 -16.9004 59.7998 -42.1006c0.799805 -5 -1.7002 -10 -6.09961 -12.3994c-4.40039 -2.40039 -9.90039 -1.7002 -13.7002 1.59961zM136 239.5c0 17.7002 14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32
-s-32 14.2998 -32 32zM501.1 45.5c9.2002 -23.9004 -4.39941 -49.4004 -28.5 -55.7002l-83 -21.5c-5.39941 -1.39941 -10.8994 1.7998 -12.3994 7.10059l-22.9004 82.5996c-6.59961 24 8.7998 48.5996 34 52.5996c22 3.5 43.1006 -11.5996 49 -33l2.2998 -8.39941
-l8.40039 2.2002c21.5996 5.59961 45.0996 -5.10059 53.0996 -25.9004zM334 11.7002c17.7002 -64 10.9004 -39.5 13.4004 -46.7998c-30.5 -13.4004 -64 -20.9004 -99.4004 -20.9004c-137 0 -248 111 -248 248s111 248 248 248s248 -111 247.9 -248
-c0 -31.7998 -6.2002 -62.0996 -17.1006 -90c-6 1.5 -12.2002 2.7998 -18.5996 2.90039c-5.60059 9.69922 -13.6006 17.5 -22.6006 23.8994c6.7002 19.9004 10.4004 41.1006 10.4004 63.2002c0 110.3 -89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200
-c30.7998 0 59.9004 7.2002 86 19.7002z" />
-    <glyph glyph-name="laugh" unicode="&#xf599;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM389.4 50.5996c37.7998 37.8008 58.5996 88 58.5996 141.4s-20.7998 103.6 -58.5996 141.4c-37.8008 37.7998 -88 58.5996 -141.4 58.5996s-103.6 -20.7998 -141.4 -58.5996
-c-37.7998 -37.8008 -58.5996 -88 -58.5996 -141.4s20.7998 -103.6 58.5996 -141.4c37.8008 -37.7998 88 -58.5996 141.4 -58.5996s103.6 20.7998 141.4 58.5996zM328 224c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM168 224
-c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM362.4 160c8.19922 0 14.5 -7 13.5 -15c-7.5 -59.2002 -58.9004 -105 -121.101 -105h-13.5996c-62.2002 0 -113.601 45.7998 -121.101 105c-1 8 5.30078 15 13.5 15h228.801z" />
-    <glyph glyph-name="laugh-beam" unicode="&#xf59a;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM389.4 50.5996c37.7998 37.8008 58.5996 88 58.5996 141.4s-20.7998 103.6 -58.5996 141.4c-37.8008 37.7998 -88 58.5996 -141.4 58.5996s-103.6 -20.7998 -141.4 -58.5996
-c-37.7998 -37.8008 -58.5996 -88 -58.5996 -141.4s20.7998 -103.6 58.5996 -141.4c37.8008 -37.7998 88 -58.5996 141.4 -58.5996s103.6 20.7998 141.4 58.5996zM328 296c23.7998 0 52.7002 -29.2998 55.7998 -71.4004c0.700195 -8.5 -10.7998 -11.8994 -14.8994 -4.5
-l-9.5 17c-7.7002 13.7002 -19.2002 21.6006 -31.5 21.6006c-12.3008 0 -23.8008 -7.90039 -31.5 -21.6006l-9.5 -17c-4.10059 -7.39941 -15.6006 -4.09961 -14.9004 4.5c3.2998 42.1006 32.2002 71.4004 56 71.4004zM127 220.1c-4.2002 -7.39941 -15.7002 -4 -15.0996 4.5
-c3.2998 42.1006 32.1992 71.4004 56 71.4004c23.7998 0 52.6992 -29.2998 56 -71.4004c0.699219 -8.5 -10.8008 -11.8994 -14.9004 -4.5l-9.5 17c-7.7002 13.7002 -19.2002 21.6006 -31.5 21.6006s-23.7998 -7.90039 -31.5 -21.6006zM362.4 160c8.19922 0 14.5 -7 13.5 -15
-c-7.5 -59.2002 -58.9004 -105 -121.101 -105h-13.5996c-62.2002 0 -113.601 45.7998 -121.101 105c-1 8 5.30078 15 13.5 15h228.801z" />
-    <glyph glyph-name="laugh-squint" unicode="&#xf59b;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM389.4 50.5996c37.7998 37.8008 58.5996 88 58.5996 141.4s-20.7998 103.6 -58.5996 141.4c-37.8008 37.7998 -88 58.5996 -141.4 58.5996s-103.6 -20.7998 -141.4 -58.5996
-c-37.7998 -37.8008 -58.5996 -88 -58.5996 -141.4s20.7998 -103.6 58.5996 -141.4c37.8008 -37.7998 88 -58.5996 141.4 -58.5996s103.6 20.7998 141.4 58.5996zM343.6 252l33.6006 -40.2998c8.59961 -10.4004 -3.90039 -24.7998 -15.4004 -18l-80 48
-c-7.7998 4.7002 -7.7998 15.8994 0 20.5996l80 48c11.6006 6.7998 24 -7.7002 15.4004 -18zM134.2 193.7c-11.6006 -6.7998 -24.1006 7.59961 -15.4004 18l33.6006 40.2998l-33.6006 40.2998c-8.59961 10.2998 3.7998 24.9004 15.4004 18l80 -48
-c7.7998 -4.7002 7.7998 -15.8994 0 -20.5996zM362.4 160c8.19922 0 14.5 -7 13.5 -15c-7.5 -59.2002 -58.9004 -105 -121.101 -105h-13.5996c-62.2002 0 -113.601 45.7998 -121.101 105c-1 8 5.30078 15 13.5 15h228.801z" />
-    <glyph glyph-name="laugh-wink" unicode="&#xf59c;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM389.4 50.5996c37.7998 37.8008 58.5996 88 58.5996 141.4s-20.7998 103.6 -58.5996 141.4c-37.8008 37.7998 -88 58.5996 -141.4 58.5996s-103.6 -20.7998 -141.4 -58.5996
-c-37.7998 -37.8008 -58.5996 -88 -58.5996 -141.4s20.7998 -103.6 58.5996 -141.4c37.8008 -37.7998 88 -58.5996 141.4 -58.5996s103.6 20.7998 141.4 58.5996zM328 284c25.7002 0 55.9004 -16.9004 59.7002 -42.0996c1.7998 -11.1006 -11.2998 -18.2002 -19.7998 -10.8008
-l-9.5 8.5c-14.8008 13.2002 -46.2002 13.2002 -61 0l-9.5 -8.5c-8.30078 -7.39941 -21.5 -0.399414 -19.8008 10.8008c4 25.1992 34.2002 42.0996 59.9004 42.0996zM168 224c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32z
-M362.4 160c8.19922 0 14.5 -7 13.5 -15c-7.5 -59.2002 -58.9004 -105 -121.101 -105h-13.5996c-62.2002 0 -113.601 45.7998 -121.101 105c-1 8 5.30078 15 13.5 15h228.801z" />
-    <glyph glyph-name="meh-blank" unicode="&#xf5a4;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM168 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32
-s-32 14.2998 -32 32s14.2998 32 32 32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32z" />
-    <glyph glyph-name="meh-rolling-eyes" unicode="&#xf5a5;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM336 296c39.7998 0 72 -32.2002 72 -72s-32.2002 -72 -72 -72
-s-72 32.2002 -72 72s32.2002 72 72 72zM336 184c22.0996 0 40 17.9004 40 40c0 13.5996 -7.2998 25.0996 -17.7002 32.2998c1 -2.59961 1.7002 -5.39941 1.7002 -8.2998c0 -13.2998 -10.7002 -24 -24 -24s-24 10.7002 -24 24c0 3 0.700195 5.7002 1.7002 8.2998
-c-10.4004 -7.2002 -17.7002 -18.7002 -17.7002 -32.2998c0 -22.0996 17.9004 -40 40 -40zM232 224c0 -39.7998 -32.2002 -72 -72 -72s-72 32.2002 -72 72s32.2002 72 72 72s72 -32.2002 72 -72zM120 224c0 -22.0996 17.9004 -40 40 -40s40 17.9004 40 40
-c0 13.5996 -7.2998 25.0996 -17.7002 32.2998c1 -2.59961 1.7002 -5.39941 1.7002 -8.2998c0 -13.2998 -10.7002 -24 -24 -24s-24 10.7002 -24 24c0 3 0.700195 5.7002 1.7002 8.2998c-10.4004 -7.2002 -17.7002 -18.7002 -17.7002 -32.2998zM312 96
-c13.2002 0 24 -10.7998 24 -24s-10.7998 -24 -24 -24h-128c-13.2002 0 -24 10.7998 -24 24s10.7998 24 24 24h128z" />
-    <glyph glyph-name="sad-cry" unicode="&#xf5b3;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM392 53.5996c34.5996 35.9004 56 84.7002 56 138.4c0 110.3 -89.7002 200 -200 200s-200 -89.7002 -200 -200c0 -53.7002 21.4004 -102.4 56 -138.4v114.4
-c0 13.2002 10.7998 24 24 24s24 -10.7998 24 -24v-151.4c28.5 -15.5996 61.2002 -24.5996 96 -24.5996s67.5 9 96 24.5996v151.4c0 13.2002 10.7998 24 24 24s24 -10.7998 24 -24v-114.4zM205.8 213.5c-5.7998 -3.2002 -11.2002 -0.700195 -13.7002 1.59961l-9.5 8.5
-c-14.7998 13.2002 -46.1992 13.2002 -61 0l-9.5 -8.5c-3.7998 -3.39941 -9.2998 -4 -13.6992 -1.59961c-4.40039 2.40039 -6.90039 7.40039 -6.10059 12.4004c3.90039 25.1992 34.2002 42.0996 59.7998 42.0996c25.6006 0 55.8008 -16.9004 59.8008 -42.0996
-c0.799805 -5 -1.7002 -10 -6.10059 -12.4004zM344 268c25.7002 0 55.9004 -16.9004 59.7998 -42.0996c0.799805 -5 -1.7002 -10 -6.09961 -12.4004c-5.7002 -3.09961 -11.2002 -0.599609 -13.7002 1.59961l-9.5 8.5c-14.7998 13.2002 -46.2002 13.2002 -61 0l-9.5 -8.5
-c-3.7998 -3.39941 -9.2002 -4 -13.7002 -1.59961c-4.39941 2.40039 -6.89941 7.40039 -6.09961 12.4004c3.89941 25.1992 34.0996 42.0996 59.7998 42.0996zM248 176c30.9004 0 56 -28.7002 56 -64s-25.0996 -64 -56 -64s-56 28.7002 -56 64s25.0996 64 56 64z" />
-    <glyph glyph-name="sad-tear" unicode="&#xf5b4;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM256 144c38.0996 0 74 -16.7998 98.5 -46.0996
-c8.5 -10.2002 7.09961 -25.3008 -3.09961 -33.8008c-10.6006 -8.7998 -25.7002 -6.69922 -33.8008 3.10059c-15.2998 18.2998 -37.7998 28.7998 -61.5996 28.7998c-13.2002 0 -24 10.7998 -24 24s10.7998 24 24 24zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
-s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM162.4 173.2c2.7998 3.7002 8.39941 3.7002 11.1992 0c11.4004 -15.2998 36.4004 -50.6006 36.4004 -68.1006
-c0 -22.6992 -18.7998 -41.0996 -42 -41.0996s-42 18.4004 -42 41.0996c0 17.5 25 52.8008 36.4004 68.1006z" />
-    <glyph glyph-name="smile-beam" unicode="&#xf5b8;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM332 135.4c8.5 10.1992 23.5996 11.5 33.7998 3.09961
-c10.2002 -8.5 11.6006 -23.5996 3.10059 -33.7998c-30 -36 -74.1006 -56.6006 -120.9 -56.6006s-90.9004 20.6006 -120.9 56.6006c-8.39941 10.2002 -7.09961 25.2998 3.10059 33.7998c10.2002 8.40039 25.2998 7.09961 33.7998 -3.09961
-c20.7998 -25.1006 51.5 -39.4004 84 -39.4004s63.2002 14.4004 84 39.4004zM136.5 237l-9.5 -17c-1.90039 -3.2002 -5.90039 -4.7998 -9.2998 -3.7002c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004
-c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996zM328 296c23.7998 0 52.7002 -29.2998 56 -71.4004
-c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002
-c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004z" />
-    <glyph glyph-name="surprise" unicode="&#xf5c2;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM248 168c35.2998 0 64 -28.7002 64 -64s-28.7002 -64 -64 -64
-s-64 28.7002 -64 64s28.7002 64 64 64zM200 240c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32z" />
-    <glyph glyph-name="tired" unicode="&#xf5c8;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM377.1 295.8c3.80078 -4.39941 3.90039 -11 0.100586 -15.5
-l-33.6006 -40.2998l33.6006 -40.2998c3.7998 -4.5 3.7002 -11 -0.100586 -15.5c-3.5 -4.10059 -9.89941 -5.7002 -15.2998 -2.5l-80 48c-3.59961 2.2002 -5.7998 6.09961 -5.7998 10.2998s2.2002 8.09961 5.7998 10.2998l80 48c5 2.90039 11.5 1.90039 15.2998 -2.5z
-M220 240c0 -4.2002 -2.2002 -8.09961 -5.7998 -10.2998l-80 -48c-5.40039 -3.2002 -11.7998 -1.60059 -15.2998 2.5c-3.80078 4.5 -3.90039 11 -0.100586 15.5l33.6006 40.2998l-33.6006 40.2998c-3.7998 4.5 -3.7002 11 0.100586 15.5
-c3.7998 4.40039 10.2998 5.5 15.2998 2.5l80 -48c3.59961 -2.2002 5.7998 -6.09961 5.7998 -10.2998zM248 176c45.4004 0 100.9 -38.2998 107.8 -93.2998c1.5 -11.9004 -7 -21.6006 -15.5 -17.9004c-22.7002 9.7002 -56.2998 15.2002 -92.2998 15.2002
-s-69.5996 -5.5 -92.2998 -15.2002c-8.60059 -3.7002 -17 6.10059 -15.5 17.9004c6.89941 55 62.3994 93.2998 107.8 93.2998z" />
-  </font>
-</defs></svg>
diff --git a/public/vendor/fontawesome/webfonts/fa-regular-400.ttf b/public/vendor/fontawesome/webfonts/fa-regular-400.ttf
deleted file mode 100644
index d1ac9ba116..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-regular-400.ttf and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-regular-400.woff b/public/vendor/fontawesome/webfonts/fa-regular-400.woff
deleted file mode 100644
index e9f54b13d5..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-regular-400.woff and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-regular-400.woff2 b/public/vendor/fontawesome/webfonts/fa-regular-400.woff2
deleted file mode 100644
index 9df490e8cf..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-regular-400.woff2 and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-solid-900.eot b/public/vendor/fontawesome/webfonts/fa-solid-900.eot
deleted file mode 100644
index afe315244f..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-solid-900.eot and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-solid-900.svg b/public/vendor/fontawesome/webfonts/fa-solid-900.svg
deleted file mode 100644
index dce459d0e5..0000000000
--- a/public/vendor/fontawesome/webfonts/fa-solid-900.svg
+++ /dev/null
@@ -1,5034 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
-<metadata>
-Created by FontForge 20201107 at Tue Mar 16 10:15:04 2021
- By Robert Madole
-Copyright (c) Font Awesome
-</metadata>
-<!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><defs>
-<font id="FontAwesome5Free-Solid" horiz-adv-x="512" >
-  <font-face 
-    font-family="Font Awesome 5 Free Solid"
-    font-weight="900"
-    font-stretch="normal"
-    units-per-em="512"
-    panose-1="2 0 5 3 0 0 0 0 0 0"
-    ascent="448"
-    descent="-64"
-    bbox="-1.00195 -64.9795 640.104 448.576"
-    underline-thickness="25"
-    underline-position="-50"
-    unicode-range="U+0020-F8FF"
-  />
-    <missing-glyph />
-    <glyph glyph-name="faucet" unicode="&#xe005;" 
-d="M352 192c88.3066 0 160 -71.6934 160 -160c0 -17.6611 -14.3389 -32 -32 -32h-64c-17.6611 0 -32 14.3389 -32 32s-14.3389 32 -32 32h-12.79c-20.5898 -37.7305 -64.21 -64 -115.21 -64s-94.6201 26.2695 -115.21 64h-92.79c-8.83105 0 -16 7.16895 -16 16v96
-c0 8.83105 7.16895 16 16 16h118.61c15.71 13.4004 35.46 23 57.3896 28v47.5596l32 3.38086l32 -3.38086v-47.5596c21.9297 -4.92969 41.6797 -14.5596 57.3896 -28h38.6104zM81.5898 288.09c-9.41992 -1 -17.5898 6.81055 -17.5898 16.7998v30.2207
-c0 9.98926 8.16992 17.7998 17.5898 16.8096l110.41 -11.6602v27.7402c0 8.83105 7.16895 16 16 16h32c8.83105 0 16 -7.16895 16 -16v-27.7402l110.41 11.6602c9.41992 0.990234 17.5898 -6.80957 17.5898 -16.8096v-30.2207
-c0 -9.98926 -8.16992 -17.7998 -17.5898 -16.7998l-142.41 15z" />
-    <glyph glyph-name="trailer" unicode="&#xe041;" horiz-adv-x="640" 
-d="M624 128c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-337.61c-7.83008 54.21 -54 96 -110.39 96s-102.56 -41.79 -110.39 -96h-49.6104c-8.83105 0 -16 7.16895 -16 16v288c0 8.83105 7.16895 16 16 16h512c8.83105 0 16 -7.16895 16 -16v-240
-h80zM96 204.32v107.68c0 4.41504 -3.58496 8 -8 8h-16c-4.41504 0 -8 -3.58496 -8 -8v-128.39c9.85938 8.0166 20.5459 14.9482 32 20.71zM192 222.86v89.1396c0 4.41504 -3.58496 8 -8 8h-16c-4.41504 0 -8 -3.58496 -8 -8v-89.1396
-c5.30957 0.489258 10.5703 1.13965 16 1.13965s10.6904 -0.650391 16 -1.13965zM288 183.61v128.39c0 4.41504 -3.58496 8 -8 8h-16c-4.41504 0 -8 -3.58496 -8 -8v-107.68c11.4541 -5.76172 22.1406 -12.6934 32 -20.71zM384 128v184c0 4.41504 -3.58496 8 -8 8h-16
-c-4.41504 0 -8 -3.58496 -8 -8v-184h32zM480 128v184c0 4.41504 -3.58496 8 -8 8h-16c-4.41504 0 -8 -3.58496 -8 -8v-184h32zM176 128c44.1533 0 80 -35.8467 80 -80s-35.8467 -80 -80 -80s-80 35.8467 -80 80s35.8467 80 80 80zM176 16c17.6611 0 32 14.3389 32 32
-s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32z" />
-    <glyph glyph-name="bacteria" unicode="&#xe059;" horiz-adv-x="640" 
-d="M272.35 221.6c-2.19727 -0.946289 -4.63184 -1.47949 -7.17578 -1.47949h-0.0341797c-0.00292969 0 0.00195312 -0.0146484 -0.00195312 -0.0146484c-7.27051 0 -13.5322 4.35449 -16.3174 10.5947l-3.91992 8.84961
-c-1.15039 -0.729492 -2.35059 -1.37988 -3.4707 -2.14941c-3.47168 -2.44629 -6.75293 -5.02832 -9.93945 -7.82031c-4.16406 -3.56152 -8.00098 -7.31543 -11.6504 -11.4004c-2.79688 -3.0166 -5.3916 -6.11719 -7.87012 -9.41016
-c-0.700195 -0.969727 -1.22949 -2.0498 -1.89941 -3.0498l8.7998 -4.10938c6.0166 -2.84082 10.1523 -8.94531 10.1523 -16.0361c0 -9.79199 -7.9502 -17.7432 -17.7432 -17.7432c-2.70312 0 -5.26562 0.606445 -7.55957 1.68848l-9 4.2207
-c-1.61035 -5.00293 -2.92773 -10.2646 -3.87012 -15.5303c-1.9248 -11.2178 -6.14648 -21.8359 -12.0801 -31.0498l9.14062 -9.37012c3.09082 -3.19824 4.99121 -7.55957 4.99121 -12.3545c0 -9.80859 -7.96387 -17.7715 -17.7725 -17.7715
-c-5.01465 0 -9.54688 2.08105 -12.7793 5.42578l-8.58984 8.7998c-13.0752 -8.66602 -28.8223 -13.7949 -45.6494 -13.8799c-1.03027 0 -2.10059 0.259766 -3.10059 0.259766l-2.87012 -11c-2.08008 -7.52637 -8.97949 -13.0732 -17.165 -13.0732
-c-9.8291 0 -17.8096 7.98047 -17.8096 17.8105c0 1.44043 0.171875 2.84082 0.495117 4.18359l2.87988 11.0596c-15.5566 7.7666 -28.2236 20.1123 -36.3896 35.4297l-11.2705 -3.33008c-1.60547 -0.477539 -3.30273 -0.741211 -5.06348 -0.741211
-c-9.79004 0 -17.7383 7.94824 -17.7383 17.7383c0 8.03027 5.34668 14.8213 12.6719 17.0029l11.5801 3.43066c-0.142578 1.98535 -0.214844 3.83594 -0.214844 5.85742c0 4.47168 0.353516 8.86133 1.03516 13.1426c1.72949 10.3799 4.72949 20.2197 7.51953 30.2197
-l-10.3496 3.54004c-6.94824 2.40234 -11.9346 8.99512 -11.9346 16.7549c0 9.78711 7.94629 17.7334 17.7334 17.7334c2.02734 0 3.97559 -0.34082 5.79102 -0.96875l10.4795 -3.58984c6.40332 15.3193 14.1484 30.0723 23 43.9102l-8.87988 6.46973
-c-4.4375 3.20996 -7.30176 8.43652 -7.30176 14.3262c0 3.90625 1.27148 7.51855 3.42188 10.4443c3.24805 4.4248 8.49316 7.27441 14.3975 7.27441c3.9209 0 7.54688 -1.26758 10.4922 -3.41406l8.82031 -6.4209c10.6797 12.8564 22.2119 24.5146 34.9502 35.3301
-l-6.4502 8.61035c-2.22168 2.95703 -3.5625 6.6377 -3.5625 10.6182c0 5.82617 2.82227 10.998 7.17285 14.2217c2.97461 2.20312 6.66211 3.53027 10.6445 3.53027c5.83789 0 11.0273 -2.80078 14.2949 -7.12988l6.32031 -8.43066
-c13.8359 9.05371 28.5869 16.9834 43.9404 23.5703l-3.49023 9.7998c-0.658203 1.8584 -1.02734 3.86816 -1.02734 5.95117c0 9.8252 7.97656 17.8018 17.8018 17.8018c7.74316 0 14.3379 -4.9541 16.7852 -11.8623l3.37988 -9.45996
-c10.9004 3.16992 21.7305 6.38965 33.1104 8.21973c4.51367 0.758789 9.02637 1.15234 13.7539 1.15234c1 0 1.99512 -0.0175781 2.98633 -0.0527344l2.81934 10.7803c1.98633 7.66504 8.95117 13.3457 17.2334 13.3457c9.82617 0 17.8047 -7.97754 17.8047 -17.8037
-c0 -1.54395 -0.197266 -3.04297 -0.567383 -4.47168l-2.83984 -10.8506c15.5527 -7.83105 28.2119 -20.2178 36.3799 -35.5693l11.3398 3.35938c1.6084 0.480469 3.30957 0.745117 5.07324 0.745117c9.79199 0 17.7412 -7.9502 17.7412 -17.7412
-c0 -8.02832 -5.34375 -14.8184 -12.665 -17.0039l-11.8496 -3.50977c0.120117 -1.82227 0.125977 -3.67969 0.125977 -5.53223c0 -15.5859 -4.2998 -30.1758 -11.7764 -42.6475l9.7207 -8.76074c3.56934 -3.25 5.79688 -7.92969 5.79688 -13.1328
-c0 -9.80469 -7.95996 -17.7646 -17.7637 -17.7646c-4.60156 0 -8.79688 1.75391 -11.9531 4.62793l-10 9c-9.85547 -6.88477 -21.4219 -11.7422 -33.75 -13.8398c-4.16895 -0.80957 -8.35547 -1.85547 -12.3604 -3.08008l4 -9.08008
-c0.96875 -2.18848 1.5293 -4.61426 1.5293 -7.16016c0 -7.26172 -4.37988 -13.5078 -10.6396 -16.2402zM128 192c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM208 288c8.83105 0 16 7.16895 16 16s-7.16895 16 -16 16
-s-16 -7.16895 -16 -16s7.16895 -16 16 -16zM639.26 242.7c0.470703 -1.59277 0.724609 -3.27344 0.724609 -5.01758c0 -8.04492 -5.37891 -14.8438 -12.7344 -16.9922l-11.5801 -3.43066c0.143555 -1.99512 0.216797 -3.85547 0.216797 -5.88672
-c0 -4.47852 -0.354492 -8.875 -1.03711 -13.1631c-1.72949 -10.3701 -4.72949 -20.21 -7.51953 -30.21l10.3398 -3.53027c6.94824 -2.40234 11.9346 -8.99414 11.9346 -16.7549c0 -9.78711 -7.94629 -17.7334 -17.7344 -17.7334
-c-2.02637 0 -3.97559 0.34082 -5.79004 0.96875l-10.4805 3.58984c-6.40527 -15.3213 -14.1494 -30.0781 -23 -43.9199l8.88086 -6.45996c4.6377 -3.20605 7.64746 -8.54297 7.64746 -14.6025c0 -9.80176 -7.95801 -17.7598 -17.7598 -17.7598
-c-4.10156 0 -7.87988 1.39355 -10.8877 3.73242l-8.82031 6.41992c-10.6826 -12.8574 -22.2148 -24.5176 -34.9502 -35.3398l6.4502 -8.61035c2.23926 -2.96094 3.5918 -6.6543 3.5918 -10.6494c0 -5.84082 -2.83984 -11.0225 -7.21191 -14.2402
-c-2.97363 -2.20508 -6.66016 -3.53418 -10.6426 -3.53418c-5.83594 0 -11.0234 2.80273 -14.2871 7.13379l-6.32031 8.42969c-13.8379 -9.05273 -28.5889 -16.9854 -43.9404 -23.5801l3.49023 -9.79004c0.658203 -1.85742 1.02734 -3.86816 1.02734 -5.9502
-c0 -9.8252 -7.97656 -17.8018 -17.8018 -17.8018c-7.74316 0 -14.3379 4.9541 -16.7852 11.8623l-3.37988 9.45996c-10.8604 -3.16992 -21.7305 -6.34961 -33.1006 -8.24023c-4.51465 -0.757812 -9.02832 -1.15234 -13.7568 -1.15234
-c-0.999023 0 -1.99316 0.0175781 -2.9834 0.0527344l-2.81934 -10.7803c-1.98633 -7.66504 -8.95117 -13.3457 -17.2334 -13.3457c-9.82617 0 -17.8037 7.97754 -17.8037 17.8047c0 1.54395 0.196289 3.04199 0.566406 4.47168l2.84082 10.8496
-c-15.5664 7.8291 -28.2363 20.2207 -36.4102 35.5801l-11.3398 -3.36035c-1.61035 -0.480469 -3.31348 -0.746094 -5.0791 -0.746094c-9.79199 0 -17.7422 7.9502 -17.7422 17.7432c0 8.02734 5.3418 14.8164 12.6611 17.0029l11.8594 3.51074
-c-0.119141 1.82227 -0.125 3.67871 -0.125 5.53125c0 15.5869 4.29883 30.1768 11.7754 42.6484l-9.71973 8.75c-3.68848 3.25684 -6.00293 8.0166 -6.00293 13.3193c0 9.80762 7.96289 17.7705 17.7705 17.7705c4.69824 0 8.97363 -1.82812 12.1523 -4.80957l10 -9
-c9.85645 6.9082 21.4297 11.7861 33.7695 13.8994c4.1709 0.804688 8.35742 1.85156 12.3604 3.08008l-4 9.08008c-0.962891 2.18262 -1.51953 4.60156 -1.51953 7.13867c0 7.25391 4.37012 13.4951 10.6191 16.2314c2.19824 0.954102 4.63477 1.49414 7.18066 1.5
-c0.00390625 0 -0.00195312 0.0146484 0.00195312 0.0146484c7.27051 0 13.5322 -4.35449 16.3174 -10.5947l3.91992 -8.84961c1.15039 0.729492 2.35059 1.37988 3.4707 2.14941c3.49023 2.4502 6.79199 5.03613 10 7.83008c4.13867 3.53516 7.94922 7.2666 11.5693 11.3301
-c2.82617 3.03223 5.44336 6.15332 7.94043 9.46973c0.69043 0.970703 1.21973 2.0498 1.88965 3.0498l-8.7998 4.11035c-6.0166 2.84082 -10.1523 8.94531 -10.1523 16.0352c0 9.79297 7.9502 17.7432 17.7432 17.7432c2.70312 0 5.26562 -0.605469 7.55957 -1.68848
-l9 -4.21973c1.60938 4.99902 2.92676 10.2578 3.87012 15.5195c1.91992 11.2236 6.14258 21.8457 12.0801 31.0605l-9.14062 9.37012c-3.09082 3.19824 -4.99121 7.55957 -4.99121 12.3535c0 9.80957 7.96387 17.7725 17.7725 17.7725
-c5.01465 0 9.54688 -2.08105 12.7793 -5.42578l8.58984 -8.81055c13.0723 8.67285 28.8203 13.8066 45.6494 13.8906c1.03027 0 2.10059 -0.260742 3.10059 -0.260742l2.87012 11c2.10059 7.49609 8.98438 13.0137 17.1475 13.0137
-c9.83008 0 17.8105 -7.98047 17.8105 -17.8096c0 -1.41602 -0.166016 -2.79297 -0.478516 -4.11426l-2.87988 -11.0596c15.5527 -7.77246 28.2188 -20.1162 36.3896 -35.4297l11.2705 3.33008c1.59766 0.478516 3.28906 0.739258 5.04199 0.739258h0.0380859
-c0.00585938 0 0.0078125 -0.000976562 0.0136719 -0.000976562c8.0459 0 14.8506 -5.35254 17.0459 -12.6885zM416 32c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32z" />
-    <glyph glyph-name="bacterium" unicode="&#xe05a;" 
-d="M511 345.07c0.634766 -2.13379 0.976562 -4.3877 0.976562 -6.72656c0 -10.7275 -7.1709 -19.7949 -16.9766 -22.6641l-15.79 -4.67969c0.15625 -2.4082 0.163086 -4.86133 0.163086 -7.30859c0 -20.8174 -5.75195 -40.3027 -15.7529 -56.9512l12.9395 -11.6699
-c5.1709 -4.34766 8.44043 -10.8584 8.44043 -18.1357c0 -13.0742 -10.6152 -23.6895 -23.6895 -23.6895c-6.47754 0 -12.3525 2.60547 -16.6309 6.8252l-13.3301 12c-13.1318 -9.21387 -28.5537 -15.7207 -45 -18.54c-5.5625 -1.07129 -11.1484 -2.46484 -16.4893 -4.10059
-l5.35938 -12.1094c1.2793 -2.91602 2.0127 -6.17285 2.0127 -9.55859c0 -13.1035 -10.6377 -23.7412 -23.7412 -23.7412c-9.7168 0 -18.0791 5.85156 -21.751 14.2197l-5.23047 11.7998c-1.5293 -0.980469 -3.12988 -1.87012 -4.62988 -2.87012
-c-4.61719 -3.25684 -8.98438 -6.69043 -13.2295 -10.4004c-5.58008 -4.76562 -10.7148 -9.79785 -15.5908 -15.2793c-3.71875 -4.00195 -7.16699 -8.11914 -10.46 -12.4902c-0.929688 -1.29004 -1.62988 -2.74023 -2.51953 -4.05957l11.7197 -5.49023
-c8.20801 -3.71484 13.8818 -11.9531 13.8818 -21.542c0 -13.0576 -10.6016 -23.6592 -23.6602 -23.6592c-3.73535 0 -7.26855 0.867188 -10.4111 2.41113l-12 5.63965c-2.14844 -6.6709 -3.90527 -13.6875 -5.16016 -20.71
-c-2.5625 -14.959 -8.19336 -29.1182 -16.1104 -41.3994l12.1904 -12.5c3.92383 -4.22949 6.32129 -9.90332 6.32129 -16.1221c0 -13.0801 -10.6201 -23.7002 -23.7002 -23.7002c-6.5127 0 -12.416 2.63379 -16.7012 6.8916l-11.4502 11.7402
-c-17.4336 -11.5586 -38.4326 -18.4014 -60.8701 -18.5195c-1.36035 0 -2.75977 0.299805 -4.12988 0.349609l-3.80957 -14.6299c-2.67383 -10.1768 -11.9395 -17.7002 -22.9502 -17.7002h-0.0498047c-2.07324 0.00292969 -4.07715 0.264648 -6 0.75
-c-10.1992 2.62988 -17.751 11.8857 -17.751 22.9014c0 2.04688 0.260742 4.03418 0.750977 5.92871l3.84961 14.75c-20.7412 10.3623 -37.6318 26.8203 -48.5303 47.2402l-15 -4.44043c-2.14062 -0.638672 -4.40527 -0.989258 -6.75293 -0.989258
-c-13.0479 0 -23.6406 10.5928 -23.6406 23.6406c0 10.6992 7.12402 19.749 16.8838 22.6592l15.4404 4.55957c-0.199219 2.7207 -0.300781 5.25781 -0.300781 8.0293c0 5.89355 0.458008 11.6826 1.34082 17.3311c2.37012 13.6738 5.52832 27.3877 9.2998 40.5293
-l-13 4.48047c-9.47656 3.08398 -16.3213 11.9814 -16.3213 22.4805c0 13.0527 10.5967 23.6504 23.6494 23.6504c2.86035 0 5.60254 -0.508789 8.1416 -1.44141l12.9297 -4.42969c8.61523 20.5029 19.0254 40.2393 30.9199 58.75l-11.0898 8.06055
-c-6.20508 4.27051 -10.2344 11.3994 -10.2344 19.4951c0 13.0693 10.6104 23.6797 23.6797 23.6797c5.48535 0 10.5381 -1.86914 14.5547 -5.00488l11 -8c14.2725 17.249 29.6816 32.9014 46.7002 47.4395l-8 10.6299c-2.9541 3.9375 -4.7373 8.83691 -4.7373 14.1338
-c0 7.7666 3.76465 14.6611 9.56738 18.9561c3.96484 2.93848 8.87988 4.70801 14.1885 4.70801c7.78125 0 14.6973 -3.73438 19.0518 -9.50781l8 -10.6299c18.4736 12.2129 38.1689 22.917 58.6895 31.8301l-4.2998 12.0498
-c-0.799805 2.37695 -1.24805 4.93555 -1.24805 7.58105c0 13.1025 10.6377 23.7402 23.7402 23.7402c10.1953 0 18.8975 -6.44043 22.2578 -15.4707l4.2998 -12c14.3408 4.27246 29.3477 7.81055 44.3301 10.4102c6.0459 1.01172 12.0889 1.53711 18.4199 1.53711
-c1.30859 0 2.6123 -0.0224609 3.91016 -0.0673828l3.75977 14.3701c2.64941 10.2295 11.9443 17.8125 22.998 17.8125c13.1123 0 23.7588 -10.6465 23.7588 -23.7588c0 -2.05957 -0.262695 -4.05762 -0.756836 -5.96387l-3.79004 -14.4697
-c20.7402 -10.4336 37.6182 -26.9492 48.5 -47.4209l15.1201 4.48047c2.14844 0.639648 4.41797 0.985352 6.77246 0.985352c10.7344 0 19.8164 -7.13379 22.7578 -16.915zM160 80c26.4922 0 48 21.5078 48 48s-21.5078 48 -48 48s-48 -21.5078 -48 -48s21.5078 -48 48 -48z
-M240 216c13.2461 0 24 10.7539 24 24s-10.7539 24 -24 24s-24 -10.7539 -24 -24s10.7539 -24 24 -24z" />
-    <glyph glyph-name="box-tissue" unicode="&#xe05b;" 
-d="M383.88 160.18h-256l-64 288h141.4c30.9912 -0.00195312 57.3018 -20.1162 66.5996 -48c9.29492 -27.8818 35.6016 -47.9961 66.5898 -48h109.41zM-0.120117 -31.8203v64h512v-64c0 -17.6611 -14.3389 -32 -32 -32h-448c-17.6611 0 -32 14.3389 -32 32zM479.88 224.18
-c17.6562 -0.00488281 31.9902 -14.3418 31.9902 -32v-128h-512v128c0 17.6611 14.3389 32 32 32h49l14.2197 -64h-15.21c-8.83008 0 -16 -7.16895 -16 -16c0 -8.83008 7.16992 -16 16 -16h352c8.83105 0 16 7.16992 16 16c0 8.83105 -7.16895 16 -16 16h-14.2695l21.3301 64
-h40.9395z" />
-    <glyph glyph-name="hand-holding-medical" unicode="&#xe05c;" horiz-adv-x="576" 
-d="M159.88 272.18c-8.83008 0 -16 7.16992 -16 16v64c0 8.83105 7.16992 16 16 16h64v64c0 8.83105 7.16992 16 16 16h64c8.83105 0 16 -7.16895 16 -16v-64h64c8.83105 0 16 -7.16895 16 -16v-64c0 -8.83008 -7.16895 -16 -16 -16h-64v-64c0 -8.83008 -7.16895 -16 -16 -16
-h-64c-8.83008 0 -16 7.16992 -16 16v64h-64zM568.07 111.87c4.87109 -6.62695 7.80469 -14.8232 7.80469 -23.6709c0 -13.1982 -6.40527 -24.9121 -16.2754 -32.1992l-135.029 -99.5703c-17.2783 -12.6621 -38.6699 -20.2148 -61.7002 -20.2695h-347
-c-8.80273 0.0595703 -15.9404 7.19727 -16 16v96c0.0595703 8.80273 7.19727 15.9395 16 16h55.3604l46.5 37.7402c20.2246 16.3867 46.0615 26.25 74.0947 26.25h0.0244141h160c17.6943 0 32.0654 -14.3359 32.0654 -32.0303
-c0 -1.82324 -0.152344 -3.61035 -0.445312 -5.35059c-2.62012 -15.7393 -17.3701 -26.6094 -33.3701 -26.6094h-78.2393c-8.83105 0 -16 -7.16992 -16 -16c0 -8.83105 7.16895 -16 16 -16h120.609l119.67 88.1797c6.63281 4.91016 14.8516 7.87012 23.7295 7.87012
-c13.2129 0 24.9355 -6.43555 32.2012 -16.3398z" />
-    <glyph glyph-name="hand-sparkles" unicode="&#xe05d;" horiz-adv-x="640" 
-d="M106.66 277.36l-20.7402 -49.6201c-1.08691 -2.19531 -3.34277 -3.70703 -5.95605 -3.70703s-4.87695 1.51172 -5.96387 3.70703l-20.6602 49.6602h-0.0703125l-49.5898 20.5996c-2.10938 1.20508 -3.55469 3.42969 -3.67969 6v0
-c0.124023 2.57617 1.5791 4.80371 3.7002 6l49.6299 20.6904h0.0498047l20.7002 49.6299c1.0918 2.18848 3.3457 3.69434 5.95605 3.69434s4.87207 -1.50586 5.96387 -3.69434l20.6602 -49.6406h0.0703125l49.5693 -20.6699c2.11328 -1.2002 3.56055 -3.42676 3.68066 -6v0
-c-0.125977 -2.57031 -1.57129 -4.79492 -3.68066 -6l-49.5498 -20.6494h-0.0898438zM471.38 -19.4102l37.4902 -15.6299l0.0703125 -0.169922c-7.59082 -17.0596 -24 -28.79 -43.2402 -28.79h-197.61c-15.9482 0.0273438 -30.0625 7.79492 -38.79 19.79l-125.6 172.61
-c-4.80469 6.60156 -7.68066 14.7979 -7.68066 23.5801c0 22.085 17.9297 40.0156 40.0146 40.0156c13.3027 0 25.0986 -6.50586 32.376 -16.5059l23.5898 -32.4902v241c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32v-152c0 -4.41504 3.58496 -8 8 -8h16
-c4.41504 0 8 3.58496 8 8v184c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32v-184c0 -4.41504 3.58496 -8 8 -8h16c4.41504 0 8 3.58496 8 8v152c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32v-152c0 -4.41504 3.58496 -8 8 -8h16c4.41504 0 8 3.58496 8 8v72
-c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32v-176.03c-0.0195312 -1.30957 -0.269531 -2.66992 -0.269531 -4c-7.77051 -3.70996 -14.5 -9.59961 -18.3506 -17.3398l-0.469727 -0.950195l-0.410156 -1l-15.6299 -37.4795l-37.4902 -15.6299l-1 -0.430664l-1 -0.489258
-c-12.6719 -6.35254 -21.3789 -19.4189 -21.3789 -34.5479s8.70703 -28.2402 21.3789 -34.5928l1 -0.5zM349.79 108.48c1.31543 0.655273 2.21973 2.00879 2.21973 3.57715s-0.904297 2.92676 -2.21973 3.58203l-29.79 12.4199l-12.4297 29.7803
-c-0.657227 1.30957 -2.00879 2.20996 -3.57324 2.20996c-1.56348 0 -2.91992 -0.900391 -3.57715 -2.20996l-12.4199 -29.7803l-29.79 -12.4199c-1.31543 -0.655273 -2.21973 -2.00879 -2.21973 -3.57715s0.904297 -2.92676 2.21973 -3.58203l29.79 -12.4102
-l12.4297 -29.7803c0.657227 -1.30957 2.00879 -2.20996 3.57324 -2.20996c1.56348 0 2.91992 0.900391 3.57715 2.20996l12.4199 29.7803zM640 16.0898l-0.0703125 -0.0703125v0c-0.135742 -2.55078 -1.58008 -4.75684 -3.67969 -5.94922l-49.5498 -20.6602h-0.0898438v0
-l-20.6904 -49.6201c-1.08691 -2.19531 -3.34277 -3.70703 -5.95605 -3.70703s-4.87695 1.51172 -5.96387 3.70703l-20.6602 49.5898h-0.0703125l-49.5693 20.6699c-2.10059 1.19238 -3.54395 3.39844 -3.68066 5.9502v0c0.118164 2.57324 1.56641 4.80078 3.68066 6
-l49.6299 20.7402h0.0498047l20.7002 49.6299c1.0918 2.18848 3.3457 3.69434 5.95605 3.69434s4.87207 -1.50586 5.96387 -3.69434l20.6797 -49.6104h0.0703125l49.5703 -20.6699c2.11328 -1.19922 3.5625 -3.42676 3.67969 -6z" />
-    <glyph glyph-name="hands-wash" unicode="&#xe05e;" horiz-adv-x="576" 
-d="M496 224c-26.4922 0 -48 21.5078 -48 48s21.5078 48 48 48s48 -21.5078 48 -48s-21.5078 -48 -48 -48zM311.47 269.55l-16.0801 -4.96973l20.9004 66.1699c3.5 11.0703 14.1797 18.8604 25.71 17.5098c12.0508 -1.27246 21.4727 -11.4824 21.4727 -23.8682
-c0 -2.53418 -0.393555 -4.97754 -1.12305 -7.27148l-15.3496 -48.6104c-5.91699 2.19336 -12.3369 3.43457 -19 3.49023c-0.0107422 0 -0.0185547 -0.0107422 -0.0302734 -0.0107422c-5.7373 0 -11.2773 -0.853516 -16.5 -2.43945zM93.6504 61.6699
-c-36.4326 21.1162 -60.9873 60.2432 -61.6504 105.19v112.729c0.179688 13.3203 11.6699 23.9102 24.9004 23.8604c13.1807 -0.0771484 23.8604 -10.7988 23.8604 -23.9971c0 -0.0507812 0 -0.102539 -0.000976562 -0.15332l2.06055 -50.0498l60 189.85
-c3.5 11.0703 14.1797 18.9004 25.71 17.46c12.0371 -1.28613 21.4443 -11.4883 21.4443 -23.8652c0 -2.52441 -0.390625 -4.95801 -1.11426 -7.24414l-38.5605 -122c-0.240234 -0.760742 -0.373047 -1.57129 -0.373047 -2.41016
-c0 -4.41699 3.58496 -8.00195 8.00195 -8.00195c3.57617 0 6.60742 2.35156 7.63086 5.5918l47.9307 151.71c3.50977 11.0605 14.1797 18.8506 25.71 17.5098c12.0371 -1.28613 21.4443 -11.4883 21.4443 -23.8652c0 -2.52441 -0.390625 -4.95801 -1.11426 -7.24414
-l-43.3701 -137.79c-0.241211 -0.762695 -0.375 -1.57422 -0.375 -2.41602c0 -4.41699 3.58594 -8.00293 8.00293 -8.00293c3.57617 0 6.60645 2.35059 7.63184 5.58887l33.4502 106.42c3.5 11.0703 14.1895 18.8604 25.7197 17.5195
-c12.0371 -1.28613 21.4443 -11.4883 21.4443 -23.8652c0 -2.52441 -0.390625 -4.95801 -1.11426 -7.24414l-34.1602 -108.12l-73.7002 -22.7598c-62.1299 -20.5283 -107.005 -79.04 -107.06 -148v-25.6904c-0.80957 -0.169922 -1.5498 -0.519531 -2.34961 -0.709961z
-M519.1 112c11.6104 0 22.25 -7.83984 24.4404 -19.2402c0.3125 -1.54395 0.477539 -3.12402 0.477539 -4.75977c0 -13.2461 -10.7549 -24 -24 -24h-0.0175781h-160c-4.41504 0 -8 -3.58496 -8 -8s3.58496 -8 8 -8h127.1c11.6104 0 22.25 -7.83984 24.4404 -19.2402
-c0.3125 -1.54395 0.477539 -3.12402 0.477539 -4.75977c0 -13.2461 -10.7549 -24 -24 -24h-0.0175781h-128c-4.41504 0 -8 -3.58496 -8 -8s3.58496 -8 8 -8h95.0996c11.6104 0 22.25 -7.83984 24.4404 -19.2402c0.3125 -1.54395 0.477539 -3.12402 0.477539 -4.75977
-c0 -13.2461 -10.7549 -24 -24 -24h-0.0175781h-208c-22.6738 0.0859375 -43.9951 6.60645 -62 17.7197c3.8623 9.36328 5.9668 19.6699 5.9668 30.4199c0 38.6191 -27.499 70.8652 -63.9668 78.21v25.6504c0 54.8691 35.7324 101.431 85.1904 117.69l107.72 33.25
-c2.24121 0.692383 4.62207 1.0752 7.08984 1.0752c13.252 0 24.0107 -10.7588 24.0107 -24.0107c0 -10.7842 -7.125 -19.917 -16.9209 -22.9453l-47.0898 -17.0596h199.1c11.6104 0 22.25 -7.83984 24.4404 -19.2402c0.3125 -1.54395 0.477539 -3.12402 0.477539 -4.75977
-c0 -13.2461 -10.7549 -24 -24 -24h-0.0175781h-128c-4.41504 0 -8 -3.58496 -8 -8s3.58496 -8 8 -8h159.1zM416 384c-17.6611 0 -32 14.3389 -32 32s14.3389 32 32 32s32 -14.3389 32 -32s-14.3389 -32 -32 -32zM112 32c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48
-s-48 21.5078 -48 48s21.5078 48 48 48z" />
-    <glyph glyph-name="handshake-alt-slash" unicode="&#xe05f;" horiz-adv-x="640" 
-d="M358.59 252.4l26.1104 23.8896c3.19727 2.92676 5.19238 7.13086 5.19238 11.8037c0 8.83203 -7.1709 16.0029 -16.0039 16.0029c-4.16016 0 -7.95117 -1.59082 -10.7988 -4.19629l-27 -24.7002l-32.6895 -29.9199l330.43 -255.38
-c3.76562 -2.92871 6.1709 -7.50781 6.1709 -12.6426c0 -3.69434 -1.25488 -7.09863 -3.36133 -9.80762l-19.6396 -25.2705c-2.92871 -3.76855 -7.50879 -6.17578 -12.6465 -6.17578c-3.69727 0 -7.10254 1.25684 -9.81348 3.36621l-588.35 454.72
-c-3.76562 2.92871 -6.17188 7.50781 -6.17188 12.6426c0 3.69434 1.25488 7.09766 3.36133 9.80762l19.6201 25.2695c2.92773 3.77148 7.51074 6.18164 12.6504 6.18164c3.69922 0 7.1084 -1.25879 9.81934 -3.37109l116.891 -90.3301l20.3398 20.2998
-c5.78027 5.7998 13.7764 9.39258 22.5996 9.41016h83.79l-75.5996 -69.2402l25.6895 -19.8496l88.1201 80.6797c5.69238 5.21777 13.2881 8.40723 21.6104 8.41016h85.8896c8.82812 -0.0146484 16.8271 -3.60742 22.6104 -9.41016l54.5898 -54.5898h112
-c8.7998 0 15.9502 -7.12109 16 -15.9102v-191.8c-0.0273438 -8.81836 -7.18164 -15.9727 -16 -16h-97.5898c-2.7002 15.1729 -10.7646 28.5215 -22.21 37.9102zM16 320h7.55957l382.44 -295.59l-8.7998 -10.8203c-6.81543 -8.38672 -17.2246 -13.7119 -28.8633 -13.7119
-c-8.87793 0 -17.0322 3.12012 -23.4268 8.32227l-17.9102 15.5l-0.200195 -0.200195c-11.7383 -14.4346 -29.6592 -23.5977 -49.6963 -23.5977c-15.2695 0 -29.2969 5.35938 -40.3037 14.2979l-90.5 81.8896h-130.3c-8.83105 0 -16 7.16992 -16 16v191.91
-c0.0273438 8.81836 7.18164 15.9727 16 16z" />
-    <glyph glyph-name="handshake-slash" unicode="&#xe060;" horiz-adv-x="640" 
-d="M0 319.79h23.8301l72.1699 -55.79v-168c0 -17.6611 -14.3389 -32 -32 -32h-64v255.79zM48 127.9c-8.83105 0 -16 -7.16992 -16 -16c0 -8.83105 7.16895 -16 16 -16s16 7.16895 16 16c0 8.83008 -7.16895 16 -16 16zM128 96.0898v143.19l278 -214.87l-8.7998 -10.8203
-c-6.81543 -8.38672 -17.2246 -13.7119 -28.8633 -13.7119c-8.87793 0 -17.0322 3.12012 -23.4268 8.32227l-17.9102 15.5l-0.200195 -0.200195c-11.7383 -14.4346 -29.6592 -23.5977 -49.6963 -23.5977c-15.2695 0 -29.2969 5.35938 -40.3037 14.2979l-90.5 81.8896
-h-18.2998zM544 319.79h96v-255.89h-64c-17.6611 0 -32 14.3379 -32 32v223.89zM592 95.9004c8.83105 0 16 7.16895 16 16c0 8.83008 -7.16895 16 -16 16s-16 -7.16992 -16 -16c0 -8.83105 7.16895 -16 16 -16zM303.33 245.33l330.5 -255.43
-c3.76953 -2.92871 6.17676 -7.50977 6.17676 -12.6475c0 -3.69238 -1.25293 -7.09375 -3.35645 -9.80273l-19.6504 -25.2705c-2.92773 -3.77051 -7.51074 -6.18066 -12.6504 -6.18066c-3.69922 0 -7.1084 1.25879 -9.81934 3.37109l-588.34 454.72
-c-3.76562 2.92871 -6.17188 7.50781 -6.17188 12.6426c0 3.69434 1.25488 7.09766 3.36133 9.80762l19.6201 25.2695c2.92773 3.77148 7.51074 6.18164 12.6504 6.18164c3.69922 0 7.1084 -1.25879 9.81934 -3.37109l116.891 -90.3398l20.3398 20.3096
-c5.78027 5.7998 13.7764 9.39258 22.5996 9.41016h83.79l-75.5996 -69.2402l25.6396 -19.8096l88.0703 80.6396c5.68457 5.21973 13.2764 8.41016 21.5947 8.41016h0.00488281h85.9004c0.0117188 0 0.0263672 0.00488281 0.0380859 0.00488281
-c8.82031 0 16.8047 -3.60254 22.5615 -9.41504l54.6104 -54.5898v-193.5c-2.45605 2.78125 -5.0625 5.31934 -7.91016 7.7002l-145.59 118.2l26.0898 23.8896c3.05762 2.91504 4.95215 7.02441 4.95215 11.5781c0 8.83105 -7.16895 16 -16 16
-c-4.03613 0 -7.72559 -1.49805 -10.542 -3.96777z" />
-    <glyph glyph-name="head-side-cough" unicode="&#xe061;" horiz-adv-x="640" 
-d="M616 144c-13.2461 0 -24 10.7539 -24 24s10.7539 24 24 24s24 -10.7539 24 -24s-10.7539 -24 -24 -24zM552 32c13.2461 0 24 -10.7539 24 -24s-10.7539 -24 -24 -24s-24 10.7539 -24 24s10.7539 24 24 24zM488 88c13.2461 0 24 -10.7539 24 -24s-10.7539 -24 -24 -24
-s-24 10.7539 -24 24s10.7539 24 24 24zM616 -16c13.2461 0 24 -10.7539 24 -24s-10.7539 -24 -24 -24s-24 10.7539 -24 24s10.7539 24 24 24zM616 88c13.2461 0 24 -10.7539 24 -24s-10.7539 -24 -24 -24s-24 10.7539 -24 24s10.7539 24 24 24zM552 128
-c13.2461 0 24 -10.7539 24 -24s-10.7539 -24 -24 -24s-24 10.7539 -24 24s10.7539 24 24 24zM477.22 173c1.76367 -3.9668 2.75977 -8.38281 2.75977 -13c0 -17.6543 -14.3281 -31.9883 -31.9795 -32h-32v-32h-96c-17.6611 0 -32 -14.3389 -32 -32s14.3389 -32 32 -32h96
-c0 -35.3223 -28.6777 -64 -64 -64h-64v-32h-224v177.12c-39.25 35.2598 -64 86.1299 -64 142.88c0 106 86 192 192 192h42.0996c70.2783 -0.046875 132.342 -34.8047 170 -88.25c24.6201 -35 52.1201 -139.63 73.1201 -186.75zM288 224
-c17.6436 0.0380859 31.9619 14.3564 32 32c0 17.6611 -14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32z" />
-    <glyph glyph-name="head-side-cough-slash" unicode="&#xe062;" horiz-adv-x="640" 
-d="M454.11 128.79l179.72 -138.89c3.76562 -2.92871 6.1709 -7.50781 6.1709 -12.6426c0 -3.69434 -1.25488 -7.09863 -3.36133 -9.80762l-19.6396 -25.2705c-2.92773 -3.77051 -7.51074 -6.18066 -12.6504 -6.18066c-3.69922 0 -7.1084 1.25879 -9.81934 3.37109
-l-588.351 454.72c-3.76562 2.92871 -6.1709 7.50781 -6.1709 12.6426c0 3.69434 1.25488 7.09766 3.36133 9.80762l19.6299 25.2695c2.92871 3.76855 7.50879 6.17676 12.6465 6.17676c3.69727 0 7.10254 -1.25684 9.81348 -3.36621l38.7197 -29.9199
-c30.6045 20.9385 67.7969 33.2998 107.644 33.2998h0.176758h42.0996c70.2783 -0.046875 132.342 -34.8047 170 -88.25c24.6201 -35 52.1201 -139.63 73.1201 -186.75c8.51074 -19.21 -3.5498 -40.4004 -23.1094 -44.21zM313.39 237.55
-c3.85059 5.28027 6.61035 11.4502 6.58008 18.4502c-0.0332031 17.6455 -14.3535 31.9668 -32 32c-9.92969 0 -18.4795 -4.86035 -24.3594 -12zM616 144c-13.2461 0 -24 10.7539 -24 24s10.7539 24 24 24s24 -10.7539 24 -24s-10.7539 -24 -24 -24zM552 80
-c-13.2461 0 -24 10.7539 -24 24s10.7539 24 24 24s24 -10.7539 24 -24s-10.7539 -24 -24 -24zM288 64c0 -17.6611 14.3389 -32 32 -32h96c0 -35.3223 -28.6777 -64 -64 -64h-64v-32h-224v177.12c-39.25 35.2598 -64 86.1299 -64 142.88
-c0.015625 31.0195 7.56055 60.5098 20.7305 86.4102l318.81 -246.41h-19.54c-17.6611 0 -32 -14.3389 -32 -32zM616 88c13.2461 0 24 -10.7539 24 -24s-10.7539 -24 -24 -24s-24 10.7539 -24 24s10.7539 24 24 24z" />
-    <glyph glyph-name="head-side-mask" unicode="&#xe063;" 
-d="M0.150391 263.58c0.445312 9.60547 1.64062 19.0078 3.51953 28.1699l220.33 -160.26v-195.49h-160v177.12c-41 36.8203 -66.1699 90.6699 -63.8496 150.46zM509.22 173c1.62891 -3.79102 2.54688 -7.97949 2.54688 -12.3652
-c0 -0.211914 -0.00195312 -0.423828 -0.00683594 -0.634766h-272.55l-225.96 164.35c29.2305 73.0801 103.75 123.65 186.75 123.65h66.1104c70.2744 -0.046875 132.336 -34.8047 169.989 -88.25c24.6201 -35 52.1201 -139.63 73.1201 -186.75zM320 224
-c17.6436 0.0380859 31.9619 14.3564 32 32c0 17.6611 -14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM336 80c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16h149.34l-10.6699 -32h-138.67c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16h128
-l-1.41016 -4.24023c-8.47363 -25.4199 -32.458 -43.7578 -60.71 -43.7598h-145.88v192h256l-16 -48h-160z" />
-    <glyph glyph-name="head-side-virus" unicode="&#xe064;" 
-d="M272 208c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM208 272c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM509.2 173c1.76367 -3.9668 2.75879 -8.38281 2.75879 -13
-c0 -17.6475 -14.3164 -31.9775 -31.959 -32h-32v-64c0 -35.3223 -28.6777 -64 -64 -64h-64v-64h-256v177.19c-39.3125 35.0342 -64 86.0137 -64 142.763v0.046875c0 106 86 192 192 192h74.0898c70.3008 0 132.405 -34.7725 170.04 -88.25
-c24.6396 -35.0195 52.1396 -139.63 73.0703 -186.75zM368 208c8.83105 0 16 7.16895 16 16s-7.16895 16 -16 16h-12.1201c-28.5098 0 -42.79 34.4697 -22.6299 54.6299l8.58008 8.57031c2.89648 2.89648 4.68457 6.90137 4.68457 11.3174
-c0 8.83105 -7.16992 16.002 -16.002 16.002c-4.41602 0 -8.41602 -1.79297 -11.3125 -4.68945l-8.57031 -8.58008c-20.1602 -20.1602 -54.6299 -5.87988 -54.6299 22.6299v12.1201c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16v-12.1201
-c0 -28.5098 -34.4697 -42.79 -54.6299 -22.6299l-8.57031 8.58008c-2.89648 2.89648 -6.90137 4.68457 -11.3174 4.68457c-8.83105 0 -16.002 -7.16992 -16.002 -16.002c0 -4.41602 1.79297 -8.41602 4.68945 -11.3125l8.58008 -8.57031
-c20.1602 -20.1602 5.87988 -54.6299 -22.6299 -54.6299h-12.1201c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16h12.1201c28.5098 0 42.79 -34.4697 22.6299 -54.6299l-8.58008 -8.57031c-2.89648 -2.89648 -4.68457 -6.90137 -4.68457 -11.3174
-c0 -8.83105 7.16992 -16.002 16.002 -16.002c4.41602 0 8.41602 1.79297 11.3125 4.68945l8.57031 8.58008c20.1602 20.1602 54.6299 5.87988 54.6299 -22.6299v-12.1201c0 -8.83105 7.16895 -16 16 -16s16 7.16895 16 16v12.1201c0 28.5098 34.4697 42.79 54.6299 22.6299
-l8.57031 -8.58008c2.89648 -2.89648 6.90137 -4.68457 11.3174 -4.68457c8.83105 0 16.002 7.16992 16.002 16.002c0 4.41602 -1.79297 8.41602 -4.68945 11.3125l-8.58008 8.57031c-20.1602 20.1602 -5.87988 54.6299 22.6299 54.6299h12.1201z" />
-    <glyph glyph-name="house-user" unicode="&#xe065;" horiz-adv-x="576" 
-d="M570.69 211.73c2.9082 -3.21777 4.83887 -7.36914 5.30957 -11.9209c-0.388672 -3.95801 -1.85742 -7.64648 -4.08984 -10.6895l-21.4102 -23.8105c-3.20117 -2.90527 -7.33496 -4.83594 -11.8701 -5.30957c-3.9668 0.40625 -7.66406 1.88379 -10.7197 4.12012
-l-15.9102 14v-210.12c0 -17.6611 -14.3389 -32 -32 -32h-383.91c-17.6611 0 -32 14.3389 -32 32v210.11l-15.8994 -14c-3.04297 -2.23926 -6.73047 -3.71484 -10.6904 -4.11035c-4.57715 0.460938 -8.75586 2.38867 -12 5.2998l-21.4102 23.79
-c-2.37695 2.95605 -3.87891 6.67773 -4.08984 10.71c0.241211 4.62402 2.20312 8.8125 5.25977 11.9004l256 226c6.28027 5.68945 18.21 10.2998 26.7402 10.2998s20.5 -4.61035 26.7803 -10.2998l101.22 -89.3701v51.6699c0 8.83105 7.16895 16 16 16h64
-c8.83105 0 16 -7.16895 16 -16v-136.44zM288 272c-35.3223 0 -64 -28.6777 -64 -64s28.6777 -64 64 -64s64 28.6777 64 64s-28.6777 64 -64 64zM400 0c8.83105 0 16 7.16895 16 16c0 52.9834 -43.0166 96 -96 96h-64c-52.9834 0 -96 -43.0166 -96 -96
-c0 -8.83105 7.16895 -16 16 -16h224z" />
-    <glyph glyph-name="laptop-house" unicode="&#xe066;" horiz-adv-x="640" 
-d="M272 160v-128h-176c-17.6611 0 -32 14.3389 -32 32v164.12l-21.6602 -19.1201c-2.5957 -2.02832 -5.83691 -3.30469 -9.33984 -3.48047c-4.15527 0.22168 -7.91113 2.00684 -10.6602 4.78027l-18.79 21.3105c-2.06836 2.59668 -3.37207 5.8584 -3.5498 9.38965
-c0.234375 4.12598 2.01758 7.85352 4.78027 10.5801l211.8 187.5c5.54004 4.91992 16.0703 8.91992 23.4697 8.91992c7.40039 0 17.9502 -4 23.4502 -8.91992l88.5 -78.3799v39.2998c0 8.83105 7.16895 16 16 16h32c8.83105 0 16 -7.16895 16 -16v-96l59.25 -52.3896
-c2.74609 -2.74707 4.5166 -6.48145 4.75 -10.6104c-0.186523 -3.56445 -1.51172 -6.85449 -3.61035 -9.46973l-6.64941 -7.53027h-136.94c-17.7998 0 -33.6895 -8.24023 -44.7998 -21.1201v37.1201c0 8.83105 -7.16895 16 -16 16h-64c-8.83105 0 -16 -7.16895 -16 -16v-64
-c0 -8.83105 7.16895 -16 16 -16h64zM629.33 0c5.88867 0 10.6699 -4.78125 10.6699 -10.6699v-10.6602c-0.0820312 -23.4883 -19.1201 -42.5498 -42.5996 -42.6699h-298.801c-23.4795 0.120117 -42.5176 19.1816 -42.5996 42.6699v10.6602
-c0 5.88867 4.78125 10.6699 10.6699 10.6699h37.3301v160c0 17.6699 12.8896 32 28.7998 32h230.4c15.9102 0 28.7998 -14.3301 28.7998 -32v-160h37.3301zM544 0v144h-192v-144h192z" />
-    <glyph glyph-name="lungs-virus" unicode="&#xe067;" horiz-adv-x="640" 
-d="M344 297.32c-6.99512 4.2207 -15.291 6.65039 -24.0498 6.65039s-16.9551 -2.42969 -23.9502 -6.65039v134.68c0 8.83105 7.16895 16 16 16h16c8.83105 0 16 -7.16895 16 -16v-134.68zM195.54 3.54004c8.44824 -8.67969 20.2178 -14.0645 33.2754 -14.0645
-c2.87988 0 5.69922 0.261719 8.43457 0.764648c-13.043 -16.7764 -31.3789 -29.1445 -52.5 -34.75l-59.5 -15.8701c-62.75 -16.8799 -125.25 27.3799 -125.25 88.6299c0 0.0820312 0.0126953 0.125 0.0126953 0.207031c0 10.1719 1.3457 20.0322 3.86719 29.4131
-c22.0361 82.46 57.0371 160.927 102 231c22.1201 34.6299 36.1201 63.1299 80.1201 63.1299c38.6201 0 70 -29.3799 70 -65.75v-27.6797c-7.62012 5.0918 -16.832 8.08496 -26.6768 8.08496c-26.4922 0 -48 -21.5088 -48 -48c0 -13.3232 5.43945 -25.3848 14.2168 -34.085
-l8.58008 -8.57031h-12.1201c-26.4922 0 -48 -21.5078 -48 -48s21.5078 -48 48 -48h12.1201l-8.58008 -8.58008c-8.67383 -8.69531 -14.0391 -20.707 -14.0391 -33.9473s5.36523 -25.2363 14.0391 -33.9326zM421.83 26.1699
-c-2.89648 -2.89648 -6.90137 -4.68945 -11.3174 -4.68945s-8.41602 1.79297 -11.3125 4.68945l-8.57031 8.57031c-20.1602 20.1602 -54.6299 5.87988 -54.6299 -22.6201v-12.1201c0 -8.83105 -7.16895 -16 -16 -16s-16 7.16895 -16 16v12.1201
-c0 28.5 -34.4697 42.7803 -54.6299 22.6201l-8.57031 -8.57031c-2.9082 -2.99609 -6.98242 -4.85449 -11.4834 -4.85449c-8.83105 0 -16 7.16992 -16 16c0 4.49902 1.86035 8.56641 4.85352 11.4746l8.58008 8.58008c20.1602 20.1602 5.87988 54.6299 -22.6299 54.6299
-h-12.1201c-8.83105 0 -16 7.16895 -16 16s7.16895 16 16 16h12.1201c28.5098 0 42.79 34.4697 22.6299 54.6201l-8.58008 8.58008c-2.89648 2.89648 -4.68457 6.90137 -4.68457 11.3174c0 8.83105 7.16992 16.002 16.002 16.002
-c4.41602 0 8.41602 -1.79297 11.3125 -4.68945l8.57031 -8.58008c20.1602 -20.1602 54.6299 -5.87988 54.6299 22.6299v12.1201c0 8.83105 7.16895 16 16 16s16 -7.16895 16 -16v-12.1201c0 -28.5098 34.4697 -42.79 54.6299 -22.6299l8.57031 8.58008
-c2.89648 2.89648 6.90137 4.68457 11.3174 4.68457c8.83105 0 16.002 -7.16992 16.002 -16.002c0 -4.41602 -1.79297 -8.41602 -4.68945 -11.3125l-8.58008 -8.58008c-20.1602 -20.1504 -5.87988 -54.6201 22.6299 -54.6201h12.1201c8.83105 0 16 -7.16895 16 -16
-s-7.16895 -16 -16 -16h-12.1201c-28.5098 0 -42.79 -34.4697 -22.6299 -54.6299l8.58008 -8.58008c2.89355 -2.89551 4.68457 -6.89844 4.68457 -11.3125c0 -4.41309 -1.79102 -8.41211 -4.68457 -11.3076zM288 144c8.83105 0 16 7.16895 16 16s-7.16895 16 -16 16
-s-16 -7.16895 -16 -16s7.16895 -16 16 -16zM352 80c8.83105 0 16 7.16895 16 16s-7.16895 16 -16 16s-16 -7.16895 -16 -16s7.16895 -16 16 -16zM636.12 57.8701c2.52148 -9.38086 3.87988 -19.2021 3.87988 -29.374v-0.246094c0 -61.25 -62.5 -105.51 -125.25 -88.6299
-l-59.5 15.8701c-21.1211 5.60547 -39.457 17.9736 -52.5 34.75c2.77246 -0.50293 5.59766 -0.761719 8.51465 -0.761719c26.3262 0 47.7002 21.374 47.7002 47.7002c0 13.4287 -5.56152 25.5693 -14.5049 34.2412l-8.58008 8.58008h12.1201c26.4922 0 48 21.5078 48 48
-s-21.5078 48 -48 48h-12.1201l8.58008 8.53027c8.77734 8.7002 14.1602 20.7393 14.1602 34.0615c0 26.4922 -21.5078 48 -48 48c-9.84375 0 -19 -2.96973 -26.6201 -8.06152v27.7197c0 36.3701 31.3799 65.75 70 65.75c44 0 58 -28.5 80.1201 -63.1299
-c44.9629 -70.0732 79.9639 -148.54 102 -231z" />
-    <glyph glyph-name="people-arrows" unicode="&#xe068;" horiz-adv-x="576" 
-d="M96 320c-35.3223 0 -64 28.6777 -64 64s28.6777 64 64 64s64 -28.6777 64 -64s-28.6777 -64 -64 -64zM96 143.92c0 -0.0400391 -0.0117188 -0.078125 -0.0117188 -0.119141c0 -12.5332 5.24219 -23.8516 13.6514 -31.8809l50.3604 -47.5303v-96.3896
-c0 -17.6611 -14.3389 -32 -32 -32h-64c-17.6611 0 -32 14.3389 -32 32v128c-17.6611 0 -32 14.3389 -32 32v96c0 35.3223 28.6777 64 64 64h64c26.9717 -0.0253906 50.0303 -16.7598 59.3799 -40.4297c-1.83984 -1.26074 -3.95996 -2.02051 -5.61035 -3.57031
-l-72.1299 -68.0801c-8.40918 -8.03418 -13.6396 -19.3555 -13.6396 -31.8926v-0.107422zM480 320c-35.3223 0 -64 28.6777 -64 64s28.6777 64 64 64s64 -28.6777 64 -64s-28.6777 -64 -64 -64zM512 288c35.3223 0 64 -28.6777 64 -64v-96c0 -17.6611 -14.3389 -32 -32 -32
-v-128c0 -17.6611 -14.3389 -32 -32 -32h-64c-17.6611 0 -32 14.3389 -32 32v96.3799l50.3604 47.5498c8.4082 8.07617 13.6445 19.4336 13.6445 32.002c0 12.5674 -5.23633 23.9219 -13.6445 31.998l-72.1201 68.0605c-1.62012 1.58984 -3.78027 2.31934 -5.62012 3.58984
-c9.35352 23.666 32.4102 40.3965 59.3799 40.4199h64zM444.4 152.66c2.22461 -2.24219 3.59961 -5.33203 3.59961 -8.7373c0 -3.4043 -1.375 -6.49121 -3.59961 -8.73242l-72.1201 -68.0703c-2.1543 -2.05371 -5.07227 -3.31543 -8.28027 -3.31543
-c-6.62305 0 -12 5.37695 -12 12v0.0556641v36.1396h-128v-36.1396c0 -0.0185547 -0.00292969 -0.0361328 -0.00292969 -0.0546875c0 -6.62305 -5.37695 -12 -12 -12c-3.20801 0 -6.12305 1.26074 -8.27734 3.31445l-72.1201 68.0703
-c-2.22461 2.24121 -3.59961 5.33203 -3.59961 8.73633c0 3.40527 1.375 6.49121 3.59961 8.7334l72.1201 68.0703c2.1543 2.05273 5.07227 3.31445 8.28027 3.31445c6.62305 0 12 -5.37695 12 -12v-0.0449219v-36h128v36
-c0 0.0117188 0.00292969 0.0224609 0.00292969 0.0341797c0 6.62305 5.37695 12 12 12c3.20801 0 6.12305 -1.26074 8.27734 -3.31445z" />
-    <glyph glyph-name="plane-slash" unicode="&#xe069;" horiz-adv-x="640" 
-d="M32.4805 300.12c-0.258789 1.12109 -0.386719 2.2959 -0.386719 3.49512c0 2.94531 0.825195 5.7002 2.25586 8.04492l324.841 -251.061l-66.6006 -116.54c-2.75684 -4.82227 -7.94141 -8.05957 -13.8896 -8.05957h-65.5
-c-8.81641 0.0166016 -15.9678 7.17676 -15.9678 15.9971c0 1.53027 0.21582 3.01074 0.617188 4.41309l49 171.59h-102.85l-43.2002 -57.5898c-2.91797 -3.89648 -7.5625 -6.40723 -12.7998 -6.41016h-40c-8.82812 0.00292969 -15.9941 7.16406 -15.9941 15.9932
-c0 1.33691 0.165039 2.63574 0.474609 3.87695l31.5195 108.13zM633.82 -10.0898c3.77148 -2.92871 6.18164 -7.51074 6.18164 -12.6514c0 -3.69531 -1.25488 -7.09863 -3.3623 -9.80859l-19.6396 -25.2598c-2.92773 -3.77246 -7.51074 -6.18262 -12.6514 -6.18262
-c-3.69434 0 -7.09863 1.25488 -9.80859 3.3623l-588.36 454.72c-3.76855 2.92871 -6.17578 7.50879 -6.17578 12.6465c0 3.69727 1.25684 7.10352 3.36621 9.81348l19.6299 25.2598c2.92871 3.76855 7.50879 6.17676 12.6465 6.17676
-c3.69727 0 7.10254 -1.25684 9.81348 -3.36621l189.3 -146.3l-36.9395 129.29c-0.398438 1.39551 -0.614258 2.86621 -0.614258 4.38965c0 8.8291 7.16602 15.9971 15.9941 16h65.5098c5.12988 0 11.3496 -3.61035 13.9004 -8.05957l105.09 -183.94h114.3
-c35.3398 0 96 -28.6602 96 -64s-60.6602 -64 -96 -64h-56.8604z" />
-    <glyph glyph-name="pump-medical" unicode="&#xe06a;" horiz-adv-x="384" 
-d="M235.51 288.18c33.3369 -0.00195312 60.7559 -25.6123 63.7305 -58.1797l20.3701 -224c0.175781 -1.93066 0.262695 -3.82324 0.262695 -5.7998c0 -35.3203 -28.6738 -63.9961 -63.9932 -64h-192c-35.3223 0 -64.0059 28.6143 -64.0059 63.9365
-c0 1.97656 0.0898438 3.93262 0.265625 5.86328l20.3701 224c2.97461 32.5674 30.3936 58.1777 63.7305 58.1797h151.27zM239.88 114.85v26.6602c0 7.3623 -5.97754 13.3398 -13.3398 13.3398h-40v40c0 7.35742 -5.97266 13.3301 -13.3301 13.3301h-26.6699
-c-7.35742 0 -13.3301 -5.97266 -13.3301 -13.3301v-40h-40c-7.35742 0 -13.3301 -5.97266 -13.3301 -13.3291v-0.0107422v-26.6602c0 -7.3584 5.97266 -13.334 13.3301 -13.3398h40v-40c0 -7.35645 5.97266 -13.3301 13.3301 -13.3301h26.6699
-c7.35742 0 13.3301 5.97363 13.3301 13.3301v40h40c7.36035 0.00585938 13.334 5.98047 13.3398 13.3398zM379.19 354.12c2.89648 -2.89648 4.68945 -6.90137 4.68945 -11.3174s-1.79297 -8.41602 -4.68945 -11.3125l-22.6201 -22.6201
-c-2.89648 -2.89746 -6.90137 -4.68945 -11.3174 -4.68945s-8.41699 1.79199 -11.3125 4.68945l-43.3105 43.3096h-66.75v-32h-128v96c0 17.6611 14.3389 32 32 32h64c17.6611 0 32 -14.3389 32 -32h66.75c17.6553 -0.00195312 33.6582 -7.16016 45.2402 -18.7393z" />
-    <glyph glyph-name="pump-soap" unicode="&#xe06b;" horiz-adv-x="384" 
-d="M235.63 288c0.00390625 0 0.0107422 -0.0634766 0.0146484 -0.0634766c33.3496 0 60.7754 -25.5625 63.7354 -58.1465l20.3604 -224c0.174805 -1.92773 0.259766 -3.81738 0.259766 -5.79004c0 -35.3223 -28.6777 -64 -64 -64h-192
-c-35.3193 0.00390625 -63.9941 28.6172 -63.9941 63.9365c0 1.97363 0.0888672 3.92578 0.263672 5.85352l20.3604 224c2.95996 32.584 30.3906 58.21 63.7402 58.21h151.26zM160 32c33.1201 0 60 26.3301 60 58.7305c0 25 -35.6699 75.4697 -52 97.2695
-c-1.82422 2.43848 -4.72559 4.01855 -8.00293 4.01855c-3.26758 0 -6.17188 -1.57129 -7.99707 -3.99902c-16.2998 -21.7998 -52 -72.2695 -52 -97.2695c0 -32.4199 26.8799 -58.75 60 -58.75zM379.31 353.94c2.89746 -2.89648 4.69043 -6.90137 4.69043 -11.3174
-s-1.79297 -8.41699 -4.69043 -11.3135l-22.6191 -22.6191c-2.89648 -2.89746 -6.90137 -4.69043 -11.3174 -4.69043s-8.41699 1.79297 -11.3135 4.69043l-43.3096 43.3096h-66.75v-32h-128v96c0 17.6611 14.3389 32 32 32h64c17.6611 0 32 -14.3389 32 -32h66.75
-c17.6582 0 33.666 -7.1582 45.25 -18.7402z" />
-    <glyph glyph-name="shield-virus" unicode="&#xe06c;" 
-d="M224 256c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM466.5 364.32c17.3359 -7.24121 29.5 -24.3428 29.5 -44.291v-0.0292969c0 -221.3 -135.91 -344.61 -221.59 -380.32
-c-5.67578 -2.3584 -11.9619 -3.66016 -18.4873 -3.66016c-6.52441 0 -12.7471 1.30176 -18.4229 3.66016c-107 44.6006 -221.5 181.82 -221.5 380.32c0 0.0166016 -0.03125 0.0107422 -0.03125 0.0263672c0 19.9707 12.2402 37.1055 29.6211 44.3037l192 80
-c5.75293 2.17188 12 3.46582 18.46 3.66992c6.45605 -0.208008 12.7012 -1.50586 18.4502 -3.67969zM384 192c8.83105 0 16 7.16895 16 16s-7.16895 16 -16 16h-12.1201c-28.5098 0 -42.79 34.4697 -22.6299 54.6299l8.58008 8.57031
-c2.89648 2.89648 4.68457 6.90137 4.68457 11.3174c0 8.83105 -7.16992 16.002 -16.002 16.002c-4.41602 0 -8.41602 -1.79297 -11.3125 -4.68945l-8.57031 -8.58008c-20.1602 -20.1602 -54.6299 -5.87988 -54.6299 22.6299v12.1201c0 8.83105 -7.16895 16 -16 16
-s-16 -7.16895 -16 -16v-12.1201c0 -28.5098 -34.4697 -42.79 -54.6299 -22.6299l-8.57031 8.58008c-2.89648 2.89648 -6.90137 4.68457 -11.3174 4.68457c-8.83105 0 -16.002 -7.16992 -16.002 -16.002c0 -4.41602 1.79297 -8.41602 4.68945 -11.3125l8.58008 -8.57031
-c20.1602 -20.1602 5.87988 -54.6299 -22.6299 -54.6299h-12.1201c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16h12.1201c28.5098 0 42.79 -34.4697 22.6299 -54.6299l-8.58008 -8.57031c-2.89648 -2.89648 -4.68457 -6.90137 -4.68457 -11.3174
-c0 -8.83105 7.16992 -16.002 16.002 -16.002c4.41602 0 8.41602 1.79297 11.3125 4.68945l8.57031 8.58008c20.1602 20.1602 54.6299 5.87988 54.6299 -22.6299v-12.1201c0 -8.83105 7.16895 -16 16 -16s16 7.16895 16 16v12.1201c0 28.5098 34.4697 42.79 54.6299 22.6299
-l8.57031 -8.58008c2.89648 -2.89648 6.90137 -4.68457 11.3174 -4.68457c8.83105 0 16.002 7.16992 16.002 16.002c0 4.41602 -1.79297 8.41602 -4.68945 11.3125l-8.58008 8.57031c-20.1602 20.1602 -5.87988 54.6299 22.6299 54.6299h12.1201zM288 192
-c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16z" />
-    <glyph glyph-name="sink" unicode="&#xe06d;" 
-d="M32 32v32h448v-32c0 -52.9834 -43.0166 -96 -96 -96h-256c-52.9834 0 -96 43.0166 -96 96zM496 160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-480c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h96v32h-64
-c-8.83105 0 -16 7.16895 -16 16v16c0 8.83105 7.16895 16 16 16h80c17.6611 0 32 -14.3389 32 -32v-48h64v188.21c0 46.4297 31.29 89.0801 76.8701 97.9297c6.15625 1.23926 12.4512 1.8877 18.9697 1.8877c53.0283 0 96.0879 -43.0166 96.1602 -96.0273v-16
-c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v16c0 17.6611 -14.3389 32 -32 32s-32 -14.3389 -32 -32v-192h64v48c0 17.6611 14.3389 32 32 32h80c8.83105 0 16 -7.16895 16 -16v-16c0 -8.83105 -7.16895 -16 -16 -16h-64v-32h96z" />
-    <glyph glyph-name="soap" unicode="&#xe06e;" 
-d="M416 256c52.9834 0 96 -43.0166 96 -96v-128c0 -52.9834 -43.0166 -96 -96 -96h-320c-52.9834 0 -96 43.0166 -96 96v128c0 52.9834 43.0166 96 96 96h128c0.0634766 -24.6279 9.49707 -47.1133 24.9102 -64h-88.9102c-52.9834 0 -96 -43.0166 -96 -96
-s43.0166 -96 96 -96h192c0.0703125 0 0.171875 -0.0322266 0.242188 -0.0322266c52.873 0 95.7998 42.9268 95.7998 95.7998c0 41.3477 -26.251 76.6123 -62.9824 90.0225c19.0049 17.4219 30.9033 42.4307 30.9404 70.21zM320 192c-35.3223 0 -64 28.6777 -64 64
-s28.6777 64 64 64s64 -28.6777 64 -64s-28.6777 -64 -64 -64zM208 352c-26.4922 0 -48 21.5078 -48 48s21.5078 48 48 48s48 -21.5078 48 -48s-21.5078 -48 -48 -48zM384 384c-17.6611 0 -32 14.3389 -32 32s14.3389 32 32 32s32 -14.3389 32 -32s-14.3389 -32 -32 -32z
-M160 160h192c35.3223 0 64 -28.6777 64 -64s-28.6777 -64 -64 -64h-192c-35.3223 0 -64 28.6777 -64 64s28.6777 64 64 64z" />
-    <glyph glyph-name="stopwatch-20" unicode="&#xe06f;" horiz-adv-x="448" 
-d="M398.5 257.09c21.1045 -32.3291 33.501 -71.1426 33.501 -112.596c0 -0.165039 -0.000976562 -0.329102 -0.000976562 -0.494141c0 -116 -94.8701 -209.77 -211.28 -208c-113.96 1.78027 -208.08 100.5 -204.63 214.43c3.10156 100.915 78.4639 183.935 175.91 199.07
-v34.5h-32c-8.81836 0.0273438 -15.9727 7.18164 -16 16v32c0.0273438 8.81836 7.18164 15.9727 16 16h128c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32v-34.5c37.3506 -5.76855 71.749 -21.625 99.6904 -44.5898l24.6797 24.6797
-c2.89648 2.89746 6.90137 4.69043 11.3174 4.69043s8.41602 -1.79297 11.3125 -4.69043l22.6797 -22.6797c2.89746 -2.89648 4.69043 -6.90137 4.69043 -11.3174s-1.79297 -8.41602 -4.69043 -11.3125l-26.5898 -26.5801zM204.37 70.4502l-49.1299 0.0400391
-c1.7998 15.6299 14.8496 36.2002 26.4102 51.2002c21.9092 30.0996 34.3496 45.7295 34.3496 81.3096c0 35.1504 -12.5703 61 -55.5703 61c-47.9492 0 -56.4297 -32.9404 -56.4297 -60.2402v-4.06934c0.0703125 -4.46582 3.71484 -8.07129 8.19629 -8.07129
-c0.0449219 0 0.0888672 0 0.133789 0.000976562h24.9004c0.0439453 -0.000976562 0.0859375 0.000976562 0.130859 0.000976562c4.48145 0 8.12891 3.60352 8.19824 8.06934v5.22949c0 15.2803 3.30078 22.6797 12.6904 22.6797c10.4199 0 12.21 -7.34961 12.21 -24.2695
-c0 -25.0205 -6.67969 -33.1504 -27.0996 -62.3398c-23.7803 -33.96 -35.6699 -56.1504 -38.4502 -91.3701c-0.0273438 -0.388672 -0.0449219 -0.765625 -0.0449219 -1.16113c0 -9.08496 7.37598 -16.46 16.46 -16.46c0.0654297 0 0.129883 0 0.194336 0.000976562h82.8506
-c0.0410156 -0.000976562 0.0800781 0.000976562 0.121094 0.000976562c4.48145 0 8.12891 3.60352 8.19922 8.06934v22.3096c-0.0703125 4.46484 -3.71582 8.07129 -8.19727 8.07129c-0.0410156 0 -0.0820312 -0.000976562 -0.123047 -0.000976562zM344 95.6797v107.021
-c0 38.6602 -19 61.2998 -55.7998 61.2998c-36.6201 0 -56.2002 -22.4902 -56.2002 -63.2197v-105.33c0 -33.9307 11.1904 -63.4502 54.7695 -63.4502c44.9307 0 57.2305 28.5195 57.2305 63.6797zM287.87 226.27c10.0098 0 13.0195 -8.05957 13 -19.3291v-115.94
-c0 -13.2695 -3.36035 -21.2695 -13 -21.2695s-13.2305 7.47949 -13.2305 20.5898v115.949c0 12.5 3.82031 20 13.2305 20z" />
-    <glyph glyph-name="store-alt-slash" unicode="&#xe070;" horiz-adv-x="640" 
-d="M17.8896 324.38l88.4707 -68.3799h-74.2607c-25.5898 0 -40.79 28.5 -26.5898 49.7998zM576 34.5801l57.8301 -44.6797c3.76562 -2.92871 6.1709 -7.50781 6.1709 -12.6426c0 -3.69434 -1.25488 -7.09863 -3.36133 -9.80762l-19.6396 -25.2598
-c-2.92773 -3.77539 -7.5127 -6.1875 -12.6553 -6.1875c-3.69727 0 -7.10352 1.25684 -9.81445 3.36719l-588.351 454.72c-3.76562 2.92871 -6.1709 7.50781 -6.1709 12.6426c0 3.69434 1.25488 7.09766 3.36133 9.80762l19.6299 25.2695
-c2.92871 3.76855 7.50879 6.17676 12.6465 6.17676c3.69727 0 7.10254 -1.25684 9.81348 -3.36621l34.6904 -26.8203l10.6592 16c5.71387 8.57715 15.4521 14.2002 26.5215 14.2002h0.0888672h405.18c0.00390625 0 -0.0107422 0.0322266 -0.00683594 0.0322266
-c11.1172 0 20.9248 -5.64941 26.707 -14.2324l85.29 -128c14.1104 -21.2998 -1.08984 -49.7998 -26.5898 -49.7998h-318.48l41.4004 -32h53.0801v-41l128 -99v140h64v-189.42zM320 64v26.8799l64 -49.4697v-73.4102c0 -17.6611 -14.3389 -32 -32 -32h-256
-c-17.6611 0 -32 14.3389 -32 32v256h64v-160h192z" />
-    <glyph glyph-name="store-slash" unicode="&#xe071;" horiz-adv-x="640" 
-d="M121.51 64h226.91l157.33 -128h-414.52c-16.8105 0 -30.4004 14.2998 -30.4004 32v196.8c5.02051 -1.53516 10.2939 -2.76074 15.5801 -3.59961c5.62891 -0.791016 11.2549 -1.19727 17.0996 -1.2002c9.65723 0.157227 19.0283 1.47559 28 3.7998v-99.7998z
-M93.5098 192.09c-0.0644531 0 -0.0566406 -0.00390625 -0.121094 -0.00390625c-4.37402 0 -8.67969 0.294922 -12.8984 0.864258c-58.9404 8.46973 -87.0098 81.6094 -56.4902 135l133.51 -108.62c-16.71 -16.5205 -38.8994 -27.2402 -64 -27.2402zM602.13 -10.0898
-c3.59863 -3.04297 5.86719 -7.59961 5.86719 -12.6758c0 -3.6582 -1.1875 -7.04102 -3.19727 -9.78418l-18.6602 -25.2598c-2.66211 -3.74902 -7.04102 -6.17871 -11.9854 -6.17871c-3.54785 0 -6.80469 1.26074 -9.34473 3.3584l-558.939 454.72
-c-3.59863 3.04297 -5.86719 7.59961 -5.86719 12.6758c0 3.6582 1.1875 7.04102 3.19727 9.78418l18.6602 25.2598c2.66016 3.74805 7.03711 6.17676 11.9785 6.17676c3.55176 0 6.81055 -1.26367 9.35156 -3.36621l33.6895 -27.4004l9.38965 15.7803
-c5.16309 8.89941 14.7383 14.8848 25.7305 15h383.81c10.998 -0.109375 20.5781 -6.09668 25.7402 -15l61.6602 -103.6c31.9404 -53.6006 3.59961 -127.99 -56.0596 -136.4c-4.28027 -0.598633 -8.55762 -0.90625 -13 -0.910156c-28.0303 0 -52.9199 13 -70.1104 33.1104
-c-17.1104 -20.1104 -42 -33.1104 -70.1104 -33.1104c-8.83496 0.130859 -17.3857 1.58594 -25.4102 4.14062l137.82 -112.11v79.6797c8.95801 -2.36523 18.3291 -3.6875 28 -3.7998c5.9082 0.00683594 11.5957 0.412109 17.29 1.2002
-c5.31152 0.757812 10.584 1.9873 15.5703 3.59961v-130.21z" />
-    <glyph glyph-name="toilet-paper-slash" unicode="&#xe072;" horiz-adv-x="640" 
-d="M64 256c0 10.8096 0.530273 21.3398 1.41992 31.6699l316 -244.25c-4.17969 -32.2002 -12.8701 -57.7197 -22.1797 -85.5498c-4.19727 -12.7002 -16.1592 -21.8701 -30.2588 -21.8701h-0.121094h-280.86c-8.79395 0.0429688 -15.917 7.19824 -15.917 16.002
-c0 1.74512 0.279297 3.4248 0.796875 4.99805c21.3701 64.1201 31.1201 85.75 31.1201 126.87v172.13zM633.82 -10.0898c3.77148 -2.92871 6.18164 -7.51074 6.18164 -12.6514c0 -3.69531 -1.25488 -7.09863 -3.3623 -9.80859l-19.6396 -25.2598
-c-2.92773 -3.77246 -7.51074 -6.18262 -12.6514 -6.18262c-3.69434 0 -7.09863 1.25488 -9.80859 3.3623l-588.36 454.72c-3.76855 2.92871 -6.17578 7.50879 -6.17578 12.6465c0 3.69727 1.25684 7.10352 3.36621 9.81348l19.6299 25.2598
-c2.92871 3.76855 7.50879 6.17676 12.6465 6.17676c3.69727 0 7.10254 -1.25684 9.81348 -3.36621l53.2803 -41.1504c16.6299 27.7002 37.9297 44.5303 61.2598 44.5303h284.5c-36.8701 -38.5 -60.5 -108.38 -60.5 -192v-73l50.4297 -39
-c-11.4297 31.5996 -18.4297 70 -18.4297 112c0 106 43 192 96 192s96 -86 96 -192c0 -92.3203 -32.7197 -168.91 -76.1797 -187.28zM512 192c17.6201 0 32 28.6299 32 64s-14.3701 64 -32 64s-32 -28.6201 -32 -64s14.3701 -64 32 -64z" />
-    <glyph glyph-name="users-slash" unicode="&#xe073;" horiz-adv-x="640" 
-d="M132.65 235.68c-10.3945 -7.33496 -23.1328 -11.6836 -36.8105 -11.6836c-35.2344 0 -63.8398 28.6055 -63.8398 63.8398v0.164062c0.0615234 7.80859 1.5625 15.3242 4.20996 22.2197zM173.09 173.4c-40.2002 -21.9072 -68.8896 -62.1416 -75.1797 -109.4h-65.9102
-c-17.6611 0 -32 14.3389 -32 32v32c0.0332031 35.3076 28.6924 63.9668 64 64h64c0.0224609 0 0.0537109 0.0078125 0.0771484 0.0078125c17.5605 0 33.4727 -7.11035 45.0127 -18.6074zM544 224c-35.3076 0.0332031 -63.9668 28.6924 -64 64c0 35.3223 28.6777 64 64 64
-s64 -28.6777 64 -64s-28.6777 -64 -64 -64zM500.56 92.8896l133.271 -102.989c3.76562 -2.92871 6.1709 -7.50781 6.1709 -12.6426c0 -3.69434 -1.25488 -7.09863 -3.36133 -9.80762l-19.6396 -25.2705c-2.92773 -3.77051 -7.51074 -6.18066 -12.6504 -6.18066
-c-3.69922 0 -7.1084 1.25879 -9.81934 3.37109l-588.351 454.72c-3.76562 2.92871 -6.1709 7.50781 -6.1709 12.6426c0 3.69434 1.25488 7.09766 3.36133 9.80762l19.6299 25.2695c2.92871 3.76855 7.50879 6.17676 12.6465 6.17676
-c3.69727 0 7.10254 -1.25684 9.81348 -3.36621l163.94 -126.7c6.90918 55.25 53.46 98.0801 110.6 98.0801c0.0234375 0 0.0458984 0.000976562 0.0703125 0.000976562c61.7754 0 111.93 -50.1533 111.93 -111.93v-0.0712891c0 -47.3096 -29.54 -86.9297 -71 -103.23
-l55.0898 -42.5996c37.6797 -6.53711 69.0986 -31.4668 84.4697 -65.2803zM128 44.79c0 59.79 45.7402 108.38 104 114.08l244.57 -189c-3.99707 -1.1582 -8.21582 -1.81152 -12.5703 -1.87012h-288c-26.4922 0 -48 21.5078 -48 48v28.79zM576 192
-c35.3076 -0.0332031 63.9668 -28.6924 64 -64v-32c0 -17.6611 -14.3389 -32 -32 -32h-66c-6.21875 47.2666 -34.8916 87.5146 -75.0898 109.4c11.54 11.4971 27.4609 18.5996 45.0215 18.5996h0.0683594h64z" />
-    <glyph glyph-name="virus" unicode="&#xe074;" 
-d="M483.55 220.45c0.180664 0.00292969 0.332031 0.00488281 0.512695 0.00488281c15.7021 0 28.4502 -12.748 28.4502 -28.4502s-12.748 -28.4502 -28.4502 -28.4502c-0.180664 0 -0.362305 0.00195312 -0.542969 0.00488281h-21.5391
-c-50.6807 0 -76.0703 -61.2793 -40.2305 -97.1191l15.25 -15.2402c4.66602 -5.06836 7.50879 -11.8418 7.50879 -19.2666c0 -15.7021 -12.748 -28.4502 -28.4502 -28.4502c-7.42578 0 -14.1904 2.85059 -19.2588 7.5166l-15.2402 15.2305
-c-35.8398 35.8398 -97.1094 10.4492 -97.1094 -40.2305v-21.5195c0 -15.7021 -12.748 -28.4502 -28.4502 -28.4502s-28.4502 12.748 -28.4502 28.4502v21.5391c0 50.6807 -61.2695 76.0703 -97.1094 40.2305l-15.2402 -15.25
-c-5.06836 -4.66602 -11.8418 -7.50879 -19.2666 -7.50879c-15.7021 0 -28.4502 12.748 -28.4502 28.4502c0 7.42578 2.85059 14.1904 7.5166 19.2588l15.2305 15.2402c35.8398 35.8398 10.4492 97.1191 -40.2305 97.1191h-21.5498
-c-0.180664 -0.00292969 -0.361328 -0.00488281 -0.542969 -0.00488281c-15.7021 0 -28.4502 12.748 -28.4502 28.4502s12.748 28.4502 28.4502 28.4502c0.181641 0 0.362305 -0.00195312 0.542969 -0.00488281h21.5693c50.6807 0 76.0703 61.2695 40.2305 97.1094
-l-15.25 15.25c-4.73047 5.08008 -7.61816 11.8994 -7.61816 19.3818c0 15.6963 12.7432 28.4404 28.4395 28.4404c7.48535 0 14.2988 -2.89844 19.3789 -7.63184l15.2402 -15.2305c35.8398 -35.8291 97.1094 -10.4492 97.1094 40.2305v21.5596
-c0 15.7021 12.748 28.4502 28.4502 28.4502s28.4502 -12.748 28.4502 -28.4502v-21.5498c0 -50.6797 61.2695 -76.0596 97.1094 -40.2295l15.2402 15.2197c5.08008 4.7334 11.9023 7.62305 19.3867 7.62305c15.6963 0 28.4404 -12.7432 28.4404 -28.4395
-c0 -7.48242 -2.89648 -14.2939 -7.62695 -19.374l-15.2305 -15.25c-35.8398 -35.8398 -10.4492 -97.1094 40.2305 -97.1094h21.5498zM224 176c26.4922 0 48 21.5078 48 48s-21.5078 48 -48 48s-48 -21.5078 -48 -48s21.5078 -48 48 -48zM304 120c13.2461 0 24 10.7539 24 24
-s-10.7539 24 -24 24s-24 -10.7539 -24 -24s10.7539 -24 24 -24z" />
-    <glyph glyph-name="virus-slash" unicode="&#xe075;" horiz-adv-x="640" 
-d="M114 220.4c9.90039 0.0996094 19.7002 2.89941 28.0996 8l244.5 -189c-21.1992 -7.5 -38.1992 -26.8008 -38.1992 -53.4004v-21.5c0 -15.7002 -12.7002 -28.4004 -28.4004 -28.4004s-28.5 12.7002 -28.5 28.4004v21.5c0 50.7002 -61.2998 76 -97.0996 40.2002
-l-15.2002 -15.2002c-0.5 -0.599609 -1.10059 -1.09961 -1.60059 -1.59961c-11.5 -10.6006 -29.5996 -9.90039 -40.1992 1.59961c-10.6006 11.5 -9.90039 29.5 1.59961 40.2002l15.2002 15.2998c35.8994 35.7998 10.5 97.0996 -40.2002 97.0996h-21.5996
-c-15.7002 0 -28.4004 12.7002 -28.4004 28.4004s12.7002 28.4004 28.4004 28.4004h21.5996zM617 -57.7998c-5.40039 -7 -15.5 -8.2998 -22.4004 -2.90039l-588.399 454.7c-7 5.5 -8.2002 15.5 -2.7998 22.5l19.5996 25.2998c5.5 7 15.5 8.2002 22.5 2.7998l93.2002 -72.0996
-c11.0996 11.0996 29.3994 11.5996 40.5 0.5l15.2998 -15.2002c35.7998 -35.8994 97.0996 -10.5 97.0996 40.2002v21.5996c0 15.7002 12.7002 28.4004 28.4004 28.4004s28.4004 -12.7002 28.5 -28.5v-21.5996c0 -50.7002 61.2998 -76 97.0996 -40.2002l15.2002 15.2002
-c10.9004 10.0996 27.7002 10.0996 38.6006 0c11.5996 -10.7002 12.2998 -28.7002 1.59961 -40.2002l-15.2002 -15.2998c-35.8994 -35.8008 -10.5 -97.1006 40.2002 -97.1006h21.5c15.7002 0 28.4004 -12.7002 28.4004 -28.3994
-c0 -15.7002 -12.7002 -28.4004 -28.4004 -28.4004h-21.5c-30.5 0 -51.2002 -22.0996 -55.4004 -47.5l163.2 -126c7 -5.5 8.2002 -15.5 2.7998 -22.5zM335.4 220.5c0.0996094 1.2002 0.599609 2.2998 0.5 3.5c0 26.5 -21.5 48 -48 48
-c-5.2002 -0.0996094 -10.5 -1.09961 -15.4004 -2.90039z" />
-    <glyph glyph-name="viruses" unicode="&#xe076;" horiz-adv-x="640" 
-d="M624 96c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16h-12.1201c-28.5098 0 -42.79 -34.4697 -22.6299 -54.6299l8.58008 -8.57031c2.89648 -2.89648 4.68457 -6.90137 4.68457 -11.3174c0 -8.83105 -7.16992 -16.002 -16.002 -16.002
-c-4.41602 0 -8.41602 1.79297 -11.3125 4.68945l-8.57031 8.58008c-20.1602 20.1602 -54.6299 5.87988 -54.6299 -22.6299v-12.1201c0 -8.83105 -7.16895 -16 -16 -16s-16 7.16895 -16 16v12.1201c0 28.5098 -34.4697 42.79 -54.6299 22.6299l-8.57031 -8.58008
-c-2.89648 -2.89648 -6.90137 -4.68457 -11.3174 -4.68457c-8.83105 0 -16.002 7.16992 -16.002 16.002c0 4.41602 1.79297 8.41602 4.68945 11.3125l8.58008 8.57031c20.1602 20.1602 5.87988 54.6299 -22.6299 54.6299h-12.1201c-8.83105 0 -16 7.16895 -16 16
-s7.16895 16 16 16h12.1201c28.5098 0 42.79 34.4697 22.6299 54.6299l-8.58008 8.57031c-2.89648 2.89648 -4.68457 6.90137 -4.68457 11.3174c0 8.83105 7.16992 16.002 16.002 16.002c4.41602 0 8.41602 -1.79297 11.3125 -4.68945l8.57031 -8.58008
-c20.1602 -20.1602 54.6299 -5.87988 54.6299 22.6299v12.1201c0 8.83105 7.16895 16 16 16s16 -7.16895 16 -16v-12.1201c0 -28.5098 34.4697 -42.79 54.6299 -22.6299l8.57031 8.58008c2.89648 2.89648 6.90137 4.68457 11.3174 4.68457
-c8.83105 0 16.002 -7.16992 16.002 -16.002c0 -4.41602 -1.79297 -8.41602 -4.68945 -11.3125l-8.58008 -8.57031c-20.1602 -20.1602 -5.87988 -54.6299 22.6299 -54.6299h12.1201zM480 64c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32
-s14.3389 -32 32 -32zM346.51 234.67c-38.0195 0 -57.0498 -45.96 -30.1699 -72.8398l11.4297 -11.4297c3.8623 -3.8623 6.24609 -9.20117 6.24609 -15.0879c0 -11.7744 -9.55957 -21.334 -21.334 -21.334c-5.88672 0 -11.2197 2.38965 -15.082 6.25195l-11.4297 11.4297
-c-26.8398 26.8799 -72.8398 7.83008 -72.8398 -30.1699v-16.1602c0 -11.7725 -9.55762 -21.3301 -21.3301 -21.3301s-21.3301 9.55762 -21.3301 21.3301v16.1602c0 38.0195 -45.96 57.0498 -72.8398 30.1699l-11.4297 -11.4297
-c-3.8623 -3.8623 -9.20117 -6.24609 -15.0879 -6.24609c-11.7744 0 -21.334 9.55957 -21.334 21.334c0 5.88672 2.38965 11.2197 6.25195 15.082l11.4297 11.4297c26.8799 26.8398 7.83008 72.8398 -30.1699 72.8398h-16.1602c-11.7725 0 -21.3301 9.55762 -21.3301 21.3301
-s9.55762 21.3301 21.3301 21.3301h16.1602c38.0195 0 57.0498 45.96 30.1699 72.8398l-11.4297 11.4404c-3.83008 3.85645 -6.19043 9.17188 -6.19043 15.0312c0 11.7725 9.55762 21.3301 21.3301 21.3301c5.86035 0 11.1729 -2.36914 15.0303 -6.20215l11.4297 -11.4297
-c26.8398 -26.8799 72.8398 -7.83008 72.8398 30.1699v16.1602c0 11.7725 9.55762 21.3301 21.3301 21.3301s21.3301 -9.55762 21.3301 -21.3301v-16.1602c0 -38.0195 45.96 -57.0498 72.8398 -30.1699l11.4297 11.4297c3.85742 3.83301 9.17578 6.19531 15.0361 6.19531
-c11.7725 0 21.3301 -9.55762 21.3301 -21.3291c0 -5.85938 -2.36621 -11.1689 -6.19629 -15.0254l-11.4297 -11.4404c-26.8799 -26.8398 -7.83008 -72.8398 30.1699 -72.8398h16.1602c11.7725 0 21.3301 -9.55762 21.3301 -21.3301s-9.55762 -21.3301 -21.3301 -21.3301
-h-16.1602zM160 256c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM240 224c8.83105 0 16 7.16895 16 16s-7.16895 16 -16 16s-16 -7.16895 -16 -16s7.16895 -16 16 -16z" />
-    <glyph glyph-name="vest" unicode="&#xe085;" horiz-adv-x="448" 
-d="M437.252 208.123c6.76562 -10.1484 10.748 -22.3994 10.748 -35.5v-204.623c0 -17.6611 -14.3389 -32 -32 -32h-192v224l73.8115 221.438c-21.7695 -12.3281 -47.0635 -19.5205 -73.8115 -19.6729c-26.748 0.150391 -52.042 7.34277 -73.8115 19.6699l56.9463 -170.836
-l-13.4922 -40.4805c-1.05957 -3.17969 -1.64258 -6.58496 -1.64258 -10.1191v-224h-160c-17.6611 0 -32 14.3389 -32 32v204.623c0 13.1006 3.98242 25.3516 10.748 35.5l53.252 79.877v128c0 17.6611 14.3389 32 32 32h32
-c4.91211 -0.00195312 9.50586 -1.49512 13.3115 -4.03125l25 -16.6719c16.4814 -11.0186 36.4971 -17.4463 57.793 -17.4463s41.1025 6.42773 57.584 17.4463l25 16.6719c3.80566 2.53613 8.39941 4.0293 13.3115 4.03125h32c17.6611 0 32 -14.3389 32 -32v-128z
-M131.312 76.6885c2.78125 2.87891 4.48828 6.80078 4.48828 11.1152c0 8.83105 -7.16992 16 -16 16c-4.31445 0 -8.23242 -1.71094 -11.1113 -4.49219l-48 -48c-2.78125 -2.87891 -4.48828 -6.80078 -4.48828 -11.1152c0 -8.83105 7.16992 -16 16 -16
-c4.31445 0 8.23242 1.71094 11.1113 4.49219zM387.312 28.6885c2.89746 2.89453 4.69043 6.89844 4.69043 11.3135s-1.79297 8.41504 -4.69043 11.3096l-48 48c-2.87891 2.78125 -6.80078 4.48828 -11.1152 4.48828c-8.83105 0 -16 -7.16992 -16 -16
-c0 -4.31445 1.71094 -8.23242 4.49219 -11.1113l48 -48c2.89453 -2.89746 6.89844 -4.69043 11.3135 -4.69043s8.41504 1.79297 11.3096 4.69043z" />
-    <glyph glyph-name="vest-patches" unicode="&#xe086;" horiz-adv-x="448" 
-d="M437.252 208.123c6.76562 -10.1484 10.748 -22.3994 10.748 -35.5v-204.623c0 -17.6611 -14.3389 -32 -32 -32h-192v224l73.8105 221.434c-21.7705 -12.3252 -47.0635 -19.5156 -73.8105 -19.668c-26.7471 0.154297 -52.041 7.34668 -73.8115 19.6738l56.9463 -170.84
-l-13.4922 -40.4805c-1.05957 -3.17969 -1.64258 -6.58496 -1.64258 -10.1191v-224h-160c-17.6611 0 -32 14.3389 -32 32v204.623c0 13.1006 3.98242 25.3516 10.748 35.5l53.252 79.877v128c0 17.6611 14.3389 32 32 32h32l0.0283203 -0.0146484
-c4.91113 0 9.47949 -1.47949 13.2832 -4.0166l25 -16.6719c16.4814 -11.0186 36.4971 -17.4463 57.793 -17.4463s41.1025 6.42773 57.584 17.4463l25 16.6719c3.80371 2.53711 8.39551 4.03125 13.3066 4.03125h0.00488281h32c17.6611 0 32 -14.3389 32 -32v-128z
-M63.5 175.516l15.5156 -15.5156l-15.5156 -15.5156c-2.12402 -2.16699 -3.43066 -5.1377 -3.43066 -8.4082c0 -6.62891 5.38086 -12.0107 12.0098 -12.0107c3.2793 0 6.25293 1.31738 8.4209 3.4502l15.5 15.5l15.5 -15.5
-c2.16797 -2.13281 5.14551 -3.44629 8.42383 -3.44629c6.62891 0 12.0107 5.38184 12.0107 12.0098c0 3.27051 -1.31055 6.23828 -3.43457 8.40527l-15.5156 15.5156l15.5156 15.5156c2.12402 2.16699 3.43066 5.1377 3.43066 8.4082
-c0 6.62891 -5.38086 12.0107 -12.0098 12.0107c-3.2793 0 -6.25293 -1.31738 -8.4209 -3.4502l-15.5 -15.5l-15.5 15.5c-2.16797 2.13281 -5.14551 3.44629 -8.42383 3.44629c-6.62891 0 -12.0107 -5.38184 -12.0107 -12.0098c0 -3.27051 1.31055 -6.23828 3.43457 -8.40527
-zM96 -8c22.0762 0 40 17.9238 40 40s-17.9238 40 -40 40s-40 -17.9238 -40 -40s17.9238 -40 40 -40zM359.227 112.215c13.6875 0.0966797 24.7734 11.2139 24.7734 24.9229c0 0.757812 -0.0341797 1.50684 -0.0996094 2.24707
-c-1.16406 12.8008 -12.5742 22.1113 -25.4004 22.0762l-5.05078 -0.0371094l0.0371094 5.05762c0.0722656 12.7998 -9.26758 24.2568 -22.0566 25.4189c-0.742188 0.0664062 -1.46973 0.0947266 -2.22949 0.0947266c-13.7012 0 -24.8418 -11.0527 -24.9854 -24.7207
-l-0.214844 -48.5742c0 -0.00976562 -0.000976562 -0.0195312 -0.000976562 -0.0292969c0 -3.68164 2.98926 -6.6709 6.6709 -6.6709h0.0302734z" />
-    <glyph glyph-name="glass-martini" unicode="&#xf000;" 
-d="M502.05 390.4l-214.05 -214.04v-192.36h56c22.0898 0 40 -17.9102 40 -40c0 -4.41992 -3.58008 -8 -8 -8h-240c-4.41992 0 -8 3.58008 -8 8c0 22.0898 17.9102 40 40 40h56v192.36l-214.05 214.04c-21.25 21.2598 -6.2002 57.5996 23.8496 57.5996h444.4
-c30.0498 0 45.0996 -36.3398 23.8496 -57.5996z" />
-    <glyph glyph-name="music" unicode="&#xf001;" 
-d="M470.38 446.49c3.03613 0.957031 6.26953 1.47949 9.62012 1.47949c17.6514 0 31.9834 -14.3223 32 -31.9697v-352c0 -35.3496 -43 -64 -96 -64s-96 28.6602 -96 64s43 64 96 64c11.0361 -0.0605469 21.7158 -1.4248 32 -3.92969v184.609l-256 -75v-233.68
-c0 -35.3398 -43 -64 -96 -64s-96 28.6602 -96 64s43 64 96 64c11.0352 -0.0625 21.7139 -1.42285 32 -3.91992v261.41c0.00878906 14.3125 9.43359 26.4336 22.4102 30.5098z" />
-    <glyph glyph-name="search" unicode="&#xf002;" 
-d="M505 5.2998c9.2998 -9.39941 9.2998 -24.5996 -0.0996094 -34l-28.3008 -28.2998c-9.2998 -9.40039 -24.5 -9.40039 -33.8994 0l-99.7002 99.7002c-4.5 4.5 -7 10.5996 -7 17v16.2998c-35.2998 -27.5996 -79.7002 -44 -128 -44c-114.9 0 -208 93.0996 -208 208
-s93.0996 208 208 208s208 -93.0996 208 -208c0 -48.2998 -16.4004 -92.7002 -44 -128h16.2998c6.40039 0 12.5 -2.5 17 -7zM208 112c70.7998 0 128 57.2998 128 128c0 70.7998 -57.2998 128 -128 128c-70.7998 0 -128 -57.2998 -128 -128c0 -70.7998 57.2998 -128 128 -128z
-" />
-    <glyph glyph-name="heart" unicode="&#xf004;" 
-d="M462.3 385.4c62.7998 -53.6006 66.1006 -149.801 9.7998 -207.9l-193.5 -199.8c-12.5 -12.9004 -32.7998 -12.9004 -45.2998 0l-193.5 199.8c-56.2002 58.0996 -52.8994 154.3 9.90039 207.9c54.7998 46.6992 136.399 38.2998 186.6 -13.6006l19.7002 -20.2998
-l19.7002 20.2998c50.2998 51.9004 131.8 60.2998 186.6 13.6006z" />
-    <glyph glyph-name="star" unicode="&#xf005;" horiz-adv-x="576" 
-d="M259.3 430.2c11.7998 23.8994 45.7002 23.5996 57.4004 0l65.2998 -132.4l146.1 -21.2998c26.2002 -3.7998 36.7002 -36.0996 17.7002 -54.5996l-105.7 -103l25 -145.5c4.5 -26.3008 -23.1992 -45.9004 -46.3994 -33.7002l-130.7 68.7002l-130.7 -68.7002
-c-23.2002 -12.2998 -50.8994 7.39941 -46.3994 33.7002l25 145.5l-105.7 103c-19 18.5 -8.5 50.7998 17.7002 54.5996l146.1 21.2998z" />
-    <glyph glyph-name="user" unicode="&#xf007;" horiz-adv-x="448" 
-d="M224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM313.6 160c74.2002 0 134.4 -60.2002 134.4 -134.4v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v41.5996
-c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992z" />
-    <glyph glyph-name="film" unicode="&#xf008;" 
-d="M488 384c13.2998 0 24 -10.7002 24 -24v-336c0 -13.2998 -10.7002 -24 -24 -24h-8v20c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-20h-320v20c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-20h-8
-c-13.2998 0 -24 10.7002 -24 24v336c0 13.2998 10.7002 24 24 24h8v-20c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v20h320v-20c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v20h8zM96 76v40c0 6.59961 -5.40039 12 -12 12h-40
-c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM96 172v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM96 268v40
-c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM368 60v96c0 6.59961 -5.40039 12 -12 12h-200c-6.59961 0 -12 -5.40039 -12 -12v-96c0 -6.59961 5.40039 -12 12 -12h200
-c6.59961 0 12 5.40039 12 12zM368 228v96c0 6.59961 -5.40039 12 -12 12h-200c-6.59961 0 -12 -5.40039 -12 -12v-96c0 -6.59961 5.40039 -12 12 -12h200c6.59961 0 12 5.40039 12 12zM480 76v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40
-c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM480 172v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM480 268v40c0 6.59961 -5.40039 12 -12 12h-40
-c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12z" />
-    <glyph glyph-name="th-large" unicode="&#xf009;" 
-d="M296 416h192c13.2549 0 24 -10.7451 24 -24v-160c0 -13.2549 -10.7451 -24 -24 -24h-192c-13.2549 0 -24 10.7451 -24 24v160c0 13.2549 10.7451 24 24 24zM216 416c13.2549 0 24 -10.7451 24 -24v-160c0 -13.2549 -10.7451 -24 -24 -24h-192
-c-13.2549 0 -24 10.7451 -24 24v160c0 13.2549 10.7451 24 24 24h192zM0 152c0 13.2549 10.7451 24 24 24h192c13.2549 0 24 -10.7451 24 -24v-160c0 -13.2549 -10.7451 -24 -24 -24h-192c-13.2549 0 -24 10.7451 -24 24v160zM296 -32c-13.2549 0 -24 10.7451 -24 24v160
-c0 13.2549 10.7451 24 24 24h192c13.2549 0 24 -10.7451 24 -24v-160c0 -13.2549 -10.7451 -24 -24 -24h-192z" />
-    <glyph glyph-name="th" unicode="&#xf00a;" 
-d="M149.333 392v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24zM330.667 152c0 -13.2549 -10.7451 -24 -24.001 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80
-c0 13.2549 10.7451 24 24 24h101.334c13.2549 0 24 -10.7451 24 -24v-80zM362.667 392c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80zM330.667 312
-c0 -13.2549 -10.7451 -24 -24.001 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.334c13.2549 0 24 -10.7451 24 -24v-80zM125.333 256c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333
-c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333zM0 72c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80zM386.667 128
-c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333zM386.667 -32c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24
-v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333zM181.333 72c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80z" />
-    <glyph glyph-name="th-list" unicode="&#xf00b;" 
-d="M149.333 232v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24zM0 72c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24v-80
-c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80zM125.333 416c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333zM205.333 -32
-c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h282.667c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-282.667zM181.333 392c0 13.2549 10.7451 24 24 24h282.667c13.2549 0 24 -10.7451 24 -24v-80
-c0 -13.2549 -10.7451 -24 -24 -24h-282.667c-13.2549 0 -24 10.7451 -24 24v80zM205.333 128c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h282.667c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-282.667z" />
-    <glyph glyph-name="check" unicode="&#xf00c;" 
-d="M173.898 8.5957l-166.4 166.4c-9.99707 9.99707 -9.99707 26.2061 0 36.2041l36.2031 36.2041c9.99707 9.99805 26.207 9.99805 36.2041 0l112.095 -112.095l240.095 240.095c9.99707 9.99707 26.207 9.99707 36.2041 0l36.2031 -36.2041
-c9.99707 -9.99707 9.99707 -26.2061 0 -36.2041l-294.4 -294.401c-9.99805 -9.99707 -26.207 -9.99707 -36.2031 0.000976562z" />
-    <glyph glyph-name="times" unicode="&#xf00d;" horiz-adv-x="352" 
-d="M242.72 192l100.07 -100.07c12.2803 -12.29 12.2803 -32.1992 0 -44.4795l-22.2402 -22.2402c-12.2803 -12.2803 -32.2002 -12.2803 -44.4795 0l-100.07 100.07l-100.07 -100.07c-12.2793 -12.2803 -32.1992 -12.2803 -44.4795 0l-22.2402 22.2402
-c-12.2803 12.29 -12.2803 32.2002 0 44.4795l100.07 100.07l-100.07 100.07c-12.2803 12.29 -12.2803 32.1992 0 44.4795l22.2402 22.2402c12.29 12.2803 32.2002 12.2803 44.4795 0l100.07 -100.07l100.07 100.07c12.29 12.2803 32.1992 12.2803 44.4795 0
-l22.2402 -22.2402c12.2803 -12.29 12.2803 -32.2002 0 -44.4795z" />
-    <glyph glyph-name="search-plus" unicode="&#xf00e;" 
-d="M304 256v-32c0 -6.59961 -5.40039 -12 -12 -12h-56v-56c0 -6.59961 -5.40039 -12 -12 -12h-32c-6.59961 0 -12 5.40039 -12 12v56h-56c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h56v56c0 6.59961 5.40039 12 12 12h32c6.59961 0 12 -5.40039 12 -12
-v-56h56c6.59961 0 12 -5.40039 12 -12zM505 -28.7002l-28.2998 -28.2998c-9.40039 -9.40039 -24.6006 -9.40039 -33.9004 0l-99.7998 99.7002c-4.5 4.5 -7 10.5996 -7 17v16.2998c-35.2998 -27.5996 -79.7002 -44 -128 -44c-114.9 0 -208 93.0996 -208 208
-s93.0996 208 208 208s208 -93.0996 208 -208c0 -48.2998 -16.4004 -92.7002 -44 -128h16.2998c6.40039 0 12.5 -2.5 17 -7l99.7002 -99.7002c9.2998 -9.39941 9.2998 -24.5996 0 -34zM344 240c0 75.2002 -60.7998 136 -136 136s-136 -60.7998 -136 -136
-s60.7998 -136 136 -136s136 60.7998 136 136z" />
-    <glyph glyph-name="search-minus" unicode="&#xf010;" 
-d="M304 256v-32c0 -6.59961 -5.40039 -12 -12 -12h-168c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h168c6.59961 0 12 -5.40039 12 -12zM505 -28.7002l-28.2998 -28.2998c-9.40039 -9.40039 -24.6006 -9.40039 -33.9004 0l-99.7998 99.7002
-c-4.5 4.5 -7 10.5996 -7 17v16.2998c-35.2998 -27.5996 -79.7002 -44 -128 -44c-114.9 0 -208 93.0996 -208 208s93.0996 208 208 208s208 -93.0996 208 -208c0 -48.2998 -16.4004 -92.7002 -44 -128h16.2998c6.40039 0 12.5 -2.5 17 -7l99.7002 -99.7002
-c9.2998 -9.39941 9.2998 -24.5996 0 -34zM344 240c0 75.2002 -60.7998 136 -136 136s-136 -60.7998 -136 -136s60.7998 -136 136 -136s136 60.7998 136 136z" />
-    <glyph glyph-name="power-off" unicode="&#xf011;" 
-d="M400 393.9c63 -45 104 -118.601 104 -201.9c0 -136.8 -110.8 -247.7 -247.5 -248c-136.5 -0.299805 -248.3 111 -248.5 247.6c-0.0996094 83.3008 40.9004 157.101 103.8 202.2c11.7002 8.2998 28 4.7998 35 -7.7002l15.7998 -28.0996
-c5.90039 -10.5 3.10059 -23.7998 -6.59961 -31c-41.5 -30.7998 -68 -79.5996 -68 -134.9c-0.0996094 -92.2998 74.5 -168.1 168 -168.1c91.5996 0 168.6 74.2002 168 169.1c-0.299805 51.8008 -24.7002 101.801 -68.0996 134c-9.7002 7.2002 -12.4004 20.5 -6.5 30.9004
-l15.7998 28.0996c7 12.4004 23.2002 16.1006 34.7998 7.80078zM296 184c0 -13.2998 -10.7002 -24 -24 -24h-32c-13.2998 0 -24 10.7002 -24 24v240c0 13.2998 10.7002 24 24 24h32c13.2998 0 24 -10.7002 24 -24v-240z" />
-    <glyph glyph-name="signal" unicode="&#xf012;" horiz-adv-x="640" 
-d="M216 160c8.83984 0 16 -7.16016 16 -16v-192c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16v192c0 8.83984 7.16016 16 16 16h48zM88 64c8.83984 0 16 -7.16016 16 -16v-96c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16v96
-c0 8.83984 7.16016 16 16 16h48zM344 256c8.83984 0 16 -7.16016 16 -16v-288c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16v288c0 8.83984 7.16016 16 16 16h48zM472 352c8.83984 0 16 -7.16016 16 -16v-384c0 -8.83984 -7.16016 -16 -16 -16h-48
-c-8.83984 0 -16 7.16016 -16 16v384c0 8.83984 7.16016 16 16 16h48zM600 448c8.83984 0 16 -7.16016 16 -16v-480c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16v480c0 8.83984 7.16016 16 16 16h48z" />
-    <glyph glyph-name="cog" unicode="&#xf013;" 
-d="M487.4 132.3c4.89941 -2.7998 7.09961 -8.59961 5.59961 -14.0996c-11.0996 -35.7002 -30 -67.9004 -54.7002 -94.6006c-3.7998 -4.19922 -9.89941 -5.09961 -14.7998 -2.2998l-42.5996 24.6006c-18 -15.3008 -38.6006 -27.2002 -60.8008 -35.1006v-49.2002
-c0 -5.59961 -3.89941 -10.5 -9.39941 -11.6992c-34.9004 -7.80078 -72.5 -8.2002 -109.2 0c-5.5 1.19922 -9.40039 6.09961 -9.40039 11.6992v49.2002c-22.2998 7.7998 -42.8994 19.7002 -60.7998 35.1006l-42.5996 -24.6006c-4.7998 -2.7998 -11 -1.7998 -14.7998 2.2998
-c-24.7002 26.8008 -43.6006 59 -54.7002 94.6006c-1.60059 5.39941 0.599609 11.2002 5.5 14l42.5996 24.5996c-4.2998 23.2002 -4.2998 47 0 70.2002l-42.5996 24.5996c-4.90039 2.80078 -7.2002 8.60059 -5.5 14c11.0996 35.7002 30 67.9004 54.7002 94.6006
-c3.7998 4.2002 9.89941 5.09961 14.7998 2.2998l42.5 -24.5996c18 15.2998 38.5996 27.1992 60.7998 35.0996v49.2002c0 5.59961 3.90039 10.5 9.40039 11.7002c34.8994 7.7998 72.5 8.19922 109.199 0c5.5 -1.2002 9.40039 -6.10059 9.40039 -11.7002v-49.1006
-c22.2998 -7.7998 42.9004 -19.6992 60.7998 -35.0996l42.6006 24.5996c4.7998 2.80078 11 1.80078 14.7998 -2.2998c24.7002 -26.7998 43.5996 -59 54.7002 -94.5996c1.59961 -5.40039 -0.600586 -11.2002 -5.5 -14l-42.6006 -24.6006
-c4.2998 -23.1992 4.2998 -47 0 -70.1992zM256 112c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
-    <glyph glyph-name="home" unicode="&#xf015;" horiz-adv-x="576" 
-d="M280.37 299.74c2.09082 1.68555 4.76562 2.69434 7.6582 2.69434s5.55078 -1.00879 7.6416 -2.69434l184.33 -151.74v-164c0 -8.83105 -7.16895 -16 -16 -16l-112.02 0.30957c-8.83105 0 -16.001 7.16895 -16.001 15.999c0 0.0175781 0 0.0341797 0.000976562 0.0517578
-v95.6396c0 8.83105 -7.16992 16 -16 16h-64c-8.83105 0 -16 -7.16895 -16 -16v-95.71c0 -8.80371 -7.12695 -15.9561 -15.9209 -16l-112.06 -0.290039c-8.83105 0 -16 7.16895 -16 16v163.89zM571.6 196.53c2.70703 -2.20117 4.42578 -5.56152 4.42578 -9.31836
-c0 -2.88867 -1.02246 -5.54004 -2.72559 -7.6123l-25.5 -31c-2.20117 -2.66309 -5.53418 -4.35059 -9.25684 -4.35059c-2.90332 0 -5.56641 1.0332 -7.64258 2.75098l-235.23 193.74c-2.09082 1.68555 -4.7666 2.69434 -7.6582 2.69434
-c-2.89258 0 -5.55078 -1.00879 -7.6416 -2.69434l-235.22 -193.74c-2.0752 -1.71387 -4.73926 -2.75586 -7.63867 -2.75586c-3.73242 0 -7.07031 1.70898 -9.27148 4.38574l-25.5 31c-1.71875 2.07617 -2.7627 4.74414 -2.7627 7.64648
-c0 3.72266 1.69824 7.05176 4.3623 9.25391l253.13 208.47c8.29102 6.82227 18.9668 10.9209 30.5312 10.9209s22.1787 -4.09863 30.4688 -10.9209l89.5303 -73.6602v72.6104c0 6.62305 5.37695 12 12 12h56c6.62305 0 12 -5.37695 12 -12v-138.51z" />
-    <glyph glyph-name="clock" unicode="&#xf017;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM348.49 127c2.19531 2.73926 3.52637 6.21973 3.52637 10c0 5.05566 -2.35059 9.56738 -6.0166 12.5l-58 42.5v144c0 8.83105 -7.16895 16 -16 16h-32
-c-8.83105 0 -16 -7.16895 -16 -16v-155.55c0 -12.6338 5.8418 -23.8975 15 -31.2305l67 -49.7197v0c2.7373 -2.19043 6.21387 -3.51758 9.98926 -3.51758c5.05566 0 9.56738 2.35059 12.501 6.01758l20 25v0z" />
-    <glyph glyph-name="road" unicode="&#xf018;" horiz-adv-x="576" 
-d="M573.19 45.3301c9.25977 -21.1904 -5.5 -45.3301 -27.7305 -45.3301h-196.84l-10.3105 97.6797c-0.859375 8.14062 -7.71973 14.3203 -15.9092 14.3203h-68.8008c-8.18945 0 -15.0498 -6.17969 -15.9092 -14.3203l-10.3105 -97.6797h-196.84
-c-22.2305 0 -36.9902 24.1396 -27.7402 45.3301l139.79 320c4.96973 11.3799 15.7998 18.6699 27.7305 18.6699h97.5898l-2.4502 -23.1602c-0.5 -4.71973 3.20996 -8.83984 7.95996 -8.83984h29.1602c4.75 0 8.45996 4.12012 7.95996 8.83984l-2.4502 23.1602h97.5898
-c11.9199 0 22.75 -7.29004 27.7207 -18.6699zM260.4 312.84l-4.59082 -43.5801c-0.75 -7.08984 4.80078 -13.2598 11.9307 -13.2598h40.54c7.12012 0 12.6797 6.16992 11.9297 13.2598l-4.59961 43.5801c-0.430664 4.07031 -3.87012 7.16016 -7.95996 7.16016h-39.29
-c-0.00195312 0 -0.00390625 -0.0078125 -0.00488281 -0.0078125c-4.12891 0 -7.53125 -3.13477 -7.95508 -7.15234zM315.64 144c9.5 0 16.9102 8.23047 15.9102 17.6797l-5.06934 48c-0.860352 8.14062 -7.7207 14.3203 -15.9102 14.3203h-45.1504
-c-8.18945 0 -15.0498 -6.17969 -15.9102 -14.3203l-5.06934 -48c-1 -9.44922 6.40918 -17.6797 15.9092 -17.6797h55.29z" />
-    <glyph glyph-name="download" unicode="&#xf019;" 
-d="M216 448h80c13.2998 0 24 -10.7002 24 -24v-168h87.7002c17.7998 0 26.7002 -21.5 14.0996 -34.0996l-152.1 -152.2c-7.5 -7.5 -19.7998 -7.5 -27.2998 0l-152.301 152.2c-12.5996 12.5996 -3.69922 34.0996 14.1006 34.0996h87.7998v168c0 13.2998 10.7002 24 24 24z
-M512 72v-112c0 -13.2998 -10.7002 -24 -24 -24h-464c-13.2998 0 -24 10.7002 -24 24v112c0 13.2998 10.7002 24 24 24h146.7l49 -49c20.0996 -20.0996 52.5 -20.0996 72.5996 0l49 49h146.7c13.2998 0 24 -10.7002 24 -24zM388 -16c0 11 -9 20 -20 20s-20 -9 -20 -20
-s9 -20 20 -20s20 9 20 20zM452 -16c0 11 -9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20s20 9 20 20z" />
-    <glyph glyph-name="inbox" unicode="&#xf01c;" horiz-adv-x="576" 
-d="M567.938 204.092c5.07422 -7.61035 8.06152 -16.7998 8.06152 -26.625v-129.467c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v129.467c0 9.8252 2.9873 19.0146 8.06152 26.625l105.689 158.534c8.60742 12.9102 23.2725 21.374 39.9385 21.374
-h268.621c16.667 0 31.332 -8.46387 39.9395 -21.374zM162.252 320l-85.334 -128h123.082l32 -64h112l32 64h123.082l-85.333 128h-251.497z" />
-    <glyph glyph-name="redo" unicode="&#xf01e;" 
-d="M500.33 448c6.62305 0 12 -5.37695 12 -12v-200.34c0 -6.62305 -5.37695 -12 -12 -12h-200.33c-6.62305 0 -12 5.37695 -12 12v47.4102c0 0.00390625 -0.00878906 0.00878906 -0.00878906 0.0136719c0 6.62305 5.37695 12 12 12
-c0.194336 0 0.386719 -0.00488281 0.579102 -0.0136719l101.529 -4.87012c-31.6084 47.0322 -85.1172 77.8594 -145.992 77.8594c-97.1367 0 -176 -78.8633 -176 -176s78.8633 -176 176 -176c44.502 0 85.168 16.5518 116.173 43.8301
-c2.10938 1.84375 4.87793 2.96582 7.89746 2.96582c3.31055 0 6.31055 -1.34375 8.48242 -3.51562l34 -34c2.17383 -2.17188 3.52246 -5.17285 3.52246 -8.48633c0 -3.55176 -1.54688 -6.74512 -4.00293 -8.94336c-43.8477 -39.6924 -102.079 -63.9102 -165.824 -63.9102
-h-0.355469c-136.9 0 -247.9 110.93 -248 247.81c-0.0996094 136.66 111.34 248.19 248 248.19c0.0927734 0 0.116211 0.140625 0.208984 0.140625c75.5918 0 143.312 -33.9727 188.711 -87.4707l-4 82.7598c-0.00878906 0.192383 -0.0136719 0.375977 -0.0136719 0.570312
-c0 6.62305 5.37695 12 12 12h0.0136719h47.4102z" />
-    <glyph glyph-name="sync" unicode="&#xf021;" 
-d="M440.65 435.43c-0.00976562 0.192383 -0.0136719 0.375977 -0.0136719 0.570312c0 6.62109 5.37305 11.9961 11.9932 12h47.3701c6.62305 0 12 -5.37695 12 -12v-200.35c0 -6.62305 -5.37695 -12 -12 -12h-200.22c-6.62305 0 -12 5.37695 -12 12v47.4092
-c0 0.00488281 -0.00878906 0.00976562 -0.00878906 0.0136719c0 6.62305 5.37695 12 12 12c0.194336 0 0.386719 -0.00390625 0.578125 -0.0136719l101.46 -4.85938c-31.5938 46.9941 -85.1406 77.6738 -145.973 77.6738c-82.8662 0 -152.428 -57.4229 -171.027 -134.614
-c-1.24219 -5.29688 -5.99707 -9.25391 -11.6699 -9.25977h-49.0498c-6.62305 0 -12 5.36719 -12 11.9893c0 0.748047 0.0693359 1.48047 0.200195 2.19043c21.6201 114.9 122.44 201.82 243.54 201.82c0.0966797 0 0.123047 0.141602 0.219727 0.141602
-c75.5615 0 143.248 -33.9814 188.601 -87.4814zM255.83 16c0.015625 0 0.0185547 0.0898438 0.0332031 0.0898438c82.8701 0 152.43 57.4434 170.997 134.65c1.24219 5.29688 5.99707 9.25391 11.6699 9.25977h49.0498c6.62305 0 12 -5.36719 12 -11.9893
-c0 -0.748047 -0.0693359 -1.48047 -0.200195 -2.19043c-21.6201 -114.9 -122.439 -201.82 -243.55 -201.82c-0.0800781 0 -0.0908203 -0.140625 -0.170898 -0.140625c-75.4814 0 -143.106 33.9082 -188.459 87.3105l4.14941 -82.5703
-c0.0107422 -0.201172 0.015625 -0.395508 0.015625 -0.599609c0 -6.62305 -5.37695 -12 -12 -12h-0.015625h-47.3496c-6.62305 0 -12 5.37695 -12 12v200.33c0 6.62305 5.37695 12 12 12h200.2c6.62305 0 12 -5.37695 12 -12v-47.4004
-c0 -0.00390625 0.0078125 -0.00878906 0.0078125 -0.0136719c0 -6.62305 -5.37695 -12 -12 -12c-0.193359 0 -0.386719 0.00488281 -0.578125 0.0136719l-101.8 4.87012c31.5254 -47.0088 85.0449 -77.7998 145.847 -77.7998h0.15332z" />
-    <glyph glyph-name="list-alt" unicode="&#xf022;" 
-d="M464 -32h-416c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48zM128 328c-22.0908 0 -40 -17.9092 -40 -40s17.9092 -40 40 -40s40 17.9092 40 40s-17.9092 40 -40 40zM128 232
-c-22.0908 0 -40 -17.9092 -40 -40s17.9092 -40 40 -40s40 17.9092 40 40s-17.9092 40 -40 40zM128 136c-22.0908 0 -40 -17.9092 -40 -40s17.9092 -40 40 -40s40 17.9092 40 40s-17.9092 40 -40 40zM416 272v32c0 6.62695 -5.37305 12 -12 12h-200
-c-6.62695 0 -12 -5.37305 -12 -12v-32c0 -6.62695 5.37305 -12 12 -12h200c6.62695 0 12 5.37305 12 12zM416 176v32c0 6.62695 -5.37305 12 -12 12h-200c-6.62695 0 -12 -5.37305 -12 -12v-32c0 -6.62695 5.37305 -12 12 -12h200c6.62695 0 12 5.37305 12 12zM416 80v32
-c0 6.62695 -5.37305 12 -12 12h-200c-6.62695 0 -12 -5.37305 -12 -12v-32c0 -6.62695 5.37305 -12 12 -12h200c6.62695 0 12 5.37305 12 12z" />
-    <glyph glyph-name="lock" unicode="&#xf023;" horiz-adv-x="448" 
-d="M400 224c26.5 0 48 -21.5 48 -48v-192c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v192c0 26.5 21.5 48 48 48h24v72c0 83.7998 68.2002 152 152 152s152 -68.2002 152 -152v-72h24zM296 224v72c0 39.7002 -32.2998 72 -72 72s-72 -32.2998 -72 -72v-72h144
-z" />
-    <glyph glyph-name="flag" unicode="&#xf024;" 
-d="M349.565 349.217c40.4951 0 82.6113 15.9062 116.949 31.8545c21.2168 9.85352 45.4854 -5.62305 45.4854 -29.0166v-243.1c0 -10.5264 -5.16016 -20.4072 -13.8428 -26.3584c-35.8379 -24.5635 -74.3359 -40.8574 -122.505 -40.8574
-c-67.373 0 -111.629 34.7832 -165.218 34.7832c-50.8525 0 -86.124 -10.0586 -114.435 -22.1221v-94.4004c0 -13.2549 -10.7451 -24 -24 -24h-16c-13.2549 0 -24 10.7451 -24 24v386.055c-14.5029 10.1201 -24 26.9189 -24 45.9453
-c0 31.7041 26.3447 57.2539 58.3379 55.9521c28.4678 -1.1582 51.7793 -23.9668 53.5508 -52.4033c0.0761719 -1.19141 0.0927734 -2.37305 0.0927734 -3.58301c0 -7.03711 -1.30176 -13.7734 -3.67871 -19.9785c20.7363 7.62891 43.0898 12.0127 68.0449 12.0127
-c67.373 0 111.63 -34.7832 165.218 -34.7832z" />
-    <glyph glyph-name="headphones" unicode="&#xf025;" 
-d="M256 416c141.504 0 256 -114.521 256 -256v-48c0 -12.5312 -7.1875 -23.3711 -17.6904 -28.6221l-14.3818 -7.19141c-2.01074 -60.0889 -51.3486 -108.187 -111.928 -108.187h-24c-13.2549 0 -24 10.7451 -24 24v176c0 13.2549 10.7451 24 24 24h24
-c31.3418 0 59.6709 -12.8789 80 -33.627v1.62695c0 105.869 -86.1309 192 -192 192s-192 -86.1309 -192 -192v-1.62695c20.3291 20.748 48.6582 33.627 80 33.627h24c13.2549 0 24 -10.7451 24 -24v-176c0 -13.2549 -10.7451 -24 -24 -24h-24
-c-60.5791 0 -109.917 48.0967 -111.928 108.187l-14.3828 7.19141c-10.502 5.25098 -17.6895 16.0908 -17.6895 28.6221v48c0 141.504 114.52 256 256 256z" />
-    <glyph glyph-name="volume-off" unicode="&#xf026;" horiz-adv-x="256" 
-d="M215 377c15 15 41 4.46973 41 -17v-336c0 -21.4697 -26 -32 -41 -17l-88.9404 89h-102.06c-13.2461 0 -24 10.7539 -24 24v144c0 13.2461 10.7539 24 24 24h102z" />
-    <glyph glyph-name="volume-down" unicode="&#xf027;" horiz-adv-x="384" 
-d="M215.03 375.96c15.0098 15 40.9697 4.49023 40.9697 -16.9795v-335.961c0 -21.4395 -25.9404 -32 -40.9697 -16.9697l-88.9707 88.9502h-102.06c-13.2598 0 -24 10.75 -24 24v144c0 13.2598 10.7402 24 24 24h102.06zM338.23 267.88
-c28.2393 -15.5498 45.7793 -44.9902 45.7793 -76.8701s-17.54 -61.3301 -45.7695 -76.8799c-11.5605 -6.34961 -26.1807 -2.20996 -32.6104 9.4502c-6.38965 11.6104 -2.16016 26.2002 9.4502 32.6104c12.9004 7.08984 20.9199 20.4297 20.9199 34.8096
-s-8.01953 27.7197 -20.9297 34.8203c-11.6104 6.41016 -15.8398 21 -9.4502 32.6094c6.41992 11.6104 21.0303 15.7803 32.6104 9.4502z" />
-    <glyph glyph-name="volume-up" unicode="&#xf028;" horiz-adv-x="576" 
-d="M215.03 376.95c15.0098 15.0098 40.9697 4.49023 40.9697 -16.9697v-335.961c0 -21.4395 -25.9404 -32 -40.9697 -16.9697l-88.9707 88.9502h-102.06c-13.2598 0 -24 10.75 -24 24v144c0 13.2598 10.7402 24 24 24h102.06zM448.35 428.03
-c79.9199 -52.46 127.65 -140.7 127.65 -236.03s-47.7305 -183.58 -127.65 -236.04c-11.5801 -7.61035 -26.4697 -3.75977 -33.5098 6.9502c-7.33984 11.1602 -4.21973 26.1797 6.9502 33.5c66.2695 43.4902 105.82 116.6 105.82 195.58
-c0 78.9795 -39.5508 152.09 -105.82 195.58c-11.1699 7.33008 -14.29 22.3398 -6.9502 33.5098c7.33008 11.1895 22.3398 14.2803 33.5098 6.9502zM480 192c0 -63.54 -32.0596 -121.94 -85.7695 -156.24c-12 -7.67969 -26.6104 -2.89941 -33.1201 7.45996
-c-7.09082 11.29 -3.78027 26.2207 7.40918 33.3604c39.75 25.3896 63.4805 68.5303 63.4805 115.42s-23.7305 90.0303 -63.4805 115.42c-11.1895 7.15039 -14.5 22.0801 -7.40918 33.3604c7.08984 11.2793 21.9297 14.5996 33.1201 7.45996
-c53.71 -34.2998 85.7695 -92.71 85.7695 -156.24zM338.23 268.87c28.2393 -15.54 45.7793 -44.9805 45.7793 -76.8604s-17.54 -61.3301 -45.7695 -76.8799c-11.5605 -6.34961 -26.1807 -2.20996 -32.6104 9.4502c-6.38965 11.6104 -2.16016 26.2002 9.4502 32.6104
-c12.9004 7.08984 20.9199 20.4297 20.9199 34.8096c0 14.3701 -8.01953 27.7197 -20.9297 34.8096c-11.6104 6.41016 -15.8398 21 -9.4502 32.6104c6.41992 11.6104 21.0303 15.7803 32.6104 9.4502z" />
-    <glyph glyph-name="qrcode" unicode="&#xf029;" horiz-adv-x="448" 
-d="M0 224v192h192v-192h-192zM64 352v-64h64v64h-64zM256 416h192v-192h-192v192zM384 288v64h-64v-64h64zM0 -32v192h192v-192h-192zM64 96v-64h64v64h-64zM416 160h32v-128h-96v32h-32v-96h-64v192h96v-32h64v32zM416 0h32v-32h-32v32zM352 0h32v-32h-32v32z" />
-    <glyph glyph-name="barcode" unicode="&#xf02a;" 
-d="M0 0v384h18v-384h-18zM26.8574 0.273438v383.727h9.14258v-383.727h-9.14258zM54 0.273438v383.727h8.85742v-383.727h-8.85742zM98.8574 0.273438v383.727h8.85645v-383.727h-8.85645zM134.857 0.273438v383.727h17.7139v-383.727h-17.7139zM179.714 0.273438v383.727
-h8.85742v-383.727h-8.85742zM197.714 0.273438v383.727h8.85742v-383.727h-8.85742zM215.714 0.273438v383.727h8.85742v-383.727h-8.85742zM251.429 0.273438v383.727h18v-383.727h-18zM296.286 0.273438v383.727h18v-383.727h-18zM332.285 0.273438v383.727h18.001
-v-383.727h-18.001zM368.286 0.273438v383.727h18.001v-383.727h-18.001zM395.143 0.273438v383.727h18v-383.727h-18zM440.286 0.273438v383.727h26.8564v-383.727h-26.8564zM476 0.273438v383.727h9.14258v-383.727h-9.14258zM494 0v384h18v-384h-18z" />
-    <glyph glyph-name="tag" unicode="&#xf02b;" 
-d="M0 195.882v204.118c0 26.5098 21.4902 48 48 48h204.118c13.2461 0 25.252 -5.37012 33.9404 -14.0586l211.883 -211.883c18.7441 -18.7441 18.7441 -49.1367 0 -67.8818l-204.118 -204.118c-18.7451 -18.7441 -49.1377 -18.7441 -67.8818 0l-211.883 211.883
-c-8.68848 8.68848 -14.0586 20.6943 -14.0586 33.9404zM112 384c-26.5098 0 -48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48s-21.4902 48 -48 48z" />
-    <glyph glyph-name="tags" unicode="&#xf02c;" horiz-adv-x="640" 
-d="M497.941 222.059c18.7441 -18.7441 18.7441 -49.1367 0 -67.8818l-204.118 -204.118c-18.7461 -18.7451 -49.1387 -18.7441 -67.8818 0l-211.883 211.883c-8.68848 8.68848 -14.0586 20.6943 -14.0586 33.9404v204.118c0 26.5098 21.4902 48 48 48h204.118
-c13.2461 0 25.252 -5.37012 33.9404 -14.0586zM112 288c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM625.941 154.177l-204.118 -204.118c-18.7451 -18.7441 -49.1377 -18.7441 -67.8818 0l-0.360352 0.360352
-l174.059 174.059c16.999 16.999 26.3604 39.6006 26.3604 63.6406s-9.3623 46.6406 -26.3604 63.6396l-196.242 196.242h48.7207c13.2461 0 25.252 -5.37012 33.9404 -14.0586l211.883 -211.883c18.7441 -18.7441 18.7441 -49.1367 0 -67.8818z" />
-    <glyph glyph-name="book" unicode="&#xf02d;" horiz-adv-x="448" 
-d="M448 88c0 -7.5 -3.5 -14.2998 -8.90039 -18.5996c-4.19922 -15.4004 -4.19922 -59.3008 0 -74.7002c5.40039 -4.40039 8.90039 -11.2002 8.90039 -18.7002v-16c0 -13.2998 -10.7002 -24 -24 -24h-328c-53 0 -96 43 -96 96v320c0 53 43 96 96 96h328
-c13.2998 0 24 -10.7002 24 -24v-336zM128 314v-20c0 -3.2998 2.7002 -6 6 -6h212c3.2998 0 6 2.7002 6 6v20c0 3.2998 -2.7002 6 -6 6h-212c-3.2998 0 -6 -2.7002 -6 -6zM128 250v-20c0 -3.2998 2.7002 -6 6 -6h212c3.2998 0 6 2.7002 6 6v20c0 3.2998 -2.7002 6 -6 6h-212
-c-3.2998 0 -6 -2.7002 -6 -6zM381.4 0c-1.90039 17.0996 -1.90039 46.9004 0 64h-285.4c-17.5996 0 -32 -14.4004 -32 -32c0 -17.7002 14.2998 -32 32 -32h285.4z" />
-    <glyph glyph-name="bookmark" unicode="&#xf02e;" horiz-adv-x="384" 
-d="M0 -64v464c0 26.5098 21.4902 48 48 48h288c26.5098 0 48 -21.4902 48 -48v-464l-192 112z" />
-    <glyph glyph-name="print" unicode="&#xf02f;" 
-d="M448 256c35.3496 0 64 -28.6504 64 -64v-112c0 -8.83984 -7.16016 -16 -16 -16h-48v-96c0 -17.6699 -14.3301 -32 -32 -32h-320c-17.6699 0 -32 14.3301 -32 32v96h-48c-8.83984 0 -16 7.16016 -16 16v112c0 35.3496 28.6504 64 64 64v160c0 17.6699 14.3301 32 32 32
-h274.74c8.49023 0 16.6299 -3.37012 22.6299 -9.37012l45.2598 -45.25c6 -6.00977 9.37012 -14.1396 9.37012 -22.6299v-114.75zM384 0v96h-256v-96h256zM384 224v96h-48c-8.83984 0 -16 7.16016 -16 16v48h-192v-160h256zM432 152c13.25 0 24 10.75 24 24
-c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" />
-    <glyph glyph-name="camera" unicode="&#xf030;" 
-d="M512 304v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h88l12.2998 32.9004c7 18.6992 24.9004 31.0996 44.9004 31.0996h125.5c20 0 37.8994 -12.4004 44.8994 -31.0996l12.4004 -32.9004h88c26.5 0 48 -21.5 48 -48zM376 160
-c0 66.2002 -53.7998 120 -120 120s-120 -53.7998 -120 -120s53.7998 -120 120 -120s120 53.7998 120 120zM344 160c0 -48.5 -39.5 -88 -88 -88s-88 39.5 -88 88s39.5 88 88 88s88 -39.5 88 -88z" />
-    <glyph glyph-name="font" unicode="&#xf031;" horiz-adv-x="448" 
-d="M432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h19.5801l-23.2998 64h-152.561l-23.2998 -64h19.5801c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h23.4102l130.71 362.31c4.29297 12.6133 16.2363 21.6904 30.293 21.6904h0.00683594h47.1602l-0.00292969 0.00683594c14.0576 0 26.0098 -9.08398 30.3027 -21.6973
-l130.71 -362.31h23.4102zM176.85 176h94.3008l-47.1504 129.49z" />
-    <glyph glyph-name="bold" unicode="&#xf032;" horiz-adv-x="384" 
-d="M333.49 210c34.4395 -27.54 55.5693 -71.1504 50.8301 -119.6c-6.86035 -70.6504 -70.2002 -122.4 -141 -122.4h-209.32c-8.83105 0 -16 7.16895 -16 16v48c0 8.83105 7.16895 16 16 16h31.8701v288h-31.8701c-8.83105 0 -16 7.16895 -16 16v48
-c0 8.83105 7.16895 16 16 16h199.42c74.5801 0 134.45 -64.4902 127.07 -140.79c-2.43945 -24.5273 -12.1992 -47.1309 -27 -65.21zM145.66 336v-96h87.7598c26.4922 0 48 21.5078 48 48s-21.5078 48 -48 48h-87.7598zM233.42 48c30.9072 0 56 25.0928 56 56
-s-25.0928 56 -56 56h-87.7598v-112h87.7598z" />
-    <glyph glyph-name="italic" unicode="&#xf033;" horiz-adv-x="320" 
-d="M320 400v-32c0 -8.83105 -7.16895 -16 -16 -16h-62.7598l-80 -320h46.7598c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-192c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h62.7598l80 320h-46.7598
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h192c8.83105 0 16 -7.16895 16 -16z" />
-    <glyph glyph-name="text-height" unicode="&#xf034;" horiz-adv-x="576" 
-d="M304 416c8.83105 0 16 -7.16895 16 -16v-96c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32h-56v-304h40c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-160c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h40v304h-56v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v96c0 8.83105 7.16895 16 16 16h288zM560 80c15.6396 0 20.6396 -18 11.3096 -27.3096l-80 -80c-2.89551 -2.89453 -6.89844 -4.68555 -11.3115 -4.68555
-c-4.41406 0 -8.41211 1.79102 -11.3076 4.68555l-80 80c-10.0107 10 -3 27.3096 11.3096 27.3096h48v224h-48c-15.6396 0 -20.6396 18 -11.3096 27.3096l80 80c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555c4.41406 0 8.41211 -1.79102 11.3076 -4.68555l80 -80
-c10.0205 -10 3 -27.3096 -11.3096 -27.3096h-48v-224h48z" />
-    <glyph glyph-name="text-width" unicode="&#xf035;" horiz-adv-x="448" 
-d="M432 416c8.83105 0 16 -7.16895 16 -16v-80c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v16h-120v-112h24c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h24v112h-120v-16c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v80c0 8.83105 7.16895 16 16 16h416zM363.31 155.31l80 -80c2.89453 -2.89551 4.68555 -6.89844 4.68555 -11.3115
-c0 -4.41406 -1.79102 -8.41211 -4.68555 -11.3076l-80 -80c-10 -10.0205 -27.3096 -3 -27.3096 11.3096v48h-224v-48c0 -15.6396 -18 -20.6396 -27.3096 -11.3096l-80 80c-2.89453 2.89551 -4.68555 6.89844 -4.68555 11.3115c0 4.41406 1.79102 8.41211 4.68555 11.3076
-l80 80c10 10.0107 27.3096 3 27.3096 -11.3096v-48h224v48c0 15.6396 18 20.6396 27.3096 11.3096z" />
-    <glyph glyph-name="align-left" unicode="&#xf036;" horiz-adv-x="448" 
-d="M12.8301 96c-7.07617 0 -12.8301 5.74414 -12.8301 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h262.34h0.00976562c7.07617 0 12.8203 -5.74414 12.8203 -12.8193v-0.0107422v-38.3398v-0.00976562
-c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-262.34zM12.8301 352c-7.07617 0 -12.8301 5.74414 -12.8301 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h262.34h0.00976562
-c7.07617 0 12.8203 -5.74414 12.8203 -12.8193v-0.0107422v-38.3398v-0.00976562c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-262.34zM432 288c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h416zM432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416z" />
-    <glyph glyph-name="align-center" unicode="&#xf037;" horiz-adv-x="448" 
-d="M432 288c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416zM432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16
-v32c0 8.83105 7.16895 16 16 16h416zM108.1 352c-6.67773 0 -12.0996 5.42188 -12.0996 12.0996v39.8105c0 6.67285 5.41699 12.0898 12.0898 12.0898h0.00976562h231.811c6.67285 0 12.0898 -5.41699 12.0898 -12.0898v-39.8105v-0.00976562
-c0 -6.67285 -5.41699 -12.0898 -12.0898 -12.0898h-231.811zM339.91 96h-231.811c-6.67773 0 -12.0996 5.42188 -12.0996 12.0996v39.8105c0 6.67285 5.41699 12.0898 12.0898 12.0898h0.00976562h231.811c6.67285 0 12.0898 -5.41699 12.0898 -12.0898v-39.8105
-v-0.00976562c0 -6.67285 -5.41699 -12.0898 -12.0898 -12.0898z" />
-    <glyph glyph-name="align-right" unicode="&#xf038;" horiz-adv-x="448" 
-d="M16 224c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416zM432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16
-v32c0 8.83105 7.16895 16 16 16h416zM435.17 416c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-262.34h-0.00976562c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193
-v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h262.34zM435.17 160c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-262.34h-0.00976562
-c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h262.34z" />
-    <glyph glyph-name="align-justify" unicode="&#xf039;" horiz-adv-x="448" 
-d="M432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416zM432 160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16
-v32c0 8.83105 7.16895 16 16 16h416zM432 288c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416zM432 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16
-h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416z" />
-    <glyph glyph-name="list" unicode="&#xf03a;" 
-d="M80 80c8.83105 0 16 -7.16895 16 -16v-64c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v64c0 8.83105 7.16895 16 16 16h64zM80 400c8.83105 0 16 -7.16895 16 -16v-64c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v64
-c0 8.83105 7.16895 16 16 16h64zM80 240c8.83105 0 16 -7.16895 16 -16v-64c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v64c0 8.83105 7.16895 16 16 16h64zM496 64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 384c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 224c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320z" />
-    <glyph glyph-name="outdent" unicode="&#xf03b;" horiz-adv-x="448" 
-d="M100.69 84.71l-96 95.9805c-2.89453 2.89551 -4.68555 6.89844 -4.68555 11.3115c0 4.41406 1.79102 8.41211 4.68555 11.3076l96 96c9.97949 10 27.3096 3.01074 27.3096 -11.3096v-191.98c0 -14.2393 -17.3096 -21.3096 -27.3096 -11.3096zM432 32
-c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416zM435.17 160c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562
-c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-230.34h-0.00976562c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h230.34zM435.17 288
-c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-230.34h-0.00976562c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193v0.0107422v38.3398v0.00976562
-c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h230.34zM432 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416z" />
-    <glyph glyph-name="indent" unicode="&#xf03c;" horiz-adv-x="448" 
-d="M27.3096 84.7002c-9.97949 -10 -27.3096 -3.00977 -27.3096 11.2998v192c0 14.2197 17.2695 21.3398 27.3096 11.3203l96 -96c2.89453 -2.89648 4.68555 -6.89941 4.68555 -11.3125s-1.79102 -8.41211 -4.68555 -11.3076zM432 32c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416zM435.17 160c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422
-h-230.34h-0.00976562c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h230.34zM435.17 288c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562
-c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-230.34h-0.00976562c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h230.34zM432 416c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416z" />
-    <glyph glyph-name="video" unicode="&#xf03d;" horiz-adv-x="576" 
-d="M336.2 384c26.3994 0 47.7998 -21.4004 47.7998 -47.7998v-288.4c0 -26.3994 -21.4004 -47.7998 -47.7998 -47.7998h-288.4c-26.3994 0 -47.7998 21.4004 -47.7998 47.7998v288.4c0 26.3994 21.4004 47.7998 47.7998 47.7998h288.4zM525.6 346.3
-c21.3008 14.6006 50.4004 -0.399414 50.4004 -25.7998v-256.9c0 -25.5 -29.2002 -40.3994 -50.4004 -25.7998l-109.6 75.5v157.4z" />
-    <glyph glyph-name="image" unicode="&#xf03e;" 
-d="M464 0h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h416c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48zM112 328c-30.9277 0 -56 -25.0723 -56 -56s25.0723 -56 56 -56s56 25.0723 56 56s-25.0723 56 -56 56zM64 64h384
-v112l-87.5146 87.5146c-4.68652 4.68652 -12.2842 4.68652 -16.9717 0l-135.514 -135.515l-55.5146 55.5146c-4.68652 4.68652 -12.2842 4.68652 -16.9717 0l-71.5137 -71.5146v-48z" />
-    <glyph glyph-name="map-marker" unicode="&#xf041;" horiz-adv-x="384" 
-d="M172.268 -53.6699c-145.298 210.639 -172.268 232.257 -172.268 309.67c0 106.039 85.9609 192 192 192s192 -85.9609 192 -192c0 -77.4131 -26.9697 -99.0312 -172.268 -309.67c-9.53516 -13.7744 -29.9307 -13.7734 -39.4648 0z" />
-    <glyph glyph-name="adjust" unicode="&#xf042;" 
-d="M8 192c0 136.967 111.034 248 248 248s248 -111.034 248 -248s-111.033 -248 -248 -248s-248 111.034 -248 248zM256 8c101.689 0 184 82.2949 184 184c0 101.689 -82.2949 184 -184 184v-368z" />
-    <glyph glyph-name="tint" unicode="&#xf043;" horiz-adv-x="352" 
-d="M205.22 425.91c46.9902 -158.48 146.78 -200.07 146.78 -311.82c0 -98.4395 -78.7197 -178.09 -176 -178.09s-176 79.6504 -176 178.09c0 111.19 100.01 154.061 146.78 311.82c9 30.1201 50.5 28.7803 58.4395 0zM176 0c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16
-c-44.1104 0 -80 35.8896 -80 80c0 8.83984 -7.16016 16 -16 16s-16 -7.16016 -16 -16c0 -61.75 50.25 -112 112 -112z" />
-    <glyph glyph-name="edit" unicode="&#xf044;" horiz-adv-x="576" 
-d="M402.6 364.8l90.2002 -90.2002c3.7998 -3.7998 3.7998 -10 0 -13.7998l-218.399 -218.399l-92.8008 -10.3008c-12.3994 -1.39941 -22.8994 9.10059 -21.5 21.5l10.3008 92.8008l218.399 218.399c3.7998 3.7998 10 3.7998 13.7998 0zM564.6 387.7
-c15.2002 -15.2002 15.2002 -39.9004 0 -55.2002l-35.3994 -35.4004c-3.7998 -3.7998 -10 -3.7998 -13.7998 0l-90.2002 90.2002c-3.7998 3.7998 -3.7998 10 0 13.7998l35.3994 35.4004c15.3008 15.2002 40 15.2002 55.2002 0zM384 101.8c0 3.2002 1.2998 6.2002 3.5 8.5
-l40 40c7.59961 7.5 20.5 2.2002 20.5 -8.5v-157.8c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h285.8c10.7002 0 16.1006 -12.9004 8.5 -20.5l-40 -40c-2.2998 -2.2002 -5.2998 -3.5 -8.5 -3.5h-229.8v-320h320v101.8z" />
-    <glyph glyph-name="step-backward" unicode="&#xf048;" horiz-adv-x="448" 
-d="M64 -20v424c0 6.59961 5.40039 12 12 12h48c6.59961 0 12 -5.40039 12 -12v-176.4l195.5 181c20.5996 17.1006 52.5 2.80078 52.5 -24.5996v-384c0 -27.4004 -31.9004 -41.7002 -52.5 -24.5996l-195.5 179.899v-175.3c0 -6.59961 -5.40039 -12 -12 -12h-48
-c-6.59961 0 -12 5.40039 -12 12z" />
-    <glyph glyph-name="fast-backward" unicode="&#xf049;" 
-d="M0 12v360c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-151.9l171.5 156.5c20.5996 17.1006 52.5 2.80078 52.5 -24.5996v-131.9l171.5 156.5c20.5996 17.1006 52.5 2.80078 52.5 -24.5996v-320c0 -27.4004 -31.9004 -41.7002 -52.5 -24.5996
-l-171.5 155.3v-130.7c0 -27.4004 -31.9004 -41.7002 -52.5 -24.5996l-171.5 155.3v-150.7c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12z" />
-    <glyph glyph-name="backward" unicode="&#xf04a;" 
-d="M11.5 167.4c-15.2998 12.7998 -15.2998 36.3994 0 49.1992l192 160c20.5996 17.2002 52.5 2.80078 52.5 -24.5996v-320c0 -27.4004 -31.9004 -41.7998 -52.5 -24.5996zM267.5 167.4c-15.2998 12.7998 -15.2998 36.3994 0 49.1992l192 160
-c20.5996 17.2002 52.5 2.80078 52.5 -24.5996v-320c0 -27.4004 -31.9004 -41.7998 -52.5 -24.5996z" />
-    <glyph glyph-name="play" unicode="&#xf04b;" horiz-adv-x="448" 
-d="M424.4 233.3c31.5 -18.5 31.3994 -64.0996 0 -82.5996l-352 -208c-31.7002 -18.7998 -72.4004 3.7998 -72.4004 41.2998v416.1c0 41.8008 43.7998 58.2002 72.4004 41.3008z" />
-    <glyph glyph-name="pause" unicode="&#xf04c;" horiz-adv-x="448" 
-d="M144 -31h-96c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48zM448 17c0 -26.5 -21.5 -48 -48 -48h-96c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48 -21.5 48 -48v-352z" />
-    <glyph glyph-name="stop" unicode="&#xf04d;" horiz-adv-x="448" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352z" />
-    <glyph glyph-name="forward" unicode="&#xf04e;" 
-d="M500.5 216.6c15.2998 -12.7998 15.2998 -36.3994 0 -49.1992l-192 -160c-20.5996 -17.2002 -52.5 -2.80078 -52.5 24.5996v320c0 27.4004 31.9004 41.7002 52.5 24.5996zM244.5 216.6c15.2998 -12.7998 15.2998 -36.3994 0 -49.1992l-192 -160
-c-20.5996 -17.2002 -52.5 -2.80078 -52.5 24.5996v320c0 27.4004 31.9004 41.7002 52.5 24.5996z" />
-    <glyph glyph-name="fast-forward" unicode="&#xf050;" 
-d="M512 372v-360c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v151.9l-171.5 -156.5c-20.5996 -17.2002 -52.5 -2.80078 -52.5 24.5996v131.9l-171.5 -156.5c-20.5996 -17.2002 -52.5 -2.80078 -52.5 24.5996v320
-c0 27.4004 31.9004 41.7002 52.5 24.5996l171.5 -155.399v130.8c0 27.4004 31.9004 41.7002 52.5 24.5996l171.5 -155.399v150.8c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12z" />
-    <glyph glyph-name="step-forward" unicode="&#xf051;" horiz-adv-x="448" 
-d="M384 404v-424c0 -6.59961 -5.40039 -12 -12 -12h-48c-6.59961 0 -12 5.40039 -12 12v176.4l-195.5 -181c-20.5996 -17.1006 -52.5 -2.80078 -52.5 24.5996v384c0 27.4004 31.9004 41.7002 52.5 24.5996l195.5 -179.899v175.3c0 6.59961 5.40039 12 12 12h48
-c6.59961 0 12 -5.40039 12 -12z" />
-    <glyph glyph-name="eject" unicode="&#xf052;" horiz-adv-x="448" 
-d="M448 64v-64c0 -17.6729 -14.3271 -32 -32 -32h-384c-17.6729 0 -32 14.3271 -32 32v64c0 17.6729 14.3271 32 32 32h384c17.6729 0 32 -14.3271 32 -32zM48.0527 128c-41.7285 0 -63.5273 49.7324 -35.3828 80.4346l175.946 192.008
-c19.0156 20.7432 51.7529 20.7422 70.7666 0l175.939 -192.008c28.1973 -30.7607 6.26758 -80.4346 -35.3828 -80.4346h-351.887z" />
-    <glyph glyph-name="chevron-left" unicode="&#xf053;" horiz-adv-x="320" 
-d="M34.5195 208.97l194.351 194.34c9.37012 9.37012 24.5703 9.37012 33.9395 0l22.6709 -22.6699c9.35938 -9.35938 9.36914 -24.5195 0.0390625 -33.8994l-154.029 -154.74l154.02 -154.75c9.33984 -9.37988 9.32031 -24.54 -0.0400391 -33.9004l-22.6699 -22.6699
-c-9.37012 -9.37012 -24.5693 -9.37012 -33.9395 0l-194.341 194.351c-9.36914 9.37012 -9.36914 24.5693 0 33.9395z" />
-    <glyph glyph-name="chevron-right" unicode="&#xf054;" horiz-adv-x="320" 
-d="M285.476 175.029l-194.344 -194.344c-9.37305 -9.37207 -24.5684 -9.37207 -33.9404 0l-22.667 22.667c-9.35742 9.35742 -9.375 24.5225 -0.0400391 33.9014l154.021 154.746l-154.021 154.745c-9.33496 9.37891 -9.31738 24.5439 0.0400391 33.9014l22.667 22.667
-c9.37305 9.37207 24.5684 9.37207 33.9404 0l194.343 -194.344c9.37305 -9.37207 9.37305 -24.5674 0.000976562 -33.9404z" />
-    <glyph glyph-name="plus-circle" unicode="&#xf055;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM400 164v56c0 6.59961 -5.40039 12 -12 12h-92v92c0 6.59961 -5.40039 12 -12 12h-56c-6.59961 0 -12 -5.40039 -12 -12v-92h-92c-6.59961 0 -12 -5.40039 -12 -12v-56
-c0 -6.59961 5.40039 -12 12 -12h92v-92c0 -6.59961 5.40039 -12 12 -12h56c6.59961 0 12 5.40039 12 12v92h92c6.59961 0 12 5.40039 12 12z" />
-    <glyph glyph-name="minus-circle" unicode="&#xf056;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM124 152h264c6.59961 0 12 5.40039 12 12v56c0 6.59961 -5.40039 12 -12 12h-264c-6.59961 0 -12 -5.40039 -12 -12v-56c0 -6.59961 5.40039 -12 12 -12z" />
-    <glyph glyph-name="times-circle" unicode="&#xf057;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM377.6 126.9l-65.5996 65.0996l65.7002 65c4.7002 4.7002 4.7002 12.2998 0 17l-39.6006 39.5996c-4.69922 4.7002 -12.2998 4.7002 -17 0l-65.0996 -65.5996l-65 65.7002
-c-4.7002 4.7002 -12.2998 4.7002 -17 0l-39.5996 -39.6006c-4.7002 -4.69922 -4.7002 -12.2998 0 -17l65.5996 -65.0996l-65.5996 -65c-4.7002 -4.7002 -4.7002 -12.2998 0 -17l39.5 -39.5996c4.69922 -4.7002 12.2998 -4.7002 17 0l65.0996 65.5996l65 -65.5996
-c4.7002 -4.7002 12.2998 -4.7002 17 0l39.5996 39.5c4.7002 4.69922 4.7002 12.2998 0 17z" />
-    <glyph glyph-name="check-circle" unicode="&#xf058;" 
-d="M504 192c0 -136.967 -111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248s248 -111.033 248 -248zM227.314 60.6855l184 184c6.24707 6.24805 6.24707 16.3799 0 22.6279l-22.6279 22.627c-6.24707 6.24902 -16.3789 6.24902 -22.6279 0
-l-150.059 -150.059l-70.0586 70.0596c-6.24805 6.24805 -16.3799 6.24805 -22.6279 0l-22.6279 -22.627c-6.24707 -6.24805 -6.24707 -16.3799 0 -22.6279l104 -104c6.24902 -6.24805 16.3799 -6.24805 22.6289 -0.000976562z" />
-    <glyph glyph-name="question-circle" unicode="&#xf059;" 
-d="M504 192c0 -136.997 -111.043 -248 -248 -248s-248 111.003 -248 248c0 136.917 111.043 248 248 248s248 -111.083 248 -248zM262.655 358c-54.4971 0 -89.2549 -22.957 -116.549 -63.7578c-3.53613 -5.28613 -2.35352 -12.415 2.71484 -16.2578l34.6982 -26.3105
-c5.20508 -3.94727 12.6211 -3.00781 16.665 2.12207c17.8643 22.6582 30.1133 35.7969 57.3037 35.7969c20.4287 0 45.6973 -13.1475 45.6973 -32.958c0 -14.9756 -12.3623 -22.667 -32.5332 -33.9756c-23.5244 -13.1875 -54.6523 -29.6006 -54.6523 -70.6592v-4
-c0 -6.62695 5.37305 -12 12 -12h56c6.62695 0 12 5.37305 12 12v1.33301c0 28.4619 83.1855 29.6475 83.1855 106.667c0 58.002 -60.1641 102 -116.53 102zM256 110c-25.3652 0 -46 -20.6348 -46 -46c0 -25.3643 20.6348 -46 46 -46s46 20.6357 46 46
-c0 25.3652 -20.6348 46 -46 46z" />
-    <glyph glyph-name="info-circle" unicode="&#xf05a;" 
-d="M256 440c136.957 0 248 -111.083 248 -248c0 -136.997 -111.043 -248 -248 -248s-248 111.003 -248 248c0 136.917 111.043 248 248 248zM256 330c-23.1963 0 -42 -18.8037 -42 -42s18.8037 -42 42 -42s42 18.8037 42 42s-18.8037 42 -42 42zM312 76v24
-c0 6.62695 -5.37305 12 -12 12h-12v100c0 6.62695 -5.37305 12 -12 12h-64c-6.62695 0 -12 -5.37305 -12 -12v-24c0 -6.62695 5.37305 -12 12 -12h12v-64h-12c-6.62695 0 -12 -5.37305 -12 -12v-24c0 -6.62695 5.37305 -12 12 -12h88c6.62695 0 12 5.37305 12 12z" />
-    <glyph glyph-name="crosshairs" unicode="&#xf05b;" 
-d="M500 224c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-30.3643c-13.9121 -93.6748 -87.9609 -167.724 -181.636 -181.636v-30.3643c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v30.3643
-c-93.6748 13.9121 -167.724 87.9609 -181.636 181.636h-30.3643c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h30.3643c13.9121 93.6748 87.9609 167.724 181.636 181.636v30.3643c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-30.3643
-c93.6748 -13.9121 167.724 -87.9609 181.636 -181.636h30.3643zM288 43.3662c58.2432 12.417 104.232 58.46 116.634 116.634h-40.6338c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40.6338c-12.417 58.2432 -58.46 104.232 -116.634 116.634v-40.6338
-c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40.6338c-58.2432 -12.417 -104.232 -58.46 -116.634 -116.634h40.6338c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-40.6338
-c12.417 -58.2432 58.46 -104.232 116.634 -116.634v40.6338c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40.6338zM288 192c0 -17.6729 -14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32s32 -14.3271 32 -32z" />
-    <glyph glyph-name="ban" unicode="&#xf05e;" 
-d="M256 440c136.967 0 248 -111.034 248 -248s-111.034 -248 -248 -248s-248 111.033 -248 248s111.034 248 248 248zM386.108 322.108c-65.4121 65.4102 -165.435 70.0312 -235.639 20.6758l256.315 -256.313c49.3232 70.1562 44.7705 170.189 -20.6768 235.638z
-M125.892 61.8916c65.4121 -65.4111 165.436 -70.0312 235.639 -20.6758l-256.315 256.313c-49.3232 -70.1562 -44.7705 -170.189 20.6768 -235.638z" />
-    <glyph glyph-name="arrow-left" unicode="&#xf060;" horiz-adv-x="448" 
-d="M257.5 2.90039l-22.2002 -22.2002c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-194.4 194.3c-9.40039 9.40039 -9.40039 24.5996 0 33.9004l194.4 194.399c9.39941 9.40039 24.5996 9.40039 33.8994 0l22.2002 -22.2002c9.5 -9.5 9.2998 -25 -0.400391 -34.2998
-l-120.5 -114.8h287.4c13.2998 0 24 -10.7002 24 -24v-32c0 -13.2998 -10.7002 -24 -24 -24h-287.4l120.5 -114.8c9.80078 -9.2998 10 -24.7998 0.400391 -34.2998z" />
-    <glyph glyph-name="arrow-right" unicode="&#xf061;" horiz-adv-x="448" 
-d="M190.5 381.1l22.2002 22.2002c9.39941 9.40039 24.5996 9.40039 33.8994 0l194.4 -194.3c9.40039 -9.40039 9.40039 -24.5996 0 -33.9004l-194.4 -194.399c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-22.2002 22.2002c-9.5 9.5 -9.2998 25 0.400391 34.2998
-l120.5 114.8h-287.4c-13.2998 0 -24 10.7002 -24 24v32c0 13.2998 10.7002 24 24 24h287.4l-120.5 114.8c-9.80078 9.2998 -10 24.7998 -0.400391 34.2998z" />
-    <glyph glyph-name="arrow-up" unicode="&#xf062;" horiz-adv-x="448" 
-d="M34.9004 158.5l-22.2002 22.2002c-9.40039 9.39941 -9.40039 24.5996 0 33.8994l194.3 194.4c9.40039 9.40039 24.5996 9.40039 33.9004 0l194.3 -194.3c9.39941 -9.40039 9.39941 -24.6006 0 -33.9004l-22.2002 -22.2002c-9.5 -9.5 -25 -9.2998 -34.2998 0.400391
-l-114.7 120.4v-287.4c0 -13.2998 -10.7002 -24 -24 -24h-32c-13.2998 0 -24 10.7002 -24 24v287.4l-114.8 -120.5c-9.2998 -9.80078 -24.7998 -10 -34.2998 -0.400391z" />
-    <glyph glyph-name="arrow-down" unicode="&#xf063;" horiz-adv-x="448" 
-d="M413.1 225.5l22.2002 -22.2002c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-194.3 -194.4c-9.40039 -9.40039 -24.5996 -9.40039 -33.9004 0l-194.399 194.4c-9.40039 9.39941 -9.40039 24.5996 0 33.8994l22.2002 22.2002c9.5 9.5 25 9.2998 34.2998 -0.400391
-l114.8 -120.5v287.4c0 13.2998 10.7002 24 24 24h32c13.2998 0 24 -10.7002 24 -24v-287.4l114.8 120.5c9.2998 9.80078 24.7998 10 34.2998 0.400391z" />
-    <glyph glyph-name="share" unicode="&#xf064;" 
-d="M503.691 258.164c11.0859 -9.5752 11.0703 -26.7656 0 -36.3281l-176.005 -152c-15.3867 -13.2891 -39.6865 -2.53613 -39.6865 18.1641v87.915c-155.083 -2.23145 -221.934 -40.7295 -176.59 -185.742c5.03418 -16.0977 -14.4238 -28.5615 -28.0771 -18.6309
-c-43.752 31.8232 -83.333 92.6914 -83.333 154.132c0 152.227 127.371 184.419 288 186.258v80.0537c0 20.668 24.2812 31.4688 39.6865 18.1641z" />
-    <glyph glyph-name="expand" unicode="&#xf065;" horiz-adv-x="448" 
-d="M0 268v124c0 13.2998 10.7002 24 24 24h124c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-84v-84c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12zM288 404c0 6.59961 5.40039 12 12 12h124c13.2998 0 24 -10.7002 24 -24
-v-124c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v84h-84c-6.59961 0 -12 5.40039 -12 12v40zM436 128c6.59961 0 12 -5.40039 12 -12v-124c0 -13.2998 -10.7002 -24 -24 -24h-124c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h84
-v84c0 6.59961 5.40039 12 12 12h40zM160 -20c0 -6.59961 -5.40039 -12 -12 -12h-124c-13.2998 0 -24 10.7002 -24 24v124c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-84h84c6.59961 0 12 -5.40039 12 -12v-40z" />
-    <glyph glyph-name="compress" unicode="&#xf066;" horiz-adv-x="448" 
-d="M436 256h-124c-13.2998 0 -24 10.7002 -24 24v124c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-84h84c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12zM160 280c0 -13.2998 -10.7002 -24 -24 -24h-124
-c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h84v84c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-124zM160 -20c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v84h-84c-6.59961 0 -12 5.40039 -12 12v40
-c0 6.59961 5.40039 12 12 12h124c13.2998 0 24 -10.7002 24 -24v-124zM352 -20c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v124c0 13.2998 10.7002 24 24 24h124c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-84v-84z" />
-    <glyph glyph-name="plus" unicode="&#xf067;" horiz-adv-x="448" 
-d="M416 240c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32h-144v-144c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v144h-144c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h144v144
-c0 17.6699 14.3301 32 32 32h32c17.6699 0 32 -14.3301 32 -32v-144h144z" />
-    <glyph glyph-name="minus" unicode="&#xf068;" horiz-adv-x="448" 
-d="M416 240c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32h-384c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h384z" />
-    <glyph glyph-name="asterisk" unicode="&#xf069;" 
-d="M478.21 113.907c11.7949 -6.47754 15.96 -21.3828 9.23242 -33.0361l-19.4805 -33.7412c-6.72754 -11.6533 -21.7207 -15.499 -33.2266 -8.52246l-138.735 84.1104l3.47559 -162.204c0.288086 -13.4531 -10.5391 -24.5137 -23.9941 -24.5137h-38.9619
-c-13.4551 0 -24.2822 11.0605 -23.9941 24.5137l3.47461 162.204l-138.735 -84.1113c-11.5059 -6.97656 -26.499 -3.13086 -33.2266 8.52246l-19.4805 33.7412c-6.72852 11.6533 -2.5625 26.5596 9.23242 33.0371l142.21 78.0928l-142.209 78.0918
-c-11.7949 6.47754 -15.9609 21.3838 -9.2334 33.0371l19.4805 33.7412c6.72754 11.6533 21.7207 15.499 33.2266 8.52246l138.735 -84.1104l-3.47363 162.204c-0.289062 13.4531 10.5381 24.5137 23.9932 24.5137h38.9609c13.4561 0 24.2822 -11.0605 23.9941 -24.5137
-l-3.47461 -162.204l138.735 84.1113c11.5068 6.97656 26.499 3.13086 33.2266 -8.52246l19.4805 -33.7412c6.72852 -11.6533 2.5625 -26.5596 -9.23242 -33.0371l-142.21 -78.0928z" />
-    <glyph glyph-name="exclamation-circle" unicode="&#xf06a;" 
-d="M504 192c0 -136.997 -111.043 -248 -248 -248s-248 111.003 -248 248c0 136.917 111.043 248 248 248s248 -111.083 248 -248zM256 142c-25.4053 0 -46 -20.5947 -46 -46s20.5947 -46 46 -46s46 20.5947 46 46s-20.5947 46 -46 46zM212.327 307.346l7.41797 -136
-c0.34668 -6.36328 5.6084 -11.3457 11.9814 -11.3457h48.5469c6.37305 0 11.6348 4.98242 11.9814 11.3457l7.41797 136c0.375 6.87402 -5.09766 12.6543 -11.9814 12.6543h-63.3838c-6.88379 0 -12.3555 -5.78027 -11.9805 -12.6543z" />
-    <glyph glyph-name="gift" unicode="&#xf06b;" 
-d="M32 0v128h192v-160h-160c-17.7002 0 -32 14.2998 -32 32zM288 -32v160h192v-128c0 -17.7002 -14.2998 -32 -32 -32h-160zM480 288c17.7002 0 32 -14.2998 32 -32v-80c0 -8.7998 -7.2002 -16 -16 -16h-480c-8.7998 0 -16 7.2002 -16 16v80c0 17.7002 14.2998 32 32 32
-h44.0996c-6.2998 12.0996 -10.0996 25.5 -10.0996 40c0 48.5 39.5 88 88 88c41.5996 0 68.5 -21.2998 103 -68.2998c34.5 47 61.4004 68.2998 103 68.2998c48.5 0 88 -39.5 88 -88c0 -14.5 -3.90039 -27.9004 -10.0996 -40h42.0996zM153.9 288h86.0996
-c-51.5 76.7002 -66.2002 80 -86.0996 80c-22.1006 0 -40 -17.9004 -40 -40s17.8994 -40 40 -40zM360 288c22.0996 0 40 17.9004 40 40s-17.9004 40 -40 40c-20.4004 0 -34.7002 -3.5 -86.0996 -80h86.0996z" />
-    <glyph glyph-name="leaf" unicode="&#xf06c;" horiz-adv-x="576" 
-d="M546.2 438.3c19 -42.3994 29.7998 -94.3994 29.7998 -144.6c0 -172.4 -110.5 -313.2 -267.5 -324.601c-80.9004 -8.59961 -142.5 33.3008 -174.9 77.2002c-51 -42.7002 -70.3994 -87 -71.8994 -90.5996c-6.7998 -16.2002 -25.4004 -24.1006 -41.7998 -17.2998
-c-16.3008 6.69922 -24.1006 25.2998 -17.5 41.5996c23.5996 57.9004 130.199 212 381.6 212c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16c-130.6 0 -222.7 -38.7998 -286.5 -84.5c-0.700195 6.7998 -1.5 13.5 -1.5 20.5c0 106 86 192 192 192h80
-c63.4004 0 118.9 33.5996 149.9 87.5c6.69922 11.7998 22.6992 11.2998 28.2998 -1.2002z" />
-    <glyph glyph-name="fire" unicode="&#xf06d;" horiz-adv-x="384" 
-d="M216 424.14c0 -103.14 168 -125.85 168 -296.14c0 -105.87 -86.1299 -192 -192 -192s-192 86.1299 -192 192c0 58.6699 27.7998 106.84 54.5703 134.96c14.96 15.7305 41.4297 5.2002 41.4297 -16.5v-85.5098c0 -35.1699 27.9805 -64.4902 63.1504 -64.9404
-c35.7393 -0.469727 64.8496 28.3604 64.8496 63.9902c0 88 -176 96.1504 -52.1504 277.18c13.5 19.7305 44.1504 10.7607 44.1504 -13.04z" />
-    <glyph glyph-name="eye" unicode="&#xf06e;" horiz-adv-x="576" 
-d="M572.52 206.6c2.21387 -4.37793 3.46094 -9.38965 3.46094 -14.626c0 -5.2373 -1.24707 -10.1855 -3.46094 -14.5635c-54.1992 -105.771 -161.59 -177.41 -284.52 -177.41s-230.29 71.5898 -284.52 177.4c-2.21387 4.37793 -3.46094 9.38965 -3.46094 14.626
-c0 5.2373 1.24707 10.1855 3.46094 14.5635c54.1992 105.771 161.59 177.41 284.52 177.41s230.29 -71.5898 284.52 -177.4zM288 48c0.0234375 0 0.0458984 -0.000976562 0.0703125 -0.000976562c79.4365 0 143.93 64.4922 143.93 143.93v0.0712891
-c0 79.4756 -64.5244 144 -144 144s-144 -64.5244 -144 -144s64.5244 -144 144 -144zM288 288c0.0761719 0 0.160156 -0.0273438 0.237305 -0.0273438c52.8623 0 95.7803 -42.917 95.7803 -95.7793s-42.918 -95.7803 -95.7803 -95.7803s-95.7803 42.918 -95.7803 95.7803
-c0 8.68945 1.16016 17.1104 3.33301 25.1162c7.93164 -5.83594 17.7432 -9.26758 28.3359 -9.26758c26.4092 0 47.8496 21.4404 47.8496 47.8496c0 10.5938 -3.44922 20.3867 -9.28516 28.3184c8.0459 2.34277 16.541 3.66797 25.3096 3.79004z" />
-    <glyph glyph-name="eye-slash" unicode="&#xf070;" horiz-adv-x="640" 
-d="M320 48c8.91309 0.0830078 17.542 0.976562 26 2.61035l51.8896 -40.1504c-25.0195 -6.45996 -50.9795 -10.46 -77.8896 -10.46c-122.93 0 -230.29 71.5898 -284.52 177.4c-2.21387 4.37793 -3.46094 9.38965 -3.46094 14.626c0 5.2373 1.24707 10.1855 3.46094 14.5635
-c10.2393 20 22.9297 38.29 36.7197 55.5898l104.899 -81.0693c5.65039 -74.4004 67.0508 -133.11 142.9 -133.11zM633.82 -10.0996c3.76855 -2.92871 6.17676 -7.50977 6.17676 -12.6475c0 -3.69238 -1.25293 -7.09375 -3.35742 -9.80273l-19.6396 -25.2705
-c-2.92871 -3.76855 -7.50879 -6.17578 -12.6465 -6.17578c-3.69727 0 -7.10254 1.25684 -9.81348 3.36621l-588.36 454.729c-3.76562 2.92871 -6.1709 7.50781 -6.1709 12.6426c0 3.69434 1.25488 7.09863 3.36133 9.80762l19.6299 25.2705
-c2.92871 3.76855 7.50879 6.17578 12.6465 6.17578c3.69727 0 7.10254 -1.25684 9.81348 -3.36621l127.22 -98.3301c43.6846 23.8564 94.0967 37.6357 147.32 37.7002c122.93 0 230.29 -71.5898 284.52 -177.4c2.21387 -4.37793 3.46094 -9.38965 3.46094 -14.626
-c0 -5.2373 -1.24707 -10.1855 -3.46094 -14.5635c-20.2109 -39.3887 -47.6904 -73.7881 -81.25 -102.07zM450.1 131.9c8.61035 18.3203 13.9004 38.4697 13.9004 60.0996c0 0.0273438 0.00195312 0.0527344 0.00195312 0.0800781c0 79.4316 -64.4883 143.92 -143.92 143.92
-h-0.0820312c-34.6328 -0.0253906 -66.4756 -12.4902 -91.1504 -33.1104l73.6104 -56.8896c0.857422 3.20508 1.38867 6.5625 1.54004 10c-0.0185547 10.5391 -3.49023 20.3242 -9.30957 28.21c8.43164 2.46191 17.3359 3.82031 26.5576 3.82031
-c52.2998 0 94.7607 -42.46 94.7607 -94.7598c0 -0.423828 -0.00292969 -0.847656 -0.00878906 -1.27051c-0.138672 -10.377 -1.97559 -20.4014 -5.2002 -29.7197z" />
-    <glyph glyph-name="exclamation-triangle" unicode="&#xf071;" horiz-adv-x="576" 
-d="M569.517 7.9873c18.458 -31.9941 -4.71094 -71.9873 -41.5762 -71.9873h-479.887c-36.9365 0 -59.999 40.0547 -41.5771 71.9873l239.946 416.027c18.4668 32.0098 64.7197 31.9512 83.1543 0zM288 94c-25.4053 0 -46 -20.5947 -46 -46s20.5947 -46 46 -46
-s46 20.5947 46 46s-20.5947 46 -46 46zM244.327 259.346l7.41797 -136c0.34668 -6.36328 5.6084 -11.3457 11.9814 -11.3457h48.5469c6.37305 0 11.6348 4.98242 11.9814 11.3457l7.41797 136c0.375 6.87402 -5.09766 12.6543 -11.9814 12.6543h-63.3838
-c-6.88379 0 -12.3555 -5.78027 -11.9805 -12.6543z" />
-    <glyph glyph-name="plane" unicode="&#xf072;" horiz-adv-x="576" 
-d="M480 256c35.3496 0 96 -28.6504 96 -64s-60.6504 -64 -96 -64h-114.29l-105.11 -183.94c-2.84961 -4.97949 -8.14941 -8.05957 -13.8896 -8.05957h-65.5c-10.6299 0 -18.2998 10.1797 -15.3799 20.4004l49.0303 171.6h-102.86l-43.2002 -57.5996
-c-3.01953 -4.03027 -7.75977 -6.40039 -12.7998 -6.40039h-39.9902c-10.4102 0 -18.0498 9.78027 -15.5195 19.8799l31.5098 108.12l-31.5098 108.12c-2.53027 10.0996 5.10938 19.8799 15.5195 19.8799h39.9902c5.03027 0 9.78027 -2.37012 12.7998 -6.40039
-l43.2002 -57.5996h102.86l-49.0303 171.61c-2.91992 10.2197 4.75 20.3896 15.3799 20.3896h65.5c5.95117 0 11.1396 -3.23633 13.9004 -8.05957l105.1 -183.94h114.29z" />
-    <glyph glyph-name="calendar-alt" unicode="&#xf073;" horiz-adv-x="448" 
-d="M0 -16v272h448v-272c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48zM320 180v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12zM320 52v-40
-c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12zM192 180v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-40
-c-6.59961 0 -12 -5.40039 -12 -12zM192 52v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12zM64 180v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40
-c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12zM64 52v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12zM400 384c26.5 0 48 -21.5 48 -48v-48h-448v48
-c0 26.5 21.5 48 48 48h48v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h128v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h48z" />
-    <glyph glyph-name="random" unicode="&#xf074;" 
-d="M504.971 88.9707c9.37305 -9.37305 9.37305 -24.5684 0 -33.9404l-80 -79.9844c-15.0098 -15.0098 -40.9707 -4.49023 -40.9707 16.9707v39.9834h-58.7852c-3.46094 0 -6.58105 1.46484 -8.77246 3.81152l-70.5566 75.5967l53.333 57.1426l52.7812 -56.5508h32v39.9814
-c0 21.4375 25.9434 31.9971 40.9707 16.9707zM12 272c-6.62695 0 -12 5.37305 -12 12v56c0 6.62695 5.37305 12 12 12h110.785c3.46094 0 6.58203 -1.46484 8.77246 -3.81152l70.5566 -75.5967l-53.333 -57.1426l-52.7812 56.5508h-84zM384 272h-32l-220.442 -236.188
-c-2.26953 -2.43066 -5.44629 -3.81152 -8.77246 -3.81152h-110.785c-6.62695 0 -12 5.37305 -12 12v56c0 6.62695 5.37305 12 12 12h84l220.442 236.188c2.19141 2.34668 5.31152 3.81152 8.77246 3.81152h58.7852v39.9814c0 21.4365 25.9434 31.9971 40.9707 16.9697
-l80 -79.9814c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404l-80 -79.9844c-15.0098 -15.0088 -40.9707 -4.48926 -40.9707 16.9707v39.9844z" />
-    <glyph glyph-name="comment" unicode="&#xf075;" 
-d="M256 416c141.4 0 256 -93.0996 256 -208s-114.6 -208 -256 -208c-38.4004 0 -74.7002 7.09961 -107.4 19.4004c-24.5996 -19.6006 -74.2998 -51.4004 -140.6 -51.4004c-3.2002 0 -6 1.7998 -7.2998 4.7998s-0.700195 6.40039 1.5 8.7002
-c0.5 0.5 42.2998 45.4004 54.7998 95.7998c-35.5996 35.7002 -57 81.1006 -57 130.7c0 114.9 114.6 208 256 208z" />
-    <glyph glyph-name="magnet" unicode="&#xf076;" 
-d="M164.07 299.9h-152.07c-6.62305 0 -12 5.37695 -12 12v80c0 19.8682 16.1309 36 36 36h104c19.8691 0 36 -16.1318 36 -36v-80c0 -0.0380859 0.000976562 -0.0751953 0.000976562 -0.112305c0 -6.5625 -5.32812 -11.8906 -11.8906 -11.8906
-c-0.0136719 0 -0.0263672 0.00292969 -0.0400391 0.00292969zM512 311.9c0 -0.00390625 0.00195312 -0.0078125 0.00195312 -0.0107422c0 -6.5625 -5.32715 -11.8906 -11.8896 -11.8906c-0.0380859 0 -0.0751953 0.000976562 -0.112305 0.000976562h-152
-c-6.62305 0 -12 5.37695 -12 12v80c0 19.8691 16.1309 36 36 36h104c19.8691 0 36 -16.1309 36 -36v-80.0996zM348 267.9h151.85c6.62305 0 12.001 -5.37598 12.001 -11.998c0 -0.0341797 0 -0.0683594 -0.000976562 -0.102539
-c-0.199219 -20.2002 -0.599609 -40.3994 0 -53.2002c0 -150.699 -134.42 -246.699 -255 -246.699s-256.75 96 -256.75 246.6c0.600586 13 0.100586 31.9004 0 53.2998v0.100586c0 6.62305 5.37695 12 12 12h151.9c6.62305 0 12 -5.37695 12 -12v-52
-c0 -127.9 160 -128.101 160 0v52c0 6.62305 5.37695 12 12 12z" />
-    <glyph glyph-name="chevron-up" unicode="&#xf077;" horiz-adv-x="448" 
-d="M240.971 317.476l194.344 -194.343c9.37207 -9.37305 9.37207 -24.5684 0 -33.9404l-22.667 -22.667c-9.35742 -9.35742 -24.5225 -9.375 -33.9014 -0.0400391l-154.746 154.02l-154.745 -154.021c-9.37891 -9.33496 -24.5439 -9.31738 -33.9014 0.0400391
-l-22.667 22.667c-9.37207 9.37305 -9.37207 24.5684 0 33.9404l194.344 194.343c9.37207 9.37305 24.5674 9.37305 33.9404 0.000976562z" />
-    <glyph glyph-name="chevron-down" unicode="&#xf078;" horiz-adv-x="448" 
-d="M207.029 66.5244l-194.344 194.344c-9.37207 9.37305 -9.37207 24.5684 0 33.9404l22.667 22.667c9.35742 9.35742 24.5225 9.375 33.9014 0.0400391l154.746 -154.021l154.745 154.021c9.37891 9.33496 24.5439 9.31738 33.9014 -0.0400391l22.667 -22.667
-c9.37207 -9.37305 9.37207 -24.5684 0 -33.9404l-194.343 -194.344c-9.37305 -9.37207 -24.5684 -9.37207 -33.9414 0z" />
-    <glyph glyph-name="retweet" unicode="&#xf079;" horiz-adv-x="640" 
-d="M629.657 104.402l-100.687 -100.687c-9.37305 -9.37207 -24.5674 -9.37207 -33.9404 0l-100.688 100.687c-9.37305 9.37305 -9.37305 24.5684 0 33.9404l10.8232 10.8232c9.56152 9.56152 25.1328 9.33984 34.4189 -0.492188l40.415 -42.792v182.118h-187.549
-c-6.62305 0 -12.626 2.68555 -16.9707 7.0293l-16 16c-15.1191 15.1201 -4.41113 40.9707 16.9707 40.9707h243.549c13.2549 0 24 -10.7451 24 -24v-222.118l40.416 42.792c9.28516 9.83105 24.8564 10.0537 34.4189 0.492188l10.8232 -10.8232
-c9.37207 -9.37207 9.37207 -24.5684 -0.000976562 -33.9404zM364.519 88.9707l16.001 -16c15.1191 -15.1201 4.41113 -40.9707 -16.9707 -40.9707h-243.549c-13.2549 0 -24 10.7451 -24 24v222.119l-40.416 -42.793c-9.28613 -9.83105 -24.8574 -10.0527 -34.4189 -0.491211
-l-10.8223 10.8223c-9.37305 9.37207 -9.37305 24.5674 0 33.9404l100.688 100.687c9.37207 9.37305 24.5674 9.37305 33.9404 0l100.687 -100.686c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404l-10.8223 -10.8223c-9.5625 -9.5625 -25.1328 -9.33984 -34.4189 0.491211
-l-40.416 42.792v-182.119h187.548c6.62305 0 12.627 -2.68457 16.9707 -7.0293z" />
-    <glyph glyph-name="shopping-cart" unicode="&#xf07a;" horiz-adv-x="576" 
-d="M528.12 146.681c-2.4834 -10.9268 -12.1973 -18.6807 -23.4033 -18.6807h-293.145l6.54492 -32h268.418c15.4004 0 26.8154 -14.3008 23.4033 -29.3193l-5.51758 -24.2754c18.6914 -9.07324 31.5791 -28.2334 31.5791 -50.4053c0 -30.9277 -25.0723 -56 -56 -56
-s-56 25.0723 -56 56c0 15.6738 6.44727 29.835 16.8232 40h-209.647c10.377 -10.165 16.8242 -24.3262 16.8242 -40c0 -30.9277 -25.0723 -56 -56 -56s-56 25.0723 -56 56c0 20.7783 11.3252 38.9004 28.1309 48.5654l-70.248 343.435h-69.8828
-c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h102.529c11.4004 0 21.2285 -8.02148 23.5127 -19.1904l9.16602 -44.8096h392.782c15.4004 0 26.8154 -14.3008 23.4023 -29.3193z" />
-    <glyph glyph-name="folder" unicode="&#xf07b;" 
-d="M464 320c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h160l64 -64h192z" />
-    <glyph glyph-name="folder-open" unicode="&#xf07c;" horiz-adv-x="576" 
-d="M572.694 155.907l-72.4248 -124.155c-11.0967 -19.0244 -31.6865 -31.752 -55.2803 -31.752h-399.964c-18.5234 0 -30.0645 20.0928 -20.7314 36.0928l72.4238 124.155c11.0986 19.0244 31.6875 31.752 55.2822 31.752h399.964
-c18.5234 0 30.0645 -20.0928 20.7305 -36.0928zM152 224c-34.0107 0 -65.7861 -18.25 -82.9229 -47.6279l-69.0771 -118.418v278.046c0 26.5098 21.4902 48 48 48h160l64 -64h160c26.5098 0 48 -21.4902 48 -48v-48h-328z" />
-    <glyph glyph-name="chart-bar" unicode="&#xf080;" 
-d="M332.8 128c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v134.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h38.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-134.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-38.4004zM428.8 128
-c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v230.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h38.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-230.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-38.4004zM140.8 128
-c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v70.4004c0 6.39941 6.40039 12.7998 12.7998 12.7998h38.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-70.4004c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-38.4004zM236.8 128
-c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v198.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h38.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-198.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-38.4004zM496 64c8.83984 0 16 -7.16016 16 -16v-32
-c0 -8.83984 -7.16016 -16 -16 -16h-464c-17.6699 0 -32 14.3301 -32 32v336c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-304h432z" />
-    <glyph glyph-name="camera-retro" unicode="&#xf083;" 
-d="M48 416h416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48zM48 384c-8.7998 0 -16 -7.2002 -16 -16v-10c0 -3.2998 2.7002 -6 6 -6h116c3.2998 0 6 2.7002 6 6v20c0 3.2998 -2.7002 6 -6 6h-106z
-M474 288c3.2998 0 6 2.7002 6 6v74c0 8.7998 -7.2002 16 -16 16h-252.8c-2 0 -3.90039 -1 -5 -2.7002l-30.2002 -45.2998h-138c-3.2998 0 -6 -2.7002 -6 -6v-36c0 -3.2998 2.7002 -6 6 -6h436zM256 24c66.2002 0 120 53.7998 120 120s-53.7998 120 -120 120
-s-120 -53.7998 -120 -120s53.7998 -120 120 -120zM256 232c48.5 0 88 -39.5 88 -88s-39.5 -88 -88 -88s-88 39.5 -88 88s39.5 88 88 88zM208 128c8.7998 0 16 7.2002 16 16c0 17.5996 14.4004 32 32 32c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16
-c-35.2998 0 -64 -28.7002 -64 -64c0 -8.7998 7.2002 -16 16 -16z" />
-    <glyph glyph-name="key" unicode="&#xf084;" 
-d="M512 271.999c0 -97.2021 -78.7979 -175.999 -176 -175.999c-11.2197 0 -22.1904 1.06152 -32.8271 3.06934l-24.0117 -27.0146c-4.39746 -4.94727 -10.8047 -8.05469 -17.9385 -8.05469h-37.2227v-40c0 -13.2549 -10.7451 -24 -24 -24h-40v-40
-c0 -13.2549 -10.7451 -24 -24 -24h-112c-13.2549 0 -24 10.7451 -24 24v78.0586c0 6.36523 2.5293 12.4707 7.0293 16.9717l161.802 161.802c-5.72266 17.3535 -8.83105 35.8965 -8.83105 55.168c0 97.2021 78.7969 175.999 175.999 176
-c97.4893 0.000976562 176.001 -78.5107 176.001 -176.001zM336 320c0 -26.5098 21.4902 -48 48 -48s48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48z" />
-    <glyph glyph-name="cogs" unicode="&#xf085;" horiz-adv-x="640" 
-d="M512.1 257l-8.19922 -14.2998c-3 -5.2998 -9.40039 -7.5 -15.1006 -5.40039c-11.7998 4.40039 -22.5996 10.7002 -32.0996 18.6006c-4.60059 3.7998 -5.7998 10.5 -2.7998 15.6992l8.19922 14.3008c-6.89941 8 -12.2998 17.2998 -15.8994 27.3994h-16.5
-c-6 0 -11.2002 4.2998 -12.2002 10.2998c-2 12 -2.09961 24.6006 0 37.1006c1 6 6.2002 10.3994 12.2002 10.3994h16.5c3.59961 10.1006 9 19.4004 15.8994 27.4004l-8.19922 14.2998c-3 5.2002 -1.90039 11.9004 2.7998 15.7002
-c9.5 7.90039 20.3994 14.2002 32.0996 18.5996c5.7002 2.10059 12.1006 -0.0996094 15.1006 -5.39941l8.19922 -14.2998c10.5 1.89941 21.2002 1.89941 31.7002 0l8.2002 14.2998c3 5.2998 9.40039 7.5 15.0996 5.39941c11.8008 -4.39941 22.6006 -10.6992 32.1006 -18.5996
-c4.59961 -3.7998 5.7998 -10.5 2.7998 -15.7002l-8.2002 -14.2998c6.90039 -8 12.2998 -17.2998 15.9004 -27.4004h16.5c6 0 11.2002 -4.2998 12.2002 -10.2998c2 -12 2.09961 -24.5996 0 -37.0996c-1 -6 -6.2002 -10.4004 -12.2002 -10.4004h-16.5
-c-3.60059 -10.0996 -9 -19.3994 -15.9004 -27.3994l8.2002 -14.3008c3 -5.19922 1.90039 -11.8994 -2.7998 -15.6992c-9.5 -7.90039 -20.4004 -14.2002 -32.1006 -18.6006c-5.69922 -2.09961 -12.0996 0.100586 -15.0996 5.40039l-8.2002 14.2998
-c-10.3994 -1.90039 -21.2002 -1.90039 -31.7002 0zM501.6 315.8c38.5 -29.5996 82.4004 14.2998 52.8008 52.7998c-38.5 29.7002 -82.4004 -14.2998 -52.8008 -52.7998zM386.3 161.9l33.7002 -16.8008c10.0996 -5.7998 14.5 -18.0996 10.5 -29.0996
-c-8.90039 -24.2002 -26.4004 -46.4004 -42.5996 -65.7998c-7.40039 -8.90039 -20.2002 -11.1006 -30.3008 -5.2998l-29.0996 16.7998c-16 -13.7002 -34.5996 -24.6006 -54.9004 -31.7002v-33.5996c0 -11.6006 -8.2998 -21.6006 -19.6992 -23.6006
-c-24.6006 -4.2002 -50.4004 -4.39941 -75.9004 0c-11.5 2 -20 11.9004 -20 23.6006v33.5996c-20.2998 7.2002 -38.9004 18 -54.9004 31.7002l-29.0996 -16.7002c-10 -5.7998 -22.9004 -3.59961 -30.2998 5.2998c-16.2002 19.4004 -33.2998 41.6006 -42.2002 65.7002
-c-4 10.9004 0.400391 23.2002 10.5 29.0996l33.2998 16.8008c-3.89941 20.8994 -3.89941 42.3994 0 63.3994l-33.2998 16.9004c-10.0996 5.7998 -14.5996 18.0996 -10.5 29c8.90039 24.2002 26 46.3994 42.2002 65.7998c7.39941 8.90039 20.2002 11.0996 30.2998 5.2998
-l29.0996 -16.7998c16 13.7002 34.6006 24.5996 54.9004 31.7002v33.7002c0 11.5 8.2002 21.5 19.5996 23.5c24.6006 4.19922 50.5 4.39941 76 0.0996094c11.5 -2 20 -11.9004 20 -23.5996v-33.6006c20.3008 -7.2002 38.9004 -18 54.9004 -31.7002l29.0996 16.8008
-c10 5.7998 22.9004 3.59961 30.3008 -5.30078c16.1992 -19.3994 33.1992 -41.5996 42.0996 -65.7998c4 -10.8994 0.0996094 -23.2002 -10 -29.0996l-33.7002 -16.7998c3.90039 -21 3.90039 -42.5 0 -63.5zM268.7 140.8c59.2002 77 -28.7002 164.9 -105.7 105.7
-c-59.2002 -77 28.7002 -164.9 105.7 -105.7zM512.1 -41.9004l-8.19922 -14.2998c-3 -5.2998 -9.40039 -7.5 -15.1006 -5.39941c-11.7998 4.39941 -22.5996 10.6992 -32.0996 18.5996c-4.60059 3.7998 -5.7998 10.5 -2.7998 15.7002l8.19922 14.2998
-c-6.89941 8 -12.2998 17.2998 -15.8994 27.4004h-16.5c-6 0 -11.2002 4.2998 -12.2002 10.2998c-2 12 -2.09961 24.5996 0 37.0996c1 6 6.2002 10.4004 12.2002 10.4004h16.5c3.59961 10.0996 9 19.3994 15.8994 27.3994l-8.19922 14.3008
-c-3 5.19922 -1.90039 11.8994 2.7998 15.6992c9.5 7.90039 20.3994 14.2002 32.0996 18.6006c5.7002 2.09961 12.1006 -0.100586 15.1006 -5.40039l8.19922 -14.2998c10.5 1.90039 21.2002 1.90039 31.7002 0l8.2002 14.2998c3 5.2998 9.40039 7.5 15.0996 5.40039
-c11.8008 -4.40039 22.6006 -10.7002 32.1006 -18.6006c4.59961 -3.7998 5.7998 -10.5 2.7998 -15.6992l-8.2002 -14.3008c6.90039 -8 12.2998 -17.2998 15.9004 -27.3994h16.5c6 0 11.2002 -4.2998 12.2002 -10.2998c2 -12 2.09961 -24.6006 0 -37.1006
-c-1 -6 -6.2002 -10.3994 -12.2002 -10.3994h-16.5c-3.60059 -10.1006 -9 -19.4004 -15.9004 -27.4004l8.2002 -14.2998c3 -5.2002 1.90039 -11.9004 -2.7998 -15.7002c-9.5 -7.90039 -20.4004 -14.2002 -32.1006 -18.5996
-c-5.69922 -2.10059 -12.0996 0.0996094 -15.0996 5.39941l-8.2002 14.2998c-10.3994 -1.89941 -21.2002 -1.89941 -31.7002 0zM501.6 17c38.5 -29.5996 82.4004 14.2998 52.8008 52.7998c-38.5 29.6006 -82.4004 -14.2998 -52.8008 -52.7998z" />
-    <glyph glyph-name="comments" unicode="&#xf086;" horiz-adv-x="576" 
-d="M416 256c0 -88.4004 -93.0996 -160 -208 -160c-41 0 -79.0996 9.2998 -111.3 25c-21.7998 -12.7002 -52.1006 -25 -88.7002 -25c-3.2002 0 -6 1.7998 -7.2998 4.7998s-0.700195 6.40039 1.5 8.7002c0.299805 0.299805 22.3994 24.2998 35.7998 54.5
-c-23.9004 26.0996 -38 57.7002 -38 92c0 88.4004 93.0996 160 208 160s208 -71.5996 208 -160zM538 36c13.4004 -30.2998 35.5 -54.2002 35.7998 -54.5c2.2002 -2.40039 2.7998 -5.7998 1.5 -8.7002c-1.2002 -2.89941 -4.09961 -4.7998 -7.2998 -4.7998
-c-36.5996 0 -66.9004 12.2998 -88.7002 25c-32.2002 -15.7998 -70.2998 -25 -111.3 -25c-86.2002 0 -160.2 40.4004 -191.7 97.9004c10.4004 -1.10059 20.9004 -1.90039 31.7002 -1.90039c132.3 0 240 86.0996 240 192c0 6.7998 -0.400391 13.5 -1.2998 20.0996
-c75.7998 -23.8994 129.3 -81.1992 129.3 -148.1c0 -34.2998 -14.0996 -66 -38 -92z" />
-    <glyph glyph-name="star-half" unicode="&#xf089;" horiz-adv-x="576" 
-d="M288 448v-439.6l-130.7 -68.6006c-23.3994 -12.2998 -50.8994 7.60059 -46.3994 33.7002l25 145.5l-105.7 103c-19 18.5 -8.5 50.7998 17.7002 54.5996l146.1 21.2002l65.2998 132.4c5.90039 11.8994 17.2998 17.7998 28.7002 17.7998z" />
-    <glyph glyph-name="thumbtack" unicode="&#xf08d;" horiz-adv-x="384" 
-d="M298.028 233.733c47.9893 -22.3135 85.9717 -62.5508 85.9727 -113.733c0 -13.2549 -10.7451 -24 -24 -24h-136v-104.007c0 -1.2832 -0.307617 -2.50293 -0.844727 -3.57812l-24 -48c-2.94727 -5.89258 -11.3701 -5.88184 -14.3115 0l-24 48
-c-0.555664 1.11133 -0.844727 2.33594 -0.844727 3.57812v104.007h-136c-13.2549 0 -24 10.7451 -24 24c0 50.7393 37.4648 91.1797 85.9717 113.733l12.2354 118.267h-42.207c-13.2549 0 -24 10.7451 -24 24v48c0 13.2549 10.7451 24 24 24h272
-c13.2549 0 24 -10.7451 24 -24v-48c0 -13.2549 -10.7451 -24 -24 -24h-42.207z" />
-    <glyph glyph-name="trophy" unicode="&#xf091;" horiz-adv-x="576" 
-d="M552 384c13.2998 0 24 -10.7002 24 -24v-56c0 -35.7002 -22.5996 -72.4004 -61.9004 -100.7c-31.3994 -22.7002 -69.6992 -37.0996 -110 -41.7002c-31.3994 -52.0996 -68.0996 -73.5996 -68.0996 -73.5996v-72h48c35.2998 0 64 -20.7002 64 -56v-12
-c0 -6.59961 -5.40039 -12 -12 -12h-296c-6.59961 0 -12 5.40039 -12 12v12c0 35.2998 28.7002 56 64 56h48v72s-36.7002 21.5 -68.0996 73.5996c-40.2002 4.60059 -78.5 19 -110 41.7002c-39.4004 28.2998 -61.9004 65 -61.9004 100.7v56c0 13.2998 10.7002 24 24 24h104v40
-c0 13.2998 10.7002 24 24 24h272c13.2998 0 24 -10.7002 24 -24v-40h104zM99.2998 255.2c12.5 -9 26.6006 -16.2002 41.7002 -21.4004c-7 25 -11.7998 53.6006 -12.7998 86.2002h-64.2002v-16c0 -11.5996 10.9004 -31.2002 35.2998 -48.7998zM512 304v16h-64.2998
-c-1 -32.5996 -5.7998 -61.2002 -12.7998 -86.2002c15.0996 5.2002 29.2998 12.4004 41.7998 21.4004c17.5996 12.7002 35.2998 32.7002 35.2998 48.7998z" />
-    <glyph glyph-name="upload" unicode="&#xf093;" 
-d="M296 64h-80c-13.2998 0 -24 10.7002 -24 24v168h-87.7002c-17.7998 0 -26.7002 21.5 -14.0996 34.0996l152.1 152.2c7.5 7.5 19.7998 7.5 27.2998 0l152.2 -152.2c12.6006 -12.5996 3.7002 -34.0996 -14.0996 -34.0996h-87.7002v-168c0 -13.2998 -10.7002 -24 -24 -24z
-M512 72v-112c0 -13.2998 -10.7002 -24 -24 -24h-464c-13.2998 0 -24 10.7002 -24 24v112c0 13.2998 10.7002 24 24 24h136v-8c0 -30.9004 25.0996 -56 56 -56h80c30.9004 0 56 25.0996 56 56v8h136c13.2998 0 24 -10.7002 24 -24zM388 -16c0 11 -9 20 -20 20s-20 -9 -20 -20
-s9 -20 20 -20s20 9 20 20zM452 -16c0 11 -9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20s20 9 20 20z" />
-    <glyph glyph-name="lemon" unicode="&#xf094;" 
-d="M489.038 425.037c23.0938 -23.0938 28.8916 -54.3906 16.833 -75.0928c-34.3115 -58.9043 53.0762 -181.249 -86.7461 -321.071s-262.167 -52.4326 -321.068 -86.7432c-20.7031 -12.0586 -52 -6.2627 -75.0947 16.832c-23.0928 23.0938 -28.8916 54.3906 -16.833 75.0928
-c34.3125 58.9043 -53.0781 181.247 86.7451 321.07s262.167 52.4336 321.073 86.7461c20.7012 12.0586 51.9971 6.25879 75.0908 -16.834zM243.881 352.478c8.57227 2.14355 13.7832 10.8291 11.6416 19.4023c-2.14258 8.57324 -10.8281 13.7852 -19.4033 11.6426
-c-69.8027 -17.4521 -154.218 -101.949 -171.643 -171.643c-2.1416 -8.57324 3.07031 -17.2588 11.6426 -19.4033c1.30273 -0.324219 2.6084 -0.480469 3.89258 -0.480469c7.16895 0 13.6943 4.85352 15.5117 12.124c14.5498 58.2031 90.1689 133.811 148.357 148.357z" />
-    <glyph glyph-name="phone" unicode="&#xf095;" 
-d="M493.4 423.4c10.8994 -2.5 18.5996 -12.2002 18.5996 -23.4004c0 -256.5 -207.9 -464 -464 -464c-11.2998 0 -20.9004 7.7998 -23.4004 18.5996l-24 104c-2.59961 11.3008 3.30078 22.9004 14 27.6006l112 48c9.80078 4.2002 21.2002 1.39941 28 -6.90039
-l49.6006 -60.5996c78.2998 36.7002 141.2 100.5 177.2 177.2l-60.6006 49.5996c-8.2998 6.7002 -11.0996 18.2002 -6.89941 28l48 112c4.59961 10.5996 16.1992 16.5 27.5 13.9004z" />
-    <glyph glyph-name="phone-square" unicode="&#xf098;" horiz-adv-x="448" 
-d="M400 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352zM94 32c160.055 0 290 129.708 290 290c0 7.11621 -4.97559 13.0801 -11.6279 14.6143l-65 14.998
-c-1.08691 0.250977 -2.20312 0.394531 -3.36621 0.394531c-6.18457 0 -11.501 -3.75195 -13.7939 -9.10156l-30 -69.998c-0.775391 -1.81055 -1.22266 -3.81055 -1.22266 -5.90332c0 -4.68066 2.14844 -8.86328 5.51172 -11.6152l37.8857 -30.9971
-c-22.4834 -47.9219 -61.8369 -87.8164 -110.78 -110.779l-30.9971 37.8848c-2.75195 3.36328 -6.94043 5.49414 -11.6211 5.49414c-2.09277 0 -4.08691 -0.429688 -5.89746 -1.20508l-69.998 -29.999c-5.34961 -2.29297 -9.08984 -7.59375 -9.08984 -13.7783
-c0 -1.16309 0.131836 -2.29492 0.382812 -3.38184l14.998 -65c1.55957 -6.75391 7.58301 -11.627 14.6162 -11.627z" />
-    <glyph glyph-name="unlock" unicode="&#xf09c;" horiz-adv-x="448" 
-d="M400 192c26.5 0 48 -21.5 48 -48v-160c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v160c0 26.5 21.5 48 48 48h24v102.5c0 84 67.5 153.2 151.5 153.5s152.5 -68 152.5 -152v-16c0 -13.2998 -10.7002 -24 -24 -24h-32c-13.2998 0 -24 10.7002 -24 24v16
-c0 39.9004 -32.7002 72.4004 -72.7002 72c-39.5996 -0.400391 -71.2998 -33.2998 -71.2998 -72.9004v-103.1h248z" />
-    <glyph glyph-name="credit-card" unicode="&#xf09d;" horiz-adv-x="576" 
-d="M0 16v176h576v-176c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48zM192 84v-40c0 -6.59961 5.40039 -12 12 -12h136c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-136c-6.59961 0 -12 -5.40039 -12 -12zM64 84v-40
-c0 -6.59961 5.40039 -12 12 -12h72c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-72c-6.59961 0 -12 -5.40039 -12 -12zM576 368v-48h-576v48c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48z" />
-    <glyph glyph-name="rss" unicode="&#xf09e;" horiz-adv-x="448" 
-d="M128.081 32.041c0 -35.3691 -28.6719 -64.041 -64.041 -64.041s-64.04 28.6719 -64.04 64.041s28.6719 64.041 64.041 64.041s64.04 -28.6729 64.04 -64.041zM303.741 -15.209c0.494141 -9.13477 -6.84668 -16.791 -15.9951 -16.79h-48.0693
-c-8.41406 0 -15.4707 6.49023 -16.0176 14.8867c-7.29883 112.07 -96.9404 201.488 -208.772 208.772c-8.39648 0.545898 -14.8867 7.60254 -14.8867 16.0176v48.0693c0 9.14746 7.65625 16.4883 16.791 15.9941c154.765 -8.36328 278.596 -132.351 286.95 -286.95z
-M447.99 -15.4971c0.324219 -9.03027 -6.97168 -16.5029 -16.0049 -16.5039h-48.0684c-8.62598 0 -15.6455 6.83496 -15.999 15.4531c-7.83789 191.148 -161.286 344.626 -352.465 352.465c-8.61816 0.354492 -15.4531 7.37402 -15.4531 15.999v48.0684
-c0 9.03418 7.47266 16.3301 16.5029 16.0059c234.962 -8.43555 423.093 -197.667 431.487 -431.487z" />
-    <glyph glyph-name="hdd" unicode="&#xf0a0;" horiz-adv-x="576" 
-d="M576 144v-96c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v96c0 26.5098 21.4902 48 48 48h480c26.5098 0 48 -21.4902 48 -48zM528 224h-480c-0.0234375 0 -0.0996094 -0.0361328 -0.124023 -0.0361328
-c-10.8613 0 -21.2168 -2.18066 -30.6533 -6.12891l96.5283 144.791c8.60742 12.9102 23.2725 21.374 39.9385 21.374h268.621c16.667 0 31.332 -8.46387 39.9395 -21.374l96.5273 -144.791c-9.43652 3.94824 -19.8447 6.16504 -30.7061 6.16504h-0.0712891zM480 128
-c-17.6729 0 -32 -14.3271 -32 -32s14.3271 -32 32 -32s32 14.3271 32 32s-14.3271 32 -32 32zM384 128c-17.6729 0 -32 -14.3271 -32 -32s14.3271 -32 32 -32s32 14.3271 32 32s-14.3271 32 -32 32z" />
-    <glyph glyph-name="bullhorn" unicode="&#xf0a1;" horiz-adv-x="576" 
-d="M576 208c0 -23.6299 -12.9502 -44.04 -32.0098 -55.1299v-152.87c0 -9.21973 -7.08008 -32 -32 -32c-7.5459 0.00683594 -14.5078 2.64062 -19.9805 7.01953l-85.0293 68.0303c-42.7002 34.1406 -96.3203 52.9502 -150.98 52.9502h-28.0801
-c-2.79004 -10.21 -4.41016 -20.8896 -4.41016 -32c0 -29.0801 9.75 -55.9199 26.1504 -77.4404c15.79 -20.7197 0.149414 -50.5596 -25.9004 -50.5596h-74.2793c-11.8809 0 -23.2109 6.37012 -28.4004 17.0596c-16.2998 33.5908 -25.5605 71.1709 -25.5605 110.94
-c0 10.8604 0.790039 21.5195 2.18066 32h-33.7002c-35.3496 0 -64 28.6504 -64 64v96c0 35.3496 28.6504 64 64 64h192c54.6602 0 108.28 18.8096 150.99 52.9502l85.0293 68.0303c5.79004 4.63965 12.8604 7.01953 19.9805 7.01953c25.0195 0 32 -23.2598 32 -32.0098
-v-152.87c19.0498 -11.0801 32 -31.4902 32 -55.1201zM480 66.5801v282.84l-33.0498 -26.4395c-54 -43.2002 -121.83 -66.9805 -190.95 -66.9805v-96c69.1201 0 136.95 -23.7803 190.95 -66.9805z" />
-    <glyph glyph-name="certificate" unicode="&#xf0a3;" 
-d="M458.622 192.08l45.9844 -45.0039c13.7012 -12.9727 7.32227 -36.0371 -10.6641 -40.3389l-62.6504 -15.9902l17.6611 -62.0146c4.99023 -17.834 -11.8252 -34.665 -29.6611 -29.6719l-61.9941 17.667l-15.9834 -62.6709
-c-4.33887 -18.1533 -27.8252 -24.1553 -40.3252 -10.668l-44.9893 46.001l-44.9912 -46.001c-12.6289 -13.3496 -35.8857 -7.90625 -40.3252 10.668l-15.9834 62.6709l-61.9941 -17.667c-17.832 -4.99121 -34.6523 11.833 -29.6611 29.6719l17.6611 62.0146
-l-62.6504 15.9902c-17.9795 4.2998 -24.3721 27.3613 -10.6641 40.3389l45.9854 45.0039l-45.9854 45.0049c-13.7012 12.9707 -7.32227 36.0371 10.665 40.3379l62.6504 15.9902l-17.6611 62.0146c-4.99023 17.834 11.8242 34.665 29.6611 29.6709l61.9951 -17.667
-l15.9834 62.6709c4.27832 17.9023 27.6953 24.0195 40.3252 10.6689l44.9893 -46.3418l44.9902 46.3428c12.7744 13.5039 36.0947 7.03027 40.3252 -10.6689l15.9834 -62.6709l61.9941 17.667c17.832 4.99219 34.6523 -11.833 29.6611 -29.6709l-17.6611 -62.0146
-l62.6504 -15.9902c17.9795 -4.2998 24.3721 -27.3623 10.6641 -40.3389z" />
-    <glyph glyph-name="hand-point-right" unicode="&#xf0a4;" 
-d="M512 248.348c0 -23.625 -20.6504 -43.8252 -44.7998 -43.8252h-99.8516c16.3408 -17.0488 18.3467 -49.7666 -6.29883 -70.9443c14.2881 -22.8291 2.14746 -53.0176 -16.4502 -62.3154c8.97461 -49.1406 -21.9453 -71.2627 -72.5996 -71.2627
-c-2.74609 0 -13.2764 0.203125 -16 0.195312c-61.9707 -0.167969 -76.8936 31.0645 -123.731 38.3145c-11.6729 1.80762 -20.2686 11.8916 -20.2686 23.7041v171.525l0.00195312 0.000976562c0.0107422 18.3662 10.6074 35.8887 28.4639 43.8447
-c28.8857 12.9941 95.4131 49.0381 107.534 77.3232c7.79688 18.1934 21.3838 29.084 40 29.0918c34.2217 0.0136719 57.752 -35.0977 44.1191 -66.9082c-3.58301 -8.3584 -8.3125 -16.6699 -14.1533 -24.918h149.234c23.4502 0 44.7998 -20.543 44.7998 -43.8262zM96 248
-v-192c0 -13.2549 -10.7451 -24 -24 -24h-48c-13.2549 0 -24 10.7451 -24 24v192c0 13.2549 10.7451 24 24 24h48c13.2549 0 24 -10.7451 24 -24zM68 80c0 11.0459 -8.9541 20 -20 20s-20 -8.9541 -20 -20s8.9541 -20 20 -20s20 8.9541 20 20z" />
-    <glyph glyph-name="hand-point-left" unicode="&#xf0a5;" 
-d="M44.7998 292.174h149.234c-5.84082 8.24805 -10.5703 16.5586 -14.1533 24.918c-13.6328 31.8105 9.89746 66.9219 44.1191 66.9082c18.6162 -0.0078125 32.2031 -10.8975 40 -29.0918c12.1221 -28.2861 78.6484 -64.3291 107.534 -77.3232
-c17.8564 -7.95605 28.4531 -25.4785 28.4639 -43.8447l0.00195312 -0.000976562v-171.526c0 -11.8115 -8.5957 -21.8965 -20.2686 -23.7031c-46.8379 -7.25 -61.7607 -38.4824 -123.731 -38.3145c-2.72363 0.00683594 -13.2539 -0.195312 -16 -0.195312
-c-50.6543 0 -81.5742 22.1221 -72.5996 71.2627c-18.5977 9.29688 -30.7383 39.4863 -16.4502 62.3154c-24.6455 21.1768 -22.6396 53.8955 -6.29883 70.9443h-99.8516c-24.1494 0 -44.7998 20.2002 -44.7998 43.8252c0 23.2832 21.3496 43.8262 44.7998 43.8262zM440 272
-h48c13.2549 0 24 -10.7451 24 -24v-192c0 -13.2549 -10.7451 -24 -24 -24h-48c-13.2549 0 -24 10.7451 -24 24v192c0 13.2549 10.7451 24 24 24zM464 60c11.0459 0 20 8.9541 20 20s-8.9541 20 -20 20s-20 -8.9541 -20 -20s8.9541 -20 20 -20z" />
-    <glyph glyph-name="hand-point-up" unicode="&#xf0a6;" horiz-adv-x="384" 
-d="M135.652 448c23.625 0 43.8252 -20.6504 43.8252 -44.7998v-99.8516c17.0488 16.3408 49.7666 18.3467 70.9443 -6.29883c22.8291 14.2881 53.0176 2.14746 62.3154 -16.4502c49.1406 8.97461 71.2627 -21.9453 71.2627 -72.5996
-c0 -2.74609 -0.203125 -13.2764 -0.195312 -16c0.167969 -61.9707 -31.0645 -76.8936 -38.3145 -123.731c-1.80762 -11.6729 -11.8916 -20.2686 -23.7041 -20.2686h-171.525l-0.000976562 0.00195312c-18.3662 0.0107422 -35.8887 10.6074 -43.8447 28.4639
-c-12.9941 28.8857 -49.0381 95.4121 -77.3232 107.534c-18.1943 7.79688 -29.084 21.3838 -29.0918 40c-0.0136719 34.2217 35.0977 57.752 66.9082 44.1191c8.3584 -3.58301 16.6699 -8.3125 24.918 -14.1533v149.234c0 23.4502 20.543 44.7998 43.8262 44.7998zM136 32
-h192c13.2549 0 24 -10.7451 24 -24v-48c0 -13.2549 -10.7451 -24 -24 -24h-192c-13.2549 0 -24 10.7451 -24 24v48c0 13.2549 10.7451 24 24 24zM304 4c-11.0459 0 -20 -8.9541 -20 -20s8.9541 -20 20 -20s20 8.9541 20 20s-8.9541 20 -20 20z" />
-    <glyph glyph-name="hand-point-down" unicode="&#xf0a7;" horiz-adv-x="384" 
-d="M91.8262 -19.2002v149.234c-8.24805 -5.84082 -16.5586 -10.5703 -24.918 -14.1533c-31.8105 -13.6328 -66.9219 9.89746 -66.9082 44.1191c0.0078125 18.6162 10.8975 32.2031 29.0918 40c28.2861 12.1221 64.3291 78.6484 77.3232 107.534
-c7.95605 17.8564 25.4785 28.4531 43.8447 28.4639l0.000976562 0.00195312h171.526c11.8115 0 21.8965 -8.5957 23.7031 -20.2686c7.25 -46.8379 38.4824 -61.7607 38.3145 -123.731c-0.00683594 -2.72363 0.195312 -13.2539 0.195312 -16
-c0 -50.6543 -22.1221 -81.5742 -71.2627 -72.5996c-9.29688 -18.5977 -39.4863 -30.7383 -62.3154 -16.4502c-21.1768 -24.6455 -53.8955 -22.6396 -70.9443 -6.29883v-99.8516c0 -24.1494 -20.2002 -44.7998 -43.8252 -44.7998
-c-23.2832 0 -43.8262 21.3496 -43.8262 44.7998zM112 376v48c0 13.2549 10.7451 24 24 24h192c13.2549 0 24 -10.7451 24 -24v-48c0 -13.2549 -10.7451 -24 -24 -24h-192c-13.2549 0 -24 10.7451 -24 24zM324 400c0 11.0459 -8.9541 20 -20 20s-20 -8.9541 -20 -20
-s8.9541 -20 20 -20s20 8.9541 20 20z" />
-    <glyph glyph-name="arrow-circle-left" unicode="&#xf0a8;" 
-d="M256 -56c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248s-111 -248 -248 -248zM284.9 87.5996l-75.5 72.4004h182.6c13.2998 0 24 10.7002 24 24v16c0 13.2998 -10.7002 24 -24 24h-182.6l75.5 72.4004c9.69922 9.2998 9.89941 24.7998 0.399414 34.2998
-l-11 10.8994c-9.39941 9.40039 -24.5996 9.40039 -33.8994 0l-132.7 -132.6c-9.40039 -9.40039 -9.40039 -24.5996 0 -33.9004l132.7 -132.699c9.39941 -9.40039 24.5996 -9.40039 33.8994 0l11 10.8994c9.5 9.5 9.2998 25 -0.399414 34.2998z" />
-    <glyph glyph-name="arrow-circle-right" unicode="&#xf0a9;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM227.1 296.4l75.5 -72.4004h-182.6c-13.2998 0 -24 -10.7002 -24 -24v-16c0 -13.2998 10.7002 -24 24 -24h182.6l-75.5 -72.4004
-c-9.69922 -9.2998 -9.89941 -24.7998 -0.399414 -34.2998l11 -10.8994c9.39941 -9.40039 24.5996 -9.40039 33.8994 0l132.7 132.6c9.40039 9.40039 9.40039 24.5996 0 33.9004l-132.7 132.8c-9.39941 9.39941 -24.5996 9.39941 -33.8994 0l-11 -10.9004
-c-9.5 -9.59961 -9.2998 -25.0996 0.399414 -34.3994z" />
-    <glyph glyph-name="arrow-circle-up" unicode="&#xf0aa;" 
-d="M8 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM151.6 163.1l72.4004 75.5v-182.6c0 -13.2998 10.7002 -24 24 -24h16c13.2998 0 24 10.7002 24 24v182.6l72.4004 -75.5c9.2998 -9.69922 24.7998 -9.89941 34.2998 -0.399414
-l10.8994 11c9.40039 9.39941 9.40039 24.5996 0 33.8994l-132.6 132.7c-9.40039 9.40039 -24.5996 9.40039 -33.9004 0l-132.8 -132.7c-9.39941 -9.39941 -9.39941 -24.5996 0 -33.8994l10.9004 -11c9.59961 -9.5 25.0996 -9.2998 34.3994 0.399414z" />
-    <glyph glyph-name="arrow-circle-down" unicode="&#xf0ab;" 
-d="M504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM360.4 220.9l-72.4004 -75.5v182.6c0 13.2998 -10.7002 24 -24 24h-16c-13.2998 0 -24 -10.7002 -24 -24v-182.6l-72.4004 75.5
-c-9.2998 9.69922 -24.7998 9.89941 -34.2998 0.399414l-10.8994 -11c-9.40039 -9.39941 -9.40039 -24.5996 0 -33.8994l132.6 -132.7c9.40039 -9.40039 24.5996 -9.40039 33.9004 0l132.699 132.7c9.40039 9.39941 9.40039 24.5996 0 33.8994l-10.8994 11
-c-9.5 9.5 -25 9.2998 -34.2998 -0.399414z" />
-    <glyph glyph-name="globe" unicode="&#xf0ac;" horiz-adv-x="496" 
-d="M336.5 288h-177c14.5 89.2998 48.7002 152 88.5 152s74 -62.7002 88.5 -152zM152 192c0 22.2002 1.2002 43.5 3.2998 64h185.3c2.10059 -20.5 3.30078 -41.7998 3.30078 -64s-1.2002 -43.5 -3.30078 -64h-185.3c-2.09961 20.5 -3.2998 41.7998 -3.2998 64zM476.7 288
-h-108c-8.7998 56.9004 -25.6006 107.8 -50 141.6c71.5 -21.1992 129.399 -73.6992 158 -141.6zM177.2 429.6c-24.4004 -33.7998 -41.2002 -84.6992 -49.9004 -141.6h-108c28.5 67.9004 86.5 120.4 157.9 141.6zM487.4 256c5.39941 -20.5 8.5 -41.7998 8.5 -64
-s-3.10059 -43.5 -8.60059 -64h-114.6c2.09961 21 3.2998 42.5 3.2998 64s-1.2002 43 -3.2998 64h114.7zM120 192c0 -21.5 1.2002 -43 3.2002 -64h-114.601c-5.39941 20.5 -8.59961 41.7998 -8.59961 64s3.2002 43.5 8.59961 64h114.7
-c-2.09961 -21 -3.2998 -42.5 -3.2998 -64zM159.5 96h177c-14.5 -89.2998 -48.7002 -152 -88.5 -152s-74 62.7002 -88.5 152zM318.8 -45.5996c24.4004 33.7998 41.2002 84.6992 50 141.6h108c-28.5996 -67.9004 -86.5996 -120.4 -158 -141.6zM19.2998 96h108
-c8.7998 -56.9004 25.6006 -107.8 50 -141.6c-71.5 21.1992 -129.399 73.6992 -158 141.6z" />
-    <glyph glyph-name="wrench" unicode="&#xf0ad;" 
-d="M507.73 338.9c11.7891 -47.4102 -0.84082 -99.6602 -37.9102 -136.73c-39.9004 -39.9004 -97.25 -50.9297 -147.37 -34.2197l-213.21 -213.21c-24.9902 -24.9902 -65.5098 -24.9902 -90.5 0s-24.9902 65.5098 0 90.5l213.39 213.39
-c-16.5 50.1006 -5.58984 107.561 34.0498 147.2c37.0303 37.0195 89.2002 49.6699 136.58 37.9297c9.08984 -2.25977 12.2803 -13.54 5.66016 -20.1602l-74.3604 -74.3594l11.3105 -67.8799l67.8799 -11.3105l74.3604 74.3604
-c6.58008 6.58008 17.8799 3.51953 20.1201 -5.50977zM64 -24c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" />
-    <glyph glyph-name="tasks" unicode="&#xf0ae;" 
-d="M139.61 412.5l17 -16.5c2.13281 -2.18066 3.44922 -5.16797 3.44922 -8.45605c0 -3.33496 -1.35352 -6.35547 -3.54004 -8.54395l-72.1992 -72.1904l-15.5898 -15.6191c-2.29297 -2.17969 -5.39941 -3.51758 -8.80859 -3.51758
-c-3.41016 0 -6.50977 1.33789 -8.80176 3.51758l-47.5898 47.3994c-2.18066 2.17383 -3.53125 5.18262 -3.53125 8.50195c0 3.31836 1.35059 6.3252 3.53125 8.49805l15.7002 15.7197c2.17285 2.18164 5.18164 3.53125 8.50098 3.53125s6.3252 -1.34961 8.49902 -3.53125
-l22.6992 -22.1191l63.6807 63.3096c2.17285 2.18066 5.18262 3.53125 8.50098 3.53125c3.31934 0 6.3252 -1.35059 8.49902 -3.53125zM139.61 253.31l16.9795 -17c2.125 -2.16504 3.43652 -5.13574 3.43652 -8.40625c0 -3.31641 -1.34863 -6.32031 -3.52637 -8.49316
-l-72.2002 -72.2197l-15.7002 -15.6904c-2.29004 -2.17871 -5.39551 -3.5166 -8.80273 -3.5166c-3.4082 0 -6.50586 1.33789 -8.79688 3.5166l-47.4697 47.5c-2.18066 2.17285 -3.53125 5.18262 -3.53125 8.50195c0 3.31836 1.35059 6.3252 3.53125 8.49805l15.7002 15.6904
-c2.17285 2.18066 5.18164 3.53125 8.50098 3.53125s6.3252 -1.35059 8.49902 -3.53125l22.6992 -22.1006l63.6807 63.7197c2.17285 2.18164 5.18262 3.53125 8.50098 3.53125c3.31934 0 6.3252 -1.34961 8.49902 -3.53125zM64 80c26.4922 0 48 -21.5078 48 -48
-s-21.5078 -48 -48 -48c-26.4697 0 -48.5898 21.5 -48.5898 48s22.0996 48 48.5898 48zM496 64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-288c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h288zM496 384
-c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-288c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h288zM496 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-288c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h288z" />
-    <glyph glyph-name="filter" unicode="&#xf0b0;" 
-d="M487.976 448c21.3623 0 32.0459 -25.8965 16.9717 -40.9707l-184.947 -184.971v-262.039c0 -19.5127 -21.9805 -30.71 -37.7627 -19.6611l-80 55.9795c-6.41602 4.49219 -10.2373 11.8311 -10.2373 19.6621v206.059l-184.942 184.971
-c-15.1045 15.1045 -4.34766 40.9707 16.9707 40.9707h463.947z" />
-    <glyph glyph-name="briefcase" unicode="&#xf0b1;" 
-d="M320 112v48h192v-144c0 -25.5996 -22.4004 -48 -48 -48h-416c-25.5996 0 -48 22.4004 -48 48v144h192v-48c0 -8.83984 7.16016 -16 16 -16h96c8.83984 0 16 7.16016 16 16zM464 320c25.5996 0 48 -22.4004 48 -48v-80h-512v80c0 25.5996 22.4004 48 48 48h80v48
-c0 25.5996 22.4004 48 48 48h160c25.5996 0 48 -22.4004 48 -48v-48h80zM320 320v32h-128v-32h128z" />
-    <glyph glyph-name="arrows-alt" unicode="&#xf0b2;" 
-d="M352.201 22.2246l-79.1963 -79.1953c-9.37305 -9.37305 -24.5684 -9.37305 -33.9404 0l-79.1963 79.1953c-15.1191 15.1191 -4.41113 40.9717 16.9707 40.9707h51.1621l-0.000976562 100.805h-100.804v-51.1621c0 -21.3818 -25.8516 -32.0898 -40.9717 -16.9707
-l-79.1953 79.1963c-9.37305 9.37207 -9.37305 24.5684 0 33.9404l79.1953 79.1963c15.1191 15.1191 40.9717 4.41113 40.9717 -16.9717v-51.2285h100.804v100.804h-51.2305c-21.3818 0 -32.0898 25.8516 -16.9707 40.9717l79.1963 79.1953
-c9.37305 9.37305 24.5684 9.37305 33.9404 0l79.1963 -79.1953c15.1191 -15.1191 4.41113 -40.9717 -16.9707 -40.9717h-51.1621v-100.804h100.804v51.1621c0 21.3818 25.8516 32.0898 40.9707 16.9707l79.1953 -79.1963c9.37305 -9.37207 9.37305 -24.5684 0 -33.9404
-l-79.1953 -79.1963c-15.1191 -15.1191 -40.9717 -4.41113 -40.9707 16.9717v51.2285h-100.803v-100.804h51.2305c21.3818 0 32.0898 -25.8516 16.9707 -40.9717z" />
-    <glyph glyph-name="users" unicode="&#xf0c0;" horiz-adv-x="640" 
-d="M96 224c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM544 224c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM576 192c35.2998 0 64 -28.7002 64 -64v-32
-c0 -17.7002 -14.2998 -32 -32 -32h-66c-6.2002 47.4004 -34.7998 87.2998 -75.0996 109.4c11.5996 11.5 27.5 18.5996 45.0996 18.5996h64zM320 192c-61.9004 0 -112 50.0996 -112 112s50.0996 112 112 112s112 -50.0996 112 -112s-50.0996 -112 -112 -112zM396.8 160
-c63.6006 0 115.2 -51.5996 115.2 -115.2v-28.7998c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v28.7998c0 63.6006 51.5996 115.2 115.2 115.2h8.2998c20.9004 -10 43.9004 -16 68.5 -16s47.7002 6 68.5 16h8.2998zM173.1 173.4
-c-40.2998 -22.1006 -68.8994 -62 -75.1992 -109.4h-65.9004c-17.7002 0 -32 14.2998 -32 32v32c0 35.2998 28.7002 64 64 64h64c17.5996 0 33.5 -7.09961 45.0996 -18.5996z" />
-    <glyph glyph-name="link" unicode="&#xf0c1;" 
-d="M326.612 262.609c59.7471 -59.8096 58.9268 -155.698 0.359375 -214.591c-0.109375 -0.119141 -0.239258 -0.25 -0.359375 -0.369141l-67.2002 -67.2002c-59.2705 -59.2705 -155.699 -59.2627 -214.96 0c-59.2705 59.2598 -59.2705 155.7 0 214.96l37.1055 37.1055
-c9.84082 9.84082 26.7861 3.30078 27.2939 -10.6055c0.648438 -17.7227 3.82617 -35.5273 9.69043 -52.7207c1.98633 -5.82227 0.567383 -12.2627 -3.7832 -16.6123l-13.0869 -13.0869c-28.0254 -28.0264 -28.9053 -73.6602 -1.15527 -101.96
-c28.0244 -28.5791 74.0859 -28.749 102.325 -0.510742l67.2002 67.1904c28.1914 28.1914 28.0732 73.7568 0 101.83c-3.70117 3.69434 -7.42871 6.56348 -10.3408 8.56934c-4.05078 2.78125 -6.74707 7.37402 -6.94727 12.6055
-c-0.395508 10.5674 3.34766 21.4561 11.6982 29.8057l21.0537 21.0557c5.52148 5.52051 14.1826 6.19922 20.584 1.73047c7.38574 -5.15723 14.1709 -10.8447 20.5225 -17.1963zM467.547 403.551c59.2705 -59.2598 59.2705 -155.7 -0.000976562 -214.959l-37.1055 -37.1055
-c-9.84082 -9.83984 -26.7852 -3.30078 -27.2939 10.6055c-0.648438 17.7227 -3.82617 35.5273 -9.69043 52.7217c-1.98633 5.82129 -0.567383 12.2617 3.7832 16.6113l13.0869 13.0869c28.0264 28.0264 28.9053 73.6602 1.15527 101.96
-c-28.0254 28.5791 -74.0869 28.749 -102.325 0.510742l-67.2002 -67.1904c-28.1914 -28.1914 -28.0732 -73.7568 0 -101.83c3.70117 -3.69434 7.42871 -6.56348 10.3408 -8.56934c4.05078 -2.78125 6.74707 -7.37402 6.94727 -12.6055
-c0.395508 -10.5674 -3.34766 -21.4561 -11.6982 -29.8057l-21.0537 -21.0557c-5.52051 -5.51953 -14.1826 -6.19922 -20.584 -1.73047c-7.38574 5.15625 -14.1699 10.8447 -20.5215 17.1953c-59.7471 59.8096 -58.9258 155.698 -0.359375 214.591
-c0.109375 0.119141 0.239258 0.25 0.359375 0.369141l67.2002 67.2002c59.2705 59.2705 155.699 59.2627 214.96 0z" />
-    <glyph glyph-name="cloud" unicode="&#xf0c2;" horiz-adv-x="640" 
-d="M537.6 221.4c58.4004 -11.8008 102.4 -63.5 102.4 -125.4c0 -70.7002 -57.2998 -128 -128 -128h-368c-79.5 0 -144 64.5 -144 144c0 62.7998 40.2002 116.2 96.2002 135.9c-0.100586 2.69922 -0.200195 5.39941 -0.200195 8.09961c0 88.4004 71.5996 160 160 160
-c59.2998 0 111 -32.2002 138.7 -80.2002c15.2002 10.2002 33.5996 16.2002 53.2998 16.2002c53 0 96 -43 96 -96c0 -12.2002 -2.2998 -23.9004 -6.40039 -34.5996z" />
-    <glyph glyph-name="flask" unicode="&#xf0c3;" horiz-adv-x="448" 
-d="M437.2 44.5c29.2998 -47 -4.40039 -108.5 -60.1006 -108.5h-306.199c-55.6006 0 -89.4004 61.4004 -60.1006 108.5l117.2 188.5v151h-8c-13.2998 0 -24 10.7002 -24 24v16c0 13.2998 10.7002 24 24 24h208c13.2998 0 24 -10.7002 24 -24v-16
-c0 -13.2998 -10.7002 -24 -24 -24h-8v-151zM137.9 128h172l-48.2002 77.5996c-3.60059 5.2002 -5.7998 11.5 -5.7998 18.4004v160h-64v-160c0 -6.7998 -2.10059 -13.2002 -5.80078 -18.4004z" />
-    <glyph glyph-name="cut" unicode="&#xf0c4;" horiz-adv-x="448" 
-d="M278.06 192l166.421 -166.43c4.68945 -4.69043 4.68945 -12.29 0 -16.9707c-32.8008 -32.7998 -85.9902 -32.7998 -118.79 0l-115.511 115.521l-24.8594 -24.8604c4.30957 -10.9199 6.67969 -22.8096 6.67969 -35.2598c0 -53.0195 -42.9805 -96 -96 -96
-s-96 42.9805 -96 96s42.9805 96 96 96c4.53027 0 8.99023 -0.320312 13.3604 -0.929688l32.9297 32.9297l-32.9297 32.9297c-4.37012 -0.609375 -8.82031 -0.929688 -13.3604 -0.929688c-53.0195 0 -96 42.9805 -96 96s42.9805 96 96 96s96 -42.9805 96 -96
-c0 -12.4502 -2.37012 -24.3398 -6.67969 -35.2598l24.8594 -24.8604l115.511 115.521c32.7998 32.7998 85.9893 32.7998 118.79 0c4.68945 -4.68066 4.68945 -12.2803 0 -16.9707zM96 288c17.6396 0 32 14.3604 32 32s-14.3604 32 -32 32s-32 -14.3604 -32 -32
-s14.3604 -32 32 -32zM96 32c17.6396 0 32 14.3604 32 32s-14.3604 32 -32 32s-32 -14.3604 -32 -32s14.3604 -32 32 -32z" />
-    <glyph glyph-name="copy" unicode="&#xf0c5;" horiz-adv-x="448" 
-d="M320 0v-40c0 -13.2549 -10.7451 -24 -24 -24h-272c-13.2549 0 -24 10.7451 -24 24v368c0 13.2549 10.7451 24 24 24h72v-296c0 -30.8789 25.1211 -56 56 -56h168zM320 344c0 -13.2002 10.7998 -24 24 -24h104v-264c0 -13.2549 -10.7451 -24 -24 -24h-272
-c-13.2549 0 -24 10.7451 -24 24v368c0 13.2549 10.7451 24 24 24h168v-104zM440.971 375.029c4.34473 -4.34473 7.0293 -10.3477 7.0293 -16.9707v-6.05859h-96v96h6.05859c6.62305 0 12.626 -2.68457 16.9707 -7.0293z" />
-    <glyph glyph-name="paperclip" unicode="&#xf0c6;" horiz-adv-x="448" 
-d="M43.2461 -18.1416c-58.4297 60.2891 -57.3408 157.511 1.38574 217.581l209.76 214.561c44.3164 45.332 116.352 45.3359 160.672 0c43.8896 -44.8936 43.9424 -117.329 0 -162.276l-182.85 -186.852c-29.8545 -30.5371 -78.6328 -30.1113 -107.981 0.998047
-c-28.2754 29.9697 -27.3682 77.4727 1.45117 106.953l143.743 146.835c6.18262 6.31348 16.3125 6.42188 22.626 0.241211l22.8613 -22.3799c6.31445 -6.18164 6.42188 -16.3115 0.241211 -22.626l-143.729 -146.82c-4.93164 -5.04492 -5.23535 -13.4287 -0.647461 -18.292
-c4.37207 -4.63379 11.2451 -4.71094 15.6875 -0.165039l182.85 186.851c19.6123 20.0625 19.6123 52.7256 -0.0117188 72.7979c-19.1885 19.627 -49.957 19.6377 -69.1533 0l-209.762 -214.56c-34.7627 -35.5605 -35.2988 -93.1201 -1.19043 -128.313
-c34.0098 -35.0928 88.9844 -35.1367 123.058 -0.285156l172.061 175.999c6.17676 6.31836 16.3066 6.43262 22.626 0.255859l22.877 -22.3643c6.31836 -6.17676 6.43359 -16.3066 0.255859 -22.626l-172.061 -175.998c-59.5752 -60.9385 -155.942 -60.2158 -214.77 0.485352
-z" />
-    <glyph glyph-name="save" unicode="&#xf0c7;" horiz-adv-x="448" 
-d="M433.941 318.059c8.68848 -8.68848 14.0586 -20.6943 14.0586 -33.9404v-268.118c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h268.118c13.2461 0 25.252 -5.37012 33.9404 -14.0586zM224 32
-c35.3457 0 64 28.6543 64 64s-28.6543 64 -64 64s-64 -28.6543 -64 -64s28.6543 -64 64 -64zM320 336.52c0 3.31152 -1.34277 6.31348 -3.51465 8.48535l-3.48047 3.48047c-2.25 2.25098 -5.30176 3.51465 -8.48535 3.51465h-228.52c-6.62695 0 -12 -5.37305 -12 -12v-104
-c0 -6.62695 5.37305 -12 12 -12h232c6.62695 0 12 5.37305 12 12v100.52z" />
-    <glyph glyph-name="square" unicode="&#xf0c8;" horiz-adv-x="448" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352z" />
-    <glyph glyph-name="bars" unicode="&#xf0c9;" horiz-adv-x="448" 
-d="M16 316c-8.83691 0 -16 7.16309 -16 16v40c0 8.83691 7.16309 16 16 16h416c8.83691 0 16 -7.16309 16 -16v-40c0 -8.83691 -7.16309 -16 -16 -16h-416zM16 156c-8.83691 0 -16 7.16309 -16 16v40c0 8.83691 7.16309 16 16 16h416c8.83691 0 16 -7.16309 16 -16v-40
-c0 -8.83691 -7.16309 -16 -16 -16h-416zM16 -4c-8.83691 0 -16 7.16309 -16 16v40c0 8.83691 7.16309 16 16 16h416c8.83691 0 16 -7.16309 16 -16v-40c0 -8.83691 -7.16309 -16 -16 -16h-416z" />
-    <glyph glyph-name="list-ul" unicode="&#xf0ca;" 
-d="M48 400c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48s-48 21.5078 -48 48s21.5078 48 48 48zM48 240c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48s-48 21.5078 -48 48s21.5078 48 48 48zM48 80c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48
-s-48 21.5078 -48 48s21.5078 48 48 48zM496 64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 384c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16
-h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320z" />
-    <glyph glyph-name="list-ol" unicode="&#xf0cb;" 
-d="M61.7695 47c19.6104 -5.12012 28.7002 -20.5 28.7305 -34.8799c0 -21.3701 -14.3398 -44.1201 -48.5 -44.1201c-16.6201 0 -29.29 4.75 -37 9.44043c-5.82031 4.21973 -6.34961 9.80957 -2.62988 15.9395l5.58984 9.31055c3.86035 6.61914 9.11035 7 15.5996 3.11914
-c4.76758 -1.95996 10.0107 -3.07617 15.4707 -3.11914c10.1602 0 14.3594 3.5 14.3594 8.21973c0 6.64941 -5.60938 9.08984 -15.9395 9.08984h-4.73047c-5.95996 0 -9.25 2.12012 -12.25 7.87988l-1.0498 1.92969c-2.4502 4.75 -1.2002 9.81055 2.7998 14.8809l5.61035 7
-c3.47461 4.32422 7.0957 8.37695 11 12.3096h-22.8301c-4.41504 0 -8 3.58496 -8 8v16c0 4.41504 3.58496 8 8 8h57c7.5 0 11.3398 -4 11.3398 -11.3496v-3.31055c0.0136719 -0.299805 0.0175781 -0.595703 0.0175781 -0.899414
-c0 -5.10449 -1.9248 -9.76367 -5.08789 -13.29zM496 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 384c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM16 288
-c-4.41504 0 -8 3.58496 -8 8v16c0 4.41504 3.58496 8 8 8h16v64h-8c-4.4082 0.0078125 -7.98145 3.59766 -7.98145 8.00781c0 1.2832 0.303711 2.49707 0.841797 3.57227l8 16c1.31055 2.62012 4.01367 4.41406 7.13965 4.41992h24c4.41504 0 8 -3.58496 8 -8v-88h16
-c4.41504 0 8 -3.58496 8 -8v-16c0 -4.41504 -3.58496 -8 -8 -8h-64zM12.0898 128c-7.00977 0 -12.0898 4 -12.0898 11.4102v4c0 47.2803 51 56.3994 50.9697 69.1201c0 7.18945 -5.9502 8.75 -9.2793 8.75c-0.0185547 0 -0.0380859 0.000976562 -0.0566406 0.000976562
-c-3.65918 0 -6.97949 -1.46582 -9.40332 -3.84082c-5.12012 -4.91016 -10.5107 -7 -16.1201 -2.44043l-8.58008 6.87988c-5.7998 4.53027 -7.16992 9.78027 -2.7998 15.3701c6.65918 8.75 19.0996 18.75 40.46 18.75c19.4697 0 44.4697 -10.5 44.4697 -39.5596
-c0 -37.7607 -45.0498 -46.1504 -48.3398 -56.4404h38.6797c4.41504 0 8 -3.58496 8 -8v-16c0 -4.41504 -3.58496 -8 -8 -8h-67.9102z" />
-    <glyph glyph-name="strikethrough" unicode="&#xf0cc;" 
-d="M496 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-480c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h102.29c-11.6797 16.5303 -19.7803 35.4697 -21.7803 56.3604c-0.385742 3.97559 -0.577148 7.88281 -0.577148 11.96
-c0 68.2266 55.3633 123.624 123.577 123.68h68c50.1416 0 93.5244 -28.7686 114.521 -70.7998l0.529297 -1c1.07324 -2.14844 1.70215 -4.57715 1.70215 -7.13965c0 -6.26562 -3.61035 -11.6953 -8.86133 -14.3203l-42.9404 -21.4707
-c-2.14941 -1.07324 -4.5791 -1.70312 -7.14355 -1.70312c-6.2627 0 -11.6895 3.60645 -14.3164 8.85352c-8.18652 16.374 -25.0859 27.5801 -44.623 27.5801h-0.0371094h-66.79c-24.0352 -0.000976562 -43.5479 -19.5059 -43.5479 -43.541
-c0 -19.5742 12.9414 -36.1494 30.7285 -41.6289l87.1699 -26.8301h202.1zM315.76 128h94.3906c2.6084 -7.7373 4.44434 -15.9834 5.33984 -24.3604c0.385742 -3.97559 0.577148 -7.88281 0.577148 -11.96c0 -68.2266 -55.3633 -123.624 -123.577 -123.68h-68
-c-50.1416 0 -93.5244 28.7686 -114.521 70.7998l-0.529297 1c-1.07324 2.14844 -1.70215 4.57715 -1.70215 7.13965c0 6.26562 3.61035 11.6953 8.86133 14.3203l42.9404 21.4707c2.14941 1.07324 4.5791 1.70312 7.14355 1.70312
-c6.2627 0 11.6895 -3.60645 14.3164 -8.85352c8.18652 -16.374 25.0859 -27.5801 44.623 -27.5801h0.0371094h66.79c24.0254 0.0224609 43.5273 19.5244 43.5498 43.5498c-0.0117188 15.3828 -8.07227 28.8594 -20.2402 36.4502z" />
-    <glyph glyph-name="underline" unicode="&#xf0cd;" horiz-adv-x="448" 
-d="M32 384c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h144c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32v-160c0 -44.1533 35.8467 -80 80 -80s80 35.8467 80 80v160h-32c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h144c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32v-160c0 -88.2197 -71.7803 -160 -160 -160s-160 71.7803 -160 160v160h-32zM432 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416z" />
-    <glyph glyph-name="table" unicode="&#xf0ce;" 
-d="M464 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h416zM224 32v96h-160v-96h160zM224 192v96h-160v-96h160zM448 32v96h-160v-96h160zM448 192v96h-160v-96h160z" />
-    <glyph glyph-name="magic" unicode="&#xf0d0;" 
-d="M224 352l-16 32l-32 16l32 16l16 32l16 -32l32 -16l-32 -16zM80 288l-26.6602 53.3301l-53.3398 26.6699l53.3398 26.6699l26.6602 53.3301l26.6602 -53.3301l53.3398 -26.6699l-53.3398 -26.6699zM432 160l26.6602 -53.3301l53.3398 -26.6699l-53.3398 -26.6699
-l-26.6602 -53.3301l-26.6602 53.3301l-53.3398 26.6699l53.3398 26.6699zM502.62 353.77c12.5 -12.4893 12.5 -32.7598 0 -45.2393l-363.14 -363.15c-6.25 -6.25 -14.4404 -9.37012 -22.6309 -9.37012c-8.17969 0 -16.3691 3.12012 -22.6191 9.37012l-84.8506 84.8506
-c-12.5 12.4893 -12.5 32.75 0 45.25l363.14 363.14c6.25 6.25977 14.4404 9.37988 22.6309 9.37988c8.18945 0 16.3799 -3.12012 22.6191 -9.37988zM359.45 244.54l86.5996 86.5996l-50.9102 50.9102l-86.5996 -86.5996z" />
-    <glyph glyph-name="truck" unicode="&#xf0d1;" horiz-adv-x="640" 
-d="M624 96c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-48c0 -53 -43 -96 -96 -96s-96 43 -96 96h-128c0 -53 -43 -96 -96 -96s-96 43 -96 96h-16c-26.5 0 -48 21.5 -48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48 -21.5 48 -48v-48h44.0996
-c12.7002 0 24.9004 -5.09961 33.9004 -14.0996l99.9004 -99.9004c9 -9 14.0996 -21.2002 14.0996 -33.9004v-108.1h16zM160 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM480 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48
-s21.5 -48 48 -48zM560 192v12.0996l-99.9004 99.9004h-44.0996v-112h144z" />
-    <glyph glyph-name="money-bill" unicode="&#xf0d6;" horiz-adv-x="640" 
-d="M608 384c17.6699 0 32 -14.3301 32 -32v-320c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32v320c0 17.6699 14.3301 32 32 32h576zM48 48h64c0 35.3496 -28.6504 64 -64 64v-64zM48 272c35.3496 0 64 28.6504 64 64h-64v-64zM320 96
-c44.1699 0 80 42.9697 80 96c0 53.0195 -35.8203 96 -80 96s-80 -42.9805 -80 -96c0 -53.0098 35.8096 -96 80 -96zM592 48v64c-35.3496 0 -64 -28.6504 -64 -64h64zM592 272v64h-64c0 -35.3496 28.6504 -64 64 -64z" />
-    <glyph glyph-name="caret-down" unicode="&#xf0d7;" horiz-adv-x="320" 
-d="M31.2998 256h257.3c17.8008 0 26.7002 -21.5 14.1006 -34.0996l-128.601 -128.7c-7.7998 -7.7998 -20.5 -7.7998 -28.2998 0l-128.6 128.7c-12.6006 12.5996 -3.7002 34.0996 14.0996 34.0996z" />
-    <glyph glyph-name="caret-up" unicode="&#xf0d8;" horiz-adv-x="320" 
-d="M288.662 96h-257.324c-17.8184 0 -26.7412 21.543 -14.1416 34.1416l128.662 128.662c7.80957 7.81055 20.4736 7.81055 28.2832 0l128.662 -128.662c12.6006 -12.5986 3.67676 -34.1416 -14.1416 -34.1416z" />
-    <glyph glyph-name="caret-left" unicode="&#xf0d9;" horiz-adv-x="192" 
-d="M192 320.662v-257.324c0 -17.8184 -21.543 -26.7412 -34.1416 -14.1416l-128.662 128.662c-7.81055 7.80957 -7.81055 20.4736 0 28.2832l128.662 128.662c12.5986 12.6006 34.1416 3.67676 34.1416 -14.1416z" />
-    <glyph glyph-name="caret-right" unicode="&#xf0da;" horiz-adv-x="192" 
-d="M0 63.3379v257.324c0 17.8184 21.543 26.7412 34.1416 14.1416l128.662 -128.662c7.81055 -7.80957 7.81055 -20.4736 0 -28.2832l-128.662 -128.662c-12.5986 -12.6006 -34.1416 -3.67676 -34.1416 14.1416z" />
-    <glyph glyph-name="columns" unicode="&#xf0db;" 
-d="M464 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h416zM224 32v256h-160v-256h160zM448 32v256h-160v-256h160z" />
-    <glyph glyph-name="sort" unicode="&#xf0dc;" horiz-adv-x="320" 
-d="M41 160h238c21.4004 0 32.0996 -25.9004 17 -41l-119 -119c-9.40039 -9.40039 -24.5996 -9.40039 -33.9004 0l-119.1 119c-15.0996 15.0996 -4.40039 41 17 41zM296 265c15.0996 -15.0996 4.40039 -41 -17 -41h-238c-21.4004 0 -32.0996 25.9004 -17 41l119.1 119
-c9.30078 9.40039 24.5 9.40039 33.9004 0z" />
-    <glyph glyph-name="sort-down" unicode="&#xf0dd;" horiz-adv-x="320" 
-d="M41 160h238c21.4004 0 32.0996 -25.9004 17 -41l-119 -119c-9.40039 -9.40039 -24.5996 -9.40039 -33.9004 0l-119.1 119c-15.0996 15.0996 -4.40039 41 17 41z" />
-    <glyph glyph-name="sort-up" unicode="&#xf0de;" horiz-adv-x="320" 
-d="M279 224h-238c-21.4004 0 -32.0996 25.9004 -17 41l119 119c9.40039 9.40039 24.5996 9.40039 33.9004 0l119 -119c15.1992 -15.0996 4.5 -41 -16.9004 -41z" />
-    <glyph glyph-name="envelope" unicode="&#xf0e0;" 
-d="M502.3 257.2c3.90039 3.09961 9.7002 0.200195 9.7002 -4.7002v-204.5c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v204.4c0 5 5.7002 7.7998 9.7002 4.69922c22.3994 -17.3994 52.0996 -39.5 154.1 -113.6
-c21.1006 -15.4004 56.7002 -47.7998 92.2002 -47.5996c35.7002 -0.300781 72 32.7998 92.2998 47.5996c102 74.0996 131.601 96.2998 154 113.7zM256 128c-23.2002 -0.400391 -56.5996 29.2002 -73.4004 41.4004c-132.699 96.2998 -142.8 104.8 -173.399 128.699
-c-5.7998 4.60059 -9.2002 11.5 -9.2002 18.9004v19c0 26.5 21.5 48 48 48h416c26.5 0 48 -21.5 48 -48v-19c0 -7.40039 -3.40039 -14.4004 -9.2002 -18.9004c-30.5996 -24 -40.7002 -32.3994 -173.399 -128.699c-16.8008 -12.2002 -50.2002 -41.8008 -73.4004 -41.4004z" />
-    <glyph glyph-name="undo" unicode="&#xf0e2;" 
-d="M212.333 223.667h-200.333c-6.62695 0 -12 5.37305 -12 12v200.333c0 6.62695 5.37305 12 12 12h48c6.62695 0 12 -5.37305 12 -12v-78.1123c45.7734 50.833 112.26 82.6426 186.175 82.1055c136.906 -0.994141 246.448 -111.623 246.157 -248.532
-c-0.291016 -136.719 -111.212 -247.461 -247.999 -247.461c-64.0889 0 -122.496 24.3135 -166.51 64.2148c-5.09961 4.62207 -5.33398 12.5537 -0.466797 17.4199l33.9668 33.9668c4.47363 4.47461 11.6621 4.71777 16.4004 0.525391
-c31.0361 -27.4629 71.8564 -44.127 116.609 -44.127c97.2676 0 176 78.7158 176 176c0 97.2666 -78.7158 176 -176 176c-58.4961 0 -110.28 -28.4756 -142.274 -72.333h98.2744c6.62695 0 12 -5.37305 12 -12v-48c0 -6.62695 -5.37305 -12 -12 -12z" />
-    <glyph glyph-name="gavel" unicode="&#xf0e3;" 
-d="M504.971 248.638c9.37207 -9.37305 9.37207 -24.5684 0 -33.9404l-124.451 -124.451c-9.37109 -9.37305 -24.5674 -9.37305 -33.9404 0l-22.627 22.627c-9.37305 9.37207 -9.37305 24.5684 0 33.9414l5.65723 5.65625l-39.5986 39.5986l-81.04 -81.04l5.65723 -5.65723
-c12.4971 -12.4971 12.4971 -32.7578 0 -45.2549l-114.745 -114.745c-12.4971 -12.4971 -32.7578 -12.4971 -45.2549 0l-45.2549 45.2549c-12.4971 12.4971 -12.4971 32.7578 0 45.2549l114.744 114.746c12.4971 12.4971 32.7578 12.4971 45.2549 0l5.65723 -5.65723
-l81.04 81.04l-39.5986 39.5986l-5.65625 -5.65723c-9.37207 -9.37305 -24.5684 -9.37305 -33.9414 0l-22.627 22.627c-9.37305 9.37207 -9.37305 24.5684 0 33.9404l124.451 124.451c9.37207 9.37305 24.5674 9.37305 33.9404 0l22.627 -22.6279
-c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404l-5.65625 -5.65723l113.138 -113.137l5.65723 5.65625c9.37207 9.37305 24.5674 9.37305 33.9404 0z" />
-    <glyph glyph-name="bolt" unicode="&#xf0e7;" horiz-adv-x="320" 
-d="M296 288c18.5 0 30 -20.0996 20.7002 -36l-176 -304c-4.40039 -7.59961 -12.4004 -12 -20.7998 -12c-15.3008 0 -26.9004 14.2998 -23.3008 29.5l46.1006 194.5h-118.7c-14.5 0 -25.7002 12.7998 -23.7998 27.2002l32 240
-c1.59961 11.8994 11.7998 20.7998 23.7998 20.7998h144c15.7002 0 27.2002 -15 23.2002 -30.2002l-42.6006 -129.8h115.4z" />
-    <glyph glyph-name="sitemap" unicode="&#xf0e8;" horiz-adv-x="640" 
-d="M128 96c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96zM104 176v-48h-48v57.5898c0 21.1797 17.2305 38.4102 38.4102 38.4102h201.59v64h-40c-17.6699 0 -32 14.3301 -32 32
-v96c0 17.6699 14.3301 32 32 32h128c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-40v-64h201.59c21.1797 0 38.4102 -17.2402 38.4102 -38.4102v-57.5898h-48v48h-192v-48h-48v48h-192zM368 96c17.6699 0 32 -14.3301 32 -32v-96
-c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96zM608 96c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96z" />
-    <glyph glyph-name="umbrella" unicode="&#xf0e9;" horiz-adv-x="576" 
-d="M575.7 167.2c2.2002 -10.1006 -8.40039 -21.4004 -18.7002 -11.4004c-51.5 54.4004 -107.6 52.5 -158.6 -37c-5.30078 -9.5 -14.9004 -8.59961 -19.7002 0c-2.5 4.40039 -32.2002 73.2002 -90.7002 73.2002c-45.7998 0 -70.5 -37.7998 -90.7002 -73.2002
-c-4.7998 -8.59961 -14.3994 -9.5 -19.7002 0c-50.8994 89.4004 -106.6 92 -158.6 37c-10.2002 -9.89941 -20.9004 1.2998 -18.7002 11.4004c29.2002 136.3 138 218.2 255.7 230.899v17.9004c0 17.7002 14.2998 32 32 32s32 -14.2998 32 -32v-17.9004
-c117.3 -12.6992 227.1 -94.5996 255.7 -230.899zM256 146.3c9.59961 8.90039 19.7002 13.6006 32 13.7002c12.2002 0 22.9004 -5.7002 32 -13.5996v-130.301c0 -44.0996 -35.9004 -80 -80 -80c-33.7998 0 -64.2002 21.4004 -75.4004 53.3008
-c-5.89941 16.5996 2.80078 34.8994 19.5 40.7998c16.7002 5.89941 34.9004 -2.7998 40.8008 -19.5c1.89941 -5.40039 7.2998 -10.7002 15.0996 -10.7002c8.7998 0 16 7.2002 16 16v130.3z" />
-    <glyph glyph-name="paste" unicode="&#xf0ea;" horiz-adv-x="448" 
-d="M128 264v-232h-104c-13.2549 0 -24 10.7451 -24 24v336c0 13.2549 10.7451 24 24 24h80.6104c11.084 19.1104 31.7529 32 55.3896 32s44.3057 -12.8896 55.3896 -32h80.6104c13.2549 0 24 -10.7451 24 -24v-72h-136c-30.8779 0 -56 -25.1211 -56 -56zM160 408
-c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM344 160h104v-200c0 -13.2549 -10.7451 -24 -24 -24h-240c-13.2549 0 -24 10.7451 -24 24v304c0 13.2549 10.7451 24 24 24h136v-104c0 -13.2002 10.7998 -24 24 -24z
-M448 198.059v-6.05859h-96v96h6.05859c6.62305 0 12.626 -2.68457 16.9707 -7.0293l65.9404 -65.9404c4.34473 -4.34473 7.03027 -10.3477 7.03027 -16.9717z" />
-    <glyph glyph-name="lightbulb" unicode="&#xf0eb;" horiz-adv-x="352" 
-d="M96.0596 -6.34961l-0.0498047 38.3496h159.98l-0.0400391 -38.3496c-0.0078125 -6.52637 -1.99219 -12.6309 -5.36035 -17.6904l-17.0898 -25.6904c-5.73242 -8.62305 -15.5176 -14.2793 -26.6396 -14.2793h-61.71c-11.123 0 -20.9072 5.65625 -26.6406 14.2793
-l-17.0898 25.6904c-3.49023 5.24023 -5.34961 11.4004 -5.36035 17.6904zM0 272c0 93.0303 73.4404 175.69 175.45 176c97.46 0.299805 176.55 -78.6104 176.55 -176c0 -44.3701 -16.4502 -84.8496 -43.5596 -115.78c-16.5205 -18.8496 -42.3604 -58.2295 -52.21 -91.4502
-c-0.0400391 -0.269531 -0.0703125 -0.519531 -0.110352 -0.779297h-160.24c-0.0400391 0.259766 -0.0703125 0.519531 -0.110352 0.779297c-9.84961 33.2207 -35.6895 72.6006 -52.21 91.4502c-27.1094 30.9307 -43.5596 71.4102 -43.5596 115.78zM176 352
-c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16c-61.7598 0 -112 -50.2402 -112 -112c0 -8.83984 7.16016 -16 16 -16s16 7.16016 16 16c0 44.1104 35.8896 80 80 80z" />
-    <glyph glyph-name="user-md" unicode="&#xf0f0;" horiz-adv-x="448" 
-d="M224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM104 24c0 13.2998 10.7002 24 24 24s24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24zM320 159.4c71.2002 -3.5 128 -61.8008 128 -133.801
-v-44.7998c0 -24.7002 -20.0996 -44.7998 -44.7998 -44.7998h-358.4c-24.7002 0 -44.7998 20.0996 -44.7998 44.7998v44.7998c0 66.6006 48.5 121.4 112.1 132.101v-80.4004c-23.0996 -6.89941 -40 -28.0996 -40 -53.3994c0 -30.9004 25.1006 -56 56 -56
-c30.9004 0 56 25.0996 56 56c0 25.2998 -16.8994 46.5 -40 53.3994v81.6006c7.7002 -1 15.2002 -2.60059 22.6006 -5.2002c18 -6.2998 37.2998 -9.7998 57.3994 -9.7998c20.1006 0 39.4004 3.5 57.4004 9.7998c2.2002 0.799805 4.40039 1.2002 6.59961 1.89941v-45.1992
-c-36.5 -7.5 -64 -39.8008 -64 -78.4004v-43.7998c0 -8.10059 5.90039 -14.7998 13.8008 -15.9004l31.1992 -4.2002c4.30078 -0.799805 8.5 2 9.40039 6.30078l3.09961 15.6992c0.800781 4.30078 -2 8.5 -6.2998 9.40039l-19.2998 3.90039v26.6992
-c0 67 96 64.7002 96 1.90039v-28.5l-19.2998 -3.90039c-4.40039 -0.799805 -7.2002 -5.09961 -6.2998 -9.39941l3.09961 -15.7002c0.900391 -4.40039 5.09961 -7.2002 9.40039 -6.2998l32.1992 6.39941c7.5 1.5 12.9004 8.10059 12.9004 15.7002v41.7002
-c0 38.5996 -27.5 71 -64 78.4004v49z" />
-    <glyph glyph-name="stethoscope" unicode="&#xf0f1;" 
-d="M447.1 336c35.7002 0.5 64.9004 -28.2998 64.9004 -64c0 -23.7002 -12.9004 -44.2998 -32 -55.4004v-112.6c0 -92.5996 -79 -168 -176 -168c-95.4004 0 -173.3 72.7998 -175.9 163.2c-73 14.7998 -128.1 79.5 -128.1 156.8v155.4c0 11.5 8.09961 21.2998 19.2998 23.5996
-l62.7998 12.4004c13 2.59961 25.6006 -5.80078 28.2002 -18.8008l3.10059 -15.6992c2.59961 -13 -5.80078 -25.6006 -18.8008 -28.2002l-30.6992 -6.10059v-122.5c0 -53.2998 43.5 -96.5 96.8994 -96c52.9004 0.5 95.1006 44.3008 95.1006 97.2002v121.4l-30.7002 6.09961
-c-13 2.60059 -21.4004 15.2002 -18.7998 28.2002l3.19922 15.7002c2.60059 13 15.2002 21.3994 28.2002 18.7998l62.9004 -12.5996c11.2002 -2.2002 19.2998 -12.1006 19.2998 -23.5v-155.4c0 -77.2002 -55 -141.8 -127.8 -156.8
-c2.7002 -55.1006 51.8994 -99.2002 111.899 -99.2002c61.8008 0 112 46.7002 112 104v112.6c-19.5 11.2002 -32.5 32.5 -32 56.8008c0.700195 34.1992 28.8008 62.0996 63 62.5996zM448 256c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16
-s7.2002 -16 16 -16z" />
-    <glyph glyph-name="suitcase" unicode="&#xf0f2;" 
-d="M128 -32v400c0 26.5 21.5 48 48 48h160c26.5 0 48 -21.5 48 -48v-400h-256zM192 352v-32h128v32h-128zM512 272v-256c0 -26.5 -21.5 -48 -48 -48h-48v352h48c26.5 0 48 -21.5 48 -48zM96 -32h-48c-26.5 0 -48 21.5 -48 48v256c0 26.5 21.5 48 48 48h48v-352z" />
-    <glyph glyph-name="bell" unicode="&#xf0f3;" horiz-adv-x="448" 
-d="M224 -64c-35.3203 0 -63.9697 28.6504 -63.9697 64h127.939c0 -35.3496 -28.6494 -64 -63.9697 -64zM439.39 85.71c6 -6.44043 8.66016 -14.1602 8.61035 -21.71c-0.0996094 -16.4004 -12.9805 -32 -32.0996 -32h-383.801c-19.1191 0 -31.9893 15.5996 -32.0996 32
-c-0.0498047 7.5498 2.61035 15.2598 8.61035 21.71c19.3193 20.7598 55.4697 51.9902 55.4697 154.29c0 77.7002 54.4795 139.9 127.939 155.16v20.8398c0 17.6699 14.3203 32 31.9805 32s31.9805 -14.3301 31.9805 -32v-20.8398
-c73.46 -15.2598 127.939 -77.46 127.939 -155.16c0 -102.3 36.1504 -133.53 55.4697 -154.29z" />
-    <glyph glyph-name="coffee" unicode="&#xf0f4;" horiz-adv-x="640" 
-d="M192 64c-53 0 -96 43 -96 96v232c0 13.2998 10.7002 24 24 24h392c70.5996 0 128 -57.4004 128 -128s-57.4004 -128 -128 -128h-32c0 -53 -43 -96 -96 -96h-192zM512 352h-32v-128h32c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64zM559.7 -32h-511.4
-c-47.5996 0 -61 64 -36 64h583.3c25 0 11.8008 -64 -35.8994 -64z" />
-    <glyph glyph-name="hospital" unicode="&#xf0f8;" horiz-adv-x="448" 
-d="M448 -44v-20h-448v20c0 6.62695 5.37305 12 12 12h20v360c0 13.2549 10.7451 24 24 24h88v72c0 13.2549 10.7451 24 24 24h112c13.2549 0 24 -10.7451 24 -24v-72h88c13.2549 0 24 -10.7451 24 -24v-360h20c6.62695 0 12 -5.37305 12 -12zM308 256h-40
-c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12v40c0 6.62695 -5.37305 12 -12 12zM140 192h40c6.62695 0 12 5.37305 12 12v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40
-c0 -6.62695 5.37305 -12 12 -12zM244 64h-40c-6.62695 0 -12 -5.37305 -12 -12v-84h64v84c0 6.62695 -5.37305 12 -12 12zM308 160h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12v40c0 6.62695 -5.37305 12 -12 12
-zM192 148c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12v40zM182 352h26v-26c0 -3.31152 2.68848 -6 6 -6h20c3.31152 0 6 2.68848 6 6v26h26c3.31152 0 6 2.68848 6 6v20
-c0 3.31152 -2.68848 6 -6 6h-26v26c0 3.31152 -2.68848 6 -6 6h-20c-3.31152 0 -6 -2.68848 -6 -6v-26h-26c-3.31152 0 -6 -2.68848 -6 -6v-20c0 -3.31152 2.68848 -6 6 -6z" />
-    <glyph glyph-name="ambulance" unicode="&#xf0f9;" horiz-adv-x="640" 
-d="M624 96c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-48c0 -53 -43 -96 -96 -96s-96 43 -96 96h-128c0 -53 -43 -96 -96 -96s-96 43 -96 96h-16c-26.5 0 -48 21.5 -48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48 -21.5 48 -48v-48h44.0996
-c12.7002 0 24.9004 -5.09961 33.9004 -14.0996l99.9004 -99.9004c9 -9 14.0996 -21.2002 14.0996 -33.9004v-108.1h16zM160 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM304 232v48c0 4.40039 -3.59961 8 -8 8h-56v56
-c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8v-48c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v56h56c4.40039 0 8 3.59961 8 8zM480 -16c26.5 0 48 21.5 48 48
-s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM560 192v12.0996l-99.9004 99.9004h-44.0996v-112h144z" />
-    <glyph glyph-name="medkit" unicode="&#xf0fa;" 
-d="M96 -32v352h32v48c0 26.5098 21.4902 48 48 48h160c26.5098 0 48 -21.4902 48 -48v-48h32v-352h-320zM192 352v-32h128v32h-128zM512 272v-256c0 -26.5098 -21.4902 -48 -48 -48h-16v352h16c26.5098 0 48 -21.4902 48 -48zM64 -32h-16c-26.5098 0 -48 21.4902 -48 48v256
-c0 26.5098 21.4902 48 48 48h16v-352zM352 176c0 8.83691 -7.16309 16 -16 16h-48v48c0 8.83691 -7.16309 16 -16 16h-32c-8.83691 0 -16 -7.16309 -16 -16v-48h-48c-8.83691 0 -16 -7.16309 -16 -16v-32c0 -8.83691 7.16309 -16 16 -16h48v-48
-c0 -8.83691 7.16309 -16 16 -16h32c8.83691 0 16 7.16309 16 16v48h48c8.83691 0 16 7.16309 16 16v32z" />
-    <glyph glyph-name="fighter-jet" unicode="&#xf0fb;" horiz-adv-x="640" 
-d="M544 224c96 -21.333 96 -26.583 96 -32s0 -10.667 -96 -32l-128 -16l-48 -16h-24l-116.842 -148h39.5088c11.666 0 21.333 -2.625 21.333 -6s-9.66602 -6 -21.333 -6h-114.667v12h16v164h-48l-66.666 -80h-34.667l-10.667 10.667v69.333h8v16h48v2.66699l-64 8v42.667
-l64 8v2.66602h-48v16h-8v69.333l10.667 10.667h34.666l66.667 -80h48v164h-16v12h114.667c11.666 0 21.333 -2.625 21.333 -6s-9.66699 -6 -21.333 -6h-39.5088l116.842 -148h24l48 -16z" />
-    <glyph glyph-name="beer" unicode="&#xf0fc;" horiz-adv-x="448" 
-d="M368 352c44.1123 0 80 -35.8877 80 -80v-128.86c0 -31.5273 -18.6035 -60.2031 -47.3936 -73.0527l-80.6064 -35.9766v-42.1104c0 -13.2549 -10.7451 -24 -24 -24h-272c-13.2549 0 -24 10.7451 -24 24v400c0 13.2549 10.7451 24 24 24h272c13.2549 0 24 -10.7451 24 -24
-v-40h48zM384 143.14v128.86c0 8.82227 -7.17773 16 -16 16h-48v-183.805l54.5215 24.334c5.58789 2.49902 9.47363 8.09863 9.47852 14.6104zM208 64c8.83594 0 16 7.16406 16 16v224c0 8.83594 -7.16406 16 -16 16s-16 -7.16406 -16 -16v-224
-c0 -8.83594 7.16406 -16 16 -16zM112 64c8.83594 0 16 7.16406 16 16v224c0 8.83594 -7.16406 16 -16 16s-16 -7.16406 -16 -16v-224c0 -8.83594 7.16406 -16 16 -16z" />
-    <glyph glyph-name="h-square" unicode="&#xf0fd;" horiz-adv-x="448" 
-d="M448 368v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48zM336 320h-32c-8.83691 0 -16 -7.16309 -16 -16v-80h-128v80c0 8.83691 -7.16309 16 -16 16h-32
-c-8.83691 0 -16 -7.16309 -16 -16v-224c0 -8.83691 7.16309 -16 16 -16h32c8.83691 0 16 7.16309 16 16v80h128v-80c0 -8.83691 7.16309 -16 16 -16h32c8.83691 0 16 7.16309 16 16v224c0 8.83691 -7.16309 16 -16 16z" />
-    <glyph glyph-name="plus-square" unicode="&#xf0fe;" horiz-adv-x="448" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM368 164v56c0 6.59961 -5.40039 12 -12 12h-92v92c0 6.59961 -5.40039 12 -12 12h-56c-6.59961 0 -12 -5.40039 -12 -12v-92h-92
-c-6.59961 0 -12 -5.40039 -12 -12v-56c0 -6.59961 5.40039 -12 12 -12h92v-92c0 -6.59961 5.40039 -12 12 -12h56c6.59961 0 12 5.40039 12 12v92h92c6.59961 0 12 5.40039 12 12z" />
-    <glyph glyph-name="angle-double-left" unicode="&#xf100;" horiz-adv-x="448" 
-d="M223.7 209l136 136c9.39941 9.40039 24.5996 9.40039 33.8994 0l22.6006 -22.5996c9.39941 -9.40039 9.39941 -24.6006 0 -33.9004l-96.2998 -96.5l96.3994 -96.4004c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-22.5996 -22.7002
-c-9.40039 -9.40039 -24.6006 -9.40039 -33.9004 0l-136 136c-9.5 9.40039 -9.5 24.5996 -0.0996094 34zM31.7002 175c-9.40039 9.40039 -9.40039 24.5996 0.0996094 34l136 136c9.2998 9.40039 24.5 9.40039 33.9004 0l22.5996 -22.7002
-c9.40039 -9.2998 9.40039 -24.5 0 -33.8994l-96.3994 -96.4004l96.2998 -96.5c9.39941 -9.2998 9.39941 -24.5 0 -33.9004l-22.6006 -22.5996c-9.2998 -9.40039 -24.5 -9.40039 -33.8994 0z" />
-    <glyph glyph-name="angle-double-right" unicode="&#xf101;" horiz-adv-x="448" 
-d="M224.3 175l-136 -136c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-22.6006 22.5996c-9.39941 9.40039 -9.39941 24.6006 0 33.9004l96.4004 96.4004l-96.4004 96.3994c-9.39941 9.40039 -9.39941 24.6006 0 33.9004l22.5 22.7998
-c9.40039 9.40039 24.6006 9.40039 33.9004 0l136 -136c9.5 -9.40039 9.5 -24.5996 0.0996094 -34zM416.3 209c9.40039 -9.40039 9.40039 -24.5996 0 -33.7998l-136 -136c-9.2998 -9.40039 -24.5 -9.40039 -33.8994 0l-22.6006 22.5996
-c-9.39941 9.2998 -9.39941 24.5 0 33.9004l96.4004 96.3994l-96.4004 96.4004c-9.39941 9.2998 -9.39941 24.5 0 33.9004l22.6006 22.5996c9.2998 9.40039 24.5 9.40039 33.8994 0z" />
-    <glyph glyph-name="angle-double-up" unicode="&#xf102;" horiz-adv-x="320" 
-d="M177 192.3l136 -136c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-22.5996 -22.6006c-9.40039 -9.39941 -24.6006 -9.39941 -33.9004 0l-96.5 96.2998l-96.4004 -96.3994c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-22.7002 22.5996
-c-9.40039 9.40039 -9.40039 24.6006 0 33.9004l136 136c9.40039 9.5 24.5996 9.5 34 0.0996094zM143 384.3c9.40039 9.40039 24.5996 9.40039 33.7998 0l136 -136c9.40039 -9.2998 9.40039 -24.5 0 -33.8994l-22.5996 -22.6006c-9.2998 -9.39941 -24.5 -9.39941 -33.9004 0
-l-96.3994 96.4004l-96.4004 -96.4004c-9.2998 -9.39941 -24.5 -9.39941 -33.9004 0l-22.5996 22.6006c-9.40039 9.2998 -9.40039 24.5 0 33.8994z" />
-    <glyph glyph-name="angle-double-down" unicode="&#xf103;" horiz-adv-x="320" 
-d="M143 191.7l-136 136c-9.40039 9.39941 -9.40039 24.5996 0 33.8994l22.5996 22.6006c9.40039 9.39941 24.6006 9.39941 33.9004 0l96.4004 -96.4004l96.3994 96.4004c9.40039 9.39941 24.6006 9.39941 33.9004 0l22.7998 -22.5
-c9.40039 -9.40039 9.40039 -24.6006 0 -33.9004l-136 -136c-9.40039 -9.5 -24.5996 -9.5 -34 -0.0996094zM177 -0.299805c-9.40039 -9.40039 -24.5996 -9.40039 -34 0.0996094l-136 136c-9.40039 9.2998 -9.40039 24.5 0 33.9004l22.7002 22.5996
-c9.2998 9.40039 24.5 9.40039 33.8994 0l96.4004 -96.3994l96.5 96.2998c9.2998 9.39941 24.5 9.39941 33.9004 0l22.5996 -22.6006c9.40039 -9.2998 9.40039 -24.5 0 -33.8994z" />
-    <glyph glyph-name="angle-left" unicode="&#xf104;" horiz-adv-x="256" 
-d="M31.7002 209l136 136c9.39941 9.40039 24.5996 9.40039 33.8994 0l22.6006 -22.5996c9.39941 -9.40039 9.39941 -24.6006 0 -33.9004l-96.2998 -96.5l96.3994 -96.4004c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-22.5996 -22.7002
-c-9.40039 -9.40039 -24.6006 -9.40039 -33.9004 0l-136 136c-9.5 9.40039 -9.5 24.5996 -0.0996094 34z" />
-    <glyph glyph-name="angle-right" unicode="&#xf105;" horiz-adv-x="256" 
-d="M224.3 175l-136 -136c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-22.6006 22.5996c-9.39941 9.40039 -9.39941 24.6006 0 33.9004l96.4004 96.4004l-96.4004 96.3994c-9.39941 9.40039 -9.39941 24.6006 0 33.9004l22.5 22.7998
-c9.40039 9.40039 24.6006 9.40039 33.9004 0l136 -136c9.5 -9.40039 9.5 -24.5996 0.0996094 -34z" />
-    <glyph glyph-name="angle-up" unicode="&#xf106;" horiz-adv-x="320" 
-d="M177 288.3l136 -136c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-22.5996 -22.6006c-9.40039 -9.39941 -24.6006 -9.39941 -33.9004 0l-96.5 96.2998l-96.4004 -96.3994c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-22.7002 22.5996
-c-9.40039 9.40039 -9.40039 24.6006 0 33.9004l136 136c9.40039 9.5 24.5996 9.5 34 0.0996094z" />
-    <glyph glyph-name="angle-down" unicode="&#xf107;" horiz-adv-x="320" 
-d="M143 95.7002l-136 136c-9.40039 9.39941 -9.40039 24.5996 0 33.8994l22.5996 22.6006c9.40039 9.39941 24.6006 9.39941 33.9004 0l96.4004 -96.4004l96.3994 96.4004c9.40039 9.39941 24.6006 9.39941 33.9004 0l22.5996 -22.6006
-c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-136 -136c-9.2002 -9.40039 -24.3994 -9.40039 -33.7998 0z" />
-    <glyph glyph-name="desktop" unicode="&#xf108;" horiz-adv-x="576" 
-d="M528 448c26.5 0 48 -21.5 48 -48v-320c0 -26.5 -21.5 -48 -48 -48h-192l16 -48h72c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24h-272c-13.2998 0 -24 10.7002 -24 24s10.7002 24 24 24h72l16 48h-192c-26.5 0 -48 21.5 -48 48v320c0 26.5 21.5 48 48 48h480z
-M512 96v288h-448v-288h448z" />
-    <glyph glyph-name="laptop" unicode="&#xf109;" horiz-adv-x="640" 
-d="M624 32c8.7998 0 16 -7.2002 16 -16v-16c0 -35.2002 -28.7998 -64 -64 -64h-512c-35.2002 0 -64 28.7998 -64 64v16c0 8.7998 7.2002 16 16 16h239.23c-0.25 -14.5303 14.0791 -32 32.7695 -32h60.7998c18.0303 0 32 12.1904 32.7402 32h242.46zM576 400v-336h-512v336
-c0 26.4004 21.5996 48 48 48h416c26.4004 0 48 -21.5996 48 -48zM512 128v256h-384v-256h384z" />
-    <glyph glyph-name="tablet" unicode="&#xf10a;" horiz-adv-x="448" 
-d="M400 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h352zM224 -32c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="mobile" unicode="&#xf10b;" horiz-adv-x="320" 
-d="M272 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-224c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h224zM160 -32c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="quote-left" unicode="&#xf10d;" 
-d="M464 192c26.5 0 48 -21.5 48 -48v-128c0 -26.5 -21.5 -48 -48 -48h-128c-26.5 0 -48 21.5 -48 48v240c0 88.4004 71.5996 160 160 160h8c13.2998 0 24 -10.7002 24 -24v-48c0 -13.2998 -10.7002 -24 -24 -24h-8c-35.2998 0 -64 -28.7002 -64 -64v-64h80zM176 192
-c26.5 0 48 -21.5 48 -48v-128c0 -26.5 -21.5 -48 -48 -48h-128c-26.5 0 -48 21.5 -48 48v240c0 88.4004 71.5996 160 160 160h8c13.2998 0 24 -10.7002 24 -24v-48c0 -13.2998 -10.7002 -24 -24 -24h-8c-35.2998 0 -64 -28.7002 -64 -64v-64h80z" />
-    <glyph glyph-name="quote-right" unicode="&#xf10e;" 
-d="M464 416c26.5 0 48 -21.5 48 -48v-240c0 -88.4004 -71.5996 -160 -160 -160h-8c-13.2998 0 -24 10.7002 -24 24v48c0 13.2998 10.7002 24 24 24h8c35.2998 0 64 28.7002 64 64v64h-80c-26.5 0 -48 21.5 -48 48v128c0 26.5 21.5 48 48 48h128zM176 416
-c26.5 0 48 -21.5 48 -48v-240c0 -88.4004 -71.5996 -160 -160 -160h-8c-13.2998 0 -24 10.7002 -24 24v48c0 13.2998 10.7002 24 24 24h8c35.2998 0 64 28.7002 64 64v64h-80c-26.5 0 -48 21.5 -48 48v128c0 26.5 21.5 48 48 48h128z" />
-    <glyph glyph-name="spinner" unicode="&#xf110;" 
-d="M304 400c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48s48 -21.4902 48 -48zM256 32c26.5098 0 48 -21.4902 48 -48s-21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48zM464 240c26.5098 0 48 -21.4902 48 -48s-21.4902 -48 -48 -48
-s-48 21.4902 -48 48s21.4902 48 48 48zM96 192c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48s48 -21.4902 48 -48zM108.922 92.9219c26.5088 0 48 -21.4912 48 -48c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48z
-M403.078 92.9219c26.5098 0 48 -21.4912 48 -48c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48zM108.922 387.078c26.5088 0 48 -21.4902 48 -48s-21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48z" />
-    <glyph glyph-name="circle" unicode="&#xf111;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248z" />
-    <glyph glyph-name="smile" unicode="&#xf118;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM168 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32
-s32 14.2998 32 32s-14.2998 32 -32 32zM362.8 101.8c13.5 16.2998 -11.2002 36.7002 -24.5996 20.5c-22.4004 -26.7998 -55.2002 -42.2002 -90.2002 -42.2002s-67.7998 15.3008 -90.2002 42.2002c-13.5996 16.2002 -38.2002 -4.2002 -24.5996 -20.5
-c28.5 -34.2002 70.2998 -53.7998 114.8 -53.7998s86.2998 19.5996 114.8 53.7998z" />
-    <glyph glyph-name="frown" unicode="&#xf119;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM168 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32
-s32 14.2998 32 32s-14.2998 32 -32 32zM338.2 53.7998c13.5 -16.2998 38.0996 4.2002 24.5 20.4004c-28.4004 34.2002 -70.2998 53.7998 -114.7 53.7998s-86.2998 -19.5996 -114.8 -53.7002c-13.5 -16.2998 11.0996 -36.7998 24.5996 -20.5
-c22.4004 26.7998 55.2998 42.2002 90.2002 42.2002s67.7998 -15.4004 90.2002 -42.2002z" />
-    <glyph glyph-name="meh" unicode="&#xf11a;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM168 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM344 80c21.2002 0 21.2002 32 0 32h-192c-21.2002 0 -21.2002 -32 0 -32
-h192zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="gamepad" unicode="&#xf11b;" horiz-adv-x="640" 
-d="M480.07 352c88.2842 -0.0263672 159.938 -71.7402 159.938 -160.03c0 -88.3066 -71.6934 -160 -160 -160c-44.7324 0 -85.2021 18.3965 -114.249 48.0303h-91.5195c-29.0469 -29.6338 -69.5078 -48 -114.24 -48c-88.3066 0 -160 71.6934 -160 160s71.6934 160 160 160
-h320.07zM248 180v24c0 6.62305 -5.37695 12 -12 12h-52v52c0 6.62305 -5.37695 12 -12 12h-24c-6.62305 0 -12 -5.37695 -12 -12v-52h-52c-6.62305 0 -12 -5.37695 -12 -12v-24c0 -6.62305 5.37695 -12 12 -12h52v-52c0 -6.62305 5.37695 -12 12 -12h24
-c6.62305 0 12 5.37695 12 12v52h52c6.62305 0 12 5.37695 12 12zM464 104c22.0762 0 40 17.9238 40 40s-17.9238 40 -40 40s-40 -17.9238 -40 -40s17.9238 -40 40 -40zM528 200c22.0762 0 40 17.9238 40 40s-17.9238 40 -40 40s-40 -17.9238 -40 -40s17.9238 -40 40 -40z
-" />
-    <glyph glyph-name="keyboard" unicode="&#xf11c;" horiz-adv-x="576" 
-d="M528 0h-480c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h480c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48zM128 268v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40
-c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM224 268v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM320 268v40c0 6.62695 -5.37305 12 -12 12h-40
-c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM416 268v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM512 268v40
-c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM176 172v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40
-c6.62695 0 12 5.37305 12 12zM272 172v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM368 172v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40
-c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM464 172v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM128 76v40c0 6.62695 -5.37305 12 -12 12h-40
-c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM416 76v40c0 6.62695 -5.37305 12 -12 12h-232c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h232c6.62695 0 12 5.37305 12 12zM512 76v40
-c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12z" />
-    <glyph glyph-name="flag-checkered" unicode="&#xf11e;" 
-d="M243.2 258.1c24.2002 -6.69922 47.5996 -16.3994 73.5996 -22.1992v-68.2002c-24.2998 6.7002 -47.5 16.3994 -73.5996 22.2998v68.0996zM466.5 381.1c21.2002 9.80078 45.5 -5.69922 45.4004 -29v-243.1c0 -10.5996 -5.10059 -20.4004 -13.8008 -26.4004
-c-35.7998 -24.5996 -74.2998 -40.8994 -122.5 -40.8994c-67.3994 0 -111.6 34.7998 -165.199 34.7998c-50.8008 0 -86.1006 -10 -114.4 -22.0996v-94.4004c0 -13.2998 -10.7002 -24 -24 -24h-16c-13.2998 0 -24 10.7002 -24 24v386.1c-14.5 10.1006 -24 26.9004 -24 45.9004
-c0 31.7002 26.2998 57.2998 58.2998 56c28.5 -1.2002 51.7998 -24 53.6006 -52.4004c0.5 -8.39941 -0.800781 -16.2998 -3.60059 -23.5996c20.7002 7.59961 43 12 68 12c67.4004 0 111.7 -34.7998 165.2 -34.7998c40.5 0 82.7002 16 117 31.8994zM169.6 122.5v71.2998
-c-26.0996 -2.39941 -47.3994 -8.09961 -73.5996 -17.3994v-70.5c23.5996 8.39941 47.7998 13.8994 73.5996 16.5996zM464 257v70.5c-21.2998 -8.90039 -46.5996 -17.7002 -73.5996 -22.5v-71.9004c-26 -4.19922 -49.9004 -2.59961 -73.6006 2.7002v68.4004
-c-26.3994 4.59961 -49.8994 13.8994 -73.5996 21.2998v-67.4004c-25.2002 7 -46.6006 9.40039 -73.6006 5.7002v71.6006c-23.5 -2.2002 -40.3994 -9.80078 -73.5996 -22v-70.5c29 10.6992 51.2002 17.7998 73.5996 20.8994v-70c32.8008 3 53.9004 0.600586 73.6006 -3.7998
-v-68.5c26.2998 -4.59961 49.7002 -13.9004 73.5996 -21.2998v67.3994c25.7002 -7.09961 46.6006 -9.2998 73.6006 -5.59961v-71.5996c25.0996 2.39941 48.5 11 73.5996 27.0996v70.5c-22.2002 -14.2002 -48.7998 -22.5996 -73.5996 -26v71.0996
-c27.2998 4.40039 50 14.1006 73.5996 23.9004z" />
-    <glyph glyph-name="terminal" unicode="&#xf120;" horiz-adv-x="640" 
-d="M257.981 175.029l-194.344 -194.344c-9.37305 -9.37207 -24.5684 -9.37207 -33.9404 0l-22.668 22.667c-9.35742 9.35742 -9.375 24.5225 -0.0400391 33.9014l154.021 154.746l-154.021 154.745c-9.33496 9.37891 -9.31738 24.5439 0.0400391 33.9014l22.667 22.667
-c9.37305 9.37207 24.5684 9.37207 33.9404 0l194.344 -194.344c9.37207 -9.37207 9.37207 -24.5674 0 -33.9404zM640 -8c0 -13.2549 -10.7451 -24 -24 -24h-304c-13.2549 0 -24 10.7451 -24 24v32c0 13.2549 10.7451 24 24 24h304c13.2549 0 24 -10.7451 24 -24v-32z" />
-    <glyph glyph-name="code" unicode="&#xf121;" horiz-adv-x="640" 
-d="M278.9 -63.5l-61 17.7002c-6.40039 1.7998 -10 8.5 -8.2002 14.8994l136.5 470.2c1.7998 6.40039 8.5 10 14.8994 8.2002l61 -17.7002c6.40039 -1.7998 10 -8.5 8.2002 -14.8994l-136.5 -470.2c-1.89941 -6.40039 -8.5 -10.1006 -14.8994 -8.2002zM164.9 48.7002
-c-4.5 -4.90039 -12.1006 -5.10059 -17 -0.5l-144.101 135.1c-5.09961 4.7002 -5.09961 12.7998 0 17.5l144.101 135c4.89941 4.60059 12.5 4.2998 17 -0.5l43.5 -46.3994c4.69922 -4.90039 4.2998 -12.7002 -0.800781 -17.2002l-90.5996 -79.7002l90.5996 -79.7002
-c5.10059 -4.5 5.40039 -12.2998 0.800781 -17.2002zM492.1 48.0996c-4.89941 -4.5 -12.5 -4.2998 -17 0.600586l-43.5 46.3994c-4.69922 4.90039 -4.2998 12.7002 0.800781 17.2002l90.5996 79.7002l-90.5996 79.7998c-5.10059 4.5 -5.40039 12.2998 -0.800781 17.2002
-l43.5 46.4004c4.60059 4.7998 12.2002 5 17 0.5l144.101 -135.2c5.09961 -4.7002 5.09961 -12.7998 0 -17.5z" />
-    <glyph glyph-name="reply-all" unicode="&#xf122;" horiz-adv-x="576" 
-d="M136.309 258.164l176.005 151.985c15.4062 13.3047 39.6865 2.50293 39.6865 -18.1641v-82.7637c129.182 -10.2305 224 -52.2119 224 -183.548c0 -61.4404 -39.582 -122.309 -83.333 -154.132c-13.6533 -9.93066 -33.1113 2.5332 -28.0771 18.6309
-c38.5117 123.162 -3.92188 169.482 -112.59 182.016v-84.1758c0 -20.7012 -24.2998 -31.4531 -39.6865 -18.1641l-176.005 151.987c-11.0703 9.56152 -11.0859 26.7529 0 36.3281zM8.30859 221.836c-11.0703 9.56152 -11.0859 26.7529 0 36.3281l176.005 151.985
-c15.4062 13.3047 39.6865 2.50293 39.6865 -18.1641v-15.8174l-108.607 -93.7861c-11.8906 -10.2637 -19.3926 -25.4307 -19.3926 -42.3564v-0.0234375c0 -0.0078125 -0.0292969 -0.00292969 -0.0292969 -0.0117188c0 -16.9268 7.53125 -32.1084 19.4229 -42.373
-l108.606 -93.7852v-15.8184c0 -20.7002 -24.2998 -31.4531 -39.6865 -18.1641z" />
-    <glyph glyph-name="location-arrow" unicode="&#xf124;" 
-d="M444.52 444.48c38.3809 16 79.9609 -25.5801 63.9707 -63.9707l-191.9 -415.779c-22.3896 -47.9805 -92.75 -31.9805 -92.75 19.1895v175.91h-175.91c-51.1699 0 -67.1602 70.3604 -19.1895 92.75z" />
-    <glyph glyph-name="crop" unicode="&#xf125;" 
-d="M488 96c13.25 0 24 -10.7402 24 -24v-48c0 -13.25 -10.75 -24 -24 -24h-40v-40c0 -13.25 -10.75 -24 -24 -24h-48c-13.25 0 -24 10.75 -24 24v282.75l-146.75 -146.75h114.75v-96h-232c-13.25 0 -24 10.75 -24 24v264h-40c-13.25 0 -24 10.75 -24 24v48
-c0 13.2598 10.75 24 24 24h40v40c0 13.2598 10.75 24 24 24h48c13.25 0 24 -10.7402 24 -24v-282.75l146.75 146.75h-114.75v96h210.75l59.3096 59.3096c6.25 6.25 16.3809 6.25 22.6309 0l22.6191 -22.6191c6.25 -6.25 6.25 -16.3809 0 -22.6309l-59.3096 -59.3096v-242.75
-h40z" />
-    <glyph glyph-name="code-branch" unicode="&#xf126;" horiz-adv-x="384" 
-d="M384 304c0 -35.2002 -22.7998 -65.0996 -54.4004 -75.9004c-0.5 -28.0996 -7.59961 -50.5 -21.5996 -67.8994c-28.2002 -35 -76 -39.5 -118.2 -43.4004c-25.7002 -2.39941 -49.8994 -4.59961 -66.0996 -12.7998c-7.10059 -3.59961 -11.7998 -8.2002 -14.9004 -13.4004
-c30 -11.5 51.2002 -40.5996 51.2002 -74.5996c0 -44.2002 -35.7998 -80 -80 -80s-80 35.7998 -80 80c0 35.7998 23.5 66.0996 56 76.4004v199.3c-32.5 10.2002 -56 40.5 -56 76.2998c0 44.2002 35.7998 80 80 80s80 -35.7998 80 -80c0 -35.7998 -23.5 -66.0996 -56 -76.2998
-v-144c23.9004 11.5 53.0996 14.2998 81.2998 16.8994c35.9004 3.30078 69.7998 6.5 85.2002 25.7002c6.7998 8.40039 10.4004 20.7998 11 36.9004c-33.2002 9.7002 -57.5 40.3994 -57.5 76.7998c0 44.2002 35.7998 80 80 80s80 -35.7998 80 -80zM80 384
-c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16s16 7.2002 16 16s-7.2002 16 -16 16zM80 0c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM304 320c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16s16 7.2002 16 16
-s-7.2002 16 -16 16z" />
-    <glyph glyph-name="unlink" unicode="&#xf127;" 
-d="M304.083 42.0928c4.68555 -4.68555 4.68555 -12.2842 0 -16.9707l-44.6738 -44.6738c-59.2627 -59.2627 -155.693 -59.2666 -214.961 0c-59.2646 59.2646 -59.2646 155.695 0 214.96l44.6748 44.6748c4.68555 4.68555 12.2842 4.68555 16.9707 0l39.5986 -39.5977
-c4.68555 -4.68652 4.68555 -12.2842 0 -16.9717l-44.6758 -44.6738c-28.0713 -28.0732 -28.0713 -73.75 0 -101.823c28.0723 -28.0713 73.75 -28.0723 101.824 0l44.6738 44.6748c4.68652 4.68555 12.2842 4.68555 16.9717 0zM247.515 302.309l-39.5967 39.5986
-c-4.68555 4.68652 -4.68555 12.2852 0 16.9707l44.6738 44.6738c59.2666 59.2646 155.695 59.2646 214.961 0s59.2656 -155.694 0 -214.96l-44.6748 -44.6748c-4.68652 -4.68555 -12.2852 -4.68555 -16.9707 0l-39.5986 39.5977c-4.68555 4.6875 -4.68555 12.2852 0 16.9717
-l44.6758 44.6738c28.0713 28.0732 28.0713 73.75 0 101.823c-28.0742 28.0723 -73.752 28.0742 -101.824 0l-44.6738 -44.6748c-4.6875 -4.68555 -12.2852 -4.68555 -16.9717 0zM482.343 -56.9707c-9.37207 -9.37207 -24.5674 -9.37207 -33.9404 0l-441.373 441.373
-c-9.37305 9.37207 -9.37305 24.5674 0 33.9404l22.6279 22.6279c9.37207 9.37305 24.5674 9.37305 33.9404 0l441.372 -441.374c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404z" />
-    <glyph glyph-name="question" unicode="&#xf128;" horiz-adv-x="384" 
-d="M202.021 448c84.8809 0 175.482 -66.2559 175.481 -153.6c0 -115.982 -125.268 -117.768 -125.268 -160.627v-5.77344c0 -13.2549 -10.7451 -24 -24 -24h-72.4717c-13.2549 0 -24 10.7451 -24 24v9.78809c0 61.8291 46.876 86.5449 82.2998 106.405
-c30.376 17.0293 48.9922 28.6113 48.9922 51.1641c0 29.832 -38.0518 49.6309 -68.8154 49.6309c-39.127 0 -57.708 -18.0684 -82.7568 -49.4492c-8.12109 -10.1738 -22.8809 -12.0127 -33.2529 -4.14844l-43.1387 32.709c-10.2705 7.78809 -12.541 22.2939 -5.17773 32.874
-c40.5889 58.3232 92.2881 91.0264 172.107 91.0264zM192 74.541c38.1963 0 69.2715 -31.0742 69.2715 -69.2695c0 -38.1963 -31.0752 -69.2715 -69.2715 -69.2715s-69.2715 31.0752 -69.2715 69.2695c0 38.1963 31.0752 69.2715 69.2715 69.2715z" />
-    <glyph glyph-name="info" unicode="&#xf129;" horiz-adv-x="192" 
-d="M20 23.7715h20v144.457h-20c-11.0459 0 -20 8.9541 -20 20v47.7715c0 11.0459 8.9541 20 20 20h112c11.0459 0 20 -8.9541 20 -20v-212.229h20c11.0459 0 20 -8.9541 20 -20v-47.7715c0 -11.0459 -8.9541 -20 -20 -20h-152c-11.0459 0 -20 8.9541 -20 20v47.7715
-c0 11.0459 8.9541 20 20 20zM96 448c39.7637 0 72 -32.2354 72 -72s-32.2354 -72 -72 -72s-72 32.2354 -72 72s32.2354 72 72 72z" />
-    <glyph glyph-name="exclamation" unicode="&#xf12a;" horiz-adv-x="192" 
-d="M176 16c0 -44.1123 -35.8877 -80 -80 -80s-80 35.8877 -80 80s35.8877 80 80 80s80 -35.8877 80 -80zM25.2598 422.801c-0.68457 13.709 10.2441 25.1992 23.9707 25.1992h93.5391c13.7266 0 24.6553 -11.4902 23.9707 -25.1992l-13.6006 -272
-c-0.638672 -12.7725 -11.1807 -22.8008 -23.9697 -22.8008h-66.3398c-12.7891 0 -23.3311 10.0283 -23.9697 22.8008z" />
-    <glyph glyph-name="superscript" unicode="&#xf12b;" 
-d="M496 288c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v96h-16c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32
-c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-144h16zM336 384c8.83105 0 16 -7.16895 16 -16v-48c0 -8.83105 -7.16895 -16 -16 -16h-33.4805l-77.8096 -112l77.8096 -112h33.4805c8.83105 0 16 -7.16895 16 -16v-48
-c0 -8.83105 -7.16895 -16 -16 -16h-67c-5.41113 0.0273438 -10.1836 2.73047 -13.0596 6.87012l-79.9004 115l-79.9004 -115c-2.89062 -4.16016 -7.69531 -6.87012 -13.1396 -6.87012h-67c-8.83105 0 -16 7.16895 -16 16v48c0 8.83105 7.16895 16 16 16h33.4805l77.8096 112
-l-77.8096 112h-33.4805c-8.83105 0 -16 7.16895 -16 16v48c0 8.83105 7.16895 16 16 16h67c5.41113 -0.0273438 10.1836 -2.73047 13.0596 -6.87012l79.9004 -115l79.9004 115c2.89062 4.16016 7.69531 6.87012 13.1396 6.87012h67z" />
-    <glyph glyph-name="subscript" unicode="&#xf12c;" 
-d="M496 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v96h-16c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32
-c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-144h16zM336 384c8.83105 0 16 -7.16895 16 -16v-48c0 -8.83105 -7.16895 -16 -16 -16h-33.4805l-77.8096 -112l77.8096 -112h33.4805c8.83105 0 16 -7.16895 16 -16v-48
-c0 -8.83105 -7.16895 -16 -16 -16h-67c-5.41113 0.0273438 -10.1836 2.73047 -13.0596 6.87012l-79.9004 115l-79.9004 -115c-2.89062 -4.16016 -7.69531 -6.87012 -13.1396 -6.87012h-67c-8.83105 0 -16 7.16895 -16 16v48c0 8.83105 7.16895 16 16 16h33.4805l77.8096 112
-l-77.8096 112h-33.4805c-8.83105 0 -16 7.16895 -16 16v48c0 8.83105 7.16895 16 16 16h67c5.41113 -0.0273438 10.1836 -2.73047 13.0596 -6.87012l79.9004 -115l79.9004 115c2.89062 4.16016 7.69531 6.87012 13.1396 6.87012h67z" />
-    <glyph glyph-name="eraser" unicode="&#xf12d;" 
-d="M497.941 174.059l-142.059 -142.059h144.117c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-356c-13.2461 0 -25.2529 5.37012 -33.9424 14.0586l-96 96c-18.7441 18.7451 -18.7441 49.1377 0 67.8828l256 256
-c18.7471 18.7451 49.1387 18.7441 67.8838 0l160 -160c18.7441 -18.7451 18.7441 -49.1377 0 -67.8828zM195.314 236.686l-124.687 -124.686l80 -80h114.745l67.3135 67.3135z" />
-    <glyph glyph-name="puzzle-piece" unicode="&#xf12e;" horiz-adv-x="576" 
-d="M519.442 159.349c37.5957 0 56.5576 -31.5928 56.5576 -65.792c0 -33.5469 -19.2881 -61.5566 -54.9229 -61.5557c-39.8848 0 -50.3457 36.1523 -86.3086 36.1523c-60.5518 0 -25.8262 -120.102 -25.8262 -120.102c-51.5557 0 -181.23 -35.0732 -181.23 25.7305
-c0 35.8271 36.2881 46.25 36.2881 85.9844c0 35.501 -28.1152 54.7178 -61.7881 54.7178c-34.3271 0 -63.5771 -18.8906 -63.5771 -56.3467c0 -41.3633 40 -58.998 40 -81.4707c0 -69.709 -178.635 -28.6621 -178.635 -28.6621v333.237s175.885 -40.9609 175.884 28.6621
-c0 22.4727 -31.7109 40.3857 -31.7109 81.75c0 37.4551 31.7119 56.3457 66.3662 56.3457c33.3457 0 61.4609 -19.2158 61.4609 -54.7178c0 -39.7354 -36.2881 -50.1582 -36.2881 -85.9854c0 -83.2969 196.288 -3.29688 196.288 -3.29688
-s-54.5908 -176.244 5.38379 -176.244c22.5586 0 40.5391 31.5928 82.0586 31.5928z" />
-    <glyph glyph-name="microphone" unicode="&#xf130;" horiz-adv-x="352" 
-d="M176 96c-53.0195 0 -96 42.9805 -96 96v160c0 53.0195 42.9805 96 96 96s96 -42.9805 96 -96v-160c0 -53.0195 -42.9805 -96 -96 -96zM336 256c8.83984 0 16 -7.16016 16 -16v-48c0 -88.9004 -66.29 -162.47 -152 -174.23v-33.7695h56c8.83984 0 16 -7.16016 16 -16v-16
-c0 -8.83984 -7.16016 -16 -16 -16h-160c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h56v34.1504c-88.0303 12.1396 -152 92.0498 -152 181.689v40.1602c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-42.2998
-c0 -66.8105 48.71 -126.59 115.21 -133.08c76.2998 -7.44043 140.79 52.5801 140.79 127.38v48c0 8.83984 7.16016 16 16 16h16z" />
-    <glyph glyph-name="microphone-slash" unicode="&#xf131;" horiz-adv-x="640" 
-d="M633.82 -10.0996c6.97949 -5.43066 8.22949 -15.4805 2.81934 -22.4502l-19.6396 -25.2705c-5.42969 -6.97949 -15.4805 -8.23926 -22.46 -2.80957l-588.36 454.729c-6.97949 5.43066 -8.22949 15.4805 -2.80957 22.4502l19.6396 25.2705
-c5.41992 6.97949 15.4805 8.22949 22.46 2.80957l178.54 -137.99v45.3604c0 53.0195 42.9805 96 96 96c53.0205 0 96 -42.9805 96 -96v-160.01c0 -10.4502 -2.17969 -20.2705 -5.2793 -29.6699l26.5498 -20.5205c6.75977 15.4004 10.7197 32.2803 10.7197 50.2002v48
-c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-48c0 -29.0098 -7.38965 -56.1299 -19.9805 -80.1396zM400 -16c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-160c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h56
-v34.1504c-88.0303 12.1396 -152 92.0498 -152 181.689v6.85059l52.0303 -40.2305c12.4395 -53.2197 55.3301 -96.4004 111.18 -101.85c6.94043 -0.669922 13.6396 -0.200195 20.3496 0.199219l50.1104 -38.7295c-10.8203 -3.77051 -22.0098 -6.70996 -33.6699 -8.31055
-v-33.7695h56z" />
-    <glyph glyph-name="calendar" unicode="&#xf133;" horiz-adv-x="448" 
-d="M12 256h424c6.59961 0 12 -5.40039 12 -12v-260c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v260c0 6.59961 5.40039 12 12 12zM448 300c0 -6.59961 -5.40039 -12 -12 -12h-424c-6.59961 0 -12 5.40039 -12 12v36c0 26.5 21.5 48 48 48h48v52
-c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48v-36z" />
-    <glyph glyph-name="fire-extinguisher" unicode="&#xf134;" horiz-adv-x="448" 
-d="M434.027 421.671c7.31445 1.21875 13.9727 -4.4209 13.9727 -11.8369v-115.668c0 -7.41602 -6.6582 -13.0557 -13.9727 -11.8369l-168 28c-11.7305 1.95508 -10.0273 14.6973 -10.0273 17.6709h-40v-27.0303c41.4043 -10.6582 72 -48.2383 72 -92.9697v-248
-c0 -13.2549 -10.7451 -24 -24 -24h-144c-13.2549 0 -24 10.7451 -24 24v246.795c0 44.8945 30.457 83.2666 72 94.1289v27.0762c-61.0361 0 -92.9424 7.00977 -121.711 -64.9141c-4.91699 -12.2949 -18.8789 -18.2959 -31.1963 -13.3701
-c-12.3066 4.92285 -18.293 18.8906 -13.3701 31.1973c14.668 36.6709 38.0107 77.833 90.0498 90.8838c-14.1406 36.5273 12.793 76.2031 52.2275 76.2031c37.4463 0 64.3525 -36.1084 53.668 -72h58.332c0 4.2002 -1.30664 15.7822 10.0273 17.6709zM144 376
-c8.82227 0 16 7.17773 16 16s-7.17773 16 -16 16s-16 -7.17773 -16 -16s7.17773 -16 16 -16z" />
-    <glyph glyph-name="rocket" unicode="&#xf135;" 
-d="M505.12 428.906c6.95508 -32.2031 6.95508 -57.4062 6.86133 -82.6094c0 -102.688 -55.4375 -164.781 -128.035 -211.094v-104.438c0 -16.3594 -11.8789 -35.5625 -26.5078 -42.8594l-98.7275 -49.3906c-3.27441 -1.48047 -6.91699 -2.375 -10.707 -2.51562
-c-13.2471 0.00195312 -24.002 10.7539 -24.0059 24v103.844l-22.4746 -22.4688c-13.1211 -13.1562 -34.1211 -11.1875 -45.2773 0l-50.9043 50.9062c-12.9961 12.9922 -11.3652 33.8887 0 45.25l22.4746 22.4688h-103.811c-13.2461 0.00195312 -24.001 10.7539 -24.0059 24
-c0.136719 3.79004 1.03223 7.43164 2.51562 10.7031l49.4355 98.8125c7.33008 14.6094 26.5391 26.4688 42.8867 26.4844h104.215c46.2168 72.7969 108.122 128 211.354 128c25.0996 0 50.3086 0 82.5059 -6.90625c5.54883 -1.1875 11.0176 -6.65625 12.207 -12.1875z
-M384.04 280c22.0752 0.0078125 39.9971 17.9258 40.0098 40c0 22.0762 -17.9229 40 -40 40c-22.0762 0 -40 -17.9238 -40 -40c0 -22.0732 17.918 -39.9951 39.9902 -40z" />
-    <glyph glyph-name="chevron-circle-left" unicode="&#xf137;" 
-d="M256 -56c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248s-111 -248 -248 -248zM142.1 175l135.5 -135.5c9.40039 -9.40039 24.6006 -9.40039 33.9004 0l17 17c9.40039 9.40039 9.40039 24.5996 0 33.9004l-101.6 101.6l101.6 101.6
-c9.40039 9.40039 9.40039 24.6006 0 33.9004l-17 17c-9.40039 9.40039 -24.5996 9.40039 -33.9004 0l-135.5 -135.5c-9.39941 -9.40039 -9.39941 -24.5996 0 -34z" />
-    <glyph glyph-name="chevron-circle-right" unicode="&#xf138;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM369.9 209l-135.5 135.5c-9.40039 9.40039 -24.6006 9.40039 -33.9004 0l-17 -17c-9.40039 -9.40039 -9.40039 -24.5996 0 -33.9004l101.6 -101.6l-101.6 -101.6
-c-9.40039 -9.40039 -9.40039 -24.6006 0 -33.9004l17 -17c9.40039 -9.40039 24.5996 -9.40039 33.9004 0l135.5 135.5c9.39941 9.40039 9.39941 24.5996 0 34z" />
-    <glyph glyph-name="chevron-circle-up" unicode="&#xf139;" 
-d="M8 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM239 305.9l-135.5 -135.5c-9.40039 -9.40039 -9.40039 -24.6006 0 -33.9004l17 -17c9.40039 -9.40039 24.5996 -9.40039 33.9004 0l101.6 101.6l101.6 -101.6
-c9.40039 -9.40039 24.6006 -9.40039 33.9004 0l17 17c9.40039 9.40039 9.40039 24.5996 0 33.9004l-135.5 135.5c-9.40039 9.39941 -24.5996 9.39941 -34 0z" />
-    <glyph glyph-name="chevron-circle-down" unicode="&#xf13a;" 
-d="M504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM273 78.0996l135.5 135.5c9.40039 9.40039 9.40039 24.6006 0 33.9004l-17 17c-9.40039 9.40039 -24.5996 9.40039 -33.9004 0l-101.6 -101.6l-101.6 101.6
-c-9.40039 9.40039 -24.6006 9.40039 -33.9004 0l-17 -17c-9.40039 -9.40039 -9.40039 -24.5996 0 -33.9004l135.5 -135.5c9.40039 -9.39941 24.5996 -9.39941 34 0z" />
-    <glyph glyph-name="anchor" unicode="&#xf13d;" horiz-adv-x="576" 
-d="M12.9707 96c-10.6904 0 -16.0449 12.9258 -8.48535 20.4854l67.0283 67.0283c4.6875 4.68652 12.2852 4.68652 16.9717 0l67.0283 -67.0283c7.56055 -7.55957 2.20605 -20.4854 -8.48438 -20.4854h-35.1465c20.2969 -54.3359 85.1816 -86.6162 144.117 -94.0146v190.015
-h-52c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h52v5.46973c-37.2842 13.1807 -64 48.7324 -64 90.5303c0 53.4746 43.7227 96.7393 97.3701 95.9902c52.2354 -0.728516 94.6348 -43.7627 94.6289 -96.002
-c-0.00488281 -41.793 -26.7188 -77.3398 -64 -90.5186v-5.46973h52c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-52v-190.015c59.1543 7.42676 123.827 39.6973 144.117 94.0146h-35.1465c-10.6904 0 -16.0449 12.9248 -8.48438 20.4854
-l67.0283 67.0283c4.6875 4.68652 12.2852 4.68652 16.9717 0l67.0283 -67.0283c7.56055 -7.55957 2.20605 -20.4854 -8.48438 -20.4854h-32.3945c-21.7822 -102.62 -136.406 -160 -242.635 -160c-106.056 0 -220.828 57.2646 -242.635 160h-32.3945zM288 384
-c-17.6445 0 -32 -14.3555 -32 -32s14.3555 -32 32 -32s32 14.3555 32 32s-14.3555 32 -32 32z" />
-    <glyph glyph-name="unlock-alt" unicode="&#xf13e;" horiz-adv-x="448" 
-d="M400 192c26.5 0 48 -21.5 48 -48v-160c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v160c0 26.5 21.5 48 48 48h24v102.5c0 84 67.5 153.2 151.5 153.5s152.5 -68 152.5 -152v-16c0 -13.2998 -10.7002 -24 -24 -24h-32c-13.2998 0 -24 10.7002 -24 24v16
-c0 39.9004 -32.7002 72.4004 -72.7002 72c-39.5996 -0.400391 -71.2998 -33.2998 -71.2998 -72.9004v-103.1h248zM264 40v48c0 22.0996 -17.9004 40 -40 40s-40 -17.9004 -40 -40v-48c0 -22.0996 17.9004 -40 40 -40s40 17.9004 40 40z" />
-    <glyph glyph-name="bullseye" unicode="&#xf140;" horiz-adv-x="496" 
-d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM248 8c101.71 0 184 82.3096 184 184c0 101.71 -82.3096 184 -184 184c-101.71 0 -184 -82.3096 -184 -184c0 -101.71 82.3096 -184 184 -184zM248 320
-c70.6904 0 128 -57.3096 128 -128s-57.3096 -128 -128 -128s-128 57.3096 -128 128s57.3096 128 128 128zM248 128c35.29 0 64 28.71 64 64s-28.71 64 -64 64s-64 -28.71 -64 -64s28.71 -64 64 -64z" />
-    <glyph glyph-name="ellipsis-h" unicode="&#xf141;" 
-d="M328 192c0 -39.7998 -32.2002 -72 -72 -72s-72 32.2002 -72 72s32.2002 72 72 72s72 -32.2002 72 -72zM432 264c39.7998 0 72 -32.2002 72 -72s-32.2002 -72 -72 -72s-72 32.2002 -72 72s32.2002 72 72 72zM80 264c39.7998 0 72 -32.2002 72 -72s-32.2002 -72 -72 -72
-s-72 32.2002 -72 72s32.2002 72 72 72z" />
-    <glyph glyph-name="ellipsis-v" unicode="&#xf142;" horiz-adv-x="192" 
-d="M96 264c39.7998 0 72 -32.2002 72 -72s-32.2002 -72 -72 -72s-72 32.2002 -72 72s32.2002 72 72 72zM24 368c0 39.7998 32.2002 72 72 72s72 -32.2002 72 -72s-32.2002 -72 -72 -72s-72 32.2002 -72 72zM24 16c0 39.7998 32.2002 72 72 72s72 -32.2002 72 -72
-s-32.2002 -72 -72 -72s-72 32.2002 -72 72z" />
-    <glyph glyph-name="rss-square" unicode="&#xf143;" horiz-adv-x="448" 
-d="M400 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352zM112 32c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM269.533 32
-c6.53516 0 11.7764 5.46777 11.4248 11.9941c-5.9668 110.428 -94.418 198.99 -204.964 204.964c-6.52637 0.351562 -11.9941 -4.88965 -11.9941 -11.4248v-34.335c0 -6.00977 4.63574 -11.0508 10.6328 -11.4414c79.8799 -5.20312 143.909 -69.0732 149.123 -149.123
-c0.391602 -5.99805 5.43066 -10.6338 11.4424 -10.6338h34.335zM372.56 32c6.4541 0 11.6641 5.33789 11.4326 11.7871c-5.99512 167.014 -140.375 302.18 -308.205 308.205c-6.44922 0.231445 -11.7871 -4.97852 -11.7871 -11.4326v-34.334
-c0 -6.16016 4.88184 -11.1748 11.0391 -11.4277c136.556 -5.59863 246.162 -115.225 251.76 -251.76c0.251953 -6.15625 5.2666 -11.0381 11.4268 -11.0381h34.334z" />
-    <glyph glyph-name="play-circle" unicode="&#xf144;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM371.7 168c16.3994 9.09961 16.3994 32.7998 0 42l-176 107c-15.9004 8.7998 -35.7002 -2.59961 -35.7002 -21v-208c0 -18.5 19.9004 -29.7998 35.7002 -21z" />
-    <glyph glyph-name="minus-square" unicode="&#xf146;" horiz-adv-x="448" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM92 152h264c6.59961 0 12 5.40039 12 12v56c0 6.59961 -5.40039 12 -12 12h-264c-6.59961 0 -12 -5.40039 -12 -12v-56
-c0 -6.59961 5.40039 -12 12 -12z" />
-    <glyph glyph-name="check-square" unicode="&#xf14a;" horiz-adv-x="448" 
-d="M400 -32h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48zM195.314 66.0586l184 184c6.24707 6.24805 6.24707 16.3799 0 22.627l-22.6279 22.6279
-c-6.24707 6.24707 -16.3789 6.24805 -22.6279 0l-150.059 -150.059l-70.0586 70.0596c-6.24805 6.24707 -16.3799 6.24707 -22.6279 0l-22.6279 -22.6279c-6.24707 -6.24707 -6.24707 -16.3789 0 -22.627l104 -104c6.24902 -6.25 16.3799 -6.25 22.6289 -0.000976562z" />
-    <glyph glyph-name="pen-square" unicode="&#xf14b;" horiz-adv-x="448" 
-d="M400 -32h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48zM238.1 270.1l-135.699 -135.699l-6.30078 -57.1006c-0.799805 -7.59961 5.60059 -14.0996 13.3008 -13.2998l57.0996 6.2998l135.7 135.7
-c2.2998 2.2998 2.2998 6.09961 0 8.5l-55.5 55.5c-2.5 2.40039 -6.2998 2.40039 -8.60059 0.0996094zM345 282.9l-30.0996 30.0996c-9.40039 9.40039 -24.6006 9.40039 -33.9004 0l-23.0996 -23.0996c-2.30078 -2.30078 -2.30078 -6.10059 0 -8.5l55.5 -55.5
-c2.2998 -2.30078 6.09961 -2.30078 8.5 0l23.0996 23.0996c9.2998 9.2998 9.2998 24.5 0 33.9004z" />
-    <glyph glyph-name="share-square" unicode="&#xf14d;" horiz-adv-x="576" 
-d="M568.482 270.552l-144.004 -135.984c-15.1787 -14.335 -40.4785 -3.70703 -40.4785 17.4473v71.9629c-144.575 -0.969727 -205.566 -35.1123 -164.775 -171.353c4.4834 -14.9727 -12.8457 -26.5674 -25.0059 -17.3301
-c-38.9668 29.5996 -74.2188 86.2168 -74.2188 143.366c0 143.937 117.599 172.5 264 173.312v72.0156c0 21.1738 25.3174 31.7676 40.4785 17.4473l144.004 -135.987c10.0195 -9.46289 10.0273 -25.4248 0 -34.8965zM384 68.8721c0 7.34473 6.53027 12.9053 13.7998 11.8594
-c3.36816 -0.485352 6.75977 -0.711914 10.2607 -0.711914c8.3877 0 16.4424 1.44043 23.9287 4.08887c7.81348 2.76367 16.0107 -3.01465 16.0107 -11.3027v-88.8057c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48
-h121.033c12.5508 0 16.6748 -16.8301 5.54492 -22.6309c-18.7773 -9.78613 -36.0615 -22.1084 -51.0137 -37.6758c-2.18164 -2.27637 -5.25098 -3.69141 -8.64844 -3.69336h-50.916v-320h320v68.8721z" />
-    <glyph glyph-name="compass" unicode="&#xf14e;" horiz-adv-x="496" 
-d="M225.38 214.63c12.4902 12.4902 32.75 12.4902 45.25 0s12.5 -32.75 0 -45.25c-12.4902 -12.5 -32.7598 -12.5 -45.25 0c-12.5 12.4902 -12.5 32.75 0 45.25zM248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248z
-M374.14 291.95c7.61035 16.6494 -9.54004 33.7998 -26.1895 26.2002l-144.34 -65.9707c-6.98438 -3.19238 -12.5781 -8.78516 -15.7705 -15.7695l-65.9795 -144.351c-7.61035 -16.6494 9.5498 -33.8096 26.1992 -26.1992l144.341 65.9697
-c6.9834 3.19238 12.5771 8.78613 15.7695 15.7695z" />
-    <glyph glyph-name="caret-square-down" unicode="&#xf150;" horiz-adv-x="448" 
-d="M448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM92.5 227.5l123 -123c4.7002 -4.7002 12.2998 -4.7002 17 0l123 123c7.59961 7.59961 2.2002 20.5 -8.5 20.5h-246
-c-10.7002 0 -16.0996 -12.9004 -8.5 -20.5z" />
-    <glyph glyph-name="caret-square-up" unicode="&#xf151;" horiz-adv-x="448" 
-d="M0 16v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48zM355.515 156.485l-123.029 123.029c-4.68652 4.68652 -12.2842 4.68652 -16.9717 0l-123.028 -123.029
-c-7.56055 -7.56055 -2.20605 -20.4854 8.48438 -20.4854h246.06c10.6904 0 16.0449 12.9258 8.48535 20.4854z" />
-    <glyph glyph-name="caret-square-right" unicode="&#xf152;" horiz-adv-x="448" 
-d="M48 416h352c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48zM188.485 60.4854l123.028 123.028c4.68652 4.68652 4.68652 12.2842 0 16.9717l-123.028 123.029
-c-7.56055 7.56055 -20.4854 2.20605 -20.4854 -8.48438v-246.06c0 -10.6904 12.9258 -16.0449 20.4854 -8.48535z" />
-    <glyph glyph-name="euro-sign" unicode="&#xf153;" horiz-adv-x="320" 
-d="M310.706 34.2354l8.81836 -44.4902c1.23828 -6.24902 -2.62109 -12.3623 -8.78809 -13.957c-12.5391 -3.24414 -34.8008 -7.78809 -61.1016 -7.78809c-104.371 0 -182.496 65.3076 -207.521 155.64h-30.1143c-6.62695 0 -12 5.37305 -12 12v28.3604
-c0 6.62695 5.37305 12 12 12h21.3877c-1 12.958 -0.828125 28.6377 0.181641 42.2451h-21.5693c-6.62695 0 -12 5.37305 -12 12v29.7549c0 6.62695 5.37305 12 12 12h33.0752c28.9551 83.748 107.376 144 204.56 144c21.0752 0 40.582 -2.91211 52.6865 -5.20703
-c6.86035 -1.30078 11.1475 -8.17578 9.32617 -14.917l-11.9912 -44.3682c-1.65527 -6.125 -7.78613 -9.89062 -14.002 -8.62305c-9.28711 1.89551 -23.3652 4.14551 -37.8516 4.14551c-54.9287 0 -96.9854 -30.0391 -117.619 -75.0303h138.278
-c7.66211 0 13.3613 -7.08203 11.7227 -14.5664l-6.51172 -29.7549c-1.17969 -5.3877 -5.9834 -9.43359 -11.7227 -9.43359h-146.593c-1.55176 -13.958 -1.34766 -27.917 -0.137695 -42.2451h134.237c7.68945 0 13.3936 -7.12891 11.708 -14.6309l-6.37305 -28.3604
-c-1.20312 -5.35547 -5.99121 -9.36914 -11.708 -9.36914h-113.689c19.5322 -50.6582 64.6982 -85.4482 121.462 -85.4482c18.0039 0 34.7334 2.97363 45.4258 5.41211c6.58887 1.50391 13.1094 -2.73828 14.4238 -9.36816z" />
-    <glyph glyph-name="pound-sign" unicode="&#xf154;" horiz-adv-x="320" 
-d="M308 96c6.62695 0 12 -5.37305 12 -12v-104c0 -6.62695 -5.37305 -12 -12 -12h-296c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h36v128h-28c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h28v66.0391
-c0 73.2188 58.0264 125.961 139.931 125.961c48.6455 0 85.1934 -22.5596 101.575 -34.9277c5.39844 -4.07617 6.35254 -11.8057 2.11914 -17.0811l-28.4932 -35.5137c-3.7998 -4.73535 -10.5371 -5.89746 -15.6875 -2.68457
-c-11.7744 7.34375 -33.9941 18.8486 -57.6523 18.8486c-37.2305 0 -61.792 -24.8193 -61.792 -57.0859v-63.5557h84c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-84v-126.848h122.505v50.8477c0 6.62695 5.37305 12 12 12h45.4951z" />
-    <glyph glyph-name="dollar-sign" unicode="&#xf155;" horiz-adv-x="288" 
-d="M209.2 214.6c57.8994 -16.8994 94 -80.0996 72.5 -141.699c-15.4004 -44.1006 -59.1006 -71.8008 -105.7 -72.7002v-48.2002c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v48c-31.4004 0.0996094 -62 10.7998 -86.5 30
-c-7.90039 6.09961 -8.90039 17.5996 -1.7998 24.5l34.7998 34c5.2002 5.09961 13.4004 6.09961 19.5 2c10 -6.7998 22 -10.5 34.2002 -10.5h66.2998c16.2998 0 29.5 13.2002 29.5 29.5c0 13 -8.7002 24.5996 -21.2002 28.2998l-102.5 30
-c-44.3994 13 -79.5996 50.5 -83.7998 96.6006c-5.90039 64.8994 45.2998 119.6 109 119.6h2.5v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48c31.4004 -0.0996094 62 -10.7998 86.5 -30c7.90039 -6.09961 8.90039 -17.5996 1.7998 -24.5l-34.7998 -34
-c-5.2002 -5.09961 -13.4004 -6.09961 -19.5 -2c-10 6.7998 -22 10.5 -34.2002 10.5h-66.2998c-16.2998 0 -29.5 -13.2002 -29.5 -29.5c0 -13 8.7002 -24.7002 21.2002 -28.2998z" />
-    <glyph glyph-name="rupee-sign" unicode="&#xf156;" horiz-adv-x="320" 
-d="M308 352h-72.9424c5.97266 -9.75391 10.7666 -20.459 14.252 -32h58.6904c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-52.8105c-7.1748 -74.5107 -61.8193 -125.566 -138.318 -127.906l150.882 -139.275
-c8.02734 -7.41016 2.78516 -20.8184 -8.13867 -20.8184h-82.5625c-3.1377 0 -6 1.20801 -8.13867 3.18164l-165.052 152.356c-2.46094 2.27148 -3.86133 5.46875 -3.86133 8.81836v53.0117c0 6.62695 5.37305 12 12 12h84c41.7959 0 68.54 22.5459 74.7568 58.6318h-158.757
-c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h146.25c-12.709 17.2939 -33.6621 27.252 -60.9697 27.252h-85.2803c-6.62695 0 -12 5.37305 -12 12v44.748c0 6.62695 5.37305 12 12 12h296c6.62695 0 12 -5.37305 12 -12v-40
-c0 -6.62695 -5.37305 -12 -12 -12z" />
-    <glyph glyph-name="yen-sign" unicode="&#xf157;" horiz-adv-x="384" 
-d="M351.2 416c9.09961 0 14.8994 -9.7002 10.5996 -17.5996l-80.0996 -150.4h58.2998c6.59961 0 12 -5.40039 12 -12v-32c0 -6.59961 -5.40039 -12 -12 -12h-88.2002l-19.7998 -37.2002v-26.7998h108c6.59961 0 12 -5.40039 12 -12v-32c0 -6.59961 -5.40039 -12 -12 -12
-h-108v-92c0 -6.59961 -5.40039 -12 -12 -12h-56c-6.59961 0 -12 5.40039 -12 12v92h-108c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h108v26.7998l-19.7998 37.2002h-88.2002c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h58.2998
-l-80.0996 150.4c-4.2002 7.89941 1.5 17.5996 10.5996 17.5996h65.2002c4.59961 0 8.7998 -2.59961 10.7998 -6.7002l55.4004 -113.2c14.5 -34.6992 27.0996 -71.8994 27.0996 -71.8994h1.2998s12.6006 37.2002 27.1006 71.8994l55.3994 113.2
-c2 4.10059 6.2002 6.7002 10.8008 6.7002h65.2998z" />
-    <glyph glyph-name="ruble-sign" unicode="&#xf158;" horiz-adv-x="384" 
-d="M239.36 128h-92.8008v-32h161.44c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-161.44v-52c0 -6.62695 -5.37305 -12 -12 -12h-58.5596c-6.62695 0 -12 5.37305 -12 12v52h-52c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h52
-v32h-52c-6.62695 0 -12 5.37305 -12 12v45.3682c0 6.62695 5.37305 12 12 12h52v206.632c0 6.62695 5.37305 12 12 12h163.36c85.1201 0 144.64 -57.5996 144.64 -143.071c0 -85.4707 -59.5195 -144.929 -144.64 -144.929zM146.56 347.252v-149.884h77.4404
-c48 0 76.1602 29.7285 76.1602 75.5605c0 45.2129 -28.1602 74.3232 -74.8799 74.3232h-78.7207z" />
-    <glyph glyph-name="won-sign" unicode="&#xf159;" horiz-adv-x="576" 
-d="M564 256h-62.7002l-7.39941 -32h70.0996c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-84.9004l-42.0996 -182.7c-1.2998 -5.39941 -6.09961 -9.2998 -11.7002 -9.2998h-56.7998c-5.59961 0 -10.4004 3.90039 -11.7002 9.2998l-42.3994 182.7
-h-55.1006l-42.2998 -182.7c-1.2998 -5.39941 -6.09961 -9.2998 -11.7002 -9.2998h-56.7998c-5.59961 0 -10.5 3.90039 -11.7002 9.40039l-40.8994 182.6h-83.9004c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h69.5l-7.2002 32h-62.2998
-c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h48l-18.0996 80.7002c-1.7002 7.5 4 14.5996 11.6992 14.5996h42.1006c5.7002 0 10.7002 -4 11.7998 -9.59961l17.5 -85.7002h108.7l20 86c1.2998 5.5 6.09961 9.2998 11.7002 9.2998h44
-c5.59961 0 10.3994 -3.7998 11.6992 -9.2998l19.7002 -86h109.9l14.3994 85.7998c1.10059 5.5 6 9.5 11.7002 9.5h46.1006c7.69922 0 13.3994 -7.2002 11.6992 -14.7002l-18.5996 -80.5996h48c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12zM183.8 106
-l12.6006 54h-38.8008l11 -54c5.10059 -25.2002 6.80078 -47.2002 6.80078 -47.2002h1.09961c0.5 0 1.09961 21.4004 7.2998 47.2002zM211.3 224l7.5 32h-80.7998l6.5 -32h66.7998zM274.2 224h25.3994l-2 8.59961c-1.89941 8 -3.5 16 -4.7998 23.4004h-11.7998
-c-1.2998 -7.40039 -2.90039 -15.4004 -4.7998 -23.4004zM405.1 106l11.5 54h-39.0996l12.4004 -54c6.19922 -25.7998 6.69922 -47.2002 7.2998 -47.2002h1.09961s1.7002 22 6.7998 47.2002zM430.3 224l6.90039 32h-81.6006l7.30078 -32h67.3994z" />
-    <glyph glyph-name="file" unicode="&#xf15b;" horiz-adv-x="384" 
-d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98
-c4.5 -4.5 7 -10.5996 7 -16.9004z" />
-    <glyph glyph-name="file-alt" unicode="&#xf15c;" horiz-adv-x="384" 
-d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM288 76v8c0 6.59961 -5.40039 12 -12 12h-168c-6.59961 0 -12 -5.40039 -12 -12v-8
-c0 -6.59961 5.40039 -12 12 -12h168c6.59961 0 12 5.40039 12 12zM288 140v8c0 6.59961 -5.40039 12 -12 12h-168c-6.59961 0 -12 -5.40039 -12 -12v-8c0 -6.59961 5.40039 -12 12 -12h168c6.59961 0 12 5.40039 12 12zM288 212c0 6.59961 -5.40039 12 -12 12h-168
-c-6.59961 0 -12 -5.40039 -12 -12v-8c0 -6.59961 5.40039 -12 12 -12h168c6.59961 0 12 5.40039 12 12v8zM384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004z" />
-    <glyph glyph-name="sort-alpha-down" unicode="&#xf15d;" horiz-adv-x="448" 
-d="M176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32
-c8.83105 0 16 -7.16895 16 -16v-304h48zM416 160c8.83105 0 16 -7.16895 16 -16v-17.6299c0 -9.51074 -4.14355 -18.0566 -10.7402 -23.9199l-61.2598 -70.4502h56c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16
-v17.6299c0 9.51074 4.14355 18.0566 10.7402 23.9199l61.2598 70.4502h-56c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128zM447.06 245.38c0.600586 -1.67969 0.931641 -3.49512 0.931641 -5.37988c0 -8.82812 -7.16406 -15.9951 -15.9912 -16h-24.8398
-c-0.015625 0 -0.0263672 -0.00195312 -0.0419922 -0.00195312c-7.11426 0 -13.1514 4.6543 -15.2285 11.082l-4.40918 12.9199h-71l-4.4209 -12.9199c-2.07617 -6.42773 -8.10938 -11.0801 -15.2246 -11.0801h-0.00488281h-24.8301
-c-8.82715 0.00488281 -15.9863 7.17773 -15.9863 16.0049c0 1.88574 0.326172 3.69531 0.926758 5.375l59.2695 160c2.20996 6.19043 8.125 10.6201 15.0703 10.6201h41.4395c6.94531 0 12.8604 -4.42969 15.0703 -10.6201zM335.61 304h32.7793l-16.3896 48z" />
-    <glyph glyph-name="sort-alpha-up" unicode="&#xf15e;" horiz-adv-x="448" 
-d="M16 288c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555c4.41406 0 8.41211 -1.79102 11.3076 -4.68555l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16
-h-32c-8.83105 0 -16 7.16895 -16 16v304h-48zM416 160c8.83105 0 16 -7.16895 16 -16v-17.6299c0 -9.51074 -4.14355 -18.0566 -10.7402 -23.9199l-61.2598 -70.4502h56c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128
-c-8.83105 0 -16 7.16895 -16 16v17.6299c0 9.51074 4.14355 18.0566 10.7402 23.9199l61.2598 70.4502h-56c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128zM447.06 245.38c0.600586 -1.67969 0.931641 -3.49512 0.931641 -5.37988
-c0 -8.82812 -7.16406 -15.9951 -15.9912 -16h-24.8398c-0.015625 0 -0.0263672 -0.00195312 -0.0419922 -0.00195312c-7.11426 0 -13.1514 4.6543 -15.2285 11.082l-4.40918 12.9199h-71l-4.4209 -12.9199c-2.07617 -6.42773 -8.10938 -11.0801 -15.2246 -11.0801
-h-0.00488281h-24.8301c-8.82715 0.00488281 -15.9863 7.17773 -15.9863 16.0049c0 1.88574 0.326172 3.69531 0.926758 5.375l59.2695 160c2.20996 6.19043 8.125 10.6201 15.0703 10.6201h41.4395c6.94531 0 12.8604 -4.42969 15.0703 -10.6201zM335.61 304h32.7793
-l-16.3896 48z" />
-    <glyph glyph-name="sort-amount-down" unicode="&#xf160;" 
-d="M304 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h64zM176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96
-c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555l-80 96c-10.0801 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32c8.83105 0 16 -7.16895 16 -16v-304h48zM432 288
-c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-192c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h192zM368 160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h128zM496 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-256c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h256z" />
-    <glyph glyph-name="sort-amount-up" unicode="&#xf161;" 
-d="M304 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h64zM16 288c-14.2305 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555
-c4.41406 0 8.41211 -1.79102 11.3076 -4.68555l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v304h-48zM432 288c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-192c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h192zM368 160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128zM496 416
-c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-256c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h256z" />
-    <glyph glyph-name="sort-numeric-down" unicode="&#xf162;" horiz-adv-x="448" 
-d="M304 352c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-112h16c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v64h-16zM330.15 189.09c53.4502 14.25 101.85 -25.8799 101.869 -77.0898v-10.7695c0 -70.3906 -28.25 -107.24 -86.25 -132
-c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408c7.59961 3.28516 14.6064 7.64258 20.8496 12.9092c-47.6396 4.76074 -83.0996 51.4805 -68.8496 102.53c7.62793 26.2793 28.5596 46.9287 55 54.1699
-zM352 92c11.0381 0 20 8.96191 20 20s-8.96191 20 -20 20s-20 -8.96191 -20 -20s8.96191 -20 20 -20zM176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555
-l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32c8.83105 0 16 -7.16895 16 -16v-304h48z" />
-    <glyph glyph-name="sort-numeric-up" unicode="&#xf163;" horiz-adv-x="448" 
-d="M330.17 189.09c53.4502 14.25 101.83 -25.8799 101.85 -77.0898v-10.7695c0 -70.3906 -28.25 -107.24 -86.25 -132c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408
-c7.59961 3.28516 14.6064 7.64258 20.8496 12.9092c-47.6396 4.76074 -83.0996 51.4805 -68.8301 102.53c7.62891 26.2793 28.5596 46.9287 55 54.1699zM352 92c11.0381 0 20 8.96191 20 20s-8.96191 20 -20 20s-20 -8.96191 -20 -20s8.96191 -20 20 -20zM304 352
-c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-112h16c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-96
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v64h-16zM107.31 411.31l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v304h-48
-c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555c4.41406 0 8.41211 -1.79102 11.3076 -4.68555z" />
-    <glyph glyph-name="thumbs-up" unicode="&#xf164;" 
-d="M104 224c13.2549 0 24 -10.7451 24 -24v-240c0 -13.2549 -10.7451 -24 -24 -24h-80c-13.2549 0 -24 10.7451 -24 24v240c0 13.2549 10.7451 24 24 24h80zM64 -24c13.2549 0 24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24zM384 366.548
-c0 -42.416 -25.9697 -66.208 -33.2773 -94.5479h101.724c33.3965 0 59.3965 -27.7461 59.5527 -58.0977c0.0839844 -17.9385 -7.5459 -37.249 -19.4395 -49.1973l-0.109375 -0.110352c9.83594 -23.3369 8.23633 -56.0371 -9.30859 -79.4688
-c8.68164 -25.8945 -0.0683594 -57.7041 -16.3818 -74.7568c4.29785 -17.5977 2.24414 -32.5752 -6.14746 -44.6318c-20.4102 -29.3242 -70.9961 -29.7373 -113.773 -29.7373l-2.84473 0.000976562c-48.2871 0.0166016 -87.8057 17.5977 -119.561 31.7246
-c-15.957 7.09961 -36.8203 15.8877 -52.6504 16.1787c-6.54004 0.120117 -11.7832 5.45703 -11.7832 11.998v213.77c0 3.2002 1.28223 6.27148 3.55762 8.52148c39.6143 39.1436 56.6484 80.5869 89.1172 113.11c14.8037 14.832 20.1885 37.2363 25.3936 58.9023
-c4.44629 18.501 13.749 57.7939 33.9316 57.7939c24 0 72 -8 72 -81.4521z" />
-    <glyph glyph-name="thumbs-down" unicode="&#xf165;" 
-d="M0 392c0 13.2549 10.7451 24 24 24h80c13.2549 0 24 -10.7451 24 -24v-240c0 -13.2549 -10.7451 -24 -24 -24h-80c-13.2549 0 -24 10.7451 -24 24v240zM40 192c0 -13.2549 10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24zM312 -64
-c-20.1826 0 -29.4854 39.293 -33.9307 57.7949c-5.20605 21.666 -10.5889 44.0703 -25.3936 58.9023c-32.4688 32.5234 -49.5029 73.9668 -89.1172 113.11c-2.19727 2.17285 -3.55762 5.19043 -3.55762 8.52148v213.77c0 6.54102 5.24316 11.8779 11.7832 11.998
-c15.8311 0.290039 36.6934 9.0791 52.6504 16.1787c31.7549 14.127 71.2744 31.708 119.561 31.7246h2.84375c42.7773 0 93.3633 -0.413086 113.774 -29.7373c8.3916 -12.0566 10.4453 -27.0342 6.14746 -44.6318c16.3125 -17.0527 25.0635 -48.8633 16.3818 -74.7568
-c17.5439 -23.4316 19.1436 -56.1318 9.30859 -79.4688l0.109375 -0.110352c11.8936 -11.9492 19.5234 -31.2588 19.4395 -49.1973c-0.15625 -30.3516 -26.1572 -58.0977 -59.5527 -58.0977h-101.725c7.30762 -28.3398 33.2773 -52.1318 33.2773 -94.5479
-c0 -73.4521 -48 -81.4521 -72 -81.4521z" />
-    <glyph glyph-name="female" unicode="&#xf182;" horiz-adv-x="256" 
-d="M128 448c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64zM247.283 93.8213c3.78809 -15.1504 -7.69238 -29.8213 -23.2832 -29.8213h-56v-104c0 -13.2549 -10.7451 -24 -24 -24h-32c-13.2549 0 -24 10.7451 -24 24v104h-56
-c-15.6172 0 -27.0654 14.6953 -23.2832 29.8213l48 192c2.6084 10.4316 12.0488 18.1787 23.2832 18.1787h11.3604c23.6895 -10.8936 50.5684 -10.4434 73.2793 0h11.3604c11.2344 0 20.6748 -7.74707 23.2832 -18.1787z" />
-    <glyph glyph-name="male" unicode="&#xf183;" horiz-adv-x="192" 
-d="M96 448c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64zM144 304c26.5098 0 48 -21.4902 48 -48v-136c0 -13.2549 -10.7451 -24 -24 -24h-16v-136c0 -13.2549 -10.7451 -24 -24 -24h-64c-13.2549 0 -24 10.7451 -24 24v136h-16
-c-13.2549 0 -24 10.7451 -24 24v136c0 26.5098 21.4902 48 48 48h11.3604c23.6895 -10.8936 50.5684 -10.4434 73.2793 0h11.3604z" />
-    <glyph glyph-name="sun" unicode="&#xf185;" 
-d="M256 288c52.9004 0 96 -43.0996 96 -96s-43.0996 -96 -96 -96s-96 43.0996 -96 96s43.0996 96 96 96zM502.4 207.5c12.7998 -6.40039 12.7998 -24.5996 -0.200195 -31.0996l-94.7002 -47.3008l33.5 -100.399c4.59961 -13.5 -8.2998 -26.4004 -21.9004 -21.9004
-l-100.399 33.5l-47.2998 -94.7002c-6.40039 -12.7998 -24.6006 -12.7998 -31 0l-47.3008 94.7002l-100.399 -33.5c-13.5 -4.59961 -26.4004 8.2998 -21.9004 21.9004l33.5 100.5l-94.7002 47.2998c-12.7998 6.40039 -12.7998 24.5996 0 31l94.7002 47.4004l-33.5 100.399
-c-4.59961 13.5 8.2998 26.4004 21.9004 21.9004l100.5 -33.5l47.2998 94.7002c6.40039 12.7998 24.5996 12.7998 31 0l47.4004 -94.8008l100.399 33.5c13.5 4.60059 26.4004 -8.2998 21.9004 -21.8994l-33.5 -100.4zM346.5 101.5c49.9004 49.9004 49.9004 131.1 0 181
-s-131.1 49.9004 -181 0s-49.9004 -131.1 0 -181s131.1 -49.9004 181 0z" />
-    <glyph glyph-name="moon" unicode="&#xf186;" 
-d="M283.211 -64c-141.489 0 -256 114.691 -256 256c0 141.489 114.691 256 256 256c16.0479 -0.00195312 31.5352 -1.46973 46.7754 -4.28027c11.0059 -2.0332 13.4414 -16.7178 3.75586 -22.2295c-62.8359 -35.7588 -101.498 -102.172 -101.498 -174.395
-c0 -125.378 114.059 -220.607 238.262 -196.954c10.9229 2.08008 18.6299 -10.6416 11.5625 -19.3496c-47.7783 -58.8672 -119.896 -94.792 -198.857 -94.792z" />
-    <glyph glyph-name="archive" unicode="&#xf187;" 
-d="M32 0v288h448v-288c0 -17.7002 -14.2998 -32 -32 -32h-384c-17.7002 0 -32 14.2998 -32 32zM192 212v-8c0 -6.59961 5.40039 -12 12 -12h104c6.59961 0 12 5.40039 12 12v8c0 6.59961 -5.40039 12 -12 12h-104c-6.59961 0 -12 -5.40039 -12 -12zM480 416
-c17.7002 0 32 -14.2998 32 -32v-48c0 -8.7998 -7.2002 -16 -16 -16h-480c-8.7998 0 -16 7.2002 -16 16v48c0 17.7002 14.2998 32 32 32h448z" />
-    <glyph glyph-name="bug" unicode="&#xf188;" 
-d="M511.988 159.1c-0.478516 -17.4297 -15.2168 -31.0996 -32.6533 -31.0996h-55.335v-16c0 -21.8643 -4.88184 -42.584 -13.5996 -61.1445l60.2275 -60.2285c12.4961 -12.4971 12.4961 -32.7578 0 -45.2549c-12.498 -12.4971 -32.7588 -12.4961 -45.2559 0
-l-54.7363 54.7363c-24.75 -20.0732 -56.2852 -32.1084 -90.6357 -32.1084v244c0 6.62695 -5.37305 12 -12 12h-24c-6.62695 0 -12 -5.37305 -12 -12v-244c-34.3506 0 -65.8857 12.0352 -90.6357 32.1084l-54.7363 -54.7363c-12.498 -12.4971 -32.7588 -12.4961 -45.2559 0
-c-12.4961 12.4971 -12.4961 32.7578 0 45.2549l60.2275 60.2285c-8.71777 18.5605 -13.5996 39.2803 -13.5996 61.1445v16h-55.334c-17.4355 0 -32.1748 13.6699 -32.6533 31.0996c-0.49707 18.084 14.0156 32.9004 31.9873 32.9004h56v58.7451l-46.6279 46.6279
-c-12.4961 12.4971 -12.4961 32.7578 0 45.2549c12.498 12.4971 32.7578 12.4971 45.2559 0l54.627 -54.6279h229.489l54.627 54.627c12.498 12.4971 32.7578 12.4971 45.2559 0c12.4961 -12.4971 12.4961 -32.7578 0 -45.2549l-46.627 -46.627v-58.7451h56
-c17.9717 0 32.4844 -14.8164 31.9883 -32.9004zM257 448c61.8564 0 112 -50.1436 112 -112h-224c0 61.8564 50.1436 112 112 112z" />
-    <glyph glyph-name="caret-square-left" unicode="&#xf191;" horiz-adv-x="448" 
-d="M400 -32h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48zM259.515 323.515l-123.029 -123.029c-4.68652 -4.68652 -4.68652 -12.2842 0 -16.9717l123.028 -123.028
-c7.56055 -7.56055 20.4854 -2.20605 20.4854 8.48438v246.06c0.000976562 10.6904 -12.9248 16.0449 -20.4844 8.48535z" />
-    <glyph glyph-name="dot-circle" unicode="&#xf192;" 
-d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM336 192c0 44.1123 -35.8877 80 -80 80s-80 -35.8877 -80 -80s35.8877 -80 80 -80s80 35.8877 80 80z" />
-    <glyph glyph-name="wheelchair" unicode="&#xf193;" 
-d="M496.101 62.3311l14.2275 -28.6631c3.92871 -7.91504 0.697266 -17.5156 -7.21777 -21.4453l-65.4658 -32.8857c-16.0488 -7.9668 -35.5557 -1.19434 -43.1885 15.0547l-62.7773 133.608h-139.679c-15.9248 0 -29.4258 11.71 -31.6787 27.4746
-c-33.8887 237.218 -31.9414 222.481 -32.3213 228.525c0 36.3584 30.3184 65.6348 67.0518 63.9287c33.2715 -1.54492 60.0479 -28.9043 60.9248 -62.2012c0.868164 -32.9326 -23.1514 -60.4229 -54.6074 -65.0381l4.66992 -32.6904h129.961c8.83691 0 16 -7.16309 16 -16
-v-32c0 -8.83691 -7.16309 -16 -16 -16h-120.818l4.57227 -32h132.246c12.8076 0 23.8506 -7.5127 28.9619 -18.3916l57.5146 -122.407l36.1787 18.3486c7.91504 3.92871 17.5166 0.697266 21.4453 -7.21777zM311.358 96l25.752 -54.8076
-c-27.3047 -61.8848 -89.2402 -105.192 -161.11 -105.192c-97.0469 0 -176 78.9531 -176 176c0 74.0371 45.9561 137.536 110.836 163.489c2.64453 -18.4736 5.77637 -40.3682 9.48828 -66.333c-33.6299 -19.3477 -56.3242 -55.6514 -56.3242 -97.1562
-c0 -61.7568 50.2432 -112 112 -112c56.3242 0 103.064 41.7959 110.852 96h24.5068z" />
-    <glyph glyph-name="lira-sign" unicode="&#xf195;" horiz-adv-x="384" 
-d="M371.994 192c6.78613 0 12.2578 -5.62598 11.9971 -12.4082c-5.15332 -133.758 -94.3174 -211.592 -228.408 -211.592h-79.583c-6.62695 0 -12 5.37305 -12 12v193.442l-49.3975 -10.9775c-7.49316 -1.66602 -14.6025 4.03711 -14.6025 11.7139v40.9766
-c0 5.72656 4.02734 10.5205 9.39746 11.7139l54.6025 12.1338v30.4395l-49.3975 -10.9775c-7.49316 -1.66602 -14.6025 4.03711 -14.6025 11.7139v40.9766c0 5.72656 4.02734 10.5205 9.39746 11.7139l54.6025 12.1338v68.9971c0 6.62695 5.37305 12 12 12h56
-c6.62695 0 12 -5.37305 12 -12v-51.2188l129.397 28.7539c7.49316 1.66602 14.6025 -4.03711 14.6025 -11.7139v-40.9756c0 -5.72656 -4.02734 -10.5205 -9.39746 -11.7139l-134.603 -29.9121v-30.4385l129.397 28.7539c7.49316 1.66602 14.6025 -4.03711 14.6025 -11.7139
-v-40.9766c0 -5.72656 -4.02734 -10.5205 -9.39746 -11.7139l-134.603 -29.9121v-159.219c86.1787 0 168 48 168 148.754c0 6.33398 5.63965 11.2461 11.9746 11.2461h48.0195z" />
-    <glyph glyph-name="space-shuttle" unicode="&#xf197;" horiz-adv-x="640" 
-d="M592.604 239.756c29.6787 -13.9111 47.3965 -31.7637 47.3965 -47.7559s-17.7178 -33.8447 -47.3965 -47.7559c-32.8682 -15.4082 -76.8262 -24.2441 -120.604 -24.2441h-285.674c-4.95215 -6.55469 -10.585 -11.9775 -16.7197 -16h206.394
-c-146.843 -30.2529 -156.597 -136 -279.997 -136h-0.00292969v128h-16v-128c-26.5098 0 -48 28.6543 -48 64v64c-23.1807 0 -32 10.0166 -32 24v40c0 13.9678 8.80273 24 32 24v16c-23.1807 0 -32 10.0166 -32 24v40c0 13.9678 8.80273 24 32 24v64
-c0 35.3457 21.4902 64 48 64v-128h16v128h0.00292969c123.4 0 133.154 -105.747 279.997 -136h-206.393c6.13477 -4.02246 11.7676 -9.44531 16.7197 -16h285.673c43.7773 0 87.7354 -8.83594 120.604 -24.2441zM488 152c31.9424 0 31.9092 80 0 80
-c-4.41504 0 -8 -3.58496 -8 -8v-64c0 -4.41504 3.58496 -8 8 -8z" />
-    <glyph glyph-name="envelope-square" unicode="&#xf199;" horiz-adv-x="448" 
-d="M400 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352zM178.117 185.896c10.5156 -7.66895 31.3799 -26.1133 45.8828 -25.8955
-c14.4912 -0.225586 35.3828 18.2393 45.8828 25.8936c90.6836 65.8145 89.7461 65.9697 114.117 84.9385v25.167c0 13.2549 -10.7451 24 -24 24h-272c-13.2549 0 -24 -10.7451 -24 -24v-25.167c24.3525 -18.9541 23.4287 -19.1201 114.117 -84.9365zM384 230.225
-c-13.958 -10.793 -33.3252 -25.2334 -95.2832 -70.1982c-13.6826 -9.98438 -37.833 -32.1592 -64.7197 -32.0254c-26.7188 -0.134766 -50.5322 21.6689 -64.6943 32.0098c-61.9736 44.9785 -81.3447 59.4199 -95.3027 70.2139v-142.225c0 -13.2549 10.7451 -24 24 -24h272
-c13.2549 0 24 10.7451 24 24v142.225z" />
-    <glyph glyph-name="university" unicode="&#xf19c;" 
-d="M496 320v-16c0 -4.41504 -3.58496 -8 -8 -8h-24v-12c0 -6.62695 -5.37305 -12 -12 -12h-392c-6.62695 0 -12 5.37305 -12 12v12h-24c-4.41504 0 -8 3.58496 -8 8v16c0 3.33398 2.03906 6.19141 4.94141 7.3916l232 88
-c0.94043 0.389648 1.97168 0.605469 3.05371 0.605469c1.08105 0 2.12305 -0.21582 3.06348 -0.605469l232 -88c2.90234 -1.2002 4.94141 -4.05762 4.94141 -7.3916zM472 16c13.2549 0 24 -10.7451 24 -24v-16c0 -4.41504 -3.58496 -8 -8 -8h-464
-c-4.41504 0 -8 3.58496 -8 8v16c0 13.2549 10.7451 24 24 24h432zM96 256h64v-192h64v192h64v-192h64v192h64v-192h36c6.62695 0 12 -5.37305 12 -12v-20h-416v20c0 6.62695 5.37305 12 12 12h36v192z" />
-    <glyph glyph-name="graduation-cap" unicode="&#xf19d;" horiz-adv-x="640" 
-d="M622.34 294.8c23.5498 -7.24023 23.5498 -38.3594 0 -45.5996l-278.95 -85.7002c-20.3496 -6.25 -37.7295 -2.78027 -46.79 0l-195.569 60.0898c-12.25 -8.41992 -19.9307 -21.7002 -20.6904 -36.7197c9.19043 -5.62012 15.6602 -15.2998 15.6602 -26.8701
-c0 -10.7803 -5.67969 -19.8496 -13.8604 -25.6504l25.5303 -114.88c2.21973 -9.98926 -5.37988 -19.4697 -15.6201 -19.4697h-56.1094c-10.2305 0 -17.8301 9.48047 -15.6104 19.4697l25.5303 114.88c-8.18066 5.80078 -13.8604 14.8701 -13.8604 25.6504
-c0 11.8896 6.78027 21.8496 16.4102 27.3701c0.649414 17.6201 7.20996 33.71 17.8799 46.8994l-48.6299 14.9404c-23.54 7.23047 -23.54 38.3604 0 45.5898l278.95 85.7002c15.1895 4.66992 31.5898 4.66992 46.79 0zM352.79 132.91l145.03 44.5596l14.1797 -113.47
-c0 -35.3496 -85.96 -64 -192 -64s-192 28.6504 -192 64l14.1797 113.46l145.021 -44.5498c12.75 -3.91992 37.0596 -8.75977 65.5898 0z" />
-    <glyph glyph-name="language" unicode="&#xf1ab;" horiz-adv-x="640" 
-d="M152.1 211.8l10.9004 -37.5h-38.0996l11.0996 37.5c3.5 12.1006 7.7998 33.2002 7.7998 33.2002h0.5s4.2998 -21.0996 7.7998 -33.2002zM616 352c13.2998 0 24 -10.7002 24 -24v-272c0 -13.2998 -10.7002 -24 -24 -24h-280v320h280zM592 232v16
-c0 6.59961 -5.40039 12 -12 12h-64v16c0 6.59961 -5.40039 12 -12 12h-16c-6.59961 0 -12 -5.40039 -12 -12v-16h-64c-6.59961 0 -12 -5.40039 -12 -12v-16c0 -6.59961 5.40039 -12 12 -12h114.3c-6.2002 -14.2998 -16.5 -29 -30 -43.2002
-c-6.59961 6.90039 -12.3994 13.9004 -17.3994 20.9004c-3.60059 5.09961 -10.6006 6.59961 -16 3.39941l-7.30078 -4.2998l-6.5 -3.89941c-5.89941 -3.5 -7.69922 -11.4004 -3.69922 -17.1006c6.09961 -8.7002 13.0996 -17.2998 21 -25.7002
-c-8.10059 -6.2998 -16.8008 -12.2998 -26.1006 -18c-5.59961 -3.39941 -7.39941 -10.5996 -4.2002 -16.1992l7.90039 -13.9004c3.40039 -5.90039 10.9004 -7.7998 16.7002 -4.2998c12.7002 7.7998 24.5 16.2002 35.3994 24.8994
-c10.9004 -8.7998 22.8008 -17.0996 35.4004 -24.8994c5.7998 -3.5 13.2998 -1.60059 16.7002 4.2998l7.89941 13.9004c3.2002 5.69922 1.40039 12.7998 -4.09961 16.1992c-9 5.5 -17.7002 11.6006 -26.0996 18c21 22.5 35.7998 46.3008 42.6992 69.9004h11.4004
-c6.59961 0 12 5.40039 12 12zM0 328c0 13.2998 10.7002 24 24 24h280v-320h-280c-13.2998 0 -24 10.7002 -24 24v272zM58.9004 111.9c-2.60059 -7.80078 3.19922 -15.9004 11.3994 -15.9004h22.9004c5.2998 0 10 3.59961 11.5 8.7002l9.09961 31.7998h60.2002
-l9.40039 -31.9004c1.4668 -4.96582 6.06152 -8.5957 11.5 -8.59961h22.8994c8.2998 0 14 8.09961 11.4004 15.9004l-57.5 169.1c-1.7002 4.7998 -6.2998 8.09961 -11.4004 8.09961h-32.5c-5.2002 0 -9.7002 -3.19922 -11.3994 -8.09961z" />
-    <glyph glyph-name="fax" unicode="&#xf1ac;" 
-d="M480 288c17.6611 0 32 -14.3389 32 -32v-288c0 -17.6611 -14.3389 -32 -32 -32h-320c-17.6611 0 -32 14.3389 -32 32v448c0 17.6611 14.3389 32 32 32h242.75c8.82715 -0.000976562 16.8291 -3.58008 22.6201 -9.37012l45.25 -45.25
-c5.7959 -5.79199 9.37891 -13.7979 9.37988 -22.6299v-82.75zM288 16v32c0 8.83105 -7.16895 16 -16 16h-32c-8.83105 0 -16 -7.16895 -16 -16v-32c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16zM288 144v32c0 8.83105 -7.16895 16 -16 16h-32
-c-8.83105 0 -16 -7.16895 -16 -16v-32c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16zM416 16v32c0 8.83105 -7.16895 16 -16 16h-32c-8.83105 0 -16 -7.16895 -16 -16v-32c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16zM416 144v32
-c0 8.83105 -7.16895 16 -16 16h-32c-8.83105 0 -16 -7.16895 -16 -16v-32c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16zM416 256v64h-48c-8.83105 0 -16 7.16895 -16 16v48h-160v-128h224zM64 320c17.6611 0 32 -14.3389 32 -32v-320
-c0 -17.6611 -14.3389 -32 -32 -32h-32c-17.6611 0 -32 14.3389 -32 32v320c0 17.6611 14.3389 32 32 32h32z" />
-    <glyph glyph-name="building" unicode="&#xf1ad;" horiz-adv-x="448" 
-d="M436 -32c6.62695 0 12 -5.37305 12 -12v-20h-448v20c0 6.62695 5.37305 12 12 12h20v456c0 13.2549 10.7451 24 24 24h336c13.2549 0 24 -10.7451 24 -24v-456h20zM128 372v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12v40
-c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12zM128 276v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12zM180 128c6.62695 0 12 5.37305 12 12v40
-c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40zM256 -32v84c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-84h64zM320 140v40c0 6.62695 -5.37305 12 -12 12h-40
-c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM320 236v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM320 332v40
-c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12z" />
-    <glyph glyph-name="child" unicode="&#xf1ae;" horiz-adv-x="384" 
-d="M120 376c0 39.7646 32.2354 72 72 72s72 -32.2354 72 -72c0 -39.7637 -32.2354 -72 -72 -72s-72 32.2363 -72 72zM374.627 374.627c12.4971 -12.4971 12.4971 -32.7568 0 -45.2539l-94.627 -94.627v-266.746c0 -17.6729 -14.3271 -32 -32 -32h-16
-c-17.6729 0 -32 14.3271 -32 32v112h-16v-112c0 -17.6729 -14.3271 -32 -32 -32h-16c-17.6729 0 -32 14.3271 -32 32v266.746l-94.627 94.626c-12.4971 12.4971 -12.4971 32.7578 0 45.2549c12.4961 12.4971 32.7578 12.4971 45.2539 0l86.627 -86.627h101.491
-l86.6279 86.627c12.4961 12.4971 32.7578 12.4971 45.2539 0z" />
-    <glyph glyph-name="paw" unicode="&#xf1b0;" 
-d="M256 224c79.4102 0 192 -122.76 192 -200.25c0 -34.9004 -26.8096 -55.75 -71.7402 -55.75c-48.4102 0 -80.75 25.0801 -120.26 25.0801c-39.1699 0 -71.4199 -25.0801 -120.26 -25.0801c-44.9307 0 -71.7402 20.8496 -71.7402 55.75c0 77.4902 112.59 200.25 192 200.25
-zM108.72 236.61c10.4004 -34.6504 -4.76953 -68.3799 -33.8896 -75.3408c-29.1201 -6.95996 -61.1602 15.4805 -71.5605 50.1309c-10.3994 34.6494 4.77051 68.3799 33.8906 75.3398s61.1602 -15.4805 71.5596 -50.1299zM193.44 257.39
-c-30.9307 -8.14941 -65.6201 20.4502 -77.46 63.8701c-11.8408 43.4199 3.63965 85.2207 34.5791 93.3604c30.9404 8.13965 65.6201 -20.4502 77.46 -63.8701c11.8408 -43.4199 -3.63965 -85.2197 -34.5791 -93.3604zM474.83 286.73
-c29.1201 -6.96094 44.29 -40.6904 33.8896 -75.3408c-10.4102 -34.6494 -42.4395 -57.0898 -71.5596 -50.1299s-44.29 40.6904 -33.8906 75.3398c10.4102 34.6504 42.4404 57.0908 71.5605 50.1309zM318.56 257.39c-30.9395 8.14062 -46.4199 49.9404 -34.5791 93.3604
-c11.8398 43.4199 46.5195 72.0195 77.46 63.8701c30.9395 -8.15039 46.4199 -49.9404 34.5791 -93.3604c-11.8398 -43.4199 -46.5195 -72.0098 -77.46 -63.8701z" />
-    <glyph glyph-name="cube" unicode="&#xf1b2;" 
-d="M239.1 441.7c10.9004 4.09961 22.9004 4.09961 33.7002 -0.100586l208 -78c18.7002 -7 31.1006 -24.8994 31.1006 -44.8994v-225.101c0 -18.0996 -10.2002 -34.7998 -26.5 -42.8994l-208 -104c-13.5 -6.7998 -29.4004 -6.7998 -42.9004 0l-208 104
-c-16.2002 8.09961 -26.5 24.7002 -26.5 42.8994v225.101c0 20 12.4004 38 31.0996 45zM256 379.6l-192 -72v-1.09961l192 -78l192 78v1.09961zM288 23.5996l160 80v133.9l-160 -65v-148.9z" />
-    <glyph glyph-name="cubes" unicode="&#xf1b3;" 
-d="M488.6 197.8c14.1006 -5.2998 23.4004 -18.7002 23.4004 -33.7002v-110.1c0 -13.5996 -7.7002 -26.0996 -19.9004 -32.2002l-100 -50c-10.0996 -5.09961 -22.0996 -5.09961 -32.1992 0l-103.9 52l-103.9 -52c-10.0996 -5.09961 -22.0996 -5.09961 -32.1992 0l-100 50
-c-12.2002 6.10059 -19.9004 18.6006 -19.9004 32.2002v110.1c0 15 9.2998 28.4004 23.2998 33.7002l96.6006 36.2002v108.5c0 15 9.2998 28.4004 23.3994 33.7002l100 37.5c8.2002 3.09961 17.2002 3.09961 25.2998 0l100 -37.5
-c14.1006 -5.2998 23.4004 -18.7002 23.4004 -33.7002v-108.5zM358 233.2v73.2998l-85 -37v-68.2002zM154 343.9v-0.600586l102 -41.3994l102 41.3994v0.600586l-102 38.1992zM238 52.7998v75.4004l-85 -38.7998v-79.1006zM238 164.8v0.600586l-102 38.1992l-102 -38.1992
-v-0.600586l102 -41.3994zM478 52.7998v75.4004l-85 -38.7998v-79.1006zM478 164.8v0.600586l-102 38.1992l-102 -38.1992v-0.600586l102 -41.3994z" />
-    <glyph glyph-name="recycle" unicode="&#xf1b8;" 
-d="M184.561 186.097c3.23242 -13.9971 -12.1221 -24.6348 -24.0674 -17.168l-40.7363 25.4551l-50.8672 -81.4014c-13.2832 -21.2559 2.07031 -48.9824 27.1221 -48.9824h51.9883c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-51.8848
-c-75.334 0 -121.302 83.0479 -81.4082 146.88l50.8223 81.3877l-40.7256 25.4482c-12.0811 7.54688 -8.96582 25.9609 4.87891 29.1582l110.237 25.4502c8.61133 1.9873 17.2012 -3.38086 19.1895 -11.9902zM283.122 369.012
-c-12.2842 19.6543 -41.5449 20.3193 -54.2568 -0.0214844l-17.9609 -28.7432c-3.5127 -5.62012 -10.916 -7.3291 -16.5361 -3.81738l-33.9189 21.1953c-5.62012 3.51172 -7.33008 10.9131 -3.82031 16.5332l17.9629 28.7656c37.6074 60.1709 125.295 60.0332 162.816 0
-l41.2627 -66.082l40.6875 25.4238c12.0771 7.55176 27.2646 -3.32324 24.0674 -17.168l-25.4502 -110.236c-1.97363 -8.55273 -10.5166 -13.9893 -19.1885 -11.9902l-110.237 25.4502c-13.8789 3.20508 -16.9297 21.6299 -4.87891 29.1572l40.7402 25.457zM497.288 146.88
-c39.9268 -63.8828 -6.13379 -146.88 -81.4082 -146.88h-95.8799v-47.9893c0 -14.3105 -17.3105 -21.3184 -27.3135 -11.3145l-80 79.9883c-6.24805 6.24805 -6.24805 16.3799 0 22.627l80 79.9814c10.0713 10.0703 27.3135 2.90039 27.3135 -11.3125v-47.9814h95.9844
-c25.0791 0 40.3926 27.749 27.1357 48.96l-27.5645 44.1123c-3.51172 5.62109 -1.80176 13.0234 3.81836 16.5361l33.8613 21.1582c5.62207 3.51367 13.0264 1.80273 16.5381 -3.82031z" />
-    <glyph glyph-name="car" unicode="&#xf1b9;" 
-d="M499.99 272c7.80957 0 13.54 -7.33984 11.6494 -14.9102l-6 -24c-1.33008 -5.33984 -6.12988 -9.08984 -11.6396 -9.08984h-20.0703c13.4199 -11.7305 22.0703 -28.7803 22.0703 -48v-48c0 -16.1299 -6.16016 -30.6797 -16 -41.9297v-54.0703
-c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v32h-256v-32c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v54.0703c-9.83984 11.2598 -16 25.8096 -16 41.9297v48c0 19.2197 8.65039 36.2695 22.0801 48h-20.0703
-c-5.50977 0 -10.3096 3.75 -11.6396 9.08984l-6 24c-1.90039 7.57031 3.83008 14.9102 11.6396 14.9102h59.8604l16.6396 41.5996c17.1104 42.7705 57.9307 70.4004 103.99 70.4004h127c46.0703 0 86.8799 -27.6299 103.98 -70.4004l16.6396 -41.5996h59.8701z
-M147.93 289.83l-19.9297 -49.8301h256l-19.9297 49.8301c-7.29004 18.2197 -24.9404 30.1699 -44.5703 30.1699h-127c-19.6299 0 -37.2803 -11.9502 -44.5703 -30.1699zM96 128.2c19.2002 0 48 -3.19043 48 15.9502c0 19.1396 -28.7998 47.8496 -48 47.8496
-s-32 -12.7598 -32 -31.9004c0 -19.1396 12.7998 -31.8994 32 -31.8994zM416 128.2c19.2002 0 32 12.7598 32 31.8994c0 19.1406 -12.7998 31.9004 -32 31.9004s-48 -28.71 -48 -47.8496c0 -19.1406 28.7998 -15.9502 48 -15.9502z" />
-    <glyph glyph-name="taxi" unicode="&#xf1ba;" 
-d="M462 206.36c28.5898 -6.40039 50 -31.8301 50 -62.3604v-48c0 -23.6201 -12.9502 -44.0303 -32 -55.1201v-40.8799c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v32h-256v-32c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32
-v40.8799c-19.0498 11.0801 -32 31.4902 -32 55.1201v48c0 30.5303 21.4102 55.96 50 62.3604l22 84.8398c9.59961 35.2002 41.5996 60.7998 76.7998 60.7998h11.2002v32c0 17.6699 14.3301 32 32 32h128c17.6699 0 32 -14.3301 32 -32v-32h11.2002
-c35.2002 0 67.2002 -25.5996 76.7998 -60.7998zM96 96c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM116.55 208h278.9l-17.3906 67.1396c-2.01953 7.37988 -9.37988 12.8604 -14.8496 12.8604h-214.4
-c-5.46973 0 -12.8291 -5.48047 -15.0596 -13.6396zM416 96c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="tree" unicode="&#xf1bb;" horiz-adv-x="384" 
-d="M378.31 69.5098c6 -6.79004 7.36035 -16.0898 3.56055 -24.2598c-3.75 -8.0498 -12 -13.25 -21.0098 -13.25h-136.86v-24.4502l30.29 -48.3994c5.32031 -10.6406 -2.41992 -23.1602 -14.3096 -23.1602h-95.9609c-11.8896 0 -19.6299 12.5195 -14.3096 23.1602
-l30.29 48.3994v24.4502h-136.86c-9.00977 0 -17.2598 5.2002 -21.0098 13.25c-3.7998 8.16992 -2.43945 17.4697 3.56055 24.2598l79.8896 90.4902h-30.6299c-9.02051 0 -16.9805 5 -20.7803 13.0498c-3.79004 8.0498 -2.54004 17.2598 3.27051 24.04l78.1396 90.9102
-h-28.8896c-9.10059 0 -17.3105 5.34961 -20.8701 13.6104c-3.51074 8.12988 -1.86035 17.5898 4.23926 24.0801l110.28 117.479c6.04004 6.4502 17.29 6.4502 23.3203 0l110.27 -117.479c6.10059 -6.49023 7.76074 -15.9502 4.24023 -24.0801
-c-3.55957 -8.26074 -11.7598 -13.6104 -20.8604 -13.6104h-28.8896l78.1299 -90.8896c5.83008 -6.79004 7.08008 -16.0107 3.28027 -24.0508c-3.7998 -8.05957 -11.7705 -13.0596 -20.7803 -13.0596h-30.6299z" />
-    <glyph glyph-name="database" unicode="&#xf1c0;" horiz-adv-x="448" 
-d="M448 374.857v-45.7148c0 -40.2852 -100.333 -73.1426 -224 -73.1426s-224 32.8574 -224 73.1426v45.7148c0 40.2852 100.333 73.1426 224 73.1426s224 -32.8574 224 -73.1426zM448 272v-102.857c0 -40.2852 -100.333 -73.1426 -224 -73.1426s-224 32.8574 -224 73.1426
-v102.857c48.125 -33.1426 136.208 -48.5723 224 -48.5723s175.874 15.4297 224 48.5723zM448 112v-102.857c0 -40.2852 -100.333 -73.1426 -224 -73.1426s-224 32.8574 -224 73.1426v102.857c48.125 -33.1426 136.208 -48.5723 224 -48.5723s175.874 15.4297 224 48.5723z
-" />
-    <glyph glyph-name="file-pdf" unicode="&#xf1c1;" horiz-adv-x="384" 
-d="M181.9 191.9c-5 16 -4.90039 46.8994 -2 46.8994c8.39941 0 7.59961 -36.8994 2 -46.8994zM180.2 144.7c9.59961 -17.4004 21.7998 -31.2002 34.5 -40.7998c-23.9004 -4.7002 -44.6006 -14.9004 -62.9004 -21.9004c11.1006 19.4004 20.7002 42.5 28.4004 62.7002z
-M86.0996 19.9004c5.80078 15.6992 28.2002 33.8994 34.9004 40.1992c-21.7002 -34.7998 -34.9004 -41 -34.9004 -40.1992zM248 288h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136
-c0 -13.2002 10.7998 -24 24 -24zM240 116.2c-20 12.2002 -33.2998 29 -42.7002 53.7998c4.5 18.5 11.6006 46.5996 6.2002 64.2002c-4.7002 29.3994 -42.4004 26.5 -47.7998 6.7998c-5 -18.2998 -0.400391 -44.0996 8.09961 -77
-c-11.5996 -27.5996 -28.7002 -64.5996 -40.7998 -85.7998c-0.0996094 0 -0.0996094 -0.100586 -0.200195 -0.100586c-27.0996 -13.8994 -73.5996 -44.5 -54.5 -68c5.60059 -6.89941 16 -10 21.5 -10c17.9004 0 35.7002 18 61.1006 61.8008
-c25.7998 8.5 54.0996 19.0996 79 23.1992c21.6992 -11.7998 47.0996 -19.5 64 -19.5c29.1992 0 31.1992 32 19.6992 43.4004c-13.8994 13.5996 -54.2998 9.7002 -73.5996 7.2002zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6c6.40039 0 12.5 -2.5 17 -7z
-M302.9 87.7002c0 0 -5.7002 -6.7998 -42.8008 9c40.3008 2.89941 46.9004 -6.2998 42.8008 -9z" />
-    <glyph glyph-name="file-word" unicode="&#xf1c2;" horiz-adv-x="384" 
-d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM281.1 192c-5.59961 0 -10.5 -3.90039 -11.5 -9.5c-24.1992 -111.4 -21.7998 -118 -21.5996 -129.2
-c-0.799805 5.40039 -5.59961 29 -29.5996 129.4c-1.30078 5.39941 -6.10059 9.2002 -11.7002 9.2002h-29.1006c-5.59961 0 -10.3994 -3.7002 -11.6992 -9.10059c-22.1006 -90 -27.8008 -112.5 -29.4004 -122.7c-0.900391 12.7002 -5.40039 44.2002 -21 122.2
-c-1.09961 5.7002 -6.09961 9.7002 -11.7998 9.7002h-24.5c-7.7002 0 -13.4004 -7.09961 -11.7002 -14.5996l37.7998 -168c1.2002 -5.5 6.10059 -9.40039 11.7002 -9.40039h37.0996c5.5 0 10.3008 3.7998 11.6006 9.09961c23.2002 93.1006 24.5 96.2002 25.5996 110.5h0.5
-c4.7998 -29.2998 -0.200195 -7 25.6006 -110.5c1.2998 -5.2998 6.09961 -9.09961 11.5996 -9.09961h38c5.59961 0 10.5 3.7998 11.7002 9.2998l38 168c1.7002 7.60059 -4 14.7002 -11.7002 14.7002h-23.9004zM384 326.1v-6.09961h-128v128h6.09961
-c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004z" />
-    <glyph glyph-name="file-excel" unicode="&#xf1c3;" horiz-adv-x="384" 
-d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM284.1 205.5c5.10059 8 -0.599609 18.5 -10.0996 18.4004h-34.7998
-c-4.40039 0 -8.5 -2.40039 -10.6006 -6.30078c-30.5 -56.7998 -36.5996 -68.5 -36.5996 -68.5c-16.5996 34.9004 -10.5 19.7002 -36.5996 68.5c-2.10059 3.90039 -6.2002 6.30078 -10.6006 6.30078h-34.7998c-9.5 0 -15.2998 -10.5 -10.0996 -18.5l60.2998 -93.5
-l-60.2998 -93.5c-5.10059 -8 0.599609 -18.5 10.0996 -18.5h34.9004c4.39941 0 8.39941 2.39941 10.5 6.2998c26.5996 48.7998 30.1992 54 36.5996 68.7998c0 0 16.9004 -32.5 36.5 -68.7002c2.09961 -3.89941 6.2002 -6.2998 10.5996 -6.2998h34.9004
-c9.5 0 15.2002 10.5 10.0996 18.5l-60.0996 93.5zM384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004z" />
-    <glyph glyph-name="file-powerpoint" unicode="&#xf1c4;" horiz-adv-x="384" 
-d="M193.7 176.8c8.7998 0 15.5 -2.7002 20.2998 -8.09961c9.59961 -10.9004 9.7998 -32.7002 -0.200195 -44.1006c-4.89941 -5.59961 -11.8994 -8.5 -21.0996 -8.5h-26.9004v60.7002h27.9004zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6
-c6.40039 0 12.5 -2.5 17 -7zM224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM277 146.8c0 44.2002 -28.4004 77 -72.9004 77h-81
-c-6.59961 0 -12 -5.39941 -12 -12v-199.8c0 -6.59961 5.40039 -12 12 -12h30.8008c6.59961 0 12 5.40039 12 12v57.2002c22.2998 0 111.1 -12.7002 111.1 77.5996z" />
-    <glyph glyph-name="file-image" unicode="&#xf1c5;" horiz-adv-x="384" 
-d="M384 326.059v-6.05859h-128v128h6.05859c6.62305 0 12.626 -2.68457 16.9707 -7.0293l97.9404 -97.9404c4.34473 -4.34473 7.03027 -10.3477 7.03027 -16.9717zM248 288h136v-328c0 -13.2549 -10.7451 -24 -24 -24h-336c-13.2549 0 -24 10.7451 -24 24v464
-c0 13.2549 10.7451 24 24 24h200v-136c0 -13.2002 10.7998 -24 24 -24zM112.545 272c-26.5088 0 -48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48s-21.4902 48 -48 48zM320.545 32v112l-39.5137 39.5146c-4.6875 4.68652 -12.2852 4.68652 -16.9717 0
-l-103.515 -103.515l-39.5146 39.5146c-4.68652 4.68652 -11.7988 5.1709 -16.4854 0.485352l-39.5146 -39.5146l-0.485352 -48.4854h256z" />
-    <glyph glyph-name="file-archive" unicode="&#xf1c6;" horiz-adv-x="384" 
-d="M377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7zM128.4 112c17.8994 0 32.5 -12.0996 32.5 -27s-14.5 -27 -32.4004 -27s-32.5 12 -32.5 27c0 14.9004 14.5 27 32.4004 27zM224 312c0 -13.2002 10.7998 -24 24 -24h136
-v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h104.4v-32h32v32h63.5996v-136zM95.9004 416v-32h32v32h-32zM128.2 32c33 0 57.7998 30.2002 51.3994 62.5996l-17.2998 87.7002
-c-1.09961 5.60059 -6.09961 9.7002 -11.7998 9.7002h-22.0996v32h32v32h-32v32h32v32h-32v32h32v32h-32v-32h-32v-32h32v-32h-32v-32h32v-32h-32v-32l-19.6006 -97.0996c-6.59961 -32.5 18.2002 -62.9004 51.4004 -62.9004z" />
-    <glyph glyph-name="file-audio" unicode="&#xf1c7;" horiz-adv-x="384" 
-d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM160 44v136c0 10.7002 -12.9004 16.0996 -20.5 8.5l-35.5 -36.5h-28c-6.59961 0 -12 -5.40039 -12 -12
-v-56c0 -6.59961 5.40039 -12 12 -12h28l35.5 -36.5c7.59961 -7.5 20.5 -2.2002 20.5 8.5zM193.2 91.5996c-22.5 -23.0996 12.5996 -55.7998 34.3994 -33.5c27.2002 28 27.2002 72.5 0 100.4c-22.1992 22.7002 -56.5 -10.7002 -34.3994 -33.5
-c9.09961 -9.2998 9.09961 -24.0996 0 -33.4004zM279.2 208.7c-22.1006 22.7998 -56.5 -10.7002 -34.4004 -33.5c36.2998 -37.2998 36.2002 -96.6006 0 -133.8c-22.5996 -23.2002 12.6006 -55.9004 34.4004 -33.5c54.3994 56 54.3994 144.899 0 200.8zM384 326.1v-6.09961
-h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004z" />
-    <glyph glyph-name="file-video" unicode="&#xf1c8;" horiz-adv-x="384" 
-d="M384 326.059v-6.05859h-128v128h6.05859c6.36523 0 12.4707 -2.5293 16.9717 -7.0293l97.9404 -97.9404c4.34375 -4.34473 7.0293 -10.3486 7.0293 -16.9717zM224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2549 -10.7451 -24 -24 -24h-336
-c-13.2549 0 -24 10.7451 -24 24v464c0 13.2549 10.7451 24 24 24h200v-136zM320 167.984c0 21.4609 -25.96 31.9795 -40.9707 16.9697l-55.0293 -55.0127v38.0586c0 13.2549 -10.7451 24 -24 24h-112c-13.2549 0 -24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24
-h112c13.2549 0 24 10.7451 24 24v38.0586l55.0293 -55.0088c15.0273 -15.0264 40.9707 -4.47363 40.9707 16.9717v111.963z" />
-    <glyph glyph-name="file-code" unicode="&#xf1c9;" horiz-adv-x="384" 
-d="M384 326.059v-6.05859h-128v128h6.05859c6.36523 0 12.4707 -2.5293 16.9717 -7.0293l97.9404 -97.9404c4.34375 -4.34473 7.0293 -10.3486 7.0293 -16.9717zM248 288h136v-328c0 -13.2549 -10.7451 -24 -24 -24h-336c-13.2549 0 -24 10.7451 -24 24v464
-c0 13.2549 10.7451 24 24 24h200v-136c0 -13.2002 10.7998 -24 24 -24zM123.206 47.4951l19.5791 20.8838c0.905273 0.96582 1.46289 2.26562 1.46289 3.69238c0 1.61426 -0.709961 3.06445 -1.83496 4.05469l-40.7627 35.874l40.7627 35.874
-c1.125 0.990234 1.83203 2.44043 1.83203 4.05566c0 1.42676 -0.554688 2.72559 -1.45996 3.69141l-19.5791 20.8848c-0.985352 1.05176 -2.3877 1.70703 -3.94141 1.70703c-1.42676 0 -2.72559 -0.555664 -3.69141 -1.46094l-64.8662 -60.8115
-c-1.05078 -0.986328 -1.70801 -2.38672 -1.70801 -3.93945c0 -1.55371 0.657227 -2.9541 1.70801 -3.94043l64.8662 -60.8115c0.96582 -0.905273 2.26562 -1.46289 3.69336 -1.46289c1.55273 0 2.9541 0.657227 3.93945 1.70898zM174.501 -2.98438
-c0.478516 -0.138672 0.982422 -0.212891 1.50488 -0.212891c2.45801 0 4.53418 1.64551 5.18555 3.89453l61.4395 211.626c0.138672 0.478516 0.213867 0.982422 0.213867 1.50488c0 2.45801 -1.64551 4.53418 -3.89355 5.18652l-27.4521 7.9707
-c-0.477539 0.138672 -0.981445 0.212891 -1.50391 0.212891c-2.45801 0 -4.53516 -1.64551 -5.18848 -3.89453l-61.4395 -211.626c-0.138672 -0.477539 -0.212891 -0.981445 -0.212891 -1.50293c0 -2.45898 1.64551 -4.53516 3.89355 -5.18848zM335.293 108.061
-c1.05176 0.986328 1.70898 2.38672 1.70898 3.94043c0 1.55273 -0.657227 2.95312 -1.70801 3.93945l-64.8662 60.8115c-0.96582 0.905273 -2.26562 1.46289 -3.69336 1.46289c-1.55273 0 -2.9541 -0.657227 -3.93945 -1.70898l-19.5801 -20.8848
-c-0.905273 -0.96582 -1.46289 -2.26562 -1.46289 -3.69238c0 -1.61426 0.709961 -3.06445 1.83496 -4.05469l40.7627 -35.874l-40.7637 -35.873c-1.125 -0.990234 -1.83203 -2.44043 -1.83203 -4.05566c0 -1.42676 0.554688 -2.72559 1.45996 -3.69141l19.5801 -20.8848
-c0.985352 -1.05176 2.3877 -1.70703 3.94141 -1.70703c1.42676 0 2.72559 0.555664 3.69141 1.46094z" />
-    <glyph glyph-name="life-ring" unicode="&#xf1cd;" 
-d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM429.696 320.441c-12.8584 17.3291 -27.9258 32.3965 -45.2549 45.2549l-63.3994 -63.3994c18.585 -11.0029 34.2676 -26.6963 45.2549 -45.2549zM256 96
-c53.0186 0 96 42.9814 96 96s-42.9814 96 -96 96s-96 -42.9814 -96 -96s42.9814 -96 96 -96zM127.559 365.696c-17.3291 -12.8584 -32.3965 -27.9258 -45.2549 -45.2549l63.3994 -63.3994c11.0029 18.585 26.6963 34.2676 45.2549 45.2549zM82.3037 63.5586
-c12.8584 -17.3291 27.9258 -32.3965 45.2549 -45.2549l63.3994 63.3994c-18.585 11.0029 -34.2676 26.6963 -45.2549 45.2549zM384.441 18.3037c17.3291 12.8584 32.3965 27.9258 45.2549 45.2549l-63.3994 63.3994c-11.0029 -18.585 -26.6963 -34.2676 -45.2549 -45.2549z
-" />
-    <glyph glyph-name="circle-notch" unicode="&#xf1ce;" 
-d="M288 408.944c0 15.5996 14.6777 27.167 29.7891 23.292c107.071 -27.457 186.211 -124.604 186.211 -240.236c0 -136.788 -110.745 -247.711 -247.466 -247.999c-137.054 -0.289062 -247.812 109.615 -248.531 246.667c-0.609375 116.126 78.5996 213.85 185.951 241.502
-c15.2119 3.91895 30.0459 -7.52539 30.0459 -23.2344v-16.6475c0 -10.8047 -7.28125 -20.1621 -17.6885 -23.0693c-77.5254 -21.6543 -134.312 -92.749 -134.312 -177.219c0 -101.705 82.3105 -184 184 -184c101.705 0 184 82.3105 184 184
-c0 84.4824 -56.7959 155.566 -134.314 177.219c-10.4043 2.90723 -17.6855 12.2627 -17.6855 23.0664v16.6592z" />
-    <glyph glyph-name="paper-plane" unicode="&#xf1d8;" 
-d="M476 444.8c17.2998 10 39 -4.59961 35.5996 -24.7998l-72 -432c-2.59961 -15.2998 -18.7998 -24.2002 -33 -18.2002l-124.6 52.2002l-63.5 -77.2998c-14 -17.1006 -42.5 -7.7998 -42.5 15.7998v80.5l240.9 293.5c4.69922 5.7002 -3.10059 13.2002 -8.60059 8.2998
-l-287.3 -253.2l-106.3 44.6006c-18 7.59961 -20.2998 32.7998 -2.2002 43.2002z" />
-    <glyph glyph-name="history" unicode="&#xf1da;" 
-d="M504 192.469c0.25293 -136.64 -111.18 -248.372 -247.82 -248.468c-59.0146 -0.0419922 -113.223 20.5303 -155.821 54.9111c-11.0771 8.93945 -11.9053 25.541 -1.83984 35.6064l11.2676 11.2676c8.6084 8.6084 22.3525 9.55078 31.8906 1.9834
-c31.3848 -24.9043 71.1045 -39.7695 114.323 -39.7695c101.705 0 184 82.3105 184 184c0 101.705 -82.3105 184 -184 184c-48.8145 0 -93.1494 -18.9688 -126.068 -49.9316l50.7539 -50.7539c10.0801 -10.0801 2.94141 -27.3145 -11.3125 -27.3145h-145.373
-c-8.83691 0 -16 7.16309 -16 16v145.373c0 14.2539 17.2344 21.3926 27.3145 11.3135l49.3711 -49.3711c44.5234 42.5488 104.866 68.6846 171.314 68.6846c136.81 0 247.747 -110.78 248 -247.531zM323.088 113.685c-8.1377 -10.4629 -23.2158 -12.3467 -33.6787 -4.20996
-l-65.4092 50.874v135.651c0 13.2549 10.7451 24 24 24h16c13.2549 0 24 -10.7451 24 -24v-104.349l40.7012 -31.6572c10.4629 -8.13672 12.3477 -23.2158 4.20996 -33.6787z" />
-    <glyph glyph-name="heading" unicode="&#xf1dc;" 
-d="M448 352v-320h32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-160c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32v128h-192v-128h32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-160
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32v320h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32v-128h192v128h-32c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32z" />
-    <glyph glyph-name="paragraph" unicode="&#xf1dd;" horiz-adv-x="448" 
-d="M448 400v-32c0 -8.83105 -7.16895 -16 -16 -16h-48v-368c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v368h-32v-368c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v112h-32c-88.3066 0 -160 71.6934 -160 160
-s71.6934 160 160 160h240c8.83105 0 16 -7.16895 16 -16z" />
-    <glyph glyph-name="sliders-h" unicode="&#xf1de;" 
-d="M496 64c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-336v-16c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16h-80c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h80v16c0 8.7998 7.2002 16 16 16h32
-c8.7998 0 16 -7.2002 16 -16v-16h336zM496 224c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-80v-16c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16h-336c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h336v16
-c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-16h80zM496 384c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-208v-16c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16h-208c-8.7998 0 -16 7.2002 -16 16v32
-c0 8.7998 7.2002 16 16 16h208v16c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-16h208z" />
-    <glyph glyph-name="share-alt" unicode="&#xf1e0;" horiz-adv-x="448" 
-d="M352 128c53.0186 0 96 -42.9814 96 -96s-42.9814 -96 -96 -96s-96 42.9814 -96 96c0 0.00976562 0.00292969 -0.0429688 0.00292969 -0.0332031c0 7.16699 0.785156 14.1523 2.27344 20.874l-102.486 64.0537c-16.4033 -13.0752 -37.1816 -20.8945 -59.79 -20.8945
-c-53.0186 0 -96 42.9814 -96 96s42.9814 96 96 96c22.6084 0 43.3867 -7.81934 59.79 -20.8945l102.486 64.0537c-1.48633 6.71094 -2.27637 13.6826 -2.27637 20.8408c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96s-42.9814 -96 -96 -96
-c-22.6084 0 -43.3867 7.81934 -59.79 20.8965l-102.486 -64.0547c1.48828 -6.73145 2.27344 -13.6025 2.27344 -20.7793s-0.785156 -14.1719 -2.27344 -20.9033l102.486 -64.0537c16.4033 13.0752 37.1816 20.8945 59.79 20.8945z" />
-    <glyph glyph-name="share-alt-square" unicode="&#xf1e1;" horiz-adv-x="448" 
-d="M448 368v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48zM304 152c-14.5615 0 -27.8232 -5.56055 -37.7832 -14.6709l-67.958 40.7744
-c1.13379 4.45312 1.73633 9.11719 1.73633 13.9199c0 4.80371 -0.602539 9.4209 -1.73633 13.874l67.958 40.7744c9.95996 -9.11133 23.2217 -14.6719 37.7832 -14.6719c30.9277 0 56 25.0723 56 56s-25.0723 56 -56 56s-56 -25.0723 -56 -56
-c0 -4.79688 0.605469 -9.45312 1.74023 -13.8975l-67.958 -40.7744c-9.95898 9.11133 -23.2207 14.6719 -37.7822 14.6719c-30.9277 0 -56 -25.0723 -56 -56s25.0723 -56 56 -56c14.5615 0 27.8232 5.56055 37.7832 14.6709l67.958 -40.7744
-c-1.13281 -4.44141 -1.73535 -9.09375 -1.73535 -13.8857c0 -0.0117188 -0.00488281 0 -0.00488281 -0.0117188c0 -30.9277 25.0723 -56 56 -56s56 25.0723 56 56c-0.000976562 30.9287 -25.0732 56.001 -56.001 56.001z" />
-    <glyph glyph-name="bomb" unicode="&#xf1e2;" 
-d="M440.5 359.5l-52 -52l26.5 -26.5c9.40039 -9.40039 9.40039 -24.5996 0 -33.9004l-17.4004 -17.3994c11.8008 -26.1006 18.4004 -55.1006 18.4004 -85.6006c0 -114.899 -93.0996 -208 -208 -208s-208 93 -208 207.9s93.0996 208 208 208
-c30.5 0 59.5 -6.59961 85.5996 -18.4004l17.4004 17.4004c9.40039 9.40039 24.5996 9.40039 33.9004 0l26.5 -26.5l52 52zM500 388c6.59961 0 12 -5.40039 12 -12s-5.40039 -12 -12 -12h-24c-6.59961 0 -12 5.40039 -12 12s5.40039 12 12 12h24zM440 448
-c6.59961 0 12 -5.40039 12 -12v-24c0 -6.59961 -5.40039 -12 -12 -12s-12 5.40039 -12 12v24c0 6.59961 5.40039 12 12 12zM473.9 393c-4.60059 -4.7002 -12.2002 -4.7002 -17 0c-4.7002 4.7002 -4.7002 12.2998 0 17l17 17c4.69922 4.7002 12.2998 4.7002 17 0
-c4.69922 -4.7002 4.69922 -12.2998 0 -17zM406.1 393l-17 17c-4.69922 4.7002 -4.69922 12.2998 0 17c4.7002 4.7002 12.3008 4.7002 17 0l17 -17c4.7002 -4.7002 4.7002 -12.2998 0 -17c-4.69922 -4.7002 -12.2998 -4.7002 -17 0zM473.9 359l17 -17
-c4.69922 -4.7002 4.69922 -12.2998 0 -17c-4.7002 -4.7002 -12.3008 -4.7002 -17 0l-17 17c-4.7002 4.7002 -4.7002 12.2998 0 17c4.69922 4.7002 12.2998 4.7002 17 0zM112 176c0 35.2998 28.7002 64 64 64c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16
-c-52.9004 0 -96 -43.0996 -96 -96c0 -8.7998 7.2002 -16 16 -16s16 7.2002 16 16z" />
-    <glyph glyph-name="futbol" unicode="&#xf1e3;" 
-d="M504 192c0 -136.967 -111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248s248 -111.033 248 -248zM456 192l-0.00292969 0.282227l-26.0645 -22.7412l-62.6787 58.5l16.4541 84.3555l34.3027 -3.07227
-c-24.8887 34.2158 -60.0039 60.0889 -100.709 73.1406l13.6514 -31.9385l-74.9531 -41.5264l-74.9531 41.5254l13.6514 31.9385c-40.6309 -13.0283 -75.7803 -38.8701 -100.709 -73.1406l34.5645 3.07324l16.1924 -84.3555l-62.6777 -58.5l-26.0645 22.7412
-l-0.00292969 -0.282227c0 -43.0146 13.4971 -83.9521 38.4717 -117.991l7.7041 33.8975l85.1387 -10.4473l36.3008 -77.8262l-29.9023 -17.7861c40.2021 -13.1221 84.29 -13.1475 124.572 0l-29.9023 17.7861l36.3008 77.8262l85.1387 10.4473l7.7041 -33.8975
-c24.9756 34.0391 38.4727 74.9766 38.4727 117.991zM207.898 122.429l-29.8945 91.3125l77.9961 56.5264l77.9961 -56.5264l-29.6221 -91.3125h-96.4756z" />
-    <glyph glyph-name="tty" unicode="&#xf1e4;" 
-d="M5.37012 344.178c138.532 138.532 362.936 138.326 501.262 0c6.07812 -6.07812 7.07422 -15.4961 2.58301 -22.6807l-43.2139 -69.1377c-3.24023 -5.18457 -8.99902 -8.63672 -15.5576 -8.63672c-2.40137 0 -4.69531 0.490234 -6.79883 1.33105l-86.4219 34.5693
-c-6.75684 2.70312 -11.5352 9.31348 -11.5352 17.0312c0 0.621094 0.0410156 1.20898 0.101562 1.81445l5.95215 59.5312c-62.1455 22.4541 -130.636 21.9863 -191.483 0l5.95312 -59.5322c0.0605469 -0.606445 0.0917969 -1.22168 0.0917969 -1.84375
-c0 -7.7168 -4.76855 -14.2998 -11.5254 -17.002l-86.4238 -34.5684c-2.10254 -0.84082 -4.39648 -1.30371 -6.79785 -1.30371c-6.55859 0 -12.3174 3.4248 -15.5576 8.60938l-43.2109 69.1387c-1.75879 2.81348 -2.77539 6.1377 -2.77539 9.69727
-c0 5.05859 2.04004 9.66406 5.3584 12.9824zM96 140c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM192 140c0 -6.62695 -5.37305 -12 -12 -12h-40
-c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM288 140c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM384 140
-c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM480 140c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40
-c6.62695 0 12 -5.37305 12 -12v-40zM144 44c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM240 44c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40
-c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM336 44c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM432 44c0 -6.62695 -5.37305 -12 -12 -12h-40
-c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM96 -52c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM384 -52
-c0 -6.62695 -5.37305 -12 -12 -12h-232c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h232c6.62695 0 12 -5.37305 12 -12v-40zM480 -52c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40
-c6.62695 0 12 -5.37305 12 -12v-40z" />
-    <glyph glyph-name="binoculars" unicode="&#xf1e5;" 
-d="M416 400v-48h-96v48c0 8.83984 7.16016 16 16 16h64c8.83984 0 16 -7.16016 16 -16zM63.9102 288.01c0.479492 17.6201 14.2998 31.9902 31.9297 31.9902h96.1602v-160h-32v-160c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v44
-c3.45996 129.78 61.4004 150.16 63.9102 244.01zM448.09 288.01c2.50977 -93.8496 60.4502 -114.229 63.9102 -244.01v-44c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v160h-32v160h96.1602c17.6299 0 31.4502 -14.3701 31.9297 -31.9902zM176 416
-c8.83984 0 16 -7.16016 16 -16v-48h-96v48c0 8.83984 7.16016 16 16 16h64zM224 160v160h64v-160h-64z" />
-    <glyph glyph-name="plug" unicode="&#xf1e6;" horiz-adv-x="384" 
-d="M320 416v-96h-64v96c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32zM368 288c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-16v-32c-0.0117188 -77.3096 -55.0684 -141.886 -128 -156.8v-99.2002h-64v99.2002
-c-72.9316 14.9141 -127.988 79.4902 -128 156.8v32h-16c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h352zM128 416v-96h-64v96c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32z" />
-    <glyph glyph-name="newspaper" unicode="&#xf1ea;" horiz-adv-x="576" 
-d="M552 384c13.2549 0 24 -10.7451 24 -24v-312c0 -26.5098 -21.4902 -48 -48 -48h-472c-30.9277 0 -56 25.0723 -56 56v272c0 13.2549 10.7451 24 24 24h40v8c0 13.2549 10.7451 24 24 24h464zM56 48c4.41504 0 8 3.58496 8 8v248h-16v-248c0 -4.41504 3.58496 -8 8 -8z
-M292 64c6.62695 0 12 5.37305 12 12v8c0 6.62695 -5.37305 12 -12 12h-152c-6.62695 0 -12 -5.37305 -12 -12v-8c0 -6.62695 5.37305 -12 12 -12h152zM500 64c6.62695 0 12 5.37305 12 12v8c0 6.62695 -5.37305 12 -12 12h-152c-6.62695 0 -12 -5.37305 -12 -12v-8
-c0 -6.62695 5.37305 -12 12 -12h152zM292 160c6.62695 0 12 5.37305 12 12v8c0 6.62695 -5.37305 12 -12 12h-152c-6.62695 0 -12 -5.37305 -12 -12v-8c0 -6.62695 5.37305 -12 12 -12h152zM500 160c6.62695 0 12 5.37305 12 12v8c0 6.62695 -5.37305 12 -12 12h-152
-c-6.62695 0 -12 -5.37305 -12 -12v-8c0 -6.62695 5.37305 -12 12 -12h152zM500 256c6.62695 0 12 5.37305 12 12v40c0 6.62695 -5.37305 12 -12 12h-360c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h360z" />
-    <glyph glyph-name="wifi" unicode="&#xf1eb;" horiz-adv-x="640" 
-d="M634.91 293.12c6.66016 -6.16016 6.79004 -16.5898 0.359375 -22.9805l-34.2393 -33.9697c-6.14062 -6.08984 -16.0205 -6.22949 -22.4004 -0.379883c-145.95 133.71 -371.33 133.68 -517.25 0c-6.37988 -5.84961 -16.2598 -5.71973 -22.3994 0.379883l-34.2402 33.9697
-c-6.44043 6.39062 -6.31055 16.8203 0.349609 22.9805c177.101 163.81 452.65 163.87 629.82 0zM320 96c35.3496 0 64 -28.6504 64 -64s-28.6504 -64 -64 -64s-64 28.6504 -64 64s28.6504 64 64 64zM522.67 179.59c6.88965 -6.08984 7.12012 -16.6895 0.560547 -23.1494
-l-34.4404 -33.9902c-6 -5.93066 -15.6602 -6.32031 -22.0498 -0.799805c-83.75 72.4092 -209.54 72.5693 -293.49 0c-6.38965 -5.52051 -16.0498 -5.12012 -22.0498 0.799805l-34.4404 33.9902c-6.5498 6.45996 -6.33008 17.0498 0.570312 23.1494
-c115.13 101.82 290.08 101.93 405.34 0z" />
-    <glyph glyph-name="calculator" unicode="&#xf1ec;" horiz-adv-x="448" 
-d="M400 448c25.5996 0 48 -22.4004 48 -48v-416c0 -25.5996 -22.4004 -48 -48 -48h-352c-25.5996 0 -48 22.4004 -48 48v416c0 25.5996 22.4004 48 48 48h352zM128 12.7998v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
-c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM128 140.8v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
-c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM256 12.7998v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
-c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM256 140.8v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
-c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM384 12.7998v166.4c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
-c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-166.4c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM384 268.8v102.4c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-294.4
-c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-102.4c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h294.4c6.39941 0 12.7998 6.40039 12.7998 12.7998z" />
-    <glyph glyph-name="bell-slash" unicode="&#xf1f6;" horiz-adv-x="640" 
-d="M633.82 -10.0996c6.97949 -5.43066 8.22949 -15.4805 2.80957 -22.4502l-19.6396 -25.2705c-5.43066 -6.97949 -15.4805 -8.23926 -22.46 -2.80957l-588.351 454.729c-6.97949 5.43066 -8.22949 15.4805 -2.80957 22.4502l19.6396 25.2705
-c5.41992 6.97949 15.4805 8.22949 22.46 2.80957l144.96 -112.04c22.9307 31.5 57.2607 54.1904 97.5898 62.5703v20.8398c0 17.6699 14.3203 32 31.9805 32s31.9805 -14.3301 31.9805 -32v-20.8301c73.46 -15.2598 127.939 -77.46 127.939 -155.16
-c0 -102.3 36.1504 -133.529 55.4697 -154.29c6 -6.43945 8.66016 -14.1602 8.61035 -21.71c0 -1.39941 -0.610352 -2.67969 -0.799805 -4.05957zM157.23 196.46l212.789 -164.46h-241.92c-19.1191 0 -31.9893 15.5996 -32.0996 32
-c-0.0498047 7.5498 2.61035 15.2598 8.61035 21.71c16.21 17.4199 44.0098 42.79 52.6201 110.75zM320 -64c-35.3203 0 -63.9697 28.6504 -63.9697 64h127.939c0 -35.3496 -28.6494 -64 -63.9697 -64z" />
-    <glyph glyph-name="trash" unicode="&#xf1f8;" horiz-adv-x="448" 
-d="M432 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h120l9.40039 18.7002c3.85547 7.88574 11.9434 13.2998 21.3066 13.2998h0.0927734h114.3
-c0.00585938 0 -0.00195312 0.0234375 0.00390625 0.0234375c9.41113 0 17.5645 -5.42871 21.4961 -13.3232l9.40039 -18.7002h120zM53.2002 -19l-21.2002 339h384l-21.2002 -339c-1.57031 -25.0762 -22.4316 -44.9971 -47.8994 -45h-245.801
-c-25.4678 0.00292969 -46.3291 19.9238 -47.8994 45z" />
-    <glyph glyph-name="copyright" unicode="&#xf1f9;" 
-d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM373.134 93.2471c1.78516 2.09473 2.86035 4.82812 2.86035 7.79395c0 2.64355 -0.856445 5.08789 -2.30762 7.07227l-24.5469 33.5713
-c-4.44824 6.08691 -13.376 6.61816 -18.5078 1.05371c-0.263672 -0.287109 -26.8467 -28.625 -65.5439 -28.625c-48.7627 0 -74.2773 40.0898 -74.2773 79.6914c0 42.5068 27.8008 76.082 73.916 76.082c35.3516 0 61.6475 -23.666 61.8809 -23.8799
-c5.45996 -5.05566 14.1846 -3.97168 18.2334 2.29492l22.3799 34.6553c1.20996 1.87305 1.91895 4.12109 1.91895 6.51465c0 3.125 -1.19727 5.97168 -3.15625 8.1084c-1.45703 1.58887 -36.4658 38.9043 -103.423 38.9043c-81.7578 0 -143.762 -62.0986 -143.762 -143.401
-c0 -82.3066 59.792 -145.567 144.484 -145.567c70.0752 0 108.259 43.8643 109.851 45.7314z" />
-    <glyph glyph-name="at" unicode="&#xf1fa;" 
-d="M256 440c138.023 0 248 -87.6533 248 -224c0 -75.7979 -41.3906 -147.41 -150.299 -147.41c-30.0977 0 -61.1885 -0.000976562 -70.71 34.1035c-17.6221 -22.6963 -48.0068 -38.333 -74.9912 -38.333c-59.2148 0 -96 40.5664 -96 105.87
-c0 89.2256 63.251 151.46 137.831 151.46c19.5225 0 45.2744 -3.87402 59.9707 -21.7754l0.00976562 0.0917969c0.765625 6.7373 6.49219 11.9932 13.4326 11.9932h44.9805c15.083 0 26.4287 -13.75 23.5625 -28.5586l-23.4336 -121.11
-c-3.43359 -17.167 -3.87207 -29.5703 13.4766 -30.0244c37.0771 3.95117 58.1699 44.9072 58.1699 83.6934c0 102.381 -83.8613 160 -184 160c-101.458 0 -184 -82.542 -184 -184s82.542 -184 184 -184c35.3145 0 69.9199 10.2432 99.4102 29.1572
-c10.1934 6.53809 23.7021 4.24219 31.373 -5.12891l10.1768 -12.4336c9.07324 -11.084 6.45312 -27.5566 -5.55176 -35.3721c-40.0664 -26.083 -87.2539 -40.2227 -135.408 -40.2227c-137.081 0 -248 110.941 -248 248c0 137.081 110.941 248 248 248zM234.32 135.57
-c24.2861 0 58.1611 27.6689 58.1611 72.7295c0 25.5293 -13.3096 40.7705 -35.6016 40.7705c-27.8506 0 -58.6299 -27.7363 -58.6299 -72.7295c0 -25.1475 13.8213 -40.7705 36.0703 -40.7705z" />
-    <glyph glyph-name="eye-dropper" unicode="&#xf1fb;" 
-d="M50.75 114.75l126.63 126.61l128 -128l-126.64 -126.62c-12 -12 -28.2803 -18.7402 -45.25 -18.7402h-45.4902l-56 -32l-32 32l32 56v45.4902c0 16.9795 6.75 33.2598 18.75 45.2598zM483.88 419.88c37.5 -37.4902 37.5 -98.2695 -0.00976562 -135.75l-77.0898 -77.0898
-l13.0996 -13.0996c9.37012 -9.37012 9.37012 -24.5703 0 -33.9404l-40.9697 -40.96c-9.29004 -9.30957 -24.5 -9.44043 -33.9404 0l-161.939 161.94c-9.37012 9.36914 -9.37012 24.5693 0 33.9395l40.9697 40.9697c9.29004 9.31055 24.5 9.44043 33.9404 0l13.0996 -13.0996
-l77.0898 77.0898c37.4697 37.5 98.2803 37.5 135.75 0z" />
-    <glyph glyph-name="paint-brush" unicode="&#xf1fc;" 
-d="M167.02 138.66l88.0107 -73.3398c0.319336 -3.05078 0.969727 -6.02051 0.969727 -9.12988c0 -76.4209 -52.1396 -120.19 -128 -120.19c-90.0703 0 -128 72.3799 -128.01 154.73c9.79004 -6.68066 44.1396 -34.3506 55.25 -34.3506
-c6.58984 0 12.2402 3.77051 14.5898 9.98047c20.6602 54.4395 57.0703 69.7197 97.1895 72.2998zM457.89 448c28.1104 0 54.1104 -20.6396 54.1104 -49.5498c0 -16.1406 -6.51953 -31.6406 -13.9004 -45.9902c-113.05 -210.99 -149.05 -256.46 -211.159 -256.46
-c-7.75 0 -15.1807 1.23047 -22.3906 3.03027l-63.8193 53.1797c-5.48047 11.9404 -8.73047 25 -8.73047 38.7002c0 53.75 21.2695 58.04 225.68 240.64c10.8398 9.74023 25.0508 16.4502 40.21 16.4502z" />
-    <glyph glyph-name="birthday-cake" unicode="&#xf1fd;" horiz-adv-x="448" 
-d="M448 64c-28.0195 0 -31.2598 32 -74.5 32c-43.4297 0 -46.8252 -32 -74.75 -32c-27.6953 0 -31.4541 32 -74.75 32c-42.8418 0 -47.2178 -32 -74.5 -32c-28.1484 0 -31.2021 32 -74.75 32c-43.5469 0 -46.6533 -32 -74.75 -32v80c0 26.5 21.5 48 48 48h16v144h64v-144h64
-v144h64v-144h64v144h64v-144h16c26.5 0 48 -21.5 48 -48v-80zM448 -64h-448v96c43.3564 0 46.7666 32 74.75 32c27.9512 0 31.2529 -32 74.75 -32c42.8428 0 47.2168 32 74.5 32c28.1484 0 31.2012 -32 74.75 -32c43.3574 0 46.7666 32 74.75 32
-c27.4883 0 31.252 -32 74.5 -32v-96zM96 352c-17.75 0 -32 14.25 -32 32c0 31 32 23 32 64c12 0 32 -29.5 32 -56s-14.25 -40 -32 -40zM224 352c-17.75 0 -32 14.25 -32 32c0 31 32 23 32 64c12 0 32 -29.5 32 -56s-14.25 -40 -32 -40zM352 352c-17.75 0 -32 14.25 -32 32
-c0 31 32 23 32 64c12 0 32 -29.5 32 -56s-14.25 -40 -32 -40z" />
-    <glyph glyph-name="chart-area" unicode="&#xf1fe;" 
-d="M500 64c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-488c-6.59961 0 -12 5.40039 -12 12v360c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-308h436zM372.7 288.5c6 4 14.2002 1.7998 17.3994 -4.7002l89.9004 -187.8h-384v104
-l86.7998 144.7c4.40039 7.2998 14.7998 7.7998 19.9004 1l85.2998 -113.7z" />
-    <glyph glyph-name="chart-pie" unicode="&#xf200;" horiz-adv-x="544" 
-d="M527.79 160c9.5498 0 17.4004 -8.38965 16.0596 -17.8496c-7.80957 -55.25 -34.4297 -104.4 -73.1299 -140.86c-6.20996 -5.84961 -16.1494 -5.36035 -22.1895 0.679688l-158.03 158.03h237.29zM511.96 224.8c0.629883 -9.12012 -7.0498 -16.7998 -16.1904 -16.7998
-h-223.77v223.76c0 9.14062 7.67969 16.8301 16.7998 16.2002c119.46 -8.24023 214.92 -103.7 223.16 -223.16zM224 160l155.86 -155.87c6.84961 -6.84961 6.33008 -18.4795 -1.57031 -24.0801c-38.29 -27.1602 -84.8604 -43.3994 -135.26 -44.0303
-c-128.2 -1.60938 -238.53 103.471 -242.891 231.61c-4.23926 124.771 86.8506 228.88 206.021 245.72c9.4502 1.34082 17.8398 -6.50977 17.8398 -16.0596v-237.29z" />
-    <glyph glyph-name="chart-line" unicode="&#xf201;" 
-d="M496 64c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-464c-17.6699 0 -32 14.3301 -32 32v336c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-304h432zM464 352c8.83984 0 16 -7.16016 15.9902 -16v-118.05
-c0 -21.3799 -25.8506 -32.0898 -40.9707 -16.9697l-32.3994 32.3994l-96 -96c-12.4902 -12.5 -32.75 -12.5 -45.25 0l-73.3701 73.3701l-46.0596 -46.0703c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-22.6191 22.6201c-6.25 6.25 -6.25 16.3799 0 22.6299l68.6895 68.6904
-c12.4902 12.5 32.75 12.5 45.25 0l73.3701 -73.3701l73.3701 73.3799l-32.4004 32.4004c-15.1201 15.1201 -4.41016 40.9697 16.9707 40.9697h118.06z" />
-    <glyph glyph-name="toggle-off" unicode="&#xf204;" horiz-adv-x="576" 
-d="M384 384c106.039 0 192 -85.9609 192 -192s-85.9609 -192 -192 -192h-192c-106.039 0 -192 85.9609 -192 192s85.9609 192 192 192h192zM64 192c0 -70.751 57.2588 -128 128 -128c70.751 0 128 57.2588 128 128c0 70.751 -57.2588 128 -128 128
-c-70.751 0 -128 -57.2588 -128 -128zM384 64c70.751 0 128 57.2598 128 128c0 70.751 -57.2588 128 -128 128h-48.9053c65.2363 -72.8799 65.2168 -183.142 0 -256h48.9053z" />
-    <glyph glyph-name="toggle-on" unicode="&#xf205;" horiz-adv-x="576" 
-d="M384 384c106 0 192 -86 192 -192s-86 -192 -192 -192h-192c-106 0 -192 86 -192 192s86 192 192 192h192zM384 64c70.7002 0 128 57.2002 128 128c0 70.7002 -57.2002 128 -128 128c-70.7002 0 -128 -57.2002 -128 -128c0 -70.7002 57.2002 -128 128 -128z" />
-    <glyph glyph-name="bicycle" unicode="&#xf206;" horiz-adv-x="640" 
-d="M512.509 255.999c70.9502 -0.276367 128.562 -59.0547 127.477 -129.996c-1.07422 -70.1934 -58.6494 -126.681 -129.255 -125.996c-68.8301 0.667969 -126.584 58.8857 -126.729 127.719c-0.078125 37.3564 15.8516 70.9893 41.3066 94.4375l-14.9375 24.0674
-l-85.9619 -138.863c-4.23145 -6.83496 -11.7832 -11.3672 -20.4062 -11.3672h-52.0332c-14.209 -55.207 -64.3252 -96 -123.967 -96c-70.9473 0 -128.415 57.7207 -128 128.764c0.410156 70.2246 58.0918 127.406 128.317 127.236
-c15.0879 -0.0371094 29.5586 -2.69043 42.9912 -7.51953l29.417 47.5195h-48.7256c-13.1191 0 -23.7627 10.5186 -23.9951 23.5635c-0.241211 13.4375 11.0947 24.4365 24.5361 24.4365h87.459c8.83691 0 16 -7.16309 16 -16v-16h113.544l-14.8955 24h-50.6494
-c-8.83691 0 -16 7.16309 -16 16v16c0 8.83691 7.16309 16 16 16h64c8.6123 0 16.1572 -4.52148 20.3916 -11.3428l77.6807 -125.153c14.4053 5.54004 30.0625 8.55957 46.4355 8.49512zM186.75 182.228l-23.6641 -38.2275h43.3057
-c-2.96875 14.5674 -9.91504 27.6992 -19.6416 38.2275zM128.002 48c32.7383 0 60.9297 19.7754 73.2998 48h-81.2998c-18.7891 0 -30.2871 20.6729 -20.4062 36.6318l45.5049 73.5088c-5.5127 1.20605 -11.2295 1.85938 -17.0986 1.85938c-44.1123 0 -80 -35.8877 -80 -80
-s35.8877 -80 80 -80zM290.632 144l74.2861 120h-127.547l-24.7461 -39.9736c22.8271 -20.1328 38.4229 -48.2705 42.3828 -80.0264h35.624zM507.689 48.1143c46.0605 -2.43164 84.3115 34.3447 84.3125 79.8848c0 44.1123 -35.8877 80 -80 80
-c-0.0136719 0 0.00585938 -0.0078125 -0.00683594 -0.0078125c-6.85156 0 -13.5029 -0.864258 -19.8516 -2.48926l44.4688 -71.6426c4.66113 -7.50879 2.35156 -17.3721 -5.15625 -22.0322l-13.5938 -8.4375c-7.50879 -4.65918 -17.3721 -2.35156 -22.0322 5.15625
-l-44.4326 71.5859c-12.7021 -14.7451 -20.1475 -34.1416 -19.3359 -55.2627c1.57812 -41.0635 34.5918 -74.5898 75.6279 -76.7549z" />
-    <glyph glyph-name="bus" unicode="&#xf207;" 
-d="M488 320c13.25 0 24 -10.7402 24 -24v-80c0 -13.25 -10.75 -24 -24 -24h-8v-166.4c0 -12.7998 -9.59961 -25.5996 -25.5996 -25.5996h-6.40039v-32c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v32h-192v-32c0 -17.6699 -14.3301 -32 -32 -32h-32
-c-17.6699 0 -32 14.3301 -32 32v32c-17.6699 0 -32 14.3301 -32 32v160h-8c-13.25 0 -24 10.75 -24 24v80c0 13.2598 10.75 24 24 24h8v48c0 44.7998 99.2002 80 224 80s224 -35.2002 224 -80v-48h8zM112 48c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
-s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM128 160h256c17.6699 0 32 14.3301 32 32v128c0 17.6699 -14.3301 32 -32 32h-256c-17.6699 0 -32 -14.3301 -32 -32v-128c0 -17.6699 14.3301 -32 32 -32zM400 48c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
-s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="closed-captioning" unicode="&#xf20a;" 
-d="M464 384c26.5 0 48 -21.5 48 -48v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h416zM218.1 160.3c-41.1992 -37.8994 -92.1992 -15.3994 -92.2998 32.6006c0 46.0996 53.7998 63.1992 94.6006 31.1992
-c2.89941 -2.2998 7.19922 -1.39941 9.09961 1.7002l17.5 30.5c1.5 2.5 1.09961 3.7002 -1 5.7002c-50.7998 49.4004 -172.5 27.2002 -172.5 -70.0996c0 -100 119.2 -124.7 172.8 -67.9004c2 2.09961 2.2002 5.2998 0.5 7.7002l-19.5 27.7002
-c-2.09961 3 -6.39941 3.39941 -9.2002 0.899414zM408.5 160.3c-41.2002 -37.8994 -92.2002 -15.3994 -92.2002 32.6006c0 46.0996 53.7998 63.1992 94.6006 31.1992c2.89941 -2.2998 7.19922 -1.39941 9.09961 1.7002l17.5 30.5c1.5 2.5 1.09961 3.7002 -1 5.7002
-c-50.7998 49.4004 -172.5 27.2002 -172.5 -70.0996c0 -100 119.2 -124.801 172.7 -67.9004c2 2.09961 2.2002 5.2998 0.5 7.7002l-19.5 27.7002c-2.10059 3 -6.40039 3.39941 -9.2002 0.899414z" />
-    <glyph glyph-name="shekel-sign" unicode="&#xf20b;" horiz-adv-x="448" 
-d="M248 280c0 30.9297 -25.0703 56 -56 56h-112v-352c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16v408c0 13.2598 10.75 24 24 24h168c75.1104 0 136 -60.8896 136 -136v-168c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16
-v168zM432 416c8.83984 0 16 -7.16016 16 -16v-296c0 -75.1104 -60.8896 -136 -136 -136h-168c-13.25 0 -24 10.75 -24 24v280c0 8.83984 7.16016 16 16 16h48c8.83984 0 16 -7.16016 16 -16v-224h112c30.9297 0 56 25.0703 56 56v296c0 8.83984 7.16016 16 16 16h48z" />
-    <glyph glyph-name="cart-plus" unicode="&#xf217;" horiz-adv-x="576" 
-d="M504.717 128h-293.145l6.54492 -32h268.418c15.4004 0 26.8154 -14.3008 23.4033 -29.3193l-5.51758 -24.2754c18.6914 -9.07324 31.5791 -28.2334 31.5791 -50.4053c0 -31.2021 -25.5186 -56.4443 -56.8242 -55.9941
-c-29.8232 0.428711 -54.3496 24.6309 -55.1543 54.4473c-0.44043 16.2871 6.08496 31.0488 16.8027 41.5479h-209.648c10.377 -10.166 16.8242 -24.3271 16.8242 -40.001c0 -31.8135 -26.5283 -57.4307 -58.6699 -55.9385c-28.54 1.3252 -51.751 24.3857 -53.251 52.917
-c-1.1582 22.0342 10.4355 41.4551 28.0508 51.5869l-70.2471 343.435h-69.8828c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h102.529c11.4004 0 21.2275 -8.02148 23.5127 -19.1904l9.16602 -44.8096h392.782
-c15.4004 0 26.8154 -14.3008 23.4023 -29.3193l-47.2725 -208c-2.4834 -10.9268 -12.1973 -18.6807 -23.4033 -18.6807zM408 280h-48v40c0 8.83691 -7.16309 16 -16 16h-16c-8.83691 0 -16 -7.16309 -16 -16v-40h-48c-8.83691 0 -16 -7.16309 -16 -16v-16
-c0 -8.83691 7.16309 -16 16 -16h48v-40c0 -8.83691 7.16309 -16 16 -16h16c8.83691 0 16 7.16309 16 16v40h48c8.83691 0 16 7.16309 16 16v16c0 8.83691 -7.16309 16 -16 16z" />
-    <glyph glyph-name="cart-arrow-down" unicode="&#xf218;" horiz-adv-x="576" 
-d="M504.717 128h-293.145l6.54492 -32h268.418c15.4004 0 26.8154 -14.3008 23.4033 -29.3193l-5.51758 -24.2754c18.6914 -9.07324 31.5791 -28.2334 31.5791 -50.4053c0 -31.2021 -25.5186 -56.4443 -56.8242 -55.9941
-c-29.8232 0.428711 -54.3496 24.6309 -55.1543 54.4473c-0.44043 16.2871 6.08496 31.0488 16.8027 41.5479h-209.648c10.377 -10.166 16.8242 -24.3271 16.8242 -40.001c0 -31.8135 -26.5283 -57.4307 -58.6699 -55.9385c-28.54 1.3252 -51.751 24.3857 -53.251 52.917
-c-1.1582 22.0342 10.4355 41.4551 28.0508 51.5869l-70.2471 343.435h-69.8828c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h102.529c11.4004 0 21.2275 -8.02148 23.5127 -19.1904l9.16602 -44.8096h392.782
-c15.4004 0 26.8154 -14.3008 23.4023 -29.3193l-47.2725 -208c-2.4834 -10.9268 -12.1973 -18.6807 -23.4033 -18.6807zM403.029 256h-43.0293v60c0 6.62695 -5.37305 12 -12 12h-24c-6.62695 0 -12 -5.37305 -12 -12v-60h-43.0293
-c-10.6904 0 -16.0449 -12.9258 -8.48438 -20.4854l67.0283 -67.0283c4.68652 -4.68652 12.2842 -4.68652 16.9717 0l67.0283 67.0283c7.55957 7.55957 2.20508 20.4854 -8.48535 20.4854z" />
-    <glyph glyph-name="ship" unicode="&#xf21a;" horiz-adv-x="640" 
-d="M496.616 75.3613c17.8418 -44.3604 58.5664 -75.3613 119.384 -75.3613c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24c-61.0322 0 -107.505 20.6162 -143.258 59.3965c-14.4189 -34.8281 -48.7637 -59.3965 -88.7422 -59.3965h-128
-c-39.9785 0 -74.3232 24.5684 -88.7422 59.3965c-35.7588 -38.7861 -82.2344 -59.3965 -143.258 -59.3965c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24c61.5869 0 101.828 31.7129 119.384 75.3613l-70.0117 70.0117
-c-16.918 16.9189 -9.91699 45.7793 12.8359 53.0918l41.792 13.4336v140.102c0 17.6729 14.3271 32 32 32h64v40c0 13.2549 10.7451 24 24 24h144c13.2549 0 24 -10.7451 24 -24v-40h64c17.6729 0 32 -14.3271 32 -32v-140.102l41.792 -13.4336
-c22.7783 -7.32129 29.7354 -36.1914 12.8359 -53.0918zM192 320v-87.5312l118.208 37.9951c3.08594 0.992188 6.38086 1.52832 9.79492 1.52832c3.41309 0 6.70312 -0.536133 9.78906 -1.52832l118.208 -37.9951v87.5312h-256z" />
-    <glyph glyph-name="user-secret" unicode="&#xf21b;" horiz-adv-x="448" 
-d="M383.9 139.7c38.2998 -23.7002 64.0996 -65.7002 64.0996 -114.101v-44.7998c0 -24.7002 -20.0996 -44.7998 -44.7998 -44.7998h-358.4c-24.7002 0 -44.7998 20.0996 -44.7998 44.7998v44.7998c0 49.7002 27.2998 92.6006 67.4004 115.9l-25.8008 60.2002
-c-4.5 10.5996 3.2002 22.2998 14.7002 22.2998h57.5c-11 18.9004 -17.7998 40.5996 -17.7998 64v0.299805c-39.2002 7.7998 -64 19.1006 -64 31.7002c0 13.2998 27.2998 25.0996 70 33c9.2002 32.7998 27.0996 65.7998 40.5996 82.7998
-c9.5 11.9004 25.9004 15.6006 39.5 8.7998l27.6006 -13.7998c9 -4.5 19.5996 -4.5 28.5996 0l27.6006 13.7998c13.5996 6.80078 30 3.10059 39.5 -8.7998c13.5996 -17 31.3994 -50 40.5996 -82.7998c42.7998 -7.90039 70.0996 -19.7002 70.0996 -33
-c0 -12.5996 -24.7998 -23.9004 -64 -31.7002v-0.299805c0 -23.4004 -6.7998 -45.0996 -17.7998 -64h58.5c11.2998 0 19 -11.2002 15 -21.7002zM176 -32l32 120l-24 40l-49.5996 32zM272 -32l41.5996 192l-49.5996 -32l-24 -40zM313.7 266.5
-c0.799805 2.59961 6.2998 5.7002 6.39941 5.7998v10.7998c-28.2998 -3.69922 -61 -5.7998 -96 -5.7998s-67.6992 2.2002 -96 5.7998v-10.7998c0 -0.0996094 5.5 -3.2998 6.30078 -5.7998c3.7998 -11.9004 7 -24.5996 16.5 -33.4004c8 -7.39941 47 -25.1992 64 25
-c2.89941 8.40039 15.5 8.40039 18.2998 0c16 -47.3994 53.8994 -34.2998 64 -25c9.5 8.80078 12.5996 21.5 16.5 33.4004z" />
-    <glyph glyph-name="motorcycle" unicode="&#xf21c;" horiz-adv-x="640" 
-d="M512.9 256c69.5996 -0.5 126.5 -57.2998 127.199 -126.9c0.600586 -71.5996 -57.5996 -129.8 -129.199 -129.1c-69.6006 0.599609 -126.301 57.5 -126.801 127.1c-0.299805 39.3008 17.2002 74.5 44.8008 98.2002l-12.5 20.7998
-c-38.7002 -31.2998 -58.3008 -77.8994 -56.2002 -125c0.599609 -13.6992 -10.2998 -25.0996 -24 -25.0996h-84.2002c-14.2998 -55.2002 -64.4004 -96 -124 -96c-71.7002 0 -129.6 58.9004 -128 131c1.59961 67.4004 55.9004 122.5 123.2 124.9
-c14.3994 0.5 28.2998 -1.30078 41.2998 -5.2002l11.2998 20.5c-9.09961 13.8994 -23.2998 24.7998 -47.7998 24.7998h-56c-13.0996 0 -23.7998 10.5 -24 23.5c-0.299805 13.5 11 24.5 24.5 24.5h55.5c55 0 82.2002 -16.9004 99.9004 -40h153.699l-19.1992 32h-66.4004
-c-8.7998 0 -16 7.2002 -16 16v16c0 8.7998 7.2002 16 16 16h80c8.40039 0 16.2002 -4.40039 20.5996 -11.5996l22.8008 -38l37.5 41.6992c4.5 5 11 7.90039 17.7998 7.90039h45.2998c13.2998 0 24 -10.7002 24 -24v-32c0 -13.2998 -10.7002 -24 -24 -24h-82.4004
-l32.9004 -54.9004c13.2998 4.60059 27.5 7 42.4004 6.90039zM128 48c32.7002 0 60.9004 19.7998 73.2998 48h-81.2998c-18.2002 0 -29.7998 19.5996 -21 35.5996l41.5 75.4004c-4.09961 0.700195 -8.2998 1 -12.5 1c-44.0996 0 -80 -35.9004 -80 -80s35.9004 -80 80 -80z
-M591.9 123.6c2.39941 46.1006 -34.3008 84.4004 -79.9004 84.3008c-5.40039 0 -10.7002 -0.5 -15.9004 -1.60059l48.6006 -80.8994c4.5 -7.60059 2.09961 -17.5 -5.5 -22l-13.7002 -8.2002c-7.59961 -4.5 -17.5 -2.10059 -22 5.5l-49.4004 82.3994
-c-13.6992 -14.2998 -22.0996 -33.6992 -22.0996 -55.0996c0 -45.5996 38.2998 -82.4004 84.4004 -79.9004c40.5 2.10059 73.2998 34.9004 75.5 75.5z" />
-    <glyph glyph-name="street-view" unicode="&#xf21d;" 
-d="M367.9 118.24c85.2295 -15.5801 144.1 -48.29 144.1 -86.2402c0 -53.0195 -114.62 -96 -256 -96s-256 42.9805 -256 96c0 37.9502 58.8701 70.6602 144.1 86.2402c4.62012 -5.2998 9.78027 -10.1006 15.9004 -13.6504v-22.9395
-c-66.5195 -9.35059 -112 -28.0508 -112 -49.6504c0 -30.9297 93.1201 -56 208 -56s208 25.0703 208 56c0 21.5996 -45.4805 40.3096 -112 49.6504v22.9395c6.12012 3.5498 11.2803 8.35059 15.9004 13.6504zM256 320c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64
-s64 -28.6504 64 -64s-28.6504 -64 -64 -64zM192 128c-17.6699 0 -32 14.3301 -32 32v96c0 26.5098 21.4902 48 48 48h11.7998c11.0703 -5.03027 23.2598 -8 36.2002 -8s25.1299 2.96973 36.2002 8h11.7998c26.5098 0 48 -21.4902 48 -48v-96
-c0 -17.6699 -14.3301 -32 -32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v96z" />
-    <glyph glyph-name="heartbeat" unicode="&#xf21e;" 
-d="M320.2 204.2l22.0996 -44.2002h109.101l-182.601 -186.5c-7.09961 -7.2998 -18.5996 -7.2998 -25.7002 0l-182.5 186.5h94.1006l30 71.7002l56.8994 -126.3c5.5 -12.3008 22.9004 -12.7002 28.9004 -0.600586zM473.7 374.1
-c48.7002 -49.7998 50.7998 -129.1 7.2998 -182.1h-118.9l-27.5996 55.2002c-5.90039 11.7998 -22.7002 11.7998 -28.5996 0l-49 -97.9004l-58.2002 129.3c-5.7998 12.8008 -24 12.5 -29.4004 -0.399414l-35.8994 -86.2002h-102.4c-43.5 53 -41.4004 132.3 7.2998 182.1
-l2.40039 2.40039c51.5 52.7002 135.899 52.7002 187.399 0l27.9004 -28.5l27.9004 28.5996c51.5996 52.6006 135.899 52.6006 187.399 0z" />
-    <glyph glyph-name="venus" unicode="&#xf221;" horiz-adv-x="288" 
-d="M288 272c0 -68.5 -47.9004 -125.9 -112 -140.4v-51.5996h36c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-36v-36c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v36h-36c-6.59961 0 -12 5.40039 -12 12v40
-c0 6.59961 5.40039 12 12 12h36v51.5996c-64.0996 14.5 -112 71.9004 -112 140.4c0 79.5 64.5 144 144 144s144 -64.5 144 -144zM64 272c0 -44.0996 35.9004 -80 80 -80s80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80z" />
-    <glyph glyph-name="mars" unicode="&#xf222;" horiz-adv-x="384" 
-d="M372 384c6.59961 0 12 -5.40039 12 -12v-79c0 -10.7002 -12.9004 -16.0996 -20.5 -8.5l-16.9004 16.9004l-80.6992 -80.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -79.5 -64.5 -144 -144 -144s-144 64.5 -144 144s64.5 144 144 144
-c28.2002 0 54.5 -8.09961 76.7002 -22.0996l80.7002 80.6992l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM144 64c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
-    <glyph glyph-name="mercury" unicode="&#xf223;" horiz-adv-x="288" 
-d="M288 240c0 -68.5 -47.9004 -125.9 -112 -140.4v-51.5996h36c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-36v-36c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v36h-36c-6.59961 0 -12 5.40039 -12 12v40
-c0 6.59961 5.40039 12 12 12h36v51.5996c-64.0996 14.5 -112 71.9004 -112 140.4c0 44.2002 19.9004 83.7002 51.2002 110c-2.5 1.90039 -4.90039 3.7998 -7.2002 5.7998c-24.7998 21.2002 -39.7998 48.7998 -43.2002 78.9004
-c-0.899414 7.09961 4.7002 13.2998 11.9004 13.2998h40.5c5.7002 0 10.5996 -4.09961 11.7002 -9.7998c2.5 -12.5 9.59961 -24.2998 20.6992 -33.7998c15.4004 -13.2002 36.1006 -20.4004 58.4004 -20.4004s43 7.2002 58.2998 20.4004
-c11.1006 9.5 18.2998 21.2998 20.7002 33.7998c1.09961 5.7002 6 9.7998 11.7998 9.7998h40.5c7.2002 0 12.7998 -6.2002 11.9004 -13.2998c-3.40039 -30 -18.5 -57.6006 -43.2002 -78.7998c-2.2998 -2 -4.7002 -4 -7.2002 -5.80078
-c31.2998 -26.3994 51.2002 -65.8994 51.2002 -110.1zM64 240c0 -44.0996 35.9004 -80 80 -80s80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80z" />
-    <glyph glyph-name="transgender" unicode="&#xf224;" horiz-adv-x="384" 
-d="M372 448c6.59961 0 12 -5.40039 12 -12v-79c0 -10.7002 -12.9004 -16.0996 -20.5 -8.5l-16.9004 16.9004l-80.6992 -80.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -68.5 -47.9004 -125.8 -112 -140.4v-27.5996h36c6.59961 0 12 -5.40039 12 -12v-40
-c0 -6.59961 -5.40039 -12 -12 -12h-36v-28c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v28h-36c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h36v27.5996c-64.0996 14.5 -112 71.9004 -112 140.4c0 79.5 64.5 144 144 144
-c28.2002 0 54.5 -8.09961 76.7002 -22.0996l80.7002 80.6992l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM144 128c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
-    <glyph glyph-name="transgender-alt" unicode="&#xf225;" horiz-adv-x="480" 
-d="M468 448c6.59961 0 12 -5.40039 12 -12v-79c0 -10.7002 -12.9004 -16.0996 -20.5 -8.5l-16.9004 16.9004l-80.6992 -80.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -68.5 -47.9004 -125.8 -112 -140.4v-27.5996h36c6.59961 0 12 -5.40039 12 -12v-40
-c0 -6.59961 -5.40039 -12 -12 -12h-36v-28c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v28h-36c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h36v27.5996c-64.0996 14.5 -112 71.9004 -112 140.4
-c0 28.2002 8.09961 54.5 22.2002 76.5996l-16.5 16.5l-19.7998 -19.7998c-4.7002 -4.7002 -12.3008 -4.7002 -17 0l-28.3008 28.2998c-4.69922 4.7002 -4.69922 12.3008 0 17l19.8008 19.8008l-19 19l-16.9004 -16.9004c-7.59961 -7.5 -20.5 -2.2002 -20.5 8.5v79
-c0 6.59961 5.40039 12 12 12h79c10.7002 0 16.0996 -12.9004 8.40039 -20.4004l-16.9004 -16.8994l19 -19l19.7998 19.7998c4.7002 4.7002 12.2998 4.7002 17 0l28.2998 -28.2998c4.7002 -4.7002 4.7002 -12.2998 0 -17l-19.7998 -19.7998l16.5 -16.5
-c22.2002 14 48.5 22.0996 76.7002 22.0996s54.5 -8.09961 76.7002 -22.0996l80.7002 80.6992l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM240 128c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
-    <glyph glyph-name="venus-double" unicode="&#xf226;" 
-d="M288 272c0 -68.5 -47.9004 -125.9 -112 -140.4v-51.5996h36c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-36v-36c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v36h-36c-6.59961 0 -12 5.40039 -12 12v40
-c0 6.59961 5.40039 12 12 12h36v51.5996c-64.0996 14.5 -112 71.9004 -112 140.4c0 79.5 64.5 144 144 144s144 -64.5 144 -144zM64 272c0 -44.0996 35.9004 -80 80 -80s80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80zM400 131.6v-51.5996h36
-c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-36v-36c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v36h-36c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h36v51.5996
-c-21.2002 4.80078 -40.5996 14.3008 -57.2002 27.3008c14 16.6992 25 36 32.1006 57.0996c14.5 -14.7998 34.6992 -24 57.0996 -24c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80c-22.2998 0 -42.5996 -9.2002 -57.0996 -24
-c-7.10059 21.0996 -18 40.4004 -32.1006 57.0996c24.6006 19.3008 55.5 30.9004 89.2002 30.9004c79.5 0 144 -64.5 144 -144c0 -68.5 -47.9004 -125.9 -112 -140.4z" />
-    <glyph glyph-name="mars-double" unicode="&#xf227;" 
-d="M340 448c6.59961 0 12 -5.40039 12 -12v-79c0 -7.2002 -5.90039 -12 -12.0996 -12c-2.90039 0 -6 1.09961 -8.40039 3.5l-16.9004 16.9004l-48.6992 -48.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -79.5 -64.5 -144 -144 -144s-144 64.5 -144 144
-s64.5 144 144 144c28.2002 0 54.5 -8.09961 76.7002 -22.0996l48.7002 48.6992l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM144 160c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80zM500 288.1
-c6.59961 0 12 -5.39941 12 -12.0996v-79c0 -7.2002 -5.90039 -12 -12.0996 -12c-3 0 -6 1.09961 -8.40039 3.5l-16.9004 16.9004l-48.6992 -48.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -79.5 -64.5 -144 -144 -144c-74.4004 0 -135.6 56.4004 -143.2 128.9
-c21.7998 2 43.2998 8.19922 63.2998 18.3994c-0.0996094 -1 -0.0996094 -2.09961 -0.0996094 -3.2002c0 -44.0996 35.9004 -80 80 -80s80 35.9004 80 80c0 44.1006 -35.9004 80 -80 80c-1 0 -2.09961 -0.0996094 -3.2002 -0.0996094
-c10.2002 20 16.2998 41.5 18.4004 63.2998c22.5 -2.39941 43.2998 -9.89941 61.5 -21.2998l48.7002 48.7002l-16.9004 16.8994c-7.5 7.60059 -2.2002 20.5 8.5 20.5h79z" />
-    <glyph glyph-name="venus-mars" unicode="&#xf228;" horiz-adv-x="576" 
-d="M564 448c6.59961 0 12 -5.40039 12 -12v-79c0 -7.2002 -5.90039 -12 -12.0996 -12c-3 0 -6 1.09961 -8.40039 3.5l-16.9004 16.9004l-48.6992 -48.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -79.5 -64.5 -144 -144 -144
-c-33.7002 0 -64.7002 11.5 -89.2002 30.9004c14.1006 16.6992 25 36 32.1006 57.0996c14.5 -14.7998 34.7998 -24 57.0996 -24c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80c-22.4004 0 -42.5996 -9.2002 -57.0996 -24
-c-7.10059 21.0996 -18.1006 40.4004 -32.1006 57.0996c24.6006 19.3008 55.5 30.9004 89.2002 30.9004c28.2002 0 54.5 -8.09961 76.7002 -22.0996l48.7002 48.6992l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM144 384c79.5 0 144 -64.5 144 -144
-c0 -68.5 -47.9004 -125.8 -112 -140.4v-51.5996h36c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-36v-36c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v36h-36c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12
-h36v51.5996c-64.0996 14.5 -112 71.9004 -112 140.4c0 79.5 64.5 144 144 144zM144 160c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
-    <glyph glyph-name="mars-stroke" unicode="&#xf229;" horiz-adv-x="384" 
-d="M372 384c6.59961 0 12 -5.40039 12.0996 -12v-78.9004c0 -10.6992 -12.8994 -16.0996 -20.5 -8.5l-16.8994 16.9004l-17.5 -17.5l14.0996 -14.0996c4.7002 -4.7002 4.7002 -12.3008 0 -17l-28.2998 -28.3008c-4.7002 -4.69922 -12.2998 -4.69922 -17 0l-14.0996 14.1006
-l-18 -18c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -79.5 -64.5 -144 -144 -144s-144 64.5 -144 144s64.5 144 143.9 144c28.1992 0 54.5 -8.09961 76.6992 -22.0996l18 18l-14.0996 14.0996c-4.7002 4.7002 -4.7002 12.2998 0 17l28.2998 28.2002
-c4.7002 4.7002 12.2998 4.7002 17 0l14.1006 -14.1006l17.5 17.5l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM144 64c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
-    <glyph glyph-name="mars-stroke-v" unicode="&#xf22a;" horiz-adv-x="288" 
-d="M245.8 213.8c56.2998 -56.2002 56.2998 -147.399 0 -203.6c-56.2002 -56.2002 -147.399 -56.2002 -203.6 0s-56.2002 147.399 0 203.6c19.8994 19.9004 44.2002 32.7998 69.7998 38.6006v25.3994h-20c-6.59961 0 -12 5.40039 -12 12v40c0 6.60059 5.40039 12 12 12h20
-v24.7002h-23.9004c-10.6992 0 -16.0996 12.9004 -8.5 20.5l55.9004 55.9004c4.7002 4.69922 12.2998 4.69922 17 0l55.9004 -55.8008c7.5 -7.59961 2.19922 -20.5 -8.5 -20.5h-23.9004v-24.7998h20c6.59961 0 12 -5.39941 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-20
-v-25.3994c25.5996 -5.80078 49.9004 -18.7002 69.7998 -38.6006zM200.6 55.4004c31.2002 31.1992 31.2002 82 0 113.1c-31.1992 31.2002 -81.8994 31.2002 -113.1 0s-31.2002 -81.9004 0 -113.1c31.2002 -31.2002 81.9004 -31.2002 113.1 0z" />
-    <glyph glyph-name="mars-stroke-h" unicode="&#xf22b;" horiz-adv-x="480" 
-d="M476.2 200.5c4.7002 -4.7002 4.7002 -12.2998 0.0996094 -17l-55.8994 -55.9004c-7.60059 -7.5 -20.5 -2.19922 -20.5 8.5v23.9004h-23.9004v-20c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v20h-27.5996
-c-5.80078 -25.5996 -18.7002 -49.9004 -38.6006 -69.7998c-56.2002 -56.2002 -147.399 -56.2002 -203.6 0s-56.2002 147.399 0 203.6s147.399 56.2002 203.6 0c19.9004 -19.8994 32.7998 -44.2002 38.6006 -69.7998h27.5996v20c0 6.59961 5.40039 12 12 12h40
-c6.59961 0 12 -5.40039 12 -12v-20h23.7998v23.9004c0 10.6992 12.9004 16.0996 20.5 8.5zM200.6 135.4c31.2002 31.1992 31.2002 82 0 113.1c-31.1992 31.2002 -81.8994 31.2002 -113.1 0s-31.2002 -81.9004 0 -113.1c31.2002 -31.2002 81.9004 -31.2002 113.1 0z" />
-    <glyph glyph-name="neuter" unicode="&#xf22c;" horiz-adv-x="288" 
-d="M288 272c0 -68.5 -47.9004 -125.9 -112 -140.4v-151.6c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v151.6c-64.0996 14.5 -112 71.9004 -112 140.4c0 79.5 64.5 144 144 144s144 -64.5 144 -144zM144 192c44.0996 0 80 35.9004 80 80
-s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
-    <glyph glyph-name="genderless" unicode="&#xf22d;" horiz-adv-x="288" 
-d="M144 272c-44.0996 0 -80 -35.9004 -80 -80s35.9004 -80 80 -80s80 35.9004 80 80s-35.9004 80 -80 80zM144 336c79.5 0 144 -64.5 144 -144s-64.5 -144 -144 -144s-144 64.5 -144 144s64.5 144 144 144z" />
-    <glyph glyph-name="server" unicode="&#xf233;" 
-d="M480 288h-448c-17.6729 0 -32 14.3271 -32 32v64c0 17.6729 14.3271 32 32 32h448c17.6729 0 32 -14.3271 32 -32v-64c0 -17.6729 -14.3271 -32 -32 -32zM432 376c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM368 376
-c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM480 128h-448c-17.6729 0 -32 14.3271 -32 32v64c0 17.6729 14.3271 32 32 32h448c17.6729 0 32 -14.3271 32 -32v-64c0 -17.6729 -14.3271 -32 -32 -32zM432 216
-c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM368 216c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM480 -32h-448c-17.6729 0 -32 14.3271 -32 32v64
-c0 17.6729 14.3271 32 32 32h448c17.6729 0 32 -14.3271 32 -32v-64c0 -17.6729 -14.3271 -32 -32 -32zM432 56c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM368 56c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24
-s24 10.7451 24 24s-10.7451 24 -24 24z" />
-    <glyph glyph-name="user-plus" unicode="&#xf234;" horiz-adv-x="640" 
-d="M624 240c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-64v-64c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v64h-64c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h64v64c0 8.7998 7.2002 16 16 16h32
-c8.7998 0 16 -7.2002 16 -16v-64h64zM224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM313.6 160c74.2002 0 134.4 -60.2002 134.4 -134.4v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352
-c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992z" />
-    <glyph glyph-name="user-times" unicode="&#xf235;" horiz-adv-x="640" 
-d="M589.6 208l45.6006 -45.5996c6.2998 -6.30078 6.2998 -16.5 0 -22.8008l-22.7998 -22.7998c-6.30078 -6.2998 -16.5 -6.2998 -22.8008 0l-45.5996 45.6006l-45.5996 -45.6006c-6.30078 -6.2998 -16.5 -6.2998 -22.8008 0l-22.7998 22.7998
-c-6.2998 6.30078 -6.2998 16.5 0 22.8008l45.6006 45.5996l-45.6006 45.5996c-6.2998 6.30078 -6.2998 16.5 0 22.8008l22.7998 22.7998c6.30078 6.2998 16.5 6.2998 22.8008 0l45.5996 -45.6006l45.5996 45.6006c6.30078 6.2998 16.5 6.2998 22.8008 0l22.7998 -22.7998
-c6.2998 -6.30078 6.2998 -16.5 0 -22.8008zM224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM313.6 160c74.2002 0 134.4 -60.2002 134.4 -134.4v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352
-c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992z" />
-    <glyph glyph-name="bed" unicode="&#xf236;" horiz-adv-x="640" 
-d="M176 192c-44.1104 0 -80 35.8896 -80 80s35.8896 80 80 80s80 -35.8896 80 -80s-35.8896 -80 -80 -80zM528 320c61.8604 0 112 -50.1396 112 -112v-192c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v48h-512v-48c0 -8.83984 -7.16016 -16 -16 -16
-h-32c-8.83984 0 -16 7.16016 -16 16v352c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-208h224v144c0 8.83984 7.16016 16 16 16h224z" />
-    <glyph glyph-name="train" unicode="&#xf238;" horiz-adv-x="448" 
-d="M448 352v-256c0 -51.8154 -61.624 -96 -130.022 -96l62.9805 -49.7207c5.94727 -4.69629 2.60352 -14.2793 -4.95801 -14.2793h-304c-7.57812 0 -10.8916 9.59375 -4.95703 14.2793l62.9795 49.7207c-68.2021 0 -130.022 44.0459 -130.022 96v256c0 53.0186 64 96 128 96
-h192c65 0 128 -42.9814 128 -96zM400 216v112c0 13.2549 -10.7451 24 -24 24h-304c-13.2549 0 -24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24h304c13.2549 0 24 10.7451 24 24zM224 152c-30.9277 0 -56 -25.0723 -56 -56s25.0723 -56 56 -56s56 25.0723 56 56
-s-25.0723 56 -56 56z" />
-    <glyph glyph-name="subway" unicode="&#xf239;" horiz-adv-x="448" 
-d="M448 352v-256c0 -51.8154 -61.624 -96 -130.022 -96l62.9805 -49.7207c5.94727 -4.69629 2.60352 -14.2793 -4.95801 -14.2793h-304c-7.57812 0 -10.8916 9.59375 -4.95703 14.2793l62.9795 49.7207c-68.2021 0 -130.022 44.0459 -130.022 96v256c0 53.0186 64 96 128 96
-h192c65 0 128 -42.9814 128 -96zM200 216v112c0 13.2549 -10.7451 24 -24 24h-104c-13.2549 0 -24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24h104c13.2549 0 24 10.7451 24 24zM400 216v112c0 13.2549 -10.7451 24 -24 24h-104c-13.2549 0 -24 -10.7451 -24 -24
-v-112c0 -13.2549 10.7451 -24 24 -24h104c13.2549 0 24 10.7451 24 24zM352 160c-26.5098 0 -48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48s-21.4902 48 -48 48zM96 160c-26.5098 0 -48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48
-s-21.4902 48 -48 48z" />
-    <glyph glyph-name="battery-full" unicode="&#xf240;" horiz-adv-x="640" 
-d="M544 288h-480v-192h480v64h32v64h-32v64zM560 352c26.5098 0 48 -21.4902 48 -48v-16h8c13.2549 0 24 -10.7451 24 -24v-144c0 -13.2549 -10.7451 -24 -24 -24h-8v-16c0 -26.5098 -21.4902 -48 -48 -48h-512c-26.5098 0 -48 21.4902 -48 48v224
-c0 26.5098 21.4902 48 48 48h512zM512 256v-128h-416v128h416z" />
-    <glyph glyph-name="battery-three-quarters" unicode="&#xf241;" horiz-adv-x="640" 
-d="M544 288h-480v-192h480v64h32v64h-32v64zM560 352c26.5098 0 48 -21.4902 48 -48v-16h8c13.2549 0 24 -10.7451 24 -24v-144c0 -13.2549 -10.7451 -24 -24 -24h-8v-16c0 -26.5098 -21.4902 -48 -48 -48h-512c-26.5098 0 -48 21.4902 -48 48v224
-c0 26.5098 21.4902 48 48 48h512zM416 256v-128h-320v128h320z" />
-    <glyph glyph-name="battery-half" unicode="&#xf242;" horiz-adv-x="640" 
-d="M544 288h-480v-192h480v64h32v64h-32v64zM560 352c26.5098 0 48 -21.4902 48 -48v-16h8c13.2549 0 24 -10.7451 24 -24v-144c0 -13.2549 -10.7451 -24 -24 -24h-8v-16c0 -26.5098 -21.4902 -48 -48 -48h-512c-26.5098 0 -48 21.4902 -48 48v224
-c0 26.5098 21.4902 48 48 48h512zM320 256v-128h-224v128h224z" />
-    <glyph glyph-name="battery-quarter" unicode="&#xf243;" horiz-adv-x="640" 
-d="M544 288h-480v-192h480v64h32v64h-32v64zM560 352c26.5098 0 48 -21.4902 48 -48v-16h8c13.2549 0 24 -10.7451 24 -24v-144c0 -13.2549 -10.7451 -24 -24 -24h-8v-16c0 -26.5098 -21.4902 -48 -48 -48h-512c-26.5098 0 -48 21.4902 -48 48v224
-c0 26.5098 21.4902 48 48 48h512zM224 256v-128h-128v128h128z" />
-    <glyph glyph-name="battery-empty" unicode="&#xf244;" horiz-adv-x="640" 
-d="M544 288h-480v-192h480v64h32v64h-32v64zM560 352c26.5098 0 48 -21.4902 48 -48v-16h8c13.2549 0 24 -10.7451 24 -24v-144c0 -13.2549 -10.7451 -24 -24 -24h-8v-16c0 -26.5098 -21.4902 -48 -48 -48h-512c-26.5098 0 -48 21.4902 -48 48v224
-c0 26.5098 21.4902 48 48 48h512z" />
-    <glyph glyph-name="mouse-pointer" unicode="&#xf245;" horiz-adv-x="320" 
-d="M302.189 118.874h-106.084l55.8301 -135.993c3.88965 -9.42773 -0.554688 -19.999 -9.44336 -23.999l-49.165 -21.4268c-9.16504 -4 -19.4434 0.571289 -23.332 9.71387l-53.0527 129.136l-86.6641 -89.1377c-11.5498 -11.877 -30.2783 -2.7207 -30.2783 12.8564v429.678
-c0 16.3994 19.9209 24.3945 30.2773 12.8555l284.412 -292.542c11.4717 -11.1787 3.00684 -31.1406 -12.5 -31.1406z" />
-    <glyph glyph-name="i-cursor" unicode="&#xf246;" horiz-adv-x="256" 
-d="M256 395.952c0 -6.64648 -5.4043 -12.0098 -12.0498 -11.9922c-27.875 0.0712891 -83.9502 -3.20996 -83.9502 -48.1416v-111.818h36c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-36v-112c0 -44.9395 57.8887 -48.5527 83.8555 -48.2422
-c6.68652 0.0800781 12.1445 -5.31055 12.1445 -11.998v-39.6445c0 -6.5957 -5.31836 -11.957 -11.9131 -12c-35.0654 -0.228516 -78.3525 0.62207 -116.087 37.8447c-38.4688 -37.9482 -83.6211 -38.3027 -116.158 -37.8936
-c-6.56738 0.0820312 -11.8418 5.42969 -11.8418 11.999v39.9824c0 6.64648 5.4043 12.0098 12.0498 11.9932c27.875 -0.0722656 83.9502 3.02734 83.9502 47.959v112h-36c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h36v111.818
-c0 44.9385 -57.8887 48.7344 -83.8555 48.4248c-6.68652 -0.0800781 -12.1445 5.31055 -12.1445 11.998v39.6445c0 6.5957 5.31836 11.957 11.9131 12c35.0654 0.228516 78.3525 -0.62207 116.087 -37.8447c38.4688 37.9482 83.6211 38.3027 116.158 37.8926
-c6.56738 -0.0820312 11.8418 -5.42969 11.8418 -11.999v-39.9824z" />
-    <glyph glyph-name="object-group" unicode="&#xf247;" 
-d="M480 320v-288h20c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v20h-384v-20c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h20v320h-20
-c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-20h384v20c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-20v-32zM96 172c0 -6.62695 5.37305 -12 12 -12h168
-c6.62695 0 12 5.37305 12 12v136c0 6.62695 -5.37305 12 -12 12h-168c-6.62695 0 -12 -5.37305 -12 -12v-136zM416 76v136c0 6.62695 -5.37305 12 -12 12h-84v-72c0 -13.2549 -10.7451 -24 -24 -24h-72v-52c0 -6.62695 5.37305 -12 12 -12h168c6.62695 0 12 5.37305 12 12z
-" />
-    <glyph glyph-name="object-ungroup" unicode="&#xf248;" horiz-adv-x="576" 
-d="M64 128v-26c0 -3.31152 -2.68848 -6 -6 -6h-52c-3.31152 0 -6 2.68848 -6 6v52c0 3.31152 2.68848 6 6 6h26v192h-26c-3.31152 0 -6 2.68848 -6 6v52c0 3.31152 2.68848 6 6 6h52c3.31152 0 6 -2.68848 6 -6v-26h288v26c0 3.31152 2.68848 6 6 6h52
-c3.31152 0 6 -2.68848 6 -6v-52c0 -3.31152 -2.68848 -6 -6 -6h-26v-192h26c3.31152 0 6 -2.68848 6 -6v-52c0 -3.31152 -2.68848 -6 -6 -6h-52c-3.31152 0 -6 2.68848 -6 6v26h-288zM544 192v-160h26c3.31152 0 6 -2.68848 6 -6v-52c0 -3.31152 -2.68848 -6 -6 -6h-52
-c-3.31152 0 -6 2.68848 -6 6v26h-288v-26c0 -3.31152 -2.68848 -6 -6 -6h-52c-3.31152 0 -6 2.68848 -6 6v52c0 3.31152 2.68848 6 6 6h26v72h136v-8c0 -13.2549 10.7451 -24 24 -24h64c13.2549 0 24 10.7451 24 24v64c0 13.2549 -10.7451 24 -24 24h-8v72h104v26
-c0 3.31152 2.68848 6 6 6h52c3.31152 0 6 -2.68848 6 -6v-52c0 -3.31152 -2.68848 -6 -6 -6h-26v-32z" />
-    <glyph glyph-name="sticky-note" unicode="&#xf249;" horiz-adv-x="448" 
-d="M312 128c-13.2002 0 -24 -10.7998 -24 -24v-136h-264c-13.2998 0 -24 10.7002 -24 24v400c0 13.2998 10.7002 24 24 24h400c13.2998 0 24 -10.7002 24 -24v-264h-136zM441 73l-98 -98c-4.5 -4.5 -10.5996 -7 -17 -7h-6v128h128v-6.09961
-c0 -6.30078 -2.5 -12.4004 -7 -16.9004z" />
-    <glyph glyph-name="clone" unicode="&#xf24d;" 
-d="M464 448c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48h-288c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h288zM176 32h208v-48c0 -26.5098 -21.4902 -48 -48 -48h-288c-26.5098 0 -48 21.4902 -48 48v288
-c0 26.5098 21.4902 48 48 48h48v-208c0 -44.1123 35.8877 -80 80 -80z" />
-    <glyph glyph-name="balance-scale" unicode="&#xf24e;" horiz-adv-x="640" 
-d="M256 112c0 -44.1797 -57.3096 -80 -128 -80s-128 35.8203 -128 80h0.0195312c0 15.6699 -2.0791 7.25 85.04 181.51c17.6807 35.3604 68.2207 35.29 85.8701 0c86.3906 -172.779 85.0508 -165.33 85.0508 -181.51h0.0195312zM128 272l-72 -144h144zM639.98 112
-c0 -44.1797 -57.29 -80 -127.98 -80s-128 35.8203 -128 80h0.0195312c0 15.6699 -2.0791 7.25 85.04 181.51c17.6807 35.3604 68.2207 35.29 85.8701 0c86.3906 -172.779 85.0508 -165.33 85.0508 -181.51zM440 128h144l-72 144zM528 0c8.83984 0 16 -7.16016 16 -16v-32
-c0 -8.83984 -7.16016 -16 -16 -16h-416c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h176v294.75c-23.5195 10.29 -41.1602 31.4902 -46.3896 57.25h-129.61c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h144.36
-c14.5996 19.3203 37.5498 32 63.6396 32s49.04 -12.6797 63.6396 -32h144.36c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-129.61c-5.22949 -25.7695 -22.8799 -46.96 -46.3896 -57.25v-294.75h176z" />
-    <glyph glyph-name="hourglass-start" unicode="&#xf251;" horiz-adv-x="384" 
-d="M360 448c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24c0 -90.9648 -51.0156 -167.734 -120.842 -192c69.8262 -24.2656 120.842 -101.035 120.842 -192c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-336
-c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24c0 90.9648 51.0156 167.734 120.842 192c-69.8262 24.2656 -120.842 101.035 -120.842 192c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h336zM296 0c0 77.4834 -46.2139 144 -104 144
-c-57.7959 0 -104 -66.542 -104 -144h208z" />
-    <glyph glyph-name="hourglass-half" unicode="&#xf252;" horiz-adv-x="384" 
-d="M360 448c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24c0 -90.9648 -51.0156 -167.734 -120.842 -192c69.8262 -24.2656 120.842 -101.035 120.842 -192c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-336
-c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24c0 90.9648 51.0156 167.734 120.842 192c-69.8262 24.2656 -120.842 101.035 -120.842 192c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h336zM284.922 64
-c-17.0596 46.8037 -52.1006 80 -92.9219 80c-40.8242 0 -75.8613 -33.2031 -92.9199 -80h185.842zM284.941 320c7.07129 19.4131 11.0586 41.1953 11.0586 64h-208c0 -22.748 3.98828 -44.5479 11.0781 -64h185.863z" />
-    <glyph glyph-name="hourglass-end" unicode="&#xf253;" horiz-adv-x="384" 
-d="M360 384c0 -90.9648 -51.0156 -167.734 -120.842 -192c69.8262 -24.2656 120.842 -101.035 120.842 -192c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-336c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24
-c0 90.9648 51.0156 167.734 120.842 192c-69.8262 24.2656 -120.842 101.035 -120.842 192c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h336c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24zM192 240c57.4902 0 104 66.0547 104 144
-h-208c0 -77.4824 46.2129 -144 104 -144z" />
-    <glyph glyph-name="hourglass" unicode="&#xf254;" horiz-adv-x="384" 
-d="M360 384c0 -90.9648 -51.0156 -167.734 -120.842 -192c69.8262 -24.2656 120.842 -101.035 120.842 -192c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-336c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24
-c0 90.9648 51.0156 167.734 120.842 192c-69.8262 24.2656 -120.842 101.035 -120.842 192c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h336c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24z" />
-    <glyph glyph-name="hand-rock" unicode="&#xf255;" 
-d="M464.8 368c26.2998 -0.400391 47.2002 -22.5 47.2002 -48.7998v-133.5c0 -12.7998 -2.5 -25.5 -7.5 -37.2998l-49 -116.301c-4.90039 -11.7998 -7.5 -24.5 -7.5 -37.2998v-2.89941c0 -13.3008 -10.7002 -24 -24 -24h-240c-13.2998 0 -24 10.6992 -24 24v6.69922
-c0 13.7002 -5.90039 26.8008 -16.0996 35.9004l-111.7 99.2998c-20.5 18.2998 -32.2002 44.4004 -32.2002 71.7998v66.4004c0 26.7998 21.9004 48.4004 48.7998 48c26.2998 -0.5 47.2002 -22.5 47.2002 -48.7998v-48.1006l8 -7.09961v136
-c0 26.7998 21.9004 48.4004 48.7998 48c26.2998 -0.5 47.2002 -22.5 47.2002 -48.7998v-31.2002h8v48c0 26.7998 21.9004 48.4004 48.7998 48c26.2998 -0.5 47.2002 -22.5 47.2002 -48.7998v-47.2002h8v32c0 26.7998 21.9004 48.4004 48.7998 48
-c26.2998 -0.5 47.2002 -22.5 47.2002 -48.7998v-31.2002h8c0 26.7998 21.9004 48.4004 48.7998 48z" />
-    <glyph glyph-name="hand-paper" unicode="&#xf256;" horiz-adv-x="448" 
-d="M408.781 319.993c21.7305 -0.416016 39.2188 -18.1621 39.2178 -39.9932v-150.359c0 -15.166 -1.77344 -29.8193 -5.10449 -43.9746l-26.5078 -112.66c-5.10156 -21.6816 -24.4502 -37.0059 -46.7236 -37.0059h-197.59c-15.9629 0 -30.0908 7.76562 -38.8193 19.7676
-l-125.601 172.705c-12.9932 17.8672 -9.04297 42.8838 8.82129 55.877c17.8682 12.9941 42.8848 9.04297 55.877 -8.82227l31.6484 -43.5195v235.992c0 21.8311 17.4883 39.5771 39.2188 39.9932c22.4248 0.428711 40.7812 -18.3535 40.7812 -40.7832v-175.21h8v216
-c0 21.8311 17.4883 39.5771 39.2188 39.9932c22.4248 0.428711 40.7812 -18.3535 40.7812 -40.7832v-215.21h8v177c0 21.8311 17.4883 39.5771 39.2188 39.9932c22.4248 0.428711 40.7812 -18.3535 40.7812 -40.7832v-176.21h8v87.21
-c0 22.4297 18.3564 41.2119 40.7812 40.7832z" />
-    <glyph glyph-name="hand-scissors" unicode="&#xf257;" 
-d="M216 8c0 22.0918 17.9092 40 40 40v8h-32c-22.0908 0 -40 17.9082 -40 40s17.9092 40 40 40h32v8h-208c-26.5098 0 -48 21.4902 -48 48s21.4902 48 48 48h208v13.5723l-177.551 69.7393c-24.6738 9.69434 -36.8184 37.5557 -27.125 62.2285
-c9.69238 24.6738 37.5537 36.8174 62.2275 27.124l190.342 -74.7646l24.8721 31.0898c12.3066 15.3809 33.9785 19.5146 51.0811 9.74121l112 -64c12.0605 -6.89355 20.1533 -19.8564 20.1533 -34.7305v-240c0 -18.5615 -12.7695 -34.6855 -30.8379 -38.9365l-136 -32
-c-2.94824 -0.694336 -6.00391 -1.06348 -9.16211 -1.06348h-80c-22.0908 0 -40 17.9082 -40 40z" />
-    <glyph glyph-name="hand-lizard" unicode="&#xf258;" horiz-adv-x="576" 
-d="M384 -32v61.4609c0 8.5332 -4.4375 16.0166 -11.1543 20.2734l-111.748 70.8105c-7.41895 4.70215 -16.2656 7.45508 -25.6914 7.45508h-147.406c-13.2549 0 -24 10.7451 -24 24v8c0 35.3457 28.6543 64 64 64h123.648c13.3086 0 24.7158 8.12109 29.5371 19.6924
-l21.4102 51.3848c4.94141 11.8555 -3.77051 24.9229 -16.6143 24.9229h-229.981c-30.9277 0 -56 25.0723 -56 56v16c0 13.2549 10.7451 24 24 24h333.544c17.0908 0 32.0781 -8.90137 40.583 -22.3682l163.04 -258.146c9.35645 -14.8145 14.833 -32.4619 14.833 -51.2637
-v-116.222h-192z" />
-    <glyph glyph-name="hand-spock" unicode="&#xf259;" 
-d="M510.9 302.729l-68.2969 -286.823c-10.8975 -45.7705 -52.0801 -79.9062 -101.166 -79.9062h-127.363c-36.0293 0 -68.8447 14.0459 -93.1855 36.9531l-108.298 101.92c-7.72754 7.29297 -12.5537 17.6299 -12.5537 29.084c0 22.0723 17.9199 39.9922 39.9922 39.9922
-c10.5742 0 20.2188 -4.11426 27.374 -10.8262l60.5928 -57.0254v0c0 27.958 -4.1084 54.9473 -11.6699 80.4668l-42.6885 144.075c-1.06738 3.60254 -1.63965 7.41699 -1.63965 11.3633c0 22.0801 17.9258 40.0059 40.0049 40.0059
-c18.1338 0 33.4512 -12.0977 38.3525 -28.6504l37.1543 -125.395c1.02148 -3.44629 4.21387 -5.96387 7.99023 -5.96387c4.59766 0 8.33105 3.7334 8.33105 8.33105c0 0.717773 -0.09375 1.41016 -0.264648 2.07422l-50.3047 195.641
-c-0.821289 3.19238 -1.25879 6.53711 -1.25879 9.98438c0 22.0742 17.9219 39.9961 39.9971 39.9961c18.6279 0 34.291 -12.793 38.7305 -30.043l56.0947 -218.158c1.15527 -4.49512 5.23926 -7.82129 10.0928 -7.82129c5.03125 0 9.23438 3.57715 10.207 8.32227
-l37.6826 183.704c3.76074 18.2139 19.9043 31.9248 39.2256 31.9248c4.20703 0 8.26562 -0.629883 12.0771 -1.83496c19.8604 -6.2998 30.8623 -27.6738 26.6758 -48.085l-33.8389 -164.967c-0.101562 -0.492188 -0.154297 -1.00098 -0.154297 -1.52344
-c0 -4.16797 3.38379 -7.55176 7.55176 -7.55176c3.56445 0 6.55566 2.48535 7.34668 5.80859l29.3975 123.459c4.19141 17.6016 20.0312 30.708 38.9082 30.708c22.0732 0 39.9941 -17.9209 39.9941 -39.9941c0 -3.19727 -0.380859 -6.26465 -1.09082 -9.24512v0z" />
-    <glyph glyph-name="hand-pointer" unicode="&#xf25a;" horiz-adv-x="448" 
-d="M448 208v-96c0 -3.08398 -0.356445 -6.15918 -1.06348 -9.16211l-32 -136c-4.25098 -18.0684 -20.375 -30.8379 -38.9365 -30.8379h-208c-13.3018 0 -25.0752 6.47168 -32.3496 16.4727l-127.997 176c-12.9932 17.8662 -9.04297 42.8838 8.82129 55.876
-c17.8672 12.9941 42.8848 9.04297 55.877 -8.82227l31.6484 -43.5186v275.992c0 22.0908 17.9082 40 40 40s40 -17.9092 40 -40v-200h8v40c0 22.0908 17.9082 40 40 40s40 -17.9092 40 -40v-40h8v24c0 22.0908 17.9082 40 40 40s40 -17.9092 40 -40v-24h8
-c0 22.0908 17.9082 40 40 40s40 -17.9092 40 -40zM192 128h-8v-96h8v96zM280 128h-8v-96h8v96zM368 128h-8v-96h8v96z" />
-    <glyph glyph-name="hand-peace" unicode="&#xf25b;" horiz-adv-x="448" 
-d="M408 232c22.0918 0 40 -17.9092 40 -40v-80c0 -3.1582 -0.369141 -6.21484 -1.06348 -9.16211l-32 -136c-4.25098 -18.0684 -20.375 -30.8379 -38.9365 -30.8379h-240c-14.874 0 -27.8379 8.09375 -34.7285 20.1543l-64 112
-c-9.77441 17.1025 -5.64062 38.7744 9.74023 51.0811l31.0898 24.8721l-74.7646 190.342c-9.69336 24.6738 2.4502 52.5342 27.124 62.2266c24.6729 9.69434 52.5332 -2.4502 62.2275 -27.125l69.7393 -177.551h13.5723v208c0 26.5098 21.4902 48 48 48s48 -21.4902 48 -48
-v-208h8v32c0 22.0908 17.9082 40 40 40s40 -17.9092 40 -40v-32h8c0 22.0908 17.9082 40 40 40z" />
-    <glyph glyph-name="trademark" unicode="&#xf25c;" horiz-adv-x="640" 
-d="M260.6 352c6.60059 0 12 -5.40039 11.9004 -12v-43.0996c0 -6.60059 -5.40039 -12 -12 -12h-85.0996v-240.9c0 -6.59961 -5.40039 -12 -12 -12h-54.3008c-6.59961 0 -12 5.40039 -12 12v240.9h-85.0996c-6.59961 0 -12 5.39941 -12 12v43.0996
-c0 6.59961 5.40039 12 12 12h248.6zM640 45c0.5 -7 -5 -13 -12 -13h-53.9004c-6.2998 0 -11.5996 4.90039 -12 11.2002l-9.09961 132.899c-1.7998 24.2002 0 53.7002 0 53.7002h-0.900391s-10.6992 -33.5996 -17.8994 -53.7002l-30.7002 -84.6992
-c-1.7002 -4.7002 -6.2002 -7.90039 -11.2998 -7.90039h-50.2998c-5.10059 0 -9.60059 3.2002 -11.3008 7.90039l-30.6992 84.6992c-7.2002 20.1006 -17.9004 53.7002 -17.9004 53.7002h-0.900391s1.80078 -29.5 0 -53.7002l-9.09961 -132.899
-c-0.5 -6.2998 -5.7002 -11.2002 -12 -11.2002h-54.5c-7.09961 0 -12.5996 6 -12 13l24.4004 296c0.599609 6.2002 5.7998 11 12 11h65.3994c5.10059 0 9.60059 -3.2998 11.2998 -8.09961l43.8008 -127.101c7.19922 -20.5996 16.0996 -52.7998 16.0996 -52.7998h0.900391
-s8.89941 32.2002 16.0996 52.7998l43.7998 127.101c1.60059 4.7998 6.2002 8.09961 11.2998 8.09961h65.4004c6.2998 0 11.5 -4.7998 12 -11z" />
-    <glyph glyph-name="registered" unicode="&#xf25d;" 
-d="M285.363 240.525c0 -18.6006 -9.83105 -28.4316 -28.4316 -28.4316h-29.876v56.1406h23.3779c28.668 0 34.9297 -8.77344 34.9297 -27.709zM504 192c0 -136.967 -111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248s248 -111.033 248 -248z
-M363.411 87.5859c-46.7295 84.8252 -43.2988 78.6357 -44.7021 80.9805c23.4316 15.1719 37.9453 42.9785 37.9453 74.4854c0 54.2441 -31.5 89.252 -105.498 89.252h-70.667c-13.2549 0 -24 -10.7451 -24 -24v-232.304c0 -13.2549 10.7451 -24 24 -24h22.5664
-c13.2549 0 24 10.7451 24 24v71.6631h25.5566l44.1289 -82.9375c4.03516 -7.58301 12.0049 -12.7266 21.1875 -12.7266h24.4639c18.2617 0.000976562 29.8291 19.5908 21.0186 35.5869z" />
-    <glyph glyph-name="tv" unicode="&#xf26c;" horiz-adv-x="640" 
-d="M592 448c26.4922 0 48 -21.5078 48 -48v-320c0 -26.4922 -21.5078 -48 -48 -48h-240v-32h176c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h176v32h-240
-c-26.4922 0 -48 21.5078 -48 48v320c0 26.4922 21.5078 48 48 48h544zM576 96v288h-512v-288h512z" />
-    <glyph glyph-name="calendar-plus" unicode="&#xf271;" horiz-adv-x="448" 
-d="M436 288h-424c-6.59961 0 -12 5.40039 -12 12v36c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48v-36
-c0 -6.59961 -5.40039 -12 -12 -12zM12 256h424c6.59961 0 12 -5.40039 12 -12v-260c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v260c0 6.59961 5.40039 12 12 12zM328 116c0 6.59961 -5.40039 12 -12 12h-60v60c0 6.59961 -5.40039 12 -12 12h-40
-c-6.59961 0 -12 -5.40039 -12 -12v-60h-60c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h60v-60c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v60h60c6.59961 0 12 5.40039 12 12v40z" />
-    <glyph glyph-name="calendar-minus" unicode="&#xf272;" horiz-adv-x="448" 
-d="M436 288h-424c-6.59961 0 -12 5.40039 -12 12v36c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48v-36
-c0 -6.59961 -5.40039 -12 -12 -12zM12 256h424c6.59961 0 12 -5.40039 12 -12v-260c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v260c0 6.59961 5.40039 12 12 12zM316 64c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-184
-c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h184z" />
-    <glyph glyph-name="calendar-times" unicode="&#xf273;" horiz-adv-x="448" 
-d="M436 288h-424c-6.59961 0 -12 5.40039 -12 12v36c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48v-36
-c0 -6.59961 -5.40039 -12 -12 -12zM12 256h424c6.59961 0 12 -5.40039 12 -12v-260c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v260c0 6.59961 5.40039 12 12 12zM269.3 96l48.1006 48.0996c4.69922 4.7002 4.69922 12.3008 0 17l-28.3008 28.3008
-c-4.69922 4.69922 -12.2998 4.69922 -17 0l-48.0996 -48.1006l-48.0996 48.1006c-4.7002 4.69922 -12.3008 4.69922 -17 0l-28.3008 -28.3008c-4.69922 -4.69922 -4.69922 -12.2998 0 -17l48.1006 -48.0996l-48.1006 -48.0996c-4.69922 -4.7002 -4.69922 -12.3008 0 -17
-l28.3008 -28.3008c4.69922 -4.69922 12.2998 -4.69922 17 0l48.0996 48.1006l48.0996 -48.1006c4.7002 -4.69922 12.3008 -4.69922 17 0l28.3008 28.3008c4.69922 4.69922 4.69922 12.2998 0 17z" />
-    <glyph glyph-name="calendar-check" unicode="&#xf274;" horiz-adv-x="448" 
-d="M436 288h-424c-6.62695 0 -12 5.37305 -12 12v36c0 26.5098 21.4902 48 48 48h48v52c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-52h128v52c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-52h48c26.5098 0 48 -21.4902 48 -48v-36
-c0 -6.62695 -5.37305 -12 -12 -12zM12 256h424c6.62695 0 12 -5.37305 12 -12v-260c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v260c0 6.62695 5.37305 12 12 12zM345.296 160.053l-28.1689 28.3984
-c-4.66699 4.70508 -12.2646 4.73535 -16.9697 0.0673828l-106.037 -105.184l-45.9805 46.3516c-4.66699 4.70508 -12.2656 4.73633 -16.9707 0.0683594l-28.3965 -28.1699c-4.70508 -4.66699 -4.73633 -12.2646 -0.0683594 -16.9697l82.6006 -83.2695
-c4.66699 -4.70508 12.2656 -4.73535 16.9707 -0.0673828l142.952 141.805c4.70508 4.66699 4.73633 12.2646 0.0683594 16.9697z" />
-    <glyph glyph-name="industry" unicode="&#xf275;" 
-d="M475.115 284.219c15.9541 10.1514 36.8848 -1.33105 36.8848 -20.248v-271.971c0 -13.2549 -10.7451 -24 -24 -24h-464c-13.2549 0 -24 10.7451 -24 24v400c0 13.2549 10.7451 24 24 24h112c13.2549 0 24 -10.7451 24 -24v-196.309l139.115 88.5273
-c15.9541 10.1514 36.8848 -1.33203 36.8848 -20.248v-68.2793z" />
-    <glyph glyph-name="map-pin" unicode="&#xf276;" horiz-adv-x="288" 
-d="M112 131.06c10.3896 -1.91992 21.0596 -3.05957 32 -3.05957s21.6104 1.13965 32 3.05957v-156.689l-22.0098 -33.0205c-4.75 -7.11914 -15.2207 -7.11914 -19.9707 0l-22.0195 33.0205v156.689zM144 448c79.5303 0 144 -64.4697 144 -144s-64.4697 -144 -144 -144
-s-144 64.4697 -144 144s64.4697 144 144 144zM144 372c6.62012 0 12 5.37988 12 12s-5.37988 12 -12 12c-50.7197 0 -92 -41.2695 -92 -92c0 -6.62012 5.37988 -12 12 -12s12 5.37988 12 12c0 37.5 30.5 68 68 68z" />
-    <glyph glyph-name="map-signs" unicode="&#xf277;" 
-d="M507.31 363.31c6.25 -6.25 6.25 -16.3691 0 -22.6299l-43.3096 -43.3096c-6.00977 -6 -14.1396 -9.37012 -22.6299 -9.37012h-385.37c-13.25 0 -24 10.75 -24 24v80c0 13.25 10.75 24 24 24h168v16c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-16
-h153.37c8.49023 0 16.6299 -3.37012 22.6299 -9.37012zM224 -48v112h64v-112c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16zM456 224c13.25 0 24 -10.75 24 -24v-80c0 -13.25 -10.75 -24 -24 -24h-385.37
-c-8.49023 0 -16.6299 3.37012 -22.6299 9.37012l-43.3096 43.3096c-6.25 6.25 -6.25 16.3799 0 22.6299l43.3096 43.3203c6.00977 6 14.1396 9.37012 22.6299 9.37012h153.37v32h64v-32h168z" />
-    <glyph glyph-name="map" unicode="&#xf279;" horiz-adv-x="576" 
-d="M0 330.34c0.00292969 13.4697 8.32617 24.9932 20.1201 29.71l139.88 55.9502v-384l-138.06 -62.8398c-10.5107 -4.2002 -21.9404 3.54004 -21.9404 14.8594v346.32zM192 32v384l192 -64v-384zM554.06 414.84c10.5107 4.2002 21.9404 -3.54004 21.9404 -14.8594v-346.32
-c0 -13.4707 -8.32422 -24.9951 -20.1201 -29.71l-139.88 -55.9502v384z" />
-    <glyph glyph-name="comment-alt" unicode="&#xf27a;" 
-d="M448 448c35.2998 0 64 -28.7002 64 -64v-288c0 -35.2998 -28.7002 -64 -64 -64h-144l-124.9 -93.7002c-7.89941 -5.7998 -19.0996 -0.0996094 -19.0996 9.7002v84h-96c-35.2998 0 -64 28.7002 -64 64v288c0 35.2998 28.7002 64 64 64h384z" />
-    <glyph glyph-name="pause-circle" unicode="&#xf28b;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM240 112v160c0 8.7998 -7.2002 16 -16 16h-48c-8.7998 0 -16 -7.2002 -16 -16v-160c0 -8.7998 7.2002 -16 16 -16h48c8.7998 0 16 7.2002 16 16zM352 112v160
-c0 8.7998 -7.2002 16 -16 16h-48c-8.7998 0 -16 -7.2002 -16 -16v-160c0 -8.7998 7.2002 -16 16 -16h48c8.7998 0 16 7.2002 16 16z" />
-    <glyph glyph-name="stop-circle" unicode="&#xf28d;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM352 112v160c0 8.7998 -7.2002 16 -16 16h-160c-8.7998 0 -16 -7.2002 -16 -16v-160c0 -8.7998 7.2002 -16 16 -16h160c8.7998 0 16 7.2002 16 16z" />
-    <glyph glyph-name="shopping-bag" unicode="&#xf290;" horiz-adv-x="448" 
-d="M352 288h96v-272c0 -44.1826 -35.8174 -80 -80 -80h-288c-44.1826 0 -80 35.8174 -80 80v272h96v32c0 70.5801 57.4199 128 128 128c70.5791 0 128 -57.4199 128 -128v-32zM160 320v-32h128v32c0 35.29 -28.71 64 -64 64s-64 -28.71 -64 -64zM320 200
-c13.2549 0 24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24zM128 200c13.2549 0 24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24z" />
-    <glyph glyph-name="shopping-basket" unicode="&#xf291;" horiz-adv-x="576" 
-d="M576 232v-16c0 -13.2549 -10.7451 -24 -24 -24h-8l-26.1133 -182.788c-3.37793 -23.6465 -23.6299 -41.2119 -47.5166 -41.2119h-364.74c-23.8867 0 -44.1387 17.5654 -47.5176 41.2119l-26.1123 182.788h-8c-13.2549 0 -24 10.7451 -24 24v16
-c0 13.2549 10.7451 24 24 24h67.3408l106.78 146.821c10.3945 14.292 30.4072 17.4531 44.7012 7.05762c14.293 -10.3945 17.4531 -30.4082 7.05762 -44.7012l-79.4033 -109.178h235.047l-79.4033 109.179c-10.3955 14.292 -7.23438 34.3066 7.05859 44.7012
-c14.291 10.3955 34.3066 7.23535 44.7012 -7.05762l106.779 -146.822h67.3408c13.2549 0 24 -10.7451 24 -24zM312 56v112c0 13.2549 -10.7451 24 -24 24s-24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24s24 10.7451 24 24zM424 56v112
-c0 13.2549 -10.7451 24 -24 24s-24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24s24 10.7451 24 24zM200 56v112c0 13.2549 -10.7451 24 -24 24s-24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24s24 10.7451 24 24z" />
-    <glyph glyph-name="hashtag" unicode="&#xf292;" horiz-adv-x="448" 
-d="M440.667 265.891c-1.00195 -5.61328 -5.91309 -9.89062 -11.8135 -9.89062h-79.0957l-22.8564 -128h74.8096c7.4707 0 13.126 -6.75391 11.8135 -14.1094l-7.14355 -40c-1.00195 -5.61328 -5.91309 -9.89062 -11.8125 -9.89062h-79.0967l-15.377 -86.1094
-c-1.00195 -5.61328 -5.91309 -9.89062 -11.8125 -9.89062h-40.6318c-7.47266 0 -13.127 6.75391 -11.8135 14.1094l14.623 81.8906h-98.6338l-15.3779 -86.1094c-1.00195 -5.61328 -5.91309 -9.89062 -11.8135 -9.89062h-40.6318
-c-7.4707 0 -13.126 6.75391 -11.8125 14.1094l14.623 81.8906h-74.8105c-7.4707 0 -13.126 6.75391 -11.8125 14.1094l7.14258 40c1.00195 5.61328 5.91309 9.89062 11.8135 9.89062h79.0957l22.8564 128h-74.8096c-7.4707 0 -13.126 6.75391 -11.8135 14.1094l7.14355 40
-c1.00195 5.61328 5.91309 9.89062 11.8125 9.89062h79.0967l15.377 86.1094c1.00195 5.61328 5.91309 9.89062 11.8125 9.89062h40.6318c7.47266 0 13.127 -6.75391 11.8135 -14.1094l-14.623 -81.8906h98.6348l15.377 86.1094
-c1.00195 5.61328 5.91309 9.89062 11.8135 9.89062h40.6318c7.4707 0 13.126 -6.75391 11.8125 -14.1094l-14.623 -81.8906h74.8105c7.4707 0 13.126 -6.75391 11.8125 -14.1094zM261.889 128l22.8574 128h-98.6338l-22.8574 -128h98.6338z" />
-    <glyph glyph-name="percent" unicode="&#xf295;" horiz-adv-x="448" 
-d="M112 224c-61.9004 0 -112 50.0996 -112 112s50.0996 112 112 112s112 -50.0996 112 -112s-50.0996 -112 -112 -112zM112 384c-26.5 0 -48 -21.5 -48 -48s21.5 -48 48 -48s48 21.5 48 48s-21.5 48 -48 48zM336 160c61.9004 0 112 -50.0996 112 -112
-s-50.0996 -112 -112 -112s-112 50.0996 -112 112s50.0996 112 112 112zM336 0c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM392.3 447.8l31.6006 0.100586c19.3994 0.0996094 30.8994 -21.8008 19.6992 -37.8008l-366.199 -463.699
-c-4.33203 -6.17773 -11.4912 -10.1973 -19.6006 -10.2002l-33.3994 -0.100586c-19.5 0 -30.9004 21.9004 -19.7002 37.8008l368 463.699c4.5 6.40039 11.7998 10.2002 19.5996 10.2002z" />
-    <glyph glyph-name="universal-access" unicode="&#xf29a;" 
-d="M256 400c-114.971 0 -208 -93.0469 -208 -208c0 -114.971 93.0469 -208 208 -208c114.971 0 208 93.0469 208 208c0 114.971 -93.0469 208 -208 208zM256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248z
-M256 384c106.039 0 192 -85.9609 192 -192s-85.9609 -192 -192 -192s-192 85.9609 -192 192s85.9609 192 192 192zM256 340c-19.8818 0 -36 -16.1182 -36 -36s16.1182 -36 36 -36s36 16.1182 36 36s-16.1182 36 -36 36zM373.741 241.977
-c8.59961 2.03027 13.9258 10.6484 11.8965 19.249c-2.03027 8.60156 -10.6494 13.9258 -19.249 11.8955c-96.4912 -22.7832 -124.089 -22.8291 -220.774 0c-8.60254 2.03125 -17.2178 -3.29395 -19.249 -11.8955c-2.03125 -8.60059 3.29492 -17.2178 11.8945 -19.249
-c28.7129 -6.7793 55.5127 -12.749 82.1416 -15.8066c-0.852539 -101.08 -12.3242 -123.08 -25.0371 -155.621c-3.61719 -9.25879 0.957031 -19.6982 10.2168 -23.3145c9.26465 -3.61914 19.7002 0.961914 23.3154 10.2168c8.72754 22.3408 17.0947 40.6982 22.2617 78.5488
-h9.68555c5.1748 -37.9131 13.5566 -56.2412 22.2617 -78.5488c3.61621 -9.25977 14.0547 -13.834 23.3154 -10.2168c9.25977 3.61621 13.834 14.0547 10.2168 23.3145c-12.7305 32.5693 -24.1855 54.5986 -25.0371 155.621c26.6299 3.05859 53.4287 9.02832 82.1406 15.8066
-z" />
-    <glyph glyph-name="blind" unicode="&#xf29d;" horiz-adv-x="384" 
-d="M380.15 -62.8369c-1.20898 -0.733398 -2.62695 -1.15625 -4.14258 -1.15625c-2.89941 0 -5.44336 1.53223 -6.84668 3.84277l-125.33 206.428c5.10547 2.02539 9.53809 5.2959 12.958 9.48438l126.048 -207.607c0.734375 -1.20898 1.15723 -2.62793 1.15723 -4.14355
-c0 -2.89941 -1.53223 -5.44434 -3.84375 -6.84766zM142.803 133.662l62.8145 -153.537c6.69141 -16.3584 -1.14453 -35.042 -17.501 -41.7344c-16.3564 -6.69043 -35.04 1.1416 -41.7334 17.501l-36.1201 88.2852zM96 360c-24.3008 0 -44 19.6992 -44 44s19.6992 44 44 44
-s44 -19.6992 44 -44s-19.6992 -44 -44 -44zM250.837 190.872c8.19336 -10.374 6.44434 -25.4922 -3.96582 -33.708c-9.33984 -7.37402 -24.5635 -7.61914 -33.708 3.96484l-102.3 129.217c-0.733398 0.924805 -1.86328 1.5127 -3.13281 1.5127
-c-2.20801 0 -4.00098 -1.79297 -4.00098 -4.00098c0 -0.9375 0.323242 -1.7998 0.864258 -2.48242l31.4062 -39.8164v-107.196l-65.9258 -181.288c-6.04102 -16.6143 -24.4072 -25.1768 -41.0088 -19.1387c-16.6104 6.04004 -25.1787 24.4004 -19.1387 41.0098
-l54.0732 148.693v140.698l-16 -20.5713v-79.7656c0 -13.0996 -10.4951 -23.748 -23.5361 -23.9961c-13.4531 -0.254883 -24.4639 11.0811 -24.4639 24.5361v95.6943l61.0557 78.5c4.72754 6.0791 11.7979 9.23633 18.9443 9.23926v0.0263672h32v-0.015625
-c7.08691 -0.00390625 14.1035 -3.11719 18.8369 -9.1123z" />
-    <glyph glyph-name="audio-description" unicode="&#xf29e;" 
-d="M162.925 209.291l8.82227 -30.6553h-25.6064l9.04102 30.6523c1.27734 4.4209 2.65137 9.99414 3.87207 15.2451c1.2207 -5.25098 2.59473 -10.8232 3.87109 -15.2422zM329.399 241.39c28.6846 0 46.1748 -16.7656 46.1748 -49.0049
-c0 -32.0977 -16.3994 -49.7754 -46.1748 -49.7754h-14.5234v98.7803h14.5234zM512 336v-288c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h416c26.5098 0 48 -21.4902 48 -48zM245.459 111.861l-57.0967 168
-c-1.6084 4.73242 -6.08887 8.13867 -11.3623 8.13867h-35.8936c-5.27344 0 -9.75391 -3.40625 -11.3623 -8.13867l-57.0967 -168c-2.64453 -7.7832 3.1416 -15.8613 11.3613 -15.8613h29.1328c5.47559 0 10.0977 3.67676 11.5352 8.69336l8.57422 29.9053h51.3672
-l8.79297 -29.9766c1.46094 -4.97949 6.06543 -8.62207 11.5146 -8.62207h29.1719c8.2207 0 14.0059 8.07812 11.3613 15.8613zM430.16 192.386c0 58.9775 -37.9189 95.6143 -98.96 95.6143h-57.3662c-6.62695 0 -12 -5.37305 -12 -12v-168c0 -6.62695 5.37305 -12 12 -12
-h57.3662c61.041 0 98.96 36.9326 98.96 96.3857z" />
-    <glyph glyph-name="phone-volume" unicode="&#xf2a0;" horiz-adv-x="384" 
-d="M97.333 -58.9658c-129.874 129.874 -129.681 340.252 0 469.933c5.69824 5.69824 14.5273 6.63184 21.2627 2.42188l64.8174 -40.5127c4.86035 -3.03711 8.09668 -8.43652 8.09668 -14.5859c0 -2.25098 -0.458984 -4.40137 -1.24805 -6.37207l-32.4082 -81.0205
-c-2.5332 -6.33496 -8.73047 -10.8145 -15.9648 -10.8145c-0.583008 0 -1.13574 0.0380859 -1.7041 0.0947266l-55.8096 5.58008c-21.0508 -58.2607 -20.6123 -122.471 0 -179.515l55.8105 5.58105c0.568359 0.0566406 1.14551 0.0859375 1.72852 0.0859375
-c7.23438 0 13.4072 -4.4707 15.9414 -10.8047l32.4072 -81.0225c0.789062 -1.9707 1.22266 -4.12207 1.22266 -6.37305c0 -6.14844 -3.21094 -11.5469 -8.07129 -14.585l-64.8174 -40.5127c-2.6377 -1.64844 -5.75391 -2.60156 -9.09082 -2.60156
-c-4.74316 0 -9.06152 1.91211 -12.1729 5.02344zM247.126 352.527c11.832 -20.0469 11.832 -45.0088 0 -65.0557c-3.9502 -6.69238 -13.1084 -7.95898 -18.7178 -2.58105l-5.97559 5.72656c-3.91016 3.74805 -4.79297 9.62207 -2.26074 14.4102
-c2.35645 4.46191 3.69141 9.5459 3.69141 14.9395c0 5.39258 -1.33496 10.543 -3.69141 15.0049c-2.5332 4.78809 -1.64941 10.6621 2.26074 14.4102l5.97559 5.72656c5.60938 5.37793 14.7676 4.11133 18.7178 -2.58105zM338.913 443.714
-c60.1396 -71.6035 60.0918 -175.882 0 -247.428c-4.47363 -5.32715 -12.5303 -5.74609 -17.5518 -0.933594l-5.79785 5.55762c-4.56055 4.37109 -4.97754 11.5293 -0.930664 16.3789c49.6875 59.5381 49.6465 145.933 0 205.422
-c-4.04688 4.84961 -3.63086 12.0078 0.930664 16.3789l5.79785 5.55762c5.02148 4.8125 13.0781 4.39355 17.5518 -0.933594zM292.941 398.773c36.0498 -46.3223 36.1074 -111.149 0 -157.547c-4.39062 -5.64062 -12.6973 -6.25098 -17.8564 -1.30371l-5.81836 5.5791
-c-4.39941 4.21875 -4.99805 11.0947 -1.28418 15.9307c26.5352 34.5645 26.5332 82.5723 0 117.135c-3.71387 4.83594 -3.11523 11.7109 1.28418 15.9307l5.81836 5.5791c5.15918 4.94727 13.4658 4.33691 17.8564 -1.30371z" />
-    <glyph glyph-name="braille" unicode="&#xf2a1;" horiz-adv-x="640" 
-d="M128 192c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64s64 -28.6543 64 -64zM64 64c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM64 416c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64
-s-64 28.6543 -64 64s28.6543 64 64 64zM224 224c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM224 64c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM224 416
-c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64zM448 224c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM448 64c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32
-s-32 14.3271 -32 32s14.3271 32 32 32zM448 416c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64zM608 224c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM608 64
-c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM608 384c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32z" />
-    <glyph glyph-name="assistive-listening-systems" unicode="&#xf2a2;" 
-d="M216 188c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 44.1123 35.8877 80 80 80s80 -35.8877 80 -80c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 13.2344 -10.7666 24 -24 24s-24 -10.7656 -24 -24zM240 364c97.0469 0 176 -78.9531 176 -176
-c0 -95.9863 -71.4053 -109.798 -72 -144.226c-0.124023 -59.4463 -48.5254 -107.774 -108 -107.774c-15.4639 0 -28 12.5361 -28 28s12.5361 28 28 28c28.6729 0 52 23.3271 52 52l0.00292969 0.37793c0.988281 73.3115 71.9971 68.458 71.9971 143.622
-c0 66.168 -53.832 120 -120 120s-120 -53.832 -120 -120c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 97.0469 78.9531 176 176 176zM160 128c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM32 0
-c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM512 187.993c0 -15.4639 -12.5371 -28 -28.001 -28s-28 12.5361 -28 28c0 1.12695 -0.00683594 2.24512 -0.0332031 3.36328l-0.00292969 0.1875
-c-1.4668 91.4404 -60.1709 172.599 -146.077 201.953c-14.6318 5.00098 -22.4414 20.917 -17.4414 35.5498c5.00098 14.6328 20.917 22.4404 35.5498 17.4424c108.163 -36.959 182.082 -139.015 183.961 -253.965c0.0332031 -1.50684 0.0449219 -3.01367 0.0449219 -4.53125
-zM152.971 8.9707l-33.9404 -33.9404l-80 80l33.9404 33.9404z" />
-    <glyph glyph-name="american-sign-language-interpreting" unicode="&#xf2a3;" horiz-adv-x="640" 
-d="M290.547 258.961c-20.2949 10.1494 -44.1465 11.1992 -64.7393 3.88965c42.6064 0 71.208 -20.4746 85.5781 -50.5752c8.57617 -17.8994 -5.14746 -38.0713 -23.6172 -38.0713c18.4297 0 32.2119 -20.1357 23.6172 -38.0713
-c-14.7246 -30.8457 -46.123 -50.8535 -80.2979 -50.8535c-0.556641 0 -94.4707 8.61426 -94.4707 8.61426l-66.4062 -33.3467c-9.38379 -4.69336 -19.8145 -0.378906 -23.8945 7.78125l-44.4561 88.9248c-4.16699 8.61523 -1.11133 18.8975 6.94531 23.6211l58.0723 33.0693
-l41.1221 74.1953c6.38965 57.2451 34.7314 109.768 79.7432 146.727c11.3906 9.44824 28.3408 7.78125 37.5098 -3.61328c9.44629 -11.3936 7.78027 -28.0674 -3.6123 -37.5156c-12.5029 -10.5596 -23.6172 -22.5098 -32.5088 -35.5703
-c21.6719 14.7285 46.6787 24.7324 74.1865 28.0674c14.7246 1.94434 28.0625 -8.33594 29.7295 -23.0654c1.94531 -14.7275 -8.33594 -28.0674 -23.0615 -29.7344c-16.1162 -1.94434 -31.1201 -7.50293 -44.1787 -15.2832c26.1143 5.71289 58.7119 3.1377 88.0791 -11.1152
-c13.3359 -6.66895 18.8936 -22.5088 12.2246 -35.8486c-6.38965 -13.0596 -22.5039 -18.6162 -35.5645 -12.2256zM263.318 189.489c-6.1123 12.5049 -18.3379 20.2861 -32.2314 20.2861h-0.107422c-19.5703 0 -35.46 -15.8896 -35.46 -35.46
-c0 -0.0380859 0.00195312 -0.0732422 0.00292969 -0.110352c0 -21.4277 17.8076 -35.5703 35.5645 -35.5703c13.8936 0 26.1191 7.78125 32.2314 20.2861c4.44531 9.44922 13.6133 15.0059 23.3389 15.2842c-9.72559 0.277344 -18.8936 5.83496 -23.3389 15.2842z
-M638.139 226.726c4.16797 -8.61426 1.11133 -18.8965 -6.94531 -23.6201l-58.0713 -33.0693l-41.1221 -74.1963c-6.38965 -57.2451 -34.7314 -109.767 -79.7432 -146.726c-10.9316 -9.1123 -27.7988 -8.14453 -37.5098 3.6123
-c-9.44629 11.3945 -7.78027 28.0674 3.61328 37.5166c12.5029 10.5586 23.6162 22.5088 32.5078 35.5703c-21.6719 -14.7295 -46.6787 -24.7324 -74.1865 -28.0674c-10.0205 -2.50586 -27.5518 5.64258 -29.7295 23.0645c-1.94531 14.7285 8.33594 28.0674 23.0615 29.7344
-c16.1162 1.94629 31.1201 7.50293 44.1787 15.2842c-26.1143 -5.71289 -58.7119 -3.1377 -88.0791 11.1152c-13.3359 6.66895 -18.8936 22.5088 -12.2246 35.8477c6.38965 13.0605 22.5049 18.6191 35.5654 12.2266c20.2949 -10.1484 44.1465 -11.1982 64.7393 -3.88965
-c-42.6064 0 -71.208 20.4746 -85.5781 50.5762c-8.57617 17.8984 5.14746 38.0713 23.6172 38.0713c-18.4297 0 -32.2109 20.1357 -23.6172 38.0703c14.0332 29.3965 44.0391 50.8877 81.9658 50.8545l92.8027 -8.61523l66.4062 33.3467
-c9.4082 4.7041 19.8281 0.354492 23.8936 -7.78027zM408.912 245.344c-13.8936 0 -26.1191 -7.78027 -32.2314 -20.2861c-4.44531 -9.44824 -13.6133 -15.0059 -23.3389 -15.2832c9.72559 -0.27832 18.8936 -5.83594 23.3389 -15.2842
-c6.1123 -12.5049 18.3379 -20.2861 32.2314 -20.2861h0.107422c19.5703 0 35.46 15.8887 35.46 35.46c0 0.0371094 -0.00195312 0.0722656 -0.00292969 0.110352c0 21.4287 -17.8076 35.5693 -35.5645 35.5693z" />
-    <glyph glyph-name="deaf" unicode="&#xf2a4;" 
-d="M216 188c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 44.1123 35.8877 80 80 80s80 -35.8877 80 -80c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 13.2344 -10.7666 24 -24 24s-24 -10.7656 -24 -24zM240 364c97.0469 0 176 -78.9531 176 -176
-c0 -95.9863 -71.4053 -109.798 -72 -144.226c-0.124023 -59.4463 -48.5254 -107.774 -108 -107.774c-15.4639 0 -28 12.5361 -28 28s12.5361 28 28 28c28.6729 0 52 23.3271 52 52l0.00292969 0.37793c0.988281 73.3115 71.9971 68.458 71.9971 143.622
-c0 66.168 -53.832 120 -120 120s-120 -53.832 -120 -120c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 97.0469 78.9531 176 176 176zM508.485 416.201c4.68652 -4.68652 4.68652 -12.2842 0 -16.9727l-87.0303 -87.0283
-c-4.68652 -4.68652 -12.2842 -4.68652 -16.9697 0l-28.2852 28.2852c-4.68652 4.68652 -4.68652 12.2842 0 16.9707l87.0283 87.0293c4.6875 4.68555 12.2842 4.68555 16.9717 0zM168.97 133.255l28.2861 -28.2842c4.68652 -4.68652 4.68652 -12.2852 0 -16.9707
-l-148.484 -148.485c-4.6875 -4.68555 -12.2842 -4.68555 -16.9717 0l-28.2852 28.2842c-4.68555 4.6875 -4.68555 12.2852 0 16.9707l148.485 148.485c4.68555 4.68652 12.2842 4.68652 16.9697 0z" />
-    <glyph glyph-name="sign-language" unicode="&#xf2a7;" horiz-adv-x="448" 
-d="M91.4336 -35.9873c-0.306641 16.0186 13.1094 29.1289 29.1309 29.1289h62.293v5.71484h-125.864c-16.0215 0 -29.4375 13.1104 -29.1299 29.1289c0.296875 15.5234 12.9717 28.0146 28.5645 28.0146h126.43v5.71387h-153.722
-c-16.0205 0 -29.4365 13.1113 -29.1299 29.1289c0.296875 15.5225 12.9727 28.0137 28.5664 28.0137h154.286v5.71387h-125.151c-16.0215 0 -29.4375 13.1104 -29.1299 29.1289c0.296875 15.5215 12.9727 28.0127 28.5654 28.0127h168.566l-31.085 22.6064
-c-12.7617 9.28027 -15.583 27.1484 -6.30176 39.9121c9.28027 12.7607 27.1494 15.5811 39.9121 6.30176l123.36 -89.7148c8.57324 -6.23535 14.1201 -16.3271 14.1201 -27.7285v-141.136c0 -15.9102 -10.9463 -29.7305 -26.4326 -33.374l-80.4717 -18.9346
-c-10.1113 -2.37891 -20.5771 -3.64551 -31.4102 -3.64551h-107.4c-15.5928 0.000976562 -28.2686 12.4922 -28.5664 28.0137zM164.683 189.714l-36.3711 46.71c-9.5791 12.3027 -7.51172 29.9795 4.55371 39.75c12.4502 10.083 31.0371 7.55273 40.8799 -5.08789
-l13.0039 -16.7002c-17.1426 -15.6484 -15.4092 -43.0244 3.16992 -56.5361l11.1875 -8.13574h-36.4238zM447.981 191.817c0.0117188 -0.379883 0.0439453 -0.729492 0.0439453 -1.1123c0 -10.9961 -5.1875 -20.7891 -13.2461 -27.0654l-61.0645 -47.5488v16.999
-c0 13.4834 -6.51074 26.2686 -17.415 34.1982l-123.359 89.7139c-12.6357 9.18945 -29.1934 9.16113 -41.6904 0.904297l-52.0527 66.8486c-9.84375 12.6416 -7.74121 31.2822 5.08594 40.8809c12.4297 9.30273 30.0732 6.97559 39.6523 -5.32812l77.6758 -99.7539
-l4.50879 3.51172l-94.4434 121.287c-9.84277 12.6416 -7.74121 31.2822 5.08594 40.8818c12.4307 9.30176 30.0732 6.97461 39.6533 -5.32812l94.79 -121.734l4.50879 3.51074l-76.8887 98.7451c-9.84277 12.6416 -7.74121 31.2822 5.08594 40.8809
-c12.4297 9.30273 30.0732 6.97559 39.6533 -5.32715l103.562 -133.001l-1.26172 38.4141c-0.518555 15.7715 11.8457 28.9756 27.6191 29.4932c15.7705 0.517578 28.9746 -11.8477 29.4922 -27.6191z" />
-    <glyph glyph-name="low-vision" unicode="&#xf2a8;" horiz-adv-x="576" 
-d="M569.344 216.369c4.20996 -7.13086 6.62598 -15.5469 6.62598 -24.4199c0 -8.87402 -2.41699 -17.1875 -6.62695 -24.3193c-31.9746 -54.2607 -79.6484 -98.3232 -136.81 -126.301l0.00683594 -0.00878906l43.1201 -58.377
-c7.60156 -10.8594 4.95996 -25.8252 -5.90039 -33.4268l-13.1133 -9.17773c-10.8594 -7.59863 -25.8223 -4.95801 -33.4238 5.90039l-251.836 356.544c-13.5234 -6.16211 -26.5166 -13.3994 -38.7764 -21.5635l189.979 -271.399
-c-11.4863 -1.21191 -22.4707 -1.83301 -34.2754 -1.83301c-15.1465 0 -30.0566 1.02344 -44.6641 3.00293l-40.6309 58.04h-0.00976562l-119.399 170.58c-10.457 -11.1943 -19.8271 -23.0791 -28.2939 -35.9121l124.19 -177.417
-c-73.1172 25.4863 -134.358 76.0166 -172.858 141.349c-8.96484 15.2109 -8.76562 33.8643 0 48.7393c0.0107422 0.0166016 0.0234375 0.0332031 0.0332031 0.0498047c33.5459 56.8984 82.7676 99.8506 136.79 126.242l-43.1309 58.3945
-c-7.60156 10.8604 -4.95996 25.8252 5.90039 33.4268l13.1143 9.17773c10.8584 7.59961 25.8213 4.95801 33.4229 -5.90039l52.7705 -72.1689c26.3496 6.79004 53.9834 10.4092 82.4512 10.4092c119.81 0 224.96 -63.9492 281.344 -159.631zM390.026 102.06
-c21.1406 23.9658 33.9736 55.4365 33.9736 89.9404c0 75.1738 -60.8379 136 -136 136c-17.5117 0 -34.2422 -3.30566 -49.6084 -9.32324l19.0684 -27.2363c25.9883 7.96289 54.7598 5.56836 79.5098 -7.68066h-0.0292969c-23.6504 0 -42.8203 -19.1699 -42.8203 -42.8193
-c0 -23.4717 18.9922 -42.8203 42.8203 -42.8203c23.6494 0 42.8193 19.1699 42.8193 42.8203v0.0292969c18.9111 -35.3271 15.8818 -79.1123 -8.7998 -111.68z" />
-    <glyph glyph-name="handshake" unicode="&#xf2b5;" horiz-adv-x="640" 
-d="M434.7 384c8.5 0 16.7002 -3.40039 22.5996 -9.40039l54.6006 -54.5996v-193.5c-2.40039 2.7002 -5 5.2998 -7.90039 7.7002l-145.6 118.2l26.0996 23.8994c6.5 6 7 16.1006 1 22.6006c-5.90039 6.5 -16.0996 6.89941 -22.5996 1l-79.9004 -73.2002
-c-0.0996094 -0.100586 -0.299805 -0.100586 -0.400391 -0.200195c-16.6992 -14.9004 -43.3994 -11.2002 -56.0996 2.7002c-14.2002 15.5 -14.5 40.3994 2.09961 56c0.100586 0.0996094 0.200195 0.299805 0.300781 0.399414l98.2998 90
-c5.89941 5.40039 13.5996 8.40039 21.5996 8.40039h85.9004zM544 319.8h96v-255.899h-64c-17.7002 0 -32 14.2998 -32 32v223.899zM592 95.9004c8.7998 0 16 7.19922 16 16c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.80078 7.2002 -16 16 -16zM0 64v255.8h96
-v-223.8c0 -17.7002 -14.2998 -32 -32 -32h-64zM48 127.9c-8.7998 0 -16 -7.10059 -16 -16c0 -8.80078 7.2002 -16 16 -16s16 7.19922 16 16c0 8.7998 -7.2002 16 -16 16zM483.9 109.3c13.6992 -11.2002 15.7998 -31.2998 4.59961 -45.0996l-9.5 -11.7002
-c-11.0996 -13.7998 -31.2998 -15.7998 -45 -4.7002l-5.40039 4.40039l-31.3994 -38.6006c-12.9004 -15.8994 -36.4004 -18.3994 -52.2998 -5.39941l-17.9004 15.5l-0.200195 -0.200195c-22.2998 -27.4004 -62.5996 -31.5996 -90 -9.2998l-90.5 81.8994h-18.2998v223.9
-l54.7002 54.5996c6 6 14.0996 9.40039 22.5996 9.40039h83.7998l-81.7998 -74.9004c-29.2002 -26.7998 -31.2998 -72.2998 -4.39941 -101.699c26.5 -28.9004 72 -31.5 101.699 -4.40039l30 27.5z" />
-    <glyph glyph-name="envelope-open" unicode="&#xf2b6;" 
-d="M512 -16c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v263.276c0 15.3379 7.17383 28.9863 18.3867 37.7754c24.9131 19.5293 45.501 35.3652 164.2 121.512c16.8252 12.2666 50.21 41.7832 73.4131 41.4336
-c23.1982 0.353516 56.5957 -29.1719 73.4131 -41.4326c118.687 -86.1377 139.303 -101.995 164.2 -121.513c11.2129 -8.78906 18.3867 -22.4375 18.3867 -37.7754v-263.276zM446.334 180.605c-2.5625 3.72754 -7.7002 4.59473 -11.3389 1.90625
-c-22.8447 -16.873 -55.4619 -40.7051 -105.582 -77.0791c-16.8252 -12.2656 -50.21 -41.7803 -73.4131 -41.4297c-23.2109 -0.34375 -56.5586 29.1436 -73.4131 41.4297c-50.1143 36.3701 -82.7344 60.2041 -105.582 77.0791
-c-3.63867 2.68848 -8.77637 1.82129 -11.3389 -1.90625l-9.07227 -13.1963c-0.884766 -1.28711 -1.40332 -2.8457 -1.40332 -4.52539c0 -2.63867 1.26953 -4.98438 3.24219 -6.44141c22.8877 -16.8994 55.4541 -40.6904 105.304 -76.8682
-c20.2734 -14.7812 56.5234 -47.8135 92.2637 -47.5732c35.7236 -0.242188 71.9609 32.7715 92.2627 47.5732c49.8506 36.1787 82.418 59.9697 105.304 76.8682c1.97266 1.45703 3.25391 3.79883 3.25391 6.4375c0 1.67969 -0.530273 3.24219 -1.41504 4.5293z" />
-    <glyph glyph-name="address-book" unicode="&#xf2b9;" horiz-adv-x="448" 
-d="M436 288h-20v-64h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-20v-64h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-20v-48c0 -26.5 -21.5 -48 -48 -48h-320c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48
-h320c26.5 0 48 -21.5 48 -48v-48h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12zM208 320c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM320 83.2002v19.2002
-c0 31.7998 -30.0996 57.5996 -67.2002 57.5996h-5c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-5c-37.1006 0 -67.2002 -25.7998 -67.2002 -57.5996v-19.2002c0 -10.6006 10 -19.2002 22.4004 -19.2002h179.199
-c12.4004 0 22.4004 8.59961 22.4004 19.2002z" />
-    <glyph glyph-name="address-card" unicode="&#xf2bb;" horiz-adv-x="576" 
-d="M528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480zM176 320c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM288 83.2002v19.2002
-c0 31.7998 -30.0996 57.5996 -67.2002 57.5996h-5c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-5c-37.1006 0 -67.2002 -25.7998 -67.2002 -57.5996v-19.2002c0 -10.6006 10 -19.2002 22.4004 -19.2002h179.199
-c12.4004 0 22.4004 8.59961 22.4004 19.2002zM512 136v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8zM512 200v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8v-16
-c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8zM512 264v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8z" />
-    <glyph glyph-name="user-circle" unicode="&#xf2bd;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 344c-48.5996 0 -88 -39.4004 -88 -88s39.4004 -88 88 -88s88 39.4004 88 88s-39.4004 88 -88 88zM248 0c58.7002 0 111.3 26.5996 146.5 68.2002
-c-18.7998 35.3994 -55.5996 59.7998 -98.5 59.7998c-2.40039 0 -4.7998 -0.400391 -7.09961 -1.09961c-12.9004 -4.2002 -26.6006 -6.90039 -40.9004 -6.90039s-27.9004 2.7002 -40.9004 6.90039c-2.2998 0.699219 -4.69922 1.09961 -7.09961 1.09961
-c-42.9004 0 -79.7002 -24.4004 -98.5 -59.7998c35.2002 -41.6006 87.7998 -68.2002 146.5 -68.2002z" />
-    <glyph glyph-name="id-badge" unicode="&#xf2c1;" horiz-adv-x="384" 
-d="M336 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h288zM144 416c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16h96c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16h-96zM192 288
-c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM304 51.2002v19.2002c0 31.7998 -30.0996 57.5996 -67.2002 57.5996h-5c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-5
-c-37.1006 0 -67.2002 -25.7998 -67.2002 -57.5996v-19.2002c0 -10.6006 10 -19.2002 22.4004 -19.2002h179.199c12.4004 0 22.4004 8.59961 22.4004 19.2002z" />
-    <glyph glyph-name="id-card" unicode="&#xf2c2;" horiz-adv-x="576" 
-d="M528 416c26.5 0 48 -21.5 48 -48v-16h-576v16c0 26.5 21.5 48 48 48h480zM0 16v304h576v-304c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48zM352 248v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-144
-c-4.40039 0 -8 -3.59961 -8 -8zM352 184v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8zM352 120v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8v16
-c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8zM176 256c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM67.0996 51.7998c-3.19922 -9.7998 5.2002 -19.7998 15.6006 -19.7998h186.6
-c10.4004 0 18.7998 9.90039 15.6006 19.7998c-8.40039 25.7002 -32.5 44.2002 -60.9004 44.2002h-8.2002c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-8.2002c-28.4004 0 -52.5 -18.5 -60.9004 -44.2002z" />
-    <glyph glyph-name="thermometer-full" unicode="&#xf2c7;" horiz-adv-x="256" 
-d="M224 352v-203.347c19.9121 -22.5635 32 -52.1943 32 -84.6533c0 -70.6963 -57.3018 -128 -128 -128c-0.298828 0 -0.610352 0.000976562 -0.90918 0.00292969c-70.3018 0.488281 -127.448 58.3613 -127.089 128.664c0.164062 32.1973 12.2227 61.5771 31.998 83.9863
-v203.347c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96zM128 -16c44.1123 0 80 35.8877 80 80c0 34.3379 -19.3701 52.1904 -32 66.502v221.498c0 26.4668 -21.5332 48 -48 48s-48 -21.5332 -48 -48v-221.498c-12.7334 -14.4277 -31.8262 -32.0996 -31.999 -66.0801
-c-0.223633 -43.876 35.5635 -80.1162 79.4229 -80.4199zM192 64c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64c0 23.6846 12.876 44.3486 32 55.417v232.583c0 17.6729 14.3271 32 32 32s32 -14.3271 32 -32v-232.583c19.124 -11.0684 32 -31.7324 32 -55.417z" />
-    <glyph glyph-name="thermometer-three-quarters" unicode="&#xf2c8;" horiz-adv-x="256" 
-d="M192 64c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64c0 23.6846 12.876 44.3486 32 55.417v168.583c0 17.6729 14.3271 32 32 32s32 -14.3271 32 -32v-168.583c19.124 -11.0684 32 -31.7324 32 -55.417zM224 148.653c19.9121 -22.5635 32 -52.1943 32 -84.6533
-c0 -70.6963 -57.3027 -128 -128 -128c-0.298828 0 -0.609375 0.000976562 -0.90918 0.00292969c-70.3018 0.488281 -127.448 58.3613 -127.089 128.664c0.164062 32.1982 12.2227 61.5781 31.998 83.9863v203.347c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96v-203.347z
-M208 64c0 34.3389 -19.3701 52.1904 -32 66.502v221.498c0 26.4668 -21.5332 48 -48 48s-48 -21.5332 -48 -48v-221.498c-12.7324 -14.4277 -31.8252 -32.0996 -31.999 -66.0801c-0.223633 -43.876 35.5635 -80.1162 79.4229 -80.4199l0.576172 -0.00195312
-c44.1123 0 80 35.8877 80 80z" />
-    <glyph glyph-name="thermometer-half" unicode="&#xf2c9;" horiz-adv-x="256" 
-d="M192 64c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64c0 23.6846 12.876 44.3486 32 55.417v104.583c0 17.6729 14.3271 32 32 32s32 -14.3271 32 -32v-104.583c19.124 -11.0684 32 -31.7324 32 -55.417zM224 148.653c19.9121 -22.5635 32 -52.1943 32 -84.6533
-c0 -70.6963 -57.3027 -128 -128 -128c-0.298828 0 -0.609375 0.000976562 -0.90918 0.00292969c-70.3018 0.488281 -127.448 58.3613 -127.089 128.664c0.164062 32.1982 12.2227 61.5781 31.998 83.9863v203.347c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96v-203.347z
-M208 64c0 34.3389 -19.3701 52.1904 -32 66.502v221.498c0 26.4668 -21.5332 48 -48 48s-48 -21.5332 -48 -48v-221.498c-12.7324 -14.4277 -31.8252 -32.0996 -31.999 -66.0801c-0.223633 -43.876 35.5635 -80.1162 79.4229 -80.4199l0.576172 -0.00195312
-c44.1123 0 80 35.8877 80 80z" />
-    <glyph glyph-name="thermometer-quarter" unicode="&#xf2ca;" horiz-adv-x="256" 
-d="M192 64c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64c0 23.6846 12.876 44.3486 32 55.417v40.583c0 17.6729 14.3271 32 32 32s32 -14.3271 32 -32v-40.583c19.124 -11.0684 32 -31.7324 32 -55.417zM224 148.653c19.9121 -22.5635 32 -52.1943 32 -84.6533
-c0 -70.6963 -57.3027 -128 -128 -128c-0.298828 0 -0.609375 0.000976562 -0.90918 0.00292969c-70.3018 0.488281 -127.448 58.3613 -127.089 128.664c0.164062 32.1982 12.2227 61.5781 31.998 83.9863v203.347c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96v-203.347z
-M208 64c0 34.3389 -19.3701 52.1904 -32 66.502v221.498c0 26.4668 -21.5332 48 -48 48s-48 -21.5332 -48 -48v-221.498c-12.7324 -14.4277 -31.8252 -32.0996 -31.999 -66.0801c-0.223633 -43.876 35.5635 -80.1162 79.4229 -80.4199l0.576172 -0.00195312
-c44.1123 0 80 35.8877 80 80z" />
-    <glyph glyph-name="thermometer-empty" unicode="&#xf2cb;" horiz-adv-x="256" 
-d="M192 64c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64s64 -28.6543 64 -64zM224 148.653c19.9121 -22.5635 32 -52.1943 32 -84.6533c0 -70.6963 -57.3027 -128 -128 -128c-0.298828 0 -0.609375 0.000976562 -0.90918 0.00292969
-c-70.3018 0.488281 -127.448 58.3613 -127.089 128.664c0.164062 32.1982 12.2227 61.5781 31.998 83.9863v203.347c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96v-203.347zM208 64c0 34.3389 -19.3701 52.1904 -32 66.502v221.498c0 26.4668 -21.5332 48 -48 48
-s-48 -21.5332 -48 -48v-221.498c-12.7324 -14.4277 -31.8252 -32.0996 -31.999 -66.0801c-0.223633 -43.876 35.5635 -80.1162 79.4229 -80.4199l0.576172 -0.00195312c44.1123 0 80 35.8877 80 80z" />
-    <glyph glyph-name="shower" unicode="&#xf2cc;" 
-d="M304 128c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM336 224c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM368 160c-8.83105 0 -16 7.16895 -16 16s7.16895 16 16 16
-s16 -7.16895 16 -16s-7.16895 -16 -16 -16zM336 128c-8.83105 0 -16 7.16895 -16 16s7.16895 16 16 16s16 -7.16895 16 -16s-7.16895 -16 -16 -16zM304 192c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM432 224
-c-8.83105 0 -16 7.16895 -16 16s7.16895 16 16 16s16 -7.16895 16 -16s-7.16895 -16 -16 -16zM384 208c0 8.83105 7.16895 16 16 16s16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16zM368 256c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16
-s-16 7.16895 -16 16s7.16895 16 16 16zM464 224c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM496 256c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM432 192
-c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM400 160c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM336 96c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16
-s-16 7.16895 -16 16s7.16895 16 16 16zM304 64c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM368 128c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM389.65 346.35
-c2.89648 -2.89551 4.68945 -6.90039 4.68945 -11.3164s-1.79297 -8.41699 -4.68945 -11.3135l-169.381 -169.37c-2.89551 -2.89648 -6.90039 -4.68945 -11.3164 -4.68945s-8.41699 1.79297 -11.3135 4.68945l-11.2998 11.3105
-c-2.89355 2.89551 -4.68457 6.89844 -4.68457 11.3125c0 4.41309 1.79102 8.41113 4.68457 11.3076l5.66016 5.66992c-19.7871 20.0811 -31.9951 47.6602 -32 78.0498c0 19.2402 5.2998 37.0801 13.9297 52.8604l-10 10c-10.5723 10.6055 -25.1416 17.167 -41.2861 17.167
-c-2.58984 0 -5.1416 -0.169922 -7.64355 -0.49707c-30 -3.73047 -51 -31.7803 -51 -61.9307v-305.6c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v303.15c0 67.9395 55.4902 129.35 123.44 128.85
-c33.4453 -0.166992 63.7471 -13.835 85.6592 -35.8496l10 -10c15.8203 8.5498 33.6602 13.8496 52.9004 13.8496c30.3916 -0.000976562 57.9707 -12.21 78.0498 -32l5.66992 5.66016c2.89648 2.89648 6.90137 4.68945 11.3174 4.68945s8.41699 -1.79297 11.3125 -4.68945z
-" />
-    <glyph glyph-name="bath" unicode="&#xf2cd;" 
-d="M32 64v48h448v-48c-0.0576172 -28.2656 -12.3916 -53.6514 -32 -71.0898v-40.9102c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v16h-256v-16c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v40.9102
-c-19.6084 17.4385 -31.9424 42.8242 -32 71.0898zM496 192c8.83105 0 16 -7.16895 16 -16v-16c0 -8.83105 -7.16895 -16 -16 -16h-480c-8.83105 0 -16 7.16895 -16 16v16c0 8.83105 7.16895 16 16 16h16v186.75c0 38.2197 31.0391 69.2656 69.2598 69.2656
-c19.1113 0 36.4248 -7.75879 48.96 -20.2959l19.2607 -19.2695c29.8994 13.1299 59.1094 7.60938 79.7295 -8.62012l0.169922 0.169922c2.89551 2.89355 6.89941 4.68457 11.3125 4.68457s8.41211 -1.79102 11.3076 -4.68457l11.3096 -11.3096
-c2.89746 -2.89648 4.69043 -6.90137 4.69043 -11.3174s-1.79297 -8.41699 -4.69043 -11.3135l-105.369 -105.369c-2.89648 -2.89746 -6.90137 -4.69043 -11.3174 -4.69043s-8.41699 1.79297 -11.3135 4.69043l-11.3096 11.3096
-c-2.88477 2.89453 -4.66992 6.8916 -4.66992 11.2969c0 4.40625 1.78516 8.39844 4.66992 11.293l0.169922 0.169922c-16.2295 20.6201 -21.75 49.8506 -8.62012 79.7305l-19.2695 19.2598c-3.84766 3.84082 -9.16016 6.21289 -15.0205 6.21289
-c-11.7178 0 -21.2344 -9.50098 -21.2598 -21.2129v-186.75h416z" />
-    <glyph glyph-name="podcast" unicode="&#xf2ce;" horiz-adv-x="448" 
-d="M267.429 -40.5635c-5.14258 -19.0098 -24.5703 -23.4365 -43.4287 -23.4365c-18.8574 0 -38.2861 4.42676 -43.4277 23.4365c-7.64551 28.4297 -20.5723 99.665 -20.5723 132.813c0 35.1562 31.1416 43.75 64 43.75s64 -8.59375 64 -43.75
-c0 -32.9492 -12.8711 -104.179 -20.5713 -132.813zM156.867 159.446c2.6748 -2.61914 2.39941 -6.98535 -0.628906 -9.18555c-9.3125 -6.76465 -16.4609 -15.3418 -21.2354 -25.3623c-1.74219 -3.65723 -6.5 -4.6582 -9.45312 -1.8877
-c-28.0176 26.2891 -45.5498 63.6279 -45.5498 104.989c0 80.7852 66.8691 146.247 148.163 143.941c76.1982 -2.16113 137.938 -64.1631 139.793 -140.369c1.04199 -42.7822 -16.6846 -81.5225 -45.5107 -108.565c-2.95215 -2.76855 -7.70801 -1.7627 -9.44922 1.8916
-c-4.77441 10.0195 -11.9219 18.5977 -21.2344 25.3623c-3.02832 2.20117 -3.30273 6.56738 -0.62793 9.1875c17.8018 17.4355 28.8662 41.7246 28.8662 68.5518c0 54.1934 -45.1377 98.042 -99.793 95.9258c-49.7295 -1.9248 -90.0703 -42.1572 -92.124 -91.8809
-c-1.17383 -28.4258 10.0908 -54.291 28.7842 -72.5986zM224 448c123.815 0 224 -100.205 224 -224c0 -90.1865 -52.7734 -165.727 -125.739 -201.407c-4.33203 -2.11914 -9.2666 1.54297 -8.53516 6.31055c2.55566 16.6416 4.625 33.1924 5.62402 47.2295
-c48.4922 31.377 80.6504 85.9355 80.6504 147.867c0 97.2031 -79.207 176.253 -176.468 175.999c-96.2393 -0.250977 -174.938 -78.6621 -175.529 -174.899c-0.376953 -61.3311 30.7871 -115.541 78.1875 -147.347c1.52832 -1.02637 2.53125 -2.67578 2.67773 -4.51172
-c1.06348 -13.3936 3.02344 -28.8271 5.40625 -44.3389c0.731445 -4.7666 -4.20215 -8.42871 -8.53516 -6.31055c-73.1377 35.7607 -125.739 111.416 -125.739 201.408c0 123.815 100.204 224 224 224zM224 288c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64
-s-64 28.6543 -64 64s28.6543 64 64 64z" />
-    <glyph glyph-name="window-maximize" unicode="&#xf2d0;" 
-d="M464 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h416zM448 256v84c0 6.59961 -5.40039 12 -12 12h-360c-6.59961 0 -12 -5.40039 -12 -12v-84h384z" />
-    <glyph glyph-name="window-minimize" unicode="&#xf2d1;" 
-d="M464 96c26.5 0 48 -21.5 48 -48v-32c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v32c0 26.5 21.5 48 48 48h416z" />
-    <glyph glyph-name="window-restore" unicode="&#xf2d2;" 
-d="M512 400v-288c0 -26.5 -21.5 -48 -48 -48h-48v208c0 44.0996 -35.9004 80 -80 80h-208v48c0 26.5 21.5 48 48 48h288c26.5 0 48 -21.5 48 -48zM384 272v-288c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h288
-c26.5 0 48 -21.5 48 -48zM316 244c0 6.59961 -5.40039 12 -12 12h-228c-6.59961 0 -12 -5.40039 -12 -12v-52h252v52z" />
-    <glyph glyph-name="microchip" unicode="&#xf2db;" 
-d="M416 400v-416c0 -26.5098 -21.4902 -48 -48 -48h-224c-26.5098 0 -48 21.4902 -48 48v416c0 26.5098 21.4902 48 48 48h224c26.5098 0 48 -21.4902 48 -48zM512 342v-12c0 -3.31152 -2.68848 -6 -6 -6h-18v-6c0 -3.31152 -2.68848 -6 -6 -6h-42v48h42
-c3.31152 0 6 -2.68848 6 -6v-6h18c3.31152 0 6 -2.68848 6 -6zM512 246v-12c0 -3.31152 -2.68848 -6 -6 -6h-18v-6c0 -3.31152 -2.68848 -6 -6 -6h-42v48h42c3.31152 0 6 -2.68848 6 -6v-6h18c3.31152 0 6 -2.68848 6 -6zM512 150v-12c0 -3.31152 -2.68848 -6 -6 -6h-18v-6
-c0 -3.31152 -2.68848 -6 -6 -6h-42v48h42c3.31152 0 6 -2.68848 6 -6v-6h18c3.31152 0 6 -2.68848 6 -6zM512 54v-12c0 -3.31152 -2.68848 -6 -6 -6h-18v-6c0 -3.31152 -2.68848 -6 -6 -6h-42v48h42c3.31152 0 6 -2.68848 6 -6v-6h18c3.31152 0 6 -2.68848 6 -6zM30 72h42
-v-48h-42c-3.31152 0 -6 2.68848 -6 6v6h-18c-3.31152 0 -6 2.68848 -6 6v12c0 3.31152 2.68848 6 6 6h18v6c0 3.31152 2.68848 6 6 6zM30 168h42v-48h-42c-3.31152 0 -6 2.68848 -6 6v6h-18c-3.31152 0 -6 2.68848 -6 6v12c0 3.31152 2.68848 6 6 6h18v6
-c0 3.31152 2.68848 6 6 6zM30 264h42v-48h-42c-3.31152 0 -6 2.68848 -6 6v6h-18c-3.31152 0 -6 2.68848 -6 6v12c0 3.31152 2.68848 6 6 6h18v6c0 3.31152 2.68848 6 6 6zM30 360h42v-48h-42c-3.31152 0 -6 2.68848 -6 6v6h-18c-3.31152 0 -6 2.68848 -6 6v12
-c0 3.31152 2.68848 6 6 6h18v6c0 3.31152 2.68848 6 6 6z" />
-    <glyph glyph-name="snowflake" unicode="&#xf2dc;" horiz-adv-x="448" 
-d="M440.3 102.8c7.40039 -4.2002 9.90039 -13.7002 5.60059 -21l-15.5 -26.7998c-4.30078 -7.40039 -13.7002 -10 -21.1006 -5.7002l-33.7998 19.5l7 -26c2.2002 -8.2002 -2.7002 -16.7002 -10.9004 -18.8994l-14.8994 -4
-c-8.2002 -2.2002 -16.7002 2.69922 -18.9004 10.8994l-19 70.7998l-62.7998 36.2002v-77.5l53.4004 -53.7002c6.19922 -6.19922 6.19922 -16.3994 0 -22.5996l-11.3008 -11.2998c-6.19922 -6.2002 -16.3994 -6.2002 -22.5996 0l-19.7002 19.7002v-40.4004
-c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v40.2998l-19.7002 -19.7002c-6.19922 -6.19922 -16.3994 -6.19922 -22.5996 0l-11.2998 11.3008c-6.2998 6.19922 -6.2998 16.3994 0 22.5996l53.7002 53.7002v77.5l-62.8008 -36.2002l-19 -70.7998
-c-2.19922 -8.2002 -10.6992 -13.1006 -18.8994 -10.9004l-14.9004 4c-8.2002 2.2002 -13.0996 10.7002 -10.8994 18.9004l7 26l-33.8008 -19.5c-7.39941 -4.2002 -16.7998 -1.7002 -21.0996 5.7002l-15.5 26.7998c-4.2002 7.39941 -1.7002 16.7998 5.7002 21.0996
-l33.7998 19.6006l-26 7c-8.2002 2.19922 -13.0996 10.6992 -10.9004 18.8994l4 14.9004c2.2002 8.2002 10.7002 13.0996 18.9004 10.8994l70.7998 -19l63.7998 36.9004l-63.7998 36.9004l-70.7998 -19c-8.2002 -2.2002 -16.7002 2.69922 -18.9004 10.8994l-4 14.9004
-c-2.19922 8.2998 2.7002 16.7998 11 19l26 7l-33.7998 19.5c-7.39941 4.2998 -10 13.7002 -5.7002 21.0996l15.5 26.7002c4.30078 7.40039 13.7002 10 21.1006 5.7002l33.7998 -19.5l-7 26c-2.2002 8.2002 2.7002 16.7002 10.9004 18.8994l14.8994 4
-c8.2002 2.2002 16.7002 -2.69922 18.9004 -10.8994l19 -70.7998l62.7998 -36.2002v77.5l-53.7002 53.7002c-6.2998 6.19922 -6.2998 16.3994 0 22.5996l11.4004 11.2998c6.2002 6.2002 16.3994 6.2002 22.5996 0l19.7002 -19.7002v40.4004c0 8.7998 7.2002 16 16 16h32
-c8.7998 0 16 -7.2002 16 -16v-40.4004l19.7998 19.7002c6.2002 6.2002 16.4004 6.2002 22.6006 0l11.2998 -11.2998c6.2002 -6.2002 6.2002 -16.4004 0 -22.5996l-53.7002 -53.7002v-77.5l62.7998 36.2002l19 70.7998c2.2002 8.2002 10.7002 13.0996 18.9004 10.8994
-l14.8994 -4c8.2002 -2.19922 13.1006 -10.6992 10.9004 -18.8994l-7 -26l33.7998 19.5c7.40039 4.2002 16.7998 1.7002 21.1006 -5.7002l15.5 -26.7998c4.19922 -7.40039 1.69922 -16.7998 -5.7002 -21.1006l-33.7998 -19.5l26 -7
-c8.19922 -2.19922 13.0996 -10.6992 10.8994 -18.8994l-4 -14.9004c-2.2002 -8.2002 -10.7002 -13.0996 -18.8994 -10.8994l-70.8008 19l-63.7998 -36.9004l63.9004 -37l70.7998 19c8.2002 2.2002 16.7002 -2.7002 18.9004 -10.9004l4 -14.8994
-c2.19922 -8.2002 -2.7002 -16.7002 -10.9004 -18.9004l-26 -7z" />
-    <glyph glyph-name="utensil-spoon" unicode="&#xf2e5;" 
-d="M480.1 416.1c55.1006 -55 34.5 -164.899 -28.5 -227.8c-49.2998 -49.2998 -110 -55.0996 -160.399 -28.7998l-192.4 -214.4c-10.3994 -11.5996 -28.5 -12.0996 -39.5 -1.09961l-51.2998 51.2998c-11.0996 11 -10.5996 29 1 39.5l214.5 192.4
-c-26.2998 50.3994 -20.5 111.1 28.7998 160.399c62.9004 63 172.8 83.6006 227.8 28.5z" />
-    <glyph glyph-name="utensils" unicode="&#xf2e7;" horiz-adv-x="416" 
-d="M207.9 432.8c0.799805 -4.7002 16.0996 -94.5 16.0996 -128.8c0 -52.2998 -27.7998 -89.5996 -68.9004 -104.6l12.9004 -238.101c0.700195 -13.7002 -10.2002 -25.2998 -24 -25.2998h-64c-13.7002 0 -24.7002 11.5 -24 25.2998l12.9004 238.101
-c-41.2002 15 -68.9004 52.3994 -68.9004 104.6c0 34.4004 15.2998 124.1 16.0996 128.8c3.2002 20.2998 45.3008 20.6006 47.9004 -1.09961v-141.2c1.2998 -3.40039 15.0996 -3.2002 16 0c1.40039 25.2998 7.90039 139.2 8 141.8c3.2998 20.7998 44.7002 20.7998 47.9004 0
-c0.199219 -2.7002 6.59961 -116.5 8 -141.8c0.899414 -3.2002 14.7998 -3.40039 16 0v141.2c2.59961 21.5996 44.7998 21.3994 48 1.09961zM327.1 147.1c-156.5 122.4 -17.5996 300.9 64.9004 300.9c13.2998 0 24 -10.7998 24 -24v-464c0 -13.2998 -10.7002 -24 -24 -24h-56
-c-14 0 -25.0996 12 -23.9004 26z" />
-    <glyph glyph-name="undo-alt" unicode="&#xf2ea;" 
-d="M255.545 440c136.809 0.245117 248.456 -111.193 248.455 -248.002c-0.000976562 -136.965 -111.034 -247.998 -248 -247.998c-63.9258 0 -122.202 24.1865 -166.178 63.9082c-5.11328 4.61816 -5.35449 12.5605 -0.482422 17.4326l39.6621 39.6621
-c4.46191 4.46094 11.625 4.71387 16.3682 0.552734c30.6328 -26.8779 69.5029 -41.5557 110.63 -41.5557c93.8164 0 167.236 75.9912 167.994 166.552c0.798828 95.4648 -77.0859 170.24 -169.484 169.442c-42.4287 -0.366211 -82.3662 -16.374 -113.229 -45.2734
-l41.75 -41.75c15.1191 -15.1201 4.41113 -40.9707 -16.9717 -40.9707h-134.059c-13.2549 0 -24 10.7451 -24 24v134.059c0 21.3828 25.8506 32.0908 40.9707 16.9707l35.7139 -35.7139c44.4229 42.4512 104.592 68.5654 170.86 68.6846z" />
-    <glyph glyph-name="trash-alt" unicode="&#xf2ed;" horiz-adv-x="448" 
-d="M32 -16v336h384v-336c0 -26.4922 -21.5078 -48 -48 -48h-288c-26.4922 0 -48 21.5078 -48 48zM304 240v-224c0 -8.83105 7.16895 -16 16 -16s16 7.16895 16 16v224c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16zM208 240v-224c0 -8.83105 7.16895 -16 16 -16
-s16 7.16895 16 16v224c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16zM112 240v-224c0 -8.83105 7.16895 -16 16 -16s16 7.16895 16 16v224c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16zM432 416c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h120l9.40039 18.7002c3.85547 7.88574 11.9434 13.2998 21.3066 13.2998h0.0927734h114.3c0.00585938 0 -0.00195312 0.0234375 0.00390625 0.0234375
-c9.41113 0 17.5645 -5.42871 21.4961 -13.3232l9.40039 -18.7002h120z" />
-    <glyph glyph-name="sync-alt" unicode="&#xf2f1;" 
-d="M370.72 314.72c-31.2617 29.2725 -71.832 45.3184 -114.872 45.2803c-77.458 -0.0683594 -144.328 -53.1777 -162.791 -126.85c-1.34375 -5.36328 -6.12207 -9.15039 -11.6504 -9.15039h-57.3037c-7.49707 0 -13.1934 6.80664 -11.8066 14.1758
-c21.6367 114.9 122.518 201.824 243.704 201.824c66.4482 0 126.791 -26.1357 171.315 -68.6846l35.7148 35.7148c15.1191 15.1191 40.9697 4.41113 40.9697 -16.9717v-134.059c0 -13.2549 -10.7451 -24 -24 -24h-134.059c-21.3828 0 -32.0908 25.8506 -16.9717 40.9707z
-M32 152h134.059c21.3828 0 32.0908 -25.8506 16.9717 -40.9707l-41.75 -41.75c31.2617 -29.2734 71.835 -45.3193 114.876 -45.2803c77.418 0.0703125 144.314 53.1436 162.787 126.849c1.34375 5.36328 6.12207 9.15039 11.6504 9.15039h57.3047
-c7.49805 0 13.1934 -6.80664 11.8066 -14.1758c-21.6377 -114.898 -122.519 -201.822 -243.705 -201.822c-66.4482 0 -126.791 26.1357 -171.315 68.6846l-35.7148 -35.7148c-15.1191 -15.1191 -40.9697 -4.41113 -40.9697 16.9717v134.059c0 13.2549 10.7451 24 24 24z" />
-    <glyph glyph-name="stopwatch" unicode="&#xf2f2;" horiz-adv-x="448" 
-d="M432 144c0 -114.9 -93.0996 -208 -208 -208s-208 93.0996 -208 208c0 104 76.2998 190.2 176 205.5v34.5h-28c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h120c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-28v-34.5
-c37.5 -5.7998 71.7002 -21.5996 99.7002 -44.5996l27.5 27.5c4.7002 4.69922 12.2998 4.69922 17 0l28.2998 -28.3008c4.7002 -4.69922 4.7002 -12.2998 0 -17l-29.4004 -29.3994l-0.599609 -0.600586c21.2002 -32.3994 33.5 -71.2998 33.5 -113.1zM256 108v151.5
-c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-151.5c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12z" />
-    <glyph glyph-name="sign-out-alt" unicode="&#xf2f5;" 
-d="M497 175l-168 -168c-15 -15 -41 -4.5 -41 17v96h-136c-13.2998 0 -24 10.7002 -24 24v96c0 13.2998 10.7002 24 24 24h136v96c0 21.4004 25.9004 32 41 17l168 -168c9.2998 -9.40039 9.2998 -24.5996 0 -34zM192 12c0 -6.59961 -5.40039 -12 -12 -12h-84
-c-53 0 -96 43 -96 96v192c0 53 43 96 96 96h84c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-84c-17.7002 0 -32 -14.2998 -32 -32v-192c0 -17.7002 14.2998 -32 32 -32h84c6.59961 0 12 -5.40039 12 -12v-40z" />
-    <glyph glyph-name="sign-in-alt" unicode="&#xf2f6;" 
-d="M416 0h-84c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h84c17.7002 0 32 14.2998 32 32v192c0 17.7002 -14.2998 32 -32 32h-84c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h84c53 0 96 -43 96 -96v-192c0 -53 -43 -96 -96 -96z
-M369 201c9.2998 -9.40039 9.2998 -24.5996 0 -34l-168 -168c-15 -15 -41 -4.5 -41 17v96h-136c-13.2998 0 -24 10.7002 -24 24v96c0 13.2998 10.7002 24 24 24h136v96c0 21.5 26 32 41 17z" />
-    <glyph glyph-name="redo-alt" unicode="&#xf2f9;" 
-d="M256.455 440c66.2686 -0.119141 126.437 -26.2334 170.859 -68.6846l35.7148 35.7148c15.1201 15.1191 40.9707 4.41113 40.9707 -16.9717v-134.059c0 -13.2549 -10.7451 -24 -24 -24h-134.059c-21.3828 0 -32.0908 25.8506 -16.9717 40.9707l41.75 41.75
-c-30.8633 28.8994 -70.8008 44.9072 -113.229 45.2734c-92.3984 0.797852 -170.283 -73.9775 -169.484 -169.442c0.757812 -90.5605 74.1777 -166.552 167.994 -166.552c41.127 0 79.9971 14.6777 110.629 41.5557c4.74316 4.16113 11.9062 3.9082 16.3682 -0.552734
-l39.6621 -39.6621c4.87207 -4.87207 4.63086 -12.8145 -0.482422 -17.4326c-43.9746 -39.7217 -102.251 -63.9082 -166.177 -63.9082c-136.966 0 -247.999 111.033 -248 247.998c-0.000976562 136.809 111.646 248.247 248.455 248.002z" />
-    <glyph glyph-name="poo" unicode="&#xf2fe;" 
-d="M451.4 78.9004c34.2998 -5.5 60.5996 -35 60.5996 -70.9004c0 -39.7998 -32.2002 -72 -72 -72h-368c-39.7998 0 -72 32.2002 -72 72c0 35.9004 26.2998 65.4004 60.5996 70.9004c-17.2998 13.0996 -28.5996 33.6992 -28.5996 57.0996c0 39.7998 32.2002 72 72 72h14.0996
-c-13.3994 11.7002 -22.0996 28.7998 -22.0996 48c0 35.2998 28.7002 64 64 64h16c44.2002 0 80 35.7998 80 80c0 17.4004 -5.7002 33.4004 -15.0996 46.5c4.89941 0.799805 9.89941 1.5 15.0996 1.5c53 0 96 -43 96 -96c0 -11.2998 -2.2998 -21.9004 -5.90039 -32h5.90039
-c35.2998 0 64 -28.7002 64 -64c0 -19.2002 -8.7002 -36.2998 -22.0996 -48h14.0996c39.7998 0 72 -32.2002 72 -72c0 -23.4004 -11.2998 -44 -28.5996 -57.0996zM192 192c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32z
-M351.5 53c2 5.2998 -2 11 -7.7998 11h-175.4c-5.7998 0 -9.7998 -5.7002 -7.7998 -11c10.5 -27.9004 58.5 -53 95.5 -53s85 25.0996 95.5 53zM320 128c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="images" unicode="&#xf302;" horiz-adv-x="576" 
-d="M480 32v-16c0 -26.5098 -21.4902 -48 -48 -48h-384c-26.5098 0 -48 21.4902 -48 48v256c0 26.5098 21.4902 48 48 48h16v-208c0 -44.1123 35.8877 -80 80 -80h336zM576 112c0 -26.5098 -21.4902 -48 -48 -48h-384c-26.5098 0 -48 21.4902 -48 48v256
-c0 26.5098 21.4902 48 48 48h384c26.5098 0 48 -21.4902 48 -48v-256zM256 320c0 26.5098 -21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48zM160 176v-48h352v112l-87.5137 87.5146c-4.6875 4.68652 -12.2852 4.68652 -16.9717 0
-l-135.515 -135.515l-39.5137 39.5146c-4.6875 4.68652 -12.2852 4.68652 -16.9717 0z" />
-    <glyph glyph-name="pencil-alt" unicode="&#xf303;" 
-d="M497.9 305.9l-46.1006 -46.1006c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-111 111c-4.7002 4.7002 -4.7002 12.2998 0 17l46.1006 46.1006c18.6992 18.6992 49.0996 18.6992 67.8994 0l60.1006 -60.1006c18.7998 -18.7002 18.7998 -49.0996 0 -67.8994zM284.2 348.2
-c4.7002 4.7002 12.2998 4.7002 17.0996 0l111 -111c4.7002 -4.7002 4.7002 -12.2998 0 -17l-262.6 -262.601l-121.5 -21.2998c-16.4004 -2.7998 -30.7002 11.4004 -27.7998 27.7998l21.1992 121.5zM124.1 108.1c5.5 -5.5 14.3008 -5.5 19.8008 0l154 154
-c5.5 5.5 5.5 14.3008 0 19.8008s-14.3008 5.5 -19.8008 0l-154 -154c-5.5 -5.5 -5.5 -14.3008 0 -19.8008zM88 24v48h-36.2998l-11.2998 -64.5l31.0996 -31.0996l64.5 11.2998v36.2998h-48z" />
-    <glyph glyph-name="pen" unicode="&#xf304;" 
-d="M290.74 354.76l128.02 -128.02l-277.99 -277.99l-114.14 -12.5996c-15.2803 -1.69043 -28.1895 11.2295 -26.4902 26.5098l12.7002 114.22zM497.94 373.82c18.75 -18.75 18.75 -49.1504 0 -67.9102l-56.5508 -56.5498l-128.02 128.02l56.5498 56.5498
-c18.75 18.75 49.1602 18.75 67.9102 0z" />
-    <glyph glyph-name="pen-alt" unicode="&#xf305;" 
-d="M497.94 373.83c18.75 -18.7598 18.75 -49.1602 0 -67.9102l-56.5508 -56.5498l-128.02 128.02l56.5498 56.5508c18.75 18.75 49.1602 18.75 67.9102 0zM251.14 394.36l84.8506 -84.8506l82.7695 -82.7695l-196.79 -196.79
-c-51.1611 -51.1592 -119.559 -85.4326 -195.34 -93.7998c-15.2803 -1.69043 -28.1895 11.2295 -26.4902 26.5098l0.0302734 0.229492c8.42188 75.6777 42.6777 143.978 93.7803 195.08l151.56 151.55l-22.6299 22.6201l-101.82 -101.819
-c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-22.6299 22.6299c-6.25 6.24023 -6.25 16.3701 0 22.6201l118.78 118.79c15.6201 15.6201 40.9395 15.6201 56.5596 0z" />
-    <glyph glyph-name="long-arrow-alt-down" unicode="&#xf309;" horiz-adv-x="256" 
-d="M168 102.059h46.0576c21.3828 0 32.0908 -25.8516 16.9717 -40.9707l-86.0596 -86.0586c-9.37207 -9.37305 -24.5674 -9.37305 -33.9404 0l-86.0596 86.0586c-15.1191 15.1201 -4.41113 40.9707 16.9717 40.9707h46.0586v301.941c0 6.62695 5.37305 12 12 12h56
-c6.62695 0 12 -5.37305 12 -12v-301.941z" />
-    <glyph glyph-name="long-arrow-alt-left" unicode="&#xf30a;" horiz-adv-x="448" 
-d="M134.059 152v-46.0576c0 -21.3828 -25.8516 -32.0908 -40.9707 -16.9717l-86.0586 86.0596c-9.37305 9.37207 -9.37305 24.5674 0 33.9404l86.0586 86.0596c15.1201 15.1191 40.9707 4.41113 40.9707 -16.9717v-46.0586h301.941c6.62695 0 12 -5.37305 12 -12v-56
-c0 -6.62695 -5.37305 -12 -12 -12h-301.941z" />
-    <glyph glyph-name="long-arrow-alt-right" unicode="&#xf30b;" horiz-adv-x="448" 
-d="M313.941 232v46.0576c0 21.3828 25.8516 32.0908 40.9707 16.9717l86.0586 -86.0596c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404l-86.0586 -86.0596c-15.1201 -15.1191 -40.9707 -4.41113 -40.9707 16.9717v46.0586h-301.941c-6.62695 0 -12 5.37305 -12 12v56
-c0 6.62695 5.37305 12 12 12h301.941z" />
-    <glyph glyph-name="long-arrow-alt-up" unicode="&#xf30c;" horiz-adv-x="256" 
-d="M88 281.941h-46.0576c-21.3828 0 -32.0908 25.8516 -16.9717 40.9707l86.0596 86.0586c9.37207 9.37305 24.5674 9.37305 33.9404 0l86.0596 -86.0586c15.1191 -15.1201 4.41113 -40.9707 -16.9717 -40.9707h-46.0586v-301.941c0 -6.62695 -5.37305 -12 -12 -12h-56
-c-6.62695 0 -12 5.37305 -12 12v301.941z" />
-    <glyph glyph-name="expand-arrows-alt" unicode="&#xf31e;" horiz-adv-x="448" 
-d="M448 104v-112v-0.0615234c0 -13.2129 -10.7275 -23.9395 -23.9395 -23.9395c-0.0205078 0 -0.0400391 0.000976562 -0.0605469 0.000976562h-112c-21.3896 0 -32.0898 25.9004 -17 41l36.2002 36.2002l-107.2 107.2l-107.23 -107.301l36.2305 -36.0996
-c15.0898 -15.0996 4.38965 -41 -17 -41h-112h-0.0615234c-13.2129 0 -23.9395 10.7275 -23.9395 23.9395c0 0.0205078 0.000976562 0.0400391 0.000976562 0.0605469v112c0 21.4004 25.8896 32.0996 41 17l36.1904 -36.2002l107.27 107.2l-107.28 107.3l-36.1797 -36.2998
-c-15.0996 -15.0996 -41 -4.40039 -41 17v112v0.0615234c0 13.2129 10.7275 23.9395 23.9395 23.9395c0.0205078 0 0.0400391 -0.000976562 0.0605469 -0.000976562h112c21.3896 0 32.0898 -25.9004 17 -41l-36.2002 -36.2002l107.2 -107.2l107.23 107.301l-36.2305 36.0996
-c-15.0898 15.0996 -4.38965 41 17 41h112h0.0615234c13.2129 0 23.9395 -10.7275 23.9395 -23.9395c0 -0.0205078 -0.000976562 -0.0400391 -0.000976562 -0.0605469v-112c0 -21.4004 -25.8896 -32.0996 -41 -17l-36.1904 36.2002l-107.27 -107.2l107.28 -107.3
-l36.1797 36.2002c15.0996 15.1992 41 4.5 41 -16.9004z" />
-    <glyph glyph-name="clipboard" unicode="&#xf328;" horiz-adv-x="384" 
-d="M384 336v-352c0 -26.5098 -21.4902 -48 -48 -48h-288c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h80c0 35.29 28.71 64 64 64s64 -28.71 64 -64h80c26.5098 0 48 -21.4902 48 -48zM192 408c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24
-s24 10.7451 24 24s-10.7451 24 -24 24zM288 294v20c0 3.31152 -2.68848 6 -6 6h-180c-3.31152 0 -6 -2.68848 -6 -6v-20c0 -3.31152 2.68848 -6 6 -6h180c3.31152 0 6 2.68848 6 6z" />
-    <glyph glyph-name="arrows-alt-h" unicode="&#xf337;" 
-d="M377.941 278.059c0 21.3828 25.8516 32.0908 40.9707 16.9707l86.0586 -86.0596c9.37305 -9.37305 9.37305 -24.5674 0 -33.9404l-86.0586 -86.0596c-15.1201 -15.1191 -40.9707 -4.41113 -40.9707 16.9717v46.0586h-243.883v-46.0576
-c0 -21.3828 -25.8516 -32.0908 -40.9707 -16.9717l-86.0586 86.0596c-9.37305 9.37305 -9.37305 24.5674 0 33.9404l86.0586 86.0596c15.1201 15.1191 40.9707 4.41113 40.9707 -16.9717v-46.0586h243.883v46.0586z" />
-    <glyph glyph-name="arrows-alt-v" unicode="&#xf338;" horiz-adv-x="256" 
-d="M214.059 70.0586c21.3828 0 32.0908 -25.8516 16.9707 -40.9707l-86.0596 -86.0586c-9.37305 -9.37305 -24.5674 -9.37305 -33.9404 0l-86.0596 86.0586c-15.1191 15.1201 -4.41113 40.9707 16.9717 40.9707h46.0586v243.883h-46.0576
-c-21.3828 0 -32.0908 25.8516 -16.9717 40.9707l86.0596 86.0586c9.37305 9.37305 24.5674 9.37305 33.9404 0l86.0596 -86.0586c15.1191 -15.1201 4.41113 -40.9707 -16.9717 -40.9707h-46.0586v-243.883h46.0586z" />
-    <glyph glyph-name="arrow-alt-circle-down" unicode="&#xf358;" 
-d="M504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM212 308v-116h-70.9004c-10.6992 0 -16.0996 -13 -8.5 -20.5l114.9 -114.3c4.7002 -4.7002 12.2002 -4.7002 16.9004 0l114.899 114.3c7.60059 7.59961 2.2002 20.5 -8.5 20.5
-h-70.7998v116c0 6.59961 -5.40039 12 -12 12h-64c-6.59961 0 -12 -5.40039 -12 -12z" />
-    <glyph glyph-name="arrow-alt-circle-left" unicode="&#xf359;" 
-d="M256 -56c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248s-111 -248 -248 -248zM372 236h-116v70.9004c0 10.6992 -13 16.0996 -20.5 8.5l-114.3 -114.9c-4.7002 -4.7002 -4.7002 -12.2002 0 -16.9004l114.3 -114.899
-c7.59961 -7.60059 20.5 -2.2002 20.5 8.5v70.7998h116c6.59961 0 12 5.40039 12 12v64c0 6.59961 -5.40039 12 -12 12z" />
-    <glyph glyph-name="arrow-alt-circle-right" unicode="&#xf35a;" 
-d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM140 148h116v-70.9004c0 -10.6992 13 -16.0996 20.5 -8.5l114.3 114.9c4.7002 4.7002 4.7002 12.2002 0 16.9004l-114.3 115c-7.59961 7.59961 -20.5 2.19922 -20.5 -8.5
-v-70.9004h-116c-6.59961 0 -12 -5.40039 -12 -12v-64c0 -6.59961 5.40039 -12 12 -12z" />
-    <glyph glyph-name="arrow-alt-circle-up" unicode="&#xf35b;" 
-d="M8 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM300 76v116h70.9004c10.6992 0 16.0996 13 8.5 20.5l-114.9 114.3c-4.7002 4.7002 -12.2002 4.7002 -16.9004 0l-115 -114.3c-7.59961 -7.59961 -2.19922 -20.5 8.5 -20.5
-h70.9004v-116c0 -6.59961 5.40039 -12 12 -12h64c6.59961 0 12 5.40039 12 12z" />
-    <glyph glyph-name="external-link-alt" unicode="&#xf35d;" 
-d="M432 128c8.83105 0 16 -7.16895 16 -16v-128c0 -26.4922 -21.5078 -48 -48 -48h-352c-26.4922 0 -48 21.5078 -48 48v352c0 26.4922 21.5078 48 48 48h160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-144v-320h320v112
-c0 8.83105 7.16895 16 16 16h32zM488 448c13.2461 0 24 -10.7539 24 -24v-128c0 -21.5 -26 -32 -41 -17l-35.7197 35.6797l-243.61 -243.68c-4.34668 -4.36133 -10.3652 -7.0625 -17.0029 -7.0625s-12.6504 2.70117 -16.9971 7.0625l-22.6699 22.6299
-c-4.36133 4.34668 -7.0625 10.3652 -7.0625 17.0029c0 6.63867 2.70117 12.6504 7.0625 16.9971l243.73 243.64l-35.7305 35.7305c-15.0498 15.0898 -4.37012 41 17 41h128z" />
-    <glyph glyph-name="external-link-square-alt" unicode="&#xf360;" horiz-adv-x="448" 
-d="M448 368v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48zM360 352h-111.971c-21.3135 0 -32.0801 -25.8613 -16.9717 -40.9707l31.9844 -31.9873l-195.527 -195.527
-c-4.68555 -4.68555 -4.68555 -12.2832 0 -16.9707l31.0293 -31.0293c4.6875 -4.68555 12.2852 -4.68555 16.9707 0l195.526 195.526l31.9883 -31.9912c15.0283 -15.0264 40.9707 -4.47461 40.9707 16.9717v111.979c0 13.2549 -10.7451 24 -24 24z" />
-    <glyph glyph-name="exchange-alt" unicode="&#xf362;" 
-d="M0 280v16c0 13.2549 10.7451 24 24 24h360v48c0 21.3672 25.8994 32.042 40.9707 16.9707l80 -80c9.37207 -9.37305 9.37207 -24.5684 0 -33.9404l-80 -80c-15.0146 -15.0127 -40.9707 -4.48633 -40.9707 16.9697v48h-360c-13.2549 0 -24 10.7451 -24 24zM488 128
-c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-360v-48c0 -21.4365 -25.9434 -31.9971 -40.9707 -16.9697l-80 80c-9.37207 9.37207 -9.37207 24.5674 0 33.9404l80 80c15.1084 15.1094 40.9707 4.34375 40.9707 -16.9707v-48h360z" />
-    <glyph glyph-name="cloud-download-alt" unicode="&#xf381;" horiz-adv-x="640" 
-d="M537.6 221.4c58.4004 -11.8008 102.4 -63.5 102.4 -125.4c0 -70.7002 -57.2998 -128 -128 -128h-368c-79.5 0 -144 64.5 -144 144c0 62.7998 40.2002 116.2 96.2002 135.9c-0.100586 2.69922 -0.200195 5.39941 -0.200195 8.09961c0 88.4004 71.5996 160 160 160
-c59.2998 0 111 -32.2002 138.7 -80.2002c15.2002 10.2002 33.5996 16.2002 53.2998 16.2002c53 0 96 -43 96 -96c0 -12.2002 -2.2998 -23.9004 -6.40039 -34.5996zM404.7 132.7c10.0996 10.0996 2.89941 27.2998 -11.2998 27.2998h-65.4004v112c0 8.7998 -7.2002 16 -16 16
-h-48c-8.7998 0 -16 -7.2002 -16 -16v-112h-65.4004c-14.1992 0 -21.3994 -17.2002 -11.2998 -27.2998l105.4 -105.4c6.2002 -6.2002 16.3994 -6.2002 22.5996 0z" />
-    <glyph glyph-name="cloud-upload-alt" unicode="&#xf382;" horiz-adv-x="640" 
-d="M537.6 221.4c58.4004 -11.8008 102.4 -63.5 102.4 -125.4c0 -70.7002 -57.2998 -128 -128 -128h-368c-79.5 0 -144 64.5 -144 144c0 62.7998 40.2002 116.2 96.2002 135.9c-0.100586 2.69922 -0.200195 5.39941 -0.200195 8.09961c0 88.4004 71.5996 160 160 160
-c59.2998 0 111 -32.2002 138.7 -80.2002c15.2002 10.2002 33.5996 16.2002 53.2998 16.2002c53 0 96 -43 96 -96c0 -12.2002 -2.2998 -23.9004 -6.40039 -34.5996zM393.4 160c14.1992 0 21.3994 17.2002 11.2998 27.2998l-105.4 105.4
-c-6.2002 6.2002 -16.3994 6.2002 -22.5996 0l-105.4 -105.4c-10.0996 -10.0996 -3 -27.2998 11.2998 -27.2998h65.4004v-112c0 -8.7998 7.2002 -16 16 -16h48c8.7998 0 16 7.2002 16 16v112h65.4004z" />
-    <glyph glyph-name="gem" unicode="&#xf3a5;" horiz-adv-x="576" 
-d="M485.5 448l90.5 -160h-101.1l-69.2002 160h79.7998zM357.5 448l69.2002 -160h-277.4l69.2002 160h139zM90.5 448h79.7998l-69.2002 -160h-101.1zM0 256h100.7l123 -251.7c1.5 -3.09961 -2.7002 -5.89941 -5 -3.2998zM148.2 256h279.6l-137 -318.2
-c-1 -2.39941 -4.5 -2.39941 -5.5 0zM352.3 4.2998l123 251.7h100.7l-218.7 -254.9c-2.2998 -2.69922 -6.5 0.100586 -5 3.2002z" />
-    <glyph glyph-name="level-down-alt" unicode="&#xf3be;" horiz-adv-x="320" 
-d="M313.553 55.6689l-103.966 -112.003c-9.48535 -10.2139 -25.6758 -10.2295 -35.1738 0l-103.975 112.003c-14.2061 15.2998 -3.37695 40.3311 17.5869 40.3311h63.9746v272h-83.9756c-3.31152 0 -6.31348 1.34277 -8.48535 3.51465l-56 56
-c-7.56055 7.55957 -2.20605 20.4854 8.48535 20.4854h195.976c13.2549 0 24 -10.7451 24 -24v-328h63.9658c20.8779 0 31.8516 -24.9688 17.5869 -40.3311z" />
-    <glyph glyph-name="level-up-alt" unicode="&#xf3bf;" horiz-adv-x="320" 
-d="M313.553 328.331c14.2646 -15.3623 3.29102 -40.3311 -17.5869 -40.3311h-63.9658v-328c0 -13.2549 -10.7451 -24 -24 -24h-195.976c-10.6914 0 -16.0459 12.9258 -8.48535 20.4854l56 56c2.17188 2.17188 5.17383 3.51465 8.48535 3.51465h83.9756v272h-63.9746
-c-20.9639 0 -31.793 25.0312 -17.5869 40.3311l103.975 112.003c9.49805 10.2295 25.6885 10.2139 35.1738 0z" />
-    <glyph glyph-name="lock-open" unicode="&#xf3c1;" horiz-adv-x="576" 
-d="M423.5 448c84 0.299805 152.5 -68 152.5 -152v-80c0 -13.2998 -10.7002 -24 -24 -24h-32c-13.2998 0 -24 10.7002 -24 24v80c0 39.9004 -32.7002 72.4004 -72.7002 72c-39.5996 -0.400391 -71.2998 -33.2998 -71.2998 -72.9004v-71.0996h48c26.5 0 48 -21.5 48 -48v-192
-c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v192c0 26.5 21.5 48 48 48h224v70.5c0 84 67.5 153.2 151.5 153.5z" />
-    <glyph glyph-name="map-marker-alt" unicode="&#xf3c5;" horiz-adv-x="384" 
-d="M172.268 -53.6699c-145.298 210.639 -172.268 232.257 -172.268 309.67c0 106.039 85.9609 192 192 192s192 -85.9609 192 -192c0 -77.4131 -26.9697 -99.0312 -172.268 -309.67c-9.53516 -13.7744 -29.9307 -13.7734 -39.4648 0zM192 176c44.1826 0 80 35.8174 80 80
-s-35.8174 80 -80 80s-80 -35.8174 -80 -80s35.8174 -80 80 -80z" />
-    <glyph glyph-name="microphone-alt" unicode="&#xf3c9;" horiz-adv-x="352" 
-d="M336 256c8.83984 0 16 -7.16016 16 -16v-48c0 -88.9004 -66.29 -162.47 -152 -174.23v-33.7695h56c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-160c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h56v34.1504
-c-88.0303 12.1396 -152 92.0498 -152 181.689v40.1602c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-42.2998c0 -66.8105 48.71 -126.59 115.21 -133.08c76.2998 -7.44043 140.79 52.5801 140.79 127.38v48c0 8.83984 7.16016 16 16 16h16zM176 96
-c-53.0195 0 -96 42.9805 -96 96v160c0 53.0195 42.9805 96 96 96s96 -42.9805 96 -96h-85.3301c-5.88965 0 -10.6699 -3.58008 -10.6699 -8v-16c0 -4.41992 4.78027 -8 10.6699 -8h85.3301v-32h-85.3301c-5.88965 0 -10.6699 -3.58008 -10.6699 -8v-16
-c0 -4.41992 4.78027 -8 10.6699 -8h85.3301v-32h-85.3301c-5.88965 0 -10.6699 -3.58008 -10.6699 -8v-16c0 -4.41992 4.78027 -8 10.6699 -8h85.3301c0 -53.0195 -42.9805 -96 -96 -96z" />
-    <glyph glyph-name="mobile-alt" unicode="&#xf3cd;" horiz-adv-x="320" 
-d="M272 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-224c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h224zM160 -32c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM272 76v312
-c0 6.59961 -5.40039 12 -12 12h-200c-6.59961 0 -12 -5.40039 -12 -12v-312c0 -6.59961 5.40039 -12 12 -12h200c6.59961 0 12 5.40039 12 12z" />
-    <glyph glyph-name="money-bill-alt" unicode="&#xf3d1;" horiz-adv-x="640" 
-d="M352 160c4.41992 0 8 -3.58008 8 -8v-16c0 -4.41992 -3.58008 -8 -8 -8h-64c-4.41992 0 -8 3.58008 -8 8v16c0 4.41992 3.58008 8 8 8h16v55.4404l-0.469727 -0.310547c-1.26855 -0.845703 -2.79395 -1.35156 -4.43164 -1.35156
-c-2.77734 0 -5.22559 1.41895 -6.6582 3.57129l-8.88086 13.3105c-0.845703 1.26758 -1.35156 2.79395 -1.35156 4.43066c0 2.77734 1.41992 5.22656 3.57227 6.65918l15.3301 10.2197c3.93945 2.62988 8.56934 4.03027 13.3096 4.03027h13.5801c4.41992 0 8 -3.58008 8 -8
-v-88h16zM608 384c17.6699 0 32 -14.3301 32 -32v-320c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32v320c0 17.6699 14.3301 32 32 32h576zM48 48h64c0 35.3496 -28.6504 64 -64 64v-64zM48 272c35.3496 0 64 28.6504 64 64h-64v-64zM320 80
-c53 0 96 50.1299 96 112c0 61.8604 -42.9805 112 -96 112s-96 -50.1396 -96 -112c0 -61.8496 42.9805 -112 96 -112zM592 48v64c-35.3496 0 -64 -28.6504 -64 -64h64zM592 272v64h-64c0 -35.3496 28.6504 -64 64 -64z" />
-    <glyph glyph-name="phone-slash" unicode="&#xf3dd;" horiz-adv-x="640" 
-d="M268.2 66.5996c11.5 5.40039 22.7002 11.6006 33.5996 18.1006l80 -61.7998c-76 -54.5 -169 -86.9004 -269.7 -86.9004c-11.2998 0 -20.8994 7.7998 -23.3994 18.5996l-24 104c-2.60059 11.4004 3.2002 22.9004 13.8994 27.5l112 48
-c9.80078 4.2002 21.2002 1.40039 28 -6.89941zM633.8 -10.0996c7 -5.40039 8.2998 -15.5 2.90039 -22.3008l-19.6006 -25.2998c-5.5 -7 -15.5 -8.2002 -22.5 -2.7998l-588.399 454.7c-7 5.39941 -8.2002 15.3994 -2.7998 22.3994l19.5996 25.2002
-c5.5 7 15.5 8.2002 22.5 2.7998l353.9 -273.5c18.0996 22.5 33.7998 46.7002 46 72.8008l-60.6006 49.5996c-8.2998 6.7002 -11.0996 18.2002 -6.89941 28l48 112c4.59961 10.5996 16.1992 16.5 27.5 13.9004l104 -24c10.8994 -2.5 18.5996 -12.2002 18.5996 -23.4004
-c0 -108.9 -38.0996 -208.4 -100.9 -287.5z" />
-    <glyph glyph-name="portrait" unicode="&#xf3e0;" horiz-adv-x="384" 
-d="M336 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h288zM192 320c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM304 83.2002v19.2002
-c0 31.7998 -30.0996 57.5996 -67.2002 57.5996h-5c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-5c-37.1006 0 -67.2002 -25.7998 -67.2002 -57.5996v-19.2002c0 -10.6006 10 -19.2002 22.4004 -19.2002h179.199
-c12.4004 0 22.4004 8.59961 22.4004 19.2002z" />
-    <glyph glyph-name="reply" unicode="&#xf3e5;" 
-d="M8.30859 258.164l176.005 151.985c15.4053 13.3047 39.6865 2.50391 39.6865 -18.1641v-80.0537c160.629 -1.83887 288 -34.0312 288 -186.258c0 -61.4404 -39.5811 -122.309 -83.333 -154.132c-13.6533 -9.93066 -33.1113 2.5332 -28.0771 18.6309
-c45.3438 145.012 -21.5068 183.51 -176.59 185.742v-87.915c0 -20.7002 -24.2998 -31.4531 -39.6865 -18.1641l-176.005 152c-11.0703 9.5625 -11.0859 26.7529 0 36.3281z" />
-    <glyph glyph-name="shield-alt" unicode="&#xf3ed;" 
-d="M466.5 364.3c17.7998 -7.39941 29.5 -24.8994 29.5 -44.2998c0 -221.3 -135.9 -344.6 -221.6 -380.3c-11.8008 -4.90039 -25.1006 -4.90039 -36.9004 0c-107 44.5996 -221.5 181.8 -221.5 380.3c0 19.4004 11.7002 36.9004 29.5996 44.2998l192 80
-c5.67578 2.35449 11.96 3.6543 18.4824 3.6543c6.52148 0 12.7432 -1.2998 18.418 -3.6543zM256.1 1.7002c93.7002 46.5996 172.5 156.3 175.801 307.7l-175.9 73.2998z" />
-    <glyph glyph-name="tablet-alt" unicode="&#xf3fa;" horiz-adv-x="448" 
-d="M400 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h352zM224 -32c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM400 76v312
-c0 6.59961 -5.40039 12 -12 12h-328c-6.59961 0 -12 -5.40039 -12 -12v-312c0 -6.59961 5.40039 -12 12 -12h328c6.59961 0 12 5.40039 12 12z" />
-    <glyph glyph-name="tachometer-alt" unicode="&#xf3fd;" horiz-adv-x="576" 
-d="M288 416c159.06 0 288 -128.94 288 -288c0 -52.7998 -14.25 -102.26 -39.0596 -144.8c-5.61035 -9.62012 -16.3008 -15.2002 -27.4404 -15.2002h-443c-11.1396 0 -21.8301 5.58008 -27.4404 15.2002c-24.8096 42.54 -39.0596 92 -39.0596 144.8
-c0 159.06 128.94 288 288 288zM288 352c-17.6699 0 -31.9902 -14.3301 -31.9902 -32s14.3301 -32 32 -32c6.66992 0 12.5098 2.51953 17.6406 6.00977l9.21973 27.6699c0.80957 2.44043 2.33984 4.41016 3.4502 6.66992c-3.74023 13.5205 -15.6104 23.6504 -30.3203 23.6504
-zM96 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM144 224c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM390.77 296.41c4.18066 12.5703 -2.59961 26.1699 -15.1699 30.3594
-c-12.6299 4.28027 -26.1895 -2.60938 -30.3594 -15.1699l-61.3398 -184.01c-33.4004 -2.16016 -59.9004 -29.6494 -59.9004 -63.5898c0 -11.7197 3.37988 -22.5498 8.87988 -32h110.24c5.5 9.4502 8.87988 20.2803 8.87988 32c0 19.46 -8.87012 36.6699 -22.5596 48.4102z
-M405.43 239.21c5.68066 -8.94043 15.1904 -15.21 26.5703 -15.2197c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32c-3.91992 0 -7.58008 -0.94043 -11.0498 -2.23047zM480 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z
-" />
-    <glyph glyph-name="ticket-alt" unicode="&#xf3ff;" horiz-adv-x="576" 
-d="M128 288h320v-192h-320v192zM528 192c0 -26.5098 21.4902 -48 48 -48v-96c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v96c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48v96c0 26.5098 21.4902 48 48 48h480c26.5098 0 48 -21.4902 48 -48
-v-96c-26.5098 0 -48 -21.4902 -48 -48zM480 296c0 13.2549 -10.7451 24 -24 24h-336c-13.2549 0 -24 -10.7451 -24 -24v-208c0 -13.2549 10.7451 -24 24 -24h336c13.2549 0 24 10.7451 24 24v208z" />
-    <glyph glyph-name="user-alt" unicode="&#xf406;" 
-d="M256 160c-79.5 0 -144 64.5 -144 144s64.5 144 144 144s144 -64.5 144 -144s-64.5 -144 -144 -144zM384 128c70.7002 0 128 -57.2998 128 -128v-16c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v16c0 70.7002 57.2998 128 128 128h55.0996
-c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h55.0996z" />
-    <glyph glyph-name="window-close" unicode="&#xf410;" 
-d="M464 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h416zM380.4 125.5l-67.1006 66.5l67.1006 66.5c4.7998 4.7998 4.7998 12.5996 0 17.4004l-40.5 40.5
-c-4.80078 4.7998 -12.6006 4.7998 -17.4004 0l-66.5 -67.1006l-66.5 67.1006c-4.7998 4.7998 -12.5996 4.7998 -17.4004 0l-40.5 -40.5c-4.7998 -4.80078 -4.7998 -12.6006 0 -17.4004l67.1006 -66.5l-67.1006 -66.5c-4.7998 -4.7998 -4.7998 -12.5996 0 -17.4004
-l40.5 -40.5c4.80078 -4.7998 12.6006 -4.7998 17.4004 0l66.5 67.1006l66.5 -67.1006c4.7998 -4.7998 12.5996 -4.7998 17.4004 0l40.5 40.5c4.7998 4.80078 4.7998 12.6006 0 17.4004z" />
-    <glyph glyph-name="compress-alt" unicode="&#xf422;" horiz-adv-x="448" 
-d="M4.68555 20.6855l99.3145 99.3145l-32.9219 31.0293c-15.1201 15.1201 -4.41211 40.9707 16.9697 40.9707h112c13.2549 0 23.9521 -10.7451 23.9521 -24v-112c0 -21.3818 -25.8027 -32.0898 -40.9219 -16.9707l-31.0781 32.9707l-99.3145 -99.3145
-c-6.24707 -6.24707 -16.3789 -6.24707 -22.627 0l-25.373 25.373c-6.24707 6.24805 -6.24707 16.3799 0 22.627zM443.314 363.314l-99.3145 -99.3145l32.9219 -31.0293c15.1201 -15.1201 4.41211 -40.9707 -16.9697 -40.9707h-112c-13.2549 0 -23.9521 10.7451 -23.9521 24
-v112c0 21.3818 25.8027 32.0898 40.9219 16.9707l31.0781 -32.9707l99.3145 99.3145c6.24707 6.24707 16.3789 6.24707 22.627 0l25.373 -25.373c6.24707 -6.24805 6.24707 -16.3799 0 -22.627z" />
-    <glyph glyph-name="expand-alt" unicode="&#xf424;" horiz-adv-x="448" 
-d="M212.686 132.686l-92.6855 -92.6855l32.9219 -31.0293c15.1201 -15.1201 4.41211 -40.9707 -16.9697 -40.9707h-112c-13.2549 0 -23.9521 10.7451 -23.9521 24v112c0 21.3818 25.8027 32.0898 40.9219 16.9707l31.0781 -32.9707l92.6855 92.6855
-c6.24805 6.24805 16.3799 6.24805 22.6279 0l25.3721 -25.3721c6.24902 -6.24805 6.24902 -16.3789 0 -22.6279zM235.314 251.314l92.6855 92.6855l-32.9219 31.0293c-15.1201 15.1201 -4.41211 40.9707 16.9697 40.9707h112c13.2549 0 23.9521 -10.7451 23.9521 -24v-112
-c0 -21.3818 -25.8027 -32.0898 -40.9219 -16.9707l-31.0781 32.9707l-92.6855 -92.6855c-6.24805 -6.24805 -16.3799 -6.24805 -22.6279 0l-25.3721 25.3721c-6.24902 6.24805 -6.24902 16.3789 0 22.6279z" />
-    <glyph glyph-name="baseball-ball" unicode="&#xf433;" horiz-adv-x="496" 
-d="M368.5 84.0996c12.9004 -26.6992 30.2998 -50.1992 51.4004 -70.5996c-44.6006 -43 -105.101 -69.5 -171.9 -69.5c-66.9004 0 -127.5 26.5996 -172 69.7002c21.2002 20.3994 38.5996 44 51.5 70.7002l-28.7998 13.8994c-11.1006 -23 -26.1006 -43.2998 -44.2998 -61
-c-34 42.4004 -54.4004 96.1006 -54.4004 154.7s20.4004 112.3 54.4004 154.8c17.7998 -17.2998 32.5 -37.0996 43.5 -59.3994l28.6992 14.0996c-12.7998 25.9004 -30 48.9004 -50.6992 68.7998c44.5996 43.1006 105.199 69.7002 172.1 69.7002
-c67 0 127.6 -26.7002 172.2 -69.7998c-20.7998 -20 -38 -43 -50.7998 -69l28.6992 -14.1006c11 22.4004 25.8008 42.2002 43.6006 59.5c33.7998 -42.3994 54.2002 -96.0996 54.2002 -154.6c0 -58.5996 -20.5 -112.4 -54.5 -154.9c-18.1006 17.7002 -33 38 -44.1006 60.9004z
-M140.2 116.1c17.2998 53.9004 14.2998 108.2 -0.700195 153.801l-30.4004 -10c13.3008 -40.2002 15.5 -87.6006 0.600586 -134zM356.5 269.5c-15 -45.5 -18 -99.7998 -0.700195 -153.8l30.5 9.7998c-14.8994 46.5 -12.5996 93.9004 0.600586 134z" />
-    <glyph glyph-name="basketball-ball" unicode="&#xf434;" horiz-adv-x="496" 
-d="M212.3 437.7c-1.5 -50 -17 -95.4004 -44.7998 -131.2l-77.4004 77.4004c36 29.6992 78.4004 47.5 122.2 53.7998zM248 226l-46.2998 46.2998c37.2002 45.4004 57.5 103.8 58.7002 167.7c51.8994 -2.59961 103.1 -21.0996 145.5 -56.0996zM56.0996 349.9l77.4004 -77.4004
-c-35.7002 -27.7998 -81.2002 -43.2998 -131.2 -44.7998c6.2998 43.7998 24.1006 86.2002 53.7998 122.2zM328.3 145.7l-46.2998 46.2998l157.9 157.9c35 -42.4004 53.5 -93.6006 56.0996 -145.5c-64 -1.30078 -122.4 -21.6006 -167.7 -58.7002zM248 158l46.2998 -46.2998
-c-37.0996 -45.2998 -57.3994 -103.7 -58.7002 -167.7c-51.8994 2.59961 -103.1 21.2002 -145.5 56.0996zM439.9 34.0996l-77.4004 77.4004c35.7002 27.7002 81.0996 43.2002 131.2 44.7998c-6.2998 -43.7998 -24.1006 -86.2002 -53.7998 -122.2zM167.7 238.3
-l46.2998 -46.2998l-157.9 -157.9c-35 42.4004 -53.5 93.6006 -56.0996 145.5c63.9004 1.10059 122.3 21.5 167.7 58.7002zM283.7 -53.7002c1.59961 50 17.0996 95.5 44.7998 131.2l77.4004 -77.4004c-36 -29.6992 -78.4004 -47.5 -122.2 -53.7998z" />
-    <glyph glyph-name="bowling-ball" unicode="&#xf436;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM120 256c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM184 352c0 -17.7002 14.2998 -32 32 -32s32 14.2998 32 32
-s-14.2998 32 -32 32s-32 -14.2998 -32 -32zM232 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="chess" unicode="&#xf439;" 
-d="M74 240l-33.9102 90.3799c-0.655273 1.74707 -1.01953 3.64551 -1.01953 5.62012c0 8.83105 7.16895 16 16 16h0.0195312h56.9102v32h-24c-4.41504 0 -8 3.58496 -8 8v16c0 4.41504 3.58496 8 8 8h24v24c0 4.41504 3.58496 8 8 8h16c4.41504 0 8 -3.58496 8 -8v-24h24
-c4.41504 0 8 -3.58496 8 -8v-16c0 -4.41504 -3.58496 -8 -8 -8h-24v-32h56.8896c0.00683594 0 0.0078125 -0.00683594 0.0146484 -0.00683594c8.83008 0 16 -7.16992 16 -16c0 -1.97461 -0.359375 -3.86621 -1.01465 -5.61328l-33.8896 -90.3799h10
-c8.83105 0 16 -7.16895 16 -16v-16c0 -8.83105 -7.16895 -16 -16 -16h-15.9404c0.142578 -44.1934 5.69141 -86.9287 15.9404 -128h-128c10.249 41.0713 15.7979 83.8066 15.9404 128h-15.9404c-8.83105 0 -16 7.16895 -16 16v16c0 8.83105 7.16895 16 16 16h10z
-M247.16 -11.5801c5.24805 -2.62598 8.83984 -8.0459 8.83984 -14.3096v-22.1104c0 -8.83105 -7.16895 -16 -16 -16h-224c-8.83105 0 -16 7.16895 -16 16v22.1104c0.000976562 6.26562 3.59668 11.6855 8.84961 14.3096l23.1504 11.5801v16c0 8.83105 7.16895 16 16 16h160
-c8.83105 0 16 -7.16895 16 -16v-16zM339.93 146.2l-24.5693 20.7998c-6.94434 5.86133 -11.3438 14.6143 -11.3604 24.4004v58.5996c0 3.31152 2.68848 6 6 6h26.3896c3.31152 0 6 -2.68848 6 -6v-26h24.71v26c0 3.31152 2.68848 6 6 6h53.8105c3.31152 0 6 -2.68848 6 -6
-v-26h24.71v26c0 3.31152 2.68848 6 6 6h26.3799c3.31152 0 6 -2.68848 6 -6v-58.54c0 -0.0107422 0.0185547 -0.0126953 0.0185547 -0.0234375c0 -9.79297 -4.40918 -18.5645 -11.3486 -24.4365l-24.5996 -20.79l3.29004 -82.21h-126.721zM384 144v-32h32v32
-c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16zM503.16 -11.5801c5.24805 -2.62598 8.83984 -8.0459 8.83984 -14.3096v-22.1104c0 -8.83105 -7.16895 -16 -16 -16h-192c-8.83105 0 -16 7.16895 -16 16v22.1104c0.000976562 6.26562 3.59668 11.6855 8.84961 14.3096
-l23.1504 11.5801v16c0 8.83105 7.16895 16 16 16h128c8.83105 0 16 -7.16895 16 -16v-16z" />
-    <glyph glyph-name="chess-bishop" unicode="&#xf43a;" horiz-adv-x="320" 
-d="M8 160.12c0 73.3799 59.8096 181.08 112.6 225.37c-14 3.41992 -24.5996 15.5098 -24.5996 30.5098c0 17.6611 14.3389 32 32 32h64c17.6611 0 32 -14.3389 32 -32c0 -15.0498 -10.5996 -27.0898 -24.5996 -30.5098c24.3994 -20.4902 50.0693 -54.6807 70.8691 -92.5898
-l-107.89 -107.931c-1.44727 -1.44727 -2.3418 -3.44922 -2.3418 -5.65625c0 -2.20605 0.894531 -4.20508 2.3418 -5.65332l11.3105 -11.3105c1.44727 -1.44629 3.44922 -2.3418 5.65527 -2.3418c2.20703 0 4.20605 0.895508 5.6543 2.3418l100.31 100.33
-c15.96 -35.46 26.6904 -71.9492 26.6904 -102.56c0 -51.6006 -22.1396 -73.8301 -56 -84.6006v-43.5195h-192v43.5195c-33.8604 10.7705 -56 32.9609 -56 84.6006zM304 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-288
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h288z" />
-    <glyph glyph-name="chess-board" unicode="&#xf43c;" 
-d="M255.9 447.8v-64h-64v64h64zM0 383.83h64v-64h-64v64zM128 447.8v-64h-64v64h64zM192 191.9h64v-64h-64v64zM0 255.88h64v-64h-64v64zM383.85 447.8v-64h-64v64h64zM511.85 447.8v-64h-64v64h64zM128 191.9v-64h-64v64h64zM511.8 0h-64v64h64v-64zM511.8 128h-64v64h64
-v-64zM383.85 -64v64h64v-64h-64zM511.85 255.88h-64v64h64v-64zM128 -64v64h64v-64h-64zM0 -64v64h64v-64h-64zM255.9 -64v64h64v-64h-64zM0 127.93h64v-64h-64v64zM319.88 319.85h-64v64h64v-64zM255.88 191.85v64h64v-64h-64zM191.88 63.8496h64v-64h-64v64z
-M319.88 127.85v64h64v-64h-64zM319.88 255.8v64h64v-64h-64zM319.88 63.8701h64v-64h-64v64zM64 63.9502h64v-64h-64v64zM192 319.85h-64v64h64v-64zM383.92 63.9502v64h64v-64h-64zM255.92 255.88h-64v64h64v-64zM383.92 383.83h64v-64h-64v64zM255.92 127.93h64v-64h-64
-v64zM191.92 255.88l0.0800781 -64h-64v64h63.9199zM383.84 191.88v64h64v-64h-64zM128 319.85v-64h-64v64h64zM128 127.93h64v-64h-64v64z" />
-    <glyph glyph-name="chess-king" unicode="&#xf43f;" horiz-adv-x="448" 
-d="M400 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-352c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h352zM416 288c17.6494 -0.0136719 31.9688 -14.3477 31.9688 -32.001c0 -3.32129 -0.507812 -6.52539 -1.44922 -9.53906
-l-73.0791 -214.46h-298.881l-73.0791 214.46c-0.941406 3.01367 -1.45508 6.21875 -1.45508 9.54004c0 17.6533 14.3252 31.9863 31.9746 32h160v48h-40c-4.41504 0 -8 3.58496 -8 8v48c0 4.41504 3.58496 8 8 8h40v40c0 4.41504 3.58496 8 8 8h48
-c4.41504 0 8 -3.58496 8 -8v-40h40c4.41504 0 8 -3.58496 8 -8v-48c0 -4.41504 -3.58496 -8 -8 -8h-40v-48h160z" />
-    <glyph glyph-name="chess-knight" unicode="&#xf441;" horiz-adv-x="384" 
-d="M19 175.53c-11.2041 4.98145 -19 16.1963 -19 29.2393v0.0205078v137.21c0 0.0195312 -0.00292969 0.0419922 -0.00292969 0.0625c0 6.60742 2.67578 12.5957 7.00293 16.9375l9 9l-14.21 28.4199c-1.13867 2.27344 -1.79004 4.85547 -1.79004 7.56934v0.0107422
-c0 6.62305 5.37695 12 12 12h147.94c106 0 191.92 -86 191.92 -192v-192h-319.86v14.5195c0 0.0078125 -0.078125 -0.03125 -0.078125 -0.0244141c0 31.3145 18.0312 58.4512 44.2686 71.585l57.2197 28.6504c15.751 7.87695 26.5303 24.1348 26.5303 42.9297v0.00976562
-v50.3301l-22.1201 -11.0801c-6.19238 -3.09668 -10.8369 -8.78906 -12.5508 -15.6504l-9.21973 -30.6494c-2.81152 -9.35645 -9.77051 -16.9043 -18.7598 -20.5l-12.7803 -5.12012c-3.66895 -1.46777 -7.7168 -2.27246 -11.9082 -2.27246
-c-4.61621 0 -9.00586 0.979492 -12.9717 2.74219zM52 320c-11.0381 0 -20 -8.96191 -20 -20s8.96191 -20 20 -20s20 8.96191 20 20s-8.96191 20 -20 20zM368 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-352c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h352z" />
-    <glyph glyph-name="chess-pawn" unicode="&#xf443;" horiz-adv-x="320" 
-d="M105.1 224c-29.3896 18.3799 -49.0996 50.7803 -49.0996 88c0 57.3994 46.6006 104 104 104s104 -46.6006 104 -104c0 -37.2197 -19.71 -69.6201 -49.0996 -88h25.0996c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-16v-5.49023
-c0 -44 4.11035 -86.5996 24 -122.51h-176c19.8604 35.9102 24 78.5098 24 122.51v5.49023h-16c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h25.0996zM304 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-288
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h288z" />
-    <glyph glyph-name="chess-queen" unicode="&#xf445;" 
-d="M256 336c-30.9072 0 -56 25.0928 -56 56s25.0928 56 56 56s56 -25.0928 56 -56s-25.0928 -56 -56 -56zM432 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-352c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h352zM504.87 263.84
-c4.30566 -2.86816 7.11914 -7.77344 7.11914 -13.3311c0 -2.56445 -0.604492 -4.98926 -1.67969 -7.13867l-102.55 -211.37h-303.52l-102.55 211.33c-1.0752 2.14941 -1.70508 4.58008 -1.70508 7.14453c0 5.55762 2.83887 10.457 7.14453 13.3252l28.5703 16
-c7.35938 4.91016 16.8096 2.5498 22.0898 -4.54004c8.6543 -11.709 22.4922 -19.2686 38.1572 -19.2686c1.13672 0 2.26562 0.0400391 3.38281 0.119141c25.6699 1.73926 44.6699 24.7998 44.6699 50.4893c0 7.39648 6.00391 13.4004 13.4004 13.4004h38.7695
-c6.04004 0 11.6104 -3.99023 12.8604 -9.91016c4.57715 -21.7363 23.8789 -38.0752 46.9688 -38.0752s42.3936 16.3389 46.9707 38.0752c1.25 5.91016 6.86035 9.91016 12.8604 9.91016h38.7695c7.39648 0 13.4004 -6.00391 13.4004 -13.4004
-c0 -23.5293 15.7002 -45.46 38.8398 -49.75c2.95898 -0.576172 5.9541 -0.918945 9.08105 -0.918945c15.6064 0 29.4688 7.5293 38.1494 19.1494c5.37988 7.13965 14.8496 9.67969 22.29 4.67969z" />
-    <glyph glyph-name="chess-rook" unicode="&#xf447;" horiz-adv-x="384" 
-d="M368 416c8.83105 0 16 -7.16895 16 -16v-176l-64 -32c0 -47.7197 1.54004 -95 13.21 -160h-282.42c11.6699 65 13.21 111.67 13.21 160l-64 32v176c0 8.83105 7.16895 16 16 16h56.0996c8.83105 0 16 -7.16895 16 -16v-48h47.9004v48c0 8.83105 7.16895 16 16 16h80
-c8.83105 0 16 -7.16895 16 -16v-48h48v48c0 8.83105 7.16895 16 16 16h56zM224 128v64c0 17.6611 -14.3389 32 -32 32s-32 -14.3389 -32 -32v-64h64zM368 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-352c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h352z" />
-    <glyph glyph-name="dumbbell" unicode="&#xf44b;" horiz-adv-x="640" 
-d="M104 352c13.2998 0 24 -10.7002 24 -24v-272c0 -13.2998 -10.7002 -24 -24 -24h-48c-13.2998 0 -24 10.7002 -24 24v104h-24c-4.40039 0 -8 3.59961 -8 8v48c0 4.40039 3.59961 8 8 8h24v104c0 13.2998 10.7002 24 24 24h48zM632 224c4.40039 0 8 -3.59961 8 -8v-48
-c0 -4.40039 -3.59961 -8 -8 -8h-24v-104c0 -13.2998 -10.7002 -24 -24 -24h-48c-13.2998 0 -24 10.7002 -24 24v272c0 13.2998 10.7002 24 24 24h48c13.2998 0 24 -10.7002 24 -24v-104h24zM456 416c13.2998 0 24 -10.7002 24 -24v-400c0 -13.2998 -10.7002 -24 -24 -24h-48
-c-13.2998 0 -24 10.7002 -24 24v168h-128v-168c0 -13.2998 -10.7002 -24 -24 -24h-48c-13.2998 0 -24 10.7002 -24 24v400c0 13.2998 10.7002 24 24 24h48c13.2998 0 24 -10.7002 24 -24v-168h128v168c0 13.2998 10.7002 24 24 24h48z" />
-    <glyph glyph-name="football-ball" unicode="&#xf44e;" horiz-adv-x="496" 
-d="M481.5 387.7c6.2998 -23.9004 13.7002 -61 14.5 -104.5l-156.6 156.8c43.5996 -0.900391 80.8994 -8.5 104.8 -14.9004c18.2002 -4.89941 32.5 -19.1992 37.2998 -37.3994zM14.5 -3.7002c-6.2998 23.9004 -13.7002 61 -14.5 104.5l156.6 -156.8
-c-43.5996 0.900391 -80.8994 8.5 -104.8 14.9004c-18.2002 4.89941 -32.5 19.1992 -37.2998 37.3994zM4.2002 164.6c22.5996 152.7 138.899 252 271.399 271.4l216.301 -216.6c-22.7002 -152.7 -139 -252 -271.5 -271.4zM321.5 288.2l-28.2998 -28.5l-28.2998 28.2998
-c-3.10059 3.09961 -8.2002 3.09961 -11.3008 0l-11.2998 -11.2998c-3.09961 -3.10059 -3.09961 -8.2002 0 -11.2998l28.2998 -28.3008l-22.5996 -22.5996l-28.2998 28.2998c-3.10059 3.10059 -8.2002 3.10059 -11.2998 0l-11.3008 -11.2998
-c-3.09961 -3.09961 -3.09961 -8.2002 0 -11.2998l28.3008 -28.2998l-22.6006 -22.6006l-28.2998 28.2998c-3.09961 3.10059 -8.2002 3.10059 -11.2998 0l-11.2998 -11.2998c-3.10059 -3.09961 -3.10059 -8.2002 0 -11.2998l28.2998 -28.2002l-28.2998 -28.2998
-c-3.10059 -3.09961 -3.10059 -8.2002 0 -11.2998l11.2998 -11.2998c3.09961 -3.10059 8.2002 -3.10059 11.2998 0l28.2998 28.2998l28.2998 -28.2998c3.10059 -3.10059 8.2002 -3.10059 11.3008 0l11.2998 11.2998c3.09961 3.09961 3.09961 8.2002 0 11.2998
-l-28.2998 28.2998l22.5996 22.6006l28.2998 -28.3008c3.10059 -3.09961 8.2002 -3.09961 11.2998 0l11.3008 11.3008c3.09961 3.09961 3.09961 8.19922 0 11.2998l-28.3008 28.2998l22.6006 22.7002l28.2998 -28.2998c3.09961 -3.10059 8.2002 -3.10059 11.2998 0
-l11.2998 11.2998c3.10059 3.09961 3.10059 8.2002 0 11.2998l-28.2998 28.2998l28.2998 28.2998c3.10059 3.10059 3.10059 8.2002 0 11.3008l-11.2998 11.2998c-3.09961 3.09961 -8.2002 3.09961 -11.2998 0z" />
-    <glyph glyph-name="golf-ball" unicode="&#xf450;" horiz-adv-x="416" 
-d="M96 32h224c0 -17.7002 -14.2998 -32 -32 -32h-16c-17.7002 0 -32 -14.2998 -32 -32v-20c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v20c0 17.7002 -14.2998 32 -32 32h-16c-17.7002 0 -32 14.2998 -32 32zM416 240
-c0 -74.2002 -39 -139.2 -97.5 -176h-221c-58.5 36.7998 -97.5 101.8 -97.5 176c0 114.9 93.0996 208 208 208s208 -93.0996 208 -208zM235.9 196.1c18.2998 0 33.0996 14.8008 33.0996 33.1006c0 14.3994 -9.2998 26.2998 -22.0996 30.8994
-c9.59961 -26.7998 -15.6006 -51.2998 -41.9004 -41.8994c4.59961 -12.7998 16.5 -22.1006 30.9004 -22.1006zM285 149.2c0 14.3994 -9.2998 26.2998 -22.0996 30.8994c9.59961 -26.7998 -15.6006 -51.2998 -41.9004 -41.8994
-c4.59961 -12.7998 16.5 -22.1006 30.9004 -22.1006c18.2998 0 33.0996 14.9004 33.0996 33.1006zM349 213.2c0 14.3994 -9.2998 26.2998 -22.0996 30.8994c9.59961 -26.7998 -15.6006 -51.2998 -41.9004 -41.8994c4.59961 -12.7998 16.5 -22.1006 30.9004 -22.1006
-c18.2998 0 33.0996 14.9004 33.0996 33.1006z" />
-    <glyph glyph-name="hockey-puck" unicode="&#xf453;" 
-d="M0 288c0 53 114.6 96 256 96s256 -43 256 -96s-114.6 -96 -256 -96s-256 43 -256 96zM0 205.8c113.5 -82.3994 398.6 -82.2998 512 0v-109.8c0 -53 -114.6 -96 -256 -96s-256 43 -256 96v109.8z" />
-    <glyph glyph-name="quidditch" unicode="&#xf458;" horiz-adv-x="640" 
-d="M256.5 231.2l86.7002 -109.2s-16.6006 -102.4 -76.6006 -150.1c-59.8994 -47.7002 -266.6 -34.1006 -266.6 -34.1006s3.7998 23.1006 11 55.4004l94.5996 112.2c4 4.69922 -0.899414 11.5996 -6.59961 9.5l-60.4004 -22.1006c14.4004 41.7002 32.7002 80 54.6006 97.5
-c59.8994 47.7998 163.3 40.9004 163.3 40.9004zM494.5 96.2002c44 0 79.7998 -35.7002 79.7998 -79.9004c0 -44.0996 -35.7002 -79.8994 -79.7998 -79.8994s-79.7998 35.7998 -79.7998 79.8994c0 44.1006 35.7998 79.9004 79.7998 79.9004zM636.5 417
-c5.5 -6.90039 4.40039 -17 -2.5 -22.5l-232.5 -177.9l34.0996 -42.8994c5.10059 -6.40039 1.7002 -15.9004 -6.2998 -17.6006l-58.7998 -12.3994l-86.7002 109.2l25.2998 54.5996c3.5 7.40039 13.5 8.59961 18.6006 2.2002l34.0996 -43l232.5 177.899
-c6.90039 5.40039 16.9004 4.30078 22.4004 -2.59961z" />
-    <glyph glyph-name="square-full" unicode="&#xf45c;" 
-d="M512 -64h-512v512h512v-512z" />
-    <glyph glyph-name="table-tennis" unicode="&#xf45d;" 
-d="M496.2 151.5c-64.1006 43.2002 -149.5 27.9004 -195.601 -34.2002l-211.5 211.5l56 56.1006c83.9004 84.0996 220 84.0996 303.9 0c63 -63.1006 78.7002 -155.601 47.2002 -233.4zM278.3 71.7998c-3.7002 -12.7002 -6.2998 -25.8994 -6.2002 -39.7002
-c0 -19.5 3.90039 -38.0996 11 -55.0996c-25.6992 2.7998 -50.5996 13.5996 -70.2998 33.2998l-35.7002 35.7002l-89.2998 -103.3c-7.5 -8.60059 -20.7002 -9.10059 -28.7002 -1l-53.3994 53.5c-8.10059 8.09961 -7.60059 21.2998 1 28.7998l103 89.4004l-34.5 34.5996
-c-39 39.0996 -44.6006 98.7998 -17.2998 144.1zM416 128c53 0 96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96s43 96 96 96z" />
-    <glyph glyph-name="volleyball-ball" unicode="&#xf45f;" 
-d="M231.39 204.52c-70.1855 -43.1172 -122.835 -111.301 -146.1 -192.199c-24.0918 22.8398 -43.4365 50.252 -56.9004 81.0996c22.8008 94.4004 89.5 174.4 180.301 216.8c13.8145 -32.4951 21.9121 -68.375 22.6992 -105.7zM194.49 338.92
-c-84 -39.5 -149 -108.4 -182.4 -191.5c-19.7998 109.3 34 212.4 125 262.2c22.8408 -20.3574 42.0732 -43.9951 57.4004 -70.7002zM382.09 173.82c-36.7021 4.46582 -71.8574 16.1094 -102.899 33.1797c-2.36035 86.3154 -37.5332 164.725 -93.5 222.72
-c47.2998 14 84.1992 10.2002 98.8994 8.5c70.2002 -66.8994 106.101 -164.6 97.5 -264.399zM257.39 164.32c49.7002 -26.8008 104 -40.8008 158.601 -40.9004c27.9346 0.173828 54.9697 3.79297 80.8994 10.4004c-7.93359 -32.9053 -22.5615 -63.5879 -42.1992 -89.9004
-c-93 -27.2998 -195.5 -9.5 -277.5 47.7998c21.9443 29.166 48.8877 53.5898 80.1992 72.6006zM159.09 64.6201c53.6006 -37.2998 144 -78.2002 256.9 -62.1006c-43.0684 -36.5068 -99.1953 -58.4424 -160.021 -58.4424c-47.2529 0 -91.4258 13.2939 -128.979 36.3428
-c6.39941 29.7998 16.8994 58.2002 32.0996 84.2002zM339.39 425.22c95.9004 -34.2998 164.601 -125.6 164.601 -233.399c0 -2 -0.299805 -4 -0.299805 -6c-28.0381 -9.1709 -57.998 -14.2012 -89.083 -14.2012c-0.206055 0 -0.412109 0 -0.617188 0.000976562
-c7.89941 92.3994 -19.2998 183.2 -74.6006 253.6z" />
-    <glyph glyph-name="allergies" unicode="&#xf461;" horiz-adv-x="448" 
-d="M416 336c17.5996 0 32 -14.4004 32 -32v-176.1c-0.200195 -14 -1.90039 -28.6006 -5.09961 -42.3008l-26.5 -112.699c-5.10059 -21.7002 -24.4004 -37 -46.7002 -37h-197.601c-15.2998 0 -29.7998 7.39941 -38.7998 19.7998l-125.6 172.7
-c-13 17.8994 -9.10059 42.8994 8.7998 55.8994s42.9004 9.10059 55.9004 -8.7998l23.5996 -32.5v241c0 17.5996 14.4004 32 32 32s32 -14.4004 32 -32v-152c0 -4.40039 3.59961 -8 8 -8h16c4.40039 0 8 3.59961 8 8v184c0 17.5996 14.4004 32 32 32s32 -14.4004 32 -32v-184
-c0 -4.40039 3.59961 -8 8 -8h16c4.40039 0 8 3.59961 8 8v152c0 17.5996 14.4004 32 32 32s32 -14.4004 32 -32v-152c0 -4.40039 3.59961 -8 8 -8h16c4.40039 0 8 3.59961 8 8v72c0 17.5996 14.4004 32 32 32zM176 32c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16
-s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM176 128c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM240 0c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM240 96c8.7998 0 16 7.2002 16 16
-s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM304 64c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM336 0c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM368 128
-c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16z" />
-    <glyph glyph-name="band-aid" unicode="&#xf462;" horiz-adv-x="640" 
-d="M0 288c0 35.2998 28.7002 64 64 64h96v-320h-96c-35.2998 0 -64 28.7002 -64 64v192zM576 352c35.2998 0 64 -28.7002 64 -64v-192c0 -35.2998 -28.7002 -64 -64 -64h-96v320h96zM192 32v320h256v-320h-256zM368 264c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24
-s24 10.7002 24 24s-10.7002 24 -24 24zM368 168c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24s-10.7002 24 -24 24zM272 264c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24s-10.7002 24 -24 24zM272 168
-c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24s-10.7002 24 -24 24z" />
-    <glyph glyph-name="box" unicode="&#xf466;" 
-d="M509.5 263.4c0.799805 -2.40039 0.799805 -4.90039 1.2002 -7.40039h-238.7v192h141.4c20.6992 0 39 -13.2002 45.5 -32.7998zM240 448v-192h-238.7c0.400391 2.5 0.400391 5 1.2002 7.40039l50.5996 151.8c6.5 19.5996 24.8008 32.7998 45.5 32.7998h141.4zM0 224h512
-v-240c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v240z" />
-    <glyph glyph-name="boxes" unicode="&#xf468;" horiz-adv-x="576" 
-d="M560 160c8.7998 0 16 -7.2002 16 -16v-192c0 -8.7998 -7.2002 -16 -16 -16h-224c-8.7998 0 -16 7.2002 -16 16v192c0 8.7998 7.2002 16 16 16h80v-96l32 21.2998l32 -21.2998v96h80zM176 224c-8.7998 0 -16 7.2002 -16 16v192c0 8.7998 7.2002 16 16 16h80v-96
-l32 21.2998l32 -21.2998v96h80c8.7998 0 16 -7.2002 16 -16v-192c0 -8.7998 -7.2002 -16 -16 -16h-224zM240 160c8.7998 0 16 -7.2002 16 -16v-192c0 -8.7998 -7.2002 -16 -16 -16h-224c-8.7998 0 -16 7.2002 -16 16v192c0 8.7998 7.2002 16 16 16h80v-96l32 21.2998
-l32 -21.2998v96h80z" />
-    <glyph glyph-name="briefcase-medical" unicode="&#xf469;" 
-d="M464 320c26.5 0 48 -21.5 48 -48v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h80v48c0 26.5 21.5 48 48 48h160c26.5 0 48 -21.5 48 -48v-48h80zM192 352v-32h128v32h-128zM352 104v48c0 4.40039 -3.59961 8 -8 8h-56v56
-c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8v-48c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v56h56c4.40039 0 8 3.59961 8 8z" />
-    <glyph glyph-name="burn" unicode="&#xf46a;" horiz-adv-x="384" 
-d="M192 448c111.8 -100.9 192 -220.6 192 -300.5c0 -124.5 -79 -211.5 -192 -211.5s-192 87 -192 211.5c0 79.5996 79.7002 199.2 192 300.5zM192 0c56.5 0 96 39 96 94.7998c0 13.5 -4.59961 61.5 -96 161.2c-91.4004 -99.7002 -96 -147.7 -96 -161.2
-c0 -55.7998 39.5 -94.7998 96 -94.7998z" />
-    <glyph glyph-name="capsules" unicode="&#xf46b;" horiz-adv-x="576" 
-d="M555.3 147.9c36.2002 -51.7002 23.7002 -123 -28 -159.2c-20 -14 -42.7998 -20.7002 -65.5 -20.7002c-36.0996 0 -71.5996 17 -93.7998 48.7998l-131.2 187.3c-5.5 7.90039 -9.5 16.4004 -12.7998 25v-149.1c0 -61.9004 -50.0996 -112 -112 -112s-112 50.0996 -112 112
-v224c0 61.9004 50.0996 112 112 112c60 0 108.5 -47.2002 111.4 -106.5c7.7998 21 21.7998 40 41.5 53.7998c20 14 42.8994 20.7002 65.5 20.7002c36 0 71.5 -17 93.7998 -48.7998zM160 192v112c0 26.5 -21.5 48 -48 48s-48 -21.5 -48 -48v-112h96zM354.8 147.1
-l82.5 57.7002l-65.5996 93.7002c-9.40039 13.5 -24.7998 21.5 -41.2998 21.5c-10.3008 0 -20.3008 -3.09961 -28.8008 -9.09961c-11 -7.7002 -18.3994 -19.3008 -20.6992 -32.5c-2.40039 -13.2002 0.599609 -26.6006 8.2998 -37.6006z" />
-    <glyph glyph-name="clipboard-check" unicode="&#xf46c;" horiz-adv-x="384" 
-d="M336 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h80c0 35.2998 28.7002 64 64 64s64 -28.7002 64 -64h80zM192 408c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24
-s-10.7002 24 -24 24zM313.2 176.2c4.7002 4.7002 4.7998 12.2002 0.0996094 17l-28.2002 28.3994c-4.69922 4.7002 -12.2998 4.80078 -17 0.100586l-106 -105.2l-46 46.4004c-4.69922 4.69922 -12.2998 4.7998 -17 0.0996094l-28.3994 -28.2002
-c-4.7002 -4.7002 -4.7998 -12.2998 -0.100586 -17l82.6006 -83.2998c4.7002 -4.7002 12.2998 -4.7998 17 -0.0996094z" />
-    <glyph glyph-name="clipboard-list" unicode="&#xf46d;" horiz-adv-x="384" 
-d="M336 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h80c0 35.2998 28.7002 64 64 64s64 -28.7002 64 -64h80zM96 24c13.2998 0 24 10.7002 24 24s-10.7002 24 -24 24s-24 -10.7002 -24 -24
-s10.7002 -24 24 -24zM96 120c13.2998 0 24 10.7002 24 24s-10.7002 24 -24 24s-24 -10.7002 -24 -24s10.7002 -24 24 -24zM96 216c13.2998 0 24 10.7002 24 24s-10.7002 24 -24 24s-24 -10.7002 -24 -24s10.7002 -24 24 -24zM192 408c-13.2998 0 -24 -10.7002 -24 -24
-s10.7002 -24 24 -24s24 10.7002 24 24s-10.7002 24 -24 24zM320 40v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8zM320 136v16c0 4.40039 -3.59961 8 -8 8h-144
-c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8zM320 232v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8z" />
-    <glyph glyph-name="diagnoses" unicode="&#xf470;" horiz-adv-x="640" 
-d="M496 192c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16s16 -7.2002 16 -16s-7.2002 -16 -16 -16zM320 272c-48.5 0 -88 39.5 -88 88s39.5 88 88 88s88 -39.5 88 -88s-39.5 -88 -88 -88zM59.7998 84l-17.7002 26.7002c-8.7998 13.2998 -7.59961 34.5996 10 45.0996
-c7.40039 4.40039 17.5 10 28.7002 16c31.6006 -27.2998 79 -4.2002 79.2002 36c47.0996 17.7002 103 32.2002 160 32.2002c45.0996 0 89.2998 -9.2002 129.2 -21.7998c-11.7002 -52.9004 59.5996 -81.2002 87.7002 -35.1006
-c21.3994 -10.3994 39.1992 -20.2998 51.0996 -27.3994c17.5996 -10.5 18.7998 -31.9004 10 -45.1006l-17.7998 -26.6992c-10.2002 -15.1006 -29.2998 -17.8008 -42.9004 -9.80078c-16.2002 9.60059 -56.2002 31.8008 -105.3 48.6006v-90.7002h-224v90.7998
-c-49.0996 -16.8994 -89.0996 -39 -105.3 -48.5996c-13.6006 -8 -32.7002 -5.5 -42.9004 9.7998zM368 104c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24s-10.7002 24 -24 24zM272 200c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24
-s24 10.7002 24 24s-10.7002 24 -24 24zM112 192c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16s16 -7.2002 16 -16s-7.2002 -16 -16 -16zM624 0c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-608c-8.7998 0 -16 7.2002 -16 16v32
-c0 8.7998 7.2002 16 16 16h608z" />
-    <glyph glyph-name="dna" unicode="&#xf471;" horiz-adv-x="448" 
-d="M0.0996094 -46.0996c5.2002 42.8994 31.4004 153.899 159.9 238.1c-128.6 84.2002 -154.7 195.2 -159.9 238.1c-1.09961 9.5 6.40039 17.8008 16 17.8008l32.3008 0.0996094c8.09961 0.0996094 14.8994 -5.90039 16 -13.9004
-c0.699219 -5 1.7998 -11.0996 3.39941 -18.0996h312.4c1.59961 7 2.7002 13.2002 3.39941 18.0996c1.10059 8 7.90039 13.9004 16 13.9004l32.4004 -0.0996094c9.59961 0 17 -8.30078 15.9004 -17.8008c-5.80078 -47.8994 -37.4004 -181.199 -209.5 -266.699
-c-31.7002 -15.8008 -57.4004 -33.3008 -78.7002 -51.4004h127.6c-5.59961 4.7998 -10.7998 9.59961 -17 14.2002c21.4004 11.2002 40.9004 23 58.5 35.3994c93.2998 -78.6992 114.3 -169.8 118.9 -207.699c1.2002 -9.5 -6.2998 -17.8008 -15.9004 -17.8008
-l-32.2998 -0.0996094c-8.09961 -0.0996094 -14.9004 5.90039 -16 13.9004c-0.599609 4.89941 -1.90039 11.1992 -3.5 18.0996h-312.3c-1.60059 -7 -2.7002 -13.2002 -3.40039 -18.0996c-1.09961 -8 -7.89941 -13.9004 -16 -13.9004l-32.2998 0.0996094
-c-9.59961 0 -17 8.30078 -15.9004 17.8008zM224 228.4c25.0996 13.5996 46.4004 28.3994 64.2002 43.5996h-128.5c17.8994 -15.2002 39.2002 -29.9004 64.2998 -43.5996zM355.1 352h-262.1c5.7002 -10.4004 12.7002 -21.0996 21 -32h220.1
-c8.2002 10.9004 15.2002 21.5996 21 32zM92.9004 32h261.6c-5.7998 10.4004 -12.9004 21.0996 -21.2002 32h-219.399c-8.2002 -10.9004 -15.2002 -21.5996 -21 -32z" />
-    <glyph glyph-name="dolly" unicode="&#xf472;" horiz-adv-x="576" 
-d="M294.2 170.3l-53 159.4c-2.7998 8.2998 1.7002 17.3994 10.0996 20.2002l61.6006 20.5l33.0996 -99.4004l60.7002 20.0996l-33.1006 99.4004l61.1006 20.4004c8.2998 2.7998 17.3994 -1.7002 20.2002 -10.1006l60.3994 -181.2
-c2.7998 -8.2998 -1.7002 -17.3994 -10.0996 -20.1992l-161.5 -53.8008c-14.7998 11.3008 -31.5 19.7002 -49.5 24.7002zM575.2 121.6c2.7998 -8.39941 -1.7998 -17.3994 -10.1006 -20.1992l-213.3 -71.2002c-1.09961 -57.7998 -53.2002 -103.3 -113.399 -92.6006
-c-39.4004 6.90039 -71.2002 39.8008 -77.3008 79.2002c-5.69922 36.9004 9.90039 70.1006 36 90.5l-92.1992 276.7h-88.9004c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h112c13.7998 0 26 -8.7998 30.4004 -21.9004l99.3994 -298.199
-c29.9004 -0.600586 56.2998 -15 73.5 -37l213.5 71.1992c8.2998 2.80078 17.4004 -1.69922 20.2002 -10.0996zM256 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48z" />
-    <glyph glyph-name="dolly-flatbed" unicode="&#xf474;" horiz-adv-x="640" 
-d="M208 128c-8.7998 0 -16 7.2002 -16 16v256c0 8.7998 7.2002 16 16 16h144v-128l48 32l48 -32v128h144c8.7998 0 16 -7.2002 16 -16v-256c0 -8.7998 -7.2002 -16 -16 -16h-384zM624 64c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-82.7998
-c1.7002 -5 2.89941 -10.4004 2.89941 -16c0 -26.5 -21.5 -48 -48 -48s-48 21.5 -48 48c0 5.59961 1.10059 11 2.90039 16h-197.9c1.7002 -5 2.90039 -10.4004 2.90039 -16c0 -26.5 -21.5 -48 -48 -48s-48 21.5 -48 48c0 5.59961 1.09961 11 2.90039 16h-82.9004
-c-8.7998 0 -16 7.2002 -16 16v368h-48c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h96c8.7998 0 16 -7.2002 16 -16v-368h496z" />
-    <glyph glyph-name="file-medical" unicode="&#xf477;" horiz-adv-x="384" 
-d="M377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7zM224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136z
-M288 152c0 4.40039 -3.59961 8 -8 8h-56v56c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8v-48c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v56h56
-c4.40039 0 8 3.59961 8 8v48z" />
-    <glyph glyph-name="file-medical-alt" unicode="&#xf478;" horiz-adv-x="448" 
-d="M288 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v168h70.0996l34.8008 -69.5c2.89941 -5.90039 11.3994 -5.90039 14.2998 0l56.7998 113.7l22.0996 -44.2002h89.9004c8.7998 0 16 7.2002 16 16
-s-7.2002 16 -16 16h-70.2002l-34.7002 69.5c-2.89941 5.90039 -11.3994 5.90039 -14.2998 0l-56.7998 -113.7l-19.9004 39.7998c-1.39941 2.7002 -4.19922 4.40039 -7.19922 4.40039h-140.9c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h56v232
-c0 13.2998 10.7002 24 24 24h200v-136zM441 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7z" />
-    <glyph glyph-name="first-aid" unicode="&#xf479;" horiz-adv-x="576" 
-d="M0 368c0 26.5 21.5 48 48 48h48v-448h-48c-26.5 0 -48 21.5 -48 48v352zM128 -32v448h320v-448h-320zM192 216v-48c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v56h56c4.40039 0 8 3.59961 8 8v48
-c0 4.40039 -3.59961 8 -8 8h-56v56c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8zM528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-48v448h48z" />
-    <glyph glyph-name="hospital-alt" unicode="&#xf47d;" horiz-adv-x="576" 
-d="M544 352c17.7002 0 32 -14.2998 32 -32v-368c0 -8.7998 -7.2002 -16 -16 -16h-544c-8.7998 0 -16 7.2002 -16 16v368c0 17.7002 14.2998 32 32 32h128v64c0 17.7002 14.2998 32 32 32h192c17.7002 0 32 -14.2998 32 -32v-64h128zM160 12v40c0 6.59961 -5.40039 12 -12 12
-h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM160 140v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM320 12v40
-c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM320 140v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40
-c6.59961 0 12 5.40039 12 12zM336 310v20c0 3.2998 -2.7002 6 -6 6h-26v26c0 3.2998 -2.7002 6 -6 6h-20c-3.2998 0 -6 -2.7002 -6 -6v-26h-26c-3.2998 0 -6 -2.7002 -6 -6v-20c0 -3.2998 2.7002 -6 6 -6h26v-26c0 -3.2998 2.7002 -6 6 -6h20c3.2998 0 6 2.7002 6 6v26h26
-c3.2998 0 6 2.7002 6 6zM480 12v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM480 140v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40
-c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12z" />
-    <glyph glyph-name="hospital-symbol" unicode="&#xf47e;" 
-d="M256 448c141.4 0 256 -114.6 256 -256s-114.6 -256 -256 -256s-256 114.6 -256 256s114.6 256 256 256zM368 72v240c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-88h-96v88c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-240
-c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v88h96v-88c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8z" />
-    <glyph glyph-name="id-card-alt" unicode="&#xf47f;" horiz-adv-x="576" 
-d="M528 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h144v-96h192v96h144zM288 224c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM381.3 0
-c10.4004 0 18.7998 10 15.6006 19.7998c-8.40039 25.7002 -32.5 44.2002 -60.9004 44.2002h-8.2002c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-8.2002c-28.5 0 -52.5996 -18.5996 -60.9004 -44.2002
-c-3.19922 -9.7998 5.2002 -19.7998 15.6006 -19.7998h186.6zM352 416v-96h-128v96c0 17.7002 14.2998 32 32 32h64c17.7002 0 32 -14.2998 32 -32z" />
-    <glyph glyph-name="notes-medical" unicode="&#xf481;" horiz-adv-x="384" 
-d="M336 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h80c0 35.2998 28.7002 64 64 64s64 -28.7002 64 -64h80zM192 408c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24
-s-10.7002 24 -24 24zM288 104v48c0 4.40039 -3.59961 8 -8 8h-56v56c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8v-48c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8
-v56h56c4.40039 0 8 3.59961 8 8zM288 296v16c0 4.40039 -3.59961 8 -8 8h-176c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h176c4.40039 0 8 3.59961 8 8z" />
-    <glyph glyph-name="pallet" unicode="&#xf482;" horiz-adv-x="640" 
-d="M144 192c-8.7998 0 -16 7.2002 -16 16v224c0 8.7998 7.2002 16 16 16h112v-128l64 32l64 -32v128h112c8.7998 0 16 -7.2002 16 -16v-224c0 -8.7998 -7.2002 -16 -16 -16h-352zM624 64h-48v-64h48c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-608
-c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h48v64h-48c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h608c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16zM288 0v64h-160v-64h160zM512 0v64h-160v-64h160z" />
-    <glyph glyph-name="pills" unicode="&#xf484;" horiz-adv-x="576" 
-d="M112 416c61.9004 0 112 -50.0996 112 -112v-224c0 -61.9004 -50.0996 -112 -112 -112s-112 50.0996 -112 112v224c0 61.9004 50.0996 112 112 112zM160 192v112c0 26.5 -21.5 48 -48 48s-48 -21.5 -48 -48v-112h96zM299.7 221.7l210.8 -210.8
-c3.5 -3.5 3.2002 -9.40039 -0.799805 -12.3008c-62.5 -45.2998 -150.101 -40.3994 -206.4 15.9004s-61.2002 143.9 -15.8994 206.4c2.89941 3.89941 8.7998 4.2998 12.2998 0.799805zM529.5 240.7c56.4004 -56.2998 61.2002 -143.8 15.9004 -206.4
-c-2.90039 -3.89941 -8.80078 -4.2998 -12.3008 -0.799805l-210.8 210.8c-3.5 3.5 -3.2002 9.40039 0.799805 12.2998c62.5 45.3008 150.101 40.4004 206.4 -15.8994z" />
-    <glyph glyph-name="prescription-bottle" unicode="&#xf485;" horiz-adv-x="384" 
-d="M32 256v64h320v-352c0 -17.5996 -14.4004 -32 -32 -32h-256c-17.5996 0 -32 14.4004 -32 32v64h120c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-120v64h120c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-120v64h120c4.40039 0 8 3.59961 8 8v16
-c0 4.40039 -3.59961 8 -8 8h-120zM360 448c13.2002 0 24 -10.7998 24 -24v-48c0 -13.2002 -10.7998 -24 -24 -24h-336c-13.2002 0 -24 10.7998 -24 24v48c0 13.2002 10.7998 24 24 24h336z" />
-    <glyph glyph-name="prescription-bottle-alt" unicode="&#xf486;" horiz-adv-x="384" 
-d="M360 448c13.2002 0 24 -10.7998 24 -24v-48c0 -13.2002 -10.7998 -24 -24 -24h-336c-13.2002 0 -24 10.7998 -24 24v48c0 13.2002 10.7998 24 24 24h336zM32 -32v352h320v-352c0 -17.5996 -14.4004 -32 -32 -32h-256c-17.5996 0 -32 14.4004 -32 32zM96 152v-48
-c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v56h56c4.40039 0 8 3.59961 8 8v48c0 4.40039 -3.59961 8 -8 8h-56v56c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8z
-" />
-    <glyph glyph-name="procedures" unicode="&#xf487;" horiz-adv-x="640" 
-d="M528 224c61.9004 0 112 -50.0996 112 -112v-160c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v48h-512v-48c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v352c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-240h192
-v144c0 8.7998 7.2002 16 16 16h256zM136 352c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h140.9c3.09961 0 5.7998 -1.7002 7.19922 -4.40039l19.9004 -39.7998l49.7002 99.4004c5.89941 11.7998 22.7002 11.7998 28.5996 0l27.6006 -55.2002h102.1
-c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16h-121.9l-22.0996 44.2002l-49.7002 -99.4004c-5.89941 -11.7998 -22.7002 -11.7998 -28.5996 0l-27.6006 55.2002h-126.1zM160 96c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64
-s-28.7002 -64 -64 -64z" />
-    <glyph glyph-name="shipping-fast" unicode="&#xf48b;" horiz-adv-x="640" 
-d="M624 96c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-48c0 -53 -43 -96 -96 -96s-96 43 -96 96h-128c0 -53 -43 -96 -96 -96s-96 43 -96 96v128h152c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-208c-4.40039 0 -8 3.59961 -8 8v16
-c0 4.40039 3.59961 8 8 8h240c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-208c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h240c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-272c-4.40039 0 -8 3.59961 -8 8v16
-c0 4.40039 3.59961 8 8 8h56v48c0 26.5 21.5 48 48 48h256c26.5 0 48 -21.5 48 -48v-48h44.0996c12.7002 0 24.9004 -5.09961 33.9004 -14.0996l99.9004 -99.9004c9 -9 14.0996 -21.2002 14.0996 -33.9004v-108.1h16zM160 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48
-s-48 -21.5 -48 -48s21.5 -48 48 -48zM480 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM560 192v12.0996l-99.9004 99.9004h-44.0996v-112h144z" />
-    <glyph glyph-name="smoking" unicode="&#xf48d;" horiz-adv-x="640" 
-d="M632 96c4.40039 0 8 -3.59961 8 -8v-144c0 -4.40039 -3.59961 -8 -8 -8h-48c-4.40039 0 -8 3.59961 -8 8v144c0 4.40039 3.59961 8 8 8h48zM553.3 360.9c54.2998 -36.4004 86.7002 -97.1006 86.7002 -162.601v-30.2998c0 -4.40039 -3.59961 -8 -8 -8h-48
-c-4.40039 0 -8 3.59961 -8 8v30.2998c0 50.2002 -25.2002 96.7002 -67.4004 124c-18.3994 12 -28.5996 33.4004 -28.5996 55.4004v62.2998c0 4.40039 3.59961 8 8 8h48c4.40039 0 8 -3.59961 8 -8v-62.2998c0 -6.7998 3.59961 -13 9.2998 -16.7998zM432 96
-c8.7998 0 16 -7.2002 16 -16v-128c0 -8.7998 -7.2002 -16 -16 -16h-384c-26.5 0 -48 21.5 -48 48v64c0 26.5 21.5 48 48 48h384zM400 -16v64h-176v-64h176zM487.7 306.4c35.2998 -24.7002 56.2998 -64.8008 56.2998 -108.101v-30.2998c0 -4.40039 -3.59961 -8 -8 -8h-48
-c-4.40039 0 -8 3.59961 -8 8v30.2998c0 27.4004 -13.2998 52.9004 -35.7002 68.6006c-35.7002 25.0996 -60.2998 63 -60.2998 106.699v66.4004c0 4.40039 3.59961 8 8 8h48c4.40039 0 8 -3.59961 8 -8v-62.2998c0 -29 15.7998 -54.7002 39.7002 -71.2998zM536 96
-c4.40039 0 8 -3.59961 8 -8v-144c0 -4.40039 -3.59961 -8 -8 -8h-48c-4.40039 0 -8 3.59961 -8 8v144c0 4.40039 3.59961 8 8 8h48z" />
-    <glyph glyph-name="syringe" unicode="&#xf48e;" 
-d="M201.5 273.2l64.9004 65l135.699 -135.7l-181.899 -181.9c-17.5 -17.5996 -41.5 -25.5996 -65.4004 -23l-63.5996 7.10059l-66.2998 -66.2998c-3.10059 -3.10059 -8.2002 -3.10059 -11.3008 0l-11.2998 11.2998c-3.09961 3.09961 -3.09961 8.2002 0 11.2998
-l66.4004 66.4004l-7.10059 63.5996c-2.59961 24.2998 5.7002 48.0996 23 65.4004l26.4004 26.3994l55.7998 -55.8994c3.10059 -3.10059 8.2002 -3.10059 11.2998 0l11.3008 11.2998c3.09961 3.09961 3.09961 8.2002 0 11.2998l-55.8008 55.7998l45.3008 45.2998
-l55.6992 -55.7998c3.10059 -3.09961 8.2002 -3.09961 11.3008 0l11.2998 11.2998c3.09961 3.10059 3.09961 8.2002 0 11.3008zM509.7 366.5c3.09961 -3.2002 3.09961 -8.2002 0 -11.4004l-11.2998 -11.2998c-3.10059 -3.09961 -8.2002 -3.09961 -11.3008 0l-28.2998 28.2998
-l-45.2998 -45.2998l73.5 -73.5c3.09961 -3.09961 3.09961 -8.2002 0 -11.2998l-33.9004 -34c-3.09961 -3.09961 -8.19922 -3.09961 -11.2998 0l-17 17l-135.7 135.9l-17 17c-3.09961 3.09961 -3.09961 8.19922 0 11.2998l33.9004 33.8994
-c3.09961 3.10059 8.2002 3.10059 11.2998 0l17 -17l56.6006 -56.5996l45.2998 45.2998l-28.2998 28.2998c-3.10059 3.10059 -3.10059 8.2002 0 11.3008l11.2998 11.2998c3.09961 3.09961 8.2002 3.09961 11.2998 0z" />
-    <glyph glyph-name="tablets" unicode="&#xf490;" horiz-adv-x="640" 
-d="M160 256c81.0996 0 147.5 -58.5 160 -134.7c0.799805 -4.7998 -3.2998 -9.2998 -8.2998 -9.2998h-303.3c-5 0 -9.10059 4.5 -8.30078 9.2998c12.4004 76.2002 78.8008 134.7 159.9 134.7zM311.6 80c5 0 9.10059 -4.5 8.30078 -9.2998
-c-12.4004 -76.2002 -78.8008 -134.7 -159.9 -134.7s-147.5 58.5 -159.9 134.7c-0.799805 4.7998 3.30078 9.2998 8.30078 9.2998h303.199zM593.4 401.4c56.5 -56.5 61.3994 -144.2 15.8994 -206.9c-2.7998 -4 -8.7998 -4.2998 -12.2998 -0.799805l-211.3 211.399
-c-3.5 3.40039 -3.2002 9.40039 0.799805 12.3008c62.7002 45.3994 150.4 40.5 206.9 -16zM363 382.3l211.3 -211.3c3.5 -3.40039 3.2002 -9.40039 -0.799805 -12.2998c-62.7002 -45.5 -150.4 -40.6006 -206.9 15.8994c-56.3994 56.5 -61.2998 144.2 -15.8994 206.9
-c2.7998 4 8.7998 4.2998 12.2998 0.799805z" />
-    <glyph glyph-name="thermometer" unicode="&#xf491;" 
-d="M476.8 427.6c49.4004 -40.6992 42.1006 -107.3 7.2002 -142.199l-254.2 -253.301h-99.8994l-89 -89c-9.30078 -9.39941 -24.5 -9.39941 -33.9004 0c-9.40039 9.30078 -9.40039 24.5 0 33.9004l89 89v100.9l45.2998 45.6992l50.1006 -50.1992
-c3.09961 -3.10059 8.19922 -3.10059 11.2998 0l11.2998 11.2998c3.09961 3.09961 3.09961 8.2002 0 11.2998l-50.0996 50.2002l45.0996 45.3994l50.2998 -50.1992c3.10059 -3.10059 8.2002 -3.10059 11.2998 0l11.3008 11.2998c3.09961 3.09961 3.09961 8.2002 0 11.2998
-l-50.3008 50.4004l45.1006 45.3994l50.3994 -50.5c3.10059 -3.09961 8.2002 -3.09961 11.3008 0l11.2998 11.2998c3.09961 3.10059 3.09961 8.2002 0 11.3008l-50.5 50.5l45.7002 46c36.3994 36.5 94.3994 40.8994 131.899 10.1992z" />
-    <glyph glyph-name="vial" unicode="&#xf492;" horiz-adv-x="480" 
-d="M477.7 261.9c3.09961 -3.10059 3.09961 -8.2002 0 -11.2002l-34 -33.9004c-3.10059 -3.09961 -8.2002 -3.09961 -11.2998 0l-11.2002 11.1006l-246.3 -245.7c-20.1006 -20.1006 -46.5 -30.1006 -72.9004 -30.1006c-28.9004 -0.0996094 -57.7998 11.9004 -78.4004 35.9004
-c-35.6992 41.5 -29.3994 104.8 9.40039 143.5l242.4 241.9l-11.2002 11.0996c-3.10059 3.09961 -3.10059 8.2002 0 11.2998l34 33.9004c3.09961 3.09961 8.2002 3.09961 11.2998 0zM318 192l69.5 69.4004l-78.5 78.2998l-148 -147.7h157z" />
-    <glyph glyph-name="vials" unicode="&#xf493;" horiz-adv-x="640" 
-d="M72 384c-4.40039 0 -8 3.59961 -8 8v48c0 4.40039 3.59961 8 8 8h208c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-24v-240c0 -44.0996 -35.9004 -80 -80 -80s-80 35.9004 -80 80v240h-24zM144 384v-96h64v96h-64zM624 0c8.7998 0 16 -7.2002 16 -16
-v-32c0 -8.7998 -7.2002 -16 -16 -16h-608c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h608zM360 384c-4.40039 0 -8 3.59961 -8 8v48c0 4.40039 3.59961 8 8 8h208c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-24v-240
-c0 -44.0996 -35.9004 -80 -80 -80s-80 35.9004 -80 80v240h-24zM432 384v-96h64v96h-64z" />
-    <glyph glyph-name="warehouse" unicode="&#xf494;" horiz-adv-x="640" 
-d="M504 96c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-367.7c-4.39941 0 -8 3.59961 -8 8l0.100586 48c0 4.40039 3.59961 8 8 8h367.6zM504 0c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-368c-4.40039 0 -8 3.59961 -8 8
-l0.0996094 48c0 4.40039 3.60059 8 8 8h367.9zM504 192c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-367.5c-4.40039 0 -8 3.59961 -8 8l0.0996094 48c0 4.40039 3.60059 8 8 8h367.4zM610.5 331c17.7998 -7.5 29.5 -24.9004 29.5 -44.2998v-342.7
-c0 -4.40039 -3.59961 -8 -8 -8h-80c-4.40039 0 -8 3.59961 -8 8v248c0 17.5996 -14.5996 32 -32.5996 32h-382.801c-18 0 -32.5996 -14.4004 -32.5996 -32v-248c0 -4.40039 -3.59961 -8 -8 -8h-80c-4.40039 0 -8 3.59961 -8 8v342.7c0 19.3994 11.7002 36.7998 29.5 44.2998
-l272 113.3c5.6748 2.35449 11.959 3.6543 18.4814 3.6543s12.7432 -1.2998 18.4189 -3.6543z" />
-    <glyph glyph-name="weight" unicode="&#xf496;" 
-d="M448 384c35.29 0 64 -28.71 64 -64v-320c0 -35.29 -28.71 -64 -64 -64h-384c-35.29 0 -64 28.71 -64 64v320c0 35.29 28.71 64 64 64h25.9805c-16.4209 -28.2803 -25.9805 -61.0098 -25.9805 -96c0 -105.87 86.1299 -192 192 -192s192 86.1299 192 192
-c0 34.9902 -9.55957 67.7197 -25.9805 96h25.9805zM256 128c-88.3701 0 -160 71.6299 -160 160s71.6299 160 160 160s160 -71.6299 160 -160s-71.6299 -160 -160 -160zM255.7 279.94c-21.9404 -0.170898 -39.7002 -17.96 -39.7002 -39.9404c0 -22.0898 17.9102 -40 40 -40
-s40 17.9102 40 40c0 10.5498 -4.26953 20 -10.9502 27.1602l33.6699 78.5498c3.4707 8.11035 -0.290039 17.5205 -8.41016 21c-8.08984 3.50977 -17.5293 -0.240234 -21.0293 -8.41016z" />
-    <glyph glyph-name="x-ray" unicode="&#xf497;" horiz-adv-x="640" 
-d="M240 64c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16s-16 7.2002 -16 16s7.2002 16 16 16zM400 32c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16s16 -7.2002 16 -16s-7.2002 -16 -16 -16zM624 448c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16
-h-608c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h608zM624 0c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-608c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h48v352h512v-352h48zM480 200v16c0 4.40039 -3.59961 8 -8 8
-h-136v32h104c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-104v24c0 4.40039 -3.59961 8 -8 8h-16c-4.40039 0 -8 -3.59961 -8 -8v-24h-104c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h104v-32h-136c-4.40039 0 -8 -3.59961 -8 -8v-16
-c0 -4.40039 3.59961 -8 8 -8h136v-32h-104c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h104v-32h-64c-26.5 0 -48 -21.5 -48 -48s21.5 -48 48 -48s48 21.5 48 48v16h64v-16c0 -26.5 21.5 -48 48 -48s48 21.5 48 48s-21.5 48 -48 48h-64v32h104
-c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-104v32h136c4.40039 0 8 3.59961 8 8z" />
-    <glyph glyph-name="box-open" unicode="&#xf49e;" horiz-adv-x="640" 
-d="M425.7 192c4.5 0 9 0.599609 13.2998 1.90039l137 39.0996v-178c0 -14.5996 -10 -27.4004 -24.2002 -31l-216.399 -54.0996c-10.1006 -2.5 -20.8008 -2.5 -31 0l-216.2 54.0996c-14.2002 3.5 -24.2002 16.2998 -24.2002 31v178l137 -39.2002
-c4.2998 -1.2998 8.7998 -1.89941 13.2998 -1.89941c16.9004 0 32.7998 9 41.5 23.5l64.2002 106.6l64.2998 -106.6c8.60059 -14.4004 24.5 -23.4004 41.4004 -23.4004zM638.3 304.2c4.5 -9.2002 -0.299805 -20.2002 -10.2002 -23.1006l-197.899 -56.5
-c-7.10059 -2 -14.7002 1 -18.5 7.30078l-91.7002 152.1l250.1 31.9004c6.90039 0.899414 13.6006 -2.7002 16.7002 -8.90039zM53.2002 407c3.09961 6.2002 9.7002 9.7002 16.5996 8.90039l250.2 -31.9004l-91.7998 -152c-3.7998 -6.2998 -11.4004 -9.2998 -18.5 -7.2998
-l-197.9 56.5c-9.7998 2.7998 -14.7002 13.7998 -10.0996 23z" />
-    <glyph glyph-name="comment-dots" unicode="&#xf4ad;" 
-d="M256 416c141.4 0 256 -93.0996 256 -208s-114.6 -208 -256 -208c-38.4004 0 -74.7002 7.09961 -107.4 19.4004c-24.5996 -19.6006 -74.2998 -51.4004 -140.6 -51.4004c-3.2002 0 -6 1.7998 -7.2998 4.7998s-0.700195 6.40039 1.5 8.7002
-c0.5 0.5 42.2998 45.4004 54.7998 95.7998c-35.5996 35.7002 -57 81.1006 -57 130.7c0 114.9 114.6 208 256 208zM128 176c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM256 176c17.7002 0 32 14.2998 32 32
-s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM384 176c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="comment-slash" unicode="&#xf4b3;" horiz-adv-x="640" 
-d="M64 208c0 18.5996 3.2998 36.5 8.90039 53.5996l325.5 -251.6c-24.7002 -6.40039 -51 -10 -78.4004 -10c-38.4004 0 -74.7002 7.09961 -107.4 19.4004c-24.5996 -19.6006 -74.2998 -51.4004 -140.6 -51.4004c-3.2002 0 -6 1.90039 -7.2998 4.7998
-c-1.2998 3 -0.700195 6.40039 1.5 8.7002c0.5 0.599609 42.2002 45.5 54.7998 95.7998c-35.5996 35.7002 -57 81.1006 -57 130.7zM633.8 -10.0996c7 -5.40039 8.2998 -15.5 2.90039 -22.3008l-19.6006 -25.2998c-5.5 -7 -15.5 -8.2002 -22.5 -2.7998l-588.399 454.7
-c-7 5.39941 -8.2002 15.3994 -2.7998 22.3994l19.5996 25.2002c5.5 7 15.5 8.2002 22.5 2.7998l105.1 -81.2998c45.2002 32.6006 104.301 52.7002 169.4 52.7002c141.4 0 256 -93.0996 256 -208c0 -49.2002 -21.4004 -94.0996 -56.5996 -129.7z" />
-    <glyph glyph-name="couch" unicode="&#xf4b8;" horiz-adv-x="640" 
-d="M160 224c0 35.2998 -28.7002 64 -64 64h-32c0 53 43 96 96 96h320c53 0 96 -43 96 -96h-32c-35.2998 0 -64 -28.7002 -64 -64v-64h-320v64zM576 256c35.2998 0 64 -28.7002 64 -64c0 -23.5996 -13 -44 -32 -55.0996v-120.9c0 -8.7998 -7.2002 -16 -16 -16h-64
-c-8.7998 0 -16 7.2002 -16 16v16h-384v-16c0 -8.7998 -7.2002 -16 -16 -16h-64c-8.7998 0 -16 7.2002 -16 16v120.9c-19 11.0996 -32 31.5 -32 55.0996c0 35.2998 28.7002 64 64 64h32c17.7002 0 32 -14.2998 32 -32v-96h384v96c0 17.7002 14.2998 32 32 32h32z" />
-    <glyph glyph-name="donate" unicode="&#xf4b9;" 
-d="M256 32c-114.9 0 -208 93.0996 -208 208s93.0996 208 208 208s208 -93.0996 208 -208s-93.0996 -208 -208 -208zM233.8 350.6c-32.7002 -0.899414 -59 -28.3994 -59.0996 -62.3994c0 -27.7002 18 -52.4004 43.7002 -60.1006l62.2998 -18.6992
-c7.09961 -2.10059 12.0996 -9.40039 12.0996 -17.6006c0 -10.0996 -7.2998 -18.2998 -16.2998 -18.2998h-38.9004c-6.39941 0 -12.3994 1.7002 -17.7998 5.09961c-4.5 2.80078 -10.2002 2.7002 -14 -1l-16.2998 -15.5c-5 -4.7998 -4.40039 -13 1.2002 -17.0996
-c12.5 -9.2998 27.5 -14.5996 43 -15.4004v-17c0 -9.19922 7.39941 -16.5996 16.5996 -16.5996h11.1006c9.19922 0 16.5996 7.40039 16.5996 16.5996v16.8008c32.7002 0.899414 59.0996 28.3994 59.0996 62.3994c0 27.7002 -18 52.4004 -43.6992 60.1006l-62.3008 18.6992
-c-7.09961 2.10059 -12.0996 9.40039 -12.0996 17.6006c0 10.0996 7.2998 18.2998 16.2998 18.2998h38.9004c6.39941 0 12.3994 -1.7002 17.7998 -5.09961c4.5 -2.80078 10.2002 -2.7002 14 1l16.2998 15.5c5 4.7998 4.40039 13 -1.2002 17.0996
-c-12.5 9.2998 -27.5 14.5996 -43 15.4004v17c0 9.19922 -7.39941 16.5996 -16.5996 16.5996h-11.0996c-9.2002 0 -16.6006 -7.40039 -16.6006 -16.5996v-16.8008zM480 96c17.7002 0 32 -14.2998 32 -32v-96c0 -17.7002 -14.2998 -32 -32 -32h-448
-c-17.7002 0 -32 14.2998 -32 32v96c0 17.7002 14.2998 32 32 32h32.4004c19.6992 -26 44.5996 -47.7002 73 -64h-63.8008c-5.2998 0 -9.59961 -3.59961 -9.59961 -8v-16c0 -4.40039 4.2998 -8 9.59961 -8h364.7c5.2998 0 9.60059 3.59961 9.60059 8v16
-c0 4.40039 -4.30078 8 -9.60059 8h-63.7998c28.4004 16.2998 53.4004 38 73 64h32.5z" />
-    <glyph glyph-name="dove" unicode="&#xf4ba;" 
-d="M288 280.8c-50.7998 10.5 -96.5996 36.7998 -130.8 75.1006c11.2002 32.3994 27.7998 61.5996 48.8994 86.5c8.80078 10.5 25.7002 5.19922 27.8008 -8.30078c7 -45.8994 25.8994 -88.8994 54.0996 -125.199v-28.1006zM400 384h112l-32 -64v-160.1
-c0 -88.4004 -71.5996 -159.9 -160 -159.9h-76.9004l-65.1992 -56.0996c-6.10059 -5.30078 -14.1006 -8.2002 -22.1006 -7.90039c-92.7998 3.7998 -135.8 49.4004 -153.2 76.2998c-6 9.2998 -1.19922 21.7002 9.5 24.4004l143.9 36
-c-12.7998 9.59961 -25.7002 20.0996 -38.9004 32.7998c-51 49 -85.0996 115.1 -85.0996 185.9c0 41.3994 9.40039 80.5996 26 115.699c5.7998 12.3008 23.5 11.6006 29 -0.899414c40 -91.2002 128.6 -155.5 233 -161.7v59.4004c0 44.1992 35.7998 80.0996 80 80.0996z
-M400 287.9c8.7998 0 16 7.19922 16 16c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.80078 7.2002 -16 16 -16z" />
-    <glyph glyph-name="hand-holding" unicode="&#xf4bd;" horiz-adv-x="576" 
-d="M565.3 119.9c15.1006 -13.6006 13.9004 -36.8008 -1.2998 -48.9004l-151.2 -121c-11.3994 -9.09961 -25.5 -14 -40 -14h-356.8c-8.7998 0 -16 7.2002 -16 16v96c0 8.7998 7.2002 16 16 16h55.4004l46.5 37.7002c21 17 47.0996 26.2998 74.0996 26.2998h160
-c19.5 0 34.9004 -17.4004 31.5996 -37.4004c-2.59961 -15.6992 -17.3994 -26.5996 -33.2998 -26.5996h-78.2998c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16h118.3c14.6006 0 28.7002 4.90039 40 14l92.4004 73.9004c12.3994 10 30.7998 10.6992 42.5996 0z" />
-    <glyph glyph-name="hand-holding-heart" unicode="&#xf4be;" horiz-adv-x="576" 
-d="M275.3 197.5l-108.899 114.2c-31.6006 33.2002 -29.7002 88.2002 5.59961 118.8c30.7998 26.7002 76.7002 21.9004 104.9 -7.7998l11.0996 -11.6006l11.2002 11.7002c28.2002 29.6006 74.0996 34.4004 104.899 7.7002c35.4004 -30.5996 37.2002 -85.5996 5.60059 -118.8
-l-108.9 -114.2c-7.09961 -7.40039 -18.5 -7.40039 -25.5 0zM565.3 119.9c15.1006 -13.6006 13.9004 -36.8008 -1.2998 -48.9004l-151.2 -121c-11.3994 -9.09961 -25.5 -14 -40 -14h-356.8c-8.7998 0 -16 7.2002 -16 16v96c0 8.7998 7.2002 16 16 16h55.4004l46.5 37.7002
-c21 17 47.0996 26.2998 74.0996 26.2998h160c19.5 0 34.9004 -17.4004 31.5996 -37.4004c-2.59961 -15.6992 -17.3994 -26.5996 -33.2998 -26.5996h-78.2998c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16h118.3c14.6006 0 28.7002 4.90039 40 14l92.4004 73.9004
-c12.3994 10 30.7998 10.6992 42.5996 0z" />
-    <glyph glyph-name="hand-holding-usd" unicode="&#xf4c0;" horiz-adv-x="576" 
-d="M271.06 303.7c-24.0596 6.39941 -43.4297 24.7002 -46.5693 47.7002c-4.33984 32 20.6201 59.3994 53.5098 63v17.5996c0 8.7998 7.82031 16 17.3701 16h17.3701c9.5498 0 17.3701 -7.2002 17.3701 -16v-17.7197c12.457 -1.28516 24.2842 -5.35938 34.5195 -11.5
-c3.32227 -2.00098 5.52734 -5.64746 5.52734 -9.80469c0 -2.18945 -0.617188 -4.23633 -1.6875 -5.97559c-0.592773 -0.978516 -1.31836 -1.8457 -2.16992 -2.59961l-19 -17.5c-4.01953 -3.7002 -10.0693 -4.2002 -15.2998 -2
-c-3.46289 1.4043 -7.2666 2.19336 -11.2305 2.19922h-35.5996c-5.03027 0 -9.12012 -3.7998 -9.12012 -8.39941c0.12207 -3.94727 2.91699 -7.23145 6.62988 -8.10059l54.2705 -14.2998c24.0996 -6.39941 43.4102 -24.7002 46.5596 -47.7002
-c4.33984 -32 -20.5693 -59.3994 -53.5 -63v-17.5996c0 -8.7998 -7.83008 -16 -17.3799 -16h-17.3701c-9.54004 0 -17.3701 7.2002 -17.3701 16v17.7002c-12.4541 1.28516 -24.2773 5.35938 -34.5098 11.5c-3.33008 1.99609 -5.54199 5.64551 -5.54199 9.80762
-c0 2.17188 0.607422 4.20312 1.66211 5.93262c0.617188 1.00098 1.36914 1.88867 2.25 2.65918l19 17.5c4.01953 3.7002 10.0596 4.2002 15.2998 2c3.45117 -1.39941 7.24121 -2.18848 11.1904 -2.19922h35.5996c5.03027 0 9.12012 3.7998 9.12012 8.39941
-c-0.121094 3.94727 -2.91602 7.23145 -6.62988 8.10059zM565.27 119.9c6.5918 -5.86328 10.7656 -14.3916 10.7656 -23.8984c0 -10.1123 -4.70117 -19.1357 -12.0352 -25.002l-151.23 -121c-10.9443 -8.74512 -24.8633 -14 -39.9482 -14h-0.0517578h-356.77
-c-8.83105 0 -16 7.16895 -16 16v96c0 8.83105 7.16895 16 16 16h55.4004l46.5 37.71c20.2197 16.4053 46.0596 26.2822 74.0996 26.29h160c17.6406 0 31.9668 -14.3066 32 -31.9404c0 -0.0410156 0.000976562 -0.0507812 0.000976562 -0.0917969
-c0 -1.83008 -0.158203 -3.62402 -0.460938 -5.36816c-2.54004 -15.6992 -17.3496 -26.5996 -33.25 -26.5996h-78.29c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16h118.27c0.0605469 0 0.161133 0.0234375 0.22168 0.0234375
-c15.0459 0 28.8799 5.23242 39.7783 13.9766l92.4004 73.9004c12.4004 10 30.7998 10.6992 42.5996 0z" />
-    <glyph glyph-name="hand-holding-water" unicode="&#xf4c1;" horiz-adv-x="576" 
-d="M288 192c-53 0 -96 42.0996 -96 94c0 40 57.0996 120.7 83.2002 155.6c6.39941 8.5 19.2002 8.5 25.5996 0c26.1006 -34.8994 83.2002 -115.6 83.2002 -155.6c0 -51.9004 -43 -94 -96 -94zM565.3 119.9c15.1006 -13.6006 13.9004 -36.8008 -1.2998 -48.9004l-151.2 -121
-c-11.3994 -9.09961 -25.5 -14 -40 -14h-356.8c-8.7998 0 -16 7.2002 -16 16v96c0 8.7998 7.2002 16 16 16h55.4004l46.5 37.7002c21 17 47.0996 26.2998 74.0996 26.2998h160c19.5 0 34.9004 -17.4004 31.5996 -37.4004
-c-2.59961 -15.6992 -17.3994 -26.5996 -33.2998 -26.5996h-78.2998c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16h118.3c14.6006 0 28.7002 4.90039 40 14l92.4004 73.9004c12.3994 10 30.7998 10.6992 42.5996 0z" />
-    <glyph glyph-name="hands" unicode="&#xf4c2;" horiz-adv-x="640" 
-d="M204.8 217.6l57.6006 -76.7998c16.5996 -22.2002 25.5996 -49.0996 25.5996 -76.7998v-112c0 -8.7998 -7.2002 -16 -16 -16h-131.7c-7.2002 0 -13.5 4.7002 -15.2998 11.5996c-2 7.80078 -5.40039 15.2002 -10.4004 21.7002l-104.1 134.3
-c-6.7998 8.5 -10.5 19.1006 -10.5 30v218.4c0 17.7002 14.2998 32 32 32s32 -14.2998 32 -32v-148.4l89.7998 -107.8c6 -7.2998 16.9004 -7.7998 23.6006 -1.09961l12.7998 12.7998c5.59961 5.59961 6.2998 14.5 1.5 20.9004l-38.1006 50.7998
-c-10.5996 14.0996 -7.69922 34.2002 6.40039 44.7998s34.2002 7.7002 44.7998 -6.40039zM608 384c17.7002 0 32 -14.2998 32 -32v-218.4c0 -10.8994 -3.7002 -21.5 -10.5 -30l-104.1 -134.3c-5 -6.5 -8.40039 -13.8994 -10.4004 -21.7002
-c-1.7998 -6.89941 -8.2002 -11.5996 -15.2998 -11.5996h-131.7c-8.7998 0 -16 7.2002 -16 16v112c0 27.7002 9 54.5996 25.5996 76.7998l57.6006 76.7998c10.5996 14.1006 30.7002 17 44.7998 6.40039s17 -30.7002 6.40039 -44.7998l-38.1006 -50.7998
-c-4.7998 -6.40039 -4.09961 -15.3008 1.5 -20.9004l12.7998 -12.7998c6.60059 -6.60059 17.6006 -6.10059 23.6006 1.09961l89.7998 107.8v148.4c0 17.7002 14.2998 32 32 32z" />
-    <glyph glyph-name="hands-helping" unicode="&#xf4c4;" horiz-adv-x="640" 
-d="M488 256c13.2998 0 24 -10.7002 24 -24v-48c0 -13.2998 -10.7002 -24 -24 -24h-8v-64c0 -17.7002 -14.2998 -32 -32 -32h-16c0 -35.2998 -28.7002 -64 -64 -64h-136.6l-103.4 -59.7002c-15.2998 -8.7998 -34.9004 -3.59961 -43.7002 11.7002l-80 138.6
-c-8.89941 15.3008 -3.59961 34.9004 11.7002 43.7002l80 46.2002v47.2998c0 22.4004 11.7998 43.2998 31.0996 54.7998l64.9004 39v-121.6c0 -39.7002 32.2998 -72 72 -72s72 32.2998 72 72v56h152zM635.7 293.4c8.7998 -15.3008 3.59961 -34.8008 -11.7002 -43.7002
-l-80 -46.2002v28.5c0 30.9004 -25.0996 56 -56 56h-184v-88c0 -22.0996 -17.9004 -40 -40 -40s-40 17.9004 -40 40v126.3c0 11 5.59961 21.2998 15 27.1006l33.5 20.8994c10.2002 6.2998 21.9004 9.7002 33.9004 9.7002h102.199l103.4 59.7002
-c15.2998 8.7998 34.9004 3.59961 43.7002 -11.7002z" />
-    <glyph glyph-name="parachute-box" unicode="&#xf4cd;" 
-d="M511.9 273c1.09961 -9.2002 -6.80078 -17 -16.1006 -17h-8.7002l-136.8 -151.9c0.700195 -2.69922 1.60059 -5.19922 1.60059 -8.09961v-128c0 -17.7002 -14.3008 -32 -32 -32h-128c-17.7002 0 -32 14.2998 -32 32v128c0 2.90039 0.899414 5.5 1.59961 8.09961
-l-136.7 151.9h-8.7002c-9.19922 0 -17.0996 7.90039 -16 17c9.10059 75.5 78.4004 132.3 158.301 158.7c-36.4004 -39.4004 -62.4004 -100.601 -62.4004 -175.7h-28.0996l116.6 -129.5c2.5 0.599609 4.7998 1.5 7.5 1.5h48v128h-112c0 115.2 68.9004 192 128 192
-s128 -76.7998 128 -192h-112v-128h48c2.7002 0 5 -0.900391 7.5 -1.5l116.6 129.5h-28.0996c0 75.0996 -26 136.3 -62.4004 175.7c79.9004 -26.2998 149.2 -83.1006 158.301 -158.7z" />
-    <glyph glyph-name="people-carry" unicode="&#xf4ce;" horiz-adv-x="640" 
-d="M128 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM512 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM637.7 -20.0996c6.59961 -16.4004 -1.40039 -35 -17.7998 -41.6006
-c-3.90039 -1.59961 -7.90039 -2.2998 -11.9004 -2.2998c-12.7002 0 -24.7002 7.59961 -29.7002 20.0996l-27.7002 69.2002l2 18.2002l41.1006 46.4004zM603.5 189.7c4.59961 -20 -0.799805 -41.2002 -14.4004 -56.7002l-67.1992 -75.9004l-10.1006 -92.5996
-c-1.7998 -16.4004 -15.7002 -28.5 -31.7998 -28.5c-1.2002 0 -2.2998 0.0996094 -3.5 0.200195c-17.5 1.89941 -30.2002 17.7002 -28.2998 35.2998l10.0996 92.7998c1.5 13 6.90039 25.1006 15.6006 35l43.2998 49l-17.6006 70.2998l-6.7998 -20.3994
-c-4.09961 -12.6006 -11.8994 -23.4004 -24.5 -32.6006l-51.0996 -32.5c-4.60059 -2.89941 -12.1006 -4.59961 -17.2002 -5h-160c-5.09961 0.400391 -12.5996 2.10059 -17.2002 5l-51.0996 32.5c-12.6006 9.2002 -20.4004 20.1006 -24.5 32.6006l-6.7998 20.3994
-l-17.6006 -70.2998l43.2998 -49c8.7002 -9.89941 14.1006 -22 15.6006 -35l10.0996 -92.7998c1.90039 -17.5996 -10.7002 -33.4004 -28.2998 -35.2998c-1.2002 -0.100586 -2.2998 -0.200195 -3.5 -0.200195c-16.2002 0 -30 12.2002 -31.7998 28.5l-10.1006 92.5996
-l-67.1992 75.9004c-13.7002 15.5 -19 36.7002 -14.4004 56.7002l18.4004 80.2002c4.59961 20 18.5996 36.7998 37.5 44.8994c18.5 8 38.8994 6.7002 56.0996 -3.2998c22.7002 -13.4004 39.7998 -34.4004 48.0996 -59.4004l11.3008 -33.8994l16.0996 -10.2002v96
-c0 8.7998 7.2002 16 16 16h160c8.7998 0 16 -7.2002 16 -16v-96l16 10.2002l11.2998 33.8994c8.40039 24.9004 25.4004 46 48.1006 59.4004c17.0996 10 37.5996 11.2998 56.0996 3.2998c18.9004 -8.09961 32.9004 -24.8994 37.5 -44.8994zM46.2998 89.9004l41.1006 -46.4004
-l2 -18.2002l-27.7002 -69.2002c-6.5 -16.0996 -24.7998 -24.3994 -41.6006 -17.7998c-16.3994 6.60059 -24.3994 25.2002 -17.7998 41.6006z" />
-    <glyph glyph-name="piggy-bank" unicode="&#xf4d3;" horiz-adv-x="576" 
-d="M560 224c8.7998 0 16 -7.2002 16 -16v-128c0 -8.7998 -7.2002 -16 -16 -16h-48.7002c-9 -11.9004 -19.5 -22.4004 -31.2998 -31.2998v-80.7002c0 -8.7998 -7.2002 -16 -16 -16h-64c-8.7998 0 -16 7.2002 -16 16v48h-128v-48c0 -8.7998 -7.2002 -16 -16 -16h-64
-c-8.7998 0 -16 7.2002 -16 16v80.7002c-38.5996 29.2002 -64 75.0996 -64 127.3h-40c-33.2998 0 -59.9004 29.2002 -55.5 63.4004c3.59961 28.1992 29 48.5996 57.5 48.5996c3.2998 0 6 -2.7002 6 -6v-20c0 -3.2998 -2.7002 -6 -6 -6h-1
-c-11.5996 0 -22.2998 -7.7998 -24.5 -19.2002c-3 -15.2998 8.7002 -28.7998 23.5 -28.7998h43.2002c14.8994 73 79.3994 128 156.8 128h128c7.90039 0 15.4004 -1.2002 23 -2.2998c17.5996 20.7998 43.5996 34.2998 73 34.2998h32l-18.9004 -75.5
-c15.8008 -14.7998 28.6006 -32.5 37.4004 -52.5h29.5zM432 160c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM256 352c-16.4004 0 -32.2002 -2.2998 -47.4004 -6.2002c-0.0996094 2.10059 -0.599609 4.10059 -0.599609 6.2002
-c0 53 43 96 96 96s96 -43 96 -96c0 -0.299805 -0.0996094 -0.5 -0.0996094 -0.799805c-5.2002 0.399414 -10.5 0.799805 -15.9004 0.799805h-128z" />
-    <glyph glyph-name="ribbon" unicode="&#xf4d6;" horiz-adv-x="448" 
-d="M6.09961 3.7002l117.2 130l79.2002 -87.9004l-91.7998 -101.899c-8 -8.80078 -21.4004 -10.5 -31.2998 -3.80078l-68.8008 27.9004c-12 8.09961 -14.0996 24.9004 -4.5 35.7002zM441.9 3.7002c9.69922 -10.7998 7.59961 -27.6006 -4.30078 -35.6006l-68.7998 -27.8994
-c-9.89941 -6.7002 -23.2998 -5.10059 -31.2998 3.7998l-248.1 275.3c-48.6006 53.7998 -13 113.5 -11.5 116l43.5996 73.2002c4.2998 7.2002 9.90039 13.2998 16.7998 18c44 29.7002 130.7 27.5996 171.4 0c6.89941 -4.7002 12.5 -10.7998 16.7998 -18l43.7002 -73.5
-c21.8994 -36.9004 17.2998 -83.5996 -11.4004 -115.5l-34.2002 -38l-79.0996 87.7002s52.7002 59 56 64.5996c-15.4004 8.40039 -40.2002 17.9004 -77.5 17.9004s-62.0996 -9.5 -77.5 -17.9004c3.40039 -5.5 295.4 -330.1 295.4 -330.1z" />
-    <glyph glyph-name="route" unicode="&#xf4d7;" 
-d="M416 128c52.9004 0 96 -43.0996 96 -96s-43.0996 -96 -96 -96h-277.8c13.5 16.2998 31.2998 39.2002 47.2998 64h230.5c17.5996 0 32 14.4004 32 32s-14.4004 32 -32 32h-96c-52.9004 0 -96 43.0996 -96 96s43.0996 96 96 96h45.2998
-c-23.0996 32.5996 -45.2998 70.5 -45.2998 96c0 53 43 96 96 96s96 -43 96 -96s-96 -160 -96 -160h-96c-17.5996 0 -32 -14.4004 -32 -32s14.4004 -32 32 -32h96zM416 384c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM96 192
-c53 0 96 -43 96 -96s-96 -160 -96 -160s-96 107 -96 160s43 96 96 96zM96 64c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="seedling" unicode="&#xf4d8;" 
-d="M64 352c123.7 0 224 -100.3 224 -224v-144c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v144c-123.7 0 -224 100.3 -224 224h64zM448 416h64c0 -115.9 -88 -211.1 -200.7 -222.8c-10.7998 40.7002 -31.2998 77.3994 -59 107.6
-c38.2998 68.7002 111.5 115.2 195.7 115.2z" />
-    <glyph glyph-name="sign" unicode="&#xf4d9;" 
-d="M496 384c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-368v-368c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v368h-48c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h48v48c0 8.7998 7.2002 16 16 16h32
-c8.7998 0 16 -7.2002 16 -16v-48h368zM160 64v224h320v-224h-320z" />
-    <glyph glyph-name="smile-wink" unicode="&#xf4da;" horiz-adv-x="496" 
-d="M0 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM200 240c0 17.7002 -14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32zM358.5 223.5l9.7002 -8.5c8.39941 -7.5 21.5 -0.299805 19.7998 10.7998
-c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006c-1.7998 -11.2002 11.5 -18.2002 19.7998 -10.7998l9.5 8.5c14.7998 13.2002 46.2002 13.2002 61 0zM157.8 122.2c-13.3994 16.2998 -38.0996 -4.10059 -24.5996 -20.4004
-c28.5 -34.2002 70.2998 -53.7998 114.8 -53.7998s86.2998 19.5996 114.8 53.7002c13.5 16.2998 -11 36.7002 -24.5996 20.5c-22.4004 -26.7998 -55.2002 -42.2002 -90.2002 -42.2002s-67.7998 15.2998 -90.2002 42.2002z" />
-    <glyph glyph-name="tape" unicode="&#xf4db;" horiz-adv-x="640" 
-d="M224 256c35.2998 0 64 -28.7002 64 -64s-28.7002 -64 -64 -64s-64 28.7002 -64 64s28.7002 64 64 64zM624 32c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-400c-123.7 0 -224 100.3 -224 224s100.3 224 224 224s224 -100.3 224 -224
-c0 -62.7002 -25.9004 -119.3 -67.4004 -160h243.4zM224 96c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96z" />
-    <glyph glyph-name="truck-loading" unicode="&#xf4de;" horiz-adv-x="640" 
-d="M50.2002 72.4004l-49.6006 185.5c-2.2998 8.5 2.80078 17.2998 11.3008 19.5996l77.2998 20.7002l24.7998 -92.7002l61.7998 16.5l-24.7998 92.7002l77.2002 20.7998c8.5 2.2998 17.2998 -2.7998 19.5996 -11.2998l49.7002 -185.5
-c2.2998 -8.5 -2.7998 -17.2998 -11.2998 -19.6006l-216.4 -58c-8.5 -2.2998 -17.2998 2.80078 -19.5996 11.3008zM384 448h256v-400c0 -61.9004 -50.0996 -112 -112 -112c-60.4004 0 -109.2 47.9004 -111.6 107.7l-393.7 -107.4
-c-4.2002 -1.2002 -8.60059 1.2998 -9.7998 5.60059l-12.6006 46.2998c-1.2002 4.2002 1.2998 8.59961 5.60059 9.7998l346.1 94.4004v323.6c0 17.7002 14.2998 32 32 32zM528 0c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48z" />
-    <glyph glyph-name="truck-moving" unicode="&#xf4df;" horiz-adv-x="640" 
-d="M621.3 210.7c12 -12 18.7002 -28.2002 18.7002 -45.2002v-85.5c0 -8.7998 -7.2002 -16 -16 -16h-17.5996c1 -5.2002 1.59961 -10.5 1.59961 -16c0 -44.2002 -35.7998 -80 -80 -80s-80 35.7998 -80 80c0 5.5 0.5 10.7998 1.59961 16h-163.199
-c1 -5.2002 1.59961 -10.5 1.59961 -16c0 -44.2002 -35.7998 -80 -80 -80c-26.2998 0 -49.4004 12.7998 -64 32.4004c-14.5996 -19.5 -37.7002 -32.4004 -64 -32.4004c-44.2002 0 -80 35.7998 -80 80v336c0 17.7002 14.2998 32 32 32h416c17.7002 0 32 -14.2998 32 -32
-v-96.0996h37.5c17 0 33.2998 -6.7002 45.2998 -18.7002zM80 16c17.5996 0 32 14.4004 32 32s-14.4004 32 -32 32s-32 -14.4004 -32 -32s14.4004 -32 32 -32zM208 16c17.5996 0 32 14.4004 32 32s-14.4004 32 -32 32s-32 -14.4004 -32 -32s14.4004 -32 32 -32zM480 240v-48
-h92.0996l-43.2998 43.2998c-3 3 -7 4.7002 -11.2998 4.7002h-37.5zM528 16c17.5996 0 32 14.4004 32 32s-14.4004 32 -32 32s-32 -14.4004 -32 -32s14.4004 -32 32 -32z" />
-    <glyph glyph-name="video-slash" unicode="&#xf4e2;" horiz-adv-x="640" 
-d="M633.8 -10.0996c7 -5.40039 8.2998 -15.5 2.7998 -22.4004l-19.5996 -25.2998c-5.5 -7 -15.5 -8.2002 -22.5 -2.7998l-178.5 138l-373.3 288.6l-36.5 28.2002c-7 5.39941 -8.2002 15.3994 -2.7998 22.3994l19.5996 25.2002c5.5 7 15.5 8.2002 22.5 2.7998
-l78.4004 -60.5996h244.3c26.3994 0 47.7998 -21.4004 47.7998 -47.7998v-178l32 -24.7002v137.2l109.6 75.5996c21.3008 14.6006 50.4004 -0.299805 50.4004 -25.7998v-257c0 -17.4004 -13.7998 -29.7002 -29.2002 -31.0996zM32 47.7998v245.5l365.8 -282.8
-c-8.2002 -6.5 -18.3994 -10.5 -29.5996 -10.5h-288.4c-26.3994 0 -47.7998 21.4004 -47.7998 47.7998z" />
-    <glyph glyph-name="wine-glass" unicode="&#xf4e3;" horiz-adv-x="288" 
-d="M216 -16c22.0898 0 40 -17.9102 40 -40c0 -4.41992 -3.58008 -8 -8 -8h-208c-4.41992 0 -8 3.58008 -8 8c0 22.0898 17.9102 40 40 40h40v117.18c-68.4697 15.8906 -118.05 79.9102 -111.4 154.16l15.96 178.11c0.730469 8.24023 7.55078 14.5498 15.7002 14.5498h223.48
-c8.16016 0 14.9697 -6.30957 15.71 -14.5498l15.9502 -178.101c6.64941 -74.25 -42.9307 -138.27 -111.4 -154.159v-117.19h40z" />
-    <glyph glyph-name="user-alt-slash" unicode="&#xf4fa;" horiz-adv-x="640" 
-d="M633.8 -10.0996c7 -5.40039 8.2998 -15.5 2.90039 -22.3008l-19.6006 -25.2998c-5.5 -7 -15.5 -8.2002 -22.5 -2.7998l-588.399 454.7c-7 5.39941 -8.2002 15.3994 -2.7998 22.3994l19.5996 25.2002c5.5 7 15.5 8.2002 22.5 2.7998l135.5 -104.8
-c16 62.1006 71.9004 108.2 139 108.2c79.5 0 144 -64.5 144 -144c0 -54.0996 -30.2002 -100.7 -74.4004 -125.3zM198.4 128h47.3994l248.4 -192h-382.2c-26.5 0 -48 21.5 -48 48v9.59961c0 74.2002 60.2002 134.4 134.4 134.4z" />
-    <glyph glyph-name="user-astronaut" unicode="&#xf4fb;" horiz-adv-x="448" 
-d="M64 224c-8.7998 0 -16 7.2002 -16 16v96c0 8.7998 7.2002 16 16 16h13.5c24.7002 56.5 80.9004 96 146.5 96s121.8 -39.5 146.5 -96h13.5c8.7998 0 16 -7.2002 16 -16v-96c0 -8.7998 -7.2002 -16 -16 -16h-13.5c-24.7002 -56.5 -80.9004 -96 -146.5 -96
-s-121.8 39.5 -146.5 96h-13.5zM104 312v-24c0 -53 43 -96 96 -96h48c53 0 96 43 96 96v24c0 22.0996 -21.5 40 -48 40h-144c-26.5 0 -48 -17.9004 -48 -40zM176 240l-12 36l-36 12l36 12l12 36l12 -36l36 -12l-36 -12zM327.6 126.6c67.5 -7.09961 120.4 -63.5996 120.4 -133
-v-9.59961c0 -26.5 -21.5 -48 -48 -48h-80v64c0 17.7002 -14.2998 32 -32 32h-128c-17.7002 0 -32 -14.2998 -32 -32v-64h-80c-26.5 0 -48 21.5 -48 48v9.59961c0 69.4004 52.9004 125.9 120.4 133c29.8994 -19.2998 65.3994 -30.5996 103.6 -30.5996
-s73.7002 11.2998 103.6 30.5996zM272 0c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16s-16 7.2002 -16 16s7.2002 16 16 16zM176 0c8.7998 0 16 -7.2002 16 -16v-48h-32v48c0 8.7998 7.2002 16 16 16z" />
-    <glyph glyph-name="user-check" unicode="&#xf4fc;" horiz-adv-x="640" 
-d="M224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM313.6 160c74.2002 0 134.4 -60.2002 134.4 -134.4v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v41.5996
-c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992zM636.6 288.4c4.60059 -4.60059 4.5 -12.1006 -0.0996094 -16.8008l-141.3 -140.199c-4.7002 -4.60059 -12.2002 -4.60059 -16.7998 0.0996094
-l-81.7002 82.2998c-4.60059 4.7002 -4.60059 12.2002 0.0996094 16.7998l28.1006 27.9004c4.69922 4.59961 12.1992 4.59961 16.7998 -0.0996094l45.5 -45.8008l104.8 104c4.7002 4.60059 12.2002 4.60059 16.7998 -0.0996094z" />
-    <glyph glyph-name="user-clock" unicode="&#xf4fd;" horiz-adv-x="640" 
-d="M496 224c79.5996 0 144 -64.4004 144 -144s-64.4004 -144 -144 -144s-144 64.4004 -144 144s64.4004 144 144 144zM560 73.7002v12.5996c0 5.2998 -4.40039 9.7002 -9.7002 9.7002h-38.2998v54.2998c0 5.2998 -4.40039 9.7002 -9.7002 9.7002h-12.5996
-c-5.2998 0 -9.7002 -4.40039 -9.7002 -9.7002v-76.5996c0 -5.2998 4.40039 -9.7002 9.7002 -9.7002h60.5996c5.2998 0 9.7002 4.40039 9.7002 9.7002zM320 80c0 -59.5 29.7998 -112.1 75.0996 -144h-347.1c-26.5 0 -48 21.5 -48 48v41.5996
-c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992c8.40039 0 16.6006 -1 24.6006 -2.5c-11.5 -23.4004 -18.2002 -49.7002 -18.2002 -77.5zM224 192c-70.7002 0 -128 57.2998 -128 128
-s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128z" />
-    <glyph glyph-name="user-cog" unicode="&#xf4fe;" horiz-adv-x="640" 
-d="M610.5 74.7002l25.7998 -14.9004c2.90039 -1.7002 4.2998 -5.2002 3.2998 -8.5c-6.69922 -21.5996 -18.1992 -41.2002 -33.1992 -57.3994c-2.30078 -2.5 -6.10059 -3.10059 -9 -1.40039l-25.8008 14.9004c-10.8994 -9.30078 -23.3994 -16.5 -36.8994 -21.3008v-29.7998
-c0 -3.39941 -2.40039 -6.39941 -5.7002 -7.09961c-21.2002 -4.7998 -43.9004 -5 -66.2002 0c-3.2998 0.700195 -5.7002 3.7002 -5.7002 7.09961v29.7998c-13.5 4.80078 -26 12 -36.8994 21.3008l-25.7998 -14.9004c-3 -1.7002 -6.7002 -1.09961 -9 1.40039
-c-15 16.2998 -26.5 35.7998 -33.2002 57.3994c-1 3.2998 0.299805 6.7998 3.2998 8.5l25.7998 14.9004c-2.59961 14.0996 -2.59961 28.5 0 42.5996l-25.7998 14.9004c-2.90039 1.7002 -4.2998 5.2002 -3.2998 8.5c6.7002 21.5996 18.2002 41.2002 33.2002 57.3994
-c2.2998 2.5 6.09961 3.10059 9 1.40039l25.7998 -14.9004c10.8994 9.30078 23.3994 16.5 36.8994 21.3008v29.7998c0 3.39941 2.40039 6.39941 5.7002 7.09961c21.2002 4.7998 43.9004 5 66.2002 0c3.2998 -0.700195 5.7002 -3.7002 5.7002 -7.09961v-29.7998
-c13.5 -4.80078 26 -12 36.8994 -21.3008l25.8008 14.9004c3 1.7002 6.69922 1.09961 9 -1.40039c15 -16.1992 26.5 -35.7998 33.1992 -57.3994c1 -3.2998 -0.299805 -6.7998 -3.2998 -8.5l-25.7998 -14.9004c2.59961 -14.0996 2.59961 -28.5 0 -42.5996zM496 47.5
-c26.7998 0 48.5 21.7998 48.5 48.5s-21.7998 48.5 -48.5 48.5s-48.5 -21.7998 -48.5 -48.5s21.7002 -48.5 48.5 -48.5zM224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM425.2 -34.5v-9.2002
-c0 -4.09961 0.799805 -8 2 -11.7998c-7.7002 -5.2998 -17.1006 -8.5 -27.2002 -8.5h-352c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992
-c3.90039 0 7.60059 -0.900391 11.4004 -1.2002c-1 -2.89941 -2.2998 -5.7998 -3.2002 -8.7002c-5.5 -17.6992 1.90039 -36.5 17.9004 -45.6992l7.89941 -4.60059c-0.0996094 -2.59961 -0.0996094 -5.2002 0 -7.7998l-7.89941 -4.59961
-c-16 -9.30078 -23.4004 -28 -17.9004 -45.7002c7.90039 -25.7002 21.9004 -49.7998 40.2002 -69.6006c7.5 -8 18 -12.5996 28.9004 -12.5996c6.7998 0 13.5996 1.90039 19.5996 5.2998l7.90039 4.60059c2.19922 -1.30078 4.5 -2.7002 6.7998 -3.90039z" />
-    <glyph glyph-name="user-edit" unicode="&#xf4ff;" horiz-adv-x="640" 
-d="M224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM313.6 160c39.9004 0 75.4004 -17.7998 99.9004 -45.5l-77.2998 -77.2998l-7.90039 -7.90039l-1.2002 -11.0996l-6.7998 -60.9004
-c-0.799805 -7.2998 0.200195 -14.5 2.60059 -21.2998h-274.9c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992zM358.9 14.7002l137.899 137.8l71.7002 -71.7002
-l-137.9 -137.899l-60.8994 -6.80078c-10.1006 -1.19922 -18.7002 7.40039 -17.6006 17.6006zM633 179.1c9.2998 -9.39941 9.2998 -24.5 0 -33.8994l-41.7998 -41.7998l-71.7998 71.6992l4.09961 4.10059l37.7998 37.7998c9.2998 9.2998 24.5 9.2998 33.7998 0z" />
-    <glyph glyph-name="user-friends" unicode="&#xf500;" horiz-adv-x="640" 
-d="M192 192c-61.9004 0 -112 50.0996 -112 112s50.0996 112 112 112s112 -50.0996 112 -112s-50.0996 -112 -112 -112zM268.8 160c63.6006 0 115.2 -51.5996 115.2 -115.2v-28.7998c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v28.7998
-c0 63.6006 51.5996 115.2 115.2 115.2h8.2998c20.9004 -10 43.9004 -16 68.5 -16s47.7002 6 68.5 16h8.2998zM480 192c-53 0 -96 43 -96 96s43 96 96 96s96 -43 96 -96s-43 -96 -96 -96zM528 160c61.9004 0 112 -50.0996 112 -112c0 -26.5 -21.5 -48 -48 -48h-176.6
-c0.0996094 2.09961 0.599609 4.2002 0.599609 6.40039v38.3994c0 38.6006 -15.2998 73.5 -39.7002 99.7998c16.5 9.5 35.2998 15.4004 55.7002 15.4004h3.7998c13.9004 -4.7998 28.6006 -8 44.2002 -8s30.2998 3.2002 44.2002 8h3.7998z" />
-    <glyph glyph-name="user-graduate" unicode="&#xf501;" horiz-adv-x="448" 
-d="M319.4 127.4c71.5 -3.10059 128.6 -61.6006 128.6 -133.801v-9.59961c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v9.59961c0 72.2002 57.0996 130.7 128.6 133.801l95.4004 -95.4004zM13.5996 368.2c-18.0996 4.39941 -18.0996 27.2002 0 31.5996
-l190.601 45.9004c13 3.09961 26.7002 3.09961 39.7002 0l190.399 -46c18.2002 -4.40039 18.2002 -27.1006 0 -31.5l-96.2998 -23.2002c8.7002 -17.2002 14 -36.4004 14 -57c0 -70.7002 -57.2998 -128 -128 -128s-128 57.2998 -128 128c0 20.5996 5.40039 39.7998 14 57
-l-66 15.9004v-52.6006c7 -4.2002 12 -11.5 12 -20.2998c0 -8.40039 -4.59961 -15.4004 -11.0996 -19.7002l15.5996 -62.2998c1.7002 -6.90039 -2.09961 -14 -7.59961 -14h-41.8008c-5.5 0 -9.2998 7.09961 -7.59961 14l15.5996 62.2998
-c-6.5 4.2998 -11.0996 11.2998 -11.0996 19.7002c0 8.7998 5 16.0996 12 20.2998v58.4004z" />
-    <glyph glyph-name="user-lock" unicode="&#xf502;" horiz-adv-x="640" 
-d="M224 192c-70.6455 0 -128 57.3545 -128 128s57.3545 128 128 128s128 -57.3545 128 -128s-57.3545 -128 -128 -128zM320 128v-160c0.0791016 -11.6504 3.3418 -22.6367 8.90039 -32h-280.9c-26.4922 0 -48 21.5078 -48 48v41.5996
-c0.0166016 74.1699 60.2305 134.384 134.4 134.4h16.6992c22.1426 -10.2109 47.085 -15.9072 73.0498 -15.9072c25.9639 0 50.6084 5.69629 72.751 15.9072h16.6992c5 0 9.7002 -1 14.5 -1.5c-5.06641 -9.00684 -8.02539 -19.4561 -8.09961 -30.5zM608 160
-c17.6611 0 32 -14.3389 32 -32v-160c0 -17.6611 -14.3389 -32 -32 -32h-224c-17.6611 0 -32 14.3389 -32 32v160c0 17.6611 14.3389 32 32 32h32v80c0 44.1533 35.8467 80 80 80s80 -35.8467 80 -80v-80h32zM496 16c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32
-s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM528 160v80c0 17.6611 -14.3389 32 -32 32s-32 -14.3389 -32 -32v-80h64z" />
-    <glyph glyph-name="user-minus" unicode="&#xf503;" horiz-adv-x="640" 
-d="M624 240c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-192c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h192zM224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128z
-M313.6 160c74.2002 0 134.4 -60.2002 134.4 -134.4v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992z" />
-    <glyph glyph-name="user-ninja" unicode="&#xf504;" horiz-adv-x="448" 
-d="M325.4 158.8c68.5996 -6.09961 122.6 -63 122.6 -133.2v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v41.5996c0 70.2002 54 127.101 122.6 133.2l101.4 -101.399zM32 256c0 33.4004 17.0996 62.7998 43.0996 80
-c-26 17.2002 -43.0996 46.5996 -43.0996 80c32 0 60.0996 -15.7998 77.5 -39.7998c20.9004 42.3994 64.0996 71.7998 114.5 71.7998c70.7002 0 128 -57.2998 128 -128s-57.2998 -128 -128 -128c-58.7998 0 -107.7 39.7998 -122.8 93.7002
-c-17.4004 -18.2002 -41.9004 -29.7002 -69.2002 -29.7002zM176 352c-17.7002 0 -32 -14.2998 -32 -32h160c0 17.7002 -14.2998 32 -32 32h-96z" />
-    <glyph glyph-name="user-shield" unicode="&#xf505;" horiz-adv-x="640" 
-d="M622.3 176.9c10.7002 -4.2002 17.7002 -14 17.7002 -24.9004c0 -124.5 -81.5996 -193.9 -132.9 -213.9c-4.19922 -1.59961 -12.5996 -3.69922 -22.1992 0c-64.2002 25.1006 -132.9 102.301 -132.9 213.9c0 10.9004 7 20.7002 17.7002 24.9004l115.2 45
-c9.59961 3.69922 18.0996 1.59961 22.1992 0zM496 -14.4004c34.5996 16.4004 89.9004 64.7002 95.5 151.801l-95.5 37.2998v-189.101zM224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM320 152
-c0 -95.2998 45.2002 -169.1 99.2002 -212c-5.90039 -2.5 -12.4004 -4 -19.2002 -4h-352c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992
-c2.60059 0 5 -0.700195 7.5 -0.799805c-0.299805 -2.40039 -1.09961 -4.7002 -1.09961 -7.2002z" />
-    <glyph glyph-name="user-slash" unicode="&#xf506;" horiz-adv-x="640" 
-d="M633.8 -10.0996c7 -5.40039 8.2998 -15.5 2.90039 -22.3008l-19.6006 -25.2998c-5.5 -7 -15.5 -8.2002 -22.5 -2.7998l-588.399 454.7c-7 5.39941 -8.2002 15.3994 -2.7998 22.3994l19.5996 25.2002c5.5 7 15.5 8.2002 22.5 2.7998l147.6 -114
-c5.40039 65.6006 59.8008 117.4 126.9 117.4c70.7002 0 128 -57.2998 128 -128c0 -55.7998 -35.9004 -102.7 -85.7002 -120.3zM96 25.5996c0 66.4004 48.2002 121.101 111.4 132.101l286.8 -221.7h-350.2c-26.5 0 -48 21.5 -48 48v41.5996z" />
-    <glyph glyph-name="user-tag" unicode="&#xf507;" horiz-adv-x="640" 
-d="M630.6 83.0996c12.5 -12.5 12.5 -32.6992 -0.0996094 -45.1992l-92.5 -92.5c-12.5 -12.5 -32.7998 -12.5 -45.2998 0l-90.2998 90.1992c-12 12 -18.7002 28.2002 -18.7002 45.2002v79.2002c0 17.7002 14.2998 32 32 32h79.2998c17 0 33.2998 -6.7002 45.2998 -18.7002z
-M447.8 104.1c13.2998 0 24 10.8008 24 24c0 13.3008 -10.7002 24 -24 24s-24 -10.6992 -24 -24c0 -13.2998 10.7002 -24 24 -24zM224 192.1c-70.7002 0 -128 57.3008 -128 127.9c0 70.7002 57.2998 128 128 128s128 -57.2998 128 -127.9c0 -70.6992 -57.2998 -128 -128 -128
-zM351.8 80.9004c0 -25.7002 10 -49.8008 28.1006 -67.9004l58 -58c-8.80078 -11.4004 -22.4004 -18.9004 -37.9004 -18.9004h-352c-26.5 0 -48 21.5 -48 48v41.6006c0 74.2002 60.2002 134.399 134.4 134.5h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16
-s50.7002 5.7998 72.9004 16h16.6992c13.3008 0 26 -2.60059 38.2002 -6.2002v-73.0996z" />
-    <glyph glyph-name="user-tie" unicode="&#xf508;" horiz-adv-x="448" 
-d="M224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM319.8 159.4c71.2998 -3.40039 128.2 -61.7002 128.2 -133.801v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v41.5996
-c0 72.1006 56.9004 130.4 128.2 133.801l47.7998 -191.4l32 136l-32 56h96l-32 -56l32 -136z" />
-    <glyph glyph-name="users-cog" unicode="&#xf509;" horiz-adv-x="640" 
-d="M610.5 106.7l25.7998 -14.9004c2.90039 -1.7002 4.2998 -5.2002 3.2998 -8.5c-6.69922 -21.5996 -18.1992 -41.2002 -33.1992 -57.3994c-2.30078 -2.5 -6.10059 -3.10059 -9 -1.40039l-25.8008 14.9004c-10.8994 -9.30078 -23.3994 -16.5 -36.8994 -21.3008v-29.7998
-c0 -3.39941 -2.40039 -6.39941 -5.7002 -7.09961c-21.2002 -4.7998 -43.9004 -5 -66.2002 0c-3.2998 0.700195 -5.7002 3.7002 -5.7002 7.09961v29.7998c-13.5 4.80078 -26 12 -36.8994 21.3008l-25.7998 -14.9004c-3 -1.7002 -6.7002 -1.09961 -9 1.40039
-c-15 16.2998 -26.5 35.7998 -33.2002 57.3994c-1 3.2998 0.299805 6.7998 3.2998 8.5l25.7998 14.9004c-2.59961 14.0996 -2.59961 28.5 0 42.5996l-25.7998 14.9004c-2.90039 1.7002 -4.2998 5.2002 -3.2998 8.5c6.7002 21.5996 18.2002 41.2002 33.2002 57.3994
-c2.2998 2.5 6.09961 3.10059 9 1.40039l25.7998 -14.9004c10.8994 9.30078 23.3994 16.5 36.8994 21.3008v29.7998c0 3.39941 2.40039 6.39941 5.7002 7.09961c21.2002 4.7998 43.9004 5 66.2002 0c3.2998 -0.700195 5.7002 -3.7002 5.7002 -7.09961v-29.7998
-c13.5 -4.80078 26 -12 36.8994 -21.3008l25.8008 14.9004c3 1.7002 6.69922 1.09961 9 -1.40039c15 -16.1992 26.5 -35.7998 33.1992 -57.3994c1 -3.2998 -0.299805 -6.7998 -3.2998 -8.5l-25.7998 -14.9004c2.59961 -14.0996 2.59961 -28.5 0 -42.5996zM496 79.5
-c26.7998 0 48.5 21.7998 48.5 48.5s-21.7998 48.5 -48.5 48.5s-48.5 -21.7998 -48.5 -48.5s21.7002 -48.5 48.5 -48.5zM96 224c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM320 192c-61.9004 0 -112 50.0996 -112 112
-s50 111.9 111.9 111.9c61.8994 0 112 -50.1006 112 -112c0 -17.2002 -4.2002 -33.4004 -11.2002 -48c-0.799805 -0.5 -1.60059 -0.900391 -2.40039 -1.40039l-7.89941 4.59961c-5.90039 3.5 -12.7002 5.30078 -19.6006 5.30078c-11 0 -21.5 -4.60059 -28.8994 -12.6006
-c-15.8008 -17.0996 -28 -37.5 -36.3008 -59.2002c-1.89941 -0.0996094 -3.69922 -0.599609 -5.59961 -0.599609zM425.2 -2.5v-9.2002c0 -7.5 2.5 -14.2998 6.2002 -20.2998h-255.4c-26.5 0 -48 21.5 -48 48v28.7998c0 63.6006 51.5996 115.2 115.3 115.2h8.2998
-c20.9004 -10 43.9004 -16 68.5 -16c3.30078 0 6.5 0.400391 9.80078 0.599609c2.7998 -3.09961 6 -5.89941 9.7998 -8.09961l7.89941 -4.59961c-0.0996094 -2.60059 -0.0996094 -5.2002 0 -7.80078c-0.899414 -0.599609 -36.5 -15.7998 -25.7998 -50.2998
-c7.90039 -25.7002 21.9004 -49.7998 40.2002 -69.5996c7.5 -8 18 -12.6006 28.9004 -12.6006c12.1992 0 19.2998 5 27.5 9.80078c2.19922 -1.30078 4.5 -2.7002 6.7998 -3.90039zM173.1 173.4c-40.2998 -22.1006 -68.8994 -62 -75.1992 -109.4h-65.9004
-c-17.7002 0 -32 14.2998 -32 32v32c0 35.2998 28.7002 64 64 64h64c17.5996 0 33.5 -7.09961 45.0996 -18.5996z" />
-    <glyph glyph-name="balance-scale-left" unicode="&#xf515;" horiz-adv-x="640" 
-d="M528 0c8.83984 0 16 -7.16016 16.0098 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-224c-8.83984 0 -16 7.16016 -16 16v342.75c-4.55957 2 -8.91992 4.34961 -12.9902 7.12012l-142.05 -47.6299c-8.37988 -2.81055 -17.4502 1.7002 -20.2598 10.0801l-10.1699 30.3398
-c-2.80957 8.37988 1.7002 17.4502 10.0801 20.2598l128.39 43.0498c-0.419922 3.32031 -1.00977 6.60059 -1.00977 10.0303c0 44.1797 35.8203 80 80 80c29.6904 0 55.2998 -16.3604 69.1104 -40.3701l117.92 39.5303c8.37988 2.80957 17.4502 -1.7002 20.2598 -10.0801
-l10.1699 -30.3398c2.80957 -8.37988 -1.7002 -17.4502 -10.0801 -20.2598l-132 -44.2607c-7.28027 -21.25 -22.96 -38.5293 -43.3799 -47.4697v-294.75h176zM639.98 144c0 -44.1797 -57.29 -80 -127.98 -80s-128 35.8203 -128 80h0.0195312
-c0 15.6699 -2.0791 7.25 85.04 181.51c17.6807 35.3604 68.2207 35.29 85.8701 0c86.3906 -172.779 85.0508 -165.33 85.0508 -181.51zM440 160h144l-72 144zM170.93 197.51c86.3906 -172.779 85.0508 -165.33 85.0508 -181.51h0.0195312c0 -44.1797 -57.3096 -80 -128 -80
-s-128 35.8203 -128 80h0.0195312c0 15.6699 -2.0791 7.25 85.04 181.51c17.6807 35.3604 68.2207 35.29 85.8701 0zM56 32h144l-72 144z" />
-    <glyph glyph-name="balance-scale-right" unicode="&#xf516;" horiz-adv-x="640" 
-d="M96 -16c0 8.83984 7.16016 16 16 16h175.99v294.76c-20.4199 8.93066 -36.1006 26.2207 -43.3799 47.4707l-132 44.2598c-8.37012 2.80957 -12.8906 11.8799 -10.0801 20.2598l10.1699 30.3398c2.80957 8.37012 11.8799 12.8906 20.2598 10.0801l117.93 -39.54
-c13.8105 24.0098 39.4199 40.3701 69.1104 40.3701c44.1797 0 80 -35.8203 80 -80c0 -3.42969 -0.589844 -6.70996 -1.00977 -10.0303l128.399 -43.0498c8.37012 -2.80957 12.8906 -11.8799 10.0801 -20.2598l-10.1699 -30.3398
-c-2.80957 -8.37012 -11.8799 -12.8906 -20.2598 -10.0801l-142.05 47.6299c-4.07031 -2.77051 -8.43066 -5.12012 -12.9902 -7.12012v-342.75c0 -8.83984 -7.16016 -16 -16 -16h-224c-8.83984 0 -16 7.16016 -16 16v32zM0 144c0 16.1797 -1.32031 8.73047 85.0596 181.51
-c17.6504 35.29 68.1904 35.3604 85.8701 0c87.1299 -174.26 85.0508 -165.84 85.0508 -181.51h0.0195312c0 -44.1797 -57.3096 -80 -128 -80s-128 35.8203 -128 80zM56 160h144l-72 144zM384.02 16c0 16.1797 -1.33984 8.73047 85.04 181.51
-c17.6504 35.29 68.1904 35.3604 85.8701 0c87.1299 -174.26 85.0508 -165.84 85.0508 -181.51h0.0195312c0 -44.1797 -57.3096 -80 -128 -80s-128 35.8203 -128 80h0.0195312zM440 32h144l-72 144z" />
-    <glyph glyph-name="blender" unicode="&#xf517;" 
-d="M416 64c35.3496 0 64 -28.6504 64 -64v-32c0 -17.6699 -14.3301 -32 -32 -32h-320c-17.6699 0 -32 14.3301 -32 32v32c0 35.3496 28.6504 64 64 64h256zM288 -32c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM328 384
-c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h157.82l-17.46 -64h-140.36c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h131.64l-17.46 -64h-114.18c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h105.46l-17.46 -64
-h-256l-8.73047 96h-103.27c-26.5098 0 -48 21.4902 -48 48v160c0 26.5098 21.4902 48 48 48h464l-17.46 -64h-166.54zM64 256h81.46l-11.6396 128h-69.8203v-128z" />
-    <glyph glyph-name="book-open" unicode="&#xf518;" horiz-adv-x="576" 
-d="M542.22 415.95c18.4199 1.04004 33.7803 -12.9902 33.7705 -30.7002v-337.84c0 -16.2305 -13.1299 -29.7705 -30.0205 -30.6602c-49.4697 -2.59961 -149.52 -12.0996 -218.7 -46.9199c-10.6494 -5.36035 -23.2793 1.93945 -23.2793 13.4902v363.87
-c0 5.2793 2.62988 10.3291 7.26953 13.1699c67.2402 41.1592 176.16 52.4795 230.96 55.5898zM264.73 360.36c4.64941 -2.85059 7.26953 -7.7002 7.26953 -12.9902v-364.12c0 -11.5195 -12.5898 -18.8096 -23.21 -13.46c-69.1797 34.8398 -169.28 44.3496 -218.771 46.9502
-c-16.8896 0.879883 -30.0195 14.4199 -30.0195 30.6602v337.85c0 17.71 15.3604 31.7402 33.7803 30.7002c54.7998 -3.12012 163.72 -14.4307 230.95 -55.5898z" />
-    <glyph glyph-name="broadcast-tower" unicode="&#xf519;" horiz-adv-x="640" 
-d="M150.94 256c-7.01074 0 -13.46 4.5 -15.4004 11.2402c-4.90039 16.9697 -7.54004 34.6396 -7.54004 52.7598s2.63965 35.79 7.53027 52.7695c1.9502 6.74023 8.39941 11.2305 15.4102 11.2305h33.7295c11.0098 0 18.6201 -10.8301 14.8604 -21.1797
-c-4.93066 -13.5801 -7.5498 -27.9805 -7.5498 -42.8203s2.61914 -29.2402 7.5498 -42.8203c3.75 -10.3496 -3.85059 -21.1797 -14.8604 -21.1797h-33.7295zM89.9199 424.66c-16.54 -31.1406 -49.6104 -115.97 0.169922 -209.29
-c5.66016 -10.6299 -1.92969 -23.3701 -13.9502 -23.3701h-34.8398c-6.18945 0 -11.9902 3.50977 -14.6094 9.13965c-23.5703 50.5303 -26.6904 94.1104 -26.6904 118.86c0 42.3496 9.40039 82.46 25.8896 118.69c2.60059 5.71973 8.4707 9.30957 14.7402 9.30957h35.3301
-c12.0098 0 19.5996 -12.7197 13.96 -23.3398zM614.06 438.71c16.5205 -36.2295 25.9404 -76.3496 25.9404 -118.71s-9.42969 -82.4805 -25.96 -118.71c-2.59961 -5.70996 -8.45996 -9.29004 -14.7305 -9.29004h-35.2295c-12.1104 0 -19.6299 12.8398 -13.9102 23.5195
-c48.1396 89.8105 17.9902 174.94 -0.280273 209.23c-5.63965 10.5898 2.04004 23.25 14.0205 23.25h35.4199c6.26953 0 12.1299 -3.58008 14.7295 -9.29004zM489.06 384c7.01074 0 13.46 -4.49023 15.4004 -11.2402c4.90039 -16.9697 7.54004 -34.6396 7.54004 -52.7598
-s-2.62988 -35.79 -7.53027 -52.7598c-1.9502 -6.75 -8.38965 -11.2402 -15.4102 -11.2402h-33.7295c-11.0098 0 -18.6201 10.8301 -14.8604 21.1797c4.93066 13.5801 7.5498 27.9805 7.5498 42.8203s-2.61914 29.2402 -7.5498 42.8203
-c-3.75 10.3496 3.85059 21.1797 14.8604 21.1797h33.7295zM372.76 283.88l130.5 -313.41c3.39062 -8.14941 -0.459961 -17.5195 -8.60938 -20.9199l-29.5107 -12.3096c-8.14941 -3.40039 -17.5098 0.450195 -20.9092 8.60938l-49.2002 118.15h-150.07l-49.1904 -118.15
-c-3.38965 -8.14941 -12.7598 -12.0098 -20.9092 -8.60938l-29.5107 12.3096c-8.14941 3.40039 -12.0098 12.7705 -8.60938 20.9199l130.5 313.41c-7.0498 10.29 -11.2002 22.71 -11.2002 36.1201c0 35.3496 28.6396 64 63.96 64c35.3301 0 63.96 -28.6504 63.96 -64
-c0 -13.4102 -4.15039 -25.8301 -11.2002 -36.1201zM271.62 128h96.7598l-48.3799 116.19z" />
-    <glyph glyph-name="broom" unicode="&#xf51a;" horiz-adv-x="640" 
-d="M256.47 231.23l86.7305 -109.181s-16.6006 -102.359 -76.5703 -150.12c-59.9697 -47.7793 -266.63 -34.1201 -266.63 -34.1201s3.7998 23.1406 11 55.4307l94.6201 112.17c3.96973 4.7002 -0.870117 11.6201 -6.65039 9.5l-60.3994 -22.0898
-c14.4395 41.6602 32.7197 80.04 54.5996 97.4697c59.9697 47.7598 163.3 40.9404 163.3 40.9404zM636.53 416.97c5.48926 -6.91016 4.33984 -16.96 -2.5498 -22.4395l-232.48 -177.8l34.0898 -42.9209c5.08008 -6.39941 1.66016 -15.9092 -6.33984 -17.5996
-l-58.7998 -12.4502l-86.7305 109.181l25.3301 54.5498c3.4502 7.41992 13.5 8.62012 18.5898 2.20996l34.1406 -42.9697l232.479 177.8c6.89062 5.48926 16.9199 4.33984 22.4102 -2.56055z" />
-    <glyph glyph-name="chalkboard" unicode="&#xf51b;" horiz-adv-x="640" 
-d="M96 384v-352h-64v376c0 22.0596 17.9404 40 40 40h496c22.0596 0 40 -17.9404 40 -40v-376h-64v352h-448zM624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-608c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h272v64h192v-64
-h144z" />
-    <glyph glyph-name="chalkboard-teacher" unicode="&#xf51c;" horiz-adv-x="640" 
-d="M208 96c62.0596 0 112.33 -50.4805 112 -112.62c-0.139648 -26.2598 -21.7305 -47.3799 -48 -47.3799h-224c-26.2695 0 -47.8604 21.1201 -48 47.3799c-0.330078 62.1396 49.9404 112.62 112 112.62c2.38965 0 4.76953 -0.349609 7.0498 -1.08984
-c12.9697 -4.20996 26.6006 -6.91016 40.9502 -6.91016s27.9805 2.7002 40.9404 6.91016c2.2793 0.740234 4.66992 1.08984 7.05957 1.08984zM160 128c-53.0195 0 -96 42.9805 -96 96s42.9805 96 96 96s96 -42.9805 96 -96s-42.9805 -96 -96 -96zM592 448
-c26.4697 0 48 -22.25 48 -49.5898v-316.82c0 -27.3398 -21.5303 -49.5898 -48 -49.5898h-244.55c-6.57031 25.2695 -20.5898 47.3096 -39.6904 64h76.2402v64h128v-64h64v288h-352v-49.7998c-18.9004 11.0195 -40.5801 17.7998 -64 17.7998v46.4102
-c0 27.3398 21.5303 49.5898 48 49.5898h384z" />
-    <glyph glyph-name="church" unicode="&#xf51d;" horiz-adv-x="640" 
-d="M464.46 201.32c9.63965 -5.78027 15.54 -16.2002 15.54 -27.4404v-237.88h-96v96c0 35.3496 -28.6504 64 -64 64s-64 -28.6504 -64 -64v-96h-96v237.88c0 11.6572 6.21387 21.8467 15.54 27.4404l112.46 67.4795v51.2002h-48c-8.83984 0 -16 7.16016 -16 16v32
-c0 8.83984 7.16016 16 16 16h48v48c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-48h48c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-48v-51.2002zM0 52.04c0.00292969 13.1953 7.97949 24.5215 19.3896 29.4199l108.61 46.54
-v-192h-112c-8.83984 0 -16 7.16016 -16 16v100.04zM620.61 81.46c11.7598 -5.0498 19.3896 -16.6201 19.3896 -29.4199v-100.04c0 -8.83984 -7.16016 -16 -16 -16h-112v192z" />
-    <glyph glyph-name="coins" unicode="&#xf51e;" 
-d="M0 42.7002c41.2998 -29.1006 116.8 -42.7002 192 -42.7002s150.7 13.5996 192 42.7002v-42.7002c0 -35.2998 -86 -64 -192 -64s-192 28.7002 -192 64v42.7002zM320 320c-106 0 -192 28.7002 -192 64s86 64 192 64s192 -28.7002 192 -64s-86 -64 -192 -64zM0 147.6
-c41.2998 -34 116.9 -51.5996 192 -51.5996s150.7 17.5996 192 51.5996v-51.5996c0 -35.2998 -86 -64 -192 -64s-192 28.7002 -192 64v51.5996zM416 136.6v63.6006c38.7002 6.89941 72.7998 18.0996 96 34.5v-42.7002c0 -23.7002 -38.7002 -44.2998 -96 -55.4004zM192 288
-c106 0 192 -35.7998 192 -80s-86 -80 -192 -80s-192 35.7998 -192 80s86 80 192 80zM411.3 231.7c-8.7998 23.7002 -30.5 42.8994 -60 57.2002c64.2002 3.19922 125.2 16.6992 160.7 41.7998v-42.7002c0 -24.2998 -40.7002 -45.5 -100.7 -56.2998z" />
-    <glyph glyph-name="compact-disc" unicode="&#xf51f;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM88 192c0 88.2002 71.7998 160 160 160v32c-105.9 0 -192 -86.0996 -192 -192h32zM248 96c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96zM248 224
-c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32z" />
-    <glyph glyph-name="crow" unicode="&#xf520;" horiz-adv-x="640" 
-d="M544 416c53.0195 0 96 -28.6504 96 -64l-96 -16v-80c0 -87.2598 -58.2598 -160.8 -137.97 -184.14l41.2393 -111.53c2.27051 -6.23047 -0.939453 -13.1104 -7.16992 -15.3799l-22.5498 -8.20996c-6.22949 -2.27051 -13.1094 0.939453 -15.3799 7.16992l-44.5098 120.38
-c-1.90039 -0.0595703 -3.75 -0.290039 -5.66016 -0.290039h-39.0596l38.3291 -103.68c2.27051 -6.23047 -0.939453 -13.1104 -7.16992 -15.3799l-22.5498 -8.20996c-6.22949 -2.27051 -13.1094 0.939453 -15.3799 7.16992l-44.4102 120.1h-96.4902l-121.539 -60.7695
-c-20.0908 -10.04 -43.7305 4.56934 -43.7305 27.0293c0.00195312 9.8877 4.7373 18.6572 12.0898 24.1699l371.91 292.59v20.9805c0 44.1797 35.8203 80 80 80c26.0898 0 49.04 -12.6797 63.6396 -32h16.3604zM464 344c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24
-s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" />
-    <glyph glyph-name="crown" unicode="&#xf521;" horiz-adv-x="640" 
-d="M528 0c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-416c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h416zM592 320c26.5 0 48 -21.5 48 -48s-21.5 -48 -48 -48c-2.59961 0 -5.2002 0.400391 -7.7002 0.799805l-72.2998 -192.8h-384
-l-72.2998 192.8c-2.5 -0.399414 -5.10059 -0.799805 -7.7002 -0.799805c-26.5 0 -48 21.5 -48 48s21.5996 48 48.0996 48s48 -21.5 48 -48c0 -7.09961 -1.69922 -13.7998 -4.39941 -19.7998l72.2998 -43.4004c15.2998 -9.2002 35.2998 -4 44.2002 11.6006l81.5 142.6
-c-10.7002 8.7998 -17.7002 22 -17.7002 37c0 26.5 21.5 48 48 48s48 -21.5 48 -48c0 -15 -7 -28.2002 -17.7002 -37l81.5 -142.6c8.90039 -15.6006 28.7998 -20.8008 44.2002 -11.6006l72.4004 43.4004c-2.80078 6.09961 -4.40039 12.7002 -4.40039 19.7998
-c0 26.5 21.5 48 48 48z" />
-    <glyph glyph-name="dice" unicode="&#xf522;" horiz-adv-x="640" 
-d="M592 256c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-224c-26.5098 0 -48 21.4902 -48 48v46.4199l136.26 136.26c24.1201 24.1201 29.6904 59.7305 17 89.3203h118.74zM480 72c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24
-s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM433.63 258.7c19.1602 -19.1602 19.1602 -50.2305 0 -69.4004l-174.939 -174.93c-19.1602 -19.1602 -50.2305 -19.1602 -69.3906 0l-174.93 174.939c-19.1602 19.1602 -19.1602 50.2305 0 69.3906l174.939 174.93
-c19.1602 19.1602 50.2305 19.1602 69.3906 0zM96 200c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM224 72c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z
-M224 200c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM224 328c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM352 200c13.25 0 24 10.75 24 24
-c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" />
-    <glyph glyph-name="dice-five" unicode="&#xf523;" horiz-adv-x="448" 
-d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM128 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM128 256
-c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM224 160c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
-s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="dice-four" unicode="&#xf524;" horiz-adv-x="448" 
-d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM128 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM128 256
-c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
-s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="dice-one" unicode="&#xf525;" horiz-adv-x="448" 
-d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM224 160c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="dice-six" unicode="&#xf526;" horiz-adv-x="448" 
-d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM128 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM128 160
-c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM128 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
-s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 160c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="dice-three" unicode="&#xf527;" horiz-adv-x="448" 
-d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM128 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM224 160
-c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="dice-two" unicode="&#xf528;" horiz-adv-x="448" 
-d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM128 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 64
-c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="divide" unicode="&#xf529;" horiz-adv-x="448" 
-d="M224 96c35.3496 0 64 -28.6504 64 -64s-28.6504 -64 -64 -64s-64 28.6504 -64 64s28.6504 64 64 64zM224 288c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64s64 -28.6504 64 -64s-28.6504 -64 -64 -64zM416 240c17.6699 0 32 -14.3301 32 -32v-32
-c0 -17.6699 -14.3301 -32 -32 -32h-384c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h384z" />
-    <glyph glyph-name="door-closed" unicode="&#xf52a;" horiz-adv-x="640" 
-d="M624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-608c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h111.99v397.2c0 28.0195 21.5293 50.7998 48 50.7998h288.01c26.4697 0 48 -22.7803 48 -50.7998v-397.2h112zM415.99 160
-c17.6797 0 32.0098 14.3301 32 32c0 17.6699 -14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="door-open" unicode="&#xf52b;" horiz-adv-x="640" 
-d="M624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-144v384h-96v64h112c26.4697 0 48 -22.1904 48 -49.4502v-334.55h80zM312.24 446.99c20.2002 5.24023 39.7598 -10.5898 39.7598 -32.1699v-478.82h-336c-8.83984 0 -16 7.16016 -16 16v32
-c0 8.83984 7.16016 16 16 16h80v365.08c0 15.2197 9.99023 28.4795 24.2402 32.1699zM264 160c13.25 0 24 14.3301 24 32s-10.75 32 -24 32s-24 -14.3301 -24 -32s10.75 -32 24 -32z" />
-    <glyph glyph-name="equals" unicode="&#xf52c;" horiz-adv-x="448" 
-d="M416 144c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32h-384c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h384zM416 336c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32h-384c-17.6699 0 -32 14.3301 -32 32
-v32c0 17.6699 14.3301 32 32 32h384z" />
-    <glyph glyph-name="feather" unicode="&#xf52d;" 
-d="M467.14 403.16c50.5703 -50.5205 61.7002 -124.9 16.2607 -199.36l-131.54 -43.7998h97.7793c-9.92969 -10.6797 3.68066 3.07031 -46.3096 -46.8604l-147.57 -49.1396h98.1904c-74.9502 -73.1104 -194.53 -70.6504 -246.83 -54.9404l-66.1006 -66.0293
-c-9.37988 -9.37012 -24.5996 -9.37012 -33.9795 0s-9.37988 24.5693 0 33.9395l259.52 259.25c6.25 6.25 6.25 16.3799 0 22.6299s-16.3896 6.25 -22.6494 0l-178.44 -178.25c-6.75 60.3408 3.18066 150.78 63.6406 211.17c24.7695 24.7402 7.13965 7.14062 85.75 85.6602
-c90.6094 90.5107 189.729 88.21 252.279 25.7305z" />
-    <glyph glyph-name="frog" unicode="&#xf52e;" horiz-adv-x="576" 
-d="M446.53 350.57c0 0 58.4297 -19.0605 98.9893 -41.2803c18.7607 -10.2803 30.4805 -29.8301 30.4805 -51.2305c0 -21.793 -11.9512 -40.7695 -29.71 -50.7295l-154.44 -86.6504l98.5205 -104.68h53.6299c17.6699 0 32 -14.3301 32 -32c0 -8.83984 -7.16016 -16 -16 -16
-h-90.3799l-118.53 125.94c5.07031 54.1494 -29.9297 85.0596 -40.7998 93.21c-36.8496 27.6191 -88.29 27.6592 -125.13 0l-34.7803 -26.0908c-7.07031 -5.2998 -8.49023 -15.3291 -3.18945 -22.4092c5.31934 -7.10059 15.3496 -8.5 22.4092 -3.19043l32.7607 24.5898
-c20.6895 15.5303 48.3496 20.8105 72.2393 10.8799c44.0605 -18.3193 57.8506 -70.3701 33.71 -106.6l-35.7998 -48.3301h79.4902c17.6699 0 32 -14.3301 32 -32c0 -8.83984 -7.16016 -16 -16 -16h-304c-34.9199 0 -63.8896 28.0996 -64 63.0195
-c-0.5 166.86 126.75 304.021 289.46 319.44c6.82031 37.25 39.3096 65.54 78.54 65.54c39.1904 0 71.6699 -28.2305 78.5303 -65.4297zM368 312c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24c-13.2598 0 -24 -10.7402 -24 -24c0 -13.25 10.7402 -24 24 -24z" />
-    <glyph glyph-name="gas-pump" unicode="&#xf52f;" 
-d="M336 0c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-320c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h320zM493.2 340.7c12 -12 18.7998 -28.2998 18.7998 -45.2998v-223.4c0 -42.2002 -36.5 -76 -79.5 -71.7002
-c-37.5 3.90039 -64.5 38.2002 -64.5 75.9004v27.7998c0 22.0996 -17.9004 40 -40 40h-8v-112h-288v352c0 35.2998 28.7002 64 64 64h160c35.2998 0 64 -28.7002 64 -64v-192h8c48.5996 0 88 -39.4004 88 -88v-32c0 -13.2002 10.7998 -24 24 -24s24 10.7998 24 24v160.8
-c-27.0996 3.90039 -48 27.1006 -48 55.2002v62.0996l-37.7002 37.7002c-6.2002 6.2002 -6.2002 16.4004 0 22.6006l11.2998 11.2998c6.2002 6.2002 16.4004 6.2002 22.6006 0zM256 256v128h-160v-128h160z" />
-    <glyph glyph-name="glasses" unicode="&#xf530;" horiz-adv-x="576" 
-d="M574.1 167.63c1.26074 -5.07031 1.90039 -10.2695 1.90039 -15.5v-70.25c0 -62.8896 -51.5801 -113.88 -115.2 -113.88h-37.1201c-60.2793 0 -110.37 45.9404 -114.87 105.37l-2.92969 38.6299h-35.75l-2.92969 -38.6299
-c-4.50977 -59.4297 -54.6006 -105.37 -114.88 -105.37h-37.1201c-63.6201 0 -115.2 50.9902 -115.2 113.89v70.25c0.000976562 5.35059 0.663086 10.5205 1.90039 15.4902l45.3398 181.73c5.91016 23.6895 21.5898 44.0293 43 55.7998
-c21.4395 11.7402 46.9697 14.1094 70.1895 6.33008l15.25 -5.08008c8.39062 -2.79004 12.9199 -11.8604 10.1201 -20.2402l-5.05957 -15.1797c-2.79004 -8.37988 -11.8506 -12.9102 -20.2305 -10.1201l-13.1699 4.38965
-c-10.8701 3.62012 -22.9902 3.57031 -33.1494 -1.72949c-10.29 -5.36035 -17.5908 -14.5605 -20.3809 -25.8105l-38.46 -153.83c22.1904 6.81055 49.79 12.46 81.21 12.46c34.7803 0 73.9902 -7.00977 114.86 -26.75h73.1797
-c40.8701 19.7207 80.0801 26.7402 114.851 26.7402c31.4102 0 59.0098 -5.64941 81.2002 -12.46l-38.46 153.82c-2.80078 11.2598 -10.0801 20.4502 -20.3701 25.8193c-10.1602 5.30078 -22.29 5.35059 -33.1602 1.73047l-13.1797 -4.38965
-c-8.38086 -2.79004 -17.4404 1.73926 -20.2305 10.1201l-5.05957 15.1797c-2.80078 8.37988 1.72949 17.4502 10.1191 20.2402l15.25 5.08008c23.2207 7.7793 48.75 5.39941 70.1904 -6.33008c21.4102 -11.7607 37.0898 -32.1104 43 -55.8105zM203.38 78.21l3.12988 41.2197
-c-22.6699 8.58984 -46.0693 12.9199 -69.9297 12.9199c-29.1602 0 -54.46 -6.42969 -72.5801 -12.9199v-37.54c0 -27.5098 22.9697 -49.8896 51.2002 -49.8896h37.1201c26.6602 0 49.0898 20.2998 51.0596 46.21zM512 81.8799l-0.00976562 37.54
-c-18.1201 6.49023 -43.4307 12.9297 -72.5498 12.9297c-23.8701 0 -47.2803 -4.33008 -69.9502 -12.9199l3.12988 -41.2197c1.95996 -25.9102 24.3896 -46.21 51.0596 -46.21h37.1201c28.2305 0 51.2002 22.3701 51.2002 49.8799z" />
-    <glyph glyph-name="greater-than" unicode="&#xf531;" horiz-adv-x="384" 
-d="M365.52 238.15c11.2803 -5.25 18.4805 -16.5605 18.4902 -29.0107v-34.2295c-0.00195312 -12.8398 -7.55469 -23.9062 -18.4795 -29l-306.471 -142.91c-16.0195 -7.46973 -35.0596 -0.540039 -42.5293 15.4805l-13.5205 29
-c-7.46973 16.0195 -0.540039 35.0596 15.4805 42.5293l218.47 101.891l-218.43 101.85c-16.0605 7.49023 -23.0107 26.5801 -15.5205 42.6396l13.5703 29.0801c7.49023 16.0605 26.5801 23.0107 42.6396 15.5205z" />
-    <glyph glyph-name="greater-than-equal" unicode="&#xf532;" horiz-adv-x="448" 
-d="M55.2197 340.31c-18.29 6 -27.7393 24.2607 -21.0996 40.79l12.0303 29.9199c6.63965 16.5303 26.8594 25.0605 45.1494 19.0605l301.72 -119.98c13.7705 -4.51953 22.9805 -16.6094 22.9805 -30.1699v-15.96c0 -13.5596 -9.20996 -25.6494 -22.9805 -30.1699
-l-301.409 -119.859c-18.3906 -6.04004 -38.7002 2.54004 -45.3799 19.1494l-12.0908 30.0801c-6.67969 16.6104 2.81055 34.9697 21.2002 41l175.44 68.0498zM424 48c13.25 0 24 -10.7402 24 -24v-48c0 -13.25 -10.75 -24 -24 -24h-400c-13.25 0 -24 10.75 -24 24v48
-c0 13.2598 10.75 24 24 24h400z" />
-    <glyph glyph-name="helicopter" unicode="&#xf533;" horiz-adv-x="640" 
-d="M304 64c-10.4707 0 -19.7627 5.01465 -25.5996 12.7998l-86.4004 115.2l-160 64l-31.5098 108.12c-2.53027 10.0996 5.10938 19.8799 15.5195 19.8799h39.9902c5.03027 0 9.78027 -2.37012 12.7998 -6.40039l43.2002 -57.5996h208v64h-176c-8.83984 0 -16 7.16016 -16 16
-v32c0 8.83984 7.16016 16 16 16h416c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-176v-64c123.71 0 224 -100.29 224 -224c0 -17.6699 -14.3301 -32 -32 -32h-272zM416 252.49v-124.49h124.79c-12.7598 62.5596 -62.2402 111.7 -124.79 124.49z
-M635.37 -10.8096c6.58984 -6.61035 6.04004 -17.5205 -0.980469 -23.6602c-33.1494 -29.0498 -53.5693 -29.5205 -68.4492 -29.5205h-325.94c-8.83984 0 -16 7.18066 -16 16.0303v32.0596c0 8.85059 7.16016 16.0303 16 16.0303h325.94
-c10.7998 0 17.5498 4.48047 24.6396 11.25c6.40039 6.11035 16.3896 6.27051 22.6396 0.00976562z" />
-    <glyph glyph-name="infinity" unicode="&#xf534;" horiz-adv-x="640" 
-d="M471.1 352c93.1006 0 168.9 -71.7998 168.9 -160s-75.7998 -160 -168.9 -160c-66.0996 0 -117.8 41.2998 -151.1 78.5996c-33.2998 -37.2998 -85 -78.5996 -151.1 -78.5996c-93.1006 0 -168.9 71.7998 -168.9 160s75.7998 160 168.9 160
-c66.0996 0 117.8 -41.2998 151.1 -78.5996c33.2998 37.2998 85 78.5996 151.1 78.5996zM168.9 128c38.0996 0 73.5996 36.4004 94 64c-20.6006 27.9004 -55.8008 64 -94 64c-40.2002 0 -72.9004 -28.7002 -72.9004 -64s32.7002 -64 72.9004 -64zM471.1 128
-c40.2002 0 72.9004 28.7002 72.9004 64s-32.7002 64 -72.9004 64c-38.0996 0 -73.5996 -36.4004 -94 -64c20.6006 -27.9004 55.8008 -64 94 -64z" />
-    <glyph glyph-name="kiwi-bird" unicode="&#xf535;" horiz-adv-x="576" 
-d="M575.81 230.02c0.300781 -5.7793 0.160156 -246.02 0.160156 -246.02c0 -7.30957 -4.95996 -13.7002 -12.0498 -15.5c-1.30957 -0.339844 -2.63965 -0.5 -3.9502 -0.5c-5.75 0 -11.1895 3.11035 -14.0498 8.33984l-74.4102 136.44
-c-7.04004 -0.470703 2.43066 -0.780273 -23.0498 -0.780273c-54.5996 0 -106.39 -19.25 -152.13 -49.0596c-12.46 -8.12012 -26.0996 -14.4502 -40.3398 -19.5107v-59.4297c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v49.1797
-c-5.32031 -0.449219 -10.5605 -1.17969 -16 -1.17969c-16.6006 0 -32.6406 2.2998 -48 6.25977v-54.2598c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v73.9902c-57.3105 33.21 -95.9502 95.0596 -95.9902 166.01
-c-0.0800781 145.76 129.3 182.88 147.31 186.94c57.1709 12.9199 111.221 0.259766 153.21 -28.7002c43.4902 -29.9902 94.9209 -46.2402 147.74 -46.2402h9.37012c60.6504 0 115.01 -45.4102 118.18 -105.98zM463.97 200c13.25 0 24 10.75 24 24
-c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM543.97 46.75v99.0596c-11.1299 -11.3799 -24.7393 -20.1494 -39.8594 -25.9795z" />
-    <glyph glyph-name="less-than" unicode="&#xf536;" horiz-adv-x="384" 
-d="M365.46 90.2598c16.0703 -7.49023 23.0205 -26.5801 15.5303 -42.6396l-13.5605 -29.0801c-7.48926 -16.0596 -26.5801 -23.0098 -42.6396 -15.5205l-306.31 142.83c-11.2705 5.25 -18.4805 16.5605 -18.4805 29v34.2402c0.00488281 12.8389 7.55664 23.9043 18.4805 29
-l306.46 142.91c16.0195 7.46973 35.0596 0.540039 42.5293 -15.4805l13.5205 -29c7.46973 -16.0195 0.540039 -35.0596 -15.4805 -42.5293l-218.47 -101.88z" />
-    <glyph glyph-name="less-than-equal" unicode="&#xf537;" horiz-adv-x="448" 
-d="M54.9805 233.8c-13.7705 4.52051 -22.9805 16.6104 -22.9805 30.1699v15.96c0 13.5703 9.20996 25.6602 22.9805 30.1807l301.71 119.96c18.29 6 38.5098 -2.53027 45.1494 -19.0605l12.0303 -29.9199c6.63965 -16.5195 -2.81055 -34.79 -21.1006 -40.79
-l-175.56 -68.0898l175.44 -68.0498c18.3896 -6.03027 27.8896 -24.3906 21.21 -41l-12.0908 -30.0801c-6.66992 -16.6104 -26.9893 -25.1797 -45.3799 -19.1504zM424 48c13.25 0 24 -10.7402 24 -24v-48c0 -13.25 -10.75 -24 -24 -24h-400c-13.25 0 -24 10.75 -24 24v48
-c0 13.2598 10.75 24 24 24h400z" />
-    <glyph glyph-name="memory" unicode="&#xf538;" horiz-adv-x="640" 
-d="M640 317.06c-18.5996 -6.60938 -32 -24.1895 -32 -45.0596s13.4004 -38.4502 32 -45.0596v-98.9404h-640v98.9404c18.5996 6.60938 32 24.1895 32 45.0596s-13.4004 38.4502 -32 45.0596v34.9404c0 17.6699 14.3301 32 32 32h576c17.6699 0 32 -14.3301 32 -32v-34.9404z
-M224 192v128h-64v-128h64zM352 192v128h-64v-128h64zM480 192v128h-64v-128h64zM0 0v96h640v-96h-64v26.6699c0 8.83984 -7.16016 16 -16 16s-16 -7.16016 -16 -16v-26.6699h-128v26.6699c0 8.83984 -7.16016 16 -16 16s-16 -7.16016 -16 -16v-26.6699h-128v26.6699
-c0 8.83984 -7.16016 16 -16 16s-16 -7.16016 -16 -16v-26.6699h-128v26.6699c0 8.83984 -7.16016 16 -16 16s-16 -7.16016 -16 -16v-26.6699h-64z" />
-    <glyph glyph-name="microphone-alt-slash" unicode="&#xf539;" horiz-adv-x="640" 
-d="M633.82 -10.0996c6.97949 -5.43066 8.22949 -15.4805 2.81934 -22.4502l-19.6396 -25.2705c-5.42969 -6.97949 -15.4805 -8.23926 -22.46 -2.80957l-588.36 454.729c-6.97949 5.43066 -8.22949 15.4805 -2.80957 22.4502l19.6396 25.2705
-c5.41992 6.97949 15.4805 8.22949 22.46 2.80957l178.53 -138v45.3604c0 53.0195 42.9805 96 96 96s96 -42.9805 96 -96h-85.3301c-5.88965 0 -10.6699 -3.58008 -10.6699 -8v-16c0 -4.41992 4.78027 -8 10.6699 -8h85.3301v-32h-85.3301
-c-5.88965 0 -10.6699 -3.58008 -10.6699 -8v-16c0 -4.41992 4.78027 -8 10.6699 -8h85.3301v-32h-85.0596l41.3994 -32h43.6699c0 -10.4502 -2.17969 -20.2705 -5.2793 -29.6699l26.5498 -20.5205c6.75977 15.4004 10.7197 32.2803 10.7197 50.2002v48
-c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-48c0 -28.9805 -7.25977 -56.21 -19.7402 -80.3301zM400 -16c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-160c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h56
-v34.1504c-88.0303 12.1396 -152 92.0498 -152 181.689v6.85059l52.0303 -40.2207c12.4395 -53.2197 55.3301 -96.3994 111.18 -101.85c6.94043 -0.669922 13.6396 -0.200195 20.3496 0.200195l50.4004 -38.96c-10.8604 -3.80078 -22.25 -6.45996 -33.96 -8.08008v-33.7803
-h56z" />
-    <glyph glyph-name="money-bill-wave" unicode="&#xf53a;" horiz-adv-x="640" 
-d="M621.16 393.54c11.6094 -4.87012 18.8398 -16.8301 18.8496 -29.4697v-317.25c0 -18.4902 -15.04 -31.8105 -32.25 -31.8105c-3.39941 0 -6.87988 0.520508 -10.3496 1.62012c-30.8906 9.7998 -61.7598 13.7197 -92.6504 13.7197
-c-123.17 0 -246.34 -62.3496 -369.51 -62.3496c-38.7998 0 -77.6201 6.19043 -116.41 22.4697c-11.6094 4.86035 -18.8398 16.8301 -18.8398 29.46v317.261c0 18.4893 15.04 31.8096 32.25 31.8096c3.40039 0 6.87988 -0.519531 10.3496 -1.62012
-c30.8906 -9.7998 61.7607 -13.7197 92.6504 -13.7197c123.17 0 246.33 62.3496 369.5 62.3398c38.7998 0 77.6201 -6.19043 116.41 -22.46zM48 315.78v-60.4707c31 0 56.8398 22.1504 62.7197 51.54c-21.5996 1.36035 -42.5996 3.89062 -62.7197 8.93066zM48 30.7803
-c20.1201 -7.31055 41.1797 -11.8105 63.71 -13.6201c-1.53027 34.1299 -29.3398 61.3994 -63.71 61.3994v-47.7793zM320 96c44.1699 0 80 42.9697 80 96c0 53.0195 -35.8203 96 -80 96s-80 -42.9805 -80 -96c0 -53.0098 35.8096 -96 80 -96zM592 68.2197v57.7207
-c-26.8203 -3.40039 -48.4502 -23.2002 -54.3203 -49.2803c18.6104 -1.58984 36.8008 -4.0498 54.3203 -8.44043zM592 304.33v48.8896c-17.7197 6.43066 -36.2695 10.4902 -55.8096 12.6602c0.949219 -31.8496 24.9199 -57.6396 55.8096 -61.5498z" />
-    <glyph glyph-name="money-bill-wave-alt" unicode="&#xf53b;" horiz-adv-x="640" 
-d="M621.16 393.54c11.6094 -4.87012 18.8398 -16.8301 18.8496 -29.4697v-317.25c0 -18.4902 -15.04 -31.8105 -32.25 -31.8105c-3.39941 0 -6.87988 0.520508 -10.3496 1.62012c-30.8906 9.7998 -61.7598 13.7197 -92.6504 13.7197
-c-123.17 0 -246.34 -62.3496 -369.51 -62.3496c-38.7998 0 -77.6201 6.19043 -116.41 22.4697c-11.6094 4.86035 -18.8398 16.8301 -18.8398 29.46v317.261c0 18.4893 15.04 31.8096 32.25 31.8096c3.40039 0 6.87988 -0.519531 10.3496 -1.62012
-c30.8906 -9.7998 61.7607 -13.7197 92.6504 -13.7197c123.17 0 246.33 62.3496 369.5 62.3398c38.7998 0 77.6201 -6.19043 116.41 -22.46zM320 96c44.1699 0 80 42.9697 80 96c0 53.0195 -35.8203 96 -80 96s-80 -42.9805 -80 -96c0 -53.0098 35.8096 -96 80 -96z" />
-    <glyph glyph-name="money-check" unicode="&#xf53c;" horiz-adv-x="640" 
-d="M0 0v320h640v-320c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32zM448 208v-32c0 -8.83984 7.16016 -16 16 -16h96c8.83984 0 16 7.16016 16 16v32c0 8.83984 -7.16016 16 -16 16h-96c-8.83984 0 -16 -7.16016 -16 -16zM448 88v-16
-c0 -4.41992 3.58008 -8 8 -8h112c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-112c-4.41992 0 -8 -3.58008 -8 -8zM64 184v-16c0 -4.41992 3.58008 -8 8 -8h304c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-304c-4.41992 0 -8 -3.58008 -8 -8z
-M64 88v-16c0 -4.41992 3.58008 -8 8 -8h176c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-176c-4.41992 0 -8 -3.58008 -8 -8zM624 416c8.83984 0 16 -7.16016 16 -16v-48h-640v48c0 8.83984 7.16016 16 16 16h608z" />
-    <glyph glyph-name="money-check-alt" unicode="&#xf53d;" horiz-adv-x="640" 
-d="M608 416c17.6699 0 32 -14.3301 32 -32v-384c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32v384c0 17.6699 14.3301 32 32 32h576zM176 120.12c23.6201 0.629883 42.6699 20.54 42.6699 45.0703c0 19.9697 -12.9902 37.8096 -31.5801 43.3896
-l-45 13.5c-5.16016 1.54004 -8.76953 6.78027 -8.76953 12.7295c0 7.27051 5.2998 13.1904 11.7998 13.1904h28.1104c4.55957 0 8.94922 -1.29004 12.8193 -3.71973c3.24023 -2.03027 7.36035 -1.91016 10.1299 0.729492l11.75 11.21
-c3.53027 3.37012 3.33008 9.20996 -0.569336 12.1406c-9.10059 6.83984 -20.0801 10.7695 -31.3701 11.3496v16.29c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-16.1201c-23.6201 -0.629883 -42.6699 -20.5498 -42.6699 -45.0703
-c0 -19.9697 12.9893 -37.8096 31.5801 -43.3896l45 -13.5c5.15918 -1.54004 8.76953 -6.78027 8.76953 -12.7295c0 -7.27051 -5.2998 -13.1904 -11.7998 -13.1904h-28.1104c-4.55957 0 -8.9502 1.2998 -12.8193 3.71973
-c-3.24023 2.03027 -7.36035 1.91016 -10.1309 -0.729492l-11.75 -11.21c-3.5293 -3.37012 -3.3291 -9.20996 0.570312 -12.1406c9.10059 -6.83008 20.0801 -10.7695 31.3701 -11.3496v-16.29c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16.1201zM416 136v16
-c0 4.41992 -3.58008 8 -8 8h-112c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h112c4.41992 0 8 3.58008 8 8zM576 136v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8z
-M576 232v16c0 4.41992 -3.58008 8 -8 8h-272c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h272c4.41992 0 8 3.58008 8 8z" />
-    <glyph glyph-name="not-equal" unicode="&#xf53e;" horiz-adv-x="448" 
-d="M416 240h-98.4199l-74.5303 -96h172.95c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32h-247.48l-82.0898 -105.73c-5.37012 -7.00977 -15.4102 -8.34961 -22.4297 -2.96973l-25.4102 19.46c-7.00977 5.37988 -8.33984 15.4199 -2.96973 22.4307
-l51.8701 66.8096h-55.4902c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h130.03l74.5293 96h-204.56c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h279.09l82.0801 105.73c5.37988 7.00977 15.4199 8.34961 22.4404 2.96973
-l25.4092 -19.46c7.01074 -5.37012 8.34082 -15.4102 2.9707 -22.4307l-51.8701 -66.8096h23.8799c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32z" />
-    <glyph glyph-name="palette" unicode="&#xf53f;" 
-d="M204.3 443c163.8 31.9004 307.2 -92.0996 307.7 -249.7c-0.0996094 -35.7002 -29.0996 -65.2998 -64.9004 -65.2998h-79.6992c-51 0 -84 -53 -60.9004 -98.4004c18.9004 -37.0996 -1.2998 -85.2998 -42.5 -91.6992c-127.1 -19.7002 -295.8 119.699 -258.8 306.699
-c19.5996 99.1006 99.7002 179 199.1 198.4zM96 128c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM128 256c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM256 320
-c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM384 256c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="parking" unicode="&#xf540;" horiz-adv-x="448" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM240 128c52.9004 0 96 43.0996 96 96s-43.0996 96 -96 96h-96c-8.7998 0 -16 -7.2002 -16 -16v-224c0 -8.7998 7.2002 -16 16 -16h32
-c8.7998 0 16 7.2002 16 16v48h48zM240 256c17.5996 0 32 -14.4004 32 -32s-14.4004 -32 -32 -32h-48v64h48z" />
-    <glyph glyph-name="percentage" unicode="&#xf541;" horiz-adv-x="384" 
-d="M109.25 274.75c-24.9902 -25 -65.5098 -25 -90.5098 0c-24.9902 24.9902 -24.9902 65.5195 0 90.5098s65.5195 24.9902 90.5098 0s24.9902 -65.5195 0 -90.5098zM365.25 109.26c25 -25 25 -65.5195 0 -90.5098c-24.9902 -24.9902 -65.5195 -24.9902 -90.5098 0
-s-24.9902 65.5195 0 90.5098s65.5195 24.9902 90.5098 0zM363.31 340.69c12.5 -12.5 12.5 -32.7607 0 -45.25l-274.75 -274.75c-12.4893 -12.5 -32.75 -12.5 -45.25 0l-22.6191 22.6191c-12.5 12.4902 -12.5 32.75 0 45.25l274.75 274.75c12.4893 12.5 32.75 12.5 45.25 0z
-" />
-    <glyph glyph-name="project-diagram" unicode="&#xf542;" horiz-adv-x="640" 
-d="M384 128c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32h-128c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h128zM192 416v-32h224v-64h-224v-47.5098l64.2803 -112.49h-0.280273c-23.5996 0 -44.0195 -12.9805 -55.1201 -32.04
-l-73.1602 128.04h-95.7197c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h128c17.6699 0 32 -14.3301 32 -32zM608 448c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32h-128c-17.6699 0 -32 14.3301 -32 32v128
-c0 17.6699 14.3301 32 32 32h128z" />
-    <glyph glyph-name="receipt" unicode="&#xf543;" horiz-adv-x="384" 
-d="M358.4 444.8c10.5996 7.90039 25.5996 0.400391 25.5996 -12.7998v-480c0 -13.2002 -15.0996 -20.7002 -25.5996 -12.7998l-38.4004 44.7998l-54.4004 -44.7998c-2.66602 -2.01953 -6.01367 -3.21777 -9.6123 -3.21777c-3.59961 0 -6.9209 1.19824 -9.58691 3.21777
-l-54.4004 44.7998l-54.4004 -44.7998c-2.66602 -2.01953 -6.01367 -3.21777 -9.6123 -3.21777c-3.59961 0 -6.9209 1.19824 -9.58691 3.21777l-54.4004 44.7998l-38.4004 -44.7998c-10.5996 -7.90039 -25.5996 -0.400391 -25.5996 12.7998v480
-c0 13.2002 15 20.7002 25.5996 12.7998l38.4004 -44.7998l54.4004 44.7998c2.66602 2.01953 6.01367 3.21777 9.6123 3.21777c3.59961 0 6.9209 -1.19824 9.58691 -3.21777l54.4004 -44.7998l54.4004 44.7998c2.66602 2.01953 6.01367 3.21777 9.6123 3.21777
-c3.59961 0 6.9209 -1.19824 9.58691 -3.21777l54.4004 -44.7998zM320 88v16c0 4.40039 -3.59961 8 -8 8h-240c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h240c4.40039 0 8 3.59961 8 8zM320 184v16c0 4.40039 -3.59961 8 -8 8h-240
-c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h240c4.40039 0 8 3.59961 8 8zM320 280v16c0 4.40039 -3.59961 8 -8 8h-240c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h240c4.40039 0 8 3.59961 8 8z" />
-    <glyph glyph-name="robot" unicode="&#xf544;" horiz-adv-x="640" 
-d="M32 224h32v-192h-32h-0.0390625c-17.6406 0 -31.9619 14.3213 -31.9619 31.9619c0 0.0126953 0.000976562 0.0253906 0.000976562 0.0380859v128v0.0390625c0 17.6406 14.3213 31.9619 31.9619 31.9619c0.0126953 0 0.0253906 -0.000976562 0.0380859 -0.000976562z
-M544 272v-272c-0.0351562 -35.3066 -28.6934 -63.9648 -64 -64h-320c-35.3066 0.0351562 -63.9648 28.6934 -64 64v272v0.0263672c0 44.1387 35.835 79.9746 79.9736 79.9746c0.00878906 0 0.0175781 -0.000976562 0.0263672 -0.000976562h112v64
-c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32v-64h112h0.0263672c44.1387 0 79.9746 -35.835 79.9746 -79.9736c0 -0.00878906 -0.000976562 -0.0175781 -0.000976562 -0.0263672zM264 192c0 22.0762 -17.9238 40 -40 40s-40 -17.9238 -40 -40s17.9238 -40 40 -40
-c22.0752 0 40 17.9248 40 40zM256 64h-64v-32h64v32zM352 64h-64v-32h64v32zM456 192c0 22.0762 -17.9238 40 -40 40s-40 -17.9238 -40 -40s17.9238 -40 40 -40c22.0752 0 40 17.9248 40 40zM448 64h-64v-32h64v32zM640 192v-128v-0.0390625
-c0 -17.6406 -14.3213 -31.9619 -31.9619 -31.9619c-0.0126953 0 -0.0253906 0.000976562 -0.0380859 0.000976562h-32v192h32h0.0390625c17.6406 0 31.9619 -14.3213 31.9619 -31.9619c0 -0.0126953 -0.000976562 -0.0253906 -0.000976562 -0.0380859z" />
-    <glyph glyph-name="ruler" unicode="&#xf545;" horiz-adv-x="640" 
-d="M635.7 280.8c8.7998 -15 3.59961 -34.2002 -11.6006 -42.7998l-496.8 -281.9c-15.2002 -8.59961 -34.7002 -3.5 -43.5 11.5l-79.5996 135.601c-8.7998 15 -3.5 34.0996 11.7002 42.7998l69 39.0996l59.6992 -101.399c2.2002 -3.7998 7.10059 -5.10059 10.9004 -2.90039
-l13.7998 7.7998c3.7998 2.2002 5.10059 7 2.90039 10.7002l-59.7002 101.7l55.2002 31.2998l27.8994 -47.5c2.2002 -3.7998 7.10059 -5.09961 10.9004 -2.89941l13.7998 7.7998c3.7998 2.2002 5.10059 6.89941 2.90039 10.7002l-27.9004 47.3994l55.2002 31.2998
-l59.7002 -101.699c2.2002 -3.80078 7.09961 -5.10059 10.8994 -2.90039l13.8008 7.7998c3.7998 2.2002 5.09961 7 2.89941 10.7002l-59.7998 101.7l55.2002 31.2998l27.8994 -47.2998c2.2002 -3.7998 7.10059 -5.10059 10.9004 -2.90039l13.7998 7.7998
-c3.7998 2.2002 5.10059 6.90039 2.90039 10.7002l-27.9004 47.4004l55.2002 31.2998l59.7002 -101.6c2.2002 -3.80078 7.09961 -5.10059 10.8994 -2.90039l13.8008 7.7998c3.7998 2.2002 5.09961 6.90039 2.89941 10.7002l-59.7002 101.7l69 39.0996
-c15.2002 8.60059 34.7002 3.5 43.5 -11.5z" />
-    <glyph glyph-name="ruler-combined" unicode="&#xf546;" 
-d="M160 160v-41.3799l-158.43 -158.42c-0.660156 2.55957 -1.57031 5.03027 -1.57031 7.7998v448c0 17.6699 14.3301 32 32 32h96c17.6699 0 32 -14.3301 32 -32v-32h-56c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h56v-64h-56
-c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h56v-64h-56c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h56zM480 96c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-448
-c-2.75977 0 -5.24023 0.910156 -7.7998 1.57031l158.43 158.43h41.3701v-56c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v56h64v-56c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v56h64v-56c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8
-v56h32z" />
-    <glyph glyph-name="ruler-horizontal" unicode="&#xf547;" horiz-adv-x="576" 
-d="M544 320c17.6699 0 32 -14.3301 32 -32v-192c0 -17.6699 -14.3301 -32 -32 -32h-512c-17.6699 0 -32 14.3301 -32 32v192c0 17.6699 14.3301 32 32 32h48v-88c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v88h64v-88c0 -4.41992 3.58008 -8 8 -8h16
-c4.41992 0 8 3.58008 8 8v88h64v-88c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v88h64v-88c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v88h64v-88c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v88h48z" />
-    <glyph glyph-name="ruler-vertical" unicode="&#xf548;" horiz-adv-x="256" 
-d="M168 32h88v-64c0 -17.6699 -14.3301 -32 -32 -32h-192c-17.6699 0 -32 14.3301 -32 32v448c0 17.6699 14.3301 32 32 32h192c17.6699 0 32 -14.3301 32 -32v-64h-88c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h88v-64h-88
-c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h88v-64h-88c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h88v-64h-88c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8z" />
-    <glyph glyph-name="school" unicode="&#xf549;" horiz-adv-x="640" 
-d="M0 224c0 17.6699 14.3301 32 32 32h64v-320h-80c-8.83984 0 -16 7.16016 -16 16v272zM360 272c4.41992 0 8 -3.58008 8 -8v-16c0 -4.41992 -3.58008 -8 -8 -8h-48c-4.41992 0 -8 3.58008 -8 8v64c0 4.41992 3.58008 8 8 8h16c4.41992 0 8 -3.58008 8 -8v-40h24z
-M497.75 335.96c8.90039 -5.92969 14.25 -15.9297 14.25 -26.6299v-373.33h-128v144c0 8.83984 -7.16016 16 -16 16h-96c-8.83984 0 -16 -7.16016 -16 -16v-144h-128v373.34c0.00195312 11.1084 5.64453 20.8828 14.25 26.6201l160 106.67
-c5.0752 3.38086 11.2324 5.35156 17.7822 5.35156s12.6426 -1.9707 17.7178 -5.35156zM320 192c44.1797 0 80 35.8203 80 80s-35.8203 80 -80 80s-80 -35.8203 -80 -80s35.8203 -80 80 -80zM608 256c17.6699 0 32 -14.3301 32 -32v-272c0 -8.83984 -7.16016 -16 -16 -16h-80
-v320h64z" />
-    <glyph glyph-name="screwdriver" unicode="&#xf54a;" 
-d="M448 448l64 -64l-96 -128h-62.0596l-83.0303 -83.0303c-4.25 6.79004 -9.07031 13.2705 -14.8701 19.0703c-5.7998 5.80957 -12.2803 10.6201 -19.0703 14.8701l83.0303 83.0303v62.0596zM128 169.41c29.1104 29.1094 76.2998 29.1094 105.41 0
-c29.1094 -29.1104 29.1094 -76.2998 0 -105.41l-117.08 -117.08c-14.5605 -14.5596 -38.1504 -14.5596 -52.71 0l-52.7002 52.7002c-14.5498 14.5596 -14.5498 38.1602 0 52.71z" />
-    <glyph glyph-name="shoe-prints" unicode="&#xf54b;" horiz-adv-x="640" 
-d="M192 288c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64h32v-128h-32zM0 32c0 35.3496 28.6504 64 64 64h32v-128h-32c-35.3496 0 -64 28.6504 -64 64zM337.46 160c90.3604 0 174.54 -32 174.54 -96c0 -45.2197 -39.0996 -97.2998 -148.58 -120.82
-c-31.9795 -6.87012 -64.8896 -8.50977 -97.5801 -6.19922c-27.2998 1.92969 -54.0996 7.76953 -80.3096 15.0498l-57.5303 15.9697v128c60.21 0 79.9404 15.6201 104.73 32c28.5693 18.8799 69.8193 32 104.729 32zM491.42 440.81
-c109.48 -23.5098 148.58 -75.5898 148.58 -120.81c0 -64 -84.1797 -96 -174.54 -96c-34.9102 0 -76.1602 13.1201 -104.729 32c-24.79 16.3799 -44.5303 32 -104.73 32v128l57.5303 15.9697c26.21 7.27051 53.0098 13.1104 80.3096 15.04
-c32.6904 2.32031 65.6006 0.669922 97.5801 -6.2002z" />
-    <glyph glyph-name="skull" unicode="&#xf54c;" 
-d="M256 448c141.4 0 256 -100.3 256 -224c0 -70.0996 -36.9004 -132.6 -94.5 -173.7c-9.7002 -6.89941 -15.2002 -18.2002 -13.5 -29.8994l9.40039 -66.2002c1.39941 -9.60059 -6 -18.2002 -15.7002 -18.2002h-77.7002v56c0 4.40039 -3.59961 8 -8 8h-16
-c-4.40039 0 -8 -3.59961 -8 -8v-56h-64v56c0 4.40039 -3.59961 8 -8 8h-16c-4.40039 0 -8 -3.59961 -8 -8v-56h-77.7002c-9.7002 0 -17.0996 8.59961 -15.7002 18.2002l9.40039 66.2002c1.7002 11.7998 -3.90039 23 -13.5 29.8994
-c-57.5996 41.1006 -94.5 103.601 -94.5 173.7c0 123.7 114.6 224 256 224zM160 128c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64s-64 -28.7002 -64 -64s28.7002 -64 64 -64zM352 128c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64s-64 -28.7002 -64 -64
-s28.7002 -64 64 -64z" />
-    <glyph glyph-name="smoking-ban" unicode="&#xf54d;" 
-d="M96 144v64c0 8.7998 7.2002 16 16 16h21.5l96 -96h-117.5c-8.7998 0 -16 7.2002 -16 16zM256 448c141.4 0 256 -114.6 256 -256s-114.6 -256 -256 -256s-256 114.6 -256 256s114.6 256 256 256zM256 0c41.4004 0 79.7002 13.2998 111.1 35.7002l-267.399 267.399
-c-22.4004 -31.3994 -35.7002 -69.6992 -35.7002 -111.1c0 -105.9 86.0996 -192 192 -192zM301.2 192l32 -32h50.7998v32h-82.7998zM412.3 80.9004c22.4004 31.3994 35.7002 69.6992 35.7002 111.1c0 105.9 -86.0996 192 -192 192
-c-41.4004 0 -79.7002 -13.2998 -111.1 -35.7002l124.3 -124.3h130.8c8.7998 0 16 -7.2002 16 -16v-64c0 -8.7998 -7.2002 -16 -16 -16h-34.7998zM320.6 320c32.1006 0 58.7002 -23.7002 63.3008 -54.5996c0.699219 -4.90039 -3 -9.40039 -8 -9.40039h-16.2002
-c-3.7002 0 -7 2.5 -7.7002 6.09961c-2.7998 14.7002 -15.7998 25.9004 -31.4004 25.9004c-32.0996 0 -58.6992 23.7002 -63.2998 54.5996c-0.700195 4.90039 3 9.40039 8 9.40039h16.2002c3.7002 0 7 -2.5 7.7002 -6.09961
-c2.7998 -14.7002 15.7998 -25.9004 31.3994 -25.9004z" />
-    <glyph glyph-name="store" unicode="&#xf54e;" horiz-adv-x="616" 
-d="M602 329.4c33.5996 -53.6006 3.7998 -128 -59 -136.4c-4.5 -0.599609 -9 -0.900391 -13.7002 -0.900391c-29.5 0 -55.7002 13 -73.7998 33.1006c-18 -20.1006 -44.2002 -33.1006 -73.7998 -33.1006c-29.5 0 -55.7998 13 -73.7998 33.1006
-c-18 -20.1006 -44.2002 -33.1006 -73.8008 -33.1006c-29.5 0 -55.7998 13 -73.7998 33.1006c-18 -20.1006 -44.2002 -33.1006 -73.7998 -33.1006c-4.59961 0 -9.2002 0.300781 -13.7002 0.900391c-62.5996 8.5 -92.2998 82.9004 -58.7998 136.4l64.9004 103.6
-c5.7998 9.2998 16.0996 15 27.0996 15h404c11 0 21.2998 -5.7002 27.0996 -15zM529.5 160c6.09961 0 12.0996 0.400391 18.2002 1.2002c5.59961 0.700195 11 2 16.3994 3.59961v-196.8c0 -17.7002 -14.2998 -32 -32 -32h-448c-17.6992 0 -32 14.2998 -32 32v196.8
-c5.30078 -1.5 10.8008 -2.7998 16.4004 -3.59961c5.90039 -0.799805 12 -1.2002 18 -1.2002c10 0 19.9004 1.59961 29.5 3.7998v-99.7998h384v99.7998c9.59961 -2.2998 19.5 -3.7998 29.5 -3.7998z" />
-    <glyph glyph-name="store-alt" unicode="&#xf54f;" horiz-adv-x="640" 
-d="M320 64v160h64v-256c0 -17.7002 -14.2998 -32 -32 -32h-256c-17.7002 0 -32 14.2998 -32 32v256h64v-160h192zM634.6 305.8c14.1006 -21.2998 -1.09961 -49.7998 -26.5996 -49.7998h-575.9c-25.5996 0 -40.7998 28.5 -26.5996 49.7998l85.2998 128
-c5.90039 8.90039 15.9004 14.2002 26.6006 14.2002h405.199c10.7002 0 20.7002 -5.2998 26.7002 -14.2002zM512 -48v272h64v-272c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16z" />
-    <glyph glyph-name="stream" unicode="&#xf550;" 
-d="M16 320c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h416c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16h-416zM496 240c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16h-416c-8.83984 0 -16 7.16016 -16 16
-v64c0 8.83984 7.16016 16 16 16h416zM432 64c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16h-416c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h416z" />
-    <glyph glyph-name="stroopwafel" unicode="&#xf551;" 
-d="M188.12 237.26l45.25 -45.2598l-45.2598 -45.25l-45.25 45.25zM301.25 259.88l-45.25 -45.25l-45.25 45.2598l45.25 45.25zM210.75 124.12l45.25 45.25l45.2598 -45.25l-45.2598 -45.2598zM256 448c141.38 0 256 -114.62 256 -256s-114.62 -256 -256 -256
-s-256 114.62 -256 256s114.62 256 256 256zM442.68 152.4c1.44629 1.4502 2.3418 3.45312 2.3418 5.66113s-0.895508 4.20801 -2.3418 5.6582l-28.29 28.2803l28.2705 28.3096c3.12012 3.12012 3.12012 8.19043 0 11.3105l-11.3105 11.3096
-c-3.11914 3.12012 -8.18945 3.12012 -11.3096 0l-28.29 -28.29l-45.25 45.2607l33.9404 33.9395l16.9697 -16.9697c3.12012 -3.12012 8.18945 -3.12012 11.3096 0l11.3105 11.3096c3.12012 3.12012 3.12012 8.19043 0 11.3105l-16.9707 16.9697l16.9707 16.9697
-c3.12012 3.12012 3.12012 8.19043 0 11.3105l-11.3105 11.3096c-3.12012 3.12012 -8.18945 3.12012 -11.3096 0l-16.9697 -16.9697l-16.9707 16.9697c-3.12012 3.12012 -8.18945 3.12012 -11.3096 0l-11.3105 -11.3096c-3.11914 -3.12012 -3.11914 -8.19043 0 -11.3105
-l16.9707 -16.9697l-33.9404 -33.9404l-45.2598 45.25l28.29 28.29c3.12012 3.12012 3.12012 8.19043 0 11.3105l-11.3105 11.3096c-3.11914 3.12012 -8.18945 3.12012 -11.3096 0l-28.29 -28.29l-28.3096 28.2705c-3.12012 3.12012 -8.19043 3.12012 -11.3105 0
-l-11.3096 -11.3105c-3.12012 -3.11914 -3.12012 -8.18945 0 -11.3096l28.29 -28.29l-45.2607 -45.25l-33.9395 33.9404l16.9697 16.9697c3.12012 3.12012 3.12012 8.18945 0 11.3096l-11.3096 11.3105c-3.12012 3.12012 -8.19043 3.12012 -11.3105 0l-16.9697 -16.9707
-l-16.9697 16.9707c-3.12012 3.12012 -8.19043 3.12012 -11.3105 0l-11.3096 -11.3105c-3.12012 -3.12012 -3.12012 -8.18945 0 -11.3096l16.9697 -16.9697l-16.9697 -16.9707c-3.12012 -3.12012 -3.12012 -8.18945 0 -11.3096l11.3096 -11.3105
-c3.12012 -3.11914 8.19043 -3.11914 11.3105 0l16.9697 16.9707l33.9404 -33.9404l-45.25 -45.2598l-28.29 28.29c-3.12012 3.12012 -8.19043 3.12012 -11.3105 0l-11.3096 -11.3105c-3.12012 -3.11914 -3.12012 -8.18945 0 -11.3096l28.29 -28.29l-28.29 -28.29
-c-3.12012 -3.12012 -3.12012 -8.19043 0 -11.3096l11.3398 -11.3301c3.12012 -3.12012 8.18945 -3.12012 11.3096 0l28.29 28.29l45.25 -45.25l-33.9395 -33.9404l-16.9707 16.9697c-3.11914 3.12012 -8.18945 3.12012 -11.3096 0l-11.3096 -11.3096
-c-3.12012 -3.12012 -3.12012 -8.19043 0 -11.3105l16.9697 -16.9697l-16.9697 -16.9697c-3.12012 -3.12012 -3.12012 -8.19043 0 -11.3105l11.3096 -11.3096c3.12012 -3.12012 8.19043 -3.12012 11.3096 0l16.9707 16.9697l16.9697 -16.9697
-c3.12012 -3.12012 8.19043 -3.12012 11.3096 0l11.3105 11.3096c3.12012 3.12012 3.12012 8.19043 0 11.3105l-16.9697 16.9697l33.9395 33.9404l45.25 -45.2598l-28.29 -28.29c-3.12012 -3.12012 -3.12012 -8.19043 0 -11.3105l11.3105 -11.3096
-c3.11914 -3.12012 8.18945 -3.12012 11.3096 0l28.29 28.29l28.3096 -28.2705c3.12012 -3.12012 8.19043 -3.12012 11.3105 0l11.3096 11.3105c3.12012 3.11914 3.12012 8.18945 0 11.3096l-28.29 28.29l45.2607 45.2598l33.9395 -33.9395l-16.9697 -16.9707
-c-3.12012 -3.11914 -3.12012 -8.18945 0 -11.3096l11.3096 -11.3096c3.12012 -3.12012 8.19043 -3.12012 11.3105 0l16.9697 16.9697l16.9697 -16.9697c3.12012 -3.12012 8.19043 -3.12012 11.3105 0l11.3096 11.3096c3.12012 3.12012 3.12012 8.19043 0 11.3096
-l-16.9697 16.9707l16.9697 16.9697c3.12012 3.12012 3.12012 8.19043 0 11.3096l-11.3096 11.3105c-3.12012 3.12012 -8.19043 3.12012 -11.3105 0l-16.9697 -16.9697l-33.9404 33.9395l45.25 45.25l28.29 -28.29c3.12012 -3.12012 8.19043 -3.12012 11.3105 0zM278.63 192
-l45.2598 45.2598l45.25 -45.2598l-45.25 -45.25z" />
-    <glyph glyph-name="toolbox" unicode="&#xf552;" 
-d="M502.63 233.37c6 -6 9.37012 -14.1396 9.37012 -22.6201v-82.75h-128v16c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-16h-128v16c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-16h-128v82.7402
-c0 8.49023 3.37012 16.6299 9.37012 22.6299l45.25 45.2598c6.00977 6 14.1396 9.37012 22.6299 9.37012h50.75v80c0 26.5098 21.4902 48 48 48h160c26.5098 0 48 -21.4902 48 -48v-80.0098h50.75c8.49023 0 16.6299 -3.37012 22.6299 -9.37012zM320 288v64h-128v-64h128z
-M384 80v16h128v-96c0 -17.6699 -14.3301 -32 -32 -32h-448c-17.6699 0 -32 14.3301 -32 32v96h128v-16c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16v16h128v-16c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16z" />
-    <glyph glyph-name="tshirt" unicode="&#xf553;" horiz-adv-x="640" 
-d="M631.2 351.5c7.89941 -3.90039 11.0996 -13.5996 7.09961 -21.5l-57.2998 -114.4c-4 -8 -13.5996 -11.1992 -21.5 -7.19922l-56.5996 27.6992c-10.6006 5.2002 -23 -2.59961 -23 -14.3994v-253.7c0 -17.7002 -14.3008 -32 -32 -32h-256c-17.7002 0 -32 14.2998 -32 32
-v253.6c0 11.9004 -12.4004 19.6006 -23 14.4004l-56.6006 -27.7002c-7.89941 -3.89941 -17.5 -0.700195 -21.5 7.2002l-57.2002 114.5c-3.89941 7.90039 -0.699219 17.5 7.2002 21.5l194.7 96.5c20.0996 -27.7998 64.5996 -47.2002 116.5 -47.2002
-s96.4004 19.4004 116.5 47.2002z" />
-    <glyph glyph-name="walking" unicode="&#xf554;" horiz-adv-x="320" 
-d="M208 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM302.5 202.9c15.7002 -7.90039 22 -27.3008 14.2998 -43c-7.89941 -15.8008 -26.8994 -22.2002 -42.5 -14.3008l-23.2998 11.8008c-15 7.59961 -26.4004 20.8994 -31.7002 37
-l-5.5 16.5l-17.2002 -68.7002l45.5 -49.7002c7.2002 -7.7998 12.3008 -17.4004 14.9004 -27.7002l22.2002 -89c4.2998 -17.0996 -6.2002 -34.5 -23.2998 -38.7998c-17.1006 -4.2998 -34.5 6.2002 -38.8008 23.2998l-18.2998 73.2998
-c-2.59961 10.3008 -7.7002 19.8008 -14.8994 27.7002l-59.9004 65.4004c-14.5 15.8994 -20.0996 38 -14.9004 58.7998l15.2002 60.7002l-26.7998 -10.7998c-7.2002 -2.90039 -13 -8.40039 -16.5 -15.4004l-6.7002 -13.5996
-c-7.89941 -15.8008 -26.8994 -22.2002 -42.5 -14.3008c-15.7002 7.90039 -22 27.1006 -14.2002 42.9004l6.7002 13.5996c10.4004 21 28.1006 37.5 49.7002 46.2002c37.4004 15.1006 57.2998 25.2998 93.2998 25.2002c46.5 -0.0996094 87.5 -31.2998 102.2 -75.9004
-l9.7002 -29.3994zM73.5996 62.2002l20.7002 51.5c8.7002 -11.9004 -7.89941 6.59961 47.4004 -53.7002l-13.5 -33.7998c-3.2998 -8.10059 -8.10059 -15.4004 -14.2002 -21.5l-59.4004 -59.4004c-12.5 -12.5 -32.6992 -12.5 -45.1992 0s-12.5 32.7998 0 45.2998l50 50.1006
-c6.19922 6.09961 11 13.3994 14.1992 21.5z" />
-    <glyph glyph-name="wallet" unicode="&#xf555;" 
-d="M461.2 320c28.0195 0 50.7998 -21.5303 50.7998 -48v-256c0 -26.4697 -22.7803 -48 -50.7998 -48h-397.2c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h368c26.5098 0 48 -21.4902 48 -48c0 -8.83984 -7.16016 -16 -16 -16h-384
-c-8.83984 0 -16 -7.16016 -16 -16s7.16016 -16 16 -16h381.2zM416 112c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="angry" unicode="&#xf556;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM136 208c0 -17.7002 14.4004 -32 32.0996 -32c17.7002 0 32 14.2998 32 32c0 2.90039 -1 5.5 -1.69922 8.2002c0.599609 0 1.19922 -0.200195 1.69922 -0.200195
-c6.90039 0 13.2002 4.5 15.3008 11.4004c2.59961 8.39941 -2.2002 17.3994 -10.7002 19.8994l-80 24c-8.5 2.5 -17.4004 -2.2002 -19.9004 -10.7002c-2.59961 -8.39941 2.2002 -17.3994 10.7002 -19.8994l31 -9.2998c-6.40039 -5.90039 -10.5 -14.1006 -10.5 -23.4004z
-M304 53.7998c13.4004 -16.0996 38.2998 4 24.5 20.5c-20 24 -49.4004 37.7998 -80.5996 37.7998c-31.2002 0 -60.6006 -13.7998 -80.6006 -37.7998c-13.5996 -16.2998 11.1006 -36.7998 24.6006 -20.5c27.8994 33.4004 84.2998 33.4004 112.1 0zM380.6 240.7
-c8.5 2.5 13.3008 11.3994 10.8008 19.8994c-2.5 8.40039 -11.5 13.2002 -19.9004 10.7002l-80 -24c-8.40039 -2.5 -13.2002 -11.3994 -10.7002 -19.8994c2.10059 -6.90039 8.40039 -11.4004 15.2998 -11.4004c0.600586 0 1.10059 0.0996094 1.7002 0.200195
-c-0.799805 -2.60059 -1.7002 -5.2998 -1.7002 -8.2002c0 -17.7002 14.3008 -32 32 -32c17.7002 0 32 14.2998 32 32c0 9.2998 -4.19922 17.5996 -10.5 23.4004z" />
-    <glyph glyph-name="archway" unicode="&#xf557;" horiz-adv-x="576" 
-d="M560 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-159.98c-8.83984 0 -16 7.16016 -16 16v16l-0.0195312 160c0 53.0195 -42.9805 96 -96 96s-96 -42.9805 -96 -96v-176c0 -8.83984 -7.16016 -16 -16 -16h-159.98
-c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h15.9805v352h512v-352h16zM560 448c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-544c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h544z" />
-    <glyph glyph-name="atlas" unicode="&#xf558;" horiz-adv-x="448" 
-d="M318.38 240c-5.28027 -31.2197 -25.5898 -57.1699 -53.2998 -70.4102c7.66992 19.0605 12.7197 43.3799 14.21 70.4102h39.0898zM318.38 272h-39.0898c-1.49023 27.0303 -6.53027 51.3496 -14.21 70.4102c27.71 -13.2402 48.0098 -39.1904 53.2998 -70.4102zM224 350.69
-c7.69043 -7.4502 20.7695 -34.4307 23.4404 -78.6904h-46.8701c2.66016 44.2695 15.7393 71.2402 23.4297 78.6904zM182.92 342.41c-7.67969 -19.0605 -12.7197 -43.3799 -14.21 -70.4102h-39.0898c5.28027 31.2197 25.5898 57.1699 53.2998 70.4102zM182.92 169.59
-c-27.71 13.2402 -48.0195 39.1904 -53.2998 70.4102h39.0898c1.49023 -27.0303 6.53027 -51.3496 14.21 -70.4102zM247.43 240c-2.66016 -44.2598 -15.7393 -71.2402 -23.4395 -78.6904c-7.69043 7.4502 -20.7705 34.4307 -23.4307 78.6904h46.8701zM448 89.5996
-c0 -9.59961 -3.2002 -16 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320c0 54.4004 41.5996 96 96 96
-h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM224 384c-70.6904 0 -128 -57.3096 -128 -128s57.3096 -128 128 -128s128 57.3096 128 128s-57.3096 128 -128 128zM384 0v64h-288c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h288z" />
-    <glyph glyph-name="award" unicode="&#xf559;" horiz-adv-x="384" 
-d="M97.1201 85.3701c13.79 -13.7803 32.1104 -21.3701 51.6104 -21.3701c12.4395 0 24.4697 3.54004 35.3096 9.58008l-52.0498 -127.62c-4.39062 -10.7695 -18.4307 -13.4004 -26.4307 -4.95996l-36.2393 38.2803l-52.6904 -2.01074
-c-11.6201 -0.439453 -19.8203 11.2607 -15.4297 22.0303l45.3701 111.24c7.55957 -5.87012 15.9199 -10.7705 25.4297 -13.3203c20.96 -5.60938 16.4297 -3.16016 25.1201 -11.8496zM382.8 -0.700195c4.39062 -10.7598 -3.80957 -22.4697 -15.4297 -22.0303
-l-52.6904 2.01074l-36.25 -38.2803c-7.98926 -8.44043 -22.04 -5.80957 -26.4297 4.95996l-52.0498 127.62c10.8398 -6.03027 22.8701 -9.58008 35.3096 -9.58008c19.5 0 37.8301 7.58984 51.6201 21.3701c8.66992 8.66992 4.0498 6.20996 25.1201 11.8496
-c9.50977 2.5498 17.8701 7.44043 25.4297 13.3203zM263 108c-13.2305 -13.4697 -33.8398 -15.8799 -49.7305 -5.82031c-6.13867 3.89746 -13.5029 6.15527 -21.3066 6.15527s-15.084 -2.25781 -21.2227 -6.15527c-15.9004 -10.0596 -36.5098 -7.64941 -49.7402 5.82031
-c-14.7305 15 -16.4004 14.04 -38.7803 20.1396c-13.8896 3.79004 -24.75 14.8408 -28.4697 28.9805c-7.48047 28.3994 -5.54004 24.9697 -25.9502 45.75c-10.1699 10.3604 -14.1396 25.4502 -10.4199 39.5898c7.48047 28.4199 7.46973 24.46 0 52.8203
-c-3.72949 14.1396 0.25 29.2295 10.4199 39.5801c20.4102 20.7793 18.4805 17.3594 25.9502 45.75c3.71973 14.1396 14.5801 25.1895 28.4697 28.9795c27.8906 7.61035 24.5303 5.62988 44.9404 26.4102c10.1699 10.3604 25 14.4004 38.8896 10.6104
-c27.9199 -7.61035 24.0303 -7.60059 51.9004 0c13.8896 3.79004 28.7197 -0.260742 38.8896 -10.6104c20.4297 -20.79 17.0703 -18.7998 44.9502 -26.4102c13.8896 -3.79004 24.75 -14.8398 28.4697 -28.9795c7.48047 -28.3906 5.54004 -24.9707 25.9502 -45.75
-c10.1699 -10.3506 14.1396 -25.4404 10.4199 -39.5801c-7.47949 -28.4102 -7.46973 -24.4502 0 -52.8301c3.71973 -14.1406 -0.25 -29.2305 -10.4199 -39.5801c-20.4102 -20.7803 -18.4697 -17.3506 -25.9502 -45.75c-3.71973 -14.1396 -14.5801 -25.1904 -28.4697 -28.9805
-c-21.7598 -5.92969 -23.5098 -4.58984 -38.79 -20.1396zM97.6602 272.04c0 -53.0303 42.2402 -96.0205 94.3398 -96.0205s94.3398 42.9902 94.3398 96.0205s-42.2402 96.0195 -94.3398 96.0195s-94.3398 -42.9893 -94.3398 -96.0195z" />
-    <glyph glyph-name="backspace" unicode="&#xf55a;" horiz-adv-x="640" 
-d="M576 384c35.3496 0 64 -28.6504 64 -64v-256c0 -35.3496 -28.6504 -64 -64 -64h-370.75c-16.9697 0 -33.25 6.75 -45.25 18.75l-150.63 150.63c-12.5 12.4902 -12.5 32.75 0 45.25l150.63 150.62c11.5801 11.5869 27.5869 18.75 45.2471 18.75h0.0126953h370.74z
-M491.31 129.94l-62.0596 62.0596l62.0596 62.0596c6.25 6.25 6.25 16.3809 0 22.6309l-22.6191 22.6191c-6.25 6.25 -16.3809 6.25 -22.6309 0l-62.0596 -62.0596l-62.0596 62.0596c-6.25 6.25 -16.3809 6.25 -22.6309 0l-22.6191 -22.6191
-c-6.25 -6.25 -6.25 -16.3809 0 -22.6309l62.0596 -62.0596l-62.0596 -62.0596c-6.25 -6.25 -6.25 -16.3809 0 -22.6309l22.6191 -22.6191c6.25 -6.25 16.3809 -6.25 22.6309 0l62.0596 62.0596l62.0596 -62.0596c6.25 -6.25 16.3809 -6.25 22.6309 0l22.6191 22.6191
-c6.25 6.25 6.25 16.3809 0 22.6309z" />
-    <glyph glyph-name="bezier-curve" unicode="&#xf55b;" horiz-adv-x="640" 
-d="M368 416c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96zM208 360v-72c0 -9.4502 2.17969 -18.3604 5.87988 -26.4404c-34.2695 -24.3496 -59.7402 -59.9492 -71.04 -101.56
-h-49.3994c13.6797 64.6797 54.1699 119.48 109.54 152h-79.7305c-9.5 -23.4404 -32.4102 -40 -59.25 -40c-35.3398 0 -64 28.6504 -64 64s28.6602 64 64 64c26.8398 0 49.75 -16.5596 59.25 -40h84.75zM160 128c17.6699 0 32 -14.3301 32 -32v-96
-c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96zM576 400c35.3398 0 64 -28.6504 64 -64s-28.6602 -64 -64 -64c-26.8398 0 -49.75 16.5596 -59.25 40h-79.7305c55.3701 -32.5195 95.8604 -87.3203 109.54 -152
-h-49.3994c-11.2998 41.6104 -36.7705 77.21 -71.04 101.56c3.68945 8.08008 5.87988 16.9902 5.87988 26.4404v72h84.75c9.5 23.4404 32.4102 40 59.25 40zM576 128c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32
-v96c0 17.6699 14.3301 32 32 32h96z" />
-    <glyph glyph-name="bong" unicode="&#xf55c;" horiz-adv-x="448" 
-d="M302.5 -64h-221c-23.1699 0 -44.4199 12.5801 -56 32.6602c-16.1904 28.0703 -25.5 60.5898 -25.5 95.3398c0 71.0303 38.6699 132.9 96 166.11v153.93l-15.9697 -0.0205078c-8.85059 -0.00976562 -16.0303 7.16016 -16.0205 16.0107l0.0400391 31.7295
-c0.00976562 8.82031 7.16016 15.9707 15.9805 15.9805l223.939 0.259766c8.85059 0.00976562 16.0303 -7.16992 16.0205 -16.0195l-0.0400391 -31.7207c-0.00976562 -8.81934 -7.16016 -15.9697 -15.9805 -15.9795l-15.9697 -0.0205078v-154.16
-c14.1201 -8.17969 27.0898 -18.1396 38.6504 -29.5098l39.4092 39.4102l-9.37988 9.37988c-6.25 6.25 -6.25 16.3799 0 22.6299l11.3105 11.3105c6.25 6.25 16.3799 6.25 22.6299 0l52.6895 -52.6904c6.25 -6.25 6.25 -16.3799 0 -22.6299l-11.2998 -11.3203
-c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-9.37988 9.37988l-43.4404 -43.4395c17.3604 -28.8105 27.4404 -62.5 27.4404 -98.6201c0 -34.75 -9.30957 -67.2598 -25.5 -95.3398c-11.5703 -20.0801 -32.8203 -32.6602 -56 -32.6602zM120.06 188.57
-c-24.8096 -14.3701 -44.1094 -35.7305 -56.5596 -60.5703h257c-12.4404 24.8398 -31.75 46.2002 -56.5596 60.5703l-23.9404 13.8701v181.76l-96 -0.110352v-181.649z" />
-    <glyph glyph-name="brush" unicode="&#xf55d;" horiz-adv-x="384" 
-d="M352 448c17.6699 0 32 -14.3301 32 -32v-224h-384v224c0 17.6699 14.3301 32 32 32h320zM0 128v32h384v-32c0 -35.3496 -28.6602 -64 -64 -64h-64v-64c0 -35.3496 -28.6602 -64 -64 -64s-64 28.6504 -64 64v64h-64c-35.3398 0 -64 28.6504 -64 64zM192 24
-c-13.25 0 -24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24s24 10.75 24 24c0 13.2598 -10.75 24 -24 24z" />
-    <glyph glyph-name="bus-alt" unicode="&#xf55e;" 
-d="M488 320c13.25 0 24 -10.7402 24 -24v-80c0 -13.25 -10.75 -24 -24 -24h-8v-166.4c0 -12.7998 -9.59961 -25.5996 -25.5996 -25.5996h-6.40039v-32c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v32h-192v-32c0 -17.6699 -14.3301 -32 -32 -32h-32
-c-17.6699 0 -32 14.3301 -32 32v32c-17.6699 0 -32 14.3301 -32 32v160h-8c-13.25 0 -24 10.75 -24 24v80c0 13.2598 10.75 24 24 24h8v48c0 44.7998 99.2002 80 224 80s224 -35.2002 224 -80v-48h8zM160 376v-16c0 -4.41992 3.58008 -8 8 -8h176c4.41992 0 8 3.58008 8 8
-v16c0 4.41992 -3.58008 8 -8 8h-176c-4.41992 0 -8 -3.58008 -8 -8zM112 48c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM240 160v160h-112c-17.6699 0 -32 -14.3301 -32 -32v-96c0 -17.6699 14.3301 -32 32 -32h112zM272 160
-h112c17.6699 0 32 14.3301 32 32v96c0 17.6699 -14.3301 32 -32 32h-112v-160zM400 48c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="cannabis" unicode="&#xf55f;" 
-d="M503.47 87.75c5.24023 -2.75977 8.52051 -8.20996 8.53027 -14.1504c0.00976562 -5.92969 -3.26953 -11.3691 -8.50977 -14.1494c-2.4502 -1.29004 -60.7705 -31.7197 -133.49 -31.7197c-6.12988 0 -11.96 0.0996094 -17.5 0.30957
-c11.3604 -22.2305 16.5195 -38.3096 16.8096 -39.2197c1.80078 -5.68066 0.290039 -11.8906 -3.90918 -16.1104c-2.90137 -2.91113 -6.91699 -4.70801 -11.3477 -4.70801c-1.6543 0 -3.25098 0.250977 -4.75293 0.717773c-1.83008 0.580078 -37.7197 11.9902 -77.2998 39.29
-v-64.0098c0 -4.41992 -3.58008 -8 -8 -8h-16c-4.41992 0 -8 3.58008 -8 8v64.0195c-39.5801 -27.2998 -75.4697 -38.7197 -77.2998 -39.2891c-1.50195 -0.466797 -3.10059 -0.724609 -4.75586 -0.724609c-4.43066 0 -8.44336 1.80273 -11.3447 4.71387
-c-4.19922 4.2207 -5.70996 10.4307 -3.90918 16.1104c0.290039 0.910156 5.43945 16.9902 16.8096 39.2197c-5.54004 -0.209961 -11.3604 -0.30957 -17.5 -0.30957c-72.7305 0 -131.04 30.4297 -133.49 31.7197c-5.06836 2.68652 -8.52441 7.99805 -8.52441 14.1299
-c0 6.13965 3.46484 11.4766 8.54492 14.1602c1.56934 0.820312 32.3896 16.8896 76.7793 25.8096c-64.25 75.1201 -84.0498 161.671 -84.9297 165.641c-0.25 1.12207 -0.384766 2.28125 -0.384766 3.47754c0 4.40723 1.78711 8.39941 4.6748 11.292
-c3.03027 3.04004 7.12012 4.7002 11.3203 4.7002c1.14941 0 2.2998 -0.129883 3.43945 -0.379883c3.89062 -0.860352 86.5508 -19.5996 160.58 -79.7598c0 1.45996 -0.00976562 2.92969 -0.00976562 4.39941c0 118.79 59.9805 213.721 62.5303 217.7
-c2.93945 4.58984 8.01953 7.37012 13.4697 7.37012c5.65625 0 10.6211 -2.92969 13.46 -7.37012c2.5498 -3.97949 62.5303 -98.9102 62.5303 -217.7c0 -1.46973 0 -2.93945 -0.00976562 -4.39941c74.0391 60.1699 156.699 78.9102 160.579 79.7598
-c1.15039 0.259766 2.30078 0.379883 3.44043 0.379883c4.2002 0 8.29004 -1.66016 11.3203 -4.7002c3.85938 -3.87012 5.47949 -9.43945 4.2998 -14.7695c-0.879883 -3.96973 -20.6797 -90.5205 -84.9297 -165.641c44.3896 -8.91992 75.2197 -24.9893 76.7793 -25.8096z" />
-    <glyph glyph-name="check-double" unicode="&#xf560;" 
-d="M505 273.2c9.2998 -9.2998 9.2998 -24.5 -0.0996094 -34l-296 -296.2c-9.30078 -9.40039 -24.5 -9.40039 -33.9004 0l-168 168.1c-9.40039 9.40039 -9.40039 24.6006 0 34l39.7002 39.7002c9.2998 9.40039 24.5 9.40039 33.8994 0l111.4 -111.5l239.5 239.5
-c9.2998 9.40039 24.5 9.40039 33.9004 0zM180.7 167.2l-112 112.2c-6.2002 6.19922 -6.2002 16.2998 0 22.5996l45.2998 45.2998c6.2002 6.2998 16.4004 6.2998 22.5996 0l55.4004 -55.5l151.5 151.5c6.2002 6.2998 16.4004 6.2998 22.5996 0l45.2002 -45.2998
-c6.2002 -6.2002 6.2002 -16.2998 0 -22.5996l-208 -208.2c-6.2002 -6.2998 -16.3994 -6.2998 -22.5996 0z" />
-    <glyph glyph-name="cocktail" unicode="&#xf561;" horiz-adv-x="576" 
-d="M296 -16c22.0898 0 40 -17.9102 40 -40c0 -4.41992 -3.58008 -8 -8 -8h-240c-4.41992 0 -8 3.58008 -8 8c0 22.0898 17.9102 40 40 40h56v125.22l-168.74 168.73c-15.5195 15.5195 -4.5293 42.0498 17.4199 42.0498h366.641c21.9492 0 32.9395 -26.5303 17.4199 -42.0498
-l-168.74 -168.73v-125.22h56zM432 448c79.5303 0 144 -64.4697 144 -144s-64.4697 -144 -144 -144c-27.4102 0 -52.7695 8.08008 -74.5801 21.3799l35.2598 35.2598c12.0303 -5.43945 25.2803 -8.63965 39.3203 -8.63965c52.9297 0 96 43.0596 96 96s-43.0703 96 -96 96
-c-35.3701 0 -65.9902 -19.4502 -82.6396 -48h-52.54c19.8301 55.7998 72.5693 96 135.18 96z" />
-    <glyph glyph-name="concierge-bell" unicode="&#xf562;" 
-d="M288 317.46c108.51 -15.5703 192 -108.64 192 -221.46h-448c0 112.82 83.4902 205.89 192 221.46v18.54h-16c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h96c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-16v-18.54zM496 64
-c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h480z" />
-    <glyph glyph-name="cookie" unicode="&#xf563;" 
-d="M510.37 193.21c4.37988 -27.6602 -0.110352 -56 -12.8203 -80.96l-35.0996 -68.8701c-12.7021 -24.9268 -32.8652 -45.0938 -57.79 -57.7998l-69.1201 -35.21c-24.8301 -12.6396 -53.0098 -17.1104 -80.5205 -12.75l-76.6992 12.1396
-c-28.1211 4.45801 -53.4463 17.7891 -72.71 37.0498l-54.7607 54.75c-19.3213 19.3281 -32.6924 44.7373 -37.1592 72.9502l-12.0801 76.2705c-1.07715 6.79883 -1.55371 13.7725 -1.55371 20.8721c0 21.6162 5.18359 42.0303 14.373 60.0674l35.1006 68.8799
-c12.6992 24.9297 32.8633 45.0967 57.79 57.8008l69.1201 35.21c24.8291 12.6494 53.0098 17.1201 80.5195 12.7598l76.7002 -12.1504c27.5303 -4.34961 52.9795 -17.3301 72.71 -37.0498l54.7598 -54.75c19.3213 -19.3281 32.6924 -44.7363 37.1602 -72.9502zM176 80
-c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM208 240c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM368 112c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
-s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="cookie-bite" unicode="&#xf564;" 
-d="M510.52 192.18c4.10059 -27.3301 -0.349609 -55.2695 -12.9092 -79.9102l-35.1006 -68.8799c-12.6992 -24.9316 -32.8623 -45.1025 -57.79 -57.8096l-69.1299 -35.21c-24.8301 -12.6504 -53.0195 -17.1201 -80.5303 -12.7598l-76.71 12.1494
-c-28.123 4.45801 -53.4482 17.793 -72.71 37.0605l-54.7695 54.7598c-19.3223 19.332 -32.6934 44.7441 -37.1602 72.96l-12.0801 76.2695c-1.07617 6.7998 -1.55273 13.7734 -1.55273 20.874c0 21.6182 5.18262 42.0361 14.373 60.0762l35.0996 68.8799
-c12.6963 24.9346 32.8613 45.1055 57.79 57.8105l69.1299 35.2197c24.5898 12.5205 52.46 16.96 79.7207 12.8203c0.859375 -69.96 57.6895 -126.45 127.859 -126.45c0 -70.1699 56.5 -127.01 126.47 -127.86zM176 80c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
-s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM208 240c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM368 112c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="crop-alt" unicode="&#xf565;" 
-d="M488 96c13.25 0 24 -10.7402 24 -24v-48c0 -13.25 -10.75 -24 -24 -24h-40v-40c0 -13.25 -10.75 -24 -24 -24h-48c-13.25 0 -24 10.75 -24 24v328h-160v96h224c17.6699 0 32 -14.3301 32 -32v-256h40zM160 424v-328h160v-96h-224c-17.6699 0 -32 14.3301 -32 32v256h-40
-c-13.25 0 -24 10.75 -24 24v48c0 13.2598 10.75 24 24 24h40v40c0 13.2598 10.75 24 24 24h48c13.25 0 24 -10.7402 24 -24z" />
-    <glyph glyph-name="digital-tachograph" unicode="&#xf566;" horiz-adv-x="640" 
-d="M608 352c17.6699 0 32 -14.3301 32 -32v-256c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32v256c0 17.6699 14.3301 32 32 32h576zM304 96v8c0 4.41992 -3.58008 8 -8 8h-224c-4.41992 0 -8 -3.58008 -8 -8v-8c0 -4.41992 3.58008 -8 8 -8h224
-c4.41992 0 8 3.58008 8 8zM72 160c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-16zM136 160c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-16
-c-4.41992 0 -8 -3.58008 -8 -8v-16zM200 160c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-16zM264 160c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8
-h-16c-4.41992 0 -8 -3.58008 -8 -8v-16zM304 224v48c0 8.83984 -7.16016 16 -16 16h-208c-8.83984 0 -16 -7.16016 -16 -16v-48c0 -8.83984 7.16016 -16 16 -16h208c8.83984 0 16 7.16016 16 16zM576 96v8c0 4.41992 -3.58008 8 -8 8h-224c-4.41992 0 -8 -3.58008 -8 -8v-8
-c0 -4.41992 3.58008 -8 8 -8h224c4.41992 0 8 3.58008 8 8z" />
-    <glyph glyph-name="dizzy" unicode="&#xf567;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM152 233.4l28.7002 -28.7002c14.7002 -14.7998 37.7998 7.39941 22.5996 22.5996l-28.7002 28.7002l28.7002 28.7002c15 14.8994 -7.59961 37.5996 -22.5996 22.5996
-l-28.7002 -28.7002l-28.7002 28.7002c-14.8994 15 -37.5996 -7.59961 -22.5996 -22.5996l28.7002 -28.7002l-28.7002 -28.7002c-15.2002 -15.0996 7.7998 -37.3994 22.5996 -22.5996zM248 32c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64s-64 -28.7002 -64 -64
-s28.7002 -64 64 -64zM395.3 227.3l-28.7002 28.7002l28.7002 28.7002c15 14.8994 -7.59961 37.5996 -22.5996 22.5996l-28.7002 -28.7002l-28.7002 28.7002c-14.8994 15 -37.5996 -7.59961 -22.5996 -22.5996l28.7002 -28.7002l-28.7002 -28.7002
-c-15.2002 -15.0996 7.7998 -37.3994 22.5996 -22.5996l28.7002 28.7002l28.7002 -28.7002c14.7002 -14.7998 37.7998 7.39941 22.5996 22.5996z" />
-    <glyph glyph-name="drafting-compass" unicode="&#xf568;" 
-d="M457.01 103.58l54.9805 -95.2305l-7.02051 -58.25c-1.2793 -10.5898 -12.3594 -16.9893 -22.1699 -12.7998l-53.9502 23.04l-54.3799 94.1904c29.9102 11.8701 57.4902 28.7197 82.54 49.0498zM499.5 198.14c-52.6201 -83.1299 -144.45 -134.14 -243.5 -134.14
-c-35.3799 0 -69.8701 6.71973 -102.06 18.96l-70.8008 -122.63l-53.9492 -23.04c-9.81055 -4.19043 -20.8906 2.20996 -22.1709 12.7998l-7.01953 58.25l71.2803 123.46c-21.29 17.8105 -40.4102 38.3799 -55.9805 62.0205
-c-4.99023 7.56934 -2.20996 17.9297 5.64062 22.4697l27.75 16.0703c7.40918 4.29004 16.5898 1.76953 21.3799 -5.33008c9.71973 -14.4102 21.1299 -27.3906 33.6797 -39l68.2998 118.31c-7.43945 13.6299 -12.0498 29.0303 -12.0498 45.6602c0 53.0195 42.9805 96 96 96
-s96 -42.9805 96 -96c0 -16.6299 -4.61035 -32.0303 -12.0596 -45.6602l51.79 -89.71c-23.0508 -23.1699 -51.3809 -39.96 -82.6104 -48.9199l-51.0898 88.5c-0.69043 -0.0195312 -1.33984 -0.209961 -2.04004 -0.209961s-1.33984 0.19043 -2.04004 0.209961
-l-67.3604 -116.68c22.1797 -7.28027 45.4805 -11.5303 69.4102 -11.5303c76.25 0 147.01 38.8496 188.12 102.38c4.64941 7.17969 13.7803 9.87012 21.2598 5.71973l28.0703 -15.5693c7.93945 -4.40039 10.9102 -14.7207 6.0498 -22.3906zM256 384
-c-17.6699 0 -32 -14.3301 -32 -32s14.3301 -32 32 -32s32 14.3301 32 32s-14.3301 32 -32 32z" />
-    <glyph glyph-name="drum" unicode="&#xf569;" 
-d="M431.34 325.95c44.9004 -16.3398 80.6602 -42.7803 80.6602 -86.1006v-160.229c0 -30.2705 -27.5 -57.6797 -72 -77.8604v101.9c0 13.2461 -10.7539 24 -24 24s-24 -10.7539 -24 -24v-118.93c-33.0498 -9.11035 -71.0703 -15.0605 -112 -16.7305v103.61
-c0 13.2461 -10.7539 24 -24 24s-24 -10.7539 -24 -24v-103.61c-40.9297 1.66992 -78.9502 7.62012 -112 16.7305v118.93c0 13.2461 -10.7539 24 -24 24s-24 -10.7539 -24 -24v-101.9c-44.5 20.1807 -72 47.5898 -72 77.8604v160.229c0 107.601 219.55 112.15 256 112.15
-c15.2197 0 62.4297 -0.910156 112.19 -9.69043l110.06 71c2.53711 1.69238 5.59082 2.7041 8.86621 2.7041c5.55664 0 10.4551 -2.83887 13.3242 -7.14355l8.86914 -13.3105c1.69238 -2.53711 2.7041 -5.58984 2.7041 -8.86523
-c0 -5.55664 -2.83887 -10.4561 -7.14355 -13.3242zM256 175.76c114.87 0 208 28.6904 208 64.0898c0 21.3105 -33.9102 40.1504 -85.8604 51.75l-118.64 -76.5195c-2.53711 -1.69141 -5.59082 -2.7041 -8.86621 -2.7041c-5.55664 0 -10.4551 2.83887 -13.3242 7.14355
-l-8.86914 13.3105c-1.69434 2.53809 -2.70703 5.59277 -2.70703 8.87012c0 5.55371 2.83594 10.4502 7.13672 13.3193l72.8096 47c-15.9492 1.2002 -32.5293 1.91016 -49.6797 1.91016c-114.88 0 -208 -28.6797 -208 -64.0801c0 -35.3994 93.1201 -64.0898 208 -64.0898z
-" />
-    <glyph glyph-name="drum-steelpan" unicode="&#xf56a;" horiz-adv-x="576" 
-d="M288 416c159.06 0 288 -57.3096 288 -128v-192c0 -70.6904 -128.94 -128 -288 -128s-288 57.3096 -288 128v192c0 70.6904 128.94 128 288 128zM205.01 257.64c5.11035 19.0605 2.49023 38.96 -7.37012 56.0508l-25.5996 44.3398
-c-73.9297 -13.6406 -124.04 -39.8701 -124.04 -70.0303c0 -30.7803 52.2305 -57.46 128.7 -70.8398c13.7695 9.91016 23.8594 23.8701 28.3096 40.4795zM288 208c21.0801 0 41.4102 1 60.8896 2.7002c-8.05957 26.1299 -32.1494 45.2998 -60.8896 45.2998
-s-52.8301 -19.1699 -60.8896 -45.2998c19.4795 -1.7002 39.8096 -2.7002 60.8896 -2.7002zM352 352v13.04c-20.4004 1.87988 -41.7998 2.95996 -64 2.95996s-43.5996 -1.08008 -64 -2.95996v-13.04c0 -35.29 28.71 -64 64 -64s64 28.71 64 64zM398.93 217.1
-c76.6699 13.3604 129.07 40.0703 129.07 70.9004c0 30.21 -50.2803 56.5 -124.44 70.0996l-25.6494 -44.4199c-9.87012 -17.0801 -12.4902 -36.9795 -7.37988 -56.04c4.45996 -16.6396 14.5898 -30.6299 28.3994 -40.54z" />
-    <glyph glyph-name="feather-alt" unicode="&#xf56b;" 
-d="M512 448c-1.80957 -26.2598 -11.71 -132.86 -53.6201 -234.79l-106.54 -53.21h81.1406c-9.08008 -16.4102 -19.2002 -32.2305 -30.4502 -47.1201l-146.79 -48.8799h100.95c-35.5605 -30.0703 -79.1006 -51.0996 -132.58 -56.54
-c-41.8105 -4.83008 -83.8701 -7.21973 -125.96 -7.36035l-57.1309 -57.0693c-9.38965 -9.37012 -24.5996 -9.37012 -33.9795 0s-9.37988 24.5693 0 33.9395l259.5 259.24c6.25 6.25 6.25 16.3799 0 22.6299s-16.4004 6.25 -22.6504 0l-178.87 -178.689
-c1.15039 26.7998 2.90039 53.5801 5.99023 80.2393c25.4307 249.41 389.21 284.051 440.99 287.61z" />
-    <glyph glyph-name="file-contract" unicode="&#xf56c;" horiz-adv-x="384" 
-d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM64 376v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8
-h-80c-4.41992 0 -8 -3.58008 -8 -8zM64 312v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8zM256.81 64c-4.19922 0 -8.13965 2.44043 -10.1592 6.5
-c-11.9502 23.8604 -46.2305 30.3496 -66 14.1602l-13.8809 41.6396c-3.28906 9.82031 -12.4297 16.4102 -22.7695 16.4102s-19.4805 -6.59961 -22.7803 -16.4102l-18.1895 -54.6396c-1.53027 -4.58008 -5.81055 -7.66016 -10.6406 -7.66016h-12.3896
-c-8.83984 0 -16 -7.16016 -16 -16s7.16016 -16 16 -16h12.3896c18.6201 0 35.1104 11.8701 41 29.5303l10.6104 31.8799l16.8301 -50.46c2.03027 -6.14062 7.58008 -10.4404 14.0303 -10.8906c0.389648 -0.0292969 0.759766 -0.0498047 1.13965 -0.0498047
-c0.00390625 0 -0.00292969 -0.015625 0.000976562 -0.015625c6.26074 0 11.6865 3.60742 14.3086 8.85547l7.6709 15.3408c2.7998 5.59961 7.93945 6.18945 10.0195 6.18945s7.21973 -0.599609 10.1699 -6.51953c7.37012 -14.7207 22.1904 -23.8604 38.6396 -23.8604
-h47.1904c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16h-47.1904zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7z" />
-    <glyph glyph-name="file-download" unicode="&#xf56d;" horiz-adv-x="384" 
-d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM300.45 100.64c10.1299 10.0703 3.00977 27.3604 -11.2705 27.3604h-65.1797v80
-c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-80h-65.1797c-14.2803 0 -21.4004 -17.29 -11.25 -27.3604l96.4199 -95.6992c6.64941 -6.61035 17.3896 -6.61035 24.04 0zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961
-c6.40039 0 12.5 -2.5 17 -7z" />
-    <glyph glyph-name="file-export" unicode="&#xf56e;" horiz-adv-x="576" 
-d="M384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004zM571 140c6.59961 -6.59961 6.59961 -17.4004 0 -24l-95.7002 -96.5c-10.0996 -10.0996 -27.3994 -3 -27.3994 11.2998v65.2002h-64v64h64v65.0996
-c0 14.3008 17.2998 21.4004 27.3994 11.3008zM192 112c0 -8.7998 7.2002 -16 16 -16h176v-136c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136c0 -13.2002 10.7998 -24 24 -24h136v-128h-176
-c-8.7998 0 -16 -7.2002 -16 -16v-32z" />
-    <glyph glyph-name="file-import" unicode="&#xf56f;" 
-d="M16 160h112v-64h-112c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16zM505 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7zM352 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24
-h-336c-13.2998 0 -24 10.7002 -24 24v136h127.9v-65.0996c0 -14.3008 17.2998 -21.4004 27.3994 -11.3008l95.7002 96.4004c6.59961 6.59961 6.59961 17.2998 0 24l-95.5996 96.5c-10.1006 10.0996 -27.4004 3 -27.4004 -11.2998v-65.2002h-128v264
-c0 13.2998 10.7002 24 24 24h200v-136z" />
-    <glyph glyph-name="file-invoice" unicode="&#xf570;" horiz-adv-x="384" 
-d="M288 192v-64h-192v64h192zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7zM224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464
-c0 13.2998 10.7002 24 24 24h200v-136zM64 376v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8zM64 312v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16
-c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8zM320 8v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8zM320 208c0 8.83984 -7.16016 16 -16 16h-224
-c-8.83984 0 -16 -7.16016 -16 -16v-96c0 -8.83984 7.16016 -16 16 -16h224c8.83984 0 16 7.16016 16 16v96z" />
-    <glyph glyph-name="file-invoice-dollar" unicode="&#xf571;" horiz-adv-x="384" 
-d="M377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7zM224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136z
-M64 376v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8zM64 296c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8
-v-16zM208 32.1201c23.6201 0.629883 42.6699 20.54 42.6699 45.0703c0 19.9697 -12.9902 37.8096 -31.5801 43.3896l-45 13.5c-5.16016 1.54004 -8.76953 6.78027 -8.76953 12.7295c0 7.27051 5.2998 13.1904 11.7998 13.1904h28.1104
-c4.55957 0 8.94922 -1.29004 12.8193 -3.71973c3.24023 -2.03027 7.36035 -1.91016 10.1299 0.729492l11.75 11.21c3.53027 3.37012 3.33008 9.20996 -0.569336 12.1406c-9.10059 6.83984 -20.0801 10.7695 -31.3701 11.3496v24.29c0 4.41992 -3.58008 8 -8 8h-16
-c-4.41992 0 -8 -3.58008 -8 -8v-24.1201c-23.6201 -0.629883 -42.6699 -20.5498 -42.6699 -45.0703c0 -19.9697 12.9893 -37.8096 31.5801 -43.3896l45 -13.5c5.15918 -1.54004 8.76953 -6.78027 8.76953 -12.7295c0 -7.27051 -5.2998 -13.1904 -11.7998 -13.1904h-28.1104
-c-4.55957 0 -8.9502 1.2998 -12.8193 3.71973c-3.24023 2.03027 -7.36035 1.91016 -10.1309 -0.729492l-11.75 -11.21c-3.5293 -3.37012 -3.3291 -9.20996 0.570312 -12.1406c9.10059 -6.83008 20.0801 -10.7695 31.3701 -11.3496v-24.29c0 -4.41992 3.58008 -8 8 -8h16
-c4.41992 0 8 3.58008 8 8v24.1201z" />
-    <glyph glyph-name="file-prescription" unicode="&#xf572;" horiz-adv-x="384" 
-d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM292.53 132.52c-6.25 6.25 -16.3799 6.25 -22.6299 0l-29.9004 -29.8994l-33.46 33.46
-c19.8398 10.8701 33.46 31.7002 33.46 55.9199c0 35.3496 -28.6504 64 -64 64h-80c-8.83984 0 -16 -7.16016 -16 -16v-160c0 -8.83984 7.16016 -16 16 -16h16c8.83984 0 16 7.16016 16 16v48h18.7402l59.3193 -59.3096l-30.0596 -30.0605
-c-6.25 -6.25 -6.25 -16.3799 0 -22.6299l11.3096 -11.3096c6.25 -6.25 16.3809 -6.25 22.6309 0l30.0596 30.0596l30.0596 -30.0703c6.25 -6.25 16.3809 -6.25 22.6309 0l11.3096 11.3105c6.25 6.25 6.25 16.3799 0 22.6299l-30.0596 30.0596l29.8994 29.9004
-c6.25 6.25 6.25 16.3799 0 22.6299zM176 176h-48v32h48c8.82031 0 16 -7.17969 16 -16s-7.17969 -16 -16 -16zM384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004z" />
-    <glyph glyph-name="file-signature" unicode="&#xf573;" horiz-adv-x="576" 
-d="M218.17 23.8604c7.25 -14.4707 21.71 -23.4404 37.8301 -23.75l128 -0.110352v-40c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136c0 -13.2002 10.7998 -24 24 -24h136.01v-46.5498l-128 -127.09
-v-82.1201c-3.87012 0.30957 -7.46973 2.47949 -9.35938 6.25977c-11.9404 23.8604 -46.25 30.3496 -66 14.1602l-13.8809 41.6396c-3.28906 9.82031 -12.4297 16.4102 -22.7695 16.4102s-19.4805 -6.59961 -22.7803 -16.4102l-18.1895 -54.6396
-c-1.53027 -4.58008 -5.81055 -7.66016 -10.6406 -7.66016h-12.3896c-8.83984 0 -16 -7.16016 -16 -16s7.16016 -16 16 -16h12.3896c18.6201 0 35.1104 11.8701 41 29.5303l10.6104 31.8799l16.8301 -50.4697c4.4502 -13.46 23.1104 -14.8701 29.4795 -2.09082
-l7.6709 15.3408c2.7998 5.59961 7.93945 6.18945 10.0195 6.18945s7.21973 -0.599609 10.1699 -6.51953zM384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004zM288 101.04l162.79 161.62l67.8799 -67.8799
-l-161.68 -162.78h-68.9902v69.04zM568.54 280.67c9.9502 -9.93945 9.9502 -26.0703 0 -36.0098l-27.25 -27.25l-67.8799 67.8799l27.25 27.25c9.93945 9.94043 26.0703 9.94043 36.0098 0z" />
-    <glyph glyph-name="file-upload" unicode="&#xf574;" horiz-adv-x="384" 
-d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM289.18 95.9902c14.2803 0 21.4004 17.29 11.25 27.3594l-96.4199 95.7002
-c-6.64941 6.61035 -17.3896 6.61035 -24.04 0l-96.4199 -95.7002c-10.1396 -10.0693 -3.00977 -27.3594 11.2705 -27.3594h65.1797v-80c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16v80h65.1797zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128
-v128h6.09961c6.40039 0 12.5 -2.5 17 -7z" />
-    <glyph glyph-name="fill" unicode="&#xf575;" 
-d="M502.63 230.94c12.4902 -12.5 12.4902 -32.7607 0 -45.2607l-221.57 -221.569c-18.75 -18.75 -43.3096 -28.1201 -67.8799 -28.1201c-24.5596 0 -49.1201 9.37988 -67.8701 28.1201l-117.189 117.189c-37.4902 37.4902 -37.4902 98.2598 0 135.75l94.7598 94.7598
-l-86.1895 86.1807c-6.24023 6.25 -6.24023 16.3799 0 22.6299l22.6191 22.6104c6.24023 6.25 16.3809 6.25 22.6201 0l86.1807 -86.1807l81.5801 81.5801c6.23926 6.25 14.4297 9.37012 22.6191 9.37012c8.19043 0 16.3809 -3.12012 22.6309 -9.37012zM386.41 159.97
-l48.3496 48.3398l-162.45 162.44l-58.9492 -58.9502l58.6094 -58.5996c12.4902 -12.4902 12.4902 -32.75 0 -45.2402c-12.4893 -12.4902 -32.75 -12.4902 -45.2393 0l-58.6104 58.5996l-81.6104 -81.6094l-13.1494 -13.1504
-c-3.86035 -3.84961 -6.07031 -7.99023 -7.43066 -11.8301h320.48z" />
-    <glyph glyph-name="fill-drip" unicode="&#xf576;" horiz-adv-x="576" 
-d="M512 128c0 0 64 -92.6504 64 -128s-28.6602 -64 -64 -64s-64 28.6504 -64 64s64 128 64 128zM502.63 230.94c12.4902 -12.5 12.4902 -32.75 -0.00976562 -45.25l-221.57 -221.57c-18.7402 -18.75 -43.2998 -28.1201 -67.8701 -28.1201
-c-24.5596 0 -49.1299 9.37988 -67.8701 28.1201l-117.189 117.189c-37.4902 37.4902 -37.4902 98.2705 0 135.75l94.7598 94.7607l-86.1895 86.1797c-6.24023 6.24023 -6.24023 16.3701 0 22.6201l22.6191 22.6201c6.24023 6.25 16.3701 6.25 22.6201 0l86.1807 -86.1904
-l81.5801 81.5801c6.23926 6.25 14.4297 9.37012 22.6191 9.37012c8.19043 0 16.3809 -3.12012 22.6309 -9.37012zM386.41 159.97l48.3398 48.3398l-162.44 162.44l-58.9492 -58.9502l58.5996 -58.5996c12.4902 -12.4902 12.4902 -32.75 0 -45.2402
-s-32.75 -12.4902 -45.2402 0l-58.5996 58.5996l-81.6104 -81.6094l-13.1494 -13.1504c-3.86035 -3.84961 -6.07031 -7.99023 -7.43066 -11.8301h320.48z" />
-    <glyph glyph-name="fingerprint" unicode="&#xf577;" 
-d="M256.12 202.04c13.2598 0 24 -10.75 23.9902 -24c1.55957 -99.1104 -15.9502 -176.61 -29.4805 -224.521c-2.97949 -10.5996 -12.6104 -17.5195 -23.0898 -17.5195c-20.9697 0 -25.8496 20.7695 -23.1201 30.4902c19.5605 69.6494 28.8398 139.3 27.7002 211.55
-c0 13.2598 10.75 24 24 24zM255.26 283.77c56.9707 -0.839844 104.03 -46.9199 104.91 -102.72c0.790039 -50.8994 -2.99023 -102.08 -11.2695 -152.109c-0.770508 -4.6709 -7.61035 -23.1006 -27.5801 -19.7705c-13.0703 2.16016 -21.9307 14.5205 -19.7607 27.5801
-c7.80078 47.2197 11.3809 95.5 10.6104 143.55c-0.469727 30.1299 -26.3096 55 -57.6201 55.4697c-34.5303 0.150391 -54.8594 -26.3896 -54.4502 -52.3398c0.800781 -51.4395 -4.0293 -102.93 -14.3691 -153.02c-2.69043 -12.9805 -15.3105 -21.3105 -28.3604 -18.6406
-c-12.9697 2.6709 -21.3301 15.3809 -18.6396 28.3604c9.61914 46.6396 14.1191 94.6104 13.3691 142.55c-0.849609 54.0205 41.9004 101.16 103.16 101.09zM144.57 303.55c10.2793 -8.37012 11.8398 -23.4795 3.48926 -33.7598
-c-18.7998 -23.0898 -28.4697 -51.0898 -28 -80.9697c0.640625 -40.6699 -2.66992 -81.4902 -9.85938 -121.33c-0.820312 -4.5498 -7.78027 -22.8604 -27.8906 -19.3604c-13.0498 2.36035 -21.6992 14.8398 -19.3594 27.8896c6.63965 36.7803 9.7002 74.4707 9.10938 112.051
-c-0.639648 40.7197 13.1309 80.5 38.75 112c8.39062 10.2793 23.46 11.8193 33.7607 3.47949zM254.04 365.88c101.09 -1.5 184.6 -83.0801 186.16 -181.83c0.0751953 -4.88281 0.147461 -8.55371 0.147461 -13.4551c0 -35.9766 -2.0498 -71.4785 -6.03809 -106.395
-c-1.06934 -9.23047 -9.85938 -23.0605 -26.5791 -21.1104c-13.1602 1.5 -22.6104 13.4102 -21.1104 26.5801c4.2998 37.5205 6.16992 75.75 5.58008 113.63c-1.15039 73.0801 -63.4502 133.45 -138.88 134.58c-11.5303 0.0800781 -22.9502 -1.08008 -34 -3.68945
-c-12.8906 -3 -25.8301 4.93945 -28.8906 17.8291c-3.04004 12.9102 4.94043 25.8301 17.8301 28.8906c14.9102 3.53027 30.3701 5.37988 45.7803 4.96973zM506.11 244.43c6.22949 -28.2295 6.00977 -50.1602 5.83008 -72.3398
-c-0.110352 -13.1895 -10.8301 -23.7998 -24 -23.7998h-0.200195c-13.25 0.110352 -23.9102 10.9297 -23.7998 24.2002c0.209961 24.1895 0.00976562 40.1895 -4.7002 61.5996c-2.86035 12.9502 5.31934 25.75 18.2598 28.6104
-c13.0996 2.92969 25.75 -5.35059 28.6104 -18.2705zM465.99 335.15c7.62012 -10.8408 5 -25.8105 -5.83984 -33.4307c-10.8604 -7.58984 -25.8105 -5 -33.4199 5.86035c-39.8906 56.8301 -105.171 91.3604 -174.62 92.3896
-c-56.3408 0.810547 -108.92 -20.0596 -147.681 -58.8594c-37.1201 -37.1406 -57.1094 -86.5 -56.2793 -139l-0.160156 -23.6406c-0.379883 -13 -11.0498 -23.2998 -23.9707 -23.2998c-0.239258 0 -0.489258 0 -0.719727 0.0205078
-c-13.25 0.379883 -23.6699 11.4395 -23.2803 24.6895l0.120117 21.4697c-1.04004 65.6104 23.9502 127.28 70.3203 173.71c48.0098 48.0303 112.56 73.7607 182.35 72.9209c84.79 -1.27051 164.48 -43.4404 213.181 -112.83z" />
-    <glyph glyph-name="fish" unicode="&#xf578;" horiz-adv-x="576" 
-d="M327.1 352c137.46 0 248.9 -128 248.9 -160s-111.44 -160 -248.9 -160c-89.9697 0 -168.55 54.7695 -212.279 101.62l-87.3301 -66.0498c-12.1299 -9.16992 -30.2402 0.599609 -27.1406 14.6602l24.1904 109.77l-24.1797 109.76
-c-3.10059 14.0605 15.0098 23.8398 27.1396 14.6602l87.3301 -66.0498c43.7295 46.8604 122.3 101.63 212.27 101.63zM414.53 168c13.25 0 24 10.75 24 24c0 13.2598 -10.7402 24 -24 24c-13.25 0 -24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" />
-    <glyph glyph-name="flushed" unicode="&#xf579;" horiz-adv-x="496" 
-d="M344 248c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM152 248c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248
-s-248 111 -248 248s111 248 248 248zM80 224c0 -39.7998 32.2002 -72 72 -72s72 32.2002 72 72s-32.2002 72 -72 72s-72 -32.2002 -72 -72zM312 48c21.2002 0 21.2002 32 0 32h-128c-21.2002 0 -21.2002 -32 0 -32h128zM344 152c39.7998 0 72 32.2002 72 72
-s-32.2002 72 -72 72s-72 -32.2002 -72 -72s32.2002 -72 72 -72z" />
-    <glyph glyph-name="frown-open" unicode="&#xf57a;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM136 240c0 -17.7002 14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32zM323.3 56.7002c11.4004 -3.5 22.5 6.2002 20.5 18.0996
-c-7 39.9004 -60.0996 61.2002 -95.7998 61.2002s-88.7998 -21.2002 -95.7998 -61.2002c-2 -11.7998 9 -21.5996 20.5 -18.0996c31.2002 9.59961 59.3994 15.2998 75.2998 15.2998s44.0996 -5.7002 75.2998 -15.2998zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32
-s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="glass-martini-alt" unicode="&#xf57b;" 
-d="M502.05 390.4l-214.05 -214.04v-192.36h56c22.0898 0 40 -17.9102 40 -40c0 -4.41992 -3.58008 -8 -8 -8h-240c-4.41992 0 -8 3.58008 -8 8c0 22.0898 17.9102 40 40 40h56v192.36l-214.05 214.04c-21.25 21.2598 -6.2002 57.5996 23.8496 57.5996h444.4
-c30.0498 0 45.0996 -36.3398 23.8496 -57.5996zM443.77 400h-375.529l48 -48h279.529z" />
-    <glyph glyph-name="globe-africa" unicode="&#xf57c;" horiz-adv-x="496" 
-d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM408 224.5c0 8.55957 6.94043 15.5 15.5 15.5h18.4297c-19.0693 76.9805 -82.6992 136.37 -161.92 149.21v-21.7002c0 -8.55957 -6.93945 -15.5 -15.5 -15.5
-h-24.21c-5.17969 0 -10.0195 -2.58984 -12.8896 -6.89941l-8.08008 -12.1104c-2.13965 -3.20996 -5.40039 -5.5 -9.13965 -6.44043l-14.4502 -3.60938c-6.90039 -1.73047 -11.7402 -7.93066 -11.7402 -15.04v-4.40039c0 -8.55957 6.94043 -15.5 15.5 -15.5h90.0498
-l0.00488281 0.00195312c4.27637 0 8.15039 -1.73633 10.9551 -4.54199l6.91992 -6.91992c2.91016 -2.91016 6.85059 -4.54004 10.96 -4.54004h10.0908c8.55957 0 15.5 -6.93945 15.5 -15.5c0 -6.66992 -4.27051 -12.5898 -10.6006 -14.7002l-47.3096 -15.7695
-c-3.90039 -1.2998 -8.15039 -1 -11.8301 0.839844l-14.7207 7.36035c-7.5791 3.7998 -15.9492 5.76953 -24.4297 5.76953h-0.889648c-12.2734 -0.00292969 -23.6533 -4.08594 -32.7803 -10.9297l-27.5801 -20.6904c-13.75 -10.3193 -21.8496 -26.5098 -21.8496 -43.6992
-v-14.0605c0.00292969 -15.0742 6.11328 -28.7393 16 -38.6299c10.25 -10.2402 24.1396 -16 38.6299 -16h25.8799c8.55957 0 15.5 -6.94043 15.5 -15.5v-29.8896c0 -12.6504 3.0293 -24.6885 8.33008 -35.29c4.7002 -9.40039 14.3096 -15.3398 24.8203 -15.3398
-c9.63477 0.000976562 18.1133 4.89551 23.0898 12.3594l13.0293 19.5498c7.18359 10.7715 15.4854 20.4473 25 29.1602c2.4707 2.27051 4.14062 5.27051 4.76074 8.56055l4.2998 22.8301c0.439453 2.3291 1.41016 4.5293 2.83008 6.42969l18.7402 24.9795
-c2.00977 2.68066 3.09961 5.9502 3.09961 9.30078v11.3398c0 8.55957 -6.94043 15.5 -15.5 15.5h-8.20996c-5.17969 0 -10.0205 2.58984 -12.8896 6.89941l-13.2402 19.8604c-5.66992 8.50977 -1.70996 20.0703 7.99023 23.2998l2.64941 0.879883
-c1.53906 0.511719 3.20312 0.78418 4.91309 0.78418c3.17383 0 6.12695 -0.955078 8.58691 -2.59375l18.21 -12.1396c2.45801 -1.6416 5.44043 -2.59863 8.61523 -2.59863c2.48438 0 4.83301 0.585938 6.91504 1.62793l15.3896 7.7002
-c5.25 2.62012 8.57031 7.99023 8.57031 13.8604v6.92969z" />
-    <glyph glyph-name="globe-americas" unicode="&#xf57d;" horiz-adv-x="496" 
-d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM330.29 82.4004c8.47363 8.42676 13.7158 20.0977 13.7197 32.9795l0.00488281 0.00976562c0 8.41504 -3.41602 16.0391 -8.93457 21.5605l-13.6904 13.6895
-c-6.00977 6 -14.1396 9.37012 -22.6299 9.37012h-66.75c-9.41016 4.70996 -21.4795 32 -32 32c-10.5195 0 -20.8994 2.4502 -30.3096 7.16016l-11.0801 5.54004c-4.0498 2.03027 -6.61035 6.16016 -6.61035 10.6904h-0.00195312c0 5.27539 3.42578 9.75684 8.17188 11.3398
-l31.1699 10.3896c1.58887 0.52832 3.29785 0.81543 5.0625 0.81543c4.00977 0 7.67676 -1.47656 10.4883 -3.91504l9.2793 -8.06055c1.4502 -1.25977 3.31055 -1.95996 5.24023 -1.95996h5.63965c5.94043 0 9.81055 6.25977 7.15039 11.5801l-15.5898 31.1904
-c-0.535156 1.07324 -0.842773 2.29297 -0.842773 3.57324c0 2.24805 0.928711 4.28125 2.42285 5.73633l9.91992 9.65039c1.5 1.45996 3.5 2.26953 5.58008 2.26953h8.99023l0.00390625 -0.000976562c2.20703 0 4.20703 0.894531 5.65527 2.34082l8 8
-c3.12012 3.12012 3.12012 8.19043 0 11.3105l-4.68945 4.68945c-3.12012 3.12012 -3.12012 8.19043 0 11.3105l10.3398 10.3398l4.69043 4.67969c6.25 6.25 6.25 16.3799 0 22.6299l-28.3008 28.3008c-8.26953 -0.310547 -16.3994 -1.12988 -24.3896 -2.41992v-11.3008
-c0 -11.8994 -12.5195 -19.6299 -23.1602 -14.3096l-24.0098 12.0098c-45.8398 -19.8496 -82.7305 -56.3896 -103.2 -101.89c9.92969 -14.7197 25.21 -37.3701 34.5898 -51.1406c5.20605 -7.66895 11.2012 -14.5479 18.0605 -20.7393l0.799805 -0.720703
-c9.5498 -8.60938 20.1699 -15.9697 31.6504 -21.75c14 -7.0498 34.4395 -18.1592 48.8096 -26.1094c10.1904 -5.62988 16.46 -16.3301 16.46 -27.9707v-32.0098c0 -8.49023 3.37012 -16.6299 9.37012 -22.6299c14.9902 -14.9902 24.3203 -38.6299 22.6299 -51.25v-27.3799
-c14.6504 0 28.8896 1.69043 42.6504 4.69043l17.3896 46.8496c2.04004 5.49023 3.25977 11.21 4.76953 16.8701c1.07031 4.00977 3.18066 7.70996 6.1709 10.71c3.31934 3.33008 7.40918 7.39941 11.3096 11.2803zM417 173.75l29.1797 -7.29004
-c1.08008 8.37988 1.82031 16.8701 1.82031 25.54c0 32.1299 -7.7998 62.4102 -21.3203 89.3301l-12.9795 -6.49023c-3.74023 -1.85938 -6.91992 -4.67969 -9.24023 -8.14941l-19.5898 -29.3809c-2.54004 -3.80371 -4.02051 -8.4209 -4.02051 -13.334
-c0 -4.91211 1.48047 -9.48145 4.02051 -13.2852l17.9795 -26.9707c3.31055 -4.96973 8.36035 -8.51953 14.1504 -9.96973z" />
-    <glyph glyph-name="globe-asia" unicode="&#xf57e;" horiz-adv-x="496" 
-d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM236.66 199.77l17.3701 28.9502c1.7998 2.99023 6.2002 2.82031 7.75977 -0.299805c1.34961 -2.70996 4.12012 -4.41992 7.15039 -4.41992h3.05957
-c4.41992 0 8 3.58008 8 8v78.1201c0 6.05957 -3.41992 11.5996 -8.83984 14.3096l-10.8301 5.41016c-5.49023 2.75 -5.96973 10.4004 -0.860352 13.8105l50.1602 38.5293c-19.4297 6.31055 -40.1201 9.82031 -61.6299 9.82031c-110.28 0 -200 -89.7197 -200 -200
-c0 -10.9199 1.12012 -21.5498 2.80957 -31.9902h62.5703c4.24023 0 8.31055 1.69043 11.3105 4.69043l19.4697 19.46c3.85938 3.85938 10.3701 2.7998 12.8096 -2.08008l22.6201 -45.2305c2.70996 -5.42969 8.25 -8.84961 14.3105 -8.84961h6.10938
-c8.83984 0 16 7.16016 16 16v9.37012c0 4.24023 -1.68945 8.30957 -4.68945 11.3096l-5.66016 5.66016c-3.12012 3.12012 -3.12012 8.19043 0 11.3105l5.66016 5.65918c3 3 7.06934 4.69043 11.3096 4.69043h0.310547c5.61914 0 10.8291 2.9502 13.7197 7.76953z
-M408 89.5703l-0.00976562 24.5996c0 4.24023 -1.69043 8.31055 -4.69043 11.3105l-11.9102 11.9092c-1.5 1.5 -2.33984 3.54004 -2.33984 5.66016v12.9307c0 2.20996 -1.79004 4 -4 4h-6.05957c-1.78027 0 -3.33984 -1.1709 -3.83984 -2.88086l-4.2002 -14.4697
-c-0.490234 -1.7002 -2.06055 -2.87988 -3.83984 -2.87988h-3.80078c-1.66211 0.000976562 -3.08691 1.01465 -3.68945 2.45996l-5.35059 12.8496c-1.23926 2.99023 -4.15918 4.93066 -7.38965 4.93066h-12.0898
-c-0.00390625 0 -0.0146484 -0.00488281 -0.0185547 -0.00488281c-1.72168 0 -3.31738 -0.545898 -4.62109 -1.47559l-23.71 -16.8896c-1.73047 -1.23047 -3.61035 -2.25977 -5.59082 -3.0498l-39.3398 -15.7402c-3.04004 -1.21973 -5.0293 -4.16016 -5.0293 -7.42969
-v-10.2002l-0.00195312 -0.00390625c0 -2.20703 0.895508 -4.20703 2.3418 -5.65625l11.9102 -11.9102c3 -3 7.06934 -4.68945 11.3096 -4.68945h10.3398c1.31055 0 2.61035 0.15918 3.87988 0.479492l21.2705 5.32031c2.08203 0.520508 4.25391 0.802734 6.49707 0.802734
-c7.38574 0 14.0771 -2.99805 18.9229 -7.84277l13.0098 -13.0098c3 -3 7.07031 -4.69043 11.3096 -4.69043h15.1602c4.24023 0 8.31055 1.69043 11.3105 4.69043l9.56934 9.56934c3 3 4.69043 7.07031 4.69043 11.3105z" />
-    <glyph glyph-name="grimace" unicode="&#xf57f;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM144 48v40h-40v-8c0 -17.7002 14.2998 -32 32 -32h8zM144 104v40h-8c-17.7002 0 -32 -14.2998 -32 -32v-8h40zM136 240c0 -17.7002 14.2998 -32 32 -32s32 14.2998 32 32
-s-14.2998 32 -32 32s-32 -14.2998 -32 -32zM208 48v40h-48v-40h48zM208 104v40h-48v-40h48zM272 48v40h-48v-40h48zM272 104v40h-48v-40h48zM336 48v40h-48v-40h48zM336 104v40h-48v-40h48zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32
-s14.2998 -32 32 -32zM392 80v8h-40v-40h8c17.7002 0 32 14.2998 32 32zM392 104v8c0 17.7002 -14.2998 32 -32 32h-8v-40h40z" />
-    <glyph glyph-name="grin" unicode="&#xf580;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM168 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32
-s32 14.2998 32 32s-14.2998 32 -32 32zM248 16c60.5996 0 134.5 38.2998 143.8 93.2998c1.90039 11.7998 -9.39941 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002
-c-11.4004 3.7002 -22.7002 -6.10059 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
-    <glyph glyph-name="grin-alt" unicode="&#xf581;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM311.7 311.3c-12.4004 -18.3994 -15.2002 -36.8994 -15.7002 -55.2998c0.599609 -18.4004 3.2998 -36.9004 15.7002 -55.2998c8 -11.7002 25.0996 -11.4004 32.7002 0
-c12.3994 18.3994 15.1992 36.8994 15.6992 55.2998c-0.599609 18.4004 -3.2998 36.9004 -15.6992 55.2998c-8 11.7002 -25.1006 11.4004 -32.7002 0zM151.7 311.3c-12.4004 -18.3994 -15.2002 -36.8994 -15.7002 -55.2998
-c0.599609 -18.4004 3.2998 -36.9004 15.7002 -55.2998c8 -11.7002 25.0996 -11.4004 32.7002 0c12.3994 18.3994 15.1992 36.8994 15.6992 55.2998c-0.599609 18.4004 -3.2998 36.9004 -15.6992 55.2998c-8 11.7002 -25.1006 11.4004 -32.7002 0zM248 16
-c60.5996 0 134.5 38.2998 143.8 93.2998c1.90039 11.7998 -9.2998 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.4004 3.7002 -22.7002 -6.10059 -20.7002 -17.9004
-c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
-    <glyph glyph-name="grin-beam" unicode="&#xf582;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 296c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7998 -11.7998 14.8994 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006
-c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17c4.10059 -7.39941 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM168 296c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7002 -11.8994 14.8994 -4.5l9.5 17
-c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17c4.10059 -7.39941 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM248 16c60.5996 0 134.5 38.2998 143.8 93.2998
-c1.90039 11.7998 -9.2998 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.3008 3.7002 -22.7002 -6 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
-    <glyph glyph-name="grin-beam-sweat" unicode="&#xf583;" horiz-adv-x="504" 
-d="M456 320c-26.5 0 -48 21 -48 47c0 20 28.5 60.4004 41.5996 77.7998c3.2002 4.2998 9.60059 4.2998 12.8008 0c13.0996 -17.3994 41.5996 -57.7998 41.5996 -77.7998c0 -26 -21.5 -47 -48 -47zM456 288c6.7998 0 13.2002 1.09961 19.5 2.59961
-c13.0996 -30.1992 20.5 -63.5 20.5 -98.5996c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248c50.2998 0 97 -15.0996 136.1 -40.7998c-7.7998 -18 -8.09961 -27.7998 -8.09961 -32.2002c0 -43.5996 35.9004 -79 80 -79zM328 296
-c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7998 -11.8994 14.8994 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17c4.10059 -7.5 15.6006 -4.09961 14.9004 4.5
-c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM168 296c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7002 -11.8994 14.8994 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17
-c4.10059 -7.5 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM248 16c60.5996 0 134.5 38.2998 143.8 93.2998c1.90039 11.7002 -9.2002 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002
-s-92.9004 5.5 -123.1 15.2002c-11.4004 3.7002 -22.7002 -6.10059 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
-    <glyph glyph-name="grin-hearts" unicode="&#xf584;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM90.4004 264.4c-7.7002 -20.2002 3.7998 -41.8008 24.1992 -47.2002l70.2002 -18.2002c4.60059 -1.2002 9.2998 1.5 10.5 6l19.4004 69.9004
-c5.59961 20.2998 -7.40039 41.0996 -28.7998 44.5c-18.7002 3 -36.5 -9.80078 -41.5 -27.9004l-2 -7.09961l-7.10059 1.89941c-18.2002 4.7998 -38.2002 -4.2998 -44.8994 -21.8994zM248 16c60.5996 0 134.5 38.2998 143.8 93.2998
-c1.90039 11.7998 -9.2998 21.5 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.5 3.59961 -22.7002 -6.10059 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998zM381.4 217.3
-c20.3994 5.2998 31.8994 26.9004 24.1992 47.2002c-6.69922 17.5996 -26.6992 26.5996 -44.8994 21.9004l-7.10059 -1.90039l-2 7.09961c-5.09961 18.1006 -22.8994 30.9004 -41.5 27.9004c-21.3994 -3.40039 -34.3994 -24.2002 -28.7998 -44.5l19.4004 -69.9004
-c1.2998 -4.5 6 -7.19922 10.5 -6z" />
-    <glyph glyph-name="grin-squint" unicode="&#xf585;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM281.8 250.3c-7.7002 -4.7002 -7.7002 -15.8994 0 -20.5996l80 -48c11.5 -6.7998 24.1006 7.59961 15.4004 18l-33.6006 40.2998l33.6006 40.2998
-c8.59961 10.2998 -3.7998 24.9004 -15.4004 18zM118.8 280.3l33.6006 -40.2998l-33.6006 -40.2998c-8.59961 -10.4004 3.90039 -24.7998 15.4004 -18l80 48c7.7998 4.7002 7.7998 15.8994 0 20.5996l-80 48c-11.6006 6.90039 -24 -7.7002 -15.4004 -18zM248 16
-c60.5996 0 134.5 38.2998 143.8 93.2998c1.90039 11.7002 -9.2002 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.3008 3.7002 -22.7002 -6 -20.7002 -17.9004
-c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
-    <glyph glyph-name="grin-squint-tears" unicode="&#xf586;" 
-d="M409.6 336.1c-5.59961 -0.799805 -10.2998 3.90039 -9.5 9.40039c3.30078 22.5996 12 73.5 26.8008 88.2998c19.0996 19.2002 50.6992 18.9004 70.2998 -0.700195c19.5996 -19.5996 19.8994 -51 0.700195 -70.1992
-c-14.8008 -14.8008 -65.7002 -23.6006 -88.3008 -26.8008zM102.4 47.9004c5.59961 0.799805 10.2998 -3.90039 9.5 -9.40039c-3.30078 -22.5996 -12 -73.5 -26.8008 -88.2998c-19.1992 -19.2002 -50.5996 -18.9004 -70.1992 0.700195
-c-19.6006 19.5996 -19.9004 51.0996 -0.800781 70.1992c14.8008 14.8008 65.7002 23.6006 88.3008 26.8008zM414.1 304.4c24 3.5 42.1006 7.39941 56.5 11.5c54.8008 -94.9004 42 -218.2 -39.1992 -299.301c-81.2002 -81.0996 -204.5 -94 -299.301 -39.1992
-c4.10059 14.3994 8.10059 32.5 11.5 56.5c2.90039 20.5 -12.5 49.5996 -45.6992 45.6992c-24.1006 -3.5 -42.1006 -7.39941 -56.5 -11.5c-54.8008 94.9004 -41.9004 218.2 39.1992 299.301c81.2002 81.0996 204.5 94 299.301 39.1992
-c-4.10059 -14.3994 -8.10059 -32.5 -11.5 -56.5c-2.90039 -20.5996 12.6992 -49.5996 45.6992 -45.6992zM255.7 342l-22.5 -90.5996c-2.2002 -8.60059 5.59961 -16.7002 14.5 -14.5l90.5 22.5996c13.0996 3.2998 11.5996 22.4004 -1.7998 23.5996l-52.3008 4.80078
-l-4.7998 52.2998c-1.2002 13.2998 -20.2998 15 -23.5996 1.7998zM164.8 111.7c1.2998 -13.4004 20.4004 -14.9004 23.5 -1.7002l22.6006 90.5c2.19922 8.7002 -5.7002 16.7002 -14.5 14.5l-90.5 -22.5996c-13.1006 -3.30078 -11.6006 -22.4004 1.7998 -23.6006
-l52.2998 -4.7998zM380.5 67.5c42.7998 42.9004 68 122.3 35.7002 167.6c-7.10059 9.90039 -21.9004 8.5 -27.2998 -2c-14.6006 -28.1992 -42.4004 -63.8994 -76.3008 -97.7998c-33.8994 -33.8994 -69.5 -61.7002 -97.7998 -76.2998
-c-10.7002 -5.40039 -11.7998 -20.2998 -2 -27.2002c14.4004 -10.2002 32.1006 -14.7002 51 -14.7002c41 0 87.4004 21.1006 116.7 50.4004z" />
-    <glyph glyph-name="grin-stars" unicode="&#xf587;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM94.5996 279.1c-6.19922 -1 -8.89941 -8.59961 -4.2998 -13.2998l25.4004 -24.5996l-6 -34.9004c-1 -6.2002 5.2998 -11 11 -7.89941l31.2998 16.2998l31.2002 -16.2002
-c5.7002 -3.09961 12 1.7002 11 7.90039l-6 34.8994l25.3994 24.6006c4.60059 4.59961 1.90039 12.1992 -4.2998 13.1992l-34.8994 5l-15.5 31.6006c-2.90039 5.7998 -11 5.7998 -13.9004 0l-15.5 -31.6006zM248 16c60.5996 0 134.5 38.2998 143.8 93.2998
-c1.90039 11.7998 -9.2002 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.4004 3.59961 -22.7002 -6.10059 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998zM405.7 265.9
-c4.59961 4.59961 1.89941 12.1992 -4.40039 13.0996l-34.8994 5l-15.5 31.5996c-2.90039 5.80078 -11 5.80078 -13.9004 0l-15.5 -31.5996l-34.9004 -5c-6.19922 -1 -8.7998 -8.59961 -4.2998 -13.2002l25.4004 -24.5996l-6 -34.9004c-1 -6.2002 5.2998 -11 11 -7.89941
-l31.2998 16.2998l31.2998 -16.2002c5.7002 -3.09961 12 1.7002 11 7.90039l-6 34.8994z" />
-    <glyph glyph-name="grin-tears" unicode="&#xf588;" horiz-adv-x="640" 
-d="M102.4 191.9c5.59961 0.799805 10.2998 -3.90039 9.5 -9.40039c-3.30078 -22.5996 -12 -73.5 -26.8008 -88.2998c-19.1992 -19.2002 -50.5996 -18.9004 -70.1992 0.700195c-19.6006 19.5996 -19.9004 51.0996 -0.800781 70.1992
-c14.8008 14.8008 65.7002 23.6006 88.3008 26.8008zM625.8 165.1c19.2002 -19.0996 18.7998 -50.6992 -0.799805 -70.2998c-19.5996 -19.5996 -51 -19.8994 -70.2002 -0.700195c-14.7998 14.8008 -23.5996 65.7002 -26.7998 88.3008c-0.799805 5.59961 4 10.2998 9.5 9.5
-c22.5996 -3.30078 73.5 -12 88.2998 -26.8008zM496.4 177.9c11.7998 -82.3008 29.8994 -100.4 35.7998 -106.301c0.899414 -1 2 -1.59961 3 -2.5c-42.7002 -74.6992 -123 -125.1 -215.2 -125.1s-172.5 50.4004 -215.2 125c1 0.900391 2.10059 1.59961 3 2.5
-c5.90039 6 24 24.0996 35.7998 106.4c2.90039 20.3994 -12.5 49.5996 -45.6992 45.6992c-8.90039 -1.2998 -16.8008 -2.69922 -24.3008 -4.09961c13.7002 124 118.7 220.5 246.4 220.5s232.7 -96.5 246.4 -220.5c-7.5 1.40039 -15.4004 2.7998 -24.3008 4.09961
-c-26.5996 3.80078 -49.5 -19.0996 -45.6992 -45.6992zM400 296c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7002 -11.8994 14.8994 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17
-c4.10059 -7.5 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM240 296c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7002 -11.8994 14.8994 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006
-c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17c4.10059 -7.5 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM320 16c60.5996 0 134.5 38.2998 143.8 93.2998c1.90039 11.7998 -9.2998 21.6006 -20.7002 17.9004
-c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.5 3.7002 -22.7002 -6.2002 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
-    <glyph glyph-name="grin-tongue" unicode="&#xf589;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248c0 -106.3 -67 -196.7 -161 -232c5.59961 12.2002 9 25.7002 9 40v45.5c24.7002 16.2002 43.5 38.0996 47.7998 63.7998c1.90039 11.7998 -9.2998 21.5 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002
-s-92.9004 5.5 -123.1 15.2002c-11.4004 3.59961 -22.7002 -6.10059 -20.7002 -17.9004c4.2998 -25.7002 23.0996 -47.5996 47.7998 -63.7998v-45.5c0 -14.2998 3.40039 -27.7998 9 -40c-94 35.2998 -161 125.7 -161 232c0 137 111 248 248 248zM168 208
-c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM293.1 73.4004c0.800781 -0.400391 -0.5 0.299805 19 -9.30078v-64
-c0 -35.5996 -29.1992 -64.5 -64.8994 -64c-35.1006 0.400391 -63.1006 29.7002 -63.1006 64.9004v63c19.2002 9.59961 18 9 18.9004 9.40039c14.4004 6.5 31.0996 -2.2002 34.5996 -17.6006l1.80078 -7.7998c2.09961 -9.2002 15.1992 -9.2002 17.2998 0l1.7998 7.7998
-c3.5 15.4004 20.2002 24.1006 34.5996 17.6006z" />
-    <glyph glyph-name="grin-tongue-squint" unicode="&#xf58a;" horiz-adv-x="496" 
-d="M293.1 73.4004c0.800781 -0.400391 -0.5 0.299805 19 -9.30078v-64c0 -35.5996 -29.1992 -64.5 -64.8994 -64c-35.1006 0.400391 -63.1006 29.7002 -63.1006 64.9004v63c19.2002 9.59961 18 9 18.9004 9.40039c14.4004 6.5 31.0996 -2.2002 34.5996 -17.6006
-l1.80078 -7.7998c2.09961 -9.2002 15.1992 -9.2002 17.2998 0l1.7998 7.7998c3.5 15.4004 20.2002 24.1006 34.5996 17.6006zM248 440c137 0 248 -111 248 -248c0 -106.3 -67 -196.7 -161 -232c5.59961 12.2002 9 25.7002 9 40v45.5
-c24.7002 16.2002 43.5 38.0996 47.7998 63.7998c1.90039 11.7998 -9.2998 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.5 3.59961 -22.7002 -6.10059 -20.7002 -17.9004
-c4.2998 -25.7002 23.0996 -47.5996 47.7998 -63.7998v-45.5c0 -14.2998 3.40039 -27.7998 9 -40c-94 35.2998 -161 125.7 -161 232c0 137 111 248 248 248zM214.2 229.7c7.7002 4.7002 7.7002 15.8994 0 20.5996l-80 48c-11.6006 6.90039 -24 -7.7002 -15.4004 -18
-l33.6006 -40.2998l-33.6006 -40.2998c-8.59961 -10.4004 3.90039 -24.7998 15.4004 -18zM377.2 199.7l-33.6006 40.2998l33.6006 40.2998c8.5 10.2998 -3.7002 24.9004 -15.4004 18l-80 -48c-7.7998 -4.7002 -7.7998 -15.8994 0 -20.5996l80 -48
-c11.5 -6.7998 24.1006 7.59961 15.4004 18z" />
-    <glyph glyph-name="grin-tongue-wink" unicode="&#xf58b;" horiz-adv-x="496" 
-d="M344 264c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM248 440c137 0 248 -111 248 -248c0 -106.3 -67 -196.7 -161 -232c5.59961 12.2002 9 25.7002 9 40v45.5c24.7002 16.2002 43.5 38.0996 47.7998 63.7998
-c1.90039 11.7998 -9.2002 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.4004 3.59961 -22.7002 -6.10059 -20.7002 -17.9004c4.2998 -25.7002 23.0996 -47.5996 47.7998 -63.7998v-45.5
-c0 -14.2998 3.40039 -27.7998 9 -40c-94 35.2998 -161 125.7 -161 232c0 137 111 248 248 248zM192 215c8.40039 -7.40039 21.5996 -0.299805 20 10.7998c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006
-c-1.7998 -11.0996 11.2998 -18.2002 19.7998 -10.7998l9.5 8.5c14.7998 13.2002 46.2002 13.2002 61 0zM344 176c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64s-64 -28.7002 -64 -64s28.7002 -64 64 -64zM293.1 73.4004c0.800781 -0.400391 -0.5 0.299805 19 -9.30078
-v-64c0 -35.5996 -29.1992 -64.5 -64.8994 -64c-35.1006 0.400391 -63.1006 29.7002 -63.1006 64.9004v63c19.2002 9.59961 18 9 18.9004 9.40039c14.4004 6.5 31.0996 -2.2002 34.5996 -17.6006l1.80078 -7.7998c2.09961 -9.2002 15.1992 -9.2002 17.2998 0l1.7998 7.7998
-c3.5 15.4004 20.2002 24.1006 34.5996 17.6006z" />
-    <glyph glyph-name="grin-wink" unicode="&#xf58c;" horiz-adv-x="496" 
-d="M0 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM200 240c0 17.7002 -14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32zM368 215c8.5 -7.40039 21.5996 -0.200195 20 10.7998
-c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006c-1.7998 -11.2002 11.5 -18.2002 19.7998 -10.7998l9.5 8.5c14.7998 13.2002 46.2002 13.2002 61 0zM124.9 127.2c-11.4004 3.7002 -22.7002 -6 -20.7002 -17.9004
-c9.2998 -55 83.2002 -93.2998 143.8 -93.2998s134.6 38.2998 143.8 93.2998c1.90039 11.9004 -9.39941 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002z" />
-    <glyph glyph-name="grip-horizontal" unicode="&#xf58d;" horiz-adv-x="448" 
-d="M96 160c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM256 160c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64
-c0 17.6699 14.3301 32 32 32h64zM416 160c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM96 352c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64
-c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM256 352c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM416 352c17.6699 0 32 -14.3301 32 -32v-64
-c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64z" />
-    <glyph glyph-name="grip-vertical" unicode="&#xf58e;" horiz-adv-x="320" 
-d="M96 416c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM96 256c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64
-c0 17.6699 14.3301 32 32 32h64zM96 96c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM288 416c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64
-c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM288 256c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM288 96c17.6699 0 32 -14.3301 32 -32v-64
-c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64z" />
-    <glyph glyph-name="headphones-alt" unicode="&#xf58f;" 
-d="M160 160c17.6699 0 32 -14.3496 32 -32.0596v-127.881c0 -17.6992 -14.3301 -32.0596 -32 -32.0596h-16c-35.3496 0 -64 28.71 -64 64.1201v63.7598c0 35.4199 28.6504 64.1201 64 64.1201h16zM368 160c35.3496 0 64 -28.71 64 -64.1201v-63.7598
-c0 -35.4102 -28.6504 -64.1201 -64 -64.1201h-16c-17.6699 0 -32 14.3604 -32 32.0596v127.881c0 17.71 14.3301 32.0596 32 32.0596h16zM256 416c143.09 0 251.43 -119.13 256 -256v-112c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v112
-c0 114.67 -93.3301 207.8 -208 207.82c-114.67 -0.0205078 -208 -93.1504 -208 -207.82v-112c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v112c4.57031 136.87 112.91 256 256 256z" />
-    <glyph glyph-name="headset" unicode="&#xf590;" 
-d="M192 240v-112c0 -17.6699 -14.3301 -32 -32 -32h-16c-35.3496 0 -64 28.6504 -64 64v48c0 35.3496 28.6504 64 64 64h16c17.6699 0 32 -14.3301 32 -32zM368 96h-16c-17.6699 0 -32 14.3301 -32 32v112c0 17.6699 14.3301 32 32 32h16c35.3496 0 64 -28.6504 64 -64v-48
-c0 -35.3496 -28.6504 -64 -64 -64zM256 448c142.82 0 251.42 -118.83 256 -256v-165.72c0 -49.8604 -40.4199 -90.2803 -90.2803 -90.2803h-181.72c-26.5098 0 -48 21.4902 -48 48s21.4902 48 48 48h32c26.5098 0 48 -21.4902 48 -48h101.72
-c23.3506 0 42.2803 18.9297 42.2803 42.2803c0 0 -0.0400391 163.29 -0.120117 165.72h0.120117c0 114.69 -93.3096 208 -208 208s-208 -93.3096 -208 -208v-16c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v16c4.58008 137.17 113.18 256 256 256z
-" />
-    <glyph glyph-name="highlighter" unicode="&#xf591;" horiz-adv-x="544" 
-d="M0 -31.9805l68.3301 70.4707l67.04 -67.04l-35.4502 -35.4502zM124.61 208.03l41.5195 35.4395l173.34 -173.34l-35.5498 -41.6396c-9.5 -10.7705 -24.4199 -14.9805 -38.1504 -10.7803l-42.7393 13.0801l-50.8604 -50.8604l-96.2295 96.2305l50.9297 50.9395
-l-13.0498 42.8301c-1.02832 3.37598 -1.60645 6.94922 -1.60645 10.6592c0 10.9229 4.79688 20.7344 12.3965 27.4414zM527.92 368.73c20.5 -20.5 21.5303 -53.3906 2.34961 -75.1309l-169.949 -199.06l-169.771 169.78l199.05 169.96
-c21.7402 19.1699 54.6309 18.1396 75.1201 -2.35059z" />
-    <glyph glyph-name="hot-tub" unicode="&#xf593;" 
-d="M414.21 270.35c-3.15039 25.3906 -14.6104 47.9707 -31.9697 62.1406c-27.7305 22.6299 -45.79 58.0498 -50.1299 97.1602c-1.09082 9.7793 6.48926 18.3496 16 18.3496h16.1201c7.98926 0 14.7295 -6.13965 15.7393 -14.3398
-c3.16016 -25.4004 14.6104 -47.9805 31.9805 -62.1504c27.7295 -22.6299 45.79 -58.0498 50.1299 -97.1602c1.08008 -9.7793 -6.49023 -18.3496 -16 -18.3496h-16.1201c-8 0 -14.7295 6.13965 -15.75 14.3496zM306.21 270.35
-c-3.15039 25.3906 -14.6104 47.9707 -31.9697 62.1406c-27.7305 22.6299 -45.79 58.0498 -50.1299 97.1602c-1.09082 9.7793 6.48926 18.3496 16 18.3496h16.1201c7.98926 0 14.7295 -6.13965 15.7393 -14.3398c3.16016 -25.4004 14.6104 -47.9805 31.9805 -62.1504
-c27.7295 -22.6299 45.79 -58.0498 50.1299 -97.1602c1.08008 -9.7793 -6.49023 -18.3496 -16 -18.3496h-16.1201c-8 0 -14.7295 6.13965 -15.75 14.3496zM480 192c17.6699 0 32 -14.3301 32 -32v-160c0 -35.3496 -28.6504 -64 -64 -64h-384c-35.3496 0 -64 28.6504 -64 64
-v224c0 35.3496 28.6504 64 64 64h42.6699c14.3779 0 27.7109 -4.78223 38.4004 -12.7998l110.93 -83.2002h224zM128 8v112c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-112c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8zM224 8v112
-c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-112c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8zM320 8v112c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-112c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8zM416 8
-v112c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-112c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8zM64 320c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64s64 -28.6504 64 -64s-28.6504 -64 -64 -64z" />
-    <glyph glyph-name="hotel" unicode="&#xf594;" horiz-adv-x="576" 
-d="M560 384h-16v-384h16c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-240v80c0 8.7998 -7.2002 16 -16 16h-32c-8.7998 0 -16 -7.2002 -16 -16v-80h-240c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h15.9805v384h-15.9805
-c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h544c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16zM256 339.2v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998v38.4004
-c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998zM256 243.2v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998v38.4004
-c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998zM128 339.2v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998v38.4004
-c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998zM179.2 192c6.39941 0 12.7998 6.40039 12.7998 12.7998v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
-c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004zM192 64h192c0 53.0195 -42.9805 96 -96 96s-96 -42.9805 -96 -96zM448 204.8v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
-c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM448 300.8v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
-c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998z" />
-    <glyph glyph-name="joint" unicode="&#xf595;" horiz-adv-x="640" 
-d="M444.34 266.9c-35.7803 25.0693 -60.3398 63.0098 -60.3398 106.699v66.4004c0 4.41992 3.58008 8 8 8h48c4.41992 0 8 -3.58008 8 -8v-62.3096c0 -29.0303 15.8496 -54.71 39.6602 -71.3203c35.3301 -24.6504 56.3398 -64.8203 56.3398 -108.061v-30.3096
-c0 -4.41992 -3.58008 -8 -8 -8h-48c-4.41992 0 -8 3.58008 -8 8v30.3096c0 27.4307 -13.2803 52.9102 -35.6602 68.5908zM194.97 89.0195c22.3701 3.60059 45.0801 -4.30957 59.8203 -21.5098l112.72 -131.51h-88.5693c-98.6406 0 -195.29 27.7197 -278.94 80
-c59.6904 37.3096 126.03 61.9297 194.97 73.0195zM553.28 360.91c54.3096 -36.4102 86.7197 -97.1602 86.7197 -162.601v-30.3096c0 -4.41992 -3.58008 -8 -8 -8h-48c-4.41992 0 -8 3.58008 -8 8v30.3096c0 50.1504 -25.21 96.6504 -67.3604 123.99
-c-18.4697 11.9805 -28.6396 33.3701 -28.6396 55.3906v62.3096c0 4.41992 3.58008 8 8 8h48c4.41992 0 8 -3.58008 8 -8v-62.3096c0 -6.82031 3.61035 -12.9805 9.28027 -16.7803zM360.89 95.9502c0.0371094 0 0.0556641 0.0351562 0.0927734 0.0351562
-c19.4336 0 36.8535 -8.68652 48.5879 -22.3857l117.949 -137.6h-88.4492c-19.4385 0 -36.8506 8.65137 -48.5898 22.3496l-117.801 137.431c1.40039 0.0195312 53.8105 0.109375 88.21 0.169922zM616 96c13.25 0 24 -10.7402 24 -24v-112c0 -13.25 -10.75 -24 -24 -24
-h-17.4199c-19.4375 0 -36.8506 8.65137 -48.5898 22.3496l-117.99 137.65h184z" />
-    <glyph glyph-name="kiss" unicode="&#xf596;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM168 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM304 52c0 13 -13.4004 27.2998 -35.2002 36.4004
-c21.7998 8.69922 35.2002 23 35.2002 36c0 19.1992 -28.7002 41.5 -71.5 44c-8.40039 1.09961 -12.2002 -11.8008 -3.59961 -15.4004l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5l-17 -7.2002c-6.10059 -2.59961 -6 -12.2998 0 -14.7998
-l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5l-17 -7.19922c-8.5 -3.60059 -4.90039 -16.2002 3.59961 -15.4004c42.7998 2.5 71.5 24.7998 71.5 44zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32
-s14.2998 -32 32 -32z" />
-    <glyph glyph-name="kiss-beam" unicode="&#xf597;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM209 220.1c4.2002 -7.5 15.5996 -4 15.0996 4.5c-3.2998 42.1006 -32.1992 71.4004 -56 71.4004c-23.7998 0 -52.6992 -29.2998 -56 -71.4004
-c-0.699219 -8.5 10.7002 -11.8994 14.9004 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006s23.7998 -7.90039 31.5 -21.6006zM304 52c0 13 -13.4004 27.2998 -35.2002 36.4004c21.7998 8.69922 35.2002 23 35.2002 36c0 19.1992 -28.7002 41.5 -71.5 44
-c-8.40039 1.09961 -12.2002 -11.8008 -3.59961 -15.4004l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5l-17 -7.2002c-6.10059 -2.59961 -6 -12.2998 0 -14.7998l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5
-l-17 -7.19922c-8.5 -3.60059 -4.90039 -16.2002 3.59961 -15.4004c42.7998 2.5 71.5 24.7998 71.5 44zM369 220.1c4.2002 -7.5 15.5996 -4 15.0996 4.5c-3.2998 42.1006 -32.1992 71.4004 -56 71.4004c-23.7998 0 -52.6992 -29.2998 -56 -71.4004
-c-0.699219 -8.5 10.8008 -11.7998 14.9004 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006s23.7998 -7.90039 31.5 -21.6006z" />
-    <glyph glyph-name="kiss-wink-heart" unicode="&#xf598;" horiz-adv-x="504" 
-d="M501.1 45.5c9.2002 -23.9004 -4.39941 -49.4004 -28.5 -55.7002l-83 -21.5c-5.39941 -1.39941 -10.8994 1.7998 -12.3994 7.10059l-22.9004 82.5996c-6.59961 24 8.7998 48.5996 34 52.5996c22 3.5 43.1006 -11.5996 49 -33l2.2998 -8.39941l8.40039 2.2002
-c21.5996 5.59961 45.0996 -5.10059 53.0996 -25.9004zM323.5 49.5c0 0 23.5996 -83.9004 23.9004 -84.5996c-30.5 -13.4004 -64 -20.9004 -99.4004 -20.9004c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248c0 -31.7998 -6.2002 -62.0996 -17.0996 -90
-c-6 1.5 -12.2002 2.7998 -18.6006 2.90039c-29.0996 49.7998 -98.0996 50.5996 -127.8 4.2998c-11.2998 -17.7002 -14.5996 -39.4004 -9 -59.7002zM168 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM288 52
-c0 13 -13.4004 27.2998 -35.2002 36.4004c21.7998 8.69922 35.2002 23 35.2002 36c0 19.1992 -28.7002 41.5 -71.5 44c-8.2002 1.19922 -12.4004 -11.7002 -3.59961 -15.4004l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5l-17 -7.2002
-c-5.7002 -2.5 -6 -12.2998 0 -14.7998l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5l-17 -7.19922c-8.5 -3.60059 -4.90039 -16.2002 3.59961 -15.4004c42.7998 2.5 71.5 24.7998 71.5 44zM304 231l9.7002 8.5
-c14.7998 13.2002 46.2002 13.2002 61 0l9.5 -8.5c8.5 -7.5 21.5 -0.299805 19.7998 10.7998c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006c-1.7998 -11.2002 11.5 -18.2002 19.7998 -10.7998z" />
-    <glyph glyph-name="laugh" unicode="&#xf599;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 288c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM168 288c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32
-s32 14.2998 32 32s-14.2998 32 -32 32zM256 16c73.4004 0 134 55 142.9 126c1.19922 9.59961 -6.30078 18 -15.9004 18h-270c-9.59961 0 -17.0996 -8.5 -15.9004 -18c8.90039 -71 69.5 -126 142.9 -126h16z" />
-    <glyph glyph-name="laugh-beam" unicode="&#xf59a;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM272 240.6c-0.700195 -8.59961 10.9004 -11.8994 15.0996 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17
-c4.10059 -7.39941 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004s-52.7002 -29.2998 -56 -71.4004zM112 240.6c-0.700195 -8.5 10.7998 -11.8994 15.0996 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006
-c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17c4.10059 -7.39941 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004s-52.7002 -29.2998 -56 -71.4004zM398.9 142c1.19922 9.59961 -6.30078 18 -15.9004 18h-270
-c-9.59961 0 -17.0996 -8.5 -15.9004 -18c8.90039 -71 69.5 -126 142.9 -126h16c73.4004 0 134 55 142.9 126z" />
-    <glyph glyph-name="laugh-squint" unicode="&#xf59b;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM281.8 278.3c-7.7002 -4.7002 -7.7002 -15.8994 0 -20.5996l80 -48c11.5 -6.7998 24.1006 7.59961 15.4004 18l-33.6006 40.2998l33.6006 40.2998
-c8.59961 10.2998 -3.7998 24.9004 -15.4004 18zM118.8 308.3l33.6006 -40.2998l-33.6006 -40.2998c-8.59961 -10.4004 3.90039 -24.7998 15.4004 -18l80 48c7.7998 4.7002 7.7998 15.8994 0 20.5996l-80 48c-11.6006 6.90039 -24 -7.7002 -15.4004 -18zM398.9 142
-c1.19922 9.59961 -6.30078 18 -15.9004 18h-270c-9.59961 0 -17.0996 -8.5 -15.9004 -18c8.90039 -71 69.5 -126 142.9 -126h16c73.4004 0 134 55 142.9 126z" />
-    <glyph glyph-name="laugh-wink" unicode="&#xf59c;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM268.1 241.9c-1.69922 -11.2002 11.5 -18.3008 19.9004 -10.9004l9.59961 8.59961c14.8008 13.2002 46.2002 13.2002 61 0l9.5 -8.5
-c8.40039 -7.5 21.5 -0.299805 19.8008 10.8008c-4 25.1992 -34.2002 42.0996 -59.9004 42.0996s-55.9004 -16.9004 -59.9004 -42.0996zM168 288c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM398.9 142
-c1.19922 9.59961 -6.30078 18 -15.9004 18h-270c-9.59961 0 -17.0996 -8.5 -15.9004 -18c8.90039 -71 69.5 -126 142.9 -126h16c73.4004 0 134 55 142.9 126z" />
-    <glyph glyph-name="luggage-cart" unicode="&#xf59d;" horiz-adv-x="640" 
-d="M224 128c-17.6699 0 -32 14.3301 -32 32v160c0 17.6699 14.3301 32 32 32h32v-224h-32zM576 160c0 -17.6699 -14.3301 -32 -32 -32h-32v224h32c17.6699 0 32 -14.3301 32 -32v-160zM624 64c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-82.9404
-c1.79004 -5.03027 2.94043 -10.3604 2.94043 -16c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48c0 5.63965 1.15039 10.9697 2.94043 16h-197.881c1.79004 -5.03027 2.94043 -10.3604 2.94043 -16c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48
-c0 5.63965 1.15039 10.9697 2.94043 16h-82.9404c-8.83984 0 -16 7.16016 -16 16v368h-48c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h96c8.83984 0 16 -7.16016 16 -16v-368h496zM480 352v-224h-192v272c0 26.5098 21.4902 48 48 48h96
-c26.5098 0 48 -21.4902 48 -48v-48zM432 352v48h-96v-48h96z" />
-    <glyph glyph-name="map-marked" unicode="&#xf59f;" horiz-adv-x="576" 
-d="M288 448c69.5898 0 126 -56.4102 126 -126c0 -56.2598 -82.3496 -158.8 -113.9 -196.02c-6.37988 -7.54004 -17.8096 -7.54004 -24.1992 0c-31.5508 37.2197 -113.9 139.76 -113.9 196.02c0 69.5898 56.4102 126 126 126zM20.1201 232.05l118.63 47.4502
-c5.17969 -14.8799 12.4102 -30.4404 21.25 -46.4199v-233.08l-138.06 -62.8398c-10.5107 -4.2002 -21.9404 3.54004 -21.9404 14.8594v250.32c0.00292969 13.4697 8.32617 24.9932 20.1201 29.71zM288 88.3301c14.0703 0 27.3799 6.17969 36.5098 16.9502
-c19.6699 23.2002 40.5703 49.6299 59.4902 76.7197v-245.99l-192 64v182c18.9199 -27.0996 39.8301 -53.5195 59.4902 -76.7197c9.12988 -10.7803 22.4395 -16.96 36.5098 -16.96zM554.06 286.84c10.5107 4.2002 21.9404 -3.54004 21.9404 -14.8594v-250.32
-c0 -13.4707 -8.32422 -24.9951 -20.1201 -29.71l-139.88 -55.9502v288z" />
-    <glyph glyph-name="map-marked-alt" unicode="&#xf5a0;" horiz-adv-x="576" 
-d="M288 448c69.5898 0 126 -56.4102 126 -126c0 -56.2598 -82.3496 -158.8 -113.9 -196.02c-6.37988 -7.54004 -17.8096 -7.54004 -24.1992 0c-31.5508 37.2197 -113.9 139.76 -113.9 196.02c0 69.5898 56.4102 126 126 126zM288 280c23.2002 0 42 18.7998 42 42
-s-18.7998 42 -42 42s-42 -18.7998 -42 -42s18.7998 -42 42 -42zM20.1201 232.05l118.63 47.4502c5.17969 -14.8799 12.4102 -30.4404 21.25 -46.4199v-233.08l-138.06 -62.8398c-10.5107 -4.2002 -21.9404 3.54004 -21.9404 14.8594v250.32
-c0.00292969 13.4697 8.32617 24.9932 20.1201 29.71zM288 88.3301c14.0703 0 27.3799 6.17969 36.5098 16.9502c19.6699 23.2002 40.5703 49.6299 59.4902 76.7197v-245.99l-192 64v182c18.9199 -27.0996 39.8301 -53.5195 59.4902 -76.7197
-c9.12988 -10.7803 22.4395 -16.96 36.5098 -16.96zM554.06 286.84c10.5107 4.2002 21.9404 -3.54004 21.9404 -14.8594v-250.32c0 -13.4707 -8.32422 -24.9951 -20.1201 -29.71l-139.88 -55.9502v288z" />
-    <glyph glyph-name="marker" unicode="&#xf5a1;" 
-d="M93.9502 157.97l75.3994 75.4004l128.021 -128.021l-75.4004 -75.3994c-51.1611 -51.1592 -119.559 -85.4326 -195.34 -93.7998c-15.2803 -1.69043 -28.1895 11.2295 -26.4902 26.5098l0.0302734 0.229492c8.42188 75.6777 42.6777 143.978 93.7803 195.08z
-M485.49 421.49c35.3496 -35.3604 35.3496 -92.6699 0 -128.021l-165.49 -165.489l-128.02 128.02l98.4795 98.4697l-19.5898 19.5898l-87.1504 -87.1494c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-22.6201 22.6201c-6.25 6.25 -6.25 16.3799 0 22.6299l104.12 104.12
-c15.6104 15.6201 40.9404 15.6201 56.5605 0l36.5596 -36.5498l21.7598 21.7598c35.3506 35.3496 92.6699 35.3496 128.021 0z" />
-    <glyph glyph-name="medal" unicode="&#xf5a2;" 
-d="M223.75 317.25c-42.04 -6.55957 -79.8398 -25.6201 -109.56 -53.3896l-111.271 158.96c-7.41992 10.6094 0.160156 25.1797 13.1104 25.1797h111.149c11.6572 0 21.8467 -6.21387 27.4404 -15.54zM495.97 448c12.9502 0 20.5303 -14.5703 13.1104 -25.1797
-l-111.271 -158.95c-29.7197 27.7598 -67.5195 46.8203 -109.56 53.3799l69.1299 115.21c5.78027 9.63965 16.2002 15.54 27.4404 15.54h111.149zM256 288c97.2002 0 176 -78.7998 176 -176s-78.7998 -176 -176 -176s-176 78.7998 -176 176s78.7998 176 176 176z
-M348.52 130.74c6.82031 6.63965 3.05078 18.2295 -6.34961 19.5898l-52.4297 7.63965l-23.4307 47.5205c-2.10938 4.25 -6.21973 6.38965 -10.3291 6.38965c-4.09082 0 -8.1709 -2.11035 -10.2803 -6.38965l-23.4307 -47.5205l-52.4297 -7.63965
-c-9.39941 -1.36035 -13.1699 -12.9502 -6.34961 -19.5898l37.9297 -36.96l-8.96973 -52.2207c-1.60059 -9.34961 8.25 -16.54 16.6494 -12.0898l46.9004 24.6504l46.9102 -24.6504c8.38965 -4.41992 18.25 2.73047 16.6494 12.0898l-8.96973 52.2207z" />
-    <glyph glyph-name="meh-blank" unicode="&#xf5a4;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM168 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32
-s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="meh-rolling-eyes" unicode="&#xf5a5;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM88 224c0 -35.2998 28.7002 -64 64 -64s64 28.7002 64 64c0 24.2998 -13.7002 45.2002 -33.5996 56c0.699219 -2.59961 1.59961 -5.2002 1.59961 -8
-c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32c0 2.7998 0.900391 5.40039 1.59961 8c-19.8994 -10.7998 -33.5996 -31.7002 -33.5996 -56zM312 48c21.2002 0 21.2002 32 0 32h-128c-21.2002 0 -21.2002 -32 0 -32h128zM344 160c35.2998 0 64 28.7002 64 64
-c0 24.2998 -13.7002 45.2002 -33.5996 56c0.699219 -2.59961 1.59961 -5.2002 1.59961 -8c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32c0 2.7998 0.900391 5.40039 1.59961 8c-19.8994 -10.7998 -33.5996 -31.7002 -33.5996 -56c0 -35.2998 28.7002 -64 64 -64z
-" />
-    <glyph glyph-name="monument" unicode="&#xf5a6;" horiz-adv-x="384" 
-d="M368 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-352c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h352zM289.14 347.26l30.8604 -315.26h-256l30.8701 315.26c0.751953 7.54688 4.12988 14.3613 9.20996 19.4404
-l76.5996 76.6094c6.25 6.25 16.3799 6.25 22.6299 0l76.6201 -76.6094c5.08008 -5.0791 8.45801 -11.8936 9.20996 -19.4404zM240 140.8v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-70.4004c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004
-c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h70.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998z" />
-    <glyph glyph-name="mortar-pestle" unicode="&#xf5a7;" 
-d="M501.54 387.09l-99.0801 -99.0898h-151.37l203.811 152.86c5.96094 4.46875 13.4297 7.11426 21.4473 7.11426c5.71973 0 11.1279 -1.34863 15.9219 -3.74414c21.7803 -10.8906 26.4902 -39.9209 9.27051 -57.1406zM496 256c8.83984 0 16 -7.16016 16 -16v-32
-c0 -8.83984 -7.16016 -16 -16 -16h-16c0 -80.9805 -50.2002 -150.11 -121.13 -178.32c12.7695 -16.8701 21.7295 -36.7998 24.9502 -58.6895c1.45996 -9.91992 -6.04004 -18.9805 -16.0703 -18.9805h-223.5c-10.0303 0 -17.5303 9.06055 -16.0703 18.9805
-c3.23047 21.8896 12.1904 41.8193 24.9502 58.6895c-70.9297 28.21 -121.13 97.3398 -121.13 178.32h-16c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h480z" />
-    <glyph glyph-name="paint-roller" unicode="&#xf5aa;" 
-d="M416 320c0 -17.6699 -14.3301 -32 -32 -32h-352c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h352c17.6699 0 32 -14.3301 32 -32v-96zM448 384c35.3496 0 64 -28.6504 64 -64v-64c0 -53.0195 -42.9805 -96 -96 -96h-160v-32
-c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32v32c0 35.3496 28.6504 64 64 64h160c17.6699 0 32 14.3301 32 32v128z" />
-    <glyph glyph-name="passport" unicode="&#xf5ab;" horiz-adv-x="448" 
-d="M129.62 272c5.28027 31.2197 25.5898 57.1699 53.2998 70.4102c-7.66992 -19.0605 -12.7197 -43.3799 -14.21 -70.4102h-39.0898zM129.62 240h39.0898c1.49023 -27.0303 6.53027 -51.3496 14.21 -70.4102c-27.71 13.2402 -48.0098 39.1904 -53.2998 70.4102zM224 161.31
-c-7.69043 7.4502 -20.7695 34.4307 -23.4404 78.6904h46.8701c-2.66016 -44.2695 -15.7393 -71.2402 -23.4297 -78.6904zM200.57 272c2.66016 44.2598 15.7393 71.2402 23.4395 78.6904c7.69043 -7.4502 20.7705 -34.4307 23.4307 -78.6904h-46.8701zM265.08 169.59
-c7.67969 19.0605 12.7197 43.3799 14.21 70.4102h39.0898c-5.28027 -31.2197 -25.5898 -57.1699 -53.2998 -70.4102zM416 448c17.6699 0 32 -14.3301 32 -32v-448c0 -17.6699 -14.3301 -32 -32 -32h-352c-35.3496 0 -64 28.6504 -64 64v384c0 35.3496 28.6504 64 64 64h352z
-M336 32c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16h-224c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16h224zM224 128c70.6904 0 128 57.3096 128 128s-57.3096 128 -128 128s-128 -57.3096 -128 -128s57.3096 -128 128 -128zM265.08 342.41
-c27.71 -13.2402 48.0195 -39.1904 53.2998 -70.4102h-39.0898c-1.49023 27.0303 -6.53027 51.3496 -14.21 70.4102z" />
-    <glyph glyph-name="pen-fancy" unicode="&#xf5ac;" 
-d="M79.1797 165.06l84.0703 33.0703l98.8799 -98.8799l-33.0703 -84.0703c-3.1748 -9.5332 -10.7061 -17.0645 -20.2393 -20.2393l-176.82 -58.9404l-4.67969 4.67969l92.8896 92.8906c2.55957 -0.660156 5.03027 -1.57031 7.7998 -1.57031c17.6699 0 32 14.3301 32 32
-s-14.3301 32 -32 32s-32 -14.3301 -32 -32c0 -2.76953 0.910156 -5.24023 1.57031 -7.7998l-92.8896 -92.8906l-4.69043 4.69043l58.9404 176.82c3.17773 9.53223 10.707 17.0615 20.2393 20.2393zM369.25 419.68c74.4805 84.2607 199.15 -39.1602 114.23 -114.229
-l-199.49 -183.11l-97.8506 97.8506z" />
-    <glyph glyph-name="pen-nib" unicode="&#xf5ad;" 
-d="M136.6 309.21l151.4 42.79l128 -128l-42.79 -151.4c-5.76172 -20.3838 -21.3594 -36.6455 -41.3496 -43.3096l-279.86 -93.29l-14.6904 14.6904l150.11 150.109c6.25977 -2.99023 13.1797 -4.7998 20.5801 -4.7998c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48
-s-48 -21.4902 -48 -48c0 -7.40039 1.80957 -14.3203 4.7998 -20.5801l-150.109 -150.11l-14.6904 14.6904l93.29 279.86c6.66406 19.9902 22.9258 35.5879 43.3096 41.3496zM497.94 373.83c18.75 -18.7598 18.75 -49.1602 0 -67.9102l-56.5508 -56.5498l-128.02 128.02
-l56.5498 56.5508c18.75 18.75 49.1602 18.75 67.9102 0z" />
-    <glyph glyph-name="pencil-ruler" unicode="&#xf5ae;" 
-d="M109.46 203.96l-100.17 100.18c-12.3896 12.3906 -12.3799 32.4707 0 44.8604l89.71 89.71c12.3896 12.3896 32.4697 12.3896 44.8604 0l33.6396 -33.6504l-61.6797 -61.6797c-3.10059 -3.08984 -3.10059 -8.11035 0 -11.21l11.21 -11.21
-c1.43359 -1.43652 3.41797 -2.32617 5.60547 -2.32617c2.18848 0 4.16992 0.889648 5.60449 2.32617l61.6797 61.6797l44.1201 -44.1201zM497.93 320.76l-46.0195 -46.0293l-113.2 113.199l46.0205 46.0107c18.7695 18.7598 49.1895 18.7598 67.9492 0l45.25 -45.25
-c18.75 -18.7607 18.7607 -49.1709 0 -67.9307zM316.08 365.29l113.2 -113.19l-296.92 -296.93l-107.45 -18.8398c-14.5 -2.5498 -27.1201 10.0703 -24.5898 24.5596l18.7598 107.44zM502.71 79.8604c12.3896 -12.3906 12.3896 -32.4707 0 -44.8604l-89.71 -89.7002
-c-12.3896 -12.3896 -32.4697 -12.3896 -44.8604 0l-100.21 100.2l134.58 134.56l44.1406 -44.1396l-61.6807 -61.6797c-3.08984 -3.08984 -3.08984 -8.11035 0 -11.21l11.21 -11.21c3.08984 -3.10059 8.11035 -3.10059 11.21 0l61.6807 61.6797z" />
-    <glyph glyph-name="plane-arrival" unicode="&#xf5af;" horiz-adv-x="640" 
-d="M624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-608c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h608zM44.8096 242.34c-6.5498 5.91016 -12.3896 14.3398 -12.5791 23.25l-0.230469 101.78
-c0.19043 10.8799 10.3799 18.7002 20.7197 15.8799l39.7305 -10.8301c5.00977 -1.36035 9.08984 -5.04004 11.0195 -9.92969l27.5898 -67.8799l102.2 -27.8408l-47.9199 164.211c-0.189453 11.1191 10.1504 19.3193 20.71 16.4395l65.0898 -17.7295
-c5.70996 -1.56055 10.1504 -6.10059 11.6602 -11.9102l100.36 -191.851l97.5098 -26.5596c26.4805 -7.20996 51.5498 -20.1797 70.8301 -40c21.6396 -22.25 27.2002 -40.46 23.3701 -54.96c-3.81055 -14.5 -17.5801 -27.4404 -47.25 -35.71
-c-26.4404 -7.36035 -54.5205 -5.85059 -81 1.35938l-287.601 78.3506c-9.58496 2.61621 -18.2998 7.45605 -25.4697 13.9297z" />
-    <glyph glyph-name="plane-departure" unicode="&#xf5b0;" horiz-adv-x="640" 
-d="M624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-608c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h608zM80.5498 106.73l-76.21 82.9697c-7.62012 8.95996 -4.87012 22.7803 5.57031 28.0801l40.1299 20.3701
-c2.41504 1.22461 5.18066 1.91504 8.07227 1.91504c2.875 0 5.59277 -0.682617 7.99805 -1.89551l72.3496 -36.4697l103.21 52.3799l-156.22 98.0996c-8.08008 8.87988 -5.5 23.1201 5.16992 28.5303l65.75 33.3701c2.41504 1.22559 5.18164 1.91699 8.07324 1.91699
-c3.67383 0 7.08984 -1.11621 9.92676 -3.02734l218.7 -82.0596l98.5098 49.9902c26.7402 13.5596 56.4297 21.4199 86.2803 19.4795c33.5098 -2.17969 51.04 -12.8799 58.25 -27.4502c7.22949 -14.5596 5.23926 -35.1699 -13.0703 -63.6494
-c-16.3096 -25.3701 -40.2803 -44.7402 -67.0205 -58.3105l-290.96 -147.649c-8.88574 -4.51562 -19.001 -7.10645 -29.6396 -7.12012l-130.54 -0.180664c-9.22949 -0.00976562 -18.0498 3.87012 -24.3301 10.7109z" />
-    <glyph glyph-name="prescription" unicode="&#xf5b1;" horiz-adv-x="384" 
-d="M301.26 96l78.0605 -78.0498c6.25 -6.25 6.25 -16.3799 0 -22.6299l-22.6299 -22.6299c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-78.0596 78.0596l-78.0498 -78.0703c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-22.6299 22.6299c-6.25 6.25 -6.25 16.3809 0 22.6309
-l78.0596 78.0596l-128 128h-18.75v-80c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v256c0 8.83984 7.16016 16 16 16h144c53.0195 0 96 -42.9805 96 -96c0 -48.8896 -36.6904 -88.7998 -83.96 -94.7803l83.96 -83.96l78.0596 78.0605
-c6.25 6.25 16.3809 6.25 22.6309 0l22.6299 -22.6299c6.25 -6.25 6.25 -16.3809 0 -22.6309zM64 352v-64h96c17.6396 0 32 14.3604 32 32s-14.3604 32 -32 32h-96z" />
-    <glyph glyph-name="sad-cry" unicode="&#xf5b3;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248c0 -90 -48.2002 -168.7 -120 -212.1v180.1c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16v-196.7c-29.5 -12.3994 -62 -19.2998 -96 -19.2998s-66.5 6.90039 -96 19.2998v196.7c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16
-v-180.1c-71.7998 43.3994 -120 122 -120 212.1c0 137 111 248 248 248zM182.5 223.5l9.7002 -8.5c2.5 -2.2998 7.89941 -4.7002 13.7002 -1.59961c4.39941 2.39941 6.89941 7.39941 6.09961 12.3994c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006
-c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006c-0.799805 -5 1.7002 -10 6.09961 -12.3994c4.40039 -2.40039 9.90039 -1.7002 13.7002 1.59961l9.5 8.5c14.7998 13.2002 46.2002 13.2002 61 0zM248 32c26.5 0 48 28.7002 48 64s-21.5 64 -48 64s-48 -28.7002 -48 -64
-s21.5 -64 48 -64zM397.8 213.5c4.40039 2.40039 6.7998 7.40039 6.2002 12.2998c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006c-0.799805 -5 1.7002 -10 6.09961 -12.3994
-c4.40039 -2.40039 9.90039 -1.7002 13.7002 1.59961l9.59961 8.59961c14.8008 13.2002 46.2002 13.2002 61 0l9.5 -8.5c2.5 -2.2998 7.90039 -4.69922 13.7002 -1.59961z" />
-    <glyph glyph-name="sad-tear" unicode="&#xf5b4;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM152 32c26.5 0 48 21 48 47c0 20 -28.5 60.4004 -41.5996 77.7998
-c-3.2002 4.2998 -9.60059 4.2998 -12.8008 0c-13.0996 -17.3994 -41.5996 -57.7998 -41.5996 -77.7998c0 -26 21.5 -47 48 -47zM168 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM338.2 53.7998
-c13.2998 -16.0996 38.2998 4 24.5 20.4004c-28.4004 34.2002 -70.2998 53.7998 -114.7 53.7998c-21.2002 0 -21.2002 -32 0 -32c34.9004 0 67.7998 -15.4004 90.2002 -42.2002z" />
-    <glyph glyph-name="shuttle-van" unicode="&#xf5b6;" horiz-adv-x="640" 
-d="M628.88 237.35c7.17969 -8.62988 11.1201 -19.5 11.1201 -30.7295v-110.62c0 -17.6699 -14.3301 -32 -32 -32h-32c0 -53.0195 -42.9805 -96 -96 -96s-96 42.9805 -96 96h-128c0 -53.0195 -42.9805 -96 -96 -96s-96 42.9805 -96 96h-32c-17.6699 0 -32 14.3301 -32 32v288
-c0 17.6699 14.3301 32 32 32h425.52c14.8184 -0.00292969 28.0625 -6.70312 36.8701 -17.2695zM64 256h96v96h-96v-96zM160 16c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM320 256v96h-96v-96h96zM480 16
-c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM384 256h146.02l-80 96h-66.0195v-96z" />
-    <glyph glyph-name="signature" unicode="&#xf5b7;" horiz-adv-x="640" 
-d="M623.2 256c9.09961 0.599609 16.7998 -7.09961 16.5996 -16.2002v-32.0996c0 -8.5 -6.7002 -15.1006 -15.2002 -15.7998c-39.3994 -3.2002 -105.399 -51 -138.399 -65.8008c-34.2998 -15.3994 -66.7002 -30 -102.3 -30c-28.2002 0 -50.2002 8.5 -65.5 25.3008
-c-22.7002 24.8994 -22.8008 55.2998 -20.6006 83.7998c-56.5 -45.1006 -169 -153.601 -211.2 -195.8c-6.09961 -6.2002 -14.2998 -9.40039 -22.5996 -9.40039c-27 0 -36.5 27 -29.7002 43.9004l98.2002 245.6c8 19.9004 -14.2998 38.7998 -32.7002 27.0996l-58 -38.8994
-c-7.5 -4.7998 -17.3994 -2.60059 -22.0996 4.89941l-17.2002 27c-4.7002 7.5 -2.5 17.4004 4.90039 22.1006l54.8994 36.8994c76.5 48.7002 160.101 -26.8994 129.7 -102.8l-41.5 -103.7c105.2 101.2 144.4 124.5 169.5 126
-c54.4004 3.10059 43.7998 -68.0996 42.7002 -76.0996c-4.7002 -35.7002 -1.2998 -51.9004 21.2998 -51.9004c21.9004 0 47 11.3008 76.0996 24.4004c37.4004 16.7998 111.301 68 163.101 71.5z" />
-    <glyph glyph-name="smile-beam" unicode="&#xf5b8;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM112 224.6c-0.700195 -8.5 10.7998 -11.8994 15.0996 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17
-c4.10059 -7.39941 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004s-52.7002 -29.2998 -56 -71.4004zM362.8 101.8c13.5 16.2002 -11 36.7002 -24.5996 20.5c-22.4004 -26.7998 -55.2002 -42.2002 -90.2002 -42.2002
-s-67.7998 15.3008 -90.2002 42.2002c-13.5996 16.2002 -38.0996 -4.2002 -24.5996 -20.5c28.5 -34.2002 70.2998 -53.7998 114.8 -53.7998s86.2998 19.5996 114.8 53.7998zM369 220.1c4.09961 -7.39941 15.7002 -4.09961 15.0996 4.5
-c-3.2998 42.1006 -32.1992 71.4004 -56 71.4004c-23.7998 0 -52.6992 -29.2998 -56 -71.4004c-0.699219 -8.5 10.8008 -11.7998 14.9004 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006s23.7998 -7.90039 31.5 -21.6006z" />
-    <glyph glyph-name="solar-panel" unicode="&#xf5ba;" horiz-adv-x="640" 
-d="M431.98 -0.00976562c8.84961 0.00976562 16.0293 -7.16992 16.0195 -16.0205l-0.0400391 -31.7295c-0.00976562 -8.82031 -7.16016 -15.9707 -15.9795 -15.9805l-223.961 -0.259766c-8.84961 -0.00976562 -16.0293 7.16992 -16.0195 16.0195l0.0498047 31.7305
-c0.00976562 8.83008 7.16016 15.9805 15.9805 15.9902l47.9795 0.0498047v32.21h128v-32.0596zM585.2 421.26c58.1094 -342.42 54.7803 -321.39 54.7598 -325.47c-0.0800781 -17.2305 -14.3604 -31.79 -32.5898 -31.79h-574.74c-18.3096 0 -32.6299 14.6797 -32.5996 32
-c0.00976562 3.91992 -3.35059 -17.1602 54.7598 325.26c2.62012 15.4307 16.21 26.7402 32.1396 26.7402h466.13c15.9307 0 29.5205 -11.3096 32.1406 -26.7402zM259.83 384l-9.77051 -96h139.87l-9.76953 96h-120.33zM184.66 128l11.4102 112h-105.971l-19.0098 -112
-h113.57zM200.95 288l9.76953 96h-96.1895l-16.29 -96h102.71zM233.77 128h172.45l-11.3994 112h-149.65zM429.27 384l9.77051 -96h102.71l-16.29 96h-96.1904zM455.33 128h113.58l-19.0098 112h-105.971z" />
-    <glyph glyph-name="spa" unicode="&#xf5bb;" horiz-adv-x="576" 
-d="M568.25 256c4.41016 0.0195312 7.79004 -3.40039 7.75 -7.82031c-0.230469 -27.9199 -7.12988 -126.13 -88.7695 -199.3c-84.04 -81.8301 -167.23 -80.8799 -199.23 -80.8799s-115.21 -0.94043 -199.23 80.8799c-81.6299 73.1602 -88.5391 171.38 -88.7695 199.3
-c-0.0400391 4.41992 3.33984 7.83984 7.75 7.82031c29.04 -0.129883 135.01 -6.16016 213.84 -83c33.1201 -29.6299 53.3604 -63.2998 66.4102 -94.8604c13.0498 31.5605 33.29 65.2305 66.4102 94.8604c78.8301 76.8398 184.8 82.8701 213.84 83zM287.98 145.4
-c-12.9727 19.0527 -27.9248 36.124 -45.04 51.46c-18.7207 18.25 -38.8506 32.6895 -59.2207 44.3896c16.4707 70.4404 51.75 132.93 96.7402 172.07c4.12012 3.58008 11.0303 3.58008 15.1396 0c45.0107 -39.1699 80.29 -101.721 96.7305 -172.221
-c-20.6797 -11.8799 -41.1699 -26.5693 -60.2598 -45.1797c-16.4902 -14.7402 -31.2705 -31.6699 -44.0898 -50.5195z" />
-    <glyph glyph-name="splotch" unicode="&#xf5bc;" 
-d="M472.29 252.11c48.54 -16.6201 53.8301 -73.8301 8.9502 -96.79l-62 -31.7402c-17.8301 -9.12988 -29.2803 -25.2002 -30.6299 -42.9902l-4.7002 -61.8594c-3.41016 -44.79 -65.1299 -66.7803 -104.45 -37.2207l-54.3203 40.8301
-c-15.6201 11.7305 -36.96 16.1201 -57.0693 11.7305l-69.96 -15.2803c-50.6504 -11.0596 -94.0801 32.5596 -73.4902 73.8096l28.4297 56.9805c8.18066 16.3799 6.44043 35.1699 -4.63965 50.2402l-38.54 52.4199c-27.9004 37.9502 6.97949 86.8994 59.0303 82.8301
-l71.8799 -5.62012c20.6602 -1.62012 40.9395 5.59961 54.2002 19.3096l46.1396 47.6699c33.4102 34.5107 98.3994 21.1504 109.979 -22.6201l15.9902 -60.4492c4.60059 -17.3799 18.8604 -31.7002 38.1406 -38.3008z" />
-    <glyph glyph-name="spray-can" unicode="&#xf5bd;" 
-d="M224 416v-96h-128v96c0 17.6699 14.3301 32 32 32h64c17.6699 0 32 -14.3301 32 -32zM480 320c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32zM224 288c53.0195 0 96 -42.9805 96 -96v-224c0 -17.6699 -14.3301 -32 -32 -32
-h-256c-17.6699 0 -32 14.3301 -32 32v224c0 53.0195 42.9805 96 96 96h128zM160 32c44.1797 0 80 35.8203 80 80s-35.8203 80 -80 80s-80 -35.8203 -80 -80s35.8203 -80 80 -80zM480 352c-17.6699 0 -32 14.3301 -32 32s14.3301 32 32 32s32 -14.3301 32 -32
-s-14.3301 -32 -32 -32zM384 320c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32zM288 416c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32zM384 416c17.6699 0 32 -14.3301 32 -32
-s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32zM480 224c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32z" />
-    <glyph glyph-name="stamp" unicode="&#xf5bf;" 
-d="M32 -64v64h448v-64h-448zM416 192c53.0195 0 96 -42.9805 96 -96v-32c0 -17.6699 -14.3301 -32 -32 -32h-448c-17.6699 0 -32 14.3301 -32 32v32c0 53.0195 42.9805 96 96 96h66.5596c16.2607 0 29.4404 13.1797 29.4404 29.4404v0.0693359
-c0 31.79 -9.98047 62.0605 -23.3096 90.9102c-5.57031 12.04 -8.69043 25.4199 -8.69043 39.5801c0 58.6699 52.6201 105.04 113.25 94.4902c38.79 -6.75 70.4902 -38.6699 77.2598 -77.4502c3.85059 -22.0303 0.0605469 -42.8096 -9.0498 -60.4199
-c-12.5801 -24.3105 -21.46 -50.3506 -21.46 -77.7197v-9.45996c0 -16.2607 13.1797 -29.4404 29.4404 -29.4404h66.5596z" />
-    <glyph glyph-name="star-half-alt" unicode="&#xf5c0;" horiz-adv-x="536" 
-d="M508.55 276.49c26.25 -3.7998 36.7705 -36.1006 17.7305 -54.6006l-105.91 -102.979l25.0303 -145.49c3.55957 -20.79 -13.0605 -37.4004 -31.6602 -37.4004c-4.91016 0 -9.9707 1.16016 -14.8301 3.71094l-130.94 68.6992l-130.95 -68.6797
-c-4.86914 -2.58008 -9.93945 -3.75 -14.8691 -3.75c-18.5801 0 -35.1699 16.6699 -31.6104 37.4502l25.0596 145.479l-105.89 103c-19.0303 18.5 -8.50977 50.79 17.7402 54.5898l146.38 21.29l65.4297 132.381c5.90039 11.9092 17.29 17.8096 28.6904 17.8096
-c11.4697 0 22.9395 -5.98047 28.8193 -17.8096l65.4102 -132.391zM386.81 153.29l82.6504 80.3799l-114.229 16.6299l-25.0107 3.64062l-11.1797 22.6299l-51.0303 103.29l-0.0292969 -317.19l22.3799 -11.7402l102.13 -53.5898l-19.5205 113.45l-4.2793 24.8799z" />
-    <glyph glyph-name="suitcase-rolling" unicode="&#xf5c1;" horiz-adv-x="384" 
-d="M336 288c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-16v-16c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v16h-128v-16c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v16h-16
-c-26.5098 0 -48 21.4902 -48 48v224c0 26.5098 21.4902 48 48 48h288zM320 72v16c0 4.41992 -3.58008 8 -8 8h-240c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h240c4.41992 0 8 3.58008 8 8zM320 168v16c0 4.41992 -3.58008 8 -8 8h-240
-c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h240c4.41992 0 8 3.58008 8 8zM144 400v-80h-48v80c0 26.5098 21.4902 48 48 48h96c26.5098 0 48 -21.4902 48 -48v-80h-48v80h-96z" />
-    <glyph glyph-name="surprise" unicode="&#xf5c2;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM136 240c0 -17.7002 14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32zM248 32c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64
-s-64 -28.7002 -64 -64s28.7002 -64 64 -64zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
-    <glyph glyph-name="swatchbook" unicode="&#xf5c3;" 
-d="M434.66 280.29c5.77344 -5.79004 9.34473 -13.7861 9.34473 -22.5996c0 -8.81445 -3.57129 -16.8008 -9.34473 -22.5908l-210.66 -211.1v271.12l75.4297 75.5195l0.0703125 0.0703125v0c5.75781 5.73633 13.707 9.28516 22.4688 9.28516
-c8.79883 0 16.7676 -3.57715 22.5312 -9.35547l90.1602 -90.3496v0zM480 128c17.6611 0 32 -14.3389 32 -32v-128c0 -17.6611 -14.3389 -32 -32 -32h-300c2.17969 1.91016 4.62012 3.41992 6.67969 5.49023l186.41 186.51h106.91zM192 416v-384
-c0 -52.9834 -43.0166 -96 -96 -96s-96 43.0166 -96 96v384c0 17.6611 14.3389 32 32 32h128c17.6611 0 32 -14.3389 32 -32zM96 8c13.2461 0 24 10.7539 24 24s-10.7539 24 -24 24s-24 -10.7539 -24 -24s10.7539 -24 24 -24zM128 192v64h-64v-64h64zM128 320v64h-64v-64h64z
-" />
-    <glyph glyph-name="swimmer" unicode="&#xf5c4;" horiz-adv-x="640" 
-d="M189.61 137.42c-5.04004 4.65039 -10.3906 8.34961 -15.8604 11.5801l68.6299 98.04c7.36035 10.5 16.3398 19.5498 26.7197 26.9404l80.0205 57.1699c25.54 18.2598 57.8301 24.96 88.5596 18.3799l100.351 -21.5303c25.9297 -5.55957 42.4297 -31.0801 36.8799 -57
-c-5.56055 -25.9102 -31.0898 -42.4102 -57 -36.8799l-100.351 21.5303c-4.33984 0.90918 -8.97949 -0.0302734 -12.6191 -2.61035l-18 -12.8604l112.84 -80.5996c-17.5107 -1.04004 -34.5303 -8.4502 -49.3906 -22.1602
-c-3.5293 -3.25977 -15.2695 -9.41992 -34.3896 -9.41992s-30.8496 6.16016 -34.3896 9.41992c-16.0107 14.7705 -34.5 22.5801 -53.46 22.5801h-16.3008c-18.96 0 -37.4395 -7.80957 -53.46 -22.5801c-3.5293 -3.25977 -15.2695 -9.41992 -34.3896 -9.41992
-s-30.8496 6.16016 -34.3896 9.41992zM624 96c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-16c-38.6201 0 -72.7197 12.1797 -96 31.8398c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398s-72.7197 12.1797 -96 31.8398
-c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398s-72.7197 12.1797 -96 31.8398c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398h-16c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h16c26.04 0 45.7998 8.41992 56.0703 17.9004
-c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998c12.1104 0 22.8701 -5.88965 31.7705 -14.0996c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004s45.7998 8.41992 56.0703 17.9004c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998
-c12.1104 0 22.8701 -5.88965 31.7705 -14.0996c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004s45.7998 8.41992 56.0703 17.9004c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998c12.1104 0 22.8701 -5.88965 31.7705 -14.0996
-c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004h16zM112 192c-44.1797 0 -80 35.8203 -80 80s35.8203 80 80 80s80 -35.8203 80 -80s-35.8203 -80 -80 -80z" />
-    <glyph glyph-name="swimming-pool" unicode="&#xf5c5;" horiz-adv-x="640" 
-d="M624 32c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-16c-38.6201 0 -72.7197 12.1797 -96 31.8398c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398s-72.7197 12.1797 -96 31.8398c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398
-s-72.7197 12.1797 -96 31.8398c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398h-16c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h16c26.04 0 45.7998 8.41992 56.0703 17.9004c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998
-c12.1104 0 22.8701 -5.88965 31.7705 -14.0996c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004s45.7998 8.41992 56.0703 17.9004c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998c12.1104 0 22.8701 -5.88965 31.7705 -14.0996
-c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004s45.7998 8.41992 56.0703 17.9004c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998c12.1104 0 22.8701 -5.88965 31.7705 -14.0996c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004h16zM224 64
-c-19.1201 0 -30.8604 6.16016 -34.3896 9.42969c-9.16992 8.4502 -19.2002 14.3398 -29.6104 18.0703v228.5c0 52.9404 43.0596 96 96 96s96 -43.0596 96 -96v-16c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v16c0 17.6396 -14.3604 32 -32 32
-s-32 -14.3604 -32 -32v-96h192v96c0 52.9404 43.0596 96 96 96s96 -43.0596 96 -96v-16c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v16c0 17.6396 -14.3604 32 -32 32s-32 -14.3604 -32 -32v-228.51
-c-10.4102 -3.73047 -20.4404 -9.61035 -29.6104 -18.0703c-3.5293 -3.25977 -15.2695 -9.41992 -34.3896 -9.41992v96h-192v-96z" />
-    <glyph glyph-name="tint-slash" unicode="&#xf5c7;" horiz-adv-x="640" 
-d="M633.82 -10.0996c6.97949 -5.43066 8.22949 -15.4805 2.81934 -22.4502l-19.6396 -25.2705c-5.42969 -6.97949 -15.4805 -8.23926 -22.46 -2.80957l-588.36 454.729c-6.97949 5.43066 -8.22949 15.4805 -2.80957 22.4502l19.6396 25.2705
-c5.41992 6.97949 15.4805 8.22949 22.46 2.80957l186.82 -144.399c21.6201 33.7197 42.9697 73.3398 58.4902 125.68c9 30.1201 50.5 28.7803 58.4395 0c46.9902 -158.48 146.78 -200.061 146.78 -311.82c0 -5.70996 -0.509766 -11.2998 -1.03027 -16.8701zM144 114.09
-c0 29.7803 7.30957 54.6299 18.7197 78.1299l273.681 -211.52c-31.0303 -27.7402 -71.6904 -44.7002 -116.4 -44.7002c-97.2803 0 -176 79.6504 -176 178.09z" />
-    <glyph glyph-name="tired" unicode="&#xf5c8;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM281.8 250.3c-7.7002 -4.7002 -7.7002 -15.8994 0 -20.5996l80 -48c11.5 -6.7998 24.1006 7.59961 15.4004 18l-33.6006 40.2998l33.6006 40.2998
-c8.59961 10.2998 -3.7998 24.9004 -15.4004 18zM118.8 280.3l33.6006 -40.2998l-33.6006 -40.2998c-8.59961 -10.4004 3.90039 -24.7998 15.4004 -18l80 48c7.7998 4.7002 7.7998 15.8994 0 20.5996l-80 48c-11.6006 6.90039 -24 -7.7002 -15.4004 -18zM248 160
-c-51.9004 0 -115.3 -43.7998 -123.2 -106.7c-1.7002 -13.3994 7.90039 -24.5996 17.7002 -20.3994c25.9004 11.0996 64.4004 17.3994 105.5 17.3994s79.5996 -6.2998 105.5 -17.3994c9.7002 -4.2002 19.4004 6.7998 17.7002 20.3994
-c-7.90039 62.9004 -71.2998 106.7 -123.2 106.7z" />
-    <glyph glyph-name="tooth" unicode="&#xf5c9;" horiz-adv-x="448" 
-d="M443.98 351.75c10.1299 -41.6299 0.419922 -80.8203 -21.5303 -110.43c-23.3604 -31.5703 -32.6807 -68.6504 -36.29 -107.351c-4.41016 -47.1602 -10.3301 -94.1699 -20.9404 -140.319l-7.7998 -33.9502c-3.18945 -13.8701 -15.4902 -23.7002 -29.6699 -23.7002
-c-13.9697 0 -26.1504 9.5498 -29.54 23.1602l-34.4697 138.42c-4.56055 18.3096 -20.96 31.1602 -39.7598 31.1602c-18.8008 0 -35.2002 -12.8398 -39.7607 -31.1602l-34.4697 -138.42c-3.38965 -13.6104 -15.5703 -23.1602 -29.54 -23.1602
-c-14.1797 0 -26.4795 9.83008 -29.6699 23.7002l-7.7998 33.9502c-10.6104 46.1592 -16.54 93.1592 -20.9404 140.319c-3.60938 38.6904 -12.9297 75.7803 -36.29 107.351c-21.9199 29.6201 -31.6299 68.8096 -21.5 110.43c11.0098 45.2197 47.1104 82.0498 92.0098 93.7197
-c23.4307 6.08984 46.1104 0.540039 66.8105 -10.3096l100.51 -64.6201c7.83984 -5.05957 17.6504 -2.15039 22.1104 4.7998c4.78027 7.44043 2.62012 17.3398 -4.7998 22.1104l-28.3203 18.21c3.54004 1.75 7.25 3.08984 10.5 5.47949
-c26.1396 19.2305 56.9502 32.6904 89.1396 24.3301c44.9004 -11.6602 81 -48.5 92.0107 -93.7197z" />
-    <glyph glyph-name="umbrella-beach" unicode="&#xf5ca;" horiz-adv-x="640" 
-d="M115.38 311.1c-10.0801 3.66992 -14.1104 16.3203 -7.41992 24.7207c59.75 74.8398 152.65 116.689 248.53 111.8c-52.79 -29.4102 -103.811 -92.1602 -139 -173.7zM247.63 262.94c44.4902 101.979 114.74 171.14 172.76 171.149c7.95996 0 15.6904 -1.2998 23.0908 -4
-c61.3291 -22.3203 78.3896 -132.6 42.6299 -253.979zM521.48 387.5c76.5293 -57.9199 120.76 -149.67 118.439 -245.36c-0.259766 -10.7393 -11.4795 -17.8398 -21.5703 -14.1699l-102.619 37.3604c17.5293 58.75 24.6895 117.09 18.9492 166.979
-c-2.37012 20.5908 -6.97949 38.8906 -13.1992 55.1904zM560 0.0195312c8.83984 0 16 -7.15918 16 -16v-32.0098c0 -8.83984 -7.16016 -16.0098 -16 -16.0098h-544c-8.83984 0 -16 7.16992 -16 16.0098v32.0098c0 8.85059 7.16016 16.0107 16 16.0107h236.96l72.9004 200.37
-l60.1396 -21.9004l-64.9404 -178.48h238.94z" />
-    <glyph glyph-name="vector-square" unicode="&#xf5cb;" 
-d="M512 320c0 -17.6699 -14.3301 -32 -32 -32v-192c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32h-192c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32v192
-c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96c17.6699 0 32 -14.3301 32 -32h192c0 17.6699 14.3301 32 32 32h96c17.6699 0 32 -14.3301 32 -32v-96zM416 384v-32h32v32h-32zM64 384v-32h32v32h-32zM96 0v32h-32v-32h32zM448 0v32h-32v-32h32zM416 96
-v192h-32c-17.6699 0 -32 14.3301 -32 32v32h-192v-32c0 -17.6699 -14.3301 -32 -32 -32h-32v-192h32c17.6699 0 32 -14.3301 32 -32v-32h192v32c0 17.6699 14.3301 32 32 32h32z" />
-    <glyph glyph-name="weight-hanging" unicode="&#xf5cd;" 
-d="M510.28 2.13965c8.33008 -33.3096 -14.6602 -66.1396 -46.2998 -66.1396h-415.95c-31.6504 0 -54.6406 32.8301 -46.3105 66.1396l73.0498 292.13c3.79004 15.1807 16.4404 25.7207 30.8701 25.7207h60.25c-3.58008 10.0498 -5.87988 20.7197 -5.87988 32
-c0 53.0195 42.9805 96 96 96c53.0205 0 96 -42.9805 96 -96c0 -11.2803 -2.30957 -21.9502 -5.87988 -32h60.25c14.4297 0 27.0703 -10.5303 30.8701 -25.7207zM256 320c17.6396 0 32 14.3604 32 32s-14.3604 32 -32 32s-32 -14.3604 -32 -32s14.3604 -32 32 -32z" />
-    <glyph glyph-name="wine-glass-alt" unicode="&#xf5ce;" horiz-adv-x="288" 
-d="M216 -16c22.0898 0 40 -17.9102 40 -40c0 -4.41992 -3.58008 -8 -8 -8h-208c-4.41992 0 -8 3.58008 -8 8c0 22.0898 17.9102 40 40 40h40v117.18c-68.4697 15.8906 -118.05 79.9102 -111.4 154.16l15.96 178.11c0.730469 8.24023 7.55078 14.5498 15.7002 14.5498h223.48
-c8.16016 0 14.9697 -6.30957 15.71 -14.5498l15.9502 -178.101c6.64941 -74.25 -42.9307 -138.27 -111.4 -154.159v-117.19h40zM61.75 400l-7.16992 -80h178.84l-7.16992 80h-164.5z" />
-    <glyph glyph-name="air-freshener" unicode="&#xf5d0;" 
-d="M224 288c53 0 96 -43 96 -96v-224c0 -17.625 -14.375 -32 -32 -32h-256c-17.625 0 -32 14.375 -32 32v224c0 53 43 96 96 96h128zM160 32c44.125 0 80 35.875 80 80s-35.875 80 -80 80s-80 -35.875 -80 -80s35.875 -80 80 -80zM224 416v-96h-128v96
-c0 17.625 14.375 32 32 32h64c17.625 0 32 -14.375 32 -32zM381.781 396.422l-29.7812 -12.4219l-12.4385 -29.7812c-0.592773 -1.21875 -2.18652 -2.21875 -3.56152 -2.21875s-2.96875 1 -3.59375 2.21875l-12.4062 29.7812l-29.7812 12.4219
-c-1.21875 0.609375 -2.21875 2.21875 -2.21875 3.57812c0 1.375 1 2.96875 2.21875 3.57812l29.7812 12.4219l12.4062 29.7812c0.625 1.21875 2.21875 2.21875 3.59375 2.21875s2.96875 -1 3.56152 -2.21875l12.4385 -29.7812l29.7812 -12.4219
-c1.21875 -0.609375 2.21875 -2.20312 2.21875 -3.57812c0 -1.35938 -1 -2.96875 -2.21875 -3.57812zM448 384l-29.7812 12.4219c-1.21875 0.609375 -2.21875 2.21875 -2.21875 3.57812c0 1.375 1 2.96875 2.21875 3.57812l29.7812 12.4219l12.4062 29.7812
-c0.625 1.21875 2.21875 2.21875 3.59375 2.21875s2.96875 -1 3.56152 -2.21875l12.4385 -29.7812l29.7812 -12.4219c1.21875 -0.609375 2.21875 -2.20312 2.21875 -3.57812c0 -1.35938 -1 -2.96875 -2.21875 -3.57812l-29.7812 -12.4219l-12.4385 -29.7812
-c-0.592773 -1.21875 -2.18652 -2.21875 -3.56152 -2.21875s-2.96875 1 -3.59375 2.21875zM480 224l29.7812 -12.4219c1.21875 -0.609375 2.21875 -2.20312 2.21875 -3.57812c0 -1.35938 -1 -2.96875 -2.21875 -3.57812l-29.7812 -12.4219l-12.4385 -29.7812
-c-0.592773 -1.21875 -2.18652 -2.21875 -3.56152 -2.21875s-2.96875 1 -3.59375 2.21875l-12.4062 29.7812l-29.7812 12.4219c-1.21875 0.609375 -2.21875 2.21875 -2.21875 3.57812c0 1.375 1 2.96875 2.21875 3.57812l29.7812 12.4219l12.4062 29.7812
-c0.625 1.21875 2.21875 2.21875 3.59375 2.21875s2.96875 -1 3.56152 -2.21875zM445.781 300.422l-29.7812 -12.4219l-12.4385 -29.7812c-0.592773 -1.21875 -2.18652 -2.21875 -3.56152 -2.21875s-2.96875 1 -3.59375 2.21875l-12.4062 29.7812l-29.7812 12.4219
-c-1.21875 0.609375 -2.21875 2.21875 -2.21875 3.57812c0 1.375 1 2.96875 2.21875 3.57812l29.7812 12.4219l12.4062 29.7812c0.625 1.21875 2.21875 2.21875 3.59375 2.21875s2.96875 -1 3.56152 -2.21875l12.4385 -29.7812l29.7812 -12.4219
-c1.21875 -0.609375 2.21875 -2.20312 2.21875 -3.57812c0 -1.35938 -1 -2.96875 -2.21875 -3.57812z" />
-    <glyph glyph-name="apple-alt" unicode="&#xf5d1;" horiz-adv-x="448" 
-d="M350.85 319c25.9707 -4.66992 47.2705 -18.6699 63.9199 -42c14.6504 -20.6699 24.6406 -46.6699 29.9609 -78c4.66992 -28.6699 4.31934 -57.3301 -1 -86c-7.99023 -47.3301 -23.9707 -87 -47.9404 -119c-28.6396 -38.6699 -64.5898 -58 -107.87 -58
-c-10.6602 0 -22.2998 3.33008 -34.96 10c-8.66016 5.33008 -18.3096 8 -28.9697 8s-20.2998 -2.66992 -28.9707 -8c-12.6592 -6.66992 -24.2998 -10 -34.96 -10c-43.2793 0 -79.2295 19.3301 -107.869 58c-23.9707 32 -39.9502 71.6699 -47.9404 119
-c-5.32031 28.6699 -5.66992 57.3301 -1 86c5.32031 31.3301 15.3096 57.3301 29.96 78c16.6504 23.3301 37.9502 37.3301 63.9199 42c15.9805 2.66992 37.9502 0.330078 65.9199 -7c23.9697 -6.66992 44.2803 -14.6699 60.9307 -24
-c16.6494 9.33008 36.96 17.3301 60.9297 24c27.9795 7.33008 49.96 9.66992 65.9395 7zM295.91 360c-9.32031 -8.66992 -21.6504 -15 -36.96 -19c-10.6602 -3.33008 -22.2998 -5 -34.96 -5l-14.9805 1c-1.33008 9.33008 -1.33008 20 0 32
-c2.66992 24 10.3203 42.3301 22.9707 55c9.31934 8.66992 21.6494 15 36.96 19c10.6592 3.33008 22.2998 5 34.96 5l14.9795 -1l1 -15c0 -12.6699 -1.66992 -24.3301 -4.99023 -35c-3.98926 -15.3301 -10.3096 -27.6699 -18.9795 -37z" />
-    <glyph glyph-name="atom" unicode="&#xf5d2;" horiz-adv-x="448" 
-d="M223.999 224c17.6484 -0.03125 31.9727 -14.3525 32.0078 -32c0 -17.6611 -14.3389 -32 -32 -32s-32 14.3389 -32 32c0 17.6582 14.335 31.9961 31.9922 32zM438.171 320c16.3789 -29.375 15.0039 -73.125 -25.1309 -128c40.1348 -54.875 41.5098 -98.625 25.1309 -128
-c-29.1309 -52.375 -101.646 -43.625 -116.275 -41.875c-21.5039 -51.25 -54.2617 -86.125 -97.8965 -86.125s-76.3906 34.875 -97.8965 86.125c-14.627 -1.75 -87.1426 -10.5 -116.273 41.875c-16.3789 29.375 -15.0039 73.125 25.1289 128
-c-40.1328 54.875 -41.5078 98.625 -25.1289 128c10.877 19.5 40.5078 50.625 116.273 41.875c21.5059 51.25 54.2617 86.125 97.8965 86.125s76.3926 -34.875 97.8965 -86.125c75.7656 8.875 105.398 -22.375 116.275 -41.875zM63.3389 96
-c3.75195 -6.625 19.0059 -11.875 43.6348 -11c-2.75 13 -5.125 26.375 -6.75 40.125c-7.75195 6.25 -15.0039 12.625 -21.8809 19.125c-15.1289 -23.5 -19.0039 -41 -15.0039 -48.25zM100.224 258.875c1.625 13.5 3.875 26.875 6.75 40.25c-1.875 0 -4 0.375 -5.75 0.375
-c-21.5059 0 -34.5078 -5.375 -37.8848 -11.5c-4 -7.25 -0.125 -24.75 15.0039 -48.25c6.87695 6.5 14.1289 12.875 21.8809 19.125zM223.999 384c-9.50195 0 -22.2539 -13.5 -33.8828 -37.25c11.2539 -3.75 22.5059 -8 33.8828 -12.875
-c11.3789 4.875 22.6309 9.125 33.8828 12.875c-11.627 23.75 -24.3809 37.25 -33.8828 37.25zM223.999 0c9.50195 0 22.2559 13.5 33.8828 37.25c-11.252 3.75 -22.5039 8 -33.8828 12.875c-11.377 -4.875 -22.6289 -9.125 -33.8828 -12.875
-c11.6289 -23.75 24.3809 -37.25 33.8828 -37.25zM223.999 112c44.1533 0 80 35.8467 80 80s-35.8467 80 -80 80s-80 -35.8467 -80 -80s35.8467 -80 80 -80zM384.659 96c4 7.25 0.125 24.75 -15.0039 48.25c-6.875 -6.5 -14.127 -12.875 -21.8789 -19.125
-c-1.625 -13.75 -4 -27.125 -6.75195 -40.125c24.6309 -0.875 40.0098 4.375 43.6348 11zM369.655 239.75c15.1289 23.5 19.0039 41 15.0039 48.25c-3.375 6.125 -16.3789 11.5 -37.8828 11.5c-1.75 0 -3.87695 -0.375 -5.75195 -0.375
-c2.87695 -13.375 5.12695 -26.75 6.75195 -40.25c7.75195 -6.25 15.0039 -12.625 21.8789 -19.125z" />
-    <glyph glyph-name="bone" unicode="&#xf5d7;" horiz-adv-x="640" 
-d="M598.88 203.44c-9.42969 -4.70996 -9.42969 -18.1709 -0.00976562 -22.8809c25.2002 -12.5996 41.1201 -38.3496 41.1201 -66.5293v-7.64062c0 -41.0898 -33.2998 -74.3896 -74.3799 -74.3896c-32.0107 0 -60.4404 20.4902 -70.5703 50.8604
-c-6.53027 19.5996 -10.7305 45.1396 -38.1104 45.1396h-273.87c-26.5098 0 -30.4297 -22.1104 -38.1094 -45.1396c-10.1299 -30.3701 -38.5498 -50.8604 -70.5703 -50.8604c-41.0801 0 -74.3799 33.2998 -74.3799 74.3896v7.64062
-c0 28.1699 15.9199 53.9297 41.1201 66.5293c9.42969 4.70996 9.42969 18.1709 0 22.8809c-25.2002 12.5996 -41.1201 38.3594 -41.1201 66.5293v7.64062c0 41.0898 33.2998 74.3896 74.3896 74.3896c32.0107 0 60.4404 -20.4902 70.5605 -50.8604
-c6.53027 -19.5996 10.7295 -45.1396 38.1094 -45.1396h273.87c26.5107 0 30.4307 22.1104 38.1104 45.1396c10.1299 30.3701 38.5498 50.8604 70.5703 50.8604c41.0898 0 74.3896 -33.2998 74.3896 -74.3896v-7.64062c0 -28.1699 -15.9199 -53.9297 -41.1201 -66.5293z" />
-    <glyph glyph-name="book-reader" unicode="&#xf5da;" 
-d="M352 352c0 -53.0195 -42.9805 -96 -96 -96s-96 42.9805 -96 96s42.9805 96 96 96s96 -42.9805 96 -96zM233.59 206.9c4.10059 -2.51074 6.41016 -6.79004 6.41992 -11.46v-245.99c0 -10.1602 -11.1094 -16.5898 -20.4795 -11.8701
-c-61.0498 30.75 -149.38 39.1396 -193.04 41.4297c-14.9004 0.770508 -26.4902 12.7207 -26.4902 27.0498v222.801c0 15.6299 13.5498 28.0098 29.7998 27.0898c48.3604 -2.75 144.46 -12.7305 203.79 -49.0498zM482.2 255.95
-c16.25 0.919922 29.7998 -11.46 29.8096 -27.0898v-222.82c0 -14.3301 -11.5898 -26.2803 -26.4902 -27.0596c-43.6494 -2.29004 -131.93 -10.6807 -192.97 -41.4004c-9.39941 -4.73047 -20.54 1.70996 -20.54 11.9004v245.789c0 4.6709 2.31055 9.12012 6.41016 11.6309
-c59.3203 36.3193 155.43 46.3096 203.78 49.0498z" />
-    <glyph glyph-name="brain" unicode="&#xf5dc;" horiz-adv-x="576" 
-d="M208 448c35.2998 0 64 -28.7002 64 -64v-376c0 -39.7998 -32.2002 -72 -72 -72c-31.7998 0 -58.4004 20.7002 -68 49.2002c-3.90039 -0.700195 -7.90039 -1.2002 -12 -1.2002c-39.7998 0 -72 32.2002 -72 72c0 4.7998 0.5 9.5 1.40039 14.0996
-c-29 12 -49.4004 40.6006 -49.4004 73.9004c0 29.7002 16.2998 55.2998 40.2998 69.0996c-5.09961 10.6006 -8.2998 22.3008 -8.2998 34.9004c0 33.4004 20.5 62 49.7002 74c-1.10059 4.5 -1.7002 9.2002 -1.7002 14c0 35.2998 28.7002 64 64 64
-c0.799805 0 1.40039 -0.200195 2.2002 -0.200195c7.09961 27.7002 31.8994 48.2002 61.7998 48.2002zM576 144c0 -33.2998 -20.4004 -61.9004 -49.4004 -73.9004c0.900391 -4.59961 1.40039 -9.2998 1.40039 -14.0996c0 -39.7998 -32.2002 -72 -72 -72
-c-4.09961 0 -8.09961 0.5 -12 1.2002c-9.59961 -28.5 -36.2002 -49.2002 -68 -49.2002c-39.7998 0 -72 32.2002 -72 72v376c0 35.4004 28.7002 64 64 64c29.9004 0 54.7002 -20.5 61.7998 -48.2002c0.700195 0 1.40039 0.200195 2.2002 0.200195
-c35.2998 0 64 -28.7002 64 -64c0 -4.7998 -0.700195 -9.5 -1.7002 -14c29.2002 -12 49.7002 -40.5996 49.7002 -74c0 -12.5996 -3.09961 -24.2998 -8.2998 -34.9004c24 -13.7998 40.2998 -39.3994 40.2998 -69.0996z" />
-    <glyph glyph-name="car-alt" unicode="&#xf5de;" horiz-adv-x="480" 
-d="M438.66 235.67c24.1201 -9.16992 41.3398 -32.3301 41.3398 -59.6699v-48c0 -16.1299 -6.16016 -30.6797 -16 -41.9297v-54.0703c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v32h-256v-32c0 -17.6699 -14.3301 -32 -32 -32h-32
-c-17.6699 0 -32 14.3301 -32 32v54.0703c-9.83984 11.2598 -16 25.8096 -16 41.9297v48c0 27.3398 17.2197 50.5 41.3398 59.6699l11.2402 28.0996l19.9297 49.8301c17.1104 42.7705 57.9307 70.4004 103.99 70.4004h127c46.0703 0 86.8799 -27.6299 103.99 -70.4004
-l19.9297 -49.8301zM131.93 289.83l-19.9297 -49.8301h256l-19.9297 49.8301c-7.29004 18.2197 -24.9404 30.1699 -44.5703 30.1699h-127c-19.6299 0 -37.2803 -11.9502 -44.5703 -30.1699zM80 128.2c19.2002 0 48 -3.19043 48 15.9502
-c0 19.1396 -28.7998 47.8496 -48 47.8496s-32 -12.7598 -32 -31.9004c0 -19.1396 12.7998 -31.8994 32 -31.8994zM400 128.2c19.2002 0 32 12.7598 32 31.8994c0 19.1406 -12.7998 31.9004 -32 31.9004s-48 -28.71 -48 -47.8496c0 -19.1406 28.7998 -15.9502 48 -15.9502z
-" />
-    <glyph glyph-name="car-battery" unicode="&#xf5df;" 
-d="M480 320c17.6699 0 32 -14.3301 32 -32v-256c0 -17.6699 -14.3301 -32 -32 -32h-448c-17.6699 0 -32 14.3301 -32 32v256c0 17.6699 14.3301 32 32 32h32v48c0 8.83984 7.16016 16 16 16h96c8.83984 0 16 -7.16016 16 -16v-48h128v48c0 8.83984 7.16016 16 16 16h96
-c8.83984 0 16 -7.16016 16 -16v-48h32zM192 184v16c0 4.41992 -3.58008 8 -8 8h-112c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h112c4.41992 0 8 3.58008 8 8zM448 184v16c0 4.41992 -3.58008 8 -8 8h-40v40c0 4.41992 -3.58008 8 -8 8h-16
-c-4.41992 0 -8 -3.58008 -8 -8v-40h-40c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h40v-40c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v40h40c4.41992 0 8 3.58008 8 8z" />
-    <glyph glyph-name="car-crash" unicode="&#xf5e1;" horiz-adv-x="640" 
-d="M143.25 227.19l-12.4199 -46.3701c-3.00977 -11.25 -3.62988 -22.8906 -2.41016 -34.3906l-35.2002 -28.9795c-6.56934 -5.41016 -16.3096 0.429688 -14.6201 8.76953l15.4404 76.6807c1.05957 5.25977 -2.66016 10.2793 -8 10.79l-77.8604 7.5498
-c-8.46973 0.819336 -11.2295 11.8301 -4.13965 16.54l65.1504 43.2998c4.45996 2.96973 5.37988 9.15039 1.97949 13.29l-49.71 60.4102c-5.41016 6.56934 0.429688 16.2998 8.78027 14.6201l76.6797 -15.4404c5.25977 -1.05957 10.2803 2.66016 10.7998 8l7.5498 77.8604
-c0.820312 8.47949 11.8301 11.2295 16.5508 4.13965l43.2998 -65.1396c2.96973 -4.45996 9.14941 -5.37988 13.29 -1.98047l60.3994 49.71c6.57031 5.41016 16.3008 -0.429688 14.6201 -8.76953l-11.3301 -56.1602c-2.70996 -3.0498 -5.42969 -6.08984 -7.90918 -9.40039
-l-32.1504 -42.9697l-10.71 -14.3203c-32.7305 -8.75977 -59.1797 -34.5293 -68.0801 -67.7393zM637.82 94.6797l-12.4199 -46.3594c-3.13086 -11.6807 -9.38086 -21.6104 -17.5508 -29.3604c-2.72852 -2.58398 -5.62695 -4.90137 -8.75977 -7l-13.9902 -52.2295
-c-1.13965 -4.27051 -3.09961 -8.10059 -5.64941 -11.3809c-7.66992 -9.83984 -20.7402 -14.6797 -33.54 -11.25l-30.9102 8.28027c-17.0703 4.57031 -27.2002 22.1201 -22.6299 39.1904l8.28027 30.9102l-247.28 66.2598l-8.28027 -30.9102
-c-4.57031 -17.0703 -22.1201 -27.2002 -39.1895 -22.6299l-30.9102 8.28027c-12.7998 3.42969 -21.7002 14.1592 -23.4199 26.5098c-0.570312 4.12012 -0.350586 8.41992 0.790039 12.6797l13.9893 52.2305c-1.63086 3.31445 -3.02148 6.85352 -4.08984 10.4492
-c-3.2002 10.79 -3.64941 22.5205 -0.519531 34.2002l12.4199 46.3701c5.30957 19.7998 19.3594 34.8301 36.8896 42.21c5.75 2.42285 12.0352 4.06543 18.4902 4.71973l18.1299 24.2305l32.1504 42.9697c3.44922 4.61035 7.18945 8.90039 11.1992 12.8398
-c8 7.89062 17.0303 14.4404 26.7402 19.5107c4.86035 2.54004 9.89062 4.70996 15.0498 6.48926c10.3301 3.58008 21.1904 5.62988 32.2402 6.04004s22.3105 -0.819336 33.4307 -3.7998l122.68 -32.8701c11.1201 -2.97949 21.4795 -7.54004 30.8496 -13.4297
-c14.0459 -8.81934 25.7959 -20.5068 34.6904 -34.5c8.81934 -13.8799 14.6396 -29.8398 16.6797 -46.9902l6.36035 -53.29l3.58984 -30.0498c10.3115 -7.44531 18.2578 -17.8018 22.7402 -29.9297c4.38965 -11.8799 5.29004 -25.1904 1.75 -38.3906zM255.58 213.66
-c-18.5498 4.96973 -34.21 -4.04004 -39.1699 -22.5303s4.10938 -34.1201 22.6494 -39.0898c18.5508 -4.96973 45.54 -15.5098 50.4902 2.97949c4.95996 18.4902 -15.4297 53.6709 -33.9697 58.6406zM546.19 185.49l-6.36035 53.29
-c-0.580078 4.87012 -1.88965 9.5293 -3.82031 13.8594c-5.7998 12.9902 -17.2002 23.0107 -31.4199 26.8203l-122.68 32.8701c-3.96777 1.0625 -8.13672 1.62891 -12.4375 1.62891c-15.7295 0 -29.6641 -7.53418 -38.4229 -19.2393l-32.1494 -42.9697l172 -46.0801z
-M564.68 130.84c-18.5498 4.96973 -53.7998 -15.3096 -58.75 -33.79c-4.94922 -18.4902 23.6904 -22.8594 42.2402 -27.8301c18.5498 -4.96973 34.21 4.04004 39.1699 22.5303c4.9502 18.4805 -4.10938 34.1201 -22.6602 39.0898z" />
-    <glyph glyph-name="car-side" unicode="&#xf5e4;" horiz-adv-x="640" 
-d="M544 256c53.0195 0 96 -42.9805 96 -96v-80c0 -8.83984 -7.16016 -16 -16 -16h-48c0 -53.0195 -42.9805 -96 -96 -96s-96 42.9805 -96 96h-128c0 -53.0195 -42.9805 -96 -96 -96s-96 42.9805 -96 96h-48c-8.83984 0 -16 7.16016 -16 16v112
-c0 29.79 20.4404 54.5996 48 61.7402l47.9102 122.029c9.71973 24.3008 33.25 40.2305 59.4199 40.2305h213.91c20.2227 -0.00292969 38.2441 -9.35645 49.9795 -24.0195l108.78 -135.98h16zM160 16c26.4697 0 48 21.5303 48 48s-21.5303 48 -48 48s-48 -21.5303 -48 -48
-s21.5303 -48 48 -48zM232 256v96h-76.6699l-38.4004 -96h115.07zM280 256h166.04l-76.7998 96h-89.2402v-96zM480 16c26.4697 0 48 21.5303 48 48s-21.5303 48 -48 48s-48 -21.5303 -48 -48s21.5303 -48 48 -48z" />
-    <glyph glyph-name="charging-station" unicode="&#xf5e7;" horiz-adv-x="576" 
-d="M336 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-320c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h320zM544 320h16c8.83984 0 16 -7.16016 16 -16v-32c0 -35.7598 -23.6201 -65.6904 -56 -75.9297v-120.07
-c0 -44.4102 -38.29 -80.0498 -83.5898 -75.6201c-39.4902 3.85059 -68.4102 39.3398 -68.4102 79.0098v24.6104c0 22.0898 -17.9102 40 -40 40h-8v-112h-288v352c0 35.3496 28.6504 64 64 64h160c35.3496 0 64 -28.6504 64 -64v-192h8c48.5996 0 88 -39.4004 88 -88v-28
-c0 -16.9902 15.2197 -30.5 32.7402 -27.6104c13.7598 2.27051 23.2598 15.2402 23.2598 29.1904v118.49c-32.3799 10.2393 -56 40.1699 -56 75.9297v32c0 8.83984 7.16016 16 16 16h16v48c0 8.83984 7.16016 16 16 16s16 -7.16016 16 -16v-48h32v48
-c0 8.83984 7.16016 16 16 16s16 -7.16016 16 -16v-48zM260.09 272.24c4.62012 6.97949 -1.14941 15.7598 -10.3896 15.7598h-57.7002l11.5996 50.79c2.02051 6.66992 -3.71973 13.21 -11.5996 13.21h-68c-6.01953 0 -11.0996 -3.90039 -11.8896 -9.11035l-16 -107
-c-0.959961 -6.2998 4.63965 -11.8896 11.8896 -11.8896h59.3496l-23.0195 -83.0801c-1.7998 -6.63965 4 -12.9199 11.6699 -12.9199c4.17969 0 8.19043 1.91016 10.3896 5.24023z" />
-    <glyph glyph-name="directions" unicode="&#xf5eb;" 
-d="M502.61 214.68c12.5195 -12.5293 12.5195 -32.8301 0 -45.3594l-223.931 -223.931c-12.5293 -12.5293 -32.8398 -12.5293 -45.3594 0l-223.931 223.931c-12.5195 12.5293 -12.5195 32.8301 0 45.3594l223.931 223.931c12.5293 12.5195 32.8398 12.5195 45.3594 0z
-M401.63 202.12c3.42969 3.16992 3.42969 8.58984 0 11.7598l-84.21 77.7305c-5.12988 4.72949 -13.4297 1.08984 -13.4297 -5.87988v-53.7305h-112c-17.6699 0 -32 -14.3301 -32 -32v-80c0 -4.41992 3.58008 -8 8 -8h32c4.41992 0 8 3.58008 8 8v64h96v-53.7305
-c0 -6.97949 8.30957 -10.6094 13.4297 -5.87988z" />
-    <glyph glyph-name="draw-polygon" unicode="&#xf5ee;" horiz-adv-x="448" 
-d="M384 96c35.3496 0 64 -28.6504 63.9902 -64c0 -35.3496 -28.6504 -64 -64 -64c-23.6299 0 -44.0303 12.9502 -55.1201 32h-209.75c-11.0801 -19.0498 -31.4902 -32 -55.1201 -32c-35.3496 0 -64 28.6504 -64 64c0 23.6299 12.9502 44.04 32 55.1299v209.75
-c-19.0498 11.0801 -32 31.4902 -32 55.1201c0 35.3496 28.6504 64 64 64c23.6299 0 44.04 -12.9502 55.1201 -32h209.76c11.0801 19.0498 31.4902 32 55.1201 32c35.3496 0 64 -28.6504 64 -64s-28.6504 -64 -64 -64c-0.349609 0 -0.669922 0.0898438 -1.01953 0.0996094
-l-39.2002 -65.3193c5.08008 -9.16992 8.21973 -19.5605 8.21973 -30.7803s-3.15039 -21.6104 -8.21973 -30.7803l39.2002 -65.3193c0.349609 0 0.669922 0.0996094 1.01953 0.0996094zM96 87.1201c9.61816 -5.58398 17.5361 -13.502 23.1201 -23.1201h208.36
-l-38.4609 64.0996c-0.349609 0 -0.669922 -0.0996094 -1.01953 -0.0996094c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64c0.349609 0 0.669922 -0.0898438 1.01953 -0.0996094l38.4609 64.0996h-208.36c-5.58691 -9.61523 -13.5049 -17.5332 -23.1201 -23.1201v-209.76z
-M272 192c0 -8.82031 7.17969 -16 16 -16s16 7.17969 16 16s-7.17969 16 -16 16s-16 -7.17969 -16 -16zM400 352c0 8.82031 -7.17969 16 -16 16s-16 -7.17969 -16 -16s7.17969 -16 16 -16s16 7.17969 16 16zM64 368c-8.82031 0 -16 -7.17969 -16 -16s7.17969 -16 16 -16
-s16 7.17969 16 16s-7.17969 16 -16 16zM48 32c0 -8.82031 7.17969 -16 16 -16s16 7.17969 16 16s-7.17969 16 -16 16s-16 -7.17969 -16 -16zM384 16c8.82031 0 16 7.17969 16 16s-7.17969 16 -16 16s-16 -7.17969 -16 -16s7.17969 -16 16 -16z" />
-    <glyph glyph-name="laptop-code" unicode="&#xf5fc;" horiz-adv-x="640" 
-d="M255.03 186.35l-58.3506 58.3408c-6.25 6.25 -6.25 16.3799 0 22.6299l58.3398 58.3398c6.25 6.25 16.3809 6.25 22.6309 0l11.3096 -11.3105c6.25 -6.25 6.25 -16.3799 0 -22.6299l-35.71 -35.7197l35.7197 -35.71c6.25 -6.25 6.25 -16.3799 0 -22.6299
-l-11.3096 -11.3105c-6.25 -6.25 -16.3799 -6.25 -22.6299 0zM351.04 197.65c-6.25 6.25 -6.25 16.3799 0 22.6299l35.71 35.7197l-35.71 35.71c-6.25 6.25 -6.25 16.3799 0 22.6299l11.3096 11.3105c6.25 6.25 16.3809 6.25 22.6309 0l58.3398 -58.3408
-c6.25 -6.25 6.25 -16.3799 0 -22.6299l-58.3398 -58.3398c-6.25 -6.25 -16.3809 -6.25 -22.6309 0zM624 32c8.7998 0 16 -7.2002 16 -16v-16c0 -35.2002 -28.7998 -64 -64 -64h-512c-35.2002 0 -64 28.7998 -64 64v16c0 8.7998 7.2002 16 16 16h239.23
-c-0.25 -14.5303 14.0791 -32 32.7695 -32h60.7998c18.0303 0 32 12.1904 32.7402 32h242.46zM576 400v-336h-512v336c0 26.4004 21.5996 48 48 48h416c26.4004 0 48 -21.5996 48 -48zM512 128v256h-384v-256h384z" />
-    <glyph glyph-name="layer-group" unicode="&#xf5fd;" 
-d="M12.4102 299.98c-16.5498 7.50977 -16.5498 32.5293 0 40.0391l232.95 105.671c3.23633 1.47949 6.87695 2.30371 10.666 2.30371s7.38672 -0.824219 10.624 -2.30371l232.93 -105.681c16.5498 -7.50977 16.5498 -32.5195 0 -40.0293l-232.94 -105.671
-c-6.7998 -3.08984 -14.4893 -3.08984 -21.29 0zM499.59 211.7c16.5498 -7.5 16.5498 -32.5 0 -40l-232.95 -105.59c-6.7998 -3.08008 -14.4893 -3.08008 -21.29 0l-232.939 105.59c-16.5498 7.5 -16.5498 32.5 0 40l58.0996 26.3301l161.63 -73.2705
-c7.57031 -3.42969 15.5908 -5.16992 23.8604 -5.16992s16.2998 1.74023 23.8604 5.16992l161.64 73.2705zM499.59 83.9004c16.5498 -7.5 16.5498 -32.5 0 -40l-232.95 -105.591c-6.7998 -3.0791 -14.4893 -3.0791 -21.29 0l-232.939 105.591
-c-16.5498 7.5 -16.5498 32.5 0 40l57.8799 26.2295l161.85 -73.3701c7.57031 -3.42969 15.5908 -5.16992 23.8604 -5.16992s16.2998 1.74023 23.8604 5.16992l161.859 73.3701z" />
-    <glyph glyph-name="lungs" unicode="&#xf604;" horiz-adv-x="640" 
-d="M636.11 57.8496c2.58984 -9.68945 3.88965 -19.6396 3.88965 -29.6299c0 -61.2295 -62.4805 -105.439 -125.24 -88.6201l-59.5 15.9502c-42.1797 11.3105 -71.2598 47.4697 -71.2598 88.6201v87.4902l85.8398 -57.2305
-c1.26855 -0.845703 2.79395 -1.35156 4.43164 -1.35156c2.77734 0 5.22559 1.41992 6.6582 3.57227l8.87988 13.3096c0.845703 1.26758 1.35254 2.79395 1.35254 4.43164c0 2.77734 -1.41992 5.22559 -3.57227 6.6582l-167.59 111.72l-167.59 -111.72
-c-2.15332 -1.43262 -3.55957 -3.88379 -3.55957 -6.66113c0 -1.6377 0.493164 -3.16113 1.33984 -4.42871l8.87988 -13.3096c1.43262 -2.15332 3.88379 -3.56055 6.66113 -3.56055c1.6377 0 3.16016 0.494141 4.42871 1.33984l85.8398 57.2305v-87.4902
-c0 -41.1504 -29.0801 -77.3203 -71.2598 -88.6201l-59.5 -15.9502c-62.7598 -16.8193 -125.24 27.3906 -125.24 88.6201c0 9.99023 1.2998 19.9404 3.88965 29.6299c21.6699 81.3008 56.04 159.15 102.011 231.021c22.1191 34.5703 36.0693 63.1299 80.0498 63.1299
-c38.6895 0 70.0498 -29.4199 70.0498 -65.71v-60.1104l32.8799 21.9199c4.4502 2.9707 7.12012 7.95996 7.12012 13.3105v170.59c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-170.59c0 -5.55273 2.81934 -10.4414 7.12012 -13.3105l32.8799 -21.9199
-v60.1104c0 36.29 31.3604 65.71 70.0498 65.71c43.9805 0 57.9307 -28.5596 80.0498 -63.1299c45.9707 -71.8701 80.3408 -149.72 102.011 -231.021z" />
-    <glyph glyph-name="microscope" unicode="&#xf610;" 
-d="M160 128c-17.6699 0 -32 14.3301 -32 32v224c0 17.6699 14.3301 32 32 32v16c0 8.83984 7.16016 16 16 16h64c8.83984 0 16 -7.16016 16 -16v-16c17.6699 0 32 -14.3301 32 -32v-224c0 -17.6699 -14.3301 -32 -32 -32h-12v-16c0 -8.83984 -7.16016 -16 -16 -16h-40
-c-8.83984 0 -16 7.16016 -16 16v16h-12zM464 0c26.5098 0 48 -21.4902 48 -48c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16c0 26.5098 21.4902 48 48 48h272c70.5801 0 128 57.4199 128 128s-57.4199 128 -128 128v64
-c105.88 0 192 -86.1201 192 -192c0 -49.2002 -18.7598 -93.9902 -49.29 -128h1.29004zM104 32c-4.41992 0 -8 3.58008 -8 8v16c0 4.41992 3.58008 8 8 8h208c4.41992 0 8 -3.58008 8 -8v-16c0 -4.41992 -3.58008 -8 -8 -8h-208z" />
-    <glyph glyph-name="oil-can" unicode="&#xf613;" horiz-adv-x="640" 
-d="M629.8 287.69c5.11035 1.45996 10.2002 -2.38086 10.1904 -7.69043v-18.0801c0 -2.12012 -0.839844 -4.16016 -2.33984 -5.66016l-212.261 -214.75c-6.00977 -6.08984 -14.21 -9.50977 -22.7598 -9.50977h-274.63c-17.6699 0 -32 14.3301 -32 32v46.54l-69.7197 12.6904
-c-15.2207 2.75977 -26.2803 16.0195 -26.2803 31.4795v94.9502c0 17.9795 14.6699 32.0098 31.9297 32.0098c1.9873 0 3.9043 -0.181641 5.79004 -0.530273l138.28 -25.1396h56v48h-56c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h160
-c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-56v-48h56.8896c10.2598 -0.00390625 20.0205 -2.46191 28.6201 -6.75977l50.4902 -25.2402zM96 159.33v62.4297l-48 8.73047v-62.4307zM549.33 74.6699c0 23.5605 42.6699 85.3301 42.6699 85.3301
-s42.6699 -61.7598 42.6699 -85.3301s-19.0996 -42.6699 -42.6699 -42.6699s-42.6699 19.1104 -42.6699 42.6699z" />
-    <glyph glyph-name="poop" unicode="&#xf619;" 
-d="M451.36 78.8604c34.3301 -5.48047 60.6396 -34.9805 60.6396 -70.8604c0 -39.7598 -32.2402 -72 -72 -72h-368c-39.7598 0 -72 32.2402 -72 72c0 35.8799 26.3096 65.3799 60.6396 70.8604c-17.2998 13.1494 -28.6396 33.7295 -28.6396 57.1396
-c0 39.7695 32.2402 72 72 72h14.0703c-13.4199 11.7305 -22.0703 28.7803 -22.0703 48c0 35.3496 28.6504 64 64 64h16c44.1797 0 80 35.8203 80 80c0 17.3799 -5.69043 33.3604 -15.1104 46.4805c4.95996 0.779297 9.94043 1.51953 15.1104 1.51953
-c53.0195 0 96 -42.9805 96 -96c0 -11.2803 -2.30957 -21.9502 -5.87988 -32h5.87988c35.3496 0 64 -28.6504 64 -64c0 -19.2197 -8.65039 -36.2695 -22.0703 -48h14.0703c39.7598 0 72 -32.2305 72 -72c0 -23.4102 -11.3398 -43.9902 -28.6396 -57.1396z" />
-    <glyph glyph-name="shapes" unicode="&#xf61f;" 
-d="M128 192c70.6455 0 128 -57.3545 128 -128s-57.3545 -128 -128 -128s-128 57.3545 -128 128s57.3545 128 128 128zM507 246.86c14.2402 -24.3799 -3.58008 -54.8604 -32.0898 -54.8604h-213.82c-28.5098 0 -46.3301 30.4805 -32.0898 54.8604l106.93 182.85
-c6.48828 10.9688 18.3906 18.3311 32.0469 18.3311c13.6553 0 25.6055 -7.3623 32.0938 -18.3311zM480 160c17.6611 0 32 -14.3389 32 -32v-160c0 -17.6611 -14.3389 -32 -32 -32h-160c-17.6611 0 -32 14.3389 -32 32v160c0 17.6611 14.3389 32 32 32h160z" />
-    <glyph glyph-name="star-of-life" unicode="&#xf621;" horiz-adv-x="480" 
-d="M471.99 113.57c7.66016 -4.41992 10.2793 -14.2002 5.85938 -21.8506l-32.0195 -55.4297c-4.41992 -7.66016 -14.21 -10.2803 -21.8701 -5.86035l-135.93 78.4307v-156.86c0 -8.83984 -7.16992 -16 -16.0107 -16h-64.0391c-8.84082 0 -16.0107 7.16016 -16.0107 16
-v156.85l-135.93 -78.4297c-7.66016 -4.41016 -17.4502 -1.79004 -21.8701 5.86035l-32.0195 55.4297c-4.41992 7.65039 -1.80078 17.4404 5.85938 21.8604l135.931 78.4297l-135.931 78.4297c-7.66016 4.41992 -10.2793 14.21 -5.85938 21.8604l32.0195 55.4199
-c4.41992 7.65039 14.21 10.2803 21.8701 5.86035l135.93 -78.4307v156.86c0 8.83984 7.16992 16 16.0107 16h64.0391c8.84082 0 16.0107 -7.16016 16.0107 -16v-156.85l135.93 78.4297c7.66016 4.41992 17.4502 1.79004 21.8701 -5.86035l32.0195 -55.4297
-c4.41992 -7.66016 1.80078 -17.4404 -5.85938 -21.8604l-135.931 -78.4297z" />
-    <glyph glyph-name="teeth" unicode="&#xf62e;" horiz-adv-x="640" 
-d="M544 448c53.0195 0 96 -42.9805 96 -96v-320c0 -53.0195 -42.9805 -96 -96 -96h-448c-53.0195 0 -96 42.9805 -96 96v320c0 53.0195 42.9805 96 96 96h448zM160 80v64c0 8.83984 -7.16016 16 -16 16h-64c-8.83984 0 -16 -7.16016 -16 -16v-64
-c0 -26.5098 21.4902 -48 48 -48s48 21.4902 48 48zM160 208v64c0 26.5098 -21.4902 48 -48 48s-48 -21.4902 -48 -48v-64c0 -8.83984 7.16016 -16 16 -16h64c8.83984 0 16 7.16016 16 16zM304 88v56c0 8.83984 -7.16016 16 -16 16h-80c-8.83984 0 -16 -7.16016 -16 -16v-56
-c0 -30.9297 25.0703 -56 56 -56s56 25.0703 56 56zM304 208v88c0 30.9297 -25.0703 56 -56 56s-56 -25.0703 -56 -56v-88c0 -8.83984 7.16016 -16 16 -16h80c8.83984 0 16 7.16016 16 16zM448 88v56c0 8.83984 -7.16016 16 -16 16h-80c-8.83984 0 -16 -7.16016 -16 -16v-56
-c0 -30.9297 25.0703 -56 56 -56s56 25.0703 56 56zM448 208v88c0 30.9297 -25.0703 56 -56 56s-56 -25.0703 -56 -56v-88c0 -8.83984 7.16016 -16 16 -16h80c8.83984 0 16 7.16016 16 16zM576 80v64c0 8.83984 -7.16016 16 -16 16h-64c-8.83984 0 -16 -7.16016 -16 -16v-64
-c0 -26.5098 21.4902 -48 48 -48s48 21.4902 48 48zM576 208v64c0 26.5098 -21.4902 48 -48 48s-48 -21.4902 -48 -48v-64c0 -8.83984 7.16016 -16 16 -16h64c8.83984 0 16 7.16016 16 16z" />
-    <glyph glyph-name="teeth-open" unicode="&#xf62f;" horiz-adv-x="640" 
-d="M544 448c53.0195 0 96 -42.9805 96 -96v-64c0 -35.3496 -28.6602 -64 -64 -64h-512c-35.3398 0 -64 28.6504 -64 64v64c0 53.0195 42.9805 96 96 96h448zM160 272v32c0 26.5098 -21.4902 48 -48 48s-48 -21.4902 -48 -48v-32c0 -8.83984 7.16016 -16 16 -16h64
-c8.83984 0 16 7.16016 16 16zM304 272v56c0 30.9297 -25.0703 56 -56 56s-56 -25.0703 -56 -56v-56c0 -8.83984 7.16016 -16 16 -16h80c8.83984 0 16 7.16016 16 16zM448 272v56c0 30.9297 -25.0703 56 -56 56s-56 -25.0703 -56 -56v-56c0 -8.83984 7.16016 -16 16 -16h80
-c8.83984 0 16 7.16016 16 16zM576 272v32c0 26.5098 -21.4902 48 -48 48s-48 -21.4902 -48 -48v-32c0 -8.83984 7.16016 -16 16 -16h64c8.83984 0 16 7.16016 16 16zM576 128c35.3398 0 64 -28.6504 64 -64v-32c0 -53.0195 -42.9805 -96 -96 -96h-448
-c-53.0195 0 -96 42.9805 -96 96v32c0 35.3496 28.6602 64 64 64h512zM160 48v32c0 8.83984 -7.16016 16 -16 16h-64c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -26.5098 21.4902 -48 48 -48s48 21.4902 48 48zM304 56v24c0 8.83984 -7.16016 16 -16 16h-80
-c-8.83984 0 -16 -7.16016 -16 -16v-24c0 -30.9297 25.0703 -56 56 -56s56 25.0703 56 56zM448 56v24c0 8.83984 -7.16016 16 -16 16h-80c-8.83984 0 -16 -7.16016 -16 -16v-24c0 -30.9297 25.0703 -56 56 -56s56 25.0703 56 56zM576 48v32c0 8.83984 -7.16016 16 -16 16h-64
-c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -26.5098 21.4902 -48 48 -48s48 21.4902 48 48z" />
-    <glyph glyph-name="theater-masks" unicode="&#xf630;" horiz-adv-x="640" 
-d="M206.86 202.85l-7.62988 -43.1797c-21.0908 -7.21973 -38.5 -18.2002 -49.9004 -30.9199c-2.41992 32.9004 21.6504 63.6504 57.5303 74.0996zM95.8096 153c5.87012 -33.1699 64.3203 -71.8096 111.931 -84.79c10.5596 -27.0996 25.9795 -50.5 39.5 -67.5801
-c-3.25977 -0.339844 -6.41992 -0.799805 -10.0098 -0.799805c-68.1201 0 -190.221 61.5596 -204.45 142.08l-31.7305 179.51c-4.96973 28.0996 7.98047 56.0996 32.1504 69.5205c67.8193 37.6396 143.46 57.0596 220.12 57.0596c23.9199 0 47.9492 -1.88965 71.8594 -5.7002
-c17.29 -2.76953 31.7803 -13.0498 41.7705 -27c-19.1299 -0.769531 -38.29 -2.2998 -57.1807 -5.31934c-19.8594 -3.1709 -37.6396 -12.5303 -51.5898 -26c-1.62012 0.0195312 -3.23926 0.189453 -4.84961 0.189453c-65.8896 0 -131.25 -16.9502 -189.01 -49.0098
-c0.0400391 -0.0302734 -0.530273 -1.03027 -0.240234 -2.65039zM193.36 290.46c3.83984 -21.7002 -10.6904 -42.4004 -32.4404 -46.2197c-21.7598 -3.82031 -42.5 10.6699 -46.3398 32.3701c-0.730469 4.12012 -0.610352 8.15918 -0.0898438 12.0996
-c10.8096 -5.57031 24.8301 -7.75 39.4795 -5.16992c14.6504 2.57031 27.0703 9.41016 35.3203 18.3203c1.83984 -3.53027 3.33984 -7.28027 4.07031 -11.4004zM606.8 327.1c24.1699 -13.4092 37.1201 -41.4092 32.1504 -69.5195l-31.7305 -179.51
-c-15.3896 -87.0508 -156.83 -151.931 -219.859 -140.84c-63.0303 11.0791 -173.7 120.3 -158.311 207.35l31.7305 179.51c4.95996 28.1006 26.7295 50 54.04 54.3604c100.55 16.0596 203 -1.96973 291.979 -51.3506zM333.56 230.3
-c-0.729492 -4.12012 -0.609375 -8.16016 -0.0791016 -12.1094c10.8096 5.56934 24.8291 7.75 39.4795 5.16992c14.6504 -2.57031 27.0703 -9.41016 35.3203 -18.3203c1.83984 3.53027 3.33984 7.28027 4.06934 11.4004c3.83008 21.6992 -10.6895 42.3896 -32.4492 46.2197
-c-21.7607 3.83008 -42.5 -10.6602 -46.3408 -32.3604zM404.03 31.54c55.6699 -9.79004 108.2 23.7803 122.38 75.7197c-28.1104 -16.9697 -68.6504 -24.21 -111.93 -16.5996c-43.2803 7.60938 -78.8906 28.2402 -99.4902 53.7803
-c-4.48047 -53.6309 33.3594 -103.11 89.04 -112.9zM534.33 182.88c1.83984 3.52051 3.33984 7.27051 4.07031 11.4004c3.83008 21.7002 -10.7002 42.3896 -32.4502 46.2197c-21.7598 3.82031 -42.5 -10.6699 -46.3398 -32.3701
-c-0.730469 -4.12012 -0.610352 -8.16016 -0.0908203 -12.0996c10.8105 5.56934 24.8301 7.75 39.4805 5.16992c14.6504 -2.57031 27.0801 -9.41016 35.3301 -18.3203z" />
-    <glyph glyph-name="traffic-light" unicode="&#xf637;" horiz-adv-x="384" 
-d="M384 256c0 -41.7402 -26.7998 -76.9004 -64 -90.1201v-37.8799h64c0 -42.8398 -28.25 -78.6904 -66.9902 -91.0498c-12.4297 -57.6699 -63.6094 -100.95 -125.01 -100.95s-112.58 43.2803 -125.01 100.95c-38.7402 12.3594 -66.9902 48.21 -66.9902 91.0498h64v37.8799
-c-37.2002 13.2197 -64 48.3799 -64 90.1201h64v37.8799c-37.2002 13.2197 -64 48.3799 -64 90.1201h64v32c0 17.6699 14.3301 32 32 32h192c17.6699 0 32 -14.3301 32 -32v-32h64c0 -41.7402 -26.7998 -76.9004 -64 -90.1201v-37.8799h64zM192 32
-c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM192 160c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM192 288c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48
-s-48 -21.4902 -48 -48s21.4902 -48 48 -48z" />
-    <glyph glyph-name="truck-monster" unicode="&#xf63b;" horiz-adv-x="640" 
-d="M624 224c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-16.71c-29.21 38.6504 -75.0996 64 -127.28 64c-52.1797 0 -98.0693 -25.3496 -127.279 -64h-65.4502c-29.21 38.6504 -75.1006 64 -127.28 64s-98.0703 -25.3496 -127.28 -64h-16.7197
-c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h16v80c0 8.83984 7.16016 16 16 16h176v96c0 17.6699 14.3301 32 32 32h113.24c20.2227 -0.00292969 38.2441 -9.35645 49.9795 -24.0195l83.1807 -103.98h73.5996c17.6699 0 32 -14.3301 32 -32v-64h16z
-M288 320h132.44l-51.2002 64h-81.2402v-64zM592 96c8.83984 0 16 -7.16016 16.0195 -16v-32c0 -8.83984 -7.15918 -16 -16 -16h-5.19922c-2.1709 -7.26172 -5.11426 -14.3359 -8.65039 -20.8896l3.66992 -3.66992c6.25 -6.25 6.25 -16.3809 0 -22.6309l-22.6299 -22.6299
-c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-3.66992 3.66992c-6.62012 -3.58008 -13.5703 -6.44922 -20.9004 -8.64941v-5.2002c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v5.2002c-7.33008 2.2002 -14.29 5.08008 -20.8994 8.64941
-l-3.66992 -3.66992c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-22.6299 22.6299c-6.25 6.25 -6.25 16.3809 0 22.6309l3.66992 3.66992c-3.58008 6.60938 -6.44922 13.5596 -8.64941 20.8896h-5.2002c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h5.2002
-c2.16992 7.26172 5.11426 14.3359 8.64941 20.8896l-3.66992 3.66992c-6.25 6.25 -6.25 16.3809 0 22.6309l22.6299 22.6299c6.25 6.25 16.3809 6.25 22.6309 0l3.66992 -3.66992c6.60938 3.58008 13.5596 6.44922 20.8896 8.64941v5.2002c0 8.83984 7.16016 16 16 16h32
-c8.83984 0 16 -7.16016 16 -16v-5.2002c7.26172 -2.16992 14.3359 -5.11426 20.8896 -8.64941l3.66992 3.66992c6.25 6.25 16.3809 6.25 22.6309 0l22.6299 -22.6299c6.25 -6.25 6.25 -16.3809 0 -22.6309l-3.66992 -3.66992
-c3.58008 -6.60938 6.44922 -13.5596 8.64941 -20.8896h5.2002zM480 16c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM272 96c8.83984 0 16 -7.16016 16.0195 -15.9902v-32c0 -8.83984 -7.15918 -16 -16 -16h-5.19922
-c-2.1709 -7.26074 -5.11426 -14.3359 -8.65039 -20.8896l3.66992 -3.66992c6.25 -6.25 6.25 -16.3799 0 -22.6299l-22.6299 -22.6299c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-3.66992 3.66992c-6.62012 -3.58008 -13.5703 -6.4502 -20.9004 -8.65039v-5.2002
-c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v5.2002c-7.33008 2.2002 -14.29 5.08008 -20.8994 8.65039l-3.66992 -3.66992c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-22.6299 22.6299c-6.25 6.25 -6.25 16.3799 0 22.6299l3.66992 3.66992
-c-3.58008 6.61035 -6.44922 13.5596 -8.64941 20.8896h-5.2002c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h5.2002c2.16992 7.26172 5.11426 14.3359 8.64941 20.8906l-3.66992 3.66992c-6.25 6.25 -6.25 16.3799 0 22.6299l22.6299 22.6201
-c6.25 6.25 16.3809 6.25 22.6309 0l3.66992 -3.66992c6.60938 3.58008 13.5596 6.44922 20.8896 8.64941v5.2002c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-5.2002c7.26172 -2.16992 14.3359 -5.11426 20.8896 -8.64941l3.66992 3.66992
-c6.25 6.25 16.3809 6.25 22.6309 0l22.6299 -22.6299c6.25 -6.25 6.25 -16.3809 0 -22.6309l-3.66992 -3.66992c3.58008 -6.60938 6.44922 -13.5596 8.64941 -20.8896h5.2002zM160 16c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48
-s21.4902 -48 48 -48z" />
-    <glyph glyph-name="truck-pickup" unicode="&#xf63c;" horiz-adv-x="640" 
-d="M624 160c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-49.5996c0.759766 -5.26953 1.60938 -10.5195 1.60938 -16c0 -61.8604 -50.1396 -112 -112 -112c-61.8594 0 -112 50.1396 -112 112c0 5.48047 0.850586 10.7305 1.61035 16h-67.2305
-c0.760742 -5.26953 1.61035 -10.5195 1.61035 -16c0 -61.8604 -50.1396 -112 -112 -112s-112 50.1396 -112 112c0 5.48047 0.849609 10.7305 1.61035 16h-49.6104c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h16v64c0 17.6699 14.3301 32 32 32h160v128
-c0 17.6699 14.3301 32 32 32h113.24c20.2227 -0.00292969 38.2441 -9.35645 49.9795 -24.0195l108.78 -135.98h48c17.6699 0 32 -14.3301 32 -32v-64h16zM288 352v-96h158.04l-76.7998 96h-81.2402zM176 32c26.4697 0 48 21.5303 48 48s-21.5303 48 -48 48
-s-48 -21.5303 -48 -48s21.5303 -48 48 -48zM464 32c26.4697 0 48 21.5303 48 48s-21.5303 48 -48 48s-48 -21.5303 -48 -48s21.5303 -48 48 -48z" />
-    <glyph glyph-name="ad" unicode="&#xf641;" 
-d="M157.52 176l18.4805 53.2197l18.4805 -53.2197h-36.9609zM352 192c13.2305 0 24 -10.7695 24 -24s-10.7695 -24 -24 -24s-24 10.7695 -24 24s10.7695 24 24 24zM464 384c26.5 0 48 -21.5 48 -48v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288
-c0 26.5 21.5 48 48 48h416zM250.58 96c11 0 18.7197 10.8496 15.1104 21.25l-53.6904 154.62c-3.25586 9.3877 -12.1758 16.1299 -22.666 16.1299h-0.00390625h-26.6602l0.00292969 0.00585938c-10.4873 0 -19.4131 -6.74219 -22.6729 -16.126l-53.7002 -154.63
-c-3.60938 -10.4004 4.11035 -21.25 15.1201 -21.25h16.9404c0.00195312 0 -0.000976562 -0.00390625 0.000976562 -0.00390625c6.99316 0 12.9453 4.49609 15.1191 10.7539l7.37988 21.25h70.29l7.36914 -21.25c2.24023 -6.42969 8.31055 -10.75 15.1201 -10.75h16.9404z
-M424 112v160c0 8.83984 -7.16016 16 -16 16h-16c-8.83984 0 -16 -7.16016 -16 -16v-36.4199c-7.54004 2.68945 -15.54 4.41992 -24 4.41992c-39.7002 0 -72 -32.2998 -72 -72s32.2998 -72 72 -72c9.92969 0 19.4004 2.01953 28.0195 5.67969
-c2.94043 -3.41016 7.13086 -5.67969 11.9805 -5.67969h16c8.83984 0 16 7.16016 16 16z" />
-    <glyph glyph-name="ankh" unicode="&#xf644;" horiz-adv-x="320" 
-d="M296 192c13.25 0 24 -10.7402 24 -24v-32c0 -13.25 -10.75 -24 -24 -24h-96v-152c0 -13.25 -10.75 -24 -24 -24h-32c-13.25 0 -24 10.75 -24 24v152h-96c-13.25 0 -24 10.75 -24 24v32c0 13.2598 10.75 24 24 24h44.6201c-21.0801 33.9902 -36.6201 74.3496 -36.6201 112
-c0 88.3701 57.3096 144 128 144s128 -55.6299 128 -144c0 -37.6504 -15.54 -78.0098 -36.6201 -112h44.6201zM160 368c-29.6104 0 -48 -24.5195 -48 -64c0 -34.6602 27.1396 -78.1504 48 -100.87c20.8604 22.7305 48 66.21 48 100.87c0 39.4805 -18.3896 64 -48 64z" />
-    <glyph glyph-name="bible" unicode="&#xf647;" horiz-adv-x="448" 
-d="M448 89.5996c0 -9.59961 -3.2002 -16 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320
-c0 54.4004 41.5996 96 96 96h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM144 304v-32c0 -8.83984 7.16016 -16 16 -16h48v-112c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16v112h48c8.83984 0 16 7.16016 16 16v32
-c0 8.83984 -7.16016 16 -16 16h-48v48c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-48h-48c-8.83984 0 -16 -7.16016 -16 -16zM380.8 0v64h-284.8c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8z" />
-    <glyph glyph-name="business-time" unicode="&#xf64a;" horiz-adv-x="640" 
-d="M496 224c79.5898 0 144 -64.4102 144 -144s-64.4102 -144 -144 -144s-144 64.4102 -144 144s64.4102 144 144 144zM560 73.71v12.5801c0 5.33984 -4.37012 9.70996 -9.70996 9.70996h-38.29v54.2803c0 5.33984 -4.37012 9.70996 -9.70996 9.70996h-12.5703
-c-5.33984 0 -9.70996 -4.37012 -9.70996 -9.70996v-76.5703c0 -5.33984 4.37012 -9.70996 9.70996 -9.70996h60.5703c5.33984 0 9.70996 4.37012 9.70996 9.70996zM496 256c-37.5303 0 -72.2803 -11.9102 -100.88 -32h-395.12v80c0 25.5996 22.4004 48 48 48h80v48
-c0 25.5996 22.4004 48 48 48h160c25.5996 0 48 -22.4004 48 -48v-48h80c25.5996 0 48 -22.4004 48 -48v-48.8096c-5.28027 0.479492 -10.5996 0.80957 -16 0.80957zM320 352v32h-128v-32h128zM326.82 128c-4.33984 -15.2803 -6.82031 -31.3398 -6.82031 -48
-c0 -28.8203 7.09961 -55.96 19.4297 -80h-291.43c-25.5996 0 -48 22.4004 -48 48v144h192v-48c0 -8.83984 7.16016 -16 16 -16h118.82z" />
-    <glyph glyph-name="city" unicode="&#xf64f;" horiz-adv-x="640" 
-d="M616 256c13.25 0 24 -10.7402 24 -24v-264c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32v360c0 13.2598 10.7402 24 24 24h40v80c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-80h64v80c0 8.83984 7.16016 16 16 16h16
-c8.83984 0 16 -7.16016 16 -16v-80h64v72c0 13.2598 10.7402 24 24 24h144c13.2598 0 24 -10.7402 24 -24v-168h136zM128 44v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12z
-M128 140v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM128 236v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40
-c6.62988 0 12 5.37012 12 12zM256 44v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM256 140v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40
-c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM256 236v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM416 140v40c0 6.62988 -5.37012 12 -12 12h-40
-c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM416 236v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM416 332v40
-c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM576 44v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40
-c6.62988 0 12 5.37012 12 12zM576 140v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12z" />
-    <glyph glyph-name="comment-dollar" unicode="&#xf651;" 
-d="M256 416c141.38 0 256 -93.1201 256 -208s-114.62 -208 -256 -208c-38.4102 0 -74.71 7.07031 -107.4 19.3799c-24.6094 -19.6299 -74.3398 -51.3799 -140.6 -51.3799l-0.00195312 0.00195312c-4.41309 0 -7.99512 3.58301 -7.99512 7.99512
-c0 2.13184 0.835938 4.06934 2.19727 5.50293c0.5 0.530273 42.2598 45.4502 54.8193 95.7598c-35.6094 35.7305 -57.0195 81.1807 -57.0195 130.74c0 114.88 114.62 208 256 208zM280 113.56c30.29 3.62012 53.3701 30.9805 49.3203 63.04
-c-2.90039 22.96 -20.6602 41.3105 -42.9102 47.6699l-50.0703 14.3008c-3.59961 1.0293 -6.12012 4.35938 -6.12012 8.10938c0 4.64062 3.78027 8.41992 8.44043 8.41992h32.7803c0.0214844 0 0.0634766 -0.0126953 0.0859375 -0.0126953
-c3.62891 0 7.07422 -0.790039 10.1738 -2.20703c4.7998 -2.20996 10.3701 -1.70996 14.1094 2.03027l17.5205 17.5195c5.26953 5.27051 4.66992 14.2705 -1.5498 18.3799c-9.5 6.27051 -20.3604 10.1104 -31.7803 11.46v17.7305c0 8.83984 -7.16016 16 -16 16h-16
-c-8.83984 0 -16 -7.16016 -16 -16v-17.5498c-30.29 -3.62012 -53.3701 -30.9805 -49.3203 -63.0498c2.90039 -22.96 20.6602 -41.3203 42.9102 -47.6699l50.0703 -14.3008c3.59961 -1.0293 6.12012 -4.35938 6.12012 -8.10938
-c0 -4.64062 -3.78027 -8.41992 -8.44043 -8.41992h-32.7803c-3.59961 0 -7.0791 0.759766 -10.2598 2.21973c-4.7998 2.20996 -10.3701 1.70996 -14.1094 -2.03027l-17.5205 -17.5195c-5.26953 -5.27051 -4.66992 -14.2705 1.5498 -18.3799
-c9.5 -6.27051 20.3604 -10.1104 31.7803 -11.46v-17.7305c0 -8.83984 7.16016 -16 16 -16h16c8.83984 0 16 7.16016 16 16v17.5596z" />
-    <glyph glyph-name="comments-dollar" unicode="&#xf653;" horiz-adv-x="576" 
-d="M416 256c0 -88.3701 -93.1201 -160 -208 -160c-40.9805 0 -79.0703 9.24023 -111.27 24.9805c-21.8008 -12.7305 -52.1504 -24.9805 -88.7305 -24.9805l-0.00195312 0.00195312c-4.41309 0 -7.99512 3.58301 -7.99512 7.99512
-c0 2.13184 0.835938 4.06934 2.19727 5.50293c0.319336 0.339844 22.4102 24.2803 35.7695 54.5195c-23.8398 26.0303 -37.9697 57.7109 -37.9697 91.9805c0 88.3701 93.1201 160 208 160s208 -71.6299 208 -160zM192 160c0 -4.41992 3.58008 -8 8 -8h16
-c4.41992 0 8 3.58008 8 8v16.1201c23.6201 0.629883 42.6699 20.54 42.6699 45.0703c0 19.9697 -12.9902 37.8096 -31.5801 43.3896l-45 13.5c-5.16016 1.54004 -8.76953 6.78027 -8.76953 12.7295c0 7.27051 5.2998 13.1904 11.7998 13.1904h28.1104
-c4.55957 0 8.94922 -1.29004 12.8193 -3.71973c3.24023 -2.03027 7.36035 -1.91016 10.1299 0.729492l11.75 11.21c3.53027 3.37012 3.33008 9.20996 -0.569336 12.1406c-9.10059 6.83984 -20.0801 10.7695 -31.3701 11.3496v16.29c0 4.41992 -3.58008 8 -8 8h-16
-c-4.41992 0 -8 -3.58008 -8 -8v-16.1201c-23.6201 -0.629883 -42.6699 -20.5498 -42.6699 -45.0703c0 -19.9697 12.9893 -37.8096 31.5801 -43.3896l45 -13.5c5.15918 -1.54004 8.76953 -6.78027 8.76953 -12.7295c0 -7.27051 -5.2998 -13.1904 -11.7998 -13.1904h-28.1104
-c-4.55957 0 -8.9502 1.2998 -12.8193 3.71973c-3.24023 2.03027 -7.36035 1.91016 -10.1309 -0.729492l-11.75 -11.21c-3.5293 -3.37012 -3.3291 -9.20996 0.570312 -12.1406c9.10059 -6.83008 20.0801 -10.7695 31.3701 -11.3496v-16.29zM538.01 36.0098
-c13.3604 -30.2598 35.4707 -54.1699 35.7803 -54.5c2.20996 -2.33008 2.82031 -5.72949 1.5498 -8.66992c-1.25 -2.92969 -4.13965 -4.83984 -7.33984 -4.83984c-36.5801 0 -66.9297 12.25 -88.7305 24.9805c-32.1992 -15.7402 -70.2891 -24.9805 -111.27 -24.9805
-c-86.2305 0 -160.2 40.3701 -191.73 97.8799c10.4102 -1.11035 20.9502 -1.87988 31.7305 -1.87988c132.34 0 240 86.1299 240 192c0 6.78027 -0.469727 13.4697 -1.33008 20.0703c75.8398 -23.8701 129.33 -81.1299 129.33 -148.07
-c0 -34.2695 -14.1299 -65.96 -37.9902 -91.9902z" />
-    <glyph glyph-name="cross" unicode="&#xf654;" horiz-adv-x="384" 
-d="M352 320c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-96v-224c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v224h-96c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h96v96c0 17.6699 14.3301 32 32 32
-h64c17.6699 0 32 -14.3301 32 -32v-96h96z" />
-    <glyph glyph-name="dharmachakra" unicode="&#xf655;" 
-d="M495 222.94c9.20996 0.569336 17 -6.74023 17.0098 -15.9707v-29.9395c0 -9.23047 -7.79004 -16.5498 -17 -15.9707l-17.2197 1.08008c-5.28027 -39.4795 -20.7998 -75.6299 -43.8604 -105.83l12.9502 -11.4297c6.91992 -6.09961 7.25977 -16.7803 0.730469 -23.3096
-l-21.1699 -21.1699c-6.52051 -6.52051 -17.2002 -6.19043 -23.3105 0.729492l-11.4297 12.9502c-30.2002 -23.0703 -66.3506 -38.5898 -105.84 -43.8604l1.08008 -17.2197c0.569336 -9.20996 -6.74023 -17 -15.9707 -17h-29.9395c-9.23047 0 -16.5498 7.79004 -15.9707 17
-l1.09082 17.2197c-39.4902 5.28027 -75.6406 20.7998 -105.841 43.8604l-11.4297 -12.9502c-6.09961 -6.91992 -16.7803 -7.25977 -23.3096 -0.729492l-21.1699 21.1699c-6.52051 6.51953 -6.19043 17.1992 0.729492 23.3096l12.9502 11.4297
-c-23.0703 30.1904 -38.5898 66.3408 -43.8604 105.83l-17.2197 -1.08008c-9.20996 -0.569336 -17 6.74023 -17 15.9707v29.9395c0 9.23047 7.79004 16.5498 17 15.9707l17.2197 -1.08008c5.28027 39.4893 20.7998 75.6396 43.8604 105.84l-12.9502 11.4297
-c-6.91992 6.10059 -7.25977 16.7803 -0.729492 23.3105l21.1699 21.1592c6.51953 6.52051 17.1992 6.19043 23.3096 -0.729492l11.4297 -12.9502c30.1904 23.0703 66.3408 38.5898 105.83 43.8604l-1.08008 17.2197c-0.569336 9.20996 6.74023 17 15.9707 17h29.9395
-c9.23047 0 16.5498 -7.79004 15.9707 -17l-1.07031 -17.21c39.4795 -5.28027 75.6299 -20.7998 105.83 -43.8604l11.4297 12.9404c6.10059 6.91992 16.7803 7.25977 23.3105 0.729492l21.1592 -21.1592c6.52051 -6.52051 6.19043 -17.2002 -0.729492 -23.3105
-l-12.9502 -11.4297c23.0703 -30.2002 38.5898 -66.3506 43.8604 -105.84zM281.84 349.39l-4.00977 -64.1201c10.2998 -2.40918 19.8896 -6.50977 28.6201 -11.9492l42.6201 48.29c-19.6006 14.1201 -42.4199 23.71 -67.2305 27.7793zM230.16 349.39
-c-24.8105 -4.06934 -47.6299 -13.6592 -67.2305 -27.7793l42.6201 -48.29c8.73047 5.42969 18.3301 9.54004 28.6201 11.9492zM126.39 285.06c-14.1201 -19.5996 -23.71 -42.4092 -27.7793 -67.2197l64.1201 -4.00977c2.41992 10.29 6.51953 19.8896 11.96 28.6201z
-M98.6104 166.16c4.06934 -24.8105 13.6592 -47.6299 27.7793 -67.2305l48.29 42.6201c-5.42969 8.73047 -9.54004 18.3301 -11.9492 28.6201zM230.16 34.6104l4 64.1201c-10.29 2.41992 -19.8906 6.51953 -28.6201 11.96l-42.6104 -48.3008
-c19.6006 -14.1201 42.4199 -23.71 67.2305 -27.7793zM256 160c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM281.84 34.6104c24.8105 4.06934 47.6201 13.6592 67.2197 27.7793l-42.6094 48.3008
-c-8.73047 -5.44043 -18.3301 -9.55078 -28.6201 -11.96zM385.61 98.9404c14.1201 19.5898 23.71 42.4092 27.7793 67.2295l-64.1201 4.00977c-2.40918 -10.2998 -6.50977 -19.8896 -11.9492 -28.6201zM349.27 213.83l64.1201 4
-c-4.06934 24.8096 -13.6592 47.6299 -27.7793 67.2295l-48.3008 -42.6094c5.44043 -8.73047 9.55078 -18.3301 11.96 -28.6201z" />
-    <glyph glyph-name="envelope-open-text" unicode="&#xf658;" 
-d="M176 232c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h160c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-160zM160 152v16c0 8.83984 7.16016 16 16 16h160c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16
-h-160c-8.83984 0 -16 7.16016 -16 16zM256 30.8701c16.4199 0 32.8398 5.07031 46.8604 15.1895l209.14 151.08v-213.14c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v213.14l209.14 -151.08c14.0205 -10.1299 30.4404 -15.1895 46.8604 -15.1895z
-M493.61 285.05c11.6094 -9.09961 18.3896 -23.0303 18.3896 -37.7695v-10.6504l-96 -69.3496v184.72h-320v-184.72l-96 69.3496v10.6504c0.00195312 15.3359 7.17676 28.9824 18.3896 37.7695c8.85059 6.94043 17.2402 13.4805 29.6104 22.8105v44.1396
-c0 26.5098 21.4902 48 48 48h77.5498c3.04004 2.2002 5.87012 4.25977 9.04004 6.55957c16.8203 12.2705 50.21 41.79 73.4102 41.4404c23.2002 0.349609 56.5996 -29.1699 73.4102 -41.4404c3.16992 -2.2998 6 -4.35938 9.04004 -6.55957h77.5498
-c26.5098 0 48 -21.4902 48 -48v-44.1396c12.3701 -9.34082 20.7598 -15.8701 29.6104 -22.8105z" />
-    <glyph glyph-name="folder-minus" unicode="&#xf65d;" 
-d="M464 320c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h160l64 -64h192zM368 152v16c0 8.83984 -7.16016 16 -16 16h-192c-8.83984 0 -16 -7.16016 -16 -16v-16
-c0 -8.83984 7.16016 -16 16 -16h192c8.83984 0 16 7.16016 16 16z" />
-    <glyph glyph-name="folder-plus" unicode="&#xf65e;" 
-d="M464 320c26.4922 0 48 -21.5078 48 -48v-224c0 -26.4922 -21.5078 -48 -48 -48h-416c-26.4922 0 -48 21.5078 -48 48v288c0 26.4922 21.5078 48 48 48h160l64 -64h192zM359.5 152v16c0 8.83105 -7.16895 16 -16 16h-64v64c0 8.83105 -7.16895 16 -16 16h-16
-c-8.83105 0 -16 -7.16895 -16 -16v-64h-64c-8.83105 0 -16 -7.16895 -16 -16v-16c0 -8.83105 7.16895 -16 16 -16h64v-64c0 -8.83105 7.16895 -16 16 -16h16c8.83105 0 16 7.16895 16 16v64h64c8.83105 0 16 7.16895 16 16z" />
-    <glyph glyph-name="funnel-dollar" unicode="&#xf662;" horiz-adv-x="640" 
-d="M433.46 282.06c-83.4102 -20.8896 -145.46 -96.2695 -145.46 -186.06c0 -54.3496 22.7998 -103.38 59.21 -138.35c-10.75 -20.54 -38.3604 -29.21 -59.2197 -13.5703l-79.9902 60c-10.0703 7.55957 -16 19.4102 -16 32v155.92l-182.66 201.93
-c-19.9502 19.9502 -5.82031 54.0703 22.4004 54.0703h480.52c28.2207 0 42.3506 -34.1201 22.4004 -54.0703zM480 256c88.3701 0 160 -71.6299 160 -160s-71.6299 -160 -160 -160s-160 71.6299 -160 160s71.6299 160 160 160zM496 16.1201
-c23.6299 0.629883 42.6699 20.54 42.6699 45.0703c0 19.9697 -12.9902 37.8096 -31.5801 43.3896l-45 13.5c-5.16016 1.54004 -8.76953 6.78027 -8.76953 12.7295c0 7.27051 5.2998 13.1904 11.7998 13.1904h28.1104c4.55957 0 8.94922 -1.29004 12.8193 -3.71973
-c3.24023 -2.03027 7.36035 -1.91016 10.1299 0.729492l11.75 11.21c3.53027 3.37012 3.33008 9.20996 -0.569336 12.1406c-9.10059 6.83984 -20.0801 10.7695 -31.3701 11.3496v16.29c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-16.1201
-c-23.6201 -0.629883 -42.6699 -20.5498 -42.6699 -45.0703c0 -19.9697 12.9893 -37.8096 31.5801 -43.3896l45 -13.5c5.15918 -1.54004 8.76953 -6.78027 8.76953 -12.7295c0 -7.27051 -5.2998 -13.1904 -11.7998 -13.1904h-28.1104
-c-4.55957 0 -8.9502 1.2998 -12.8193 3.71973c-3.24023 2.03027 -7.36035 1.91016 -10.1309 -0.729492l-11.75 -11.21c-3.5293 -3.37012 -3.3291 -9.20996 0.570312 -12.1406c9.10059 -6.83008 20.0801 -10.7695 31.3701 -11.3496v-16.29c0 -4.41992 3.58008 -8 8 -8h16
-c4.41992 0 8 3.58008 8 8v16.1201z" />
-    <glyph glyph-name="gopuram" unicode="&#xf664;" 
-d="M496 96c8.7998 0 16 -7.2002 16 -16v-128c0 -8.7998 -7.2002 -16 -16 -16h-80v160h-32v128h-32v96h-32v-96h32v-128h32v-160h-80v80c0 8.7998 -7.2002 16 -16 16h-64c-8.7998 0 -16 -7.2002 -16 -16v-80h-80v160h32v128h32v96h-32v-96h-32v-128h-32v-160h-80
-c-8.7998 0 -16 7.2002 -16 16v128c0 8.7998 7.2002 16 16 16h16v112c0 8.7998 7.2002 16 16 16h16v80c0 8.7998 7.2002 16 16 16h16v112c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16v-16h64v16c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16v-16h64v16
-c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16v-16h64v16c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16v-112h16c8.7998 0 16 -7.2002 16 -16v-80h16c8.7998 0 16 -7.2002 16 -16v-112h16zM232 272v-48h48v48c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16z
-M288 96v64c0 8.7998 -7.2002 16 -16 16h-32c-8.7998 0 -16 -7.2002 -16 -16v-64h64z" />
-    <glyph glyph-name="hamsa" unicode="&#xf665;" 
-d="M509.34 140.75c1.70117 -3.9043 2.65918 -8.24805 2.65918 -12.7764c0 -8.42383 -3.26562 -16.0908 -8.59863 -21.8037l-102.681 -110.03c-35.6895 -38.2197 -88.4102 -60.1396 -144.72 -60.1396s-109.03 21.9199 -144.71 60.1396l-102.69 110.03
-c-5.33301 5.71289 -8.58398 13.4141 -8.58398 21.8379c0 4.52832 0.943359 8.83789 2.64453 12.7422c5.05957 11.6904 16.5898 19.25 29.3398 19.25h64v208c0 22 18 40 40 40s40 -18 40 -40v-134c0 -5.51953 4.48047 -10 10 -10h20c5.51953 0 10 4.48047 10 10v174
-c0 22 18 40 40 40s40 -18 40 -40v-174c0 -5.51953 4.48047 -10 10 -10h20c5.51953 0 10 4.48047 10 10v134c0 22 18 40 40 40s40 -18 40 -40v-208h64c12.75 0 24.2803 -7.55957 29.3398 -19.25zM256 32c53.0195 0 96 64 96 64s-42.9805 64 -96 64s-96 -64 -96 -64
-s42.9805 -64 96 -64zM256 128c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32z" />
-    <glyph glyph-name="bahai" unicode="&#xf666;" 
-d="M496.25 245.48c17.54 -2.46094 21.6797 -26.2705 6.04004 -34.6602l-98.1602 -52.6602l74.4805 -83.54c11.8594 -13.29 0.00976562 -34.25 -17.3506 -30.4902l-108.569 23.6504l4.10938 -112.55c0.430664 -11.6504 -8.87012 -19.2207 -18.4102 -19.2207
-c-5.15918 0 -10.3896 2.20996 -14.1992 7.18066l-68.1807 88.8994l-68.1797 -88.8994c-3.81055 -4.9707 -9.0498 -7.18066 -14.2002 -7.18066c-9.54004 0 -18.8398 7.57031 -18.4102 19.2207l4.11035 112.55l-108.57 -23.6504
-c-1.39941 -0.30957 -2.75977 -0.450195 -4.06934 -0.450195c-15.0107 0 -24.21 18.6807 -13.29 30.9307l74.4795 83.54l-98.1602 52.6592c-15.6494 8.40039 -11.5098 32.21 6.03027 34.6709l110 15.4297l-41.8203 104.34c-6.66016 16.6396 11.6006 32.1797 26.5898 22.6299
-l94.04 -59.8896l34.0908 107.189c2.70996 8.55078 10.0293 12.8203 17.3496 12.8203s14.6396 -4.26953 17.3496 -12.8203l34.0908 -107.18l94.04 59.8896c14.9893 9.55078 33.2598 -5.98926 26.5898 -22.6299l-41.8203 -104.34zM338.51 136.32l-35.6094 39.9297
-l46.9199 25.1699l-52.5703 7.37988l19.9902 49.8701l-44.9502 -28.6201l-16.29 51.2305l-16.3096 -51.2305l-44.9502 28.6201l19.9902 -49.8701l-52.5703 -7.37988l46.9199 -25.1699l-35.5996 -39.9297l51.8896 11.2998l-1.95996 -53.79l32.5898 42.4902l32.5898 -42.4902
-l-1.96973 53.79z" />
-    <glyph glyph-name="jedi" unicode="&#xf669;" horiz-adv-x="576" 
-d="M535.953 96c-42.6406 -94.1719 -137.641 -160 -247.984 -160c-4.26562 0 -8.54688 0.0986328 -12.8447 0.296875c-103.969 4.76562 -193.859 69.4688 -235.109 159.703h39.9219l-58.6094 58.5938c-2.65332 12.8242 -4.38672 25.9951 -5.10938 39.4219
-c-0.133789 3.5166 -0.202148 7.05078 -0.202148 10.5996c0 6.65527 0.234375 12.8477 0.702148 19.3848h47.2188l-41.3906 41.375c14.7842 66.6123 53.959 124.015 107.969 162.078c2.61426 1.87109 5.82812 2.98535 9.28125 3
-c5.62793 -0.03125 10.5791 -2.89355 13.5 -7.25c1.76367 -2.57422 2.7959 -5.68848 2.7959 -9.04199c0 -2.13086 -0.414062 -4.19141 -1.1709 -6.05176c-6.31445 -15.834 -9.84375 -33.1904 -9.84375 -51.2656c0 -45.1094 21.0469 -86.5781 57.7188 -113.734
-c4.07324 -2.96484 6.72266 -7.76855 6.72266 -13.1865c0 -4.86133 -2.13965 -9.2168 -5.51953 -12.2041c-26.5469 -23.9844 -41.1719 -56.5 -41.1719 -91.5781c0 -60.0312 42.9531 -110.281 99.8906 -121.922l2.5 65.2656l-27.1562 -18.4844
-c-1.29688 -0.832031 -2.83887 -1.31445 -4.49219 -1.31445c-2.10352 0 -4.04004 0.777344 -5.50781 2.06445c-1.55078 1.46387 -2.51953 3.53809 -2.51953 5.83691c0 1.49414 0.416992 2.90234 1.12891 4.10059l20.125 33.7656l-42.0625 8.73438
-c-3.64062 0.744141 -6.38379 3.96777 -6.38379 7.82812s2.74316 7.08398 6.38379 7.82812l42.0625 8.71875l-20.1094 33.7344c-0.724609 1.20312 -1.1416 2.61133 -1.1416 4.11719c0 4.41016 3.58105 7.99121 7.99121 7.99121c1.67188 0 3.22656 -0.510742 4.50977 -1.38965
-l30.3906 -20.6562l11.5166 287.969c0.15918 4.25879 3.66797 7.66699 7.96484 7.66699c0.0117188 0 0.0234375 0.00488281 0.0351562 0.00488281h0.046875c4.29004 -0.0332031 7.78418 -3.44629 7.95312 -7.70312l11.5312 -287.922l30.3906 20.6719
-c1.28223 0.855469 2.82227 1.35449 4.47852 1.35449c2.12793 0 4.07715 -0.820312 5.52148 -2.16699c1.54785 -1.45898 2.51465 -3.52832 2.51465 -5.82129c0 -1.48828 -0.415039 -2.89062 -1.12402 -4.08496l-20.1406 -33.7656l42.0781 -8.73438
-c3.63379 -0.750977 6.36914 -3.97266 6.36914 -7.82812s-2.73535 -7.07715 -6.36914 -7.82812l-42.0781 -8.71875l20.1094 -33.7344c0.730469 -1.20508 1.15039 -2.61719 1.15039 -4.12793c0 -2.27637 -0.947266 -4.33984 -2.47852 -5.79395
-c-1.46484 -1.32227 -3.4043 -2.12793 -5.53125 -2.12793c-1.6543 0 -3.20801 0.492188 -4.5 1.33105l-27.1719 18.4688l2.5 -65.3438c48.4844 9.40625 87.5781 48.1562 97.3125 96.5c1.68066 8.11816 2.56445 16.5254 2.56445 25.1387
-c0 36.5547 -15.8574 69.3145 -41.127 91.9395c-3.38867 2.98926 -5.52734 7.3623 -5.52734 12.2314c0 5.42578 2.64844 10.2256 6.73047 13.1904c36.6562 27.1719 57.6875 68.6094 57.6875 113.734v0.0859375c0 18.0664 -3.53613 35.4062 -9.85938 51.2266
-c-0.763672 1.86523 -1.18555 3.90625 -1.18555 6.0459c0 3.34668 1.0332 6.47949 2.79492 9.04785c2.9248 4.35059 7.875 7.20605 13.5 7.23438c3.44043 -0.0136719 6.64355 -1.12305 9.25 -2.98438c53.9287 -38.2227 93.0518 -95.6611 107.906 -162.281l-41.25 -41.2344
-h46.9531c0.359375 -5.76562 1.04688 -11.4531 1.04688 -17.2656c-0.0332031 -17.8086 -1.7959 -35.0137 -5.125 -51.8594l-58.8906 -58.875h39.9688z" />
-    <glyph glyph-name="journal-whills" unicode="&#xf66a;" horiz-adv-x="448" 
-d="M438.406 70.4062c-3.20312 -12.8125 -3.20312 -57.6094 0 -73.6094c6.39062 -6.39062 9.58887 -12.792 9.59375 -19.2031v-16c0 -16 -12.7969 -25.5938 -25.5938 -25.5938h-326.406c-54.4062 0 -96 41.5938 -96 96v320c0 54.4062 41.5938 96 96 96h326.406
-c16 0 25.5938 -9.59375 25.5938 -25.5938v-332.812c0 -9.59375 -3.19824 -15.9893 -9.59375 -19.1875zM380.797 64h-284.797c-16 0 -32 -12.7969 -32 -32s12.7969 -32 32 -32h284.797v64zM128.016 271.984c0 -0.515625 0.140625 -0.984375 0.140625 -1.5l37.1094 -32.4688
-c1.67383 -1.4668 2.73047 -3.62012 2.73047 -6.01758c0 -4.41309 -3.58398 -7.99414 -7.99609 -7.99805h-0.015625c-1.97363 0.0996094 -3.79785 0.828125 -5.25 1.98438l-23.5938 20.6406c11.5469 -49.5781 55.7656 -86.625 108.859 -86.625
-s97.3125 37.0469 108.875 86.625l-23.5938 -20.6406c-1.40918 -1.22461 -3.25391 -1.96875 -5.26562 -1.96875h-0.015625c-2.34766 0.129883 -4.46777 1.14551 -6.01562 2.71875c-1.1543 1.45996 -1.88184 3.28809 -1.98438 5.26562
-c0.128906 2.35059 1.15137 4.47266 2.73438 6.01562l37.1094 32.4688c0.015625 0.53125 0.15625 1 0.15625 1.51562c0 11.0469 -2.09375 21.5156 -5.0625 31.5938l-21.2656 -21.25c-1.44922 -1.4502 -3.45117 -2.34863 -5.66211 -2.34863
-c-4.41797 0 -8.00488 3.58691 -8.00488 8.00488c0 2.20605 0.892578 4.20801 2.33887 5.65625l26.4219 26.4062c-10.0342 20.8945 -26.1904 38.0244 -46.3594 49.2656c6.05371 -9.67676 9.55469 -21.1123 9.55469 -33.3584c0 -19.916 -9.17383 -37.7295 -23.6172 -49.2822
-c9.69336 -10.0459 15.6592 -23.7119 15.6592 -38.7598c0 -26.875 -19.0703 -49.3535 -44.3779 -54.6621l-1.42188 34.2812l12.6719 -8.625c0.635742 -0.432617 1.40234 -0.685547 2.22852 -0.685547c0.00585938 0 0.015625 -0.00195312 0.0214844 -0.00195312h0.0263672
-c2.19727 0 3.98047 1.7832 3.98047 3.98047c0 0.748047 -0.209961 1.45215 -0.569336 2.05078l-8.53125 14.3125l17.9062 3.71875c1.81738 0.379883 3.18457 1.99219 3.18457 3.92188s-1.36719 3.54199 -3.18457 3.92188l-17.9062 3.71875l8.53125 14.3125
-c0.359375 0.598633 0.566406 1.29883 0.566406 2.04688c0 2.19629 -1.7832 3.98047 -3.98047 3.98047c-0.00878906 0 -0.0146484 0.00390625 -0.0234375 0.00390625c-0.817383 -0.0322266 -1.58984 -0.275391 -2.25 -0.671875l-14.1875 -9.65625l-4.6875 112.297
-c-0.09375 2.12695 -1.84961 3.8252 -4 3.8252s-3.90625 -1.69824 -4 -3.8252l-4.625 -110.812l-12 8.15625c-0.639648 0.43457 -1.41211 0.688477 -2.24316 0.688477c-2.20996 0 -4.00293 -1.79395 -4.00293 -4.00391c0 -0.745117 0.203125 -1.44629 0.558594 -2.04395
-l8.53125 -14.3125l-17.9062 -3.71875c-1.81738 -0.375977 -3.18457 -1.98633 -3.18457 -3.91406s1.36719 -3.53809 3.18457 -3.91406l17.9062 -3.73438l-8.53125 -14.2969c-0.330078 -0.611328 -0.532227 -1.31152 -0.5625 -2.04688
-c0.0615234 -1.12109 0.525391 -2.14062 1.25 -2.90625c0.717773 -0.677734 1.68652 -1.09277 2.75 -1.09375c0.830078 0.00390625 1.60645 0.257812 2.25 0.6875l10.3594 7.04688l-1.35938 -32.7188c-25.3086 5.31836 -44.335 27.79 -44.335 54.6709
-c0 15.0518 5.92285 28.7324 15.6162 38.7822c-14.4434 11.5508 -23.7012 29.3193 -23.7012 49.2334c0 12.2559 3.59082 23.7412 9.6543 33.4229c-20.1709 -11.2451 -36.3311 -28.374 -46.375 -49.2656l26.4219 -26.4219c1.43945 -1.44727 2.33008 -3.44043 2.33008 -5.64062
-c0 -4.41504 -3.58496 -8 -7.99902 -8c-2.2002 0 -4.19629 0.888672 -5.64355 2.32812l-21.2656 21.2656c-2.98438 -10.0938 -5.07812 -20.5625 -5.0625 -31.625z" />
-    <glyph glyph-name="kaaba" unicode="&#xf66b;" horiz-adv-x="576" 
-d="M554.12 364.49c13.0703 -4.36035 21.8799 -16.5898 21.8799 -30.3604v-49.0098l-265 79.5098c-15.0596 4.5 -30.9502 4.5 -45.9805 0l-265.02 -79.5098v49.0098c0.000976562 14.1279 9.16992 26.1211 21.8799 30.3604l235.771 78.5801
-c9.53711 3.17969 19.7705 4.90234 30.3711 4.90234c10.5996 0 20.8008 -1.72266 30.3389 -4.90234zM274.22 333.97c9 2.7207 18.5498 2.7207 27.5898 0l274.2 -82.2598v-228.39c0 -15 -10.4199 -27.9902 -25.0596 -31.2402l-242.12 -53.7998
-c-6.72461 -1.49512 -13.5928 -2.28418 -20.7646 -2.28418s-14.1611 0.789062 -20.8857 2.28418l-242.12 53.7998c-14.6396 3.25977 -25.0596 16.2402 -25.0596 31.2402v228.38zM128 217.89v16.5801c0 5.28027 -5.01953 9.11035 -10.1104 7.7207l-80 -21.8203
-c-3.47949 -0.950195 -5.88965 -4.11035 -5.88965 -7.71973v-16.5801c0 -5.27051 5.01953 -9.10059 10.1104 -7.7207l80 21.8203c3.47949 0.950195 5.88965 4.11035 5.88965 7.71973zM272 257.17v16.5801c0 5.28027 -5.01953 9.11035 -10.1104 7.71973l-96 -26.1797
-c-3.47949 -0.950195 -5.88965 -4.11035 -5.88965 -7.71973v-16.5801c0 -5.28027 5.01953 -9.11035 10.1104 -7.7207l96 26.1807c3.47949 0.950195 5.88965 4.10938 5.88965 7.71973zM448 234.47v-16.5801c0 -0.00195312 0.00195312 -0.00195312 0.00195312 -0.00390625
-c0 -3.68359 2.49609 -6.78906 5.8877 -7.71582l80 -21.8203c5.09082 -1.38965 10.1104 2.44043 10.1104 7.7207v16.5801c0 3.60938 -2.41016 6.76953 -5.88965 7.71973l-80 21.8203c-5.09082 1.38965 -10.1104 -2.44043 -10.1104 -7.7207zM304 273.74v-16.5801
-c0 -0.00195312 0.00195312 -0.00292969 0.00195312 -0.00488281c0 -3.68359 2.49609 -6.78906 5.8877 -7.71484l96 -26.1807c5.09082 -1.38965 10.1104 2.44043 10.1104 7.7207v16.5791c0 3.61035 -2.41016 6.77051 -5.88965 7.7207l-96 26.1797
-c-5.09082 1.38965 -10.1104 -2.44043 -10.1104 -7.71973z" />
-    <glyph glyph-name="khanda" unicode="&#xf66d;" 
-d="M415.81 382c73.71 -40.2402 111.78 -123.85 90.1602 -207.51c-7.25 -28.0898 -22.3799 -53.5703 -41.25 -75.5898l-52.5098 -61.3105c-4.87012 -5.67969 -13.04 -7.22949 -19.6504 -3.70996l-79.3496 42.2305l-29.21 -20.3408l47.0801 -32.7793
-c1.66992 0.370117 3.22949 1.00977 5.00977 1.00977c13.25 0 23.9902 -10.7402 23.9902 -24c0 -13.25 -10.7402 -24 -23.9902 -24c-12.0898 0 -21.6797 9.11035 -23.3301 20.7598l-40.9102 28.4805v-30.1504c9.38086 -5.58008 15.9902 -15.3896 15.9902 -27.0996
-c0 -17.6699 -14.3203 -32 -31.9795 -32c-17.6602 0 -31.9805 14.3301 -31.9805 32c0 11.7197 6.60059 21.5293 15.9902 27.0996v29.9502l-40.6299 -28.2803c-1.64062 -11.6494 -11.2305 -20.7598 -23.3301 -20.7598c-13.25 0 -23.9902 10.75 -23.9902 24
-c0 13.2598 10.7402 24 23.9902 24c1.78027 0 3.33984 -0.639648 5.00977 -1.00977l47.0801 32.7793l-29.21 20.3301l-79.3496 -42.2295c-6.61035 -3.52051 -14.7803 -1.96973 -19.6504 3.71973l-55.9697 65.3604c-12.5703 14.6797 -23.3906 31.0693 -30.46 49.0596
-c-35.6602 90.6904 2.95996 186.391 81.4893 229.24c6.34082 3.5 15.0205 2.63965 20.0205 -2.7002c4.99023 -5.30957 6.45996 -12.9199 2.58984 -19.0801c-16.4902 -26.1602 -25.2002 -56.3896 -25.2002 -87.4697c0.180664 -53.1904 26.7598 -102.62 71.0303 -132.18
-l76.5898 -53.3301v19.8994l-44.0498 36.0908c-3.91016 4.20996 -5 10.0996 -2.81055 15.2793l7.85059 17.2402c-33.8506 19.2598 -56.9404 55.2402 -56.9404 96.9902c0 40.79 22.0205 76.1396 54.5898 95.7197l-5.21973 11.4404
-c-2.33008 5.5293 -0.929688 11.8301 3.57031 16.04l58.9902 52.8096l58.9893 -52.8203c4.5 -4.20996 5.91016 -10.5098 3.57031 -16.04l-5.21973 -11.4395c32.5693 -19.5801 54.5898 -54.9199 54.5898 -95.71c0 -41.7402 -23.0996 -77.7305 -56.9404 -96.9902
-l7.85059 -17.2402c2.18945 -5.18945 1.10938 -11.0801 -2.81055 -15.2793l-44.0498 -36.0908v-20.0996l76.6299 53.3496c44.5 29.7207 71.0801 79.1602 71.2705 132.41c0 31.0205 -8.70996 61.25 -25.2002 87.4102c-1.55762 2.46582 -2.46973 5.40723 -2.46973 8.53613
-c0 4.25293 1.66602 8.12012 4.37988 10.9844c4.99023 5.34961 12.9902 6.51953 19.3594 3.01953zM319.82 272c0 21.3203 -10.5801 40.1201 -26.6504 51.7695l-7.83008 -17.1797c-8.75 -24.5195 -8.75 -51.04 0 -75.5596l5.65039 -12.4102
-c17.3398 11.46 28.8301 31.0801 28.8301 53.3799zM191.89 272c0 -22.2998 11.5 -41.9297 28.8408 -53.3896l5.64941 12.4092c8.75 24.5303 8.75 51.04 0 75.5605l-7.83008 17.1797c-16.0801 -11.6396 -26.6602 -30.4395 -26.6602 -51.7598z" />
-    <glyph glyph-name="landmark" unicode="&#xf66f;" 
-d="M501.62 355.89c6.24023 -2.33984 10.3799 -8.30957 10.3799 -14.9795v-36.9102c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v36.9102c0.000976562 6.85547 4.31445 12.7041 10.3799 14.9795l234.39 90.0703
-c3.49219 1.31152 7.30176 2.02832 11.25 2.02832c3.94727 0 7.72852 -0.716797 11.2207 -2.02832zM64 256h64v-160h96v160h64v-160h96v160h64v-160h16c8.83984 0 16 -7.16016 16 -16v-48h-448v48c0 8.83984 7.16016 16 16 16h16v160zM496 0c8.83984 0 16 -7.16016 16 -16
-v-32c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h480z" />
-    <glyph glyph-name="mail-bulk" unicode="&#xf674;" horiz-adv-x="576" 
-d="M160 0c25.5996 0 51.2002 22.4004 64 32c64 44.7998 83.2002 60.7998 96 70.4004v-134.4c0 -17.6699 -14.3301 -32 -32 -32h-256c-17.6699 0 -32 14.3301 -32 32v134.4c12.7998 -9.60059 32 -25.6006 96 -70.4004c12.7998 -9.59961 38.4004 -32 64 -32zM288 192
-c17.6699 0 32 -14.3301 32 -32v-19.2002c-25.5996 -19.2002 -22.4004 -19.2002 -115.2 -86.3994c-9.59961 -3.2002 -28.7998 -22.4004 -44.7998 -22.4004s-35.2002 19.2002 -44.7998 25.5996c-92.7998 67.2002 -89.6006 67.2002 -115.2 86.4004v16
-c0 17.6699 14.3301 32 32 32h256zM544 288c17.6699 0 32 -14.3301 32 -32v-192c0 -17.6699 -14.3301 -32 -32 -32h-192v134.4l-0.290039 -0.220703c-3.12012 32.4004 -30.5 57.8203 -63.71 57.8203h-96v32c0 17.6699 14.3301 32 32 32h320zM512 160v64h-64v-64h64zM160 256
-v-32h-96v192c0 17.6699 14.3301 32 32 32h320c17.6699 0 32 -14.3301 32 -32v-96h-224c-35.29 0 -64 -28.71 -64 -64z" />
-    <glyph glyph-name="menorah" unicode="&#xf676;" horiz-adv-x="640" 
-d="M144 320c8.83984 0 16 -7.16016 16 -16v-144h-64v144c0 8.83984 7.16016 16 16 16h32zM240 320c8.83984 0 16 -7.16016 16 -16v-144h-64v144c0 8.83984 7.16016 16 16 16h32zM432 320c8.83984 0 16 -7.16016 16 -16v-144h-64v144c0 8.83984 7.16016 16 16 16h32zM528 320
-c8.83984 0 16 -7.16016 16 -16v-144h-64v144c0 8.83984 7.16016 16 16 16h32zM608 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32zM512 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32
-zM416 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32zM320 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32zM224 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64
-s-14.3301 -32 -32 -32zM128 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32zM32 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32zM576 160v144c0 8.83984 7.16016 16 16 16h32
-c8.83984 0 16 -7.16016 16 -16v-144c0 -53.0195 -42.9805 -96 -96 -96h-192v-64h176c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-416c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h176v64h-192c-53.0195 0 -96 42.9805 -96 96
-v144c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-144c0 -17.6699 14.3301 -32 32 -32h192v176c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-176h192c17.6699 0 32 14.3301 32 32z" />
-    <glyph glyph-name="mosque" unicode="&#xf678;" horiz-adv-x="640" 
-d="M0 -32v320h128v-320c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32zM579.16 160h-358.32c-17.8594 17.3896 -28.8398 37.3398 -28.8398 58.9102c0 52.8594 41.79 93.79 87.9199 122.899c41.9502 26.46 80.6299 57.7705 111.96 96.2207
-l8.12012 9.96973l8.12012 -9.96973c31.3301 -38.4502 70.0195 -69.75 111.96 -96.2207c46.1299 -29.1094 87.9199 -70.04 87.9199 -122.899c0 -21.5703 -10.9805 -41.5205 -28.8398 -58.9102zM608 128c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32
-h-32v64c0 17.6699 -14.3301 32 -32 32s-32 -14.3301 -32 -32v-64h-64v72c0 48 -48 72 -48 72s-48 -24 -48 -72v-72h-64v64c0 17.6699 -14.3301 32 -32 32s-32 -14.3301 -32 -32v-64h-32c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h416zM64 448
-c0 0 64 -32 64 -96v-32h-128v32c0 64 64 96 64 96z" />
-    <glyph glyph-name="om" unicode="&#xf679;" 
-d="M360.6 387.06l-21.5801 21.5605c-1.89062 1.88867 -3.06055 4.50098 -3.06055 7.38086c0 2.88086 1.16992 5.49023 3.06055 7.37891l21.5703 21.5605c4.08008 4.06934 10.6797 4.06934 14.7598 0l21.5801 -21.5605c1.8916 -1.88867 3.06152 -4.50098 3.06152 -7.38086
-c0 -2.88086 -1.16992 -5.49023 -3.06152 -7.37891l-21.5693 -21.5605c-1.88867 -1.89062 -4.50098 -3.06055 -7.38184 -3.06055s-5.49023 1.16992 -7.37891 3.06055zM412.11 256c55.0898 0 99.8896 -44.7998 99.8896 -99.8799v-100.12c0 -48.5303 -47.4805 -88 -96.0195 -88
-c-96.0205 0 -96.0205 64 -96.0205 64v37.8701c0 7.55957 9.42969 10.8896 14.2002 5.01953c15.1494 -18.6494 42.4199 -42.8896 81.8203 -42.8896c13.2393 0 32.0098 10.7695 32.0098 24v100.12c0 19.79 -16.1006 35.8799 -35.8799 35.8799
-c-9.60059 0 -18.6006 -3.73047 -25.3799 -10.5l-24.25 -24.25c-18.8701 -18.8604 -43.9502 -29.25 -70.6406 -29.25h-21.6895c11.0293 -18.9004 17.8096 -40.5801 17.8096 -64c0 -70.5801 -57.4297 -128 -128.02 -128c-118.811 0 -160.03 96 -159.94 150.81
-c0.0195312 8.80078 10.2598 12.7705 14.79 5.2207c22.7998 -38.0107 49.1299 -92.0303 145.15 -92.0303c35.2998 0 64.0098 28.7002 64.0098 64s-28.71 64 -64.0098 64h-33.0303c-5.57031 0.450195 -10.6406 3.49023 -13.1699 8.5498l-16.0898 32.1699
-c-5.35059 10.7002 2.42969 23.2803 14.3896 23.2803h31.9004c26.4697 0 48.0098 21.5303 48.0098 48s-21.54 48 -48.0098 48c-11.25 0 -21.8203 -3.80957 -30.2705 -10.71c-5.54004 -4.53027 -13.4795 -4.50977 -19.2002 -0.209961l-26.1494 19.6299
-c-8.08984 6.08008 -8.48047 17.9697 -1.12012 24.9297c25.1094 23.7402 59.8594 34.71 96.0098 28.7803c43.1602 -7.08008 79.4199 -40.6396 89.5205 -83.1895c6.43945 -27.1201 2.80957 -53.1309 -7.73047 -75.2305h46.8398c9.60059 0 18.6006 3.73047 25.3799 10.5
-l24.25 24.25c18.8701 18.8604 43.9502 29.25 70.6406 29.25zM454.29 380.73c10.5596 7.95996 25.7002 0.489258 25.7002 -12.7305v-35.5195c0 -2.36035 -0.509766 -4.71094 -1.53027 -6.83008c-2.96973 -6.30078 -21.8301 -37.6602 -101.75 -37.6602
-c-78.4297 0 -117.19 69.3896 -118.8 72.3398c-3.61035 6.62988 -2.08008 14.8799 3.66016 19.7998c5.69922 4.92969 14.1201 5.16992 20.1396 0.549805c3.53027 -2.69922 87.0303 -65.0693 172.58 0.0507812z" />
-    <glyph glyph-name="pastafarianism" unicode="&#xf67b;" horiz-adv-x="640" 
-d="M624.54 100.33c12.4004 -4.71973 18.5996 -18.5801 13.8896 -30.9805c-4.69922 -12.4092 -18.5801 -18.6299 -30.9697 -13.8799c-8.11035 3.08984 -14.3398 0.19043 -31.3896 -11.3594c-13.5508 -9.15039 -30.8301 -20.8408 -52.4199 -20.8408
-c-7.16992 0 -14.8301 1.28027 -22.9707 4.39062c-32.6602 12.4395 -39.9893 41.3301 -45.3301 62.4395c-2.20996 8.7207 -3.98926 14.4902 -5.94922 18.8701c-16.6201 -13.5996 -36.9307 -25.8701 -61.6201 -34.1602c10.0098 -37 32.2793 -90.8096 60.2197 -90.8096
-c13.25 0 24 -10.75 24 -24s-10.75 -24 -24 -24c-66.7402 0 -97.0498 88.6299 -107.42 129.14c-6.69043 -0.599609 -13.4199 -1.13965 -20.5801 -1.13965s-13.8896 0.540039 -20.5801 1.13965c-10.3701 -40.5098 -40.6797 -129.14 -107.42 -129.14c-13.25 0 -24 10.75 -24 24
-s10.75 24 24 24c28.0801 0 50.2998 53.7998 60.2598 90.7998c-24.6895 8.29004 -45.0195 20.5605 -61.6396 34.1699c-1.95996 -4.37988 -3.74023 -10.1494 -5.9502 -18.8701c-5.34961 -21.1094 -12.6699 -50 -45.3301 -62.4395
-c-8.13965 -3.11035 -15.7998 -4.39062 -22.9697 -4.39062c-21.5898 -0.0195312 -38.8701 11.6807 -52.4199 20.8408c-17.0498 11.5498 -23.2305 14.4492 -31.3906 11.3594c-12.3594 -4.72949 -26.25 1.4707 -30.9697 13.8799
-c-4.71973 12.3906 1.48047 26.25 13.8701 30.9707c32.6504 12.4697 57.3398 -4.25 75.3701 -16.4502c17.0801 -11.5303 23.2998 -14.4199 31.4102 -11.3604c8.12012 3.10059 10.8301 9.37988 15.8896 29.3799c3.33008 13.1504 7.44043 29.3203 17.9502 42.6504
-c-2.24023 2.91016 -4.42969 5.78027 -6.37988 8.57031c-10.1699 -9.56055 -23.4102 -17.1104 -41.7002 -17.1104c-33.9502 0 -50.8701 25.7803 -62.0596 42.8301c-10.6006 16.1396 -15 21.1699 -21.9404 21.1699c-13.25 0 -24 10.75 -24 24s10.75 24 24 24
-c33.96 0 50.8799 -25.7803 62.0596 -42.8301c10.6006 -16.1396 15 -21.1699 21.9404 -21.1699c17.1504 0 37.6797 61.5596 97.2695 101.9l-17.25 34.5c-33.46 2.09961 -60.0195 29.6191 -60.0195 63.5996c0 35.3496 28.6504 64 64 64s64 -28.6504 64 -64
-c0 -13.0195 -3.94043 -25.0996 -10.5996 -35.21l18.1494 -36.2998c16.9697 4.59961 35.6006 7.50977 56.46 7.50977c20.8604 0 39.4805 -2.91016 56.46 -7.50977l18.1504 36.2998c-6.67969 10.1104 -10.6201 22.1904 -10.6201 35.21c0 35.3496 28.6504 64 64 64
-s64 -28.6504 64 -64c0 -33.9805 -26.5703 -61.5 -60.0098 -63.5898l-17.25 -34.5c59.7793 -40.4805 79.9502 -101.91 97.2598 -101.91c6.94043 0 11.3398 5.03027 21.9404 21.1699c11.1895 17.0498 28.1094 42.8301 62.0596 42.8301c13.25 0 24 -10.75 24 -24
-s-10.75 -24 -24 -24c-6.94043 0 -11.3496 -5.03027 -21.9404 -21.1699c-11.1895 -17.0498 -28.1094 -42.8301 -62.0596 -42.8301c-18.29 0 -31.5303 7.5498 -41.7002 17.1201c-1.9502 -2.78027 -4.13965 -5.66016 -6.37988 -8.57031
-c10.5098 -13.3301 14.6201 -29.5 17.9502 -42.6494c5.05957 -20 7.76953 -26.29 15.8896 -29.3809c8.16016 -3.05957 14.3506 -0.169922 31.4102 11.3604c18.0098 12.2002 42.6699 28.9697 75.3701 16.4502zM448 400c-8.82031 0 -16 -7.17969 -16 -16s7.17969 -16 16 -16
-s16 7.17969 16 16s-7.17969 16 -16 16zM192 400c-8.82031 0 -16 -7.17969 -16 -16s7.17969 -16 16 -16s16 7.17969 16 16s-7.17969 16 -16 16z" />
-    <glyph glyph-name="peace" unicode="&#xf67c;" horiz-adv-x="496" 
-d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM432 192c0 90.5303 -65.7695 165.82 -152 181.03v-165.66l129.43 -103.54c14.3701 26.2002 22.5703 56.2402 22.5703 88.1699zM216 10.9697v114.46
-l-89.29 -71.4395c24.7998 -21.8203 55.4297 -37.0498 89.29 -43.0205zM280 125.43v-114.449c33.8604 5.96973 64.4902 21.1992 89.29 43.0195zM216 373.03c-86.2305 -15.21 -152 -90.5 -152 -181.03c0 -31.9297 8.2002 -61.9697 22.5703 -88.1699l129.43 103.54v165.66z" />
-    <glyph glyph-name="place-of-worship" unicode="&#xf67f;" horiz-adv-x="640" 
-d="M620.61 81.4502c11.4111 -4.89258 19.3896 -16.2168 19.3896 -29.4102v-100.04c0 -8.83984 -7.16016 -16 -16 -16h-112v192zM0 52.04c0 13.1934 7.97852 24.5176 19.3896 29.4102l108.61 46.5498v-192h-112c-8.83984 0 -16 7.16016 -16 16v100.04zM464.46 201.32
-c9.63965 -5.78027 15.54 -16.2002 15.54 -27.4404v-237.88h-96v96c0 35.3496 -28.6602 64 -64 64s-64 -28.6504 -64 -64v-96h-96v237.88c0 11.6572 6.21387 21.8467 15.54 27.4404l48.46 29.0801v114.97c0 8.49023 3.37988 16.6299 9.37988 22.6299l75.3105 75.3096
-c6.23926 6.25 16.3691 6.25 22.6191 0l75.3105 -75.3096c6.00977 -6.00977 9.37988 -14.1396 9.37988 -22.6299v-114.97z" />
-    <glyph glyph-name="poll" unicode="&#xf681;" horiz-adv-x="448" 
-d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM160 80v128c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-128c0 -8.83984 7.16016 -16 16 -16h32
-c8.83984 0 16 7.16016 16 16zM256 80v224c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-224c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16zM352 80v64c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-64
-c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16z" />
-    <glyph glyph-name="poll-h" unicode="&#xf682;" horiz-adv-x="448" 
-d="M448 16c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48v-352zM112 256h128c8.83984 0 16 7.16016 16 16v32c0 8.83984 -7.16016 16 -16 16h-128c-8.83984 0 -16 -7.16016 -16 -16v-32
-c0 -8.83984 7.16016 -16 16 -16zM112 160h224c8.83984 0 16 7.16016 16 16v32c0 8.83984 -7.16016 16 -16 16h-224c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -8.83984 7.16016 -16 16 -16zM112 64h64c8.83984 0 16 7.16016 16 16v32c0 8.83984 -7.16016 16 -16 16h-64
-c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -8.83984 7.16016 -16 16 -16z" />
-    <glyph glyph-name="pray" unicode="&#xf683;" horiz-adv-x="384" 
-d="M256 320c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64s64 -28.6504 64 -64s-28.6504 -64 -64 -64zM225.37 150.25l-24.1504 28.7598l-34.7998 -64.8701l109.86 -109.859c25.4893 -25.4902 5.7998 -68.2803 -28.2803 -68.2803h-208c-22.0898 0 -40 17.9102 -40 40
-s17.9102 40 40 40h91.5596l-44.8096 34.8896c-42.8799 27.3799 -57.5898 80.1104 -34.1904 123.75l49.3701 92.0303c11.1201 20.6504 32.1807 34.4404 56.3701 36.9199c24.7803 2.58984 48.5605 -6.93945 64 -25.3301l38.9102 -46.3096l57.4404 47
-c17.1191 13.9697 42.3398 11.4902 56.3096 -5.62012c13.9697 -17.0898 11.4697 -42.2998 -5.62012 -56.2803l-88 -72.0195c-16.9697 -13.8701 -41.9102 -11.5 -55.9697 5.21973z" />
-    <glyph glyph-name="praying-hands" unicode="&#xf684;" horiz-adv-x="640" 
-d="M272 256.09c17.5996 0 32 -14.3994 32 -32v-128c0 -51.8896 -34.8398 -98.0801 -84.75 -112.35l-179.19 -46.6201c-2.64941 -0.69043 -5.36914 -1.03027 -8.05957 -1.03027c-23.4805 0 -32 21.1797 -32 32v96
-c0 0.00390625 -0.00488281 -0.000976562 -0.00488281 0.00292969c0 14.1221 9.1748 26.1182 21.8848 30.3477l90.1201 30.04v80.2295c0 18.9805 5.55957 37.3896 16.1201 53.2305l117.26 175.899c0.169922 0.270508 0.589844 0.25 0.790039 0.480469
-c9.58008 13.5098 27.8496 17.8799 42.2998 9.20996c15.1602 -9.10059 20.0605 -28.75 10.9707 -43.9102l-77.75 -129.59c-8.9707 -14.9199 -13.6904 -32 -13.6904 -49.3906v-76.5498c0 -8.83984 7.16016 -16 16 -16s16 7.16016 16 16v80c0 17.6006 14.4004 32 32 32z
-M618.12 94.3604c13.0703 -4.36035 21.8799 -16.5801 21.8799 -30.3506v-96c0 -10.8193 -8.51953 -32 -32 -32c-2.67969 0 -5.40039 0.339844 -8.05957 1.03027l-179.19 46.6201c-49.9102 14.2598 -84.75 60.4502 -84.75 112.34v128c0 17.5996 14.4004 32 32 32
-s32 -14.4004 32 -32v-80c0 -8.83984 7.16016 -16 16 -16s16 7.16016 16 16v76.5498c0 17.3906 -4.71973 34.4697 -13.6904 49.3906l-77.75 129.59c-9.08984 15.1602 -4.18945 34.8193 10.9707 43.9102c14.4502 8.66992 32.7197 4.2998 42.2998 -9.20996
-c0.200195 -0.240234 0.610352 -0.210938 0.790039 -0.480469l117.26 -175.89c10.5605 -15.8408 16.1201 -34.25 16.1201 -53.2305v-80.2295z" />
-    <glyph glyph-name="quran" unicode="&#xf687;" horiz-adv-x="448" 
-d="M448 89.5996c0 -9.59961 -3.2002 -16 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320
-c0 54.4004 41.5996 96 96 96h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM301.08 302.18l-11.1904 -22.6494l-24.9893 -3.62988c-2.68066 -0.390625 -3.75 -3.66992 -1.81055 -5.56055l18.0898 -17.6299l-4.26953 -24.8896
-c-0.360352 -2.11035 1.30957 -3.82031 3.20996 -3.82031c0.5 0 1.01953 0.120117 1.51953 0.379883l22.3604 11.75l22.3604 -11.75c0.5 -0.259766 1.01953 -0.379883 1.51953 -0.379883c1.90039 0 3.57031 1.70996 3.20996 3.82031l-4.26953 24.8896l18.0898 17.6299
-c1.92969 1.89062 0.859375 5.16992 -1.81055 5.56055l-25 3.62988l-11.1797 22.6494c-0.599609 1.20996 -1.75977 1.82031 -2.91992 1.82031s-2.32031 -0.610352 -2.91992 -1.82031zM243.19 371.19c-63.5205 0 -115.19 -51.6709 -115.19 -115.19
-c0 -63.5098 51.6699 -115.19 115.18 -115.18c13.6006 0 27.1201 2.46973 40.1904 7.33984c2.67969 0.910156 4.62012 3.43945 4.62012 6.41992c0 3.63965 -2.87012 6.78027 -6.7998 6.78027c-0.650391 0 -3.10059 -0.209961 -4.13086 -0.209961
-c-52.3096 0 -94.8594 42.5596 -94.8594 94.8594c0 52.3105 42.5498 94.8604 94.8594 94.8604c1.04004 0 3.45996 -0.209961 4.13086 -0.209961c0.738281 -0.276367 1.54004 -0.429688 2.375 -0.429688c3.73926 0 6.77441 3.03516 6.77441 6.77441
-c0 3.7373 -3.0332 6.77246 -6.76953 6.77539c-13.1201 4.91992 -26.71 7.41016 -40.3799 7.41016zM380.8 0v64h-284.8c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8z" />
-    <glyph glyph-name="search-dollar" unicode="&#xf688;" 
-d="M505.04 5.33984c9.2998 -9.39941 9.2998 -24.5898 -0.0996094 -33.9902l-28.3008 -28.2998c-9.2998 -9.39941 -24.5 -9.39941 -33.8994 0l-99.71 99.6904c-4.5 4.5 -7 10.5996 -7 17v16.2998c-35.2998 -27.5996 -79.71 -44 -128.011 -44
-c-114.909 0 -208.02 93.0898 -208.02 207.979c0 114.891 93.1201 207.98 208.02 207.98c114.9 0 208.011 -93.0898 208.011 -207.98c0 -48.2998 -16.4004 -92.6895 -44 -127.989h16.2998c6.40039 0 12.5 -2.5 17 -7zM208.02 96.04c79.6504 0 144 64.4502 144 143.979
-c0 79.6406 -64.46 143.98 -144 143.98c-79.6494 0 -144 -64.4502 -144 -143.98c0 -79.6396 64.4609 -143.979 144 -143.979zM235.13 248.58c18.6006 -5.58008 31.5898 -23.4199 31.5898 -43.3896c0 -24.5303 -19.0498 -44.4404 -42.6797 -45.0703v-16.1201
-c0 -4.41992 -3.58008 -8 -8 -8h-16c-4.41992 0 -8 3.58008 -8 8v16.29c-11.29 0.580078 -22.2705 4.51953 -31.3701 11.3496c-3.90039 2.93066 -4.09961 8.77051 -0.570312 12.1406l11.75 11.21c2.77051 2.63965 6.89062 2.75977 10.1309 0.729492
-c3.85938 -2.42969 8.25977 -3.71973 12.8193 -3.71973h28.1006c6.5 0 11.7998 5.91992 11.7998 13.1904c0 5.94922 -3.61035 11.1797 -8.77051 12.7295l-45.0098 13.5c-18.5898 5.58008 -31.5801 23.4199 -31.5801 43.3896c0 24.5205 19.0498 44.4404 42.6797 45.0703
-v16.1201c0 4.41992 3.58008 8 8 8h16c4.4209 0 8 -3.58008 8 -8v-16.29c11.29 -0.580078 22.2705 -4.51953 31.3701 -11.3496c3.90039 -2.93066 4.10059 -8.77051 0.570312 -12.1406l-11.75 -11.21c-2.76953 -2.63965 -6.88965 -2.75977 -10.1299 -0.729492
-c-3.86035 2.42969 -8.25977 3.71973 -12.8203 3.71973h-28.1094c-6.5 0 -11.8008 -5.91992 -11.8008 -13.1904c0 -5.94922 3.61035 -11.1797 8.77051 -12.7295z" />
-    <glyph glyph-name="search-location" unicode="&#xf689;" 
-d="M505.04 5.33984c9.2998 -9.39941 9.2998 -24.5898 -0.0996094 -33.9902l-28.3008 -28.2998c-9.2998 -9.39941 -24.5 -9.39941 -33.8994 0l-99.71 99.6904c-4.5 4.5 -7 10.5996 -7 17v16.2998c-35.2998 -27.5996 -79.71 -44 -128.011 -44
-c-114.909 0 -208.02 93.0898 -208.02 207.979c0 114.891 93.1201 207.98 208.02 207.98c114.9 0 208.011 -93.0898 208.011 -207.98c0 -48.2998 -16.4004 -92.6895 -44 -127.989h16.2998c6.40039 0 12.5 -2.5 17 -7zM208.02 96.04c79.6504 0 144 64.4502 144 143.979
-c0 79.6406 -64.46 143.98 -144 143.98c-79.6494 0 -144 -64.4502 -144 -143.98c0 -79.6396 64.4609 -143.979 144 -143.979zM208.04 336c40.7803 0 73.8398 -33.0498 73.8398 -73.8301c0 -32.9697 -48.2598 -93.0498 -66.75 -114.86
-c-1.69531 -2.02832 -4.23926 -3.32031 -7.08691 -3.32031c-2.84863 0 -5.39746 1.29199 -7.09277 3.32031c-18.4902 21.8105 -66.75 81.9004 -66.75 114.86c0 40.7803 33.0596 73.8301 73.8398 73.8301zM208.04 240c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24
-s-24 -10.7402 -24 -24c0 -13.25 10.7402 -24 24 -24z" />
-    <glyph glyph-name="socks" unicode="&#xf696;" 
-d="M214.66 136.99c-52.7402 -39.5605 -69.0498 -110.021 -39.2002 -165.4l-21.8604 -16.3896c-17.2695 -12.9502 -37.4893 -19.2002 -57.5195 -19.2002c-32.8105 0 -65.6904 16.75 -83.9404 48.3301c-24.6494 42.6396 -10.1895 97.5 29.21 127.06l86.6504 64.6104v176h160
-v-160zM288 416v-32h-160v32c0 17.6699 14.3301 32 32 32h128c2.84961 0 5.40039 -0.919922 8.01953 -1.62012c-4.94922 -9.08008 -8.01953 -19.3301 -8.01953 -30.3799zM480 448c17.6699 0 32 -14.3301 32 -32v-32h-192v32c0 17.6699 14.3301 32 32 32h128zM320 176v176h192
-v-208c0 -41.8877 -20.0566 -79.043 -51.2002 -102.4l-115.2 -86.3994c-17.2695 -12.9502 -37.4893 -19.2002 -57.5195 -19.2002c-32.8105 0 -65.1699 16.75 -83.4199 48.3301c-24.6504 42.6396 -10.1904 97.5 29.21 127.06z" />
-    <glyph glyph-name="square-root-alt" unicode="&#xf698;" horiz-adv-x="576" 
-d="M571.31 196.69c6.25 -6.25 6.25 -16.3809 0 -22.6309l-46.0596 -46.0596l46.0596 -46.0596c6.25 -6.25 6.25 -16.3809 0 -22.6309l-22.6191 -22.6191c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-46.0596 46.0596l-46.0596 -46.0596c-6.25 -6.25 -16.3809 -6.25 -22.6309 0
-l-22.6191 22.6191c-6.25 6.25 -6.25 16.3809 0 22.6309l46.0596 46.0596l-46.0596 46.0596c-6.25 6.25 -6.25 16.3809 0 22.6309l22.6191 22.6191c6.25 6.25 16.3809 6.25 22.6309 0l46.0596 -46.0596l46.0596 46.0596c6.25 6.25 16.3809 6.25 22.6309 0zM552 448
-c13.25 0 24 -10.7402 24 -24v-48c0 -13.25 -10.75 -24 -24 -24h-194.97l-97.8105 -374.52c-9.83984 -32.4805 -37.0098 -41.4805 -54.2793 -41.4805c-18.6406 0 -35.9502 8.5 -48.4404 28.2695l-88.8799 163.73h-43.6201c-13.25 0 -24 10.75 -24 24v48
-c0 13.2598 10.75 24 24 24h81.4697c12.0801 -0.00292969 22.584 -6.67871 28.0303 -16.5703l58.4102 -106.1l84.79 322.8c3.68945 14.0703 16.4102 23.8701 30.9502 23.8701h244.35z" />
-    <glyph glyph-name="star-and-crescent" unicode="&#xf699;" 
-d="M340.47 -18.3604c8.74023 0 15.1299 -6.96973 15.1299 -15.0596c0 -6.62012 -4.31934 -12.2402 -10.2793 -14.2598c-29.04 -10.8301 -59.0898 -16.3203 -89.3203 -16.3203c-141.16 0 -256 114.84 -256 256s114.84 256 256 256c30.3896 0 60.5801 -5.54004 89.75 -16.4805
-c6.91992 -2.59961 10.9297 -9.83984 9.46973 -17.0898c-1.41992 -7.04004 -7.62012 -12.0693 -14.75 -12.0693c-1.47949 0 -6.85938 0.459961 -9.17969 0.459961c-116.25 0 -210.82 -94.5703 -210.82 -210.82s94.5703 -210.82 210.82 -210.82
-c2.29004 0 7.72949 0.459961 9.17969 0.459961zM503.46 234.14c8.16992 -1.17969 11.4297 -11.2197 5.52051 -16.9893l-55.2705 -53.8701l13.0498 -76.0703c1.11035 -6.42969 -4.00977 -11.6602 -9.80957 -11.6602c-1.53027 0 -3.11035 0.370117 -4.64062 1.16992
-l-68.3096 35.9102l-68.3301 -35.9102c-1.53027 -0.80957 -3.11035 -1.16992 -4.63965 -1.16992c-5.7998 0 -10.9199 5.21973 -9.81055 11.6602l13.0498 76.0703l-55.2695 53.8701c-5.91016 5.76953 -2.65039 15.8096 5.51953 16.9893l76.3809 11.1006l34.1592 69.21
-c1.83008 3.7002 5.38086 5.5498 8.93066 5.5498s7.09961 -1.84961 8.92969 -5.5498l34.1602 -69.21z" />
-    <glyph glyph-name="star-of-david" unicode="&#xf69a;" horiz-adv-x="464" 
-d="M405.68 192l53.2207 -89.3896c14.4092 -24.21 -3.41016 -54.6104 -32.0107 -54.6104h-106.93l-55.9502 -93.9805c-7.14941 -12.0098 -19.5801 -18.0195 -32.0098 -18.0195s-24.8604 6.00977 -32.0098 18.0195l-55.9502 93.9805h-106.93
-c-28.6006 0 -46.4199 30.4004 -32.0107 54.6104l53.2207 89.3896l-53.2207 89.3896c-14.4092 24.21 3.41016 54.6104 32.0107 54.6104h106.93l55.9502 93.9805c7.14941 12.0098 19.5801 18.0195 32.0098 18.0195s24.8604 -6.00977 32.0098 -18.0195l55.9502 -93.9805h106.92
-c28.6006 0 46.4199 -30.4004 32.0098 -54.6104zM392.9 280h-39.6006l19.7998 -33.2598zM340.51 192l-52.3896 88h-112.25l-52.3799 -88l52.3896 -88h112.24zM232 374.28l-22.7803 -38.2803h45.5703zM71.0996 280l19.8008 -33.2598l19.7998 33.2598h-39.6006zM71.0996 104
-h39.6006l-19.7998 33.2598zM232 9.71973l22.7803 38.2803h-45.5703zM353.29 104h39.6104l-19.8105 33.2598z" />
-    <glyph glyph-name="synagogue" unicode="&#xf69b;" horiz-adv-x="640" 
-d="M70 251.49c5.30957 6.00977 14.6904 6.00977 20 0l38 -43.0703v-272.42h-128v226.07l0.00488281 0.0185547c0 6.75391 2.51758 12.9229 6.66504 17.6211zM633.33 179.71c4.2998 -4.87012 6.66992 -11.1396 6.66992 -17.6396v-226.07h-128v272.42l38 43.0703
-c5.30957 6.01953 14.6904 6.01953 20 0zM339.99 440.99l128 -102.4c7.58984 -6.07031 12.0098 -15.2695 12.0098 -24.9902v-377.6h-96v96c0 38.8701 -34.6602 69.6504 -74.75 63.1201c-31.4697 -5.12012 -53.25 -34.6699 -53.25 -66.5498v-92.5703h-96v377.6
-c0 10.1123 4.67773 19.123 12.0098 24.9902l128 102.4c11.6904 9.34961 28.29 9.34961 39.9805 0zM392.06 225.44l-19.1895 30.5596l19.2002 30.5703c1.97949 3.14941 -0.290039 7.23926 -4 7.23926h-38.9502l-25.1201 39.9805c-1.84961 2.9502 -6.15039 2.9502 -8 0
-l-25.1201 -40h-38.9395c-3.70996 0 -5.98047 -4.08984 -4 -7.24023l19.1992 -30.5596l-19.1992 -30.5605c-1.98047 -3.14941 0.279297 -7.23926 4 -7.23926h38.9395l25.1201 -39.9805c1.84961 -2.9502 6.15039 -2.9502 8 0l25.1201 39.9902h38.9395
-c3.70996 0 5.98047 4.08984 4 7.24023z" />
-    <glyph glyph-name="torah" unicode="&#xf6a0;" horiz-adv-x="640" 
-d="M320.05 81.5195l-17.7402 29.6406h35.46zM419.26 247.52l-18.3994 -30.8193l-18.46 30.8193h36.8594zM48 448c26.5098 0 48 -14.3301 48 -32v-448c0 -17.6699 -21.4902 -32 -48 -32s-48 14.3301 -48 32v448c0 17.6699 21.4902 32 48 32zM220.74 136.5l18.3896 30.8203
-l18.46 -30.8203h-36.8496zM382.45 136.5l18.4102 30.7998l18.4492 -30.7998h-36.8594zM128 -16v416h384v-416h-384zM194.77 262.13c-1.7627 -3.04492 -2.77148 -6.62402 -2.77148 -10.3936c0 -3.92969 1.09668 -7.60547 3.00195 -10.7363l29.3604 -49l-29.21 -48.8398
-c-1.91211 -3.17578 -3.02637 -6.91699 -3.02637 -10.8906c0 -11.6504 9.45898 -21.1094 21.1104 -21.1094h0.015625h59.5l29.25 -48.8799c3.61816 -6.12793 10.2754 -10.2207 17.9004 -10.2207h0.0996094c7.7373 0.0166016 14.4912 4.17676 18.1602 10.4004l29.1299 48.7002
-h59.4697c0.0078125 0 0.00195312 -0.0224609 0.00878906 -0.0224609c7.90723 0 14.8115 4.32812 18.4717 10.7422c1.75879 3.04199 2.76562 6.61621 2.76562 10.3799c0 3.93164 -1.09863 7.6084 -3.00586 10.7402l-29.3701 49l29.2402 48.8496
-c1.90723 3.17383 3.01758 6.91113 3.01758 10.8809c0 11.6553 -9.46191 21.1182 -21.1182 21.1191h-59.5195l-29.25 48.8604c-3.6123 6.12207 -10.2617 10.21 -17.8779 10.21h-0.0722656c-0.0117188 0 -0.00976562 0.0224609 -0.0214844 0.0224609
-c-7.74316 0 -14.5186 -4.17383 -18.1982 -10.3926l-29.1299 -48.71h-59.4502c-0.015625 0 -0.0166016 0.0224609 -0.0322266 0.0224609c-7.89844 0 -14.7939 -4.32422 -18.4482 -10.7324zM592 448c26.5098 0 48 -14.3301 48 -32v-448c0 -17.6699 -21.4902 -32 -48 -32
-s-48 14.3301 -48 32v448c0 17.6699 21.4902 32 48 32zM320 302.47l17.6797 -29.6201h-35.46zM257.55 247.47l-18.3701 -30.7998l-18.4395 30.7998h36.8096zM287.13 136.47l-33.2295 55.5303l33.1699 55.5195h65.79l33.2295 -55.5195l-33.1699 -55.5303h-65.79z" />
-    <glyph glyph-name="torii-gate" unicode="&#xf6a1;" 
-d="M376.45 416c48.5918 0.00292969 94.8242 11.6396 135.55 32v-96c0 -17.6699 -14.3301 -32 -32 -32h-32v-64h48c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-48v-240c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v240
-h-256v-240c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v240h-48c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h48v64h-32c-17.6699 0 -32 14.3301 -32 32v96c40.7256 -20.3604 86.958 -31.9971 135.55 -32h240.9zM128 320v-64h96
-v64h-96zM384 256v64h-96v-64h96z" />
-    <glyph glyph-name="vihara" unicode="&#xf6a7;" horiz-adv-x="640" 
-d="M632.88 47.29c5.41992 -3.61035 7.7002 -9.62012 6.99023 -15.29c-0.620117 -5.00977 -3.56055 -9.75 -8.71973 -12.3301l-55.1504 -19.6699v-48c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v48h-160v-48c0 -8.83984 -7.16016 -16 -16 -16h-32
-c-8.83984 0 -16 7.16016 -16 16v48h-160v-48c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v48l-55.1602 19.6699c-5.14941 2.58008 -8.09961 7.32031 -8.71973 12.3301c-0.700195 5.66016 1.58008 11.6699 7 15.29l88.8799 48.71v64
-l-55.1602 17.6904c-11.79 5.89941 -11.79 22.7197 0 28.6191l119.16 49.6904v64l-27.3096 16.3096c-7.7207 7.7207 -5.61035 20.7402 4.15918 25.6201l183.15 86.0703l183.15 -86.0801c9.76953 -4.87988 11.8799 -17.9004 4.15918 -25.6201l-27.3096 -16.2998v-64
-l119.16 -49.6904c11.79 -5.89941 11.79 -22.7197 0 -28.6191l-55.1602 -17.6904v-64zM224 320v-64h192v64h-192zM160 96h320v64h-320v-64z" />
-    <glyph glyph-name="volume-mute" unicode="&#xf6a9;" 
-d="M215.03 376.95c15.0098 15.0098 40.9697 4.49023 40.9697 -16.9697v-335.961c0 -21.4395 -25.9404 -32 -40.9697 -16.9697l-88.9707 88.9502h-102.06c-13.2598 0 -24 10.75 -24 24v144c0 13.2598 10.7402 24 24 24h102.06zM461.64 192l45.6406 -45.6396
-c6.2998 -6.30078 6.2998 -16.5205 0 -22.8203l-22.8203 -22.8203c-6.2998 -6.2998 -16.5195 -6.2998 -22.8203 0l-45.6396 45.6406l-45.6299 -45.6299c-6.2998 -6.30078 -16.5205 -6.30078 -22.8203 0l-22.8193 22.8193c-6.30078 6.2998 -6.30078 16.5205 0 22.8203
-l45.6299 45.6299l-45.6406 45.6396c-6.2998 6.30078 -6.2998 16.5205 0 22.8203l22.8203 22.8203c6.2998 6.2998 16.5195 6.2998 22.8203 0l45.6396 -45.6406l45.6396 45.6406c6.30078 6.2998 16.5205 6.2998 22.8203 0l22.8203 -22.8203
-c6.2998 -6.2998 6.2998 -16.5195 0 -22.8203z" />
-    <glyph glyph-name="yin-yang" unicode="&#xf6ad;" horiz-adv-x="496" 
-d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM248 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM248 192c53.0195 0 96 42.9805 96 96s-42.9805 96 -96 96
-c-106.04 0 -192 -85.96 -192 -192s85.96 -192 192 -192c-53.0195 0 -96 42.9805 -96 96s42.9805 96 96 96zM248 320c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32z" />
-    <glyph glyph-name="blender-phone" unicode="&#xf6b6;" horiz-adv-x="576" 
-d="M392 384c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h157.82l-17.46 -64h-140.36c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h131.64l-17.46 -64h-114.18c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h105.46
-l-17.46 -64h-288v352h384l-17.46 -64h-166.54zM158.8 112.99c3.00977 -7.40039 0.200195 -15.8506 -6.68945 -20.0703l-39.4102 -24.1797c-12.5303 -7.68066 -31.7803 -6 -41.6504 4.7998c-94.0996 102.94 -94.6699 258.89 -2.09961 362.49
-c11.1396 12.4697 29.5596 15.8398 43.8896 7.0498l39.2803 -24.0996c6.87988 -4.2207 9.7002 -12.6807 6.67969 -20.0703l-25.7803 -63.2598c-2.7793 -6.80078 -9.80957 -10.9902 -17.2393 -10.2607l-45.0303 4.41992c-17.6504 -47.9395 -17.2803 -100.779 0 -147.72
-l45.0303 4.41992c7.43945 0.730469 14.46 -3.4502 17.2393 -10.2598zM480 64c35.3496 0 64 -28.6504 64 -64v-32c0 -17.6699 -14.3301 -32 -32 -32h-352c-17.6699 0 -32 14.3301 -32 32v32c0 35.3496 28.6504 64 64 64h288zM336 -32c17.6699 0 32 14.3301 32 32
-s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="book-dead" unicode="&#xf6b7;" horiz-adv-x="448" 
-d="M272 312c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16s16 -7.2002 16 -16s-7.2002 -16 -16 -16zM448 89.5996c0 -9.59961 -3.2002 -16 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16
-c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320c0 54.4004 41.5996 96 96 96h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM240 392c-44.2002 0 -80 -28.7002 -80 -64c0 -20.9004 12.7002 -39.2002 32 -50.9004v-13.0996
-c0 -8.7998 7.2002 -16 16 -16h64c8.7998 0 16 7.2002 16 16v13.0996c19.2998 11.7002 32 30 32 50.9004c0 35.2998 -35.7998 64 -80 64zM124.8 224.7c-1.7002 -4.10059 0.100586 -8.7998 4.2002 -10.5l70.5 -30.2998l-70.4004 -30.1006
-c-4.09961 -1.7002 -5.89941 -6.39941 -4.19922 -10.5l6.2998 -14.7002c1.7002 -4.09961 6.39941 -5.89941 10.5 -4.19922l98.2998 42.1992l98.2998 -42.0996c4.10059 -1.7002 8.7998 0.0996094 10.5 4.2002l6.2998 14.7002c1.7002 4.09961 -0.0996094 8.7998 -4.19922 10.5
-l-70.3008 30.0996l70.3008 30.2002c4.09961 1.7002 5.89941 6.39941 4.19922 10.5l-6.2998 14.7002c-1.7002 4.09961 -6.39941 5.89941 -10.5 4.19922l-98.3994 -42.0996l-98.3008 42.0996c-4.09961 1.7002 -8.7998 -0.0996094 -10.5 -4.19922zM380.8 0v64h-284.8
-c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8zM208 312c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16s16 -7.2002 16 -16s-7.2002 -16 -16 -16z" />
-    <glyph glyph-name="campground" unicode="&#xf6bb;" horiz-adv-x="640" 
-d="M624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-608c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h24.6797l239.79 330.25l-53.4102 73.5498c-5.19922 7.15039 -3.60938 17.1602 3.54004 22.3506l25.8809 18.7998
-c7.14941 5.18945 17.1592 3.59961 22.3496 -3.5498l41.1699 -56.7002l41.1602 56.6895c5.2002 7.16016 15.2002 8.74023 22.3496 3.55078l25.9004 -18.79c7.14941 -5.19043 8.72949 -15.2002 3.54004 -22.3506l-53.4102 -73.5498l239.78 -330.25h24.6797zM320 160
-l-116.36 -160h232.721z" />
-    <glyph glyph-name="cat" unicode="&#xf6be;" 
-d="M290.59 256c11.8906 -58.3496 63.6006 -102.4 125.41 -102.4c11.1104 0 21.71 1.87012 32 4.54004v-206.14c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v144l-128 -96h32c17.6699 0 32 -14.3301 32 -32v-16c0 -8.83984 -7.16016 -16 -16 -16
-h-176c-35.2998 0 -64 28.7002 -64 64v256c0 17.6396 -14.3604 32 -32 32c-17.6699 0 -32 14.3301 -32 32s14.3301 32 32 32c52.9404 0 96 -43.0596 96 -96v-85.9502c55.7695 83.9697 142.41 85.9502 162.59 85.9502zM448 352l64 64v-134.4c0 -53.0195 -42.9805 -96 -96 -96
-s-96 42.9805 -96 96v134.4l64 -64h64zM376 272c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16zM456 272c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16z" />
-    <glyph glyph-name="chair" unicode="&#xf6c0;" horiz-adv-x="448" 
-d="M112 320v-128h-48v128c0 70.7002 57.2998 128 128 128h64c70.7002 0 128 -57.2998 128 -128v-128h-48v128c0 29.5 -16.2002 55 -40 68.9004v-196.9h-48v208h-48v-208h-48v196.9c-23.7998 -13.9004 -40 -39.4004 -40 -68.9004zM446.3 106.1
-c6.90039 -20.6992 -8.5 -42.0996 -30.2998 -42.0996v-112c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v112h-256v-112c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v112c-21.7998 0 -37.2002 21.4004 -30.4004 42.0996l10.7002 32
-c4.40039 13.1006 16.6006 21.9004 30.4004 21.9004h362.5c13.7998 0 26 -8.7998 30.3994 -21.9004z" />
-    <glyph glyph-name="cloud-moon" unicode="&#xf6c3;" horiz-adv-x="576" 
-d="M342.8 95.2998c40.9004 -3.5 73.2002 -37.3994 73.2002 -79.2998c0 -44.2002 -35.7998 -80 -80 -80h-240c-53 0 -96 43 -96 96c0 41.9004 27.0996 77.2002 64.5996 90.2998c-0.0996094 1.90039 -0.599609 3.7002 -0.599609 5.7002c0 53 43 96 96 96
-c36.2002 0 67.4004 -20.2998 83.7002 -49.9004c11.5 11 27.0996 17.9004 44.2998 17.9004c35.2998 0 64 -28.7002 64 -64c0 -12 -3.5 -23.0996 -9.2002 -32.7002zM565.3 149.6c8.2002 1.60059 14 -8 8.7002 -14.5c-33.4004 -41.0996 -82.7002 -67 -137.1 -70.3994
-c-11.1006 23.0996 -29.9004 41.7998 -53.5 52.5996c0.399414 3.5 0.599609 7.10059 0.599609 10.7002c0 52.9004 -43.0996 96 -96 96c-12.7002 0 -25 -2.5 -36.4004 -7.2002c-5.09961 5.2998 -10.7998 9.90039 -16.6992 14.2002c-1.10059 8.2002 -1.80078 16.5 -1.80078 25
-c0 106.1 86 192 191.9 192c11.7002 0 23.4004 -1.09961 35.0996 -3.2002c8.2002 -1.59961 10.1006 -12.5996 2.80078 -16.7002c-47.1006 -26.7998 -76.1006 -76.5996 -76.1006 -130.8c0 -94 85.4004 -165.399 178.5 -147.7z" />
-    <glyph glyph-name="cloud-sun" unicode="&#xf6c4;" horiz-adv-x="640" 
-d="M575.2 122.3c37.5996 -13 64.7998 -48.2998 64.7998 -90.3994c0 -53 -43 -96 -96 -96h-272c-53 0 -96 43 -96 96c0 50.5996 39.2998 91.5996 88.9004 95.2998c-0.200195 2.89941 -0.900391 5.7002 -0.900391 8.7002c0 61.8994 50.2002 112 112 112
-c45.4004 0 84.2998 -27.2002 101.9 -66c9.89941 6.19922 21.5 10 34.0996 10c35.2998 0 64 -28.7002 64 -64c0 -1.90039 -0.599609 -3.7002 -0.799805 -5.60059zM144.8 144.9c10.6006 -10.6006 22.9004 -18.6006 36 -24c-9.59961 -9.80078 -17.5 -21.1006 -23.5996 -33.5
-l-76.1006 -25.3008c-11.8994 -3.89941 -23.1992 7.30078 -19.1992 19.2002l29.2998 87.7998l-82.7998 41.4004c-11.2002 5.59961 -11.2002 21.5 0 27.0996l82.7998 41.5l-29.2998 87.8008c-3.90039 11.7998 7.39941 23.0996 19.1992 19.1992l87.9004 -29.2998
-l41.4004 82.7998c5.59961 11.2002 21.5996 11.2002 27.0996 0l41.5 -82.7998l87.7998 29.2998c11.9004 3.90039 23.2002 -7.2998 19.2002 -19.1992l-29.7998 -88.9004c-10.6006 -1.5 -20.9004 -3.7998 -30.7002 -7.5c-5.40039 11.7998 -12.5996 23 -22.2998 32.7002
-c-43.7002 43.7002 -114.7 43.7002 -158.4 0c-43.7002 -43.6006 -43.7002 -114.601 0 -158.3zM140 224.1c0 46.3008 37.7002 83.9004 84 83.9004c34 0 63.2998 -20.4004 76.5 -49.5c-36.4004 -22.5 -62 -60.7002 -67.4004 -105
-c-8.89941 -2.90039 -17.1992 -7 -25.1992 -11.7002c-38.6006 7.5 -67.9004 41.5 -67.9004 82.2998z" />
-    <glyph glyph-name="dice-d20" unicode="&#xf6cf;" horiz-adv-x="480" 
-d="M106.75 232.94l108.64 -190.101l-208.26 22.0703c-5.83008 0.639648 -9.00977 7.13965 -5.92969 12.1396zM7.41016 132.57c-2.12012 -3.44043 -7.41016 -1.94043 -7.41016 2.08984v162.81c0 3.11035 3.38965 5.03027 6.05957 3.43066l76.6406 -45.9805zM18.25 24.4004
-c-4.03027 1.97949 -2.25 8.06934 2.2002 7.56934l203.55 -22.2998v-65.6699c0 -5.83008 -6.0498 -9.70996 -11.3496 -7.25977zM99.4697 282.18l-81.5293 48.6904c-2.52051 1.51953 -2.60059 5.16016 -0.130859 6.78027l150.811 98.6094
-c7.18945 4.11035 15.1201 -4.08008 10.7803 -11.1396zM240 272h-109.21l95.5801 168.38c3.12988 5.08008 8.37988 7.62012 13.6299 7.62012s10.5 -2.54004 13.6299 -7.62012l95.5801 -168.38h-109.21zM473.94 300.9c2.66992 1.59961 6.05957 -0.320312 6.05957 -3.43066
-v-162.81c0 -4.04004 -5.2998 -5.54004 -7.41016 -2.10059l-75.29 122.351zM380.53 282.18l-79.9307 142.94c-4.33984 7.05957 3.59082 15.25 10.7803 11.1396l150.811 -98.5996c2.46973 -1.62012 2.39941 -5.25977 -0.130859 -6.78027zM459.55 31.9697
-c4.4502 0.5 6.23047 -5.58984 2.2002 -7.55957l-194.4 -87.6602c-5.2998 -2.4502 -11.3496 1.41992 -11.3496 7.25977v65.6699zM373.25 232.94l105.56 -155.891c3.08008 -5 -0.0996094 -11.4902 -5.92969 -12.1396l-208.26 -22.0703zM240 240h100.43l-100.43 -175.75
-l-100.43 175.75h100.43z" />
-    <glyph glyph-name="dice-d6" unicode="&#xf6d1;" horiz-adv-x="448" 
-d="M422.19 338.05c5.3291 -3.24023 5.2998 -11.2695 -0.0507812 -14.46l-198.14 -118.14l-198.13 118.14c-5.35059 3.19043 -5.37988 11.2305 -0.0605469 14.46l165.971 100.88c19.9102 12.1006 44.5195 12.1006 64.4297 0zM436.03 293.42
-c5.33008 3.17969 11.9697 -0.839844 11.9697 -7.25v-197.7c0 -23.7598 -12.1104 -45.7393 -31.79 -57.7002l-152.16 -92.4795c-10.6602 -6.48047 -24.0498 1.5498 -24.0498 14.4297v223.82zM0 286.17c0 6.41016 6.63965 10.4297 11.9697 7.25l196.03 -116.88v-223.81
-c0 -12.8906 -13.3799 -20.9102 -24.0498 -14.4307l-152.16 92.4697c-19.6797 11.9609 -31.79 33.9307 -31.79 57.7002v197.7z" />
-    <glyph glyph-name="dog" unicode="&#xf6d3;" horiz-adv-x="576" 
-d="M298.06 224l149.94 -53.5498v-218.45c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v112h-160v-112c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v213.91c-37.1602 13.25 -64 48.4297 -64 90.0898
-c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32c0.0332031 -17.6455 14.3545 -31.9668 32 -32h170.06zM544 336v-32c0 -35.3223 -28.6777 -64 -64 -64h-32v-35.5801l-128 45.71v149.87c0 14.25 17.2197 21.3896 27.3096 11.3096l27.2803 -27.3096h53.6299
-c10.9102 0 23.75 -7.91992 28.6201 -17.6904l7.16016 -14.3096h64c8.83105 0 16 -7.16895 16 -16zM432 336c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16s7.16895 -16 16 -16s16 7.16895 16 16z" />
-    <glyph glyph-name="dragon" unicode="&#xf6d5;" horiz-adv-x="640" 
-d="M18.3203 192.22c-15.96 -2.2793 -24.8906 17.8105 -12.5107 28.1406l117.4 116.34c21.7705 18.5996 53.2402 20.4697 77.0596 4.58984l119.73 -87.5996v-42.2705c0 -28.9102 5.29004 -56.9795 14.7305 -83.3799h-222.7c-14.25 0 -21.3906 17.2295 -11.3105 27.3096
-l91.2803 68.6904zM575.19 158.12c41.9092 -20.96 67.1592 -64.0801 64.6396 -111.36c-3.37988 -63.2002 -59.7002 -110.77 -122.99 -110.76h-499.08c-9.80957 0 -17.7598 8 -17.7598 17.7998c0 8.32031 5.78027 15.5303 13.9004 17.3301
-c89.54 19.9004 238.51 54.1006 434.1 60.9102c-59.9697 39.9902 -96 107.3 -96 179.38v108.62l-59.5801 24.8496c-5.90039 2.9502 -5.90039 11.3604 0 14.3105l59.5801 24.8398l-61.6396 50.3496c-5.04004 5.04004 -1.4707 13.6104 5.65918 13.6104h237.45
-c10.0703 0 19.5498 -4.7002 25.6006 -12.7598l74.5293 -99.3799c4.00781 -5.3457 6.37988 -12.042 6.37988 -19.2305c0 -5.12988 -1.20996 -9.98047 -3.35938 -14.2803l-14.3105 -28.6191c-5.25 -10.502 -16.0889 -17.6895 -28.6191 -17.6904h-30.9707
-c-8.48926 0 -16.6299 3.37012 -22.6299 9.37012l-28.0898 22.6299h-64v-36.6904c0.00195312 -18.791 10.7812 -35.0459 26.5303 -42.9199zM489.18 381.75c-4.33008 -17.1396 8.56055 -28.96 21.5205 -29.6699c11.6602 -0.629883 21.3799 7.34961 24.1299 18.2598z" />
-    <glyph glyph-name="drumstick-bite" unicode="&#xf6d7;" 
-d="M462.8 398.43c34.3203 -34.2793 50.4307 -79.5996 49.1299 -124.56c-41.9795 22.6602 -94.3594 17.5596 -128.739 -16.7998c-40.8809 -40.8398 -40.6904 -107.181 -1.05078 -151.07c-18.9736 -6.45312 -39.3203 -10.0049 -60.4648 -10.0049
-c-0.475586 0 -0.950195 0.000976562 -1.4248 0.00488281h-85.8896l-40.6104 -40.5596c-9.71973 -9.75 -11.0898 -24.0205 -6 -36.75c2.77051 -6.92383 4.3125 -14.5234 4.3125 -22.4316c0 -33.3086 -27.042 -60.3506 -60.3496 -60.3506
-c-16.7041 0 -31.8311 6.80078 -42.7627 17.7822c-15.2803 15.2695 -19.6006 36.5 -15.1006 56.0996c-19.6094 -4.49023 -40.8496 -0.179688 -56.1191 15.0703c-10.9395 10.9229 -17.668 26.002 -17.668 42.666c0 33.2979 27.0332 60.3301 60.3301 60.3301
-c7.88965 0 15.4277 -1.51758 22.3379 -4.27637c12.7793 -5.07031 27.0791 -3.69043 36.7793 6l40.6201 40.5898v85.8301c0 64 27.6904 107 63.1699 142.43c30.666 30.6338 73.0479 49.5889 119.774 49.5889s89.0605 -18.9551 119.726 -49.5889z" />
-    <glyph glyph-name="dungeon" unicode="&#xf6d9;" 
-d="M128.73 252.68c6.58984 -4.12012 8.89941 -12.2393 6.33984 -19.5801c-3 -8.60938 -5.15039 -17.6094 -6.24023 -26.9395c-0.929688 -7.91016 -7.0498 -14.1602 -15.0098 -14.1602h-97.1299c-9.10059 0 -16.7402 7.62988 -16.1504 16.7197
-c2.0293 31.5166 9.95215 61.9062 22.4502 89.2705c3.93945 8.62012 14.8896 11.4697 22.9297 6.4502zM319.03 440c9.16992 -2.36035 13.9102 -12.5996 10.3896 -21.3896l-37.4697 -104.03c-2.28027 -6.34961 -8.2998 -10.5801 -15.0498 -10.5801h-41.8008
-c-6.92773 0.00292969 -12.8281 4.41211 -15.0498 10.5801l-37.4697 104.03c-3.52051 8.79004 1.21973 19.04 10.3896 21.3896c20.1699 5.17969 41.2607 8 63.0303 8s42.8604 -2.82031 63.0303 -8zM112 160c8.83984 0 16 -7.16016 16 -16v-64
-c0 -8.83984 -7.16016 -16 -16 -16h-96c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h96zM112 32c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16h-96c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h96zM189.31 315.67
-c2.85059 -7.12012 -0.0195312 -14.8799 -6.2998 -19.29c-6 -4.2002 -11.6094 -8.89941 -16.79 -14.0498c-5.4502 -5.41016 -13.5996 -6.86035 -20.1094 -2.79004l-82.9307 51.8301c-8.06934 5.04004 -10.2793 16.2002 -4.21973 23.5195
-c20.0459 24.1963 44.0801 44.3428 71.6104 59.8906c8.29004 4.67969 18.8896 0.519531 22.4199 -8.31055zM398.18 192c-7.95996 0 -14.0801 6.25 -15.0098 14.1602c-1.08984 9.32031 -3.22949 18.3301 -6.24023 26.9395c-2.55957 7.34082 -0.25 15.46 6.33984 19.5801
-l82.8105 51.7607c8.04004 5.01953 18.9902 2.16992 22.9297 -6.4502c12.499 -27.3633 20.4219 -57.7529 22.4502 -89.2705c0.589844 -9.08984 -7.0498 -16.7197 -16.1504 -16.7197h-97.1299zM453.03 354.89c6.06934 -7.31934 3.84961 -18.4795 -4.2207 -23.5098
-l-82.9297 -51.8301c-6.50977 -4.06934 -14.6699 -2.62012 -20.1104 2.79004c-5.17969 5.15039 -10.7891 9.85059 -16.7891 14.0498c-6.28027 4.40039 -9.15039 12.1602 -6.30078 19.2803l36.3203 90.7998c3.54004 8.83008 14.1396 12.9902 22.4199 8.31055
-c27.5303 -15.5479 51.5645 -35.6943 71.6104 -59.8906zM496 160c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16h-96c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h96zM496 32c8.83984 0 16 -7.16016 16 -16v-64
-c0 -8.83984 -7.16016 -16 -16 -16h-96c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h96zM240 270.38c5.23047 0.889648 10.5195 1.62012 16 1.62012s10.7695 -0.730469 16 -1.62012v-294.38c0 -4.41992 -3.58008 -8 -8 -8h-16c-4.41992 0 -8 3.58008 -8 8
-v294.38zM176 228.87c8.16016 12.2998 19.2197 22.3203 32 29.7695v-282.64c0 -4.41992 -3.58008 -8 -8 -8h-16c-4.41992 0 -8 3.58008 -8 8v252.87zM304 258.64c12.7803 -7.44922 23.8398 -17.4697 32 -29.7695v-252.87c0 -4.41992 -3.58008 -8 -8 -8h-16
-c-4.41992 0 -8 3.58008 -8 8v282.64z" />
-    <glyph glyph-name="file-csv" unicode="&#xf6dd;" horiz-adv-x="384" 
-d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM128 168v16c0 4.41992 -3.58008 8 -8 8h-8c-26.5098 0 -48 -21.4902 -48 -48v-32
-c0 -26.5098 21.4902 -48 48 -48h8c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-8c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h8c4.41992 0 8 3.58008 8 8zM172.27 64c23.3906 0 42.4004 17.3301 42.3906 38.6201
-c0 10.6602 -4.86035 20.9199 -13.3301 28.1396l-21.8896 18.7705c-1.37012 1.17969 -2.12012 2.54004 -2.12012 3.83984c0 3.12012 4.45996 6.62012 10.4102 6.62012h12.2695c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-12.25
-c-23.3896 0 -42.4102 -17.3203 -42.4102 -38.6201c0 -10.6602 4.86035 -20.9199 13.3301 -28.1396l21.8896 -18.7705c1.37012 -1.17969 2.12012 -2.54004 2.12012 -3.83984c0 -3.12012 -4.45996 -6.62012 -10.4102 -6.62012h-12.2695c-4.41992 0 -8 -3.58008 -8 -8v-16
-c0 -4.41992 3.58008 -8 8 -8h12.2695zM256 184c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-20.7998c0 -35.4805 12.8799 -68.8906 36.2803 -94.0898c3.01953 -3.25 7.26953 -5.11035 11.7197 -5.11035s8.7002 1.86035 11.7197 5.11035
-c23.4004 25.1992 36.2803 58.6094 36.2803 94.0898v20.7998c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-20.7998c0 -20.2705 -5.7002 -40.1807 -16 -56.8799c-10.2998 16.71 -16 36.6094 -16 56.8799v20.7998zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004
-v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7z" />
-    <glyph glyph-name="fist-raised" unicode="&#xf6de;" horiz-adv-x="384" 
-d="M255.98 288h-48.0303c-5.62988 0 -10.9502 -1.15039 -15.9697 -2.92969v146.93c0 8.83984 7.15918 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-144zM383.98 192.01l0.0195312 -88.2197c0 -26.4971 -10.7412 -50.5273 -28.1201 -67.9102l-35.9102 -35.9199v-63.96
-h-255.979v64l-26.5 26.5098c-24.0098 24.0098 -37.4902 56.5605 -37.4902 90.5098v77.9307c5.03027 -1.7998 10.3604 -2.9502 16 -2.9502h32c12.3301 0 23.4805 4.80957 32 12.4902c8.50977 -7.66992 19.6602 -12.4805 32 -12.4805h32
-c7.91016 0 15.2803 2.11035 21.8701 5.52051c7.46973 -16.3301 21.5996 -28.9404 38.8701 -34.4502c-17.1104 -14.8203 -31.5801 -34.4805 -47.3105 -58.0801l-6.30957 -9.46973c-0.845703 -1.26855 -1.35156 -2.79395 -1.35156 -4.43164
-c0 -2.77734 1.41895 -5.22559 3.57129 -6.6582l13.3105 -8.88086c1.26758 -0.845703 2.79395 -1.35156 4.43066 -1.35156c2.77734 0 5.22559 1.41992 6.65918 3.57227l6.30957 9.46973c31.8906 47.8398 51.5303 70.2695 96.0498 72.5498
-c4.29004 0.219727 7.88086 3.70996 7.88086 8v16.2002c0 4.41992 -3.52051 8 -13.2002 8h-35.2607c-26.2695 0 -47.5693 21.3203 -47.5693 47.5898v0.560547c0 8.7793 7.12012 15.8496 15.8994 15.8496h112.141c35.3301 0 63.9795 -28.6504 63.9902 -63.9902zM351.97 282.1
-c-10.0596 3.59082 -20.7197 5.90039 -32 5.90039h-32v112c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-117.9zM16 224c-8.83984 0 -16 7.16016 -16 16v128c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-128
-c0 -8.83984 -7.16016 -16 -16 -16h-32zM111.99 224c-8.83984 0 -16 7.16016 -16 16v160c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-160c0 -8.83984 -7.16016 -16 -16 -16h-32z" />
-    <glyph glyph-name="ghost" unicode="&#xf6e2;" horiz-adv-x="384" 
-d="M186.1 447.91c108.73 3.25977 197.9 -83.9102 197.9 -191.91v-271.97c0 -14.25 -17.2305 -21.3906 -27.3096 -11.3105l-24.9209 18.5303c-6.65918 4.95996 -16 3.99023 -21.5098 -2.20996l-42.9502 -48.3496c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-40.7197 45.8496
-c-6.36035 7.16992 -17.5498 7.16992 -23.9199 0l-40.7197 -45.8496c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-42.9502 48.3496c-5.50977 6.2002 -14.8506 7.16016 -21.5098 2.20996l-24.9209 -18.5303c-10.0791 -10.0801 -27.3096 -2.9502 -27.3096 11.3105v263.92
-c0 105.13 81.0098 196.81 186.1 199.96zM128 224c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM256 224c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
-    <glyph glyph-name="hammer" unicode="&#xf6e3;" horiz-adv-x="576" 
-d="M571.31 254.06c6.25 -6.25 6.25 -16.3799 0.0205078 -22.6191l-90.5098 -90.5107c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-22.6309 22.6299c-6.25 6.25 -6.25 16.3809 0 22.6309l11.3105 11.3096l-28.9004 28.9004
-c-21.3096 -5.63086 -44.8994 -0.360352 -61.6094 16.3496l-49.1406 49.1396c-12.0098 12 -18.75 28.2803 -18.75 45.25v18.75l-90.5098 45.25c62.4902 62.4805 163.8 62.4805 226.28 0l45.25 -45.25c16.71 -16.71 21.9795 -40.2998 16.3496 -61.6094l28.9004 -28.9004
-l11.3096 11.3105c6.25 6.25 16.3799 6.25 22.6299 0zM284.59 269.26l49.1406 -49.1396c3.53906 -3.54004 7.47949 -6.5 11.4395 -9.41016l-238.13 -255.07c-23.8799 -25.5801 -64.2002 -26.2695 -88.9297 -1.5293c-24.7305 24.7393 -24.04 65.0498 1.5293 88.9297
-l255.101 238.17c3.00977 -4.16016 6.14941 -8.25 9.84961 -11.9502z" />
-    <glyph glyph-name="hanukiah" unicode="&#xf6e6;" horiz-adv-x="640" 
-d="M232 288h16c4.41992 0 8 -3.58008 8 -8v-120h-32v120c0 4.41992 3.58008 8 8 8zM168 288h16c4.41992 0 8 -3.58008 8 -8v-120h-32v120c0 4.41992 3.58008 8 8 8zM392 288h16c4.41992 0 8 -3.58008 8 -8v-120h-32v120c0 4.41992 3.58008 8 8 8zM456 288h16
-c4.41992 0 8 -3.58008 8 -8v-120h-32v120c0 4.41992 3.58008 8 8 8zM544 280v-120h-32v120c0 4.41992 3.58008 8 8 8h16c4.41992 0 8 -3.58008 8 -8zM104 288h16c4.41992 0 8 -3.58008 8 -8v-120h-32v120c0 4.41992 3.58008 8 8 8zM624 288c8.83984 0 16 -7.16016 16 -16
-v-112c0 -53.0195 -42.9805 -96 -96 -96h-192v-64h176c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-416c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h176v64h-192c-53.0195 0 -96 42.9805 -96 96v112c0 8.83984 7.16016 16 16 16
-h32c8.83984 0 16 -7.16016 16 -16v-112c0 -17.6699 14.3301 -32 32 -32h192v192c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-192h192c17.6699 0 32 14.3301 32 32v112c0 8.83984 7.16016 16 16 16h32zM608 320c-13.25 0 -24 11.9502 -24 26.6699
-s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM32 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM320 368
-c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM112 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699z
-M176 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM240 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301
-c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM400 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM464 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301
-s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM528 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699z" />
-    <glyph glyph-name="hat-wizard" unicode="&#xf6e8;" 
-d="M496 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h480zM192 64l16 -32h-144l110.96 249.66c11.1211 25.0264 29.8379 45.6514 53.46 59.1494l187.58 107.19l-56.2998 -168.92
-c-2.12207 -6.35938 -3.25781 -13.2188 -3.25781 -20.2881c0 -8.93164 1.83496 -17.4375 5.14746 -25.1621l86.4102 -201.63h-208l16 32l64 32l-64 32l-32 64l-32 -64l-64 -32zM256 288l-32 -16l32 -16l16 -32l16 32l32 16l-32 16l-16 32z" />
-    <glyph glyph-name="hiking" unicode="&#xf6ec;" horiz-adv-x="384" 
-d="M80.9502 -24.2305l34.5596 138.221l52.7803 -52.7803l-25.2402 -100.97c-3.64941 -14.5303 -16.6895 -24.2305 -31.0195 -24.2305c-2.58008 0 -5.19043 0.290039 -7.7998 0.950195c-17.1406 4.28027 -27.5605 21.6504 -23.2803 38.8096zM95.8398 171.89
-c-2.18945 -8.41992 -11.0801 -13.54 -19.8701 -11.4395l-63.5596 15.25c-8.78027 2.10938 -14.1104 10.6396 -11.9199 19.0596l25.2695 98.1299c10.9707 42.1006 55.4404 67.6904 99.3203 57.1699c8.78027 -2.10938 14.1104 -10.6396 11.9199 -19.0596zM368 288
-c8.83984 0 16 -7.16016 15.9902 -16v-320.01c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v240h-48c-8.48047 0 -16.6201 3.37988 -22.6201 9.37988l-22.4297 22.4297l-19.8906 -79.5693
-c-0.129883 -0.520508 -0.469727 -0.910156 -0.620117 -1.41016l46.8203 -46.8203c12.0898 -12.0898 18.75 -28.1602 18.75 -45.25v-82.75c0 -17.6699 -14.3301 -32 -32 -32s-32 14.3301 -32 32v82.75l-86.6201 86.6201c-5.79297 5.79395 -9.37109 13.7861 -9.37109 22.6191
-c0 2.67969 0.330078 5.28223 0.951172 7.77051l26.9199 107.721c6.56055 26.2197 30.0098 44.5195 57.0303 44.5195c15.7002 0 30.4697 -6.11035 41.5596 -17.2197l46.7803 -46.7803h34.75v16c0 8.83984 7.16016 16 16 16h16zM240 352c-26.5098 0 -48 21.4902 -48 48
-s21.4902 48 48 48s48 -21.4902 48 -48s-21.4902 -48 -48 -48z" />
-    <glyph glyph-name="hippo" unicode="&#xf6ed;" horiz-adv-x="640" 
-d="M581.12 351.8c34.0898 -0.189453 58.8799 -33.6895 58.8799 -67.7803v-92.0195c0 -17.6699 -14.3301 -32 -32 -32v-32c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v32h-128v-176c0 -8.83984 -7.16016 -16 -16 -16h-64
-c-8.83984 0 -16 7.16016 -16 16v70.79c-32.3496 -14.3604 -70.7197 -22.79 -112 -22.79s-79.6504 8.42969 -112 22.79v-70.79c0 -8.83984 -7.16016 -16 -16 -16h-64c-8.83984 0 -16 7.16016 -16 16v240c0 88.3604 85.96 160 192 160
-c49.2402 0 94.0098 -15.5801 128 -40.9805v48.9805c0 13.2598 10.75 24 24 24h16c13.25 0 24 -10.7402 24 -24v-13.8799c10.0498 3.58008 20.7197 5.87988 32 5.87988c39.8301 0 73.9805 -24.2695 88.5195 -58.8203c24.1006 9.04004 48.9307 26.7705 76.6006 26.6201z
-M448 272c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16z" />
-    <glyph glyph-name="horse" unicode="&#xf6f0;" horiz-adv-x="576" 
-d="M575.92 371.4l0.0605469 -77.71c0 -0.0107422 0.0185547 -0.00683594 0.0185547 -0.0166016c0 -13.4707 -8.34277 -25.0088 -20.1387 -29.7236l-32.5508 -13.0205c-15.4395 -6.17969 -33.04 0.5 -40.4893 15.3701l-18.9004 37.7002l-16 7.11035v-102.471
-c0.00976562 -0.219727 0.0800781 -0.419922 0.0800781 -0.639648c0 -30.4697 -12.2598 -58.0303 -32 -78.2197v-177.78c0 -8.83984 -7.16016 -16 -16 -16h-64c-8.83984 0 -16 7.16016 -16 16v150.4l-133.97 22.3301l-23.8398 -63.5908l26.3096 -105.26
-c2.53027 -10.0996 -5.11035 -19.8799 -15.5195 -19.8799h-65.9609c-7.48633 0 -13.7783 5.16602 -15.5098 12.1201l-24.8496 99.4102c-1.24707 4.98047 -1.8916 10.1924 -1.8916 15.5576c0 7.8916 1.43262 15.4502 4.05176 22.4316l25.7197 68.6006
-c-18.7002 17.5195 -30.54 42.2402 -30.54 69.8799c0 2.62988 0.570312 5.09961 0.780273 7.67969c-9.91016 -7.29004 -16.7803 -18.46 -16.7803 -31.6797v-56c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v56c0 48.5303 39.4697 88 88 88v-1.11035
-c17.5996 20.1299 43.1602 33.1104 72 33.1104h159.92c0 70.6904 57.3105 128 128 128h119.98c5.05957 0 8.94922 -4.67969 7.92969 -9.63965c-2.67969 -13.1699 -11.1201 -23.8203 -22.1797 -30.6602c5.10938 -5.37988 9.90918 -10.4697 13.6895 -14.5
-c5.56055 -5.93066 8.57031 -13.6699 8.58008 -21.7998zM511.92 352c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16z" />
-    <glyph glyph-name="house-damage" unicode="&#xf6f1;" horiz-adv-x="576" 
-d="M288 333.04l218.74 -192.94c1.54004 -1.37988 3.55957 -2.04004 5.25977 -3.19922v-184.9c0 -8.83984 -7.16016 -16 -16 -16h-176.19l-39.9199 55.25l104.11 64l-148.05 136.78l60.1602 -119.221l-104.11 -64l37.2305 -72.8096h-149.23c-8.83984 0 -16 7.16016 -16 16
-v184.94c1.78027 1.20996 3.84961 1.88965 5.46973 3.34961zM570.69 211.72c6.5791 -5.89941 7.11914 -16.0195 1.21973 -22.5898l-21.4004 -23.8203c-5.91016 -6.56934 -16.0293 -7.10938 -22.5996 -1.20996l-229.32 202.271c-6.0498 5.33008 -15.1201 5.33008 -21.1699 0
-l-229.32 -202.28c-6.58008 -5.91016 -16.6992 -5.35938 -22.5996 1.20996l-21.4004 23.8203c-5.90918 6.58008 -5.35938 16.6895 1.20996 22.5996l255.99 226.011c7.60059 6.85938 17.1406 10.2793 26.7002 10.2695s19.1201 -3.4502 26.75 -10.3096l101.25 -89.3809v51.6904
-c0 8.83984 7.16016 16 16 16h64c8.83984 0 16 -7.16016 16 -16v-136.45z" />
-    <glyph glyph-name="hryvnia" unicode="&#xf6f2;" horiz-adv-x="384" 
-d="M368 208h-99.7002l-34.6699 -32h134.37c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-203.7l-29.4902 -27.2197c-4.3291 -4 -6.80957 -9.66992 -6.80957 -15.5801c0 -11.6807 9.50977 -21.2002 21.2002 -21.2002h83.6299
-c5.83301 0 11.1992 2.09375 15.3604 5.55957l11.75 9.80078c10.1895 8.48926 25.3193 7.12012 33.8096 -3.07031l20.4902 -24.5898c8.49023 -10.1807 7.10938 -25.3105 -3.07031 -33.7998l-11.7695 -9.81055c-18.6807 -15.5596 -42.2207 -24.0898 -66.54 -24.0898h-78.8203
-c-37.1396 0 -73.3799 17.8496 -92.0498 49.9502c-17.8701 30.7197 -17.54 65.4199 -4.12988 94.0498h-41.8604c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h99.7002l34.6699 32h-134.37c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16
-h203.7l29.4902 27.21c4.3291 4 6.80957 9.66992 6.80957 15.5801c0 11.6797 -9.50977 21.2002 -21.2002 21.2002h-83.6201c-5.62012 0 -11.0693 -1.9707 -15.3896 -5.57031l-11.7305 -9.78027c-10.1895 -8.48926 -25.3193 -7.12012 -33.8096 3.07031l-20.4902 24.5898
-c-8.49023 10.1807 -7.10938 25.3105 3.07031 33.7998l11.7695 9.81055c18.6807 15.5596 42.2207 24.0898 66.54 24.0898h78.8203c37.1396 0 73.3799 -17.8398 92.0498 -49.9502c17.8701 -30.7197 17.54 -65.4199 4.12988 -94.0498h41.8604c8.83984 0 16 -7.16016 16 -16v-32
-c0 -8.83984 -7.16016 -16 -16 -16z" />
-    <glyph glyph-name="mask" unicode="&#xf6fa;" horiz-adv-x="640" 
-d="M320.67 384c449.09 0 348.32 -384 158.46 -384c-39.8994 0 -77.4697 20.6904 -101.41 55.8604l-25.7295 37.79c-15.6602 22.9893 -46.9707 22.9893 -62.6299 0l-25.7305 -37.79c-23.9502 -35.1699 -61.5195 -55.8604 -101.42 -55.8604c-199.11 0 -284.14 384 158.46 384z
-M184 139.64c41.0596 0 67.7598 25.6504 80.0801 41.0508c5.22949 6.54004 5.22949 16.0996 0 22.6299c-12.3203 15.3896 -39.0098 41.0498 -80.0801 41.0498s-67.7598 -25.6504 -80.0801 -41.0498c-5.22949 -6.54004 -5.22949 -16.1006 0 -22.6299
-c12.3203 -15.3906 39.0205 -41.0508 80.0801 -41.0508zM456 139.64c41.0596 0 67.7598 25.6504 80.0801 41.0508c5.22949 6.54004 5.22949 16.0996 0 22.6299c-12.3203 15.3896 -39.0098 41.0498 -80.0801 41.0498s-67.7598 -25.6504 -80.0801 -41.0498
-c-5.22949 -6.54004 -5.22949 -16.1006 0 -22.6299c12.3203 -15.3906 39.0205 -41.0508 80.0801 -41.0508z" />
-    <glyph glyph-name="mountain" unicode="&#xf6fc;" horiz-adv-x="640" 
-d="M634.92 -14.7002c3.2041 -4.98145 5.06348 -10.9756 5.06348 -17.334c0 -5.53906 -1.41113 -10.751 -3.89355 -15.2959c-5.60938 -10.2803 -16.3799 -16.6699 -28.0898 -16.6699h-576c-12.1191 0 -22.6582 6.7168 -28.0898 16.6602
-c-2.48242 4.5459 -3.89355 9.82715 -3.89355 15.3672c0 6.36035 1.85938 12.2891 5.06348 17.2725l288 448c5.88965 9.16016 16.0303 14.7002 26.9199 14.7002s21.0303 -5.54004 26.9199 -14.7002zM320 356.82l-102.06 -158.761l38.0596 -38.0596l64 64h85.3896z" />
-    <glyph glyph-name="network-wired" unicode="&#xf6ff;" horiz-adv-x="640" 
-d="M640 184c0 -8.83984 -7.16016 -16 -16 -16h-104v-40h56c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32h-160c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h56v40h-304v-40h56c17.6699 0 32 -14.3301 32 -32v-128
-c0 -17.6699 -14.3301 -32 -32 -32h-160c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h56v40h-104c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h280v40h-72c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h192
-c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32h-72v-40h280c8.83984 0 16 -7.16016 16 -16v-16zM256 320h128v64h-128v-64zM192 0v64h-96v-64h96zM544 0v64h-96v-64h96z" />
-    <glyph glyph-name="otter" unicode="&#xf700;" horiz-adv-x="640" 
-d="M608 416c17.6699 0 32 -14.3301 32 -32v-32c0 -53.0195 -42.9805 -96 -96 -96h-22.8604l-92.4697 -49.79l55.1104 -110.21h28.2197c17.6699 0 32 -14.3301 32 -32v-16c0 -8.83984 -7.16016 -16 -16 -16h-80l-74.5098 144.5l-149.49 -80.5h64
-c17.6699 0 32 -14.3301 32 -32v-16c0 -8.83984 -7.16016 -16 -16 -16h-224c-8.83008 0 -16 -7.16992 -16 -16s7.16992 -16 16 -16h112c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32h-108.47c-39.3799 0 -75.5205 26.9004 -82.2803 65.7002
-c-4.91016 28.1201 5 54.2197 23.1904 71.7998c23.5596 22.75 39.5596 52.1396 39.5596 84.8896v1.61035c0 106.04 85.96 192 192 192h56l153.25 87.5703c9.66992 5.51953 20.6104 8.42969 31.75 8.42969h20.4902c0.00390625 0 0.0166016 0.00878906 0.0214844 0.00878906
-c17.6602 0 33.6582 -7.17188 45.2383 -18.7588l13.25 -13.25h32zM512 400c-8.83984 0 -16 -7.16016 -16 -16s7.16016 -16 16 -16s16 7.16016 16 16s-7.16016 16 -16 16zM544 304c20.8301 0 38.4297 13.4199 45.0498 32h-77.0498l-118.57 -59.29l13.7705 -27.5498
-l101.84 54.8398h34.96z" />
-    <glyph glyph-name="ring" unicode="&#xf70b;" 
-d="M256 384c145.94 0 256 -61.9102 256 -144v-98.1299c0 -78.3506 -114.62 -141.87 -256 -141.87s-256 63.5195 -256 141.87v98.1299c0 82.0898 110.06 144 256 144zM256 320c-106.04 0 -192 -35.8203 -192 -80c0 -9.25977 3.96973 -18.1201 10.9102 -26.3896
-c44.9395 26.1797 108.859 42.3896 181.09 42.3896s136.15 -16.21 181.09 -42.3896c6.94043 8.26953 10.9102 17.1299 10.9102 26.3896c0 44.1797 -85.96 80 -192 80zM120.43 183.36c34.7305 -14.4307 82.6406 -23.3604 135.57 -23.3604s100.84 8.92969 135.57 23.3604
-c-34.6104 14.71 -81.21 24.6396 -135.57 24.6396s-100.96 -9.92969 -135.57 -24.6396z" />
-    <glyph glyph-name="running" unicode="&#xf70c;" horiz-adv-x="416" 
-d="M272 352c-26.5098 0 -48 21.4902 -48 48s21.4902 48 48 48s48 -21.4902 48 -48s-21.4902 -48 -48 -48zM113.69 130.53c7.92969 -17.2402 20.6699 -32.3799 37.9893 -42.6104l10.6699 -6.2998l-8.79004 -20.5205c-7.5293 -17.6494 -24.8594 -29.0898 -44.1094 -29.0898
-h-77.4502c-17.6699 0 -32 14.3301 -32 32s14.3301 32 32 32h66.8896zM384 224.01c17.6699 0 32 -14.3193 32 -31.9902c0 -17.6699 -14.3301 -32 -32 -32h-53.9902c-18.1895 0 -35.1094 10.5508 -43.1094 26.8906l-20.2705 41.4297l-31.3096 -78.2803l61.2393 -36.1396
-c18.75 -11.3096 27.5508 -33.6201 21.6406 -54.3896l-31.6406 -101.061c-4.29004 -13.6797 -16.9092 -22.4502 -30.5195 -22.4502c-3.16992 0 -6.38965 0.480469 -9.58008 1.48047c-16.8604 5.28027 -26.25 23.2305 -20.9697 40.0898l27.4697 87.7305l-84.9795 50.1699
-c-27.6104 16.2998 -38.9209 50.8301 -26.3008 80.3096l37.46 87.3906l-14.6992 4.36914c-7.83008 1.86035 -17.6006 -0.25 -25.2705 -6.13965l-39.6895 -30.4102c-14.0205 -10.7402 -34.0908 -8.10938 -44.8604 5.91992c-10.7705 14.0303 -8.11035 34.1104 5.91992 44.8604
-l39.6699 30.4102c23.0703 17.6895 52.54 23.9395 80.8398 17.1396l71.0801 -21.1396c26.3301 -6.70996 49.2803 -25.3906 61.7803 -50.9404l26.0596 -53.25h44.0303z" />
-    <glyph glyph-name="scroll" unicode="&#xf70e;" horiz-adv-x="640" 
-d="M48 448c26.4697 0 48 -21.5303 48 -48v-80h-80c-8.83984 0 -16 7.16016 -16 16v64c0 26.4697 21.5303 48 48 48zM256 35.4297c0 -31.8896 -21.7803 -61.4297 -53.25 -66.5498c-40.0996 -6.53027 -74.75 24.25 -74.75 63.1201v368c0 18.0801 -6.25977 34.5898 -16.4102 48
-h336.41c52.9404 0 96 -43.0596 96 -96v-256h-288v-60.5703zM288 64h336c8.83984 0 16 -7.16016 16 -16c0 -61.8604 -50.1396 -112 -112 -112h-336c52.9404 0 96 43.0703 96 96v32z" />
-    <glyph glyph-name="skull-crossbones" unicode="&#xf714;" horiz-adv-x="448" 
-d="M439.15 -5.05957c7.89941 -3.9502 11.1094 -13.5605 7.15918 -21.4707l-14.3096 -28.6299c-3.95996 -7.89941 -13.5703 -11.0996 -21.4697 -7.14941l-186.53 90.7197l-186.52 -90.7197c-7.91016 -3.95996 -17.5205 -0.75 -21.4707 7.14941l-14.3096 28.6299
-c-3.95996 7.91016 -0.75 17.5205 7.14941 21.4707l141.98 69.0596l-141.99 69.0596c-7.89941 3.9502 -11.0996 13.5605 -7.14941 21.46l14.3096 28.6309c3.95996 7.90918 13.5703 11.1094 21.4697 7.15918l186.53 -90.7197l186.53 90.7197
-c7.91016 3.9502 17.5195 0.740234 21.4697 -7.15918l14.3096 -28.6309c3.95996 -7.89941 0.75 -17.5098 -7.14941 -21.46l-141.99 -69.0596zM150 210.72c-41.7803 22.4102 -70 62.75 -70 109.28c0 70.6904 64.4697 128 144 128s144 -57.3096 144 -128
-c0 -46.5303 -28.2197 -86.8701 -70 -109.28l5.5 -25.8701c2.66992 -12.6191 -5.41992 -24.8496 -16.4502 -24.8496h-126.08c-11.0293 0 -19.1201 12.2305 -16.4502 24.8496zM280 336c-17.6504 0 -32 -14.3496 -32 -32s14.3496 -32 32 -32s32 14.3496 32 32
-s-14.3496 32 -32 32zM168 336c-17.6504 0 -32 -14.3496 -32 -32s14.3496 -32 32 -32s32 14.3496 32 32s-14.3496 32 -32 32z" />
-    <glyph glyph-name="slash" unicode="&#xf715;" horiz-adv-x="640" 
-d="M594.53 -60.6299l-588.351 454.729c-6.96973 5.41992 -8.22949 15.4707 -2.80957 22.4502l19.6396 25.2705c5.41992 6.97949 15.4805 8.23926 22.46 2.80957l588.351 -454.729c6.96973 -5.41992 8.22949 -15.4707 2.80957 -22.4502l-19.6396 -25.2705
-c-5.41992 -6.97949 -15.4805 -8.22949 -22.46 -2.80957z" />
-    <glyph glyph-name="spider" unicode="&#xf717;" horiz-adv-x="576" 
-d="M151.17 280.65l-27.1504 54.2998c-2.14551 4.29883 -3.3623 9.18359 -3.3623 14.3115c0 3.53516 0.573242 6.9375 1.63281 10.1182l25.8896 77.6797c2.79004 8.39062 11.8604 12.9209 20.2402 10.1201l15.1699 -5.05957
-c8.39062 -2.7998 12.9102 -11.8604 10.1201 -20.2402l-23.7998 -71.3896l20.29 -40.5801c-1.41016 -4.20996 -2.49023 -8.20996 -3.20996 -11.79l-5.2207 -26.1201h-4.66992zM573.31 98.6201c4.90039 -7.35059 2.9209 -17.2803 -4.43945 -22.1797l-13.3105 -8.88086
-c-7.34961 -4.89941 -17.29 -2.90918 -22.1895 4.44043l-48 72h-47.0605l60.8301 -97.3301c3.16992 -5.08008 4.86035 -10.96 4.86035 -16.96v-77.71c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v73.1104l-74.0801 118.529
-c1 -14.0498 2.08008 -28.1094 2.08008 -42.21c0 -53.0693 -40.7598 -101.43 -96 -101.43s-96 48.3604 -96 101.43c0 14.1006 1.07031 28.1602 2.08008 42.21l-74.0801 -118.529v-73.1104c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v77.7002
-c0 0.00292969 0.0205078 0.0400391 0.0205078 0.0439453c0 6.20898 1.77246 12.0078 4.83984 16.916l60.8301 97.3301h-47.0605l-48 -72c-4.89941 -7.35059 -14.8398 -9.33984 -22.1895 -4.44043l-13.3105 8.87988c-7.36035 4.90039 -9.33984 14.8398 -4.43945 22.1904
-l52.7393 79.1299c5.74121 8.60547 15.5186 14.248 26.6299 14.25h77.9404l-68.9902 24.3496c-6.81738 2.27441 -12.5947 6.74023 -16.5098 12.6104l-53.5996 80.4102c-4.90039 7.36035 -2.91016 17.29 4.43945 22.1895l13.3105 8.88086
-c7.35938 4.89941 17.29 2.90918 22.1895 -4.44043l50.5703 -75.8301l60.4902 -20.1699h36.0996l10.3701 51.8496c2.18945 10.9707 17.3701 60.1504 69.6299 60.1504s67.4404 -49.1797 69.6299 -60.1504l10.3701 -51.8496h36.0996l60.5 20.1699l50.5605 75.8301
-c4.89941 7.34961 14.8398 9.33984 22.1895 4.44043l13.3105 -8.88086c7.34961 -4.89941 9.33984 -14.8398 4.43945 -22.1895l-53.5996 -80.4102c-3.91504 -5.87012 -9.69238 -10.3359 -16.5098 -12.6104l-68.9902 -24.3594h77.9404
-c11.1084 -0.00292969 20.8828 -5.64453 26.6191 -14.25zM406.09 350.49l-23.7998 71.3896c-2.79004 8.37988 1.74023 17.4404 10.1201 20.2402l15.1699 5.05957c8.37988 2.80078 17.4502 -1.73926 20.2402 -10.1201l25.8896 -77.6797
-c1.06152 -3.18164 1.62598 -6.62109 1.62598 -10.1582c0 -5.12695 -1.20801 -9.97461 -3.35547 -14.2715l-27.1504 -54.2998l-25.9297 -8.65039h-4.66992l-5.2207 26.1201c-0.719727 3.58008 -1.7998 7.58008 -3.20996 11.79z" />
-    <glyph glyph-name="toilet-paper" unicode="&#xf71e;" horiz-adv-x="576" 
-d="M128 448h284.44c-36.7705 -38.4805 -60.4404 -108.4 -60.4404 -192v-172.07c0 -53.6494 -11.8799 -87.5693 -24.71 -126.05c-4.36035 -13.0703 -16.5898 -21.8799 -30.3604 -21.8799h-280.92c-10.9199 0 -18.6299 10.7002 -15.1797 21.0596
-c21.3701 64.1006 31.1699 85.75 31.1699 126.87v172.07c0 106.04 42.9805 192 96 192zM96 224c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16zM160 224c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16
-s7.16016 -16 16 -16zM224 224c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16zM288 224c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16zM480 448c53.0195 0 96 -85.96 96 -192
-s-42.9805 -192 -96 -192s-96 85.96 -96 192s42.9805 192 96 192zM480 192c17.6699 0 32 28.6504 32 64s-14.3301 64 -32 64s-32 -28.6504 -32 -64s14.3301 -64 32 -64z" />
-    <glyph glyph-name="tractor" unicode="&#xf722;" horiz-adv-x="640" 
-d="M528 112c48.5996 0 88 -39.4004 88 -88s-39.4004 -88 -88 -88s-88 39.4004 -88 88s39.4004 88 88 88zM528 0c13.2305 0 24 10.7695 24 24s-10.7695 24 -24 24s-24 -10.7695 -24 -24s10.7695 -24 24 -24zM608 288c17.6699 0 32 -14.3301 31.9902 -32v-50.7598
-c0 -8.49023 -3.37012 -16.6299 -9.37012 -22.6299l-50.8203 -50.8203c-15.7295 7.58984 -33.1602 12.2002 -51.7998 12.2002c-39.1396 0 -73.5498 -19.0098 -95.46 -48h-80.54v-6c0 -12.1504 -9.84961 -22 -22 -22h-7.16016
-c-2.9502 -9.90039 -6.91992 -19.46 -11.9102 -28.7207l5.06055 -5.05957c8.58984 -8.58984 8.58984 -22.5195 0 -31.1104l-31.1104 -31.1094c-8.58984 -8.58984 -22.5195 -8.58984 -31.1104 0l-5.05957 5.05957c-9.25977 -4.99023 -18.8203 -8.95996 -28.7197 -11.9102
-v-7.13965c0 -12.1504 -9.85059 -22 -22 -22h-44c-12.1504 0 -22 9.84961 -22 22v7.15039c-9.90039 2.94922 -19.46 6.91992 -28.7207 11.9092l-5.05957 -5.05957c-8.58984 -8.58984 -22.5195 -8.58984 -31.1104 0l-31.1094 31.1104
-c-8.58984 8.58984 -8.58984 22.5195 0 31.1094l5.05957 5.06055c-4.99023 9.26953 -8.9502 18.8193 -11.9102 28.7295h-7.13965c-12.1504 0 -22 9.85059 -22 22v44c0 12.1504 9.84961 22 22 22h7.15039c2.94922 9.90039 6.91992 19.46 11.9092 28.7207l-5.05957 5.05957
-c-8.58984 8.58984 -8.58984 22.5195 0 31.1104l31.1104 31.1094c7.92969 7.93066 20.2598 8.2002 28.8896 1.4707v146.52c0 26.4697 21.5303 48 48 48h133.45c0.015625 0 0.00878906 0.0341797 0.0244141 0.0341797c19.7969 0 36.8047 -12.0312 44.1055 -29.1738
-l56.0898 -130.86h102.33v40.2002c0 29.9902 10.5801 58.8994 29.5 81.7197c6.37988 7.7002 18.04 8.23047 24.7002 0.780273l21.6299 -24.1699c4.87012 -5.43066 5.74023 -13.6904 1.32031 -19.4902c-8.4502 -11.0801 -13.1504 -24.7197 -13.1504 -38.8398v-40.2002h64z
-M176 32c44.1797 0 80 35.8203 80 80s-35.8203 80 -80 80s-80 -35.8203 -80 -80s35.8203 -80 80 -80zM198 288h110.04l-41.1504 96h-106.89v-96h38z" />
-    <glyph glyph-name="user-injured" unicode="&#xf728;" horiz-adv-x="448" 
-d="M277.37 436.02l-90.6904 -68.0195h-81.1895c19.0098 46.8701 64.8193 80 118.51 80c19.1104 0 37.0801 -4.46973 53.3701 -11.9805zM342.51 368h-102.52l66.0293 49.5195c15.8203 -13.3193 28.5908 -30.0498 36.4902 -49.5195zM224 192c-70.6904 0 -128 57.3096 -128 128
-c0 5.48047 0.94043 10.7002 1.61035 16h252.779c0.660156 -5.2998 1.61035 -10.5195 1.61035 -16c0 -70.6904 -57.3096 -128 -128 -128zM80 148.3c9.34668 4.14844 19.4795 7.31641 29.8096 9.21973l98.4502 -221.52h-128.26v212.3zM0 -16v41.5996
-c0 41.1406 18.8799 77.5107 48 102.16v-191.76c-26.5098 0 -48 21.4902 -48 48zM256 32c26.4697 0 48 -21.5303 48 -48s-21.5303 -48 -48 -48h-12.71l-42.6699 96h55.3799zM313.6 160c74.2305 0 134.4 -60.1699 134.4 -134.4v-41.5996c0 -26.5098 -21.4902 -48 -48 -48
-h-80.4102c10.1504 13.4102 16.4102 29.9199 16.4102 48c0 44.1104 -35.8896 80 -80 80h-69.5898l-42.6699 96h7.37012c22.2393 -10.1797 46.8799 -16 72.8896 -16s50.6504 5.82031 72.8896 16h16.71z" />
-    <glyph glyph-name="vr-cardboard" unicode="&#xf729;" horiz-adv-x="640" 
-d="M608 384c17.6699 0 32 -14.3301 32 -32v-320c0 -17.6699 -14.3301 -32 -32 -32h-160.22c-25.1807 0 -48.0303 14.7695 -58.3604 37.7402l-27.7402 61.6396c-7.88965 17.54 -24.0293 28.6201 -41.6797 28.6201s-33.79 -11.0801 -41.6797 -28.6201l-27.7402 -61.6396
-c-10.3301 -22.9707 -33.1699 -37.7402 -58.3604 -37.7402h-160.22c-17.6699 0 -32 14.3301 -32 32v320c0 17.6699 14.3301 32 32 32h576zM160 144c35.3496 0 64 28.6504 64 64s-28.6504 64 -64 64s-64 -28.6504 -64 -64s28.6504 -64 64 -64zM480 144
-c35.3496 0 64 28.6504 64 64s-28.6504 64 -64 64s-64 -28.6504 -64 -64s28.6504 -64 64 -64z" />
-    <glyph glyph-name="wind" unicode="&#xf72e;" 
-d="M156.7 192c48.7002 0 92.2998 -35 98.3994 -83.4004c7.5 -58.5 -38.0996 -108.6 -95.1992 -108.6c-46.6006 0 -85.6006 33.5 -94.2002 77.5996c-1.7998 9.60059 6.09961 18.4004 15.8994 18.4004h32.8008c6.59961 0 13.0996 -3.7998 15.1992 -10.0996
-c4.30078 -12.7002 16.3008 -21.9004 30.4004 -21.9004c19.5 0 34.9004 17.4004 31.5996 37.4004c-2.59961 15.6992 -17.5 26.5996 -33.3994 26.5996h-142.2c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h140.7zM16 224c-8.7998 0 -16 7.2002 -16 16v32
-c0 8.7998 7.2002 16 16 16h334.2c16 0 30.7998 10.9004 33.3994 26.5996c3.30078 20 -12.1992 37.4004 -31.5996 37.4004c-14.0996 0 -26.0996 -9.2002 -30.4004 -21.9004c-2.09961 -6.2998 -8.5 -10.0996 -15.1992 -10.0996h-32.8008
-c-9.69922 0 -17.6992 8.7002 -15.7998 18.2998c9.7998 50.6006 59.5 87.1006 114.9 75.5c36.2002 -7.59961 65.5 -36.8994 73.0996 -73.0996c13 -61.9004 -34.0996 -116.7 -93.7998 -116.7h-336zM400 192c70.5 0 126 -65.5 108.9 -138.7
-c-9.60059 -41.0996 -43.5 -74 -84.7002 -82.7002c-58.9004 -12.5 -111.601 21.7002 -129.4 72.3008c-3.7002 10.2998 4.40039 21.0996 15.2998 21.0996h33.8008c5.7998 0 11.5996 -2.59961 14.5 -7.59961c8.2998 -14.5 23.6992 -24.4004 41.5996 -24.4004
-c26.5 0 48 21.5 48 48s-21.5 48 -48 48h-116.5c-6.59961 25.2002 -20.5 47.4004 -39.7998 64h156.3z" />
-    <glyph glyph-name="wine-bottle" unicode="&#xf72f;" 
-d="M507.31 375.43c6.25 -6.25 6.25 -16.3799 0.0107422 -22.6201l-22.6299 -22.6299c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-76.6699 -76.6699c19.7002 -46.5801 10.7305 -102.41 -27.2295 -140.37l-158.391 -158.39c-24.9893 -24.9902 -65.5195 -24.9902 -90.5098 0
-l-90.5098 90.5098c-24.9902 24.9902 -24.9902 65.5205 0 90.5098l158.38 158.381c37.9697 37.96 93.79 46.9297 140.37 27.2295l76.6699 76.6699c-6.25 6.25 -6.25 16.3799 0 22.6299l22.6299 22.6299c6.25 6.25 16.3799 6.25 22.6299 0zM179.22 24.71l122.04 122.04
-l-90.5098 90.5098l-122.04 -122.04z" />
-    <glyph glyph-name="cloud-meatball" unicode="&#xf73b;" 
-d="M48 96c26.5 0 48 -21.5 48 -48s-21.5 -48 -48 -48s-48 21.5 -48 48s21.5 48 48 48zM464 96c26.5 0 48 -21.5 48 -48s-21.5 -48 -48 -48s-48 21.5 -48 48s21.5 48 48 48zM345 84.9004c13.5 -7 23 -20.7002 23 -36.9004s-9.5 -29.9004 -23 -36.9004
-c4.59961 -14.5 1.7002 -30.7998 -9.7998 -42.2998c-8.2002 -8.2002 -18.9004 -12.2998 -29.7002 -12.2998c-4.2998 0 -8.5 1.2002 -12.5996 2.5c-7 -13.5 -20.7002 -23 -36.9004 -23s-29.9004 9.5 -36.9004 23c-4.09961 -1.40039 -8.2998 -2.5 -12.5996 -2.5
-c-10.7998 0 -21.5 4.09961 -29.7002 12.2998c-11.5 11.5 -14.5 27.7998 -9.89941 42.2998c-13.5 7 -23 20.7002 -23 36.9004s9.5 29.9004 23 36.9004c-4.5 14.5 -1.60059 30.7998 9.89941 42.2998s27.7998 14.5 42.2998 9.89941c7 13.5 20.7002 23 36.9004 23
-s29.9004 -9.5 36.9004 -23c14.5 4.5 30.7998 1.60059 42.2998 -9.89941c11.3994 -11.5 14.3994 -27.7998 9.7998 -42.2998zM512 224c0 -53 -43 -96 -96 -96h-43.4004c-3.5 8 -8.39941 15.4004 -14.7998 21.7998c-13.5 13.5 -31.5 21.1006 -50.7998 21.2998
-c-13.5 13.2002 -31.7002 20.9004 -51 20.9004s-37.5 -7.7002 -51 -20.9004c-19.2998 -0.199219 -37.2998 -7.7998 -50.7998 -21.2998c-6.40039 -6.39941 -11.2002 -13.7998 -14.7998 -21.7998h-43.4004c-53 0 -96 43 -96 96c0 42.5 27.7998 78.2002 66.0996 90.7998
-c-1.2998 6.90039 -2.09961 13.9004 -2.09961 21.2002c0 61.9004 50.0996 112 112 112c43.2998 0 80.4004 -24.7998 99 -60.7998c14.7002 17.5 36.4004 28.7998 61 28.7998c44.2002 0 80 -35.7998 80 -80c0 -5.59961 -0.5 -11 -1.59961 -16.2002
-c0.5 0 1 0.200195 1.59961 0.200195c53 0 96 -43 96 -96z" />
-    <glyph glyph-name="cloud-moon-rain" unicode="&#xf73c;" horiz-adv-x="576" 
-d="M350.5 222.5c37.2998 -6.7998 65.5 -39.2998 65.5 -78.5c0 -44.2002 -35.7998 -80 -80 -80h-256c-44.2002 0 -80 35.7998 -80 80c0 38.7998 27.5996 71.0996 64.2002 78.4004c0 0.5 -0.200195 1.09961 -0.200195 1.59961c0 53 43 96 96 96
-c32.0996 0 60.2998 -15.9004 77.7002 -40c10.3994 5 22 8 34.2998 8c39.2002 0 71.5996 -28.2998 78.5 -65.5zM567.9 224.2c6.19922 1.2002 10.5996 -6 6.39941 -10.7998c-27 -33.1006 -67.8994 -53.3008 -112.6 -53.3008c-5.2002 0 -10.1006 1 -15.2002 1.5
-c-6.2002 39.4004 -33.0996 72.5 -70.2002 86.8008c-10.7002 27.8994 -32.2002 49.7998 -58.8994 61.6992c3.2998 76.7002 66.5 137.9 144.399 137.9c8.90039 0 17.7998 -0.799805 26.5 -2.40039c6.2002 -1.09961 7.60059 -9.39941 2.10059 -12.5
-c-35.6006 -20.0996 -57.5 -57.5 -57.5 -98.0996c0 -70.5 64.5996 -124.1 135 -110.8zM364.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961
-c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM268.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961
-c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM172.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64
-c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM76.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008
-l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6z" />
-    <glyph glyph-name="cloud-rain" unicode="&#xf73d;" 
-d="M416 320c53 0 96 -43 96 -96s-43 -96 -96 -96h-320c-53 0 -96 43 -96 96c0 42.5 27.7998 78.2002 66.0996 90.7998c-1.2998 6.90039 -2.09961 13.9004 -2.09961 21.2002c0 61.9004 50.0996 112 112 112c43.2998 0 80.4004 -24.7998 99 -60.7998
-c14.7002 17.5 36.4004 28.7998 61 28.7998c44.2002 0 80 -35.7998 80 -80c0 -5.59961 -0.5 -11 -1.59961 -16.2002c0.5 0 1 0.200195 1.59961 0.200195zM88 73.7998c2.5 8.5 13.7998 8.10059 16 0c12.7998 -44.5996 40 -56.2998 40 -87.7002
-c0 -27.6992 -21.5 -50.0996 -48 -50.0996s-48 22.4004 -48 50.0996c0 31.3008 27.2002 43.3008 40 87.7002zM248 73.7998c2.5 8.5 13.7998 8.10059 16 0c12.7998 -44.5996 40 -56.2998 40 -87.7002c0 -27.6992 -21.5 -50.0996 -48 -50.0996s-48 22.4004 -48 50.0996
-c0 31.3008 27.2002 43.3008 40 87.7002zM408 73.7998c2.5 8.5 13.7998 8.10059 16 0c12.7998 -44.5996 40 -56.2998 40 -87.7002c0 -27.6992 -21.5 -50.0996 -48 -50.0996s-48 22.4004 -48 50.0996c0 31.3008 27.2002 43.3008 40 87.7002z" />
-    <glyph glyph-name="cloud-showers-heavy" unicode="&#xf740;" 
-d="M183.9 77.9004c7.69922 -4.40039 10.3994 -14.2002 6 -21.8008l-64 -112c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.30078 -10.3994 14.1006 -6 21.8008l64 112
-c4.40039 7.7998 14.2002 10.3994 21.8008 6zM279.9 77.9004c7.69922 -4.40039 10.3994 -14.2002 6 -21.8008l-64 -112c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.30078 -10.3994 14.1006 -6 21.8008
-l64 112c4.40039 7.7998 14.2002 10.3994 21.8008 6zM87.9004 77.9004c7.69922 -4.40039 10.3994 -14.2002 6 -21.8008l-64 -112c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961
-c-7.69922 4.30078 -10.3994 14.1006 -6 21.8008l64 112c4.40039 7.7998 14.2002 10.3994 21.8008 6zM471.9 77.9004c7.69922 -4.40039 10.3994 -14.2002 6 -21.8008l-64 -112c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961
-c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.30078 -10.3994 14.1006 -6 21.8008l64 112c4.40039 7.7998 14.2002 10.3994 21.8008 6zM375.9 77.9004c7.69922 -4.40039 10.3994 -14.2002 6 -21.8008l-64 -112
-c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.30078 -10.3994 14.1006 -6 21.8008l64 112c4.40039 7.7998 14.2002 10.3994 21.8008 6zM416 320c53 0 96 -43 96 -96s-43 -96 -96 -96h-320
-c-53 0 -96 43 -96 96c0 42.5 27.7998 78.2002 66.0996 90.7998c-1.2998 6.90039 -2.09961 13.9004 -2.09961 21.2002c0 61.9004 50.2002 112 112 112c43.2998 0 80.4004 -24.7998 99 -60.7998c14.7002 17.5 36.4004 28.7998 61 28.7998c44.2002 0 80 -35.7998 80 -80
-c0 -5.59961 -0.5 -11 -1.59961 -16.2002c0.5 0 1 0.200195 1.59961 0.200195z" />
-    <glyph glyph-name="cloud-sun-rain" unicode="&#xf743;" horiz-adv-x="576" 
-d="M510.5 222.5c37.2998 -6.7998 65.5 -39.2998 65.5 -78.5c0 -44.2002 -35.7998 -80 -80 -80h-256c-44.2002 0 -80 35.7998 -80 80c0 38.7998 27.5996 71 64.2002 78.4004c0 0.5 -0.200195 1.09961 -0.200195 1.59961c0 53 43 96 96 96
-c32.0996 0 60.2998 -15.9004 77.7002 -40c10.3994 5 22 8 34.2998 8c39.2002 0 71.5996 -28.2998 78.5 -65.5zM124.1 188.1c3.10059 -3.09961 6.60059 -5.59961 10.2002 -8.2998c-3.89941 -11.3994 -6.2002 -23.3994 -6.2002 -35.8994c0 -2.5 0.5 -4.80078 0.700195 -7.2002
-l-59.2002 -19.7002c-10.1992 -3.2998 -19.8994 6.2998 -16.5 16.5l25.1006 75.2998l-71 35.5c-9.60059 4.7998 -9.60059 18.5 0 23.2998l71 35.5l-25.1006 75.3008c-3.39941 10.1992 6.2002 19.8994 16.4004 16.5l75.2998 -25.1006l35.5 71
-c4.7998 9.60059 18.5 9.60059 23.2998 0l35.5 -71l75.3008 25.1006c10.1992 3.39941 19.8994 -6.2002 16.5 -16.4004l-8.90039 -26.7002c-0.700195 0 -1.2998 0.200195 -2 0.200195c-25.5996 0 -49.2002 -7.7998 -69.2002 -20.7002
-c-37.5996 29.4004 -92.0996 27.2002 -126.7 -7.39941c-37.3994 -37.5 -37.3994 -98.4004 0 -135.801zM193.9 246.1c-18.2002 -8.2998 -33.5 -21.2998 -44.8008 -37.1992c-12.8994 11.6992 -21.0996 28.3994 -21.0996 47.0996c0 35.2998 28.7002 64 64 64
-c12.4004 0 24 -3.7002 33.7998 -9.90039c-16.0996 -17.5996 -27.5996 -39.5 -31.8994 -64zM524.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961
-c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM428.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961
-c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM332.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64
-c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM236.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008
-l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6z" />
-    <glyph glyph-name="democrat" unicode="&#xf747;" horiz-adv-x="640" 
-d="M637.3 191.1c4.90039 -7.39941 2.90039 -17.2998 -4.39941 -22.2998l-26.6006 -17.7002c-7.39941 -4.89941 -17.2998 -3 -22.2002 4.40039c-21.7998 32.7002 -23.8994 38.0996 -40.0996 50.2998v-77.7998h-352l-54 108l-38.0996 -34.5996
-c-6 -6 -14.1006 -9.40039 -22.6006 -9.40039h-31c-12.0996 0 -23.2002 6.90039 -28.5996 17.7002l-14.2998 28.5996c-5.40039 10.7998 -4.30078 23.7998 3 33.5l74.5996 99.2998c1.7002 2.30078 4.2002 3.7002 6.40039 5.40039c-4 2.2002 -8 4.2002 -11.3008 7.5
-c-16.3994 16.4004 -18.3994 41.7998 -6.09961 60.4004c2.7998 4.19922 8.7998 4.7998 12.4004 1.19922l42.8994 -42.7998l41.7998 41.7998c4.40039 4.40039 11.8008 3.7002 15.2002 -1.5c15.1006 -22.7998 12.6006 -53.7998 -7.5 -73.8994l81.2002 -81.2002h235.6
-c50.8008 0 97.9004 -25.2002 126.101 -67.5zM296.2 204.7c3 2.89941 1.39941 7.89941 -2.60059 8.5l-22.7998 3.2998l-10.2002 20.7002c-1.89941 3.7002 -7.19922 3.7002 -9 0l-10.1992 -20.7002l-22.8008 -3.2998c-4.09961 -0.600586 -5.7998 -5.60059 -2.7998 -8.5
-l16.5 -16.1006l-3.89941 -22.6992c-0.700195 -4.10059 3.59961 -7.2002 7.19922 -5.30078l20.4004 10.7002l20.4004 -10.7002c3.59961 -1.89941 7.89941 1.2002 7.19922 5.30078l-3.89941 22.6992zM408.2 204.7c3 2.89941 1.39941 7.89941 -2.60059 8.5l-22.7998 3.2998
-l-10.2002 20.7002c-1.89941 3.7002 -7.19922 3.7002 -9 0l-10.1992 -20.7002l-22.8008 -3.2998c-4.09961 -0.600586 -5.7998 -5.60059 -2.7998 -8.5l16.5 -16.1006l-3.89941 -22.6992c-0.700195 -4.10059 3.59961 -7.2002 7.19922 -5.30078l20.4004 10.7002
-l20.4004 -10.7002c3.59961 -1.89941 7.89941 1.2002 7.19922 5.30078l-3.89941 22.6992zM520.2 204.7c3 2.89941 1.39941 7.89941 -2.60059 8.5l-22.7998 3.2998l-10.2002 20.7002c-1.89941 3.7002 -7.19922 3.7002 -9 0l-10.1992 -20.7002l-22.8008 -3.2998
-c-4.09961 -0.600586 -5.7998 -5.60059 -2.7998 -8.5l16.5 -16.1006l-3.89941 -22.6992c-0.700195 -4.10059 3.59961 -7.2002 7.19922 -5.30078l20.4004 10.7002l20.4004 -10.7002c3.59961 -1.89941 7.89941 1.2002 7.19922 5.30078l-3.89941 22.6992zM192 -48v144h352v-144
-c0 -8.7998 -7.2002 -16 -16 -16h-64c-8.7998 0 -16 7.2002 -16 16v80h-160v-80c0 -8.7998 -7.2002 -16 -16 -16h-64c-8.7998 0 -16 7.2002 -16 16z" />
-    <glyph glyph-name="flag-usa" unicode="&#xf74d;" 
-d="M32 448c17.7002 0 32 -14.2998 32 -32v-464c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v464c0 17.7002 14.2998 32 32 32zM299.9 144.4c31.0996 -8.2002 62.5996 -16.5 100 -16.6006c31.8994 0 68.5 6.7998 112.1 24.1006v-36
-c0 -12.3008 -7.09961 -23.8008 -18.5 -28.8008c-175.8 -76.3994 -211.8 69.1006 -397.5 -23.0996v69.2998c92.2002 39.9004 146.7 26.2002 203.9 11.1006zM299.9 240.4c31.0996 -8.2002 62.5996 -16.5 100 -16.5c31.8994 0 68.5 6.7998 112.1 24.0996v-61.5
-c-92.2002 -39.9004 -146.7 -26.2002 -203.9 -11.0996c-57.5 15.0996 -117.3 30 -212.1 -7.60059v61.5c92.2002 39.9004 146.7 26.2002 203.9 11.1006zM309.4 366.3c-7 2.10059 -14.1006 4.2002 -21.3008 6.2002v-33.2002c4 -1.09961 8.10059 -2.2998 12.1006 -3.5
-c26.7002 -8.09961 52.8994 -15.8994 85.7002 -15.8994c32.7998 0 72.5 7.89941 126.1 31.3994v-68.8994c-92.2002 -39.8008 -146.7 -26.1006 -203.9 -11.1006c-57.5 15.1006 -117.3 29.9004 -212.1 -7.59961v151.899c209.4 94.6006 195.3 -59.0996 366.6 28.2002
-c22.6006 11.5 49.4004 -1.5 49.4004 -26.5996v-30.7998c-105.2 -49.1006 -150.8 -35.7002 -202.6 -20.1006zM160 319.9c8.7998 0 16 7.09961 16 16c0 8.89941 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.90039 7.2002 -16 16 -16zM160 375.7c8.7998 0 16 7.2002 16 16
-c0 8.89941 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.90039 7.2002 -16 16 -16zM224 327.8c8.7998 0 16 7.2002 16 16c0 8.90039 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.89941 7.2002 -16 16 -16zM224 383.7c8.7998 0 16 7.2002 16 16c0 8.89941 -7.2002 16 -16 16
-s-16 -7.2002 -16 -16c0 -8.90039 7.2002 -16 16 -16z" />
-    <glyph glyph-name="meteor" unicode="&#xf753;" 
-d="M511.328 427.197c-11.6074 -38.7021 -34.3076 -111.702 -61.3037 -187.701c6.99902 -2.09375 13.4043 -4 18.6074 -5.59277c6.58301 -2.00684 11.3779 -8.13184 11.3779 -15.3672c0 -2.71875 -0.685547 -5.29395 -1.87988 -7.53906
-c-22.1055 -42.2969 -82.6904 -152.795 -142.479 -214.403c-0.999023 -1.09375 -1.99902 -2.5 -2.99902 -3.5c-35.2676 -35.2773 -83.9824 -57.1094 -137.757 -57.1094c-107.53 0 -194.83 87.2998 -194.83 194.83c0 53.7559 21.7637 102.511 57.0195 137.775
-c1 1 2.40625 2 3.49902 3c61.6006 59.9053 171.975 120.405 214.374 142.498c2.24512 1.19434 4.80664 1.87109 7.52441 1.87109c7.23535 0 13.374 -4.78711 15.3779 -11.3711c1.59375 -5.09375 3.5 -11.5928 5.59277 -18.5928
-c75.8955 26.999 148.978 49.7021 187.675 61.2959c1.4834 0.448242 3.05664 0.689453 4.68652 0.689453c8.93164 0 16.1826 -7.25098 16.1826 -16.1826c0 -1.59961 -0.236328 -3.14062 -0.668945 -4.60059zM319.951 127.998
-c-0.00976562 70.626 -57.3525 127.962 -127.98 127.962c-70.6348 0 -127.98 -57.3457 -127.98 -127.98c0 -70.6338 57.3457 -127.979 127.98 -127.979c70.6318 0 127.976 57.3438 127.976 127.976c0 0.0078125 0.00488281 0.0146484 0.00488281 0.0224609zM191.971 159.997
-c-0.00292969 -17.6562 -14.3379 -31.9902 -31.9951 -31.9902c-17.6582 0 -31.9951 14.3369 -31.9951 31.9951c0 17.6592 14.3369 31.9951 31.9951 31.9951h0.0371094c17.6387 0 31.959 -14.3203 31.959 -31.959
-c0 -0.0136719 -0.000976562 -0.0263672 -0.000976562 -0.0410156v0zM223.966 79.998c-0.000976562 -8.82812 -7.16895 -15.9951 -15.998 -15.9951s-15.9971 7.16895 -15.9971 15.998s7.16797 15.9971 15.9971 15.9971c8.81738 -0.0283203 15.9707 -7.18262 15.998 -16v0z
-" />
-    <glyph glyph-name="person-booth" unicode="&#xf756;" horiz-adv-x="576" 
-d="M192 -48v176h64v-176c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16zM224 224c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32h-57.5c-12.7998 0 -24.7998 5 -33.9004 14.0996l-20.8994 20.9004v-80.5996l41.2002 -61.3008
-c4.39941 -8.7998 6.69922 -18.6992 6.69922 -28.5996v-56.5c0 -17.7002 -14.2998 -32 -32 -32c-17.6992 0 -32 14.2998 -32 32v56l-29.0996 43c-0.900391 0.400391 -1.59961 1.2002 -2.5 1.7002l-0.0996094 -100.7c0 -17.7002 -14.4004 -32 -32 -32
-c-17.6006 0 -31.9004 14.2998 -31.9004 32l0.200195 160l-0.200195 95.9004c0 17.0996 6.7002 33.1992 18.7002 45.2998c12.0996 12.0996 28.2002 18.7998 45.2998 18.7998h18.7002c17 0 33.0996 -6.59961 45.2002 -18.7002l45.1992 -45.2998h50.9004zM64 320
-c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM288 416v32h192v-416c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32c0 -17.7002 -14.2998 -32 -32 -32c-17.0996 0 -30.7998 13.5 -31.7002 30.4004
-c-4.2998 -21.3008 -17.0996 -30.4004 -32.2998 -30.4004c-18.4004 0 -35.7002 16.7002 -31.4004 38.2998l30.9004 154.601zM192 416c0 17.7002 14.2998 32 32 32h32v-192h-64v160zM544 448c17.7002 0 32 -14.2998 32 -32v-464c0 -8.7998 -7.2002 -16 -16 -16h-32
-c-8.7998 0 -16 7.2002 -16 16v496h32z" />
-    <glyph glyph-name="poo-storm" unicode="&#xf75a;" horiz-adv-x="448" 
-d="M308 112c9.2002 0 15 -10 10.4004 -18l-88 -152c-2.2002 -3.7998 -6.2002 -6 -10.4004 -6c-7.7002 0 -13.5 7.2002 -11.7002 14.7998l23 97.2002h-59.2998c-7.2998 0 -12.9004 6.40039 -11.9004 13.5996l16 120c0.800781 5.90039 5.90039 10.4004 11.9004 10.4004h68
-c7.90039 0 13.5996 -7.5 11.5996 -15.0996l-17.2998 -64.9004h57.7002zM374.4 223.3c41 -3.2998 73.5996 -37.5 73.5 -79.2998c0 -44 -36 -80 -80 -80h-30l8.09961 14c7.7998 13.5 7.7998 30.4004 0 44s-22.4004 22 -38.0996 22h-16l6.59961 24.7002
-c3.59961 13.2998 0.799805 27.2002 -7.59961 38.0996c-8.40039 10.9004 -21.1006 17.2002 -34.9004 17.2002h-68c-22 0 -40.7002 -16.4004 -43.7002 -38.2002l-16 -120c0 -0.599609 0.100586 -1.2002 0 -1.7998h-48.2998c-44 0 -80 36 -80 80
-c0 41.7998 32.5996 76 73.5996 79.2998c-5.89941 9.60059 -9.59961 20.6006 -9.59961 32.7002c0 35.2998 28.7002 64 64 64h16c44.2002 0 80 35.7998 80 80c0 17.4004 -5.7002 33.4004 -15.0996 46.5c4.89941 0.799805 9.89941 1.5 15.0996 1.5c53 0 96 -43 96 -96
-c0 -11.2998 -2.2998 -21.9004 -5.90039 -32h5.90039c35.2998 0 64 -28.7002 64 -64c0 -12.0996 -3.7002 -23.0996 -9.59961 -32.7002z" />
-    <glyph glyph-name="rainbow" unicode="&#xf75b;" horiz-adv-x="576" 
-d="M268.3 415.3c167.7 11.2998 307.7 -122 307.7 -287.3v-144c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v136.2c0 113.8 -81.5996 215.399 -194.5 229.899c-136.6 17.6006 -253.5 -88.8994 -253.5 -222.1v-144c0 -8.7998 -7.2002 -16 -16 -16h-32
-c-8.7998 0 -16 7.2002 -16 16v133.8c0 153.3 115.4 287.3 268.3 297.5zM262.7 318.4c117.1 15 217.3 -76.2002 217.3 -190.4v-144c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v138.3c0 66.9004 -48.7002 126.601 -115.2 133.101
-c-76.2998 7.39941 -140.8 -52.6006 -140.8 -127.4v-144c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v137.3c0 97.6006 70 184.7 166.7 197.101zM268.9 222.1c61.2998 11.9004 115.1 -34.8994 115.1 -94.0996v-144c0 -8.7998 -7.2002 -16 -16 -16h-32
-c-8.7998 0 -16 7.2002 -16 16v144c0 17.5996 -14.2998 32 -32 32s-32 -14.4004 -32 -32v-144c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v140.2c0 46.3994 31.2998 89 76.9004 97.8994z" />
-    <glyph glyph-name="republican" unicode="&#xf75e;" horiz-adv-x="640" 
-d="M544 256v-64h-544v64c0 88.4004 71.5996 160 160 160h224c88.4004 0 160 -71.5996 160 -160zM176.3 277.6c3.5 3.5 1.60059 9.5 -3.39941 10.2002l-27.4004 4l-12.2002 24.7998c-2.09961 4.40039 -8.5 4.5 -10.7002 0l-12.1992 -24.7998l-27.4004 -4
-c-4.90039 -0.700195 -6.90039 -6.7002 -3.2998 -10.2002l19.7998 -19.2998l-4.7002 -27.2998c-0.799805 -4.90039 4.40039 -8.59961 8.7002 -6.2998l24.5 12.8994l24.5 -12.8994c4.40039 -2.2998 9.5 1.39941 8.7002 6.2998l-4.7002 27.2998zM320.3 277.6
-c3.5 3.5 1.60059 9.5 -3.39941 10.2002l-27.4004 4l-12.2002 24.7998c-2.09961 4.40039 -8.5 4.5 -10.7002 0l-12.1992 -24.7998l-27.4004 -4c-4.90039 -0.700195 -6.90039 -6.7002 -3.2998 -10.2002l19.7998 -19.2998l-4.7002 -27.2998
-c-0.799805 -4.90039 4.40039 -8.59961 8.7002 -6.2998l24.5 12.8994l24.5 -12.8994c4.40039 -2.2998 9.5 1.39941 8.7002 6.2998l-4.7002 27.2998zM464.3 277.6c3.5 3.5 1.60059 9.5 -3.39941 10.2002l-27.4004 4l-12.2002 24.7998c-2.09961 4.40039 -8.5 4.5 -10.7002 0
-l-12.1992 -24.7998l-27.4004 -4c-4.90039 -0.700195 -6.90039 -6.7002 -3.2998 -10.2002l19.7998 -19.2998l-4.7002 -27.2998c-0.799805 -4.90039 4.40039 -8.59961 8.7002 -6.2998l24.5 12.8994l24.5 -12.8994c4.40039 -2.2998 9.5 1.39941 8.7002 6.2998l-4.7002 27.2998z
-M624 128c8.7998 0 16 -7.2002 16 -16v-64c0 -46.9004 -40.5996 -84.5 -88.4004 -79.5996c-41.5996 4.19922 -71.5996 42.5 -71.5996 84.2998v43.2998h-32v-112c0 -8.7998 -7.2002 -16 -16 -16h-96c-8.7998 0 -16 7.2002 -16 16v80h-192v-80c0 -8.7998 -7.2002 -16 -16 -16
-h-96c-8.7998 0 -16 7.2002 -16 16v176h544v-112c0 -8.7998 7.2002 -16 16 -16s16 7.2002 16 16v64c0 8.7998 7.2002 16 16 16h32z" />
-    <glyph glyph-name="smog" unicode="&#xf75f;" horiz-adv-x="640" 
-d="M624 80c8.7998 0 16 -7.2002 16 -16v-16c0 -8.7998 -7.2002 -16 -16 -16h-544c-8.7998 0 -16 7.2002 -16 16v16c0 8.7998 7.2002 16 16 16h544zM144 -16c8.7998 0 16 -7.2002 16 -16v-16c0 -8.7998 -7.2002 -16 -16 -16h-128c-8.7998 0 -16 7.2002 -16 16v16
-c0 8.7998 7.2002 16 16 16h128zM560 -16c8.7998 0 16 -7.2002 16 -16v-16c0 -8.7998 -7.2002 -16 -16 -16h-336c-8.7998 0 -16 7.2002 -16 16v16c0 8.7998 7.2002 16 16 16h336zM144 160c-79.5 0 -144 64.5 -144 144s64.5 144 144 144c41 0 77.7998 -17.2998 104 -44.7998
-c26.2002 27.5 63 44.7998 104 44.7998c54.7998 0 102 -31 126.3 -76.0996c15 7.5 31.7002 12.0996 49.7002 12.0996c61.9004 0 112 -50.0996 112 -112s-50.0996 -112 -112 -112h-60.0996c-22.6006 -19.7002 -51.6006 -32 -83.9004 -32s-61.4004 12.2998 -83.9004 32h-156.1z
-" />
-    <glyph glyph-name="temperature-high" unicode="&#xf769;" 
-d="M416 448c52.9004 0 96 -43.0996 96 -96s-43.0996 -96 -96 -96s-96 43.0996 -96 96s43.0996 96 96 96zM416 320c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM256 336v-166.5c19.7002 -24.5996 32 -55.5 32 -89.5
-c0 -79.5 -64.5 -144 -144 -144s-144 64.5 -144 144c0 34 12.2998 64.7998 32 89.5v166.5c0 61.9004 50.0996 112 112 112s112 -50.0996 112 -112zM144 0c44.0996 0 80 35.9004 80 80c0 25.5 -12.2002 49 -32 63.7998v192.2c0 26.5 -21.5 48 -48 48s-48 -21.5 -48 -48v-192.2
-c-19.7998 -14.8994 -32 -38.2998 -32 -63.7998c0 -44.0996 35.9004 -80 80 -80zM160 125.1c18.5996 -6.59961 32 -24.1992 32 -45.0996c0 -26.5 -21.5 -48 -48 -48s-48 21.5 -48 48c0 20.9004 13.4004 38.5 32 45.0996v210.9c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16
-v-210.9z" />
-    <glyph glyph-name="temperature-low" unicode="&#xf76b;" 
-d="M416 448c52.9004 0 96 -43.0996 96 -96s-43.0996 -96 -96 -96s-96 43.0996 -96 96s43.0996 96 96 96zM416 320c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM256 336v-166.5c19.7002 -24.5996 32 -55.5 32 -89.5
-c0 -79.5 -64.5 -144 -144 -144s-144 64.5 -144 144c0 34 12.2998 64.7998 32 89.5v166.5c0 61.9004 50.0996 112 112 112s112 -50.0996 112 -112zM144 0c44.0996 0 80 35.9004 80 80c0 25.5 -12.2002 49 -32 63.7998v192.2c0 26.5 -21.5 48 -48 48s-48 -21.5 -48 -48v-192.2
-c-19.7998 -14.8994 -32 -38.2998 -32 -63.7998c0 -44.0996 35.9004 -80 80 -80zM160 125.1c18.5996 -6.59961 32 -24.1992 32 -45.0996c0 -26.5 -21.5 -48 -48 -48s-48 21.5 -48 48c0 20.9004 13.4004 38.5 32 45.0996v18.9004c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16
-v-18.9004z" />
-    <glyph glyph-name="vote-yea" unicode="&#xf772;" horiz-adv-x="640" 
-d="M608 128c17.7002 0 32 -14.2998 32 -32v-96c0 -17.7002 -14.2998 -32 -32 -32h-576c-17.7002 0 -32 14.2998 -32 32v96c0 17.7002 14.2998 32 32 32h64v-64h-22.4004c-5.2998 0 -9.59961 -3.59961 -9.59961 -8v-16c0 -4.40039 4.2998 -8 9.59961 -8h492.801
-c5.2998 0 9.59961 3.59961 9.59961 8v16c0 4.40039 -4.2998 8 -9.59961 8h-22.4004v64h64zM512 64h-384v319.7c0 17.7998 14.5 32.2998 32.4004 32.2998h319.3c17.7998 0 32.2998 -14.4004 32.2998 -32.2998v-319.7zM211.2 246c-4.2002 -4.2002 -4.2998 -11 0 -15.2002
-l74.0996 -74.7002c4.2002 -4.2998 11 -4.2998 15.2002 -0.0996094l128.3 127.2c4.2998 4.2002 4.2998 11 0.100586 15.2002l-25.3008 25.5c-4.19922 4.2998 -11 4.2998 -15.1992 0.0996094l-95.2002 -94.4004l-41.2998 41.6006
-c-4.2002 4.2998 -11 4.2998 -15.2002 0.0996094z" />
-    <glyph glyph-name="water" unicode="&#xf773;" horiz-adv-x="576" 
-d="M562.1 64.0996c8.10059 -0.899414 13.9004 -8.2998 13.8008 -16.2998v-31.5996c0 -9.10059 -7.60059 -16.7998 -16.7002 -16c-28.2002 2.5 -55.7998 11.5996 -79.1006 25.7998c-55 -34.0996 -135.5 -34.5996 -192 0c-55 -34.0996 -135.5 -34.5996 -192 0
-c-23.2998 -14.5 -50.5996 -23.4004 -79.3994 -25.9004c-9.10059 -0.799805 -16.7002 6.90039 -16.7002 16v32.2002c0 7.90039 5.7002 14.9004 13.5996 15.7002c21.7002 2.2998 42.2002 10.2002 57.7002 22.4004c13.7998 10.8994 33.6006 13.1992 47.1006 2
-c38.2998 -31.7002 107.199 -31.8008 145.199 -1.7002c13.7002 10.8994 33.2002 13 46.7002 1.7998c38.5 -31.9004 107.8 -31.9004 145.7 -1.5c14 11.2998 34.0996 11.0996 48.2002 0c15.7998 -12.4004 36.3994 -20.5 57.8994 -22.9004zM562.1 208.1
-c8.10059 -0.899414 13.9004 -8.2998 13.8008 -16.2998v-31.5996c0 -9.10059 -7.60059 -16.7998 -16.7002 -16c-28.2002 2.5 -55.7998 11.5996 -79.1006 25.7998c-55 -34.0996 -135.5 -34.5996 -192 0c-55 -34.0996 -135.5 -34.5996 -192 0
-c-23.2998 -14.5 -50.5996 -23.4004 -79.3994 -25.9004c-9.10059 -0.799805 -16.7002 6.90039 -16.7002 16v32.2002c0 7.90039 5.7002 14.9004 13.5996 15.7002c21.7002 2.2998 42.2002 10.2002 57.7002 22.4004c13.7998 10.8994 33.6006 13.1992 47.1006 2
-c38.2998 -31.7002 107.199 -31.8008 145.199 -1.7002c13.7002 10.8994 33.2002 13 46.7002 1.7998c38.5 -31.9004 107.8 -31.9004 145.7 -1.5c14 11.2998 34.0996 11.0996 48.2002 0c15.7998 -12.4004 36.3994 -20.5 57.8994 -22.9004zM562.1 352.1
-c8.10059 -0.899414 13.9004 -8.2998 13.8008 -16.2998v-31.5996c0 -9.10059 -7.60059 -16.7998 -16.7002 -16c-28.2002 2.5 -55.7998 11.5996 -79.1006 25.7998c-55 -34.0996 -135.5 -34.5996 -192 0c-55 -34.0996 -135.5 -34.5996 -192 0
-c-23.2998 -14.5 -50.5996 -23.4004 -79.3994 -25.9004c-9.10059 -0.799805 -16.7002 6.90039 -16.7002 16v32.2002c0 7.90039 5.7002 14.9004 13.5996 15.7002c21.7002 2.2998 42.2002 10.2002 57.7002 22.4004c13.7998 10.8994 33.6006 13.1992 47.1006 2
-c38.2998 -31.7002 107.199 -31.8008 145.199 -1.7002c13.7002 10.8994 33.2002 13 46.7002 1.7998c38.5 -31.9004 107.8 -31.9004 145.7 -1.5c14 11.2998 34.0996 11.0996 48.2002 0c15.7998 -12.4004 36.3994 -20.4004 57.8994 -22.9004z" />
-    <glyph glyph-name="baby" unicode="&#xf77c;" horiz-adv-x="384" 
-d="M192 288c-44.2002 0 -80 35.7998 -80 80s35.7998 80 80 80s80 -35.7998 80 -80s-35.7998 -80 -80 -80zM138.6 39.2002l29.4004 -39.2002c13.2002 -17.7002 9.7002 -42.7998 -8 -56c-7.2002 -5.40039 -15.7002 -8 -24 -8c-12.0996 0 -24.0996 5.5 -32 16l-48 64
-c-10.9004 14.5996 -10.5996 34.7998 0.799805 49l45.9004 57.4004l61.5 -51.2002zM281.3 122.4l45.9004 -57.4004c11.3994 -14.2002 11.7002 -34.4004 0.799805 -49l-48 -64c-7.7998 -10.5 -19.7998 -16 -32 -16c-8.40039 0 -16.7998 2.59961 -24 8
-c-17.7002 13.2002 -21.2002 38.2998 -8 56l29.4004 39.2002l-25.6006 32zM376.7 303c12.7002 -18.0996 8.39941 -43 -9.7002 -55.7998l-40.5996 -28.5c-17 -11.9004 -35.4004 -20.9004 -54.4004 -27.9004v-30.7998h-160v30.9004c-19 7 -37.4004 16 -54.4004 27.8994
-l-40.5996 28.5c-18 12.7002 -22.4004 37.6006 -9.7002 55.7002c12.7002 18 37.6006 22.4004 55.7002 9.7002l40.5996 -28.4004c52.6006 -37 124.101 -37 176.801 0l40.5996 28.5c18.0996 12.6006 43 8.2998 55.7002 -9.7998z" />
-    <glyph glyph-name="baby-carriage" unicode="&#xf77d;" 
-d="M144.8 431l111.2 -175h-256c0 74 35.2998 140.1 90.7998 184.4c16.7998 13.3994 42.7002 8.39941 54 -9.40039zM496 352c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-48v-64c0 -50.5996 -23 -96.4004 -60.2998 -130.7
-c34.5996 -8.89941 60.2998 -40 60.2998 -77.2998c0 -44.2002 -35.7998 -80 -80 -80s-80 35.7998 -80 80c0 8.90039 1.7002 17.2002 4.40039 25.2002c-21.5 -5.90039 -44.6006 -9.2002 -68.4004 -9.2002s-46.7998 3.2998 -68.4004 9.2002
-c2.60059 -8 4.40039 -16.2998 4.40039 -25.2002c0 -44.2002 -35.7998 -80 -80 -80s-80 35.7998 -80 80c0 37.2998 25.7002 68.4004 60.2998 77.2998c-37.2998 34.2998 -60.2998 80.1006 -60.2998 130.7h384v64c0 35.2998 28.7002 64 64 64h48zM80 -16
-c17.5996 0 32 14.4004 32 32s-14.4004 32 -32 32s-32 -14.4004 -32 -32s14.4004 -32 32 -32zM400 16c0 17.5996 -14.4004 32 -32 32s-32 -14.4004 -32 -32s14.4004 -32 32 -32s32 14.4004 32 32z" />
-    <glyph glyph-name="biohazard" unicode="&#xf780;" horiz-adv-x="576" 
-d="M287.9 336c-18.5 0 -36 -3.7998 -52.5 -9.5c-13.3008 10.2998 -23.6006 24.2998 -29.5 40.7002c25.1992 10.8994 53 16.8994 82.0996 16.8994c29.2002 0 57 -6.09961 82.2002 -17c-5.90039 -16.3994 -16.2002 -30.3994 -29.5 -40.6992
-c-16.6006 5.7998 -34.2002 9.59961 -52.7998 9.59961zM163.6 9.2998c-47.5 35.5 -79.1992 90.7002 -83.2998 153.5c7.2998 2.10059 14.9004 3.10059 22.5 3.10059c9.2002 0 17.9004 -1.80078 26.4004 -4.60059c4.09961 -44.2998 26 -83.2002 58.8994 -109.6
-c-4.09961 -16 -12.5 -30.6006 -24.5 -42.4004zM387.8 51.9004c32.7002 26.3994 54.6006 65.0996 58.7002 109.3c8.59961 2.7998 17.4004 4.7002 26.5996 4.7002c7.5 0 15 -1 22.2002 -3c-3.89941 -62.8008 -35.5996 -118 -83 -153.5c-12 11.7998 -20.3994 26.5 -24.5 42.5z
-M501.3 256.9c34.6006 -20.4004 61 -53.3008 74.1006 -92.4004c1.2998 -3.7002 -0.200195 -7.7998 -3.5 -9.7998c-3.30078 -2 -7.5 -1.2998 -10 1.59961c-9.40039 10.7998 -19 19 -29.2002 25.1006c-57.2998 33.8994 -130.8 13.6992 -163.9 -45
-c-33.0996 -58.7002 -13.3994 -134 43.9004 -167.9c10.2002 -6.09961 21.8994 -10.5 35.7998 -13.4004c3.7998 -0.799805 6.40039 -4.19922 6.40039 -8.09961c-0.100586 -4 -2.7002 -7.2998 -6.5 -8c-39.7002 -7.7998 -80.6006 -0.799805 -115.2 19.7002
-c-18 10.5996 -32.9004 24.5 -45.2998 40.0996c-12.4004 -15.5996 -27.3008 -29.5 -45.3008 -40.0996c-34.5996 -20.5 -75.5 -27.5 -115.199 -19.7002c-3.80078 0.700195 -6.40039 4 -6.5 8c0 3.90039 2.69922 7.2998 6.39941 8.09961
-c13.7998 3 25.6006 7.30078 35.7998 13.4004c57.3008 33.9004 77 109.2 43.9004 167.9c-33.0996 58.6992 -106.6 78.8994 -163.9 45c-10.1992 -6 -19.7998 -14.3008 -29.1992 -25.1006c-2.5 -2.89941 -6.7002 -3.59961 -10 -1.59961
-c-3.30078 2.09961 -4.80078 6.09961 -3.5 9.7998c13.2998 39.0996 39.6992 71.9004 74.2998 92.4004c17.5996 10.3994 36.3994 16.5996 55.2998 19.8994c-6.09961 17.7002 -10 36.4004 -10 56.2002c0 41 14.5996 80.7998 41 112.2c2.5 3 6.59961 3.7002 10 1.7998
-c3.2998 -1.90039 4.7998 -6 3.59961 -9.7002c-4.39941 -13.7998 -6.59961 -26.3994 -6.59961 -38.5c0 -67.7998 53.7998 -122.899 120 -122.899s120 55.0996 120 122.899c0 12.2002 -2.09961 24.7002 -6.59961 38.5c-1.2002 3.7002 0.299805 7.7998 3.59961 9.7002
-c3.40039 1.90039 7.5 1.2002 10 -1.7998c26.5 -31.4004 41 -71.2002 41 -112.2c0 -19.7998 -4 -38.5 -10 -56.2002c19 -3.2998 37.7002 -9.5 55.2998 -19.8994zM287.9 127.9c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48z" />
-    <glyph glyph-name="blog" unicode="&#xf781;" 
-d="M172.2 221.2c75.5 -15 129.899 -89.2998 112.5 -172.2c-11.4004 -54.2998 -55.2998 -98.2998 -109.7 -109.7c-92.9004 -19.5 -175 51.2002 -175 140.7v248c0 13.2998 10.7002 24 24 24h48c13.2998 0 24 -10.7002 24 -24v-248c0 -26.5 21.5 -48 48 -48s48 21.5 48 48
-c0 20.5996 -13.0996 38.2002 -31.2998 45c-9.60059 3.59961 -16.7002 11.7998 -16.7002 22v50.4004c0 14.8994 13.5996 26.6992 28.2002 23.7998zM209 448c163.2 -8.59961 294.4 -139.8 302.9 -303c0.5 -9.2002 -6.80078 -17 -16 -17h-32.1006
-c-8.39941 0 -15.3994 6.59961 -15.8994 15c-7.5 129.5 -111.5 234.5 -240.9 241.5c-8.40039 0.400391 -15 7.40039 -15 15.9004v31.5996c0 9.2002 7.7998 16.5 17 16zM209.3 352c110.101 -8.5 198.2 -96.5996 206.601 -206.7
-c0.699219 -9.2998 -6.80078 -17.2998 -16.1006 -17.2998h-32.2002c-8.2998 0 -15.0996 6.40039 -15.8994 14.7002c-6.90039 77 -68.1006 138.899 -144.9 145.2c-8.2998 0.599609 -14.7998 7.5 -14.7998 15.8994v32.1006c0 9.39941 8 16.7998 17.2998 16.0996z" />
-    <glyph glyph-name="calendar-day" unicode="&#xf783;" horiz-adv-x="448" 
-d="M0 -16v272h448v-272c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48zM64 176v-96c0 -8.7998 7.2002 -16 16 -16h96c8.7998 0 16 7.2002 16 16v96c0 8.7998 -7.2002 16 -16 16h-96c-8.7998 0 -16 -7.2002 -16 -16zM400 384c26.5 0 48 -21.5 48 -48v-48h-448v48
-c0 26.5 21.5 48 48 48h48v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h128v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h48z" />
-    <glyph glyph-name="calendar-week" unicode="&#xf784;" horiz-adv-x="448" 
-d="M0 -16v272h448v-272c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48zM64 176v-64c0 -8.7998 7.2002 -16 16 -16h288c8.7998 0 16 7.2002 16 16v64c0 8.7998 -7.2002 16 -16 16h-288c-8.7998 0 -16 -7.2002 -16 -16zM400 384c26.5 0 48 -21.5 48 -48v-48h-448
-v48c0 26.5 21.5 48 48 48h48v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h128v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h48z" />
-    <glyph glyph-name="candy-cane" unicode="&#xf786;" 
-d="M497.5 356c35.7002 -75.5 2.7998 -166.1 -68.9004 -209l-347.3 -206.5c-5.2002 -3 -10.7998 -4.5 -16.3994 -4.5c-10.9004 0 -21.5 5.59961 -27.5 15.5996l-32.8008 54.9004c-9.09961 15.2002 -4.19922 34.7998 11 43.9004l353.601 210.1
-c15.0996 9.09961 20.0996 28.7998 11 43.9004c-6 10 -16.6006 15.5996 -27.5 15.5996c-5.60059 0 -11.2998 -1.40039 -16.4004 -4.5l-27.5 -16.4004c-5.2002 -3 -10.7998 -4.5 -16.3994 -4.5c-10.9004 0 -21.5 5.60059 -27.5 15.6006l-32.8008 54.8994
-c-9.09961 15.2002 -4.19922 34.8008 11 43.9004l27.5 16.4004c25.6006 15.2998 53.9004 22.5996 81.8008 22.5996c59.3994 0 117.199 -33.0996 145.1 -92zM319.8 343c8.5 5.09961 18.1006 7.59961 27.9004 8.40039l-20.6006 61.7998
-c-10.5 -2.10059 -20.5996 -5.5 -30.2998 -10.2002l20.5 -61.5zM145.9 16.2002l30.7998 18.2998l-60.5 38.5l-30.7998 -18.2998zM253.4 80.0996l30.7998 18.3008l-60.5 38.5l-30.7998 -18.3008zM364.3 146l30.7998 18.2998l-60.5 38.5l-30.7998 -18.2998zM384.7 343.3
-c9.2002 -5.39941 17.2002 -13 22.8994 -22.2998l45.7002 45.7002c-6.59961 8.5 -14.2002 16.0996 -22.5996 22.5996zM466.8 235.5c4.60059 9.7998 8 20 10.1006 30.4004l-60.4004 20.0996c-0.0996094 -4.5 -0.700195 -9.09961 -1.7998 -13.5996
-c-1.60059 -6.2002 -4.2002 -11.8008 -7.40039 -17.1006z" />
-    <glyph glyph-name="carrot" unicode="&#xf787;" 
-d="M298.2 291.4c61.7002 -30.1006 87.2998 -104.5 57.2002 -166.2c-12.6006 -25.7998 -33.1006 -45.4004 -57.1006 -57.1006l-102 -49.7998l-57 57c-6.2002 6.2002 -16.2998 6.2002 -22.5996 0s-6.2998 -16.3994 0 -22.5996l49.2002 -49.2002l-133.601 -65.2002
-c-11.0996 -5.39941 -24.5996 -0.799805 -30 10.2998c-3.09961 6.40039 -2.89941 13.7002 0 19.7002l128.101 262.7l50.1992 -50.2002c3.10059 -3.09961 7.2002 -4.7002 11.3008 -4.7002c4.09961 0 8.19922 1.60059 11.2998 4.7002c6.2998 6.2002 6.2998 16.2998 0 22.6006
-l-55.2002 55.1992c35.7002 43.3008 97.5 58.5 150.2 32.8008zM390.3 326.3c40.7002 19.5 88.7998 9.40039 121.7 -30.2998c-41.5996 -50.2998 -107.5 -52.5 -151.9 -7.90039l-8 8c-44.5996 44.4004 -42.3994 110.2 7.90039 151.9
-c39.7002 -32.9004 49.7998 -81 30.2998 -121.7z" />
-    <glyph glyph-name="cash-register" unicode="&#xf788;" 
-d="M511.1 69.2002c0.600586 -3.5 0.900391 -7 0.800781 -10.5v-90.7002c0 -17.7002 -14.3008 -32 -32 -32h-448c-17.7002 0 -32 14.2998 -32 32v90.7998c0 3.5 0.299805 7 0.899414 10.5l26.7002 160c2.59961 15.4004 16 26.7002 31.5996 26.7002h84.9004v64h-96
-c-8.7998 0 -16 7.2002 -16 16v96c0 8.7998 7.2002 16 16 16h256c8.7998 0 16 -7.2002 16 -16v-96.0996c0 -8.80078 -7.2002 -16 -16 -16h-96v-64h244.8c15.7002 0 29 -11.3008 31.6006 -26.7002zM280 200v-16c0 -8.7998 7.2002 -16 16 -16h16c8.7998 0 16 7.2002 16 16v16
-c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16zM248 136c-8.7998 0 -16 -7.2002 -16 -16v-16c0 -8.7998 7.2002 -16 16 -16h16c8.7998 0 16 7.2002 16 16v16c0 8.7998 -7.2002 16 -16 16h-16zM216 216h-16c-8.7998 0 -16 -7.2002 -16 -16v-16
-c0 -8.7998 7.2002 -16 16 -16h16c8.7998 0 16 7.2002 16 16v16c0 8.7998 -7.2002 16 -16 16zM80 368h192v32h-192v-32zM120 168c8.7998 0 16 7.2002 16 16v16c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16v-16c0 -8.7998 7.2002 -16 16 -16h16zM136 104
-c0 -8.7998 7.2002 -16 16 -16h16c8.7998 0 16 7.2002 16 16v16c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16v-16zM352 -8v16c0 4.40039 -3.59961 8 -8 8h-176c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h176c4.40039 0 8 3.59961 8 8
-zM376 104v16c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16v-16c0 -8.7998 7.2002 -16 16 -16h16c8.7998 0 16 7.2002 16 16zM424 184v16c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16v-16c0 -8.7998 7.2002 -16 16 -16h16
-c8.7998 0 16 7.2002 16 16z" />
-    <glyph glyph-name="compress-arrows-alt" unicode="&#xf78c;" 
-d="M200 160c13.2998 0 24 -10.7002 24 -24v-112c0 -21.4004 -25.7998 -32.0996 -40.9004 -17l-31.0996 33l-99.2998 -99.2998c-6.2002 -6.2002 -16.4004 -6.2002 -22.6006 0l-25.3994 25.3994c-6.2002 6.2002 -6.2002 16.4004 0 22.6006l99.2002 99.2998l-32.9004 31
-c-15.0996 15.2002 -4.40039 41 17 41h112zM312 224c-13.2998 0 -24 10.7002 -24 24v112c0 21.4004 25.7998 32.0996 40.9004 17l31.0996 -33l99.2998 99.2998c6.2002 6.2002 16.4004 6.2002 22.6006 0l25.3994 -25.3994c6.2002 -6.2002 6.2002 -16.4004 0 -22.6006
-l-99.2998 -99.2998l33 -31c15.0996 -15.0996 4.40039 -41 -17 -41h-112zM408 88l99.2998 -99.4004c6.2002 -6.19922 6.2002 -16.3994 0 -22.5996l-25.3994 -25.4004c-6.2002 -6.19922 -16.4004 -6.19922 -22.6006 0l-99.2998 99.3008l-31 -32.9004
-c-15.0996 -15.0996 -41 -4.40039 -41 17v112c0 13.2998 10.7002 24 24 24h112c21.4004 0 32.0996 -25.7998 17 -40.9004zM183 376.9c15.0996 15.0996 41 4.39941 41 -16.9004v-112c0 -13.2998 -10.7002 -24 -24 -24h-112c-21.4004 0 -32.0996 25.7998 -17 40.9004
-l33 31.0996l-99.2998 99.2998c-6.2002 6.2002 -6.2002 16.4004 0 22.6006l25.3994 25.3994c6.2002 6.2002 16.4004 6.2002 22.6006 0l99.2998 -99.2998z" />
-    <glyph glyph-name="dumpster" unicode="&#xf793;" horiz-adv-x="576" 
-d="M560 288h-97.2998l-25.6006 128h98.9004c7.2998 0 13.7002 -5 15.5 -12.0996l24 -96c2.5 -10.1006 -5.09961 -19.9004 -15.5 -19.9004zM272 416v-128h-126.1l25.5996 128h100.5zM404.5 416l25.5996 -128h-126.1v128h100.5zM16 288c-10.4004 0 -18 9.7998 -15.5 19.9004
-l24 96c1.7998 7.09961 8.2002 12.0996 15.5 12.0996h98.9004l-25.6006 -128h-97.2998zM560 224c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-28l-20 -160v-16c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16h-320v-16
-c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16l-20 160h-28c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h20l-4 32h512l-4 -32h20z" />
-    <glyph glyph-name="dumpster-fire" unicode="&#xf794;" horiz-adv-x="640" 
-d="M418.7 343.9c-19.7002 -17.6006 -37.7002 -36.5 -53.9004 -55.8008h-60.7998v128h100.5l14.4004 -72zM272 416v-128h-126.1l25.5996 128h100.5zM461.3 343.9l-11.8994 10.5996l-12.3008 61.5h98.9004c7.2998 0 13.7002 -5 15.4004 -12.0996l24 -96
-c0.199219 -0.800781 -0.100586 -1.5 0 -2.30078c-1 1 -2 2.2002 -3.10059 3.10059l-21.2998 19l-21.2998 -19c-5.90039 -5.2002 -11.6006 -10.7002 -17.2998 -16.2998c-15.6006 17.7998 -32.9004 35.1992 -51.1006 51.5zM16 288c-10.4004 0 -18 9.7998 -15.5 19.9004l24 96
-c1.7998 7.09961 8.2002 12.0996 15.5 12.0996h98.9004l-25.6006 -128h-97.2998zM340.6 256c-32.6992 -46.7002 -52.5996 -93.7002 -52.5996 -129.6c0 -48.5 18.5996 -92.7002 48.7998 -126.4h-208.8v-16c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16
-l-20 160h-28c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h20l-4 32h308.6zM551.1 284.8c51.8008 -46.2002 88.9004 -121.8 88.8008 -158.399c0 -87.5 -71.6006 -158.4 -160 -158.4c-88.4004 0 -160 70.9004 -160 158.4c0 49.2998 49.7998 130.899 120 193.6
-c27.3994 -24.4004 51.5 -50.5996 71 -76.4004c11.8994 14 25.2998 27.9004 40.1992 41.2002zM532.5 55.4004c33.4004 24.1992 41.2002 71.0996 22.5996 107.8c-2.2998 4.5 -4.89941 9.2002 -7.69922 14l-39.8008 -47s-62.3994 82.5 -67.0996 88.0996
-c-32.9004 -40.8994 -49.4004 -64.7998 -49.4004 -91.8994c0 -54.5 39.9004 -88 88.9004 -88c19.5996 0 37.7998 6.2998 52.5 17z" />
-    <glyph glyph-name="ethernet" unicode="&#xf796;" 
-d="M496 256c8.7998 0 16 -7.2002 16 -16v-224c0 -8.7998 -7.2002 -16 -16 -16h-80v128h-32v-128h-64v128h-32v-128h-64v128h-32v-128h-64v128h-32v-128h-80c-8.7998 0 -16 7.2002 -16 16v224c0 8.7998 7.2002 16 16 16h48v48c0 8.7998 7.2002 16 16 16h48v48
-c0 8.7998 7.2002 16 16 16h224c8.7998 0 16 -7.2002 16 -16v-48h48c8.7998 0 16 -7.2002 16 -16v-48h48z" />
-    <glyph glyph-name="gifts" unicode="&#xf79c;" horiz-adv-x="640" 
-d="M240.6 253.9c-27.7998 -6.90039 -48.5996 -32 -48.5996 -61.9004v-224c0 -11.7002 3.40039 -22.5 8.90039 -32h-168.9c-17.7002 0 -32 14.2998 -32 32v352c0 17.7002 14.2998 32 32 32h29.4004l-30.7002 22c-7.2002 5.09961 -8.7998 15.0996 -3.7002 22.2998l9.2998 13
-c5.10059 7.2002 15.1006 8.7998 22.2998 3.7002l32.1006 -22.7998l-11.5 30.5996c-3.2002 8.2002 1 17.5 9.2998 20.6006l15 5.59961c8.2998 3.09961 17.5 -1.09961 20.5996 -9.40039l19.9004 -53.0996l19.9004 53c3.09961 8.2998 12.2998 12.5 20.5996 9.40039l15 -5.60059
-c8.2998 -3.09961 12.5 -12.2998 9.40039 -20.5996l-11.5 -30.6006l32 22.9004c7.19922 5.2002 17.1992 3.5 22.2998 -3.7002l9.2998 -13c5.2002 -7.2002 3.5 -17.2002 -3.7002 -22.2998l-30.7002 -22h29.4004c12.7002 0 23.4004 -7.5 28.5996 -18.2998
-c-26.6992 -18.6006 -42.0996 -49 -44 -79.7998zM224 -32v96h192v-128h-160c-17.7002 0 -32 14.2998 -32 32zM448 -64v128h192v-96c0 -17.7002 -14.2998 -32 -32 -32h-160zM608 224c17.7002 0 32 -14.2998 32 -32v-96h-192v128h-15.2998l-0.700195 0.200195
-l-0.700195 -0.200195h-15.2998v-128h-192v96c0 17.7002 14.2998 32 32 32h20.4004c-2.7002 7.59961 -4.40039 15.5 -4.40039 23.7998c0 35.5 27 72.2002 72.0996 72.2002c48 0 75.8008 -47.7002 87.9004 -75.2998c12 27.5996 39.7998 75.2998 87.9004 75.2998
-c45.0996 0 72.0996 -36.7002 72.0996 -72.2002c0 -8.2998 -1.7998 -16.2002 -4.40039 -23.7998h20.4004zM336 224h52.5996c-8.89941 20.5996 -25.7998 48 -44.5 48c-17.6992 0 -24.0996 -14.5 -24.0996 -24.2002c0 -5.2002 1.5 -12.5996 8.7998 -19
-c2.10059 -1.7998 4.5 -3.39941 7.2002 -4.7998zM535.2 228.8c7.2998 6.40039 8.7998 13.7998 8.7998 19c0 9.7002 -6.40039 24.2002 -24.0996 24.2002c-18.7002 0 -35.7002 -27.7002 -44.5 -48h52.5996c2.7002 1.40039 5.09961 3 7.2002 4.7998z" />
-    <glyph glyph-name="glass-cheers" unicode="&#xf79f;" horiz-adv-x="640" 
-d="M639.4 14.4004c1.69922 -4.10059 -0.300781 -8.7002 -4.30078 -10.4004l-162.399 -67.4004c-4 -1.69922 -8.7002 0.200195 -10.4004 4.30078c-8.5 20.3994 1.2002 43.7998 21.6006 52.2998l22.0996 9.2002l-39.2998 103.6
-c-4.40039 -0.5 -8.7998 -1.2998 -13.1006 -1.2998c-51.6992 0 -99.3994 33.0996 -113.399 85.2998l-20.2002 75.4004l-20.2002 -75.4004c-14 -52.2002 -61.7002 -85.2998 -113.399 -85.2998c-4.30078 0 -8.7002 0.799805 -13.1006 1.2998l-39.3994 -103.6l22.0996 -9.2002
-c20.4004 -8.5 30 -31.9004 21.5996 -52.2998c-1.69922 -4.10059 -6.2998 -6 -10.3994 -4.30078l-162.3 67.4004c-4.10059 1.7002 -6 6.40039 -4.30078 10.5c8.5 20.4004 31.8008 30.0996 52.2002 21.5996l22.1006 -9.19922l38.6992 101.899
-c-47.8994 34.9004 -64.6992 100.2 -34.5 152.7l86.6006 150.5c8 13.9004 25.0996 19.7998 40 13.5996l114.3 -47.3994l114.3 47.3994c14.9004 6.10059 32 0.300781 40 -13.5996l86.6006 -150.5c30.2998 -52.5 13.3994 -117.8 -34.5 -152.8l38.6992 -101.9l22.1006 9.2002
-c20.3994 8.5 43.7998 -1.2002 52.2002 -21.5996zM275.9 285.9l18.8994 70.6992l-94.5 39.2002l-36.5 -63.3994zM364.1 285.9l112.101 46.5l-36.5 63.3994l-94.5 -39.2002z" />
-    <glyph glyph-name="glass-whiskey" unicode="&#xf7a0;" 
-d="M480 416c19.5 0 34.4004 -17.2002 31.7002 -36.5l-55.6006 -356.5c-4.5 -31.5 -31.5996 -54.9004 -63.3994 -54.9004h-273c-31.9004 0 -58.9004 23.4004 -63.4004 54.9004l-56 356.5c-2.7002 19.2998 12.2002 36.5 31.7002 36.5h448zM442.6 352h-373.199l30.1992 -192
-h313z" />
-    <glyph glyph-name="globe-europe" unicode="&#xf7a2;" horiz-adv-x="496" 
-d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM448 192c0 110.3 -89.7002 200 -200.2 200c-1.89941 0 -3.7998 -0.200195 -5.7002 -0.299805l-28.8994 -21.7002c-2 -1.5 -3.2002 -3.90039 -3.2002 -6.40039v-20
-c0 -4.39941 3.59961 -8 8 -8h16c4.40039 0 8 3.60059 8 8v8l16 16h20.7002c6.2002 0 11.2998 -5.09961 11.2998 -11.2998c0 -3 -1.2002 -5.89941 -3.2998 -8l-26.7998 -26.7998c-1.2002 -1.2002 -2.7002 -2.09961 -4.40039 -2.7002l-40 -13.2998
-c-3.2998 -1.09961 -5.5 -4.2002 -5.5 -7.59961c0 -6.60059 -2.59961 -12.9004 -7.2002 -17.5l-20.0996 -20.1006c-3 -3 -4.7002 -7.09961 -4.7002 -11.2998v-25.2998c0 -8.7998 7.2002 -16 16 -16h22.0996c6.10059 0 11.6006 3.39941 14.3008 8.7998l9.39941 18.7002
-c1.40039 2.7002 4.2002 4.39941 7.2002 4.39941h3.09961c4.40039 0 8 -3.59961 8 -8c0 -4.39941 3.60059 -8 8 -8h16c4.40039 0 8 3.60059 8 8v2.2002c0 3.5 2.2002 6.5 5.5 7.60059l31.6006 10.5c6.5 2.19922 10.8994 8.2998 10.8994 15.1992v4.5
-c0 8.80078 7.2002 16 16 16h36.7002c6.2002 0 11.2998 -5.09961 11.2998 -11.2998v-9.39941c0 -6.2002 -5.09961 -11.3008 -11.2998 -11.3008h-32c-3 0 -5.89941 -1.19922 -8 -3.2998l-9.39941 -9.39941c-2.10059 -2.10059 -3.30078 -5 -3.30078 -8
-c0 -6.2002 5.10059 -11.3008 11.3008 -11.3008h16c3 0 5.89941 -1.19922 8 -3.2998l9.39941 -9.39941c2.10059 -2.10059 3.2998 -5 3.2998 -8v-8.7002l-12.5 -12.5c-4.59961 -4.60059 -4.59961 -12.1006 -0.0996094 -16.7002l32 -32.5996
-c3 -3.10059 7.09961 -4.80078 11.4004 -4.80078h20.2998c6.89941 20.2002 10.7998 41.9004 10.7998 64.4004zM130.1 298.9c0 -6.2002 5.10059 -11.3008 11.3008 -11.3008h16c3 0 5.89941 1.2002 8 3.30078l9.39941 9.39941c2.10059 2.10059 3.2998 5 3.2998 8v16
-c0 6.2002 -5.09961 11.2998 -11.2998 11.2998c-3 0 -5.89941 -1.19922 -8 -3.2998l-25.3994 -25.3994c-2.10059 -2.10059 -3.30078 -5 -3.30078 -8zM258.1 -7.5c71.1006 3.59961 132.5 44.2002 164.9 103.1h-13.4004c-4.7998 0 -9.5 1.90039 -12.8994 5.30078
-l-17.2998 17.2998c-6 6 -14.1006 9.39941 -22.6006 9.39941h-18.2998l-43.2002 37.1006c-8.2002 7 -18.7002 10.8994 -29.5996 10.8994h-31.2002c-8.2002 0 -16.2998 -2.2998 -23.4004 -6.5l-42.8994 -25.6992c-13.7002 -8.2002 -22.1006 -23 -22.1006 -39v-23.9004
-c0 -14.2998 6.7002 -27.7998 18.2002 -36.4004l22.2002 -16.6992c8.7002 -6.5 24.5996 -11.8008 35.4004 -11.8008h20.1992c8.80078 0 16 -7.19922 16 -16v-7.09961z" />
-    <glyph glyph-name="grip-lines" unicode="&#xf7a4;" 
-d="M496 160c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-480c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h480zM496 288c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-480c-8.7998 0 -16 7.2002 -16 16v32
-c0 8.7998 7.2002 16 16 16h480z" />
-    <glyph glyph-name="grip-lines-vertical" unicode="&#xf7a5;" horiz-adv-x="256" 
-d="M96 -48c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v480c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-480zM224 -48c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v480c0 8.7998 7.2002 16 16 16h32
-c8.7998 0 16 -7.2002 16 -16v-480z" />
-    <glyph glyph-name="guitar" unicode="&#xf7a6;" 
-d="M502.63 409c5.77344 -5.79004 9.34473 -13.7852 9.34473 -22.5996c0 -8.8291 -3.58398 -16.8281 -9.375 -22.6201l-46.3301 -46.3203c-3.82617 -3.83691 -8.53223 -6.78125 -13.7891 -8.53027l-36.4805 -12.1602l-76.2402 -76.2393
-c8.79004 -12.2002 15.7705 -25.5605 19.1602 -40.2002c7.74023 -33.3896 0.870117 -66.8701 -22 -89.75c-9.26367 -9.2207 -20.71 -16.2314 -33.4795 -20.25c-18.54 -6.00977 -32.6709 -23.29 -34.4307 -42.1396c-2.29004 -23.8105 -11.4502 -45.8301 -28.4502 -62.71
-c-45.5596 -45.4805 -127.5 -37.3809 -182.979 18.0693c-55.4805 55.4502 -63.6904 137.45 -18.0498 182.96c16.8799 16.9902 38.9102 26.1699 62.6094 28.4404c18.9404 1.76953 36.1504 15.8994 42.1504 34.46c4.01172 12.7686 11.0195 24.2119 20.2402 33.4697
-c22.8799 22.8799 56.4297 29.7803 89.8799 22c14.5996 -3.39941 27.9395 -10.3799 40.0996 -19.1396l76.2598 76.2598l12.1602 36.5098c1.74902 5.25781 4.69336 9.96387 8.53027 13.79l46.2803 46.3301c5.79199 5.79395 13.8018 9.37988 22.6338 9.37988
-s16.833 -3.58594 22.626 -9.37988zM208 96c26.4922 0 48 21.5078 48 48s-21.5078 48 -48 48s-48 -21.5078 -48 -48s21.5078 -48 48 -48z" />
-    <glyph glyph-name="heart-broken" unicode="&#xf7a9;" 
-d="M473.7 374.2c48.7002 -49.7998 50.7998 -129.101 7.2998 -182.101l-212.2 -218.699c-7.09961 -7.30078 -18.5996 -7.30078 -25.7002 0l-212.1 218.6c-43.5 53.0996 -41.4004 132.4 7.2998 182.2l2.40039 2.39941c46.2998 47.4004 119 51.8008 170.7 14l28.5996 -86.5
-l-96 -64l144 -144l-48 128l96 64l-34.2998 103.4c51.5996 36.9004 123.6 32.2002 169.6 -14.7998z" />
-    <glyph glyph-name="holly-berry" unicode="&#xf7aa;" horiz-adv-x="448" 
-d="M144 256c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM256 304c0 26.5 21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48s-48 21.5 -48 48zM224 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48z
-M207.8 212.9c-0.399414 -39.8008 7.40039 -78.1006 22.9004 -112.301c4 -8.89941 -2 -19.1992 -11.7002 -20.1992c-15.2002 -1.5 -30.4004 -4.60059 -45.2998 -9.10059c-14.9004 -4.5 -23.7998 -19.8994 -20.2002 -35.0996s8.5 -29.9004 14.7002 -43.7998
-c4 -8.90039 -1.90039 -19.3008 -11.6006 -20.2002c-35.8994 -3.40039 -71.5996 -14.9004 -104.8 -33.9004c-12.3994 -7.09961 -27.5 1.60059 -27.5996 16c-0.100586 38.2002 -8 74.9004 -23 107.7c-4 8.90039 2 19.2002 11.7002 20.2002
-c15.1992 1.5 30.3994 4.59961 45.2998 9.09961c14.8994 4.5 23.7998 19.9004 20.2002 35.1006c-3.60059 15.1992 -8.5 29.8994 -14.7002 43.7998c-4 8.89941 1.89941 19.2998 11.5996 20.2002c37.2998 3.5 74.4004 15.8994 108.7 36.1992
-c10.7002 6.40039 23.9004 -1.2998 23.7998 -13.6992zM435 82.4004c9.7002 -1 15.7998 -11.4004 11.5 -20.1006c-15 -32.7002 -22.7998 -69.5 -23 -107.7c0 -14.3994 -15.0996 -23.0996 -27.5996 -16c-33.2002 19 -68.9004 30.5 -104.801 33.9004
-c-9.69922 0.900391 -15.5996 11.2998 -11.5996 20.2002c6.2002 14 11.0996 28.5996 14.7002 43.7998c3.59961 15.2002 -5.2998 30.5996 -20.2002 35.0996c-4.90039 1.5 -9.90039 2.5 -14.7998 3.7002c5.7998 12.2998 6.2998 26.5 0.599609 38.9004
-c-12.8994 28.2998 -19.7002 60.7002 -19.8994 94c0 1.7002 0.199219 3.2998 0.199219 4.89941c-0.0996094 12.3008 13.1006 20 23.8008 13.7002c34.2998 -20.2998 71.3994 -32.7002 108.699 -36.2002c9.7002 -0.899414 15.6006 -11.2998 11.6006 -20.1992
-c-6.2002 -14 -11.1006 -28.6006 -14.7002 -43.8008c-3.59961 -15.1992 5.2998 -30.5996 20.2002 -35.0996c15 -4.40039 30.0996 -7.5 45.2998 -9.09961z" />
-    <glyph glyph-name="horse-head" unicode="&#xf7ab;" 
-d="M509.8 115.5c4.60059 -11.7998 1.7998 -25.2998 -7.09961 -34.4004l-45.2998 -39.7998c-6 -6 -14.1006 -9.39941 -22.6006 -9.39941h-50.2998c-10.2998 0 -20 4.89941 -26 13.2998l-46 63.8994c-13.7998 -8.09961 -29.5996 -13.1992 -46.7998 -13.1992
-c-39.2002 0 -72.6006 23.6992 -87.4004 57.3994c-2.2998 5.10059 -9 6.2998 -12.8994 2.40039l-12.1006 -12.1006c-2.5 -2.39941 -3.2002 -6.19922 -1.59961 -9.2998c19.7002 -38.8994 58.7002 -66.0996 104.3 -69.5996v-0.700195l40.7998 -81.7002
-c10.7002 -21.2998 -4.7998 -46.2998 -28.5996 -46.2998h-236.2c-17.7002 0 -32 14.2998 -32 32v81.2002c0 159.899 35.9004 275.399 166.9 322.5l202.199 75.7002c4.90039 1.7998 10.7002 -1.10059 12 -6.10059c12.1006 -46.3994 -16.1992 -71.7002 -34.1992 -82.2998
-c42.5996 -8.2002 78.0996 -38 93 -79.2002zM328 224c13.2998 0 24 10.7002 24 24s-10.7002 24 -24 24s-24 -10.7002 -24 -24s10.7002 -24 24 -24z" />
-    <glyph glyph-name="icicles" unicode="&#xf7ad;" 
-d="M511.4 410.1l-87.5 -467.699c-1.7002 -8.60059 -14 -8.60059 -15.7002 0l-66.7002 363.8l-45.7998 -172.5c-2.2998 -7.60059 -13 -7.60059 -15.2998 0l-34.1006 133.399l-46.5 -196.899c-1.89941 -8.2998 -13.7002 -8.2998 -15.5996 0l-44.2002 187.3l-36.4004 -124.1
-c-2.39941 -7.2002 -12.5996 -7.2002 -15.0996 0l-87.0996 273.399c-6.2002 20.5 9.19922 41.2002 30.5996 41.2002h448c20 0 35.0996 -18.2002 31.4004 -37.9004z" />
-    <glyph glyph-name="igloo" unicode="&#xf7ae;" horiz-adv-x="576" 
-d="M320 414.1v-126.1h-271.4c51.6006 77.2002 139.601 128 239.4 128c10.7998 0 21.5 -0.700195 32 -1.90039zM96 256v-128h-96c0 46 11.0996 89.4004 30.2998 128h65.7002zM352 408.6c72.7998 -16.5 135.2 -60.5 175.4 -120.6h-175.4v120.6zM480 128v128h65.7002
-c19.2002 -38.5996 30.2998 -82 30.2998 -128h-96zM416 64c0 11.0996 -1.90039 21.7002 -4.5 32h164.5v-96c0 -17.7002 -14.2998 -32 -32 -32h-128v96zM448 256v-128h-49.7998c-22.2002 38.0996 -63 64 -110.2 64s-88 -25.9004 -110.2 -64h-49.7998v128h320zM0 0v96h164.5
-c-2.59961 -10.2998 -4.5 -20.9004 -4.5 -32v-96h-128c-17.7002 0 -32 14.2998 -32 32zM288 160c53 0 96 -43 96 -96v-96h-192v96c0 53 43 96 96 96z" />
-    <glyph glyph-name="mitten" unicode="&#xf7b5;" horiz-adv-x="448" 
-d="M368 32c8.7998 0 16 -7.2002 16 -16v-64c0 -8.7998 -7.2002 -16 -16 -16h-320c-8.7998 0 -16 7.2002 -16 16v64c0 8.7998 7.2002 16 16 16h320zM425 241.1c27.0996 -22.5996 30.7998 -62.8994 8.09961 -90.0996l-72.5 -87h-309l-47.8994 207.6
-c-17.9004 77.5 30.5 154.801 107.899 172.7c77.4004 17.9004 154.801 -30.5 172.801 -108l29.5996 -128.399l20.9004 25c22.5996 27.1992 62.8994 30.7998 90.0996 8.19922z" />
-    <glyph glyph-name="mug-hot" unicode="&#xf7b6;" 
-d="M127.1 301.5c-2.69922 16.5996 -10.3994 31.9004 -22.3994 44.0996c-22.6006 23.1006 -36.7002 52.5 -40.6006 84.4004c-1.09961 9.5 6.5 18 16.3008 18h16.3994c8.2002 0 15 -5.90039 16.1006 -13.7998c2.7998 -20.2002 12 -38.7998 26.3994 -53.5
-c20.2002 -20.5 32.7998 -46.5 36.6006 -74.7002c1.2998 -9.5 -6.5 -18 -16.3008 -18h-16.5c-8 0 -14.6992 5.7998 -16 13.5zM239.1 301.5c-2.69922 16.5996 -10.3994 31.9004 -22.3994 44.0996c-22.6006 23.1006 -36.7002 52.5 -40.6006 84.4004
-c-1.19922 9.5 6.5 18 16.3008 18h16.3994c8.2002 0 15 -5.90039 16.1006 -13.7998c2.7998 -20.2002 12 -38.7998 26.3994 -53.5c20.2002 -20.5 32.7998 -46.5 36.6006 -74.7002c1.2998 -9.5 -6.5 -18 -16.3008 -18h-16.5c-8 0 -14.6992 5.7998 -16 13.5zM400 256
-c61.7998 0 112 -50.2002 112 -112s-50.2002 -112 -112 -112h-16c0 -53 -43 -96 -96 -96h-192c-53 0 -96 43 -96 96v192c0 17.7002 14.2998 32 32 32h368zM400 96c26.5 0 48 21.5 48 48s-21.5 48 -48 48h-16v-96h16z" />
-    <glyph glyph-name="radiation" unicode="&#xf7b9;" horiz-adv-x="496" 
-d="M328.2 192.2c0 28.5996 -15.2002 53.5 -37.7998 67.7998l80.3994 128.4c4.7998 7.69922 15.2998 10.0996 22.7002 4.7998c58.0996 -42 97.4004 -108.4 102.5 -184.2c0.599609 -9.09961 -7.09961 -16.7998 -16.2002 -16.7998h-151.6zM290.4 124.5l80.3994 -128.5
-c4.7998 -7.59961 2.40039 -18.0996 -5.59961 -22.4004c-34.9004 -18.7998 -74.7998 -29.5996 -117.2 -29.5996s-82.2998 10.7998 -117.2 29.5996c-8 4.30078 -10.3994 14.7002 -5.59961 22.4004l80.3994 128.5c12.4004 -7.7002 26.8008 -12.4004 42.4004 -12.4004
-s30.0996 4.7002 42.4004 12.4004zM248 144.2c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM16.2002 192.2c-9.10059 0 -16.7998 7.7002 -16.2002 16.7002c5.09961 75.7998 44.4004 142.199 102.5 184.199
-c7.40039 5.40039 17.9004 2.90039 22.7002 -4.7998l80.3994 -128.399c-22.5996 -14.2002 -37.7998 -39.1006 -37.7998 -67.7002h-151.6z" />
-    <glyph glyph-name="radiation-alt" unicode="&#xf7ba;" horiz-adv-x="496" 
-d="M312 192c0 22.7998 -12.0996 42.7998 -30.0996 54l41.6992 66.7998c5.2002 8.2998 16.4004 9.90039 24 3.7998c32.5 -26 54.9004 -64.1992 59.5 -107.8c0.900391 -9.09961 -6.7998 -16.7998 -16 -16.7998h-79.0996zM214.2 137.9
-c9.7998 -6.2002 21.5 -9.90039 33.8994 -9.90039c12.4004 0 24 3.7002 33.8008 9.90039l41.7998 -66.9004c4.7998 -7.7998 2.39941 -18.4004 -5.7998 -22.5c-21.2002 -10.4004 -44.8008 -16.5 -69.9004 -16.5s-48.7002 6.09961 -69.7998 16.5
-c-8.2002 4.09961 -10.7002 14.7002 -5.7998 22.5zM104.9 192c-9.2002 0 -17 7.7002 -15.9004 16.9004c4.59961 43.5996 26.9004 81.7998 59.5 107.8c7.59961 6.09961 18.7998 4.5 24 -3.7998l41.7002 -66.8008c-18.1006 -11.2998 -30.2002 -31.2998 -30.2002 -54.0996
-h-79.0996zM248 -56c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248s-111 -248 -248 -248zM248 376c-101.5 0 -184 -82.5 -184 -184s82.5 -184 184 -184s184 82.5 184 184s-82.5 184 -184 184zM248 160c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
-s32 -14.2998 32 -32s-14.2998 -32 -32 -32z" />
-    <glyph glyph-name="restroom" unicode="&#xf7bd;" horiz-adv-x="640" 
-d="M128 320c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM512 320c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM639.3 93.5c3.7002 -15.0996 -8.2998 -29.5 -24.5 -29.5
-h-54.7998v-104c0 -13.2998 -10.7002 -24 -24 -24h-48c-13.2998 0 -24 10.7002 -24 24v104h-54.7998c-16.2002 0 -28.2002 14.4004 -24.7002 29.5l45.5996 185.8c3.30078 13.5 15.5 23 29.8008 24.2002c15 -9.7002 32.7998 -15.5 52 -15.5c19.1992 0 37 5.7998 52 15.5
-c14.2998 -1.2002 26.5 -10.7002 29.7998 -24.2002zM336 448c8.7998 0 16 -7.2002 16 -16v-480c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v480c0 8.7998 7.2002 16 16 16h32zM180.1 303.6c24.6006 -2.09961 43.9004 -22.5 43.9004 -47.5996v-136
-c0 -13.2998 -10.7002 -24 -24 -24h-8v-136c0 -13.2998 -10.7002 -24 -24 -24h-80c-13.2998 0 -24 10.7002 -24 24v136h-8c-13.2998 0 -24 10.7002 -24 24v136c0 25.0996 19.2998 45.5 43.9004 47.5996c15 -9.7998 32.8994 -15.5996 52.0996 -15.5996
-s37.0996 5.7998 52.0996 15.5996z" />
-    <glyph glyph-name="satellite" unicode="&#xf7bf;" 
-d="M502.609 137.958l-96.7041 -96.7168c-5.76758 -5.74707 -13.7207 -9.30176 -22.499 -9.30176c-8.77734 0 -16.7402 3.55469 -22.5078 9.30176l-80.3262 80.418l-9.89258 -9.9082c10.8848 -23.9746 16.9482 -50.5957 16.9482 -78.6221
-c0 -32.3584 -8.10156 -63.1982 -22.3555 -89.9004c-4.50098 -8.50098 -16.3936 -9.59473 -23.207 -2.79785l-107.519 107.515l-17.7998 -17.7988c0.703125 -2.60938 1.60938 -5.00098 1.60938 -7.79785c0 -17.6641 -14.3408 -32.0059 -32.0049 -32.0059
-s-32.0059 14.3418 -32.0059 32.0059s14.3418 32.0039 32.0059 32.0039c2.79688 0 5.18848 -0.90625 7.79785 -1.60938l17.7998 17.7998l-107.518 107.515c-6.79883 6.8125 -5.7041 18.6113 2.79688 23.2061c26.7031 14.2539 57.1895 22.3359 89.5479 22.3359
-c28.0273 0 55.0049 -6.04395 78.9805 -16.9297l9.79883 9.79883l-80.3105 80.417c-5.74609 5.78613 -9.29785 13.7539 -9.29785 22.5449s3.55176 16.7686 9.29785 22.5547l96.7197 96.7168c5.72754 5.74512 13.6484 9.30273 22.3945 9.30273
-c0.0351562 0 0.0732422 -0.00488281 0.109375 -0.00488281h0.0458984c8.79199 0 16.7656 -3.5498 22.5518 -9.29785l80.3262 -80.3076l47.8047 47.8965c6.08301 6.07715 14.4805 9.83789 23.749 9.83789c9.26953 0 17.6768 -3.76074 23.7588 -9.83789l47.5088 -47.5059
-c6.07031 -6.08594 9.82617 -14.4824 9.82617 -23.749s-3.75586 -17.6719 -9.82617 -23.7578l-47.8057 -47.8975l80.3105 -80.417c5.73633 -5.75195 9.28516 -13.6865 9.28516 -22.4434c0 -8.81348 -3.59277 -16.8018 -9.39453 -22.5625zM219.562 250.567l73.8252 73.8223
-l-68.918 68.8994l-73.8096 -73.8066zM457.305 160.461l-68.9023 68.916l-73.8242 -73.8232l68.918 -68.8994z" />
-    <glyph glyph-name="satellite-dish" unicode="&#xf7c0;" 
-d="M305.449 -14.5898c7.3916 -7.29785 6.18848 -20.0967 -3 -25.0039c-77.7129 -41.8027 -176.726 -29.9102 -242.344 35.708c-65.6016 65.6035 -77.5098 164.523 -35.6914 242.332c4.89062 9.09473 17.6895 10.2979 25.0029 3l116.812 -116.813l27.3945 27.3945
-c-0.6875 2.60938 -1.59375 5.00098 -1.59375 7.81348c0 17.6631 14.3398 32.0039 32.0039 32.0039c17.6631 0 32.0039 -14.3408 32.0039 -32.0039c0 -17.6641 -14.3408 -32.0039 -32.0039 -32.0039c-2.79785 0 -5.2041 0.890625 -7.79785 1.59375l-27.4102 -27.4102z
-M511.976 144.933c0.0175781 -0.301758 0.0253906 -0.605469 0.0253906 -0.912109c0 -8.86133 -7.1748 -16.0488 -16.0273 -16.0898h-32.1133c-8.46289 0.0244141 -15.3867 6.65918 -15.8926 15.002c-7.50098 129.519 -111.515 234.533 -240.937 241.534
-c-8.34863 0.444336 -14.9902 7.36426 -14.9902 15.8223c0 0.0292969 -0.0126953 0.0566406 -0.0117188 0.0859375v31.5986c0.0361328 8.85156 7.2334 16.0264 16.0938 16.0264c0.308594 0 0.603516 -0.00683594 0.908203 -0.0244141
-c163.224 -8.59473 294.443 -139.816 302.944 -303.043zM415.964 145.229c0.0244141 -0.364258 0.0371094 -0.732422 0.0371094 -1.10254c0 -8.92578 -7.23145 -16.1621 -16.1484 -16.1963h-32.208c-8.34961 0.0605469 -15.1953 6.51953 -15.8926 14.7051
-c-6.90625 77.0107 -68.1172 138.91 -144.924 145.224c-8.25781 0.592773 -14.7959 7.48633 -14.7988 15.8926v32.1143v0.00390625c0 8.9043 7.22949 16.1338 16.1338 16.1338c0.396484 0 0.775391 -0.0136719 1.16504 -0.0419922
-c110.123 -8.50098 198.229 -96.6074 206.636 -206.732z" />
-    <glyph glyph-name="sd-card" unicode="&#xf7c2;" horiz-adv-x="384" 
-d="M320 448c35.2998 0 64 -28.7002 64 -64v-384c0 -35.2998 -28.7002 -64 -64 -64h-256c-35.2998 0 -64 28.7002 -64 64v320l128 128h192zM160 288v96h-48v-96h48zM240 288v96h-48v-96h48zM320 288v96h-48v-96h48z" />
-    <glyph glyph-name="sim-card" unicode="&#xf7c4;" horiz-adv-x="384" 
-d="M0 384c0 35.2998 28.7002 64 64 64h192l128 -128v-320c0 -35.2998 -28.7002 -64 -64 -64h-256c-35.2998 0 -64 28.7002 -64 64v384zM224 192v64h-64v-64h64zM320 192v32c0 17.7002 -14.2998 32 -32 32h-32v-64h64zM256 64v-64h32c17.7002 0 32 14.2998 32 32v32h-64z
-M160 64v-64h64v64h-64zM64 64v-32c0 -17.7002 14.2998 -32 32 -32h32v64h-64zM64 160v-64h256v64h-256zM64 224v-32h64v64h-32c-17.7002 0 -32 -14.2998 -32 -32z" />
-    <glyph glyph-name="skating" unicode="&#xf7c5;" horiz-adv-x="448" 
-d="M400 448c26.5 0 48 -21.5 48 -48s-21.5 -48 -48 -48s-48 21.5 -48 48s21.5 48 48 48zM400 0c8.7998 0 16 -7.2002 16 -16c0 -26.5 -21.5 -48 -48 -48h-96c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16h96c8.7998 0 16 7.2002 16 16s7.2002 16 16 16zM117.8 -8.59961
-c6.2998 6.2998 16.5 6.19922 22.7002 0c6.2002 -6.2002 6.2002 -16.4004 0 -22.6006c-9.2998 -9.2998 -21.5996 -14 -33.9004 -14c-12.2998 0 -24.5996 4.60059 -34 14l-67.8994 67.9004c-6.2002 6.2002 -6.2002 16.3994 0 22.5996s16.3994 6.2002 22.5996 0
-l67.9004 -67.8994c6.2002 -6.30078 16.3994 -6.2002 22.5996 0zM173.9 171.2c3.7998 -6.10059 8.19922 -11.7998 13.1992 -16.7998l30.2002 -30.2002l-91.8994 -91.9004c-6.2002 -6.2998 -14.4004 -9.39941 -22.6006 -9.39941s-16.3994 3.19922 -22.5996 9.39941
-c-12.5 12.4004 -12.5 32.7002 0 45.2002zM128 288c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32h204.6c16.3008 0 30.8008 -9.7002 37 -24.7002c6.2002 -15 2.80078 -32.0996 -8.69922 -43.5996l-82.3008 -82.2998c-0.5 -0.5 -1.19922 -0.700195 -1.69922 -1.10059
-l61 -61c9 -8.89941 14.0996 -21.2998 14.0996 -33.8994v-89.4004c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32v82.7998l-78.2002 78.2002c-12.5996 12.5 -19.3994 29.9004 -18.7002 47.7002c0.700195 17.7002 8.80078 34.5996 22.3008 46.0996l20.0996 17.2002
-h-105.5z" />
-    <glyph glyph-name="skiing" unicode="&#xf7c9;" 
-d="M432 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM505 -4.09961c9.2998 -9.30078 9.2998 -24.5 0 -33.8008c-17 -17 -39.7998 -26 -63 -26c-12.5996 0 -25.2002 2.60059 -37.0996 8.10059l-391.9 202.5
-c-11.7998 6 -16.4004 20.5 -10.2998 32.2998c6.09961 11.7998 20.5996 16.2998 32.2998 10.2998l197.9 -102.3l45.8994 68.7998l-75.0996 75.2002c-14.2998 14.4004 -20.6006 34.5 -17.7002 54.4004l107 -53.1006l40.4004 -40.5
-c16.1992 -16.0996 18.6992 -41.5996 6 -60.5996l-49.2002 -73.7998l135.8 -70.2002c14.5996 -6.7002 33 -3.40039 45.0996 8.7002c9.30078 9.39941 24.5 9.39941 33.9004 0zM120 356.4l-26.2002 23c-2.2002 1.89941 -2.39941 5.19922 -0.5 7.39941
-c1.2998 1.5 3.2002 2.10059 5 1.7002l34.4004 -7h0.200195l11.0996 21.7002c13.7002 -7 21.2002 -21.1006 20.9004 -35.6006l62.5 -31l81.1992 32.5c43.6006 17.4004 76.4004 -15 84.5 -39.1992l17.1006 -51.2002l52.0996 -26.1006
-c15.7998 -7.89941 22.2002 -27.0996 14.2998 -42.8994c-7.89941 -15.7998 -27 -22.2002 -42.8994 -14.2998l-58.1006 29c-11.3994 5.69922 -20 15.5996 -24 27.6992l-6.39941 19.1006l-32.4004 -13l-114.5 56.7998c0.100586 0.0996094 0.100586 0.200195 0.200195 0.299805
-l-47.2002 23.4004c-11.5996 -9.7002 -28.3994 -12.1006 -42.7998 -4.7998z" />
-    <glyph glyph-name="skiing-nordic" unicode="&#xf7ca;" horiz-adv-x="576" 
-d="M336 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM552 32c13.2002 0 24 -10.7998 24 -24c0 -39.7002 -32.2998 -72 -72 -72h-480c-13.2002 0 -24 10.7002 -24 24s10.7998 24 24 24h42.9004l54.0996 270.8
-c-0.700195 0.799805 -1.7002 1.2002 -2.40039 2.10059c-10.7998 14.0996 -8.09961 34.1992 5.90039 44.8994l39.7002 30.4004c23 17.5996 52.5 23.8994 80.7998 17.0996l71.2002 -21.2002c26.2998 -6.69922 49.2998 -25.3994 61.7998 -50.8994l26.0996 -53.2002h44
-c17.7002 0 32 -14.2998 32 -32c0 -13.4004 -8.39941 -24.9004 -20.0996 -29.5996l-25.5 -178.4h69.5c13.2002 0 24 10.7998 24 24c0 13.2998 10.7998 24 24 24zM291.5 -16l25.5 81.2002l-85 50.2002c-27.5996 16.2998 -38.9004 50.7998 -26.2998 80.2998l37.5 87.3994
-l-14.7002 4.40039c-7.90039 1.90039 -17.5996 -0.200195 -25.2998 -6.09961l-39.7002 -30.4004c-3.59961 -2.7002 -7.59961 -4.59961 -11.7002 -5.59961l-52.2998 -261.4h24.2002l62.5 131.8c7.59961 -10.8994 17.3994 -20.5996 29.5 -27.7998l22 -13l-43.1006 -91h96.9004z
-M402.1 -16l25.2002 176h-33.2998c-18.2002 0 -35.0996 10.5996 -43.0996 26.9004l-20.3008 41.3994l-31.2998 -78.2998l61.2002 -36.0996c18.7002 -11.3008 27.5 -33.6006 21.5996 -54.4004l-23.5996 -75.5h43.5996z" />
-    <glyph glyph-name="sleigh" unicode="&#xf7cc;" horiz-adv-x="640" 
-d="M612.7 97.2998c18.5 -14.7002 28.5996 -37.2002 27.2002 -61c-2.2002 -39 -36.9004 -68.2998 -75.9004 -68.2998h-516c-8.7998 0 -16 7.2002 -16 16v16c0 8.7998 7.2002 16 16 16h519.3c13.6006 0 24.6006 11 24.6006 24.5996c0 7.5 -3.30078 14.5 -9.2002 19.2002
-l-9.2998 7.40039c-6.90039 5.5 -8 15.5996 -2.5 22.5l10 12.5c5.5 6.89941 15.5996 8 22.5 2.5zM32 224v128c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32h20.7002c65.7002 0 125.899 -37.2002 155.3 -96s89.5 -96 155.3 -96h20.7002c35.2998 0 64 28.7002 64 64v64h96
-c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32v-96c0 -53 -43 -96 -96 -96v-48h-64v48h-192v-48h-64v52.5c-55.0996 14.2998 -96 63.9004 -96 123.5z" />
-    <glyph glyph-name="sms" unicode="&#xf7cd;" 
-d="M256 416c141.4 0 256 -93.0996 256 -208s-114.6 -208 -256 -208c-38.4004 0 -74.7002 7.09961 -107.4 19.4004c-24.5996 -19.6006 -74.2998 -51.4004 -140.6 -51.4004c-3.2002 0 -6 1.7998 -7.2998 4.7998s-0.700195 6.40039 1.5 8.7002
-c0.5 0.5 42.2998 45.4004 54.7998 95.7998c-35.5996 35.7002 -57 81.1006 -57 130.7c0 114.9 114.6 208 256 208zM128.2 144c23.3994 0 42.5 17.2998 42.3994 38.5996c0 10.6006 -4.7998 20.9004 -13.2998 28.1006l-21.8994 18.7998
-c-1.30078 1.09961 -2.10059 2.5 -2.10059 3.7998c0 3.10059 4.40039 6.60059 10.4004 6.60059h12.2998c4.40039 0 8 3.59961 8 8v16c0 4.39941 -3.59961 8 -8 8h-12.2002c-23.3994 0 -42.3994 -17.3008 -42.3994 -38.6006c0 -10.5996 4.7998 -20.8994 13.2998 -28.0996
-l21.8994 -18.7998c1.30078 -1.10059 2.10059 -2.5 2.10059 -3.80078c0 -3.09961 -4.40039 -6.59961 -10.4004 -6.59961h-12.2998c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h12.2002zM320 152v104c0 8.7998 -7.2002 16 -16 16h-16
-c-6 0 -11.5996 -3.40039 -14.2998 -8.7998l-17.7002 -35.4004l-17.7002 35.4004c-2.7002 5.39941 -8.2002 8.7998 -14.2998 8.7998h-16c-8.7998 0 -16 -7.2002 -16 -16v-104c0 -4.40039 3.59961 -8 8 -8h16c4.40039 0 8 3.59961 8 8v68.2002l24.9004 -55.7998
-c2.89941 -5.90039 11.3994 -5.90039 14.2998 0l24.7998 55.7998v-68.2002c0 -4.40039 3.59961 -8 8 -8h16c4.40039 0 8 3.59961 8 8zM368.3 144c23.4004 0 42.4004 17.2998 42.2998 38.5996c0 10.6006 -4.7998 20.9004 -13.2998 28.1006l-21.8994 18.7998
-c-1.30078 1.09961 -2.10059 2.5 -2.10059 3.7998c0 3.10059 4.40039 6.60059 10.4004 6.60059h12.2998c4.40039 0 8 3.59961 8 8v16c0 4.39941 -3.59961 8 -8 8h-12.2002c-23.3994 0 -42.3994 -17.3008 -42.3994 -38.6006c0 -10.5996 4.7998 -20.8994 13.2998 -28.0996
-l21.8994 -18.7998c1.30078 -1.10059 2.10059 -2.5 2.10059 -3.80078c0 -3.09961 -4.40039 -6.59961 -10.4004 -6.59961h-12.2998c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h12.2998z" />
-    <glyph glyph-name="snowboarding" unicode="&#xf7ce;" 
-d="M432 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM460.8 198.4l-83.5 62.8994l-66 -30.5l52 -39c14.9004 -11.2002 22 -30.2002 18.1006 -48.3994l-21.9004 -102c-2.2002 -10.1006 -9.09961 -17.8008 -17.7998 -21.9004
-l90.7998 -33.0996c9.7002 -3.5 20.2002 -3.10059 29.5 1.2998c12 5.59961 26.2998 0.399414 31.9004 -11.6006c5.59961 -12 0.399414 -26.2998 -11.6006 -31.8994c-11.5996 -5.5 -24 -8.2002 -36.5 -8.2002c-10 0 -20 1.7998 -29.7002 5.2998l-364.8 132.7
-c-21.7998 7.90039 -39.0996 23.7998 -48.8994 44.7998c-5.60059 12 -0.400391 26.2998 11.5996 31.9004c12 5.59961 26.2998 0.399414 31.9004 -11.6006c4.39941 -9.39941 12.0996 -16.5 21.7998 -20l38.7002 -14.0996c-3.80078 3.5 -7 7.7002 -8.7002 12.9004
-c-5.60059 16.7998 3.39941 34.8994 20.2002 40.5l74.0996 24.6992v53.1006c0 24.3994 13.5996 46.2998 35.4004 57.2002l41.1992 20.5996l-16.3994 5.5c-12.1006 4.09961 -22 12.5996 -27.7002 24l-29.0996 58.0996c-7.90039 15.8008 -1.5 35 14.2998 42.9004
-s35 1.5 42.8994 -14.2998l26.1006 -52.1006l63.7002 -21.1992c16.2998 -5.40039 31.5996 -13.5 45.3994 -23.8008l111.4 -83.5c14.2002 -10.5996 17 -30.6992 6.39941 -44.7998c-6.2998 -8.39941 -15.8994 -12.7998 -25.5996 -12.7998
-c-6.7002 0 -13.4004 2.09961 -19.2002 6.40039zM316.4 146.7l-60.5 45.2998v-20.5c0 -20.7002 -13.2002 -39 -32.8008 -45.5l-85 -28.4004c-2.59961 -0.899414 -5.2998 -1.09961 -8 -1.2998l169.4 -61.5996c-2.90039 6.09961 -4.2998 12.8994 -2.7998 20z" />
-    <glyph glyph-name="snowman" unicode="&#xf7d0;" 
-d="M510.9 295.7c3.19922 -8.10059 -0.800781 -17.2002 -8.90039 -20.2998l-135.2 -55.2002c0.400391 -4.10059 1.2002 -8 1.2002 -12.2002c0 -10 -1.7002 -19.5 -4.2002 -28.7002c21.1006 -21.3994 36.1006 -48.7998 41.6006 -79
-c11.5 -63.2002 -16.4004 -120.3 -62.9004 -152.6c-10.9004 -7.60059 -23.9004 -11.7002 -37.2002 -11.7002h-99.2002c-11 0 -22 2.2998 -31.2998 8.2002c-42.3994 26.8994 -70.7998 73.7998 -70.7998 127.8c0 41.7998 16.9004 79.5996 44.2998 107.1
-c-2.5 9.30078 -4.2002 18.8008 -4.2002 28.9004c0 4.2002 0.800781 8.2002 1.2002 12.2002l-135.2 55.2002c-8.19922 3.19922 -12.1992 12.2998 -8.89941 20.2998l5.89941 14.5c3.30078 8 12.6006 11.8994 20.8008 8.7002l28.0996 -11.5v29
-c0 8.59961 7.2002 15.5996 16 15.5996h16c8.7998 0 16 -7 15.7998 -15.5996v-46.9004c0 -0.5 -0.200195 -1 -0.299805 -1.5l56.4004 -23c6 10 13.2998 18.9004 22 26.5996c-13.5 16.6006 -22 37.4004 -22 60.5c0 53 43 96 96 96s96 -43 96 -96
-c0 -23.0996 -8.40039 -43.8994 -22 -60.5c8.69922 -7.69922 16.0996 -16.5996 22 -26.5996l56.3994 23c0 0.5 -0.299805 1 -0.299805 1.5v46.9004c0 8.59961 7.2002 15.5996 16 15.5996h16c8.7998 0 16 -7 16 -15.5996v-29l28.2002 11.5
-c8.2002 3.19922 17.5 -0.700195 20.7998 -8.7002zM224 352c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM256 80c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM256 144
-c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM256 208c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM256 296c0 0 16 23.2002 16 32s-7.2002 16 -16 16s-16 -7.2002 -16 -16s16 -32 16 -32z
-M288 352c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16z" />
-    <glyph glyph-name="snowplow" unicode="&#xf7d2;" horiz-adv-x="640" 
-d="M120 72c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM200 72c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM280 72c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24
-s-24 10.7002 -24 24s10.7002 24 24 24zM360 72c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM598.6 22.5996l36.7002 -36.6992c6.2002 -6.2002 6.2002 -16.4004 0 -22.6006l-22.5996 -22.5996
-c-6.2002 -6.2002 -16.4004 -6.2002 -22.6006 0l-36.6992 36.7002c-26.5 26.5 -41.4004 62.3994 -41.4004 99.8994v18.7002h-43.2002c7 -14.5996 11.2002 -30.7002 11.2002 -48c0 -61.9004 -50.0996 -112 -112 -112h-256c-61.9004 0 -112 50.0996 -112 112
-c0 44.5996 26.2998 82.7998 64 100.8v91.2002c0 26.5 21.5 48 48 48h16v112c0 26.5 21.5 48 48 48h144.3c19.2998 0 36.6006 -11.4004 44.2002 -29.0996l78.2998 -182.801c3.40039 -8 5.2002 -16.5 5.2002 -25.1992v-50.9004h64v18.7002
-c0 37.5 14.9004 73.3994 41.4004 99.8994l36.6992 36.7002c6.2002 6.2002 16.4004 6.2002 22.6006 0l22.5996 -22.5996c6.2002 -6.2002 6.2002 -16.4004 0 -22.6006l-36.7002 -36.6992c-14.5 -14.5 -22.5996 -34.1006 -22.5996 -54.6006v-101.6
-c0 -20.5 8.09961 -40.1006 22.5996 -54.6006zM192 384v-96l64 -64h122.4l-68.6006 160h-117.8zM368 0c26.5 0 48 21.5 48 48s-21.5 48 -48 48h-256c-26.5 0 -48 -21.5 -48 -48s21.5 -48 48 -48h256z" />
-    <glyph glyph-name="tenge" unicode="&#xf7d7;" horiz-adv-x="384" 
-d="M372 288c6.59961 0 12 -5.40039 12 -12v-56c0 -6.59961 -5.40039 -12 -12 -12h-140v-228c0 -6.59961 -5.40039 -12 -12 -12h-56c-6.59961 0 -12 5.40039 -12 12v228h-140c-6.59961 0 -12 5.40039 -12 12v56c0 6.59961 5.40039 12 12 12h360zM372 416
-c6.59961 0 12 -5.40039 12 -12v-56c0 -6.59961 -5.40039 -12 -12 -12h-360c-6.59961 0 -12 5.40039 -12 12v56c0 6.59961 5.40039 12 12 12h360z" />
-    <glyph glyph-name="toilet" unicode="&#xf7d8;" horiz-adv-x="384" 
-d="M368 400h-16v-156.7c20.2002 -10.0996 32 -22.2002 32 -35.2998c0 -67.2002 -34.5996 -126.2 -86.7998 -160.5l21.3994 -70.2002c6.30078 -20.5 -9.09961 -41.2998 -30.5996 -41.2998h-192c-21.5 0 -36.9004 20.7998 -30.5996 41.2998l21.3994 70.2002
-c-52.2002 34.2998 -86.7998 93.2998 -86.7998 160.5c0 13.0996 11.7998 25.2002 32 35.2998v156.7h-16c-8.7998 0 -16 7.2002 -16 16v16c0 8.7998 7.2002 16 16 16h352c8.7998 0 16 -7.2002 16 -16v-16c0 -8.7998 -7.2002 -16 -16 -16zM80 376v-16
-c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8zM192 176c77.0996 0 139.6 14.2998 139.6 32s-62.5 32 -139.6 32s-139.6 -14.2998 -139.6 -32s62.5 -32 139.6 -32z" />
-    <glyph glyph-name="tools" unicode="&#xf7d9;" 
-d="M501.1 52.2998c14.5 -14.5 14.5 -38.0996 0 -52.7002l-52.6992 -52.6992c-14.5 -14.6006 -38.1006 -14.6006 -52.7002 0l-117.101 117.1c-23.0996 23.0996 -27.5 57.5996 -13.8994 85.4004l-106.601 106.6h-62.0996l-96 128l64 64l128 -96v-62.0996l106.6 -106.601
-c27.8008 13.7002 62.3008 9.2002 85.4004 -13.8994zM331.7 223c-8.2002 0 -16.6006 -1 -24.7002 -2.90039l-82.0996 82.1006c-0.700195 37.5 12.6992 75.0996 41.1992 103.6c37 37 89.2002 49.6006 136.601 37.9004c9.09961 -2.2998 12.2998 -13.6006 5.7002 -20.2002
-l-74.4004 -74.4004l11.2998 -67.8994l67.9004 -11.2998l74.3994 74.3994c6.60059 6.60059 17.9004 3.5 20.1006 -5.5c11.7998 -47.3994 -0.799805 -99.5996 -37.9004 -136.7c-13 -13 -28 -22.5996 -43.7998 -29.5l-19.4004 19.4004c-20 20 -46.5996 31 -74.8994 31z
-M227.8 141c-4.89941 -21.0996 -2.59961 -42.7998 5 -62.7002l-123.6 -123.6c-25 -25 -65.5 -25 -90.5 0s-25 65.5 0 90.5l152.399 152.5zM64 -24c13.2998 0 24 10.7998 24 24c0 13.2998 -10.7002 24 -24 24s-24 -10.7002 -24 -24c0 -13.2002 10.7998 -24 24 -24z" />
-    <glyph glyph-name="tram" unicode="&#xf7da;" 
-d="M288 384c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM511.5 396.1c2.2002 -8.5 -2.7998 -17.2998 -11.4004 -19.5996l-228.1 -60.7998v-91.7002h176c17.7002 0 32 -14.2998 32 -32v-224c0 -17.7002 -14.2998 -32 -32 -32
-h-384c-17.7002 0 -32 14.2998 -32 32v224c0 17.7002 14.2998 32 32 32h176v83.2002l-219.9 -58.7002c-1.2998 -0.299805 -2.69922 -0.5 -4.09961 -0.5c-7.09961 0 -13.5 4.7002 -15.4004 11.7998c-2.2998 8.60059 2.80078 17.2998 11.3008 19.6006l480 128
-c8.59961 2.2998 17.2998 -2.7002 19.5996 -11.3008zM176 64v96h-96v-96h96zM336 160v-96h96v96h-96zM304 160h-96v-96h96v96zM192 352c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32z" />
-    <glyph glyph-name="fire-alt" unicode="&#xf7e4;" horiz-adv-x="448" 
-d="M323.56 396.8c72.46 -67.2598 124.44 -177.13 124.44 -230.399c0 -127.25 -100.29 -230.4 -224 -230.4s-224 103.15 -224 230.4c0 71.6396 69.7402 190.43 168 281.6c38.2803 -35.5303 72.0801 -73.6201 99.3398 -111.17
-c16.6406 20.3799 35.4199 40.6699 56.2197 59.9697zM304.09 56.1504c49.2402 34.4492 60.7803 101.229 33.4297 153.42c-3.35938 6.41992 -7.12988 13.1201 -11.2695 19.9697l-58.6299 -66.8799s-91.9004 117.359 -98.8301 125.34
-c-48.4805 -58.1201 -72.79 -92.1396 -72.79 -130.75c0 -77.5098 58.71 -125.25 130.86 -125.25c28.8594 0 55.5693 8.99023 77.2295 24.1504z" />
-    <glyph glyph-name="bacon" unicode="&#xf7e5;" horiz-adv-x="576" 
-d="M218.92 111.61c-34.8604 -34.8799 -59.6504 -44.1602 -85.9199 -54c-26 -9.76074 -53 -20.1299 -88.1699 -52.7305l-35.7598 35.5098c-12.7002 12.6104 -12.0703 33.6104 1.79004 45.0605c36.3398 29.9795 66.21 41.0996 91.0693 50.3594
-c9.16992 3.41016 68.9707 19.2607 98.7207 98.0908c8.60938 22.8096 46.3496 134.58 188.979 187.72c15.8506 5.91016 27.3604 10.2002 41 20.2998c5.14941 3.80859 11.5498 6.08008 18.4404 6.08008c8.46484 0 16.1426 -3.40137 21.7393 -8.91016l37.6709 -37.3896
-c-30.1504 -27.6904 -52.9102 -36.3701 -76.79 -45.3701c-28.3008 -10.6104 -57.5703 -21.5801 -97.3506 -61.3799s-50.7598 -69.0498 -61.3701 -97.3398c-9.84961 -26.3008 -19.1602 -51.1104 -54.0498 -86zM566.92 343.61
-c12.7002 -12.5996 12.0801 -33.6602 -1.80957 -45.0605c-36.3701 -30.0098 -66.2402 -41.1396 -91.1104 -50.4102c-9.2002 -3.43945 -69 -19.3193 -98.7305 -98.1094c-8.93945 -23.5898 -46.7393 -134.69 -188.939 -187.69
-c-15.8496 -5.89941 -27.3398 -10.1797 -40.9404 -20.2402c-5.14941 -3.81055 -11.5527 -6.08301 -18.4453 -6.08301c-8.46289 0 -16.1377 3.39844 -21.7344 8.90332l-37.6797 37.4297c30.1094 27.6699 52.8594 36.3301 76.7197 45.3301
-c28.2998 10.5898 57.5098 21.54 97.2998 61.3203s50.7803 69 61.4199 97.3301c9.81055 26.3096 19.1104 51.1602 54 86c34.8906 34.8398 59.6904 44.1504 85.9502 54c26.0703 9.79004 53.0605 20.1602 88.25 52.79z" />
-    <glyph glyph-name="book-medical" unicode="&#xf7e6;" horiz-adv-x="448" 
-d="M448 89.5996c0 -9.59961 -3.2002 -15.999 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320
-c0 54.4004 41.5996 96 96 96h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM144 280v-48c0 -4.41504 3.58496 -8 8 -8h56v-56c0 -4.41504 3.58496 -8 8 -8h48c4.41504 0 8 3.58496 8 8v56h56c4.41504 0 8 3.58496 8 8v48c0 4.41504 -3.58496 8 -8 8h-56v56
-c0 4.41504 -3.58496 8 -8 8h-48c-4.41504 0 -8 -3.58496 -8 -8v-56h-56c-4.41504 0 -8 -3.58496 -8 -8zM380.8 0v64h-284.8c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8z" />
-    <glyph glyph-name="bread-slice" unicode="&#xf7ec;" horiz-adv-x="576" 
-d="M288 448c180 0 288 -93.4004 288 -169.14c0 -30.3008 -24.2402 -54.8604 -64 -54.8604v-256c0 -17.6699 -16.1201 -32 -36 -32h-376c-19.8799 0 -36 14.3301 -36 32v256c-39.7598 0 -64 24.5596 -64 54.8604c0 75.7393 108 169.14 288 169.14z" />
-    <glyph glyph-name="cheese" unicode="&#xf7ef;" 
-d="M0 160h512v-160c0 -17.6611 -14.3389 -32 -32 -32h-448c-17.6611 0 -32 14.3389 -32 32v160zM299.83 416c118.17 -6.2002 212.17 -104.11 212.17 -224h-512l278.7 217c5.47656 4.38477 12.4277 7.02051 19.9814 7.02051
-c0.384766 0 0.767578 -0.00683594 1.14844 -0.0205078z" />
-    <glyph glyph-name="clinic-medical" unicode="&#xf7f2;" horiz-adv-x="576" 
-d="M288 333l218.74 -192.9c1.54004 -1.37988 3.55957 -2.04004 5.25977 -3.19922v-184.9c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v184.94c1.78027 1.20996 3.84961 1.88965 5.46973 3.34961zM384 72v48c0 4.41504 -3.58496 8 -8 8h-56v56
-c0 4.41504 -3.58496 8 -8 8h-48c-4.41504 0 -8 -3.58496 -8 -8v-56h-56c-4.41504 0 -8 -3.58496 -8 -8v-48c0 -4.41504 3.58496 -8 8 -8h56v-56c0 -4.41504 3.58496 -8 8 -8h48c4.41504 0 8 3.58496 8 8v56h56c4.41504 0 8 3.58496 8 8zM570.69 211.72
-c3.2627 -2.92969 5.30762 -7.18555 5.30762 -11.9121c0 -4.10156 -1.54688 -7.84473 -4.08789 -10.6777l-21.4004 -23.8203c-2.92969 -3.2627 -7.18457 -5.30762 -11.9111 -5.30762c-4.10742 0 -7.85449 1.55078 -10.6885 4.09766l-229.32 202.271
-c-2.82031 2.48828 -6.53906 3.99902 -10.5928 3.99902c-4.05273 0 -7.75684 -1.51074 -10.5771 -3.99902l-229.32 -202.28c-2.83398 -2.54688 -6.58594 -4.10645 -10.6924 -4.10645c-4.72656 0 -8.97754 2.05371 -11.9072 5.31641l-21.4102 23.8203
-c-2.54688 2.83398 -4.10645 6.58594 -4.10645 10.6934c0 4.72559 2.05371 8.97656 5.31641 11.9062l256 226c7.06934 6.3916 16.4707 10.2852 26.7412 10.2852c10.2715 0 19.6396 -3.89355 26.709 -10.2852z" />
-    <glyph glyph-name="comment-medical" unicode="&#xf7f5;" 
-d="M256 416c141.39 0 256 -93.1201 256 -208s-114.61 -208 -256 -208c-0.161133 0 -0.446289 0.107422 -0.606445 0.107422c-37.5674 0 -73.5547 6.81445 -106.794 19.2725c-24.5996 -19.6299 -74.3398 -51.3799 -140.6 -51.3799
-c-4.41113 0.00488281 -7.99023 3.58984 -7.99023 8.00195c0 2.12891 0.833008 4.06445 2.19043 5.49805c0.5 0.5 42.2598 45.4502 54.7998 95.7598c-35.5898 35.7402 -57 81.1807 -57 130.74c0 114.88 114.62 208 256 208zM352 184v48c0 4.41504 -3.58496 8 -8 8h-56v56
-c0 4.41504 -3.58496 8 -8 8h-48c-4.41504 0 -8 -3.58496 -8 -8v-56h-56c-4.41504 0 -8 -3.58496 -8 -8v-48c0 -4.41504 3.58496 -8 8 -8h56v-56c0 -4.41504 3.58496 -8 8 -8h48c4.41504 0 8 3.58496 8 8v56h56c4.41504 0 8 3.58496 8 8z" />
-    <glyph glyph-name="crutch" unicode="&#xf7f7;" 
-d="M507.31 262.29c2.87109 -2.89258 4.64551 -6.87891 4.64551 -11.2725c0 -4.42285 -1.79883 -8.42969 -4.70508 -11.3271l-22.6201 -22.6309c-2.89648 -2.89648 -6.90137 -4.68945 -11.3174 -4.68945s-8.41602 1.79297 -11.3125 4.68945l-181 181
-c-2.89648 2.89648 -4.68945 6.90137 -4.68945 11.3174s1.79297 8.41699 4.68945 11.3135l22.6904 22.5996c2.89551 2.89355 6.89844 4.68457 11.3115 4.68457c4.41406 0 8.41211 -1.79102 11.3076 -4.68457zM327.77 195.88l55.1006 55.1201l45.25 -45.2695l-109.68 -109.681
-c-12.4922 -12.4961 -28.4805 -21.5479 -46.29 -25.6494l-120.25 -27.75l-102 -102c-2.89648 -2.89746 -6.90137 -4.69043 -11.3174 -4.69043s-8.41699 1.79297 -11.3135 4.69043l-22.6191 22.6191c-2.89746 2.89648 -4.69043 6.90137 -4.69043 11.3174
-s1.79297 8.41699 4.69043 11.3135l102 102l27.7393 120.26c4.11816 17.8066 13.1738 33.7939 25.6699 46.29l109.671 109.67l45.25 -45.25l-55.1006 -55.1006zM273.2 141.31l9.30957 9.31055l-67.8896 67.8896l-9.31055 -9.30957
-c-4.16113 -4.17676 -7.17969 -9.51074 -8.55957 -15.4502l-18.2998 -79.2998l79.2998 18.3193c5.94238 1.36328 11.2783 4.37695 15.4502 8.54004z" />
-    <glyph glyph-name="disease" unicode="&#xf7fa;" 
-d="M472.29 252.1c48.54 -16.6191 53.8301 -73.8301 8.99023 -96.79l-62 -31.7393c-17.8301 -9.12988 -29.2803 -25.2002 -30.6299 -43l-4.7002 -61.8604c-3.4502 -44.79 -65.1299 -66.7803 -104.45 -37.2197l-54.3203 40.8301
-c-15.6201 11.7295 -36.96 16.1201 -57.0693 11.7295l-70 -15.2803c-50.6504 -11.0596 -94.1104 32.5605 -73.46 73.8008l28.4297 57c8.17969 16.3799 6.43945 35.1699 -4.63965 50.2393l-38.54 52.4209c-27.9307 37.9492 7 86.9092 59 82.8398l71.8994 -5.62012
-c20.6602 -1.62012 40.9404 5.59961 54.2002 19.3096l46.0898 47.7207c33.4297 34.5098 98.4199 21.1494 110 -22.6201l16 -60.4502c4.60059 -17.3906 18.8604 -31.71 38.1406 -38.3105zM160 192c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32
-s14.3389 -32 32 -32zM288 96c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM304 224c8.83105 0 16 7.16895 16 16s-7.16895 16 -16 16s-16 -7.16895 -16 -16s7.16895 -16 16 -16z" />
-    <glyph glyph-name="egg" unicode="&#xf7fb;" horiz-adv-x="384" 
-d="M192 448c106 0 192 -214 192 -320s-86 -192 -192 -192s-192 86 -192 192s86 320 192 320z" />
-    <glyph glyph-name="hamburger" unicode="&#xf805;" 
-d="M464 192c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48h-416c-26.4922 0 -48 21.5078 -48 48s21.5078 48 48 48h416zM480 64c8.83105 0 16 -7.16895 16 -16v-16c0 -35.3223 -28.6777 -64 -64 -64h-352c-35.3223 0 -64 28.6777 -64 64v16
-c0 8.83105 7.16895 16 16 16h448zM58.6396 224c-34.5693 0 -54.6396 43.9102 -34.8193 75.8896c40.1797 64.9102 128.64 116.011 232.18 116.11c103.55 -0.0996094 192 -51.2002 232.18 -116.12c19.8008 -31.9795 -0.25 -75.8799 -34.8193 -75.8799h-394.721zM384 336
-c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16s16 7.16895 16 16s-7.16895 16 -16 16zM256 368c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16s16 7.16895 16 16s-7.16895 16 -16 16zM128 336c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16
-s16 7.16895 16 16s-7.16895 16 -16 16z" />
-    <glyph glyph-name="hand-middle-finger" unicode="&#xf806;" 
-d="M479.93 130.88l0.0703125 -82.8799c0 -61.7979 -50.1592 -111.973 -111.95 -112h-215c-30.9053 0.00292969 -58.9189 12.5361 -79.1895 32.8096l-30.9307 30.9307c-6.75488 6.75391 -10.9297 16.0928 -10.9297 26.3896v73.4697
-c0 14.6221 8.38574 27.2734 20.6396 33.4004l27.3604 15v-76c0 -4.41504 3.58496 -8 8 -8s8 3.58496 8 8v147.04c0 15.2598 12.8701 28.3799 30.8701 31.3799l30.6797 5.12012c17.8203 2.96973 34.4502 -8.38965 34.4502 -23.54v-32c0 -4.41504 3.58496 -8 8 -8
-s8 3.58496 8 8v200c0 0.0078125 -0.0244141 0.015625 -0.0244141 0.0234375c0 26.4912 21.5078 48 48 48c0.50293 0 1.00488 -0.0078125 1.50488 -0.0234375c26.2695 -0.799805 46.5195 -23.7197 46.5195 -50v-198c0 -4.41504 3.58496 -8 8 -8s8 3.58496 8 8v32
-c0 15.1396 16.6299 26.5 34.4502 23.5303l38.3994 -6.40039c13.46 -2.25 23.1504 -12.0996 23.1504 -23.54v-49.5898l35.6504 -8.92969c16.2188 -4.05371 28.2676 -18.7256 28.2793 -36.1904z" />
-    <glyph glyph-name="hard-hat" unicode="&#xf807;" 
-d="M480 160v-64h-448v64c0 80.25 49.2803 148.92 119.19 177.62l40.8096 -81.6201v112c0 8.83105 7.16895 16 16 16h96c8.83105 0 16 -7.16895 16 -16v-112l40.8096 81.6201c69.9102 -28.7002 119.19 -97.3701 119.19 -177.62zM496 64c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-480c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h480z" />
-    <glyph glyph-name="hospital-user" unicode="&#xf80d;" horiz-adv-x="640" 
-d="M480 128c-52.9834 0 -96 43.0166 -96 96s43.0166 96 96 96s96 -43.0166 96 -96s-43.0166 -96 -96 -96zM528 96c61.8145 0 112.002 -50.1738 112.002 -111.988c0 -0.210938 -0.000976562 -0.420898 -0.00195312 -0.631836
-c-0.139648 -26.2598 -21.7305 -47.3799 -48 -47.3799h-224c-26.2695 0 -47.8604 21.1201 -48 47.3799c-0.000976562 0.210938 0 0.40918 0 0.620117c0 61.8145 50.1855 112 112 112c0.0273438 0 0.0556641 -0.00488281 0.0830078 -0.00488281
-c2.42871 0 4.77051 -0.380859 6.9668 -1.08496c12.8193 -4.4541 26.6504 -6.87402 40.9775 -6.87402s28.0938 2.41992 40.9131 6.87402c2.19922 0.704102 4.54395 1.08984 6.97656 1.08984h0.0830078zM329.91 85.5498c-25.9033 -25.8965 -41.915 -61.665 -41.915 -101.15
-c0 -0.396484 0.00195312 -0.792969 0.00488281 -1.18945c0.166016 -17.7246 6.24512 -34.1309 16.3096 -47.21h-288.31c-8.83105 0 -16 7.16895 -16 16v368c0 17.6611 14.3389 32 32 32h32v64c0 17.6611 14.3389 32 32 32h160c17.6611 0 32 -14.3389 32 -32v-64h32
-c17.6611 0 32 -14.3389 32 -32v-216.62c-7.98633 -5.24609 -15.3037 -11.1562 -22.0898 -17.8301zM144 44v40c0 6.62305 -5.37695 12 -12 12h-40c-6.62305 0 -12 -5.37695 -12 -12v-40c0 -6.62305 5.37695 -12 12 -12h40c6.62305 0 12 5.37695 12 12zM144 172v40
-c0 6.62305 -5.37695 12 -12 12h-40c-6.62305 0 -12 -5.37695 -12 -12v-40c0 -6.62305 5.37695 -12 12 -12h40c6.62305 0 12 5.37695 12 12zM192 294v26h26c3.31152 0 6 2.68848 6 6v20c0 3.31152 -2.68848 6 -6 6h-26v26c0 3.31152 -2.68848 6 -6 6h-20
-c-3.31152 0 -6 -2.68848 -6 -6v-26h-26c-3.31152 0 -6 -2.68848 -6 -6v-20c0 -3.31152 2.68848 -6 6 -6h26v-26c0 -3.31152 2.68848 -6 6 -6h20c3.31152 0 6 2.68848 6 6zM272 44v40c0 6.62305 -5.37695 12 -12 12h-40c-6.62305 0 -12 -5.37695 -12 -12v-40
-c0 -6.62305 5.37695 -12 12 -12h40c6.62305 0 12 5.37695 12 12zM272 172v40c0 6.62305 -5.37695 12 -12 12h-40c-6.62305 0 -12 -5.37695 -12 -12v-40c0 -6.62305 5.37695 -12 12 -12h40c6.62305 0 12 5.37695 12 12z" />
-    <glyph glyph-name="hotdog" unicode="&#xf80f;" 
-d="M488.56 424.56c14.4766 -14.4795 23.4346 -34.498 23.4346 -56.5703s-8.95801 -42.0693 -23.4346 -56.5488l-352 -352c-14.5518 -15.0674 -34.9814 -24.4199 -57.5615 -24.4199c-44.1523 0 -80 35.8467 -80 80c0 22.5801 9.375 42.9873 24.4424 57.5391l352 352
-c14.4795 14.4766 34.498 23.4346 56.5703 23.4346s42.0693 -8.95801 56.5488 -23.4346zM438.63 329.37c2.89648 2.89648 4.68457 6.90137 4.68457 11.3174c0 8.83105 -7.16992 16.002 -16.002 16.002c-4.41602 0 -8.41602 -1.79297 -11.3125 -4.68945
-c-12.4102 -12.4102 -21.7598 -14 -34.71 -16.2305c-14.4004 -2.46973 -32.3203 -5.55957 -51.9199 -25.1494c-19.6006 -19.5898 -22.6699 -37.5205 -25.1396 -51.9199c-2.24023 -12.9502 -3.84082 -22.3105 -16.2402 -34.71
-c-12.4004 -12.4004 -21.7002 -14.0098 -34.7002 -16.2305c-14.4004 -2.46973 -32.3203 -5.5498 -51.9199 -25.1396c-19.6006 -19.5898 -22.6699 -37.5205 -25.1504 -51.9199c-2.21973 -12.9502 -3.80957 -22.29 -16.2197 -34.7002s-21.71 -14.0098 -34.71 -16.2305
-c-14.4004 -2.46973 -32.3203 -5.5498 -51.9199 -25.1396c-2.89648 -2.89648 -4.68457 -6.90137 -4.68457 -11.3174c0 -8.83105 7.16992 -16.002 16.002 -16.002c4.41602 0 8.41602 1.79297 11.3125 4.68945c12.4004 12.4004 21.7598 14 34.7002 16.2305
-c14.3994 2.46973 32.3301 5.55957 51.9297 25.1494c19.6006 19.5898 22.6699 37.5205 25.1396 51.9199c2.23047 12.9502 3.83008 22.2998 16.2305 34.7002s21.75 14 34.7002 16.2197c14.3994 2.48047 32.3193 5.56055 51.9199 25.1504
-c19.5996 19.5898 22.6699 37.5195 25.1494 51.9199c2.23047 12.9502 3.83008 22.3096 16.2305 34.71s21.7598 14 34.7002 16.2305c14.4102 2.46973 32.3301 5.5498 51.9297 25.1396zM31.4404 125.82l-11.5508 11.5498c-24.9893 24.9902 -26.6592 63.8398 -3.71973 86.7803
-l207.68 207.68c22.9404 22.9395 61.79 21.2803 86.79 -3.71973l11.54 -11.5508zM480.56 258.18l11.5508 -11.54c24.9893 -25 26.6592 -63.8496 3.71973 -86.79l-207.68 -207.68c-22.9404 -22.9395 -61.79 -21.2803 -86.79 3.71973l-11.54 11.5508z" />
-    <glyph glyph-name="ice-cream" unicode="&#xf810;" horiz-adv-x="448" 
-d="M368 288c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48h-288c-26.4922 0 -48 21.5078 -48 48s21.5078 48 48 48h0.94043c-0.625 5.43945 -0.93457 10.9707 -0.93457 16.5762c0 79.4756 64.5234 144 144 144c79.4756 0 144 -64.5244 144 -144
-c0 -5.60547 -0.321289 -11.1367 -0.946289 -16.5762h0.94043zM195.38 -45.6904l-99.3799 205.69h256l-99.3799 -205.69c-4.99414 -10.8223 -15.9111 -18.3398 -28.6035 -18.3398s-23.6426 7.51758 -28.6367 18.3398z" />
-    <glyph glyph-name="laptop-medical" unicode="&#xf812;" horiz-adv-x="640" 
-d="M232 224c-4.41504 0 -8 3.58496 -8 8v48c0 4.41504 3.58496 8 8 8h56v56c0 4.41504 3.58496 8 8 8h48c4.41504 0 8 -3.58496 8 -8v-56h56c4.41504 0 8 -3.58496 8 -8v-48c0 -4.41504 -3.58496 -8 -8 -8h-56v-56c0 -4.41504 -3.58496 -8 -8 -8h-48
-c-4.41504 0 -8 3.58496 -8 8v56h-56zM576 400v-336h-512v336c0.0771484 26.4561 21.5439 47.9229 48 48h416c26.4561 -0.0771484 47.9229 -21.5439 48 -48zM512 128v256h-384v-256h384zM624 32c8.83105 0 16 -7.16895 16 -16v-16
-c-0.104492 -35.2744 -28.7256 -63.8955 -64 -64h-512c-35.2744 0.104492 -63.8955 28.7256 -64 64v16c0 8.83105 7.16895 16 16 16h239.23c-0.230469 -14.5303 14.0791 -32 32.7695 -32h60.7998c18.0303 0 32 12.1904 32.7402 32h242.46z" />
-    <glyph glyph-name="pager" unicode="&#xf815;" 
-d="M448 384c35.3223 0 64 -28.6777 64 -64v-256c0 -35.3223 -28.6777 -64 -64 -64h-384c-35.3223 0 -64 28.6777 -64 64v256c0 35.3223 28.6777 64 64 64h384zM160 80v48h-80c-8.83105 0 -16 -7.16895 -16 -16v-16c0 -8.83105 7.16895 -16 16 -16h80zM288 96v16
-c0 8.83105 -7.16895 16 -16 16h-80v-48h80c8.83105 0 16 7.16895 16 16zM448 224v64c0 17.6611 -14.3389 32 -32 32h-320c-17.6611 0 -32 -14.3389 -32 -32v-64c0 -17.6611 14.3389 -32 32 -32h320c17.6611 0 32 14.3389 32 32z" />
-    <glyph glyph-name="pepper-hot" unicode="&#xf816;" 
-d="M330.67 184.88h107.46l37.0498 -38.54c-48.5293 -87.4697 -206.54 -210.34 -419.18 -210.34c-30.9072 0 -56 25.0928 -56 56s25.0928 56 56 56c141.58 0 163.44 181.24 221.92 250.82l52.75 -24.2207v-89.7197zM461.76 313.25
-c30.8984 -28.1729 50.2402 -68.7275 50.2402 -113.795v-0.145508c0 -13.6797 -2.2998 -26.6895 -5.55957 -39.3096l-54.6807 56.8799h-89.0898v78.2402l-74.6699 34.29c22.3398 14.0498 48.3398 22.5898 76.3398 22.5898
-c20.2783 -0.0078125 39.6836 -4.32031 57.1602 -11.96c18.4502 37.2197 8.25977 61.96 1.40039 72.3203c-0.896484 1.29883 -1.42676 2.88184 -1.42676 4.57715c0 2.20117 0.884766 4.19727 2.31641 5.65234l22.9004 23c1.45117 1.47559 3.46777 2.39453 5.69922 2.39453
-c2.5166 0 4.76367 -1.16504 6.23047 -2.98438c18.5596 -23.4805 35.2998 -71.9102 3.13965 -131.75z" />
-    <glyph glyph-name="pizza-slice" unicode="&#xf818;" 
-d="M158.87 447.85c181.91 -17.1699 332.02 -164.93 352.899 -345.71c1.87012 -16.2197 -7.89941 -31.54 -23.6191 -35.8994l-56.9404 -15.7803c-7.94043 186.39 -134.86 311.51 -322.479 317l14.8096 56.2705c4.12988 15.6992 19.1699 25.6396 35.3301 24.1191z
-M100.4 335.85c176.069 -1.95996 294.88 -119.25 299.149 -294.14l-379 -105.1c-1.37793 -0.381836 -2.82324 -0.59375 -4.32227 -0.59375c-8.94629 0 -16.21 7.26367 -16.21 16.21c0 1.42871 0.18457 2.81348 0.532227 4.13379zM128 32c17.6611 0 32 14.3389 32 32
-s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM176 184c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM280 80c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32z" />
-    <glyph glyph-name="trash-restore" unicode="&#xf829;" horiz-adv-x="448" 
-d="M53.2002 -19l-21.2002 339h384l-21.2002 -339c-1.57031 -25.0762 -22.4316 -44.9971 -47.8994 -45h-245.801c-25.4678 0.00292969 -46.3291 19.9238 -47.8994 45zM123.31 156.8c-10.0791 -10.6201 -2.93945 -28.7998 11.3203 -28.7998h57.3701v-112
-c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16v112h57.3701c14.2598 0 21.3994 18.1797 11.3203 28.7998l-89.3809 94.2598c-2.81543 3.04297 -6.83984 4.94922 -11.3086 4.94922s-8.49512 -1.90625 -11.3105 -4.94922zM432 416
-c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h120l9.40039 18.7002c3.85547 7.88574 11.9434 13.2998 21.3066 13.2998h0.0927734h114.3
-c0.00585938 0 -0.00195312 0.0234375 0.00390625 0.0234375c9.41113 0 17.5645 -5.42871 21.4961 -13.3232l9.40039 -18.7002h120z" />
-    <glyph glyph-name="trash-restore-alt" unicode="&#xf82a;" horiz-adv-x="448" 
-d="M32 -16v336h384v-336c0 -26.4922 -21.5078 -48 -48 -48h-288c-26.4922 0 -48 21.5078 -48 48zM123.31 156.8c-10.0791 -10.6201 -2.93945 -28.7998 11.3203 -28.7998h57.3701v-112c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16v112h57.3701
-c14.2598 0 21.3994 18.1797 11.3203 28.7998l-89.3809 94.2598c-2.81543 3.04297 -6.83984 4.94922 -11.3086 4.94922s-8.49512 -1.90625 -11.3105 -4.94922zM432 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h120l9.40039 18.7002c3.85547 7.88574 11.9434 13.2998 21.3066 13.2998h0.0927734h114.3c0.00585938 0 -0.00195312 0.0234375 0.00390625 0.0234375c9.41113 0 17.5645 -5.42871 21.4961 -13.3232
-l9.40039 -18.7002h120z" />
-    <glyph glyph-name="user-nurse" unicode="&#xf82f;" horiz-adv-x="448" 
-d="M319.41 128c71.4902 -3.09961 128.59 -61.5996 128.59 -133.79c0 -32.127 -26.083 -58.21 -58.21 -58.21h-331.58c-32.127 0 -58.21 26.083 -58.21 58.21c0 72.1904 57.0996 130.69 128.59 133.79l95.4102 -95.3896zM224 144c-70.6455 0 -128 57.3545 -128 128v110.18
-c0 13.7119 8.62988 25.4092 20.7598 29.96l84.7705 31.79c6.98438 2.61914 14.6035 4.05176 22.498 4.05176s15.457 -1.43262 22.4414 -4.05176l84.7705 -31.75c12.1309 -4.55078 20.7598 -16.248 20.7598 -29.96v-0.0400391v-110.18c0 -70.6455 -57.3545 -128 -128 -128z
-M184 376.33v-16.6602c0 -2.75977 2.24023 -5 5 -5h21.6699v-21.6699c0 -2.75977 2.24023 -5 5 -5h16.6602c2.75977 0 5 2.24023 5 5v21.6699h21.6699c2.75977 0 5 2.24023 5 5v16.6602c0 2.75977 -2.24023 5 -5 5h-21.6699v21.6699c0 2.75977 -2.24023 5 -5 5h-16.6602
-c-2.75977 0 -5 -2.24023 -5 -5v-21.6699h-21.6699c-2.75977 0 -5 -2.24023 -5 -5zM144 288v-16c0 -44.1533 35.8467 -80 80 -80s80 35.8467 80 80v16h-160z" />
-    <glyph glyph-name="wave-square" unicode="&#xf83e;" horiz-adv-x="640" 
-d="M476 -32h-152c-19.8691 0 -36 16.1309 -36 36v348h-96v-156c0 -19.8691 -16.1309 -36 -36 -36h-140c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h112v156c0 19.8691 16.1309 36 36 36h152c19.8691 0 36 -16.1309 36 -36v-348h96v156
-c0 19.8691 16.1309 36 36 36h140c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-112v-156c0 -19.8691 -16.1309 -36 -36 -36z" />
-    <glyph glyph-name="biking" unicode="&#xf84a;" horiz-adv-x="640" 
-d="M400 352c-26.4922 0 -48 21.5078 -48 48s21.5078 48 48 48s48 -21.5078 48 -48s-21.5078 -48 -48 -48zM396 231l-41.3604 33.1104l-58.25 -49.9199l41.3604 -27.5703c8.60547 -5.7373 14.248 -15.5117 14.25 -26.6201v-128c0 -17.6611 -14.3389 -32 -32 -32
-s-32 14.3389 -32 32v110.88l-81.7305 54.5205c-8.60742 5.7373 -14.2686 15.5068 -14.2686 26.6191c0 9.71777 4.3418 18.4297 11.1895 24.3008l112 96c5.58887 4.80176 12.8965 7.70117 20.8359 7.70117c7.55566 0 14.502 -2.62891 19.9736 -7.02148l71.2197 -57h52.7803
-c17.6611 0 32 -14.3389 32 -32s-14.3389 -32 -32 -32h-64c-0.0205078 0 -0.0625 0.0117188 -0.0830078 0.0117188c-7.53125 0 -14.457 2.61621 -19.917 6.98828zM512 192c70.6455 0 128 -57.3545 128 -128s-57.3545 -128 -128 -128s-128 57.3545 -128 128
-s57.3545 128 128 128zM512 0c35.3223 0 64 28.6777 64 64s-28.6777 64 -64 64s-64 -28.6777 -64 -64s28.6777 -64 64 -64zM128 192c70.6455 0 128 -57.3545 128 -128s-57.3545 -128 -128 -128s-128 57.3545 -128 128s57.3545 128 128 128zM128 0c35.3223 0 64 28.6777 64 64
-s-28.6777 64 -64 64s-64 -28.6777 -64 -64s28.6777 -64 64 -64z" />
-    <glyph glyph-name="border-all" unicode="&#xf84c;" horiz-adv-x="448" 
-d="M416 416c17.6611 0 32 -14.3389 32 -32v-384c0 -17.6611 -14.3389 -32 -32 -32h-384c-17.6611 0 -32 14.3389 -32 32v384c0 17.6611 14.3389 32 32 32h384zM384 352h-128v-128h128v128zM192 352h-128v-128h128v128zM64 32h128v128h-128v-128zM256 32h128v128h-128v-128z
-" />
-    <glyph glyph-name="border-none" unicode="&#xf850;" horiz-adv-x="448" 
-d="M240 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM336 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h32zM432 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM144 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM240 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM336 32c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 128
-c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 320c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h32zM240 128c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM240 320c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM144 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM240 416c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM336 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 416
-c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM48 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h32zM48 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM48 128c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM48 320c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM48 416c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM144 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32z" />
-    <glyph glyph-name="border-style" unicode="&#xf853;" horiz-adv-x="448" 
-d="M240 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM144 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32
-c0 8.83105 7.16895 16 16 16h32zM336 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32
-c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 128c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 32c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 320c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 416
-c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-368v-368c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v400c0 17.6611 14.3389 32 32 32h400z" />
-    <glyph glyph-name="fan" unicode="&#xf863;" 
-d="M352.57 320c81.79 0 149.3 -61.6299 159.3 -141.33c1.30957 -10.4795 -7.17969 -19.6396 -17.6201 -18.5898l-123.11 12.4102c8.34082 -22.9707 12.8604 -48.9707 12.8604 -77.0605c0 -81.79 -61.6299 -149.3 -141.33 -159.3
-c-10.4795 -1.30957 -19.6396 7.19043 -18.5898 17.6201l12.4102 123.11c-22.9707 -8.34082 -48.9707 -12.8604 -77.0605 -12.8604c-81.79 0 -149.3 61.6299 -159.3 141.33c-1.30957 10.4795 7.17969 19.6699 17.6201 18.5898l123.11 -12.4102
-c-8.34082 22.9707 -12.8604 48.9707 -12.8604 77.0605c0 81.79 61.6299 149.3 141.33 159.3c10.4795 1.30957 19.6699 -7.17969 18.5898 -17.6201l-12.4102 -123.11c22.9707 8.34082 48.9707 12.8604 77.0605 12.8604zM256 160c17.6611 0 32 14.3389 32 32
-s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32z" />
-    <glyph glyph-name="icons" unicode="&#xf86d;" 
-d="M116.65 228.65l-96.79 99.8301c-28 29.0293 -26.4102 77.0996 5 103.88c27.3896 23.3398 68.1895 19.1396 93.29 -6.80078l9.84961 -10.1396l9.86035 10.1396c25.1396 25.9404 65.8896 30.1406 93.2793 6.80078c31.4102 -26.7803 33.0605 -74.8799 4.91016 -103.88
-l-96.75 -99.8301c-2.85449 -2.98242 -6.875 -4.83984 -11.3252 -4.83984s-8.46973 1.85742 -11.3242 4.83984zM260.57 128.16c15.1406 -0.0107422 27.4297 -12.3066 27.4297 -27.4502v-0.00976562v-137.25c0 -15.1436 -12.2891 -27.4395 -27.4297 -27.4502h-233.141
-c-15.1396 0.00585938 -27.4297 12.2988 -27.4297 27.4395v0.0107422v137.25v0.00976562c0 15.1504 12.2998 27.4502 27.4502 27.4502h0.00976562h48l7 14.2402c3.89258 10.3887 13.9082 17.7793 25.6484 17.7793h0.0117188h71.71
-c0.00390625 0 -0.00195312 0.0126953 0.000976562 0.0126953c11.7412 0 21.7666 -7.40332 25.6592 -17.792l7.08008 -14.2402h48zM144 -20c28.6992 0 52 23.3008 52 52s-23.3008 52 -52 52s-52 -23.3008 -52 -52s23.3008 -52 52 -52zM499.4 95.9004
-c9.70996 0 15.75 -8.79004 10.8691 -15.7002l-92.3994 -138.91c-2.42188 -3.19824 -6.24805 -5.25488 -10.5654 -5.25488c-0.118164 0 -0.236328 0.00195312 -0.354492 0.00488281c-8.03027 0 -14.1201 6.25 -12.2305 12.9004l24.2002 83h-62.3096
-c-7.62012 0 -13.5 5.58984 -12.5 11.8896l16.7998 106.93c0.839844 5.2002 6.2002 9.10059 12.5 9.10059h75.5898c8.25 0 14.2803 -6.56055 12.1797 -13.21l-22.3594 -50.75h60.5801zM478.08 447.67c17.9199 2.75 33.9199 -12.1895 33.9199 -31.6699v-144.26
-c-0.269531 -26.3398 -28.7998 -47.6602 -64 -47.6602c-35.3496 0 -64 21.4795 -64 48c0 26.5195 28.6504 48 64 48c5.49219 -0.0498047 10.8096 -0.633789 16 -1.7002v47.1797l-112 -17.2197v-108.58c-0.269531 -26.3398 -28.7998 -47.6602 -64 -47.6602
-c-35.3496 0 -64 21.4805 -64 48c0 26.5205 28.6504 48 64 48c5.49219 -0.0498047 10.8096 -0.632812 16 -1.69922v106.77c0 15.9102 10.8701 29.4102 25.5098 31.6602z" />
-    <glyph glyph-name="phone-alt" unicode="&#xf879;" 
-d="M497.39 86.2002c8.60059 -3.74121 14.6006 -12.2891 14.6006 -22.2588c0 -1.83496 -0.204102 -3.62305 -0.589844 -5.3418l-24 -104c-2.45801 -10.6416 -12 -18.5996 -23.3848 -18.5996h-0.015625c-256.1 0 -464 207.5 -464 464l0.0136719 0.00390625
-c0 11.3848 7.94434 20.9287 18.5859 23.3857l104 24c1.72754 0.392578 3.49805 0.619141 5.34375 0.619141c9.9082 0 18.4307 -5.97656 22.1562 -14.5186l48 -112c1.23828 -2.88965 1.95117 -6.0791 1.95117 -9.41895c0 -7.49512 -3.45215 -14.1904 -8.85059 -18.5811
-l-60.6006 -49.6006c36.7334 -77.9072 99.2822 -140.457 177.19 -177.189l49.5996 60.5996c4.40332 5.39258 11.1113 8.81055 18.6084 8.81055c3.33203 0 6.50684 -0.680664 9.3916 -1.91016z" />
-    <glyph glyph-name="phone-square-alt" unicode="&#xf87b;" horiz-adv-x="448" 
-d="M400 416c26.4922 0 48 -21.5078 48 -48v-352c0 -26.4922 -21.5078 -48 -48 -48h-352c-26.4922 0 -48 21.5078 -48 48v352c0 26.4922 21.5078 48 48 48h352zM383.61 108.63c0.235352 1.09082 0.369141 2.21387 0.389648 3.37012
-c-0.301758 6.06445 -3.91992 11.2607 -9.08984 13.79l-70 30c-1.83594 0.71582 -3.83789 1.14355 -5.91016 1.20996c-4.58496 -0.251953 -8.69922 -2.31836 -11.6104 -5.5l-31 -37.8896c-48.7002 22.9775 -87.8018 62.0791 -110.779 110.779l37.8896 31
-c3.18164 2.91113 5.24805 7.02539 5.5 11.6104c-0.0673828 2.07129 -0.495117 4.07324 -1.20996 5.91016l-30 70c-2.53223 5.16797 -7.72754 8.78418 -13.79 9.08984c-1.15527 -0.0253906 -2.27734 -0.15918 -3.37012 -0.389648l-65 -15
-c-6.52246 -1.74707 -11.3818 -7.59961 -11.6299 -14.6104c0 -160.29 130 -290 290 -290c7.11426 0.00292969 13.0762 4.97852 14.6104 11.6299z" />
-    <glyph glyph-name="photo-video" unicode="&#xf87c;" horiz-adv-x="640" 
-d="M608 448c17.6611 0 32 -14.3389 32 -32v-320c0 -17.6611 -14.3389 -32 -32 -32h-128v320h-192v-64h-160v96c0 17.6611 14.3389 32 32 32h448zM232 345v30c0 4.9668 -4.0332 9 -9 9h-30c-4.9668 0 -9 -4.0332 -9 -9v-30c0 -4.9668 4.0332 -9 9 -9h30
-c4.9668 0 9 4.0332 9 9zM584 137v30c0 4.9668 -4.0332 9 -9 9h-30c-4.9668 0 -9 -4.0332 -9 -9v-30c0 -4.9668 4.0332 -9 9 -9h30c4.9668 0 9 4.0332 9 9zM584 241v30c0 4.9668 -4.0332 9 -9 9h-30c-4.9668 0 -9 -4.0332 -9 -9v-30c0 -4.9668 4.0332 -9 9 -9h30
-c4.9668 0 9 4.0332 9 9zM584 345v30c0 4.9668 -4.0332 9 -9 9h-30c-4.9668 0 -9 -4.0332 -9 -9v-30c0 -4.9668 4.0332 -9 9 -9h30c4.9668 0 9 4.0332 9 9zM416 288c17.6611 0 32 -14.3389 32 -32v-288c0 -17.6611 -14.3389 -32 -32 -32h-384c-17.6611 0 -32 14.3389 -32 32
-v288c0 17.6611 14.3389 32 32 32h384zM96 224c-17.6611 0 -32 -14.3389 -32 -32s14.3389 -32 32 -32s32 14.3389 32 32s-14.3389 32 -32 32zM384 0v96l-96 96l-128 -128l-32 32l-64 -64v-32h320z" />
-    <glyph glyph-name="remove-format" unicode="&#xf87d;" horiz-adv-x="640" 
-d="M336 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32.4902l26.5098 79.5996l67.0898 -51.8301l-9.25977 -27.7695h11.1699zM633.82 -10.0996
-c3.76855 -2.92871 6.17676 -7.50977 6.17676 -12.6475c0 -3.69238 -1.25293 -7.09375 -3.35742 -9.80273l-19.6396 -25.2705c-2.92871 -3.76855 -7.50879 -6.17578 -12.6465 -6.17578c-3.69727 0 -7.10254 1.25684 -9.81348 3.36621l-588.36 454.72
-c-3.76562 2.92871 -6.1709 7.50781 -6.1709 12.6426c0 3.69434 1.25488 7.09766 3.36133 9.80762l19.6299 25.2695c2.92871 3.76855 7.50879 6.17676 12.6465 6.17676c3.69727 0 7.10254 -1.25684 9.81348 -3.36621l114.54 -88.5205v43.9004c0 8.83105 7.16895 16 16 16h416
-c8.83105 0 16 -7.16895 16 -16v-96c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32h-117.83l-49.1699 -147.59zM309.91 240.24l31.9199 95.7598h-117.83v-29.3604z" />
-    <glyph glyph-name="sort-alpha-down-alt" unicode="&#xf881;" horiz-adv-x="448" 
-d="M176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32
-c8.83105 0 16 -7.16895 16 -16v-304h48zM288 224c-8.83105 0 -16 7.16895 -16 16v17.6299c0 9.51074 4.14355 18.0566 10.7402 23.9199l61.2598 70.4502h-56c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128c8.83105 0 16 -7.16895 16 -16v-17.6299
-c0 -9.51074 -4.14355 -18.0566 -10.7402 -23.9199l-61.2598 -70.4502h56c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128zM447.06 -10.6201c0.600586 -1.67969 0.931641 -3.49512 0.931641 -5.37988c0 -8.82812 -7.16406 -15.9951 -15.9912 -16
-h-24.8398c-0.015625 0 -0.0263672 -0.00195312 -0.0419922 -0.00195312c-7.11426 0 -13.1514 4.6543 -15.2285 11.082l-4.40918 12.9199h-71l-4.4209 -12.9199c-2.07617 -6.42773 -8.10938 -11.0801 -15.2246 -11.0801h-0.00488281h-24.8301
-c-8.82715 0.00488281 -15.9863 7.17773 -15.9863 16.0049c0 1.88574 0.326172 3.69531 0.926758 5.375l59.2695 160c2.20996 6.19043 8.125 10.6201 15.0703 10.6201h41.4395c6.94531 0 12.8604 -4.42969 15.0703 -10.6201zM335.61 48h32.7793l-16.3896 48z" />
-    <glyph glyph-name="sort-alpha-up-alt" unicode="&#xf882;" horiz-adv-x="448" 
-d="M16 288c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555c4.41406 0 8.41211 -1.79102 11.3076 -4.68555l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16
-h-32c-8.83105 0 -16 7.16895 -16 16v304h-48zM288 224c-8.83105 0 -16 7.16895 -16 16v17.6299c0 9.51074 4.14355 18.0566 10.7402 23.9199l61.2598 70.4502h-56c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128c8.83105 0 16 -7.16895 16 -16v-17.6299
-c0 -9.51074 -4.14355 -18.0566 -10.7402 -23.9199l-61.2598 -70.4502h56c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128zM447.06 -10.6201c0.600586 -1.67969 0.931641 -3.49512 0.931641 -5.37988c0 -8.82812 -7.16406 -15.9951 -15.9912 -16
-h-24.8398c-0.015625 0 -0.0263672 -0.00195312 -0.0419922 -0.00195312c-7.11426 0 -13.1514 4.6543 -15.2285 11.082l-4.40918 12.9199h-71l-4.4209 -12.9199c-2.07617 -6.42773 -8.10938 -11.0801 -15.2246 -11.0801h-0.00488281h-24.8301
-c-8.82715 0.00488281 -15.9863 7.17773 -15.9863 16.0049c0 1.88574 0.326172 3.69531 0.926758 5.375l59.2695 160c2.20996 6.19043 8.125 10.6201 15.0703 10.6201h41.4395c6.94531 0 12.8604 -4.42969 15.0703 -10.6201zM335.61 48h32.7793l-16.3896 48z" />
-    <glyph glyph-name="sort-amount-down-alt" unicode="&#xf884;" 
-d="M240 352c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-64zM240 224c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-128zM496 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-256c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h256zM240 96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h192
-c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-192zM176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555l-80 96
-c-10.0801 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32c8.83105 0 16 -7.16895 16 -16v-304h48z" />
-    <glyph glyph-name="sort-amount-up-alt" unicode="&#xf885;" 
-d="M240 352c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-64zM240 224c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128c8.83105 0 16 -7.16895 16 -16v-32
-c0 -8.83105 -7.16895 -16 -16 -16h-128zM496 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-256c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h256zM240 96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h192
-c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-192zM16 288c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555c4.41406 0 8.41211 -1.79102 11.3076 -4.68555l80 -96
-c10.0801 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v304h-48z" />
-    <glyph glyph-name="sort-numeric-down-alt" unicode="&#xf886;" horiz-adv-x="448" 
-d="M176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32
-c8.83105 0 16 -7.16895 16 -16v-304h48zM400 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v64h-16c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156
-c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-112h16zM330.17 413.09c53.4502 14.25 101.83 -25.8799 101.85 -77.0898v-10.7695c0 -70.3906 -28.25 -107.23 -86.25 -132
-c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408c7.59961 3.28516 14.6064 7.64258 20.8496 12.9092c-47.6396 4.76074 -83.0996 51.4805 -68.8301 102.53c7.62891 26.2793 28.5596 46.9287 55 54.1699
-zM352 316c11.0381 0 20 8.96191 20 20s-8.96191 20 -20 20s-20 -8.96191 -20 -20s8.96191 -20 20 -20z" />
-    <glyph glyph-name="sort-numeric-up-alt" unicode="&#xf887;" horiz-adv-x="448" 
-d="M107.31 411.31l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v304h-48c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96
-c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555c4.41406 0 8.41211 -1.79102 11.3076 -4.68555zM400 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v64h-16
-c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-112h16zM330.17 413.09c53.4502 14.25 101.83 -25.8799 101.85 -77.0898
-v-10.7695c0 -70.3906 -28.25 -107.23 -86.25 -132c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408c7.59961 3.28516 14.6064 7.64258 20.8496 12.9092
-c-47.6396 4.76074 -83.0996 51.4805 -68.8301 102.53c7.62891 26.2793 28.5596 46.9287 55 54.1699zM352 316c11.0381 0 20 8.96191 20 20s-8.96191 20 -20 20s-20 -8.96191 -20 -20s8.96191 -20 20 -20z" />
-    <glyph glyph-name="spell-check" unicode="&#xf891;" horiz-adv-x="576" 
-d="M272 192c-8.83105 0 -16 7.16895 -16 16v224c0 8.83105 7.16895 16 16 16h75c42.2998 0 80.9004 -30.5703 84.6699 -72.6797c0.225586 -2.44238 0.289062 -4.91895 0.289062 -7.41895c0 -13.5479 -3.38281 -26.3115 -9.34863 -37.4912
-c15.6377 -14.5762 25.3984 -35.2832 25.3984 -58.3262c0 -1.59277 -0.046875 -3.1748 -0.138672 -4.74414c-2.50977 -43.1396 -41.3105 -75.3398 -84.5098 -75.3398h-91.3604zM312 392v-48h40c13.2461 0 24 10.7539 24 24s-10.7539 24 -24 24h-40zM312 296v-48h56
-c13.2461 0 24 10.7539 24 24s-10.7539 24 -24 24h-56zM155.12 425.75l68.2998 -213.48c0.376953 -1.36035 0.580078 -2.79004 0.580078 -4.26953c0 -8.83105 -7.16895 -16 -16 -16h-24.9297c-7.35059 0 -13.5488 4.97168 -15.4199 11.7305l-11.9404 36.2695h-87.4199
-l-11.9404 -36.2695c-1.87109 -6.75879 -8.06934 -11.7305 -15.4199 -11.7305h-24.9297c-8.82617 0.00488281 -15.9883 7.16895 -15.9883 15.9961c0 1.47949 0.201172 2.91309 0.578125 4.27344l68.29 213.48c4.12695 12.9004 16.2168 22.25 30.4805 22.25h25.2793
-c14.2637 0 26.3535 -9.34961 30.4805 -22.25zM89.3701 304h45.2598l-22.6299 68.7002zM571.37 171.52c2.8916 -2.89453 4.65918 -6.89648 4.65918 -11.3066c0 -4.40137 -1.78027 -8.38867 -4.65918 -11.2832l-208 -208.21
-c-2.88086 -2.91406 -6.88379 -4.7207 -11.3018 -4.7207s-8.41699 1.80664 -11.2988 4.7207l-112 112.21c-2.88477 2.89453 -4.66895 6.8916 -4.66895 11.2979c0 4.40527 1.78418 8.39746 4.66895 11.292l45.3008 45.3008c2.87891 2.91309 6.87988 4.71973 11.2969 4.71973
-c4.41602 0 8.41309 -1.80664 11.293 -4.71973l55.4102 -55.5l151.5 151.5c2.87891 2.91309 6.87988 4.71973 11.2969 4.71973c4.41602 0 8.41309 -1.80664 11.293 -4.71973z" />
-    <glyph glyph-name="voicemail" unicode="&#xf897;" horiz-adv-x="640" 
-d="M496 320c79.4756 0 144 -64.5244 144 -144s-64.5244 -144 -144 -144h-352c-79.4727 0.00390625 -144.079 64.3818 -144.079 143.854c0 79.4766 64.5244 144 144 144c79.4766 0 144 -64.5234 144 -144c0 -29.5293 -8.90723 -56.9961 -24.1807 -79.8545h112.52
-c-15.2734 22.8584 -24.2598 50.4697 -24.2598 80c0 79.4756 64.5244 144 144 144zM64 176c0 -44.1533 35.8467 -80 80 -80s80 35.8467 80 80s-35.8467 80 -80 80s-80 -35.8467 -80 -80zM496 96c44.1533 0 80 35.8467 80 80s-35.8467 80 -80 80s-80 -35.8467 -80 -80
-s35.8467 -80 80 -80z" />
-    <glyph glyph-name="hat-cowboy" unicode="&#xf8c0;" horiz-adv-x="640" 
-d="M490 151.1c-38.7695 -12.5898 -93.7305 -23.0996 -170 -23.0996s-131.19 10.5303 -169.99 23.1201c9.50977 57.4102 39.5098 232.88 97.71 232.88c14 0 26.4902 -6 37 -14c9.78516 -7.45996 22.0947 -11.8906 35.3369 -11.8906c13.2432 0 25.458 4.43066 35.2432 11.8906
-c10.5098 8.07031 23 14 37 14c58.21 0 88.21 -175.51 97.7002 -232.9zM632.9 188.28c4.27637 -2.87402 7.08008 -7.75195 7.08008 -13.2871c0 -1.94043 -0.34668 -3.80078 -0.980469 -5.52344c-0.730469 -2.01953 -77.3203 -201.47 -319 -201.47s-318.27 199.45 -319 201.47
-c-0.625977 1.71289 -0.966797 3.56543 -0.966797 5.49316c0 8.83105 7.16992 16 16 16c4.12012 0 7.87891 -1.56055 10.7168 -4.12305c1.01953 -0.899414 102.42 -90.8398 293.24 -90.8398c191.89 0 292.16 89.8799 293.16 90.7803
-c2.84863 2.61816 6.6709 4.20996 10.8428 4.20996c3.2959 0 6.36035 -0.999023 8.90723 -2.70996z" />
-    <glyph glyph-name="hat-cowboy-side" unicode="&#xf8c1;" horiz-adv-x="640" 
-d="M260.8 156.94l98.0098 -84.4805c78.1904 -67.3896 129.98 -104.46 233.19 -104.46h-546.12c-14.0498 0 -27.1299 7.53027 -35.8799 20.6396c-9 13.4707 -12.1201 30.7002 -8.57031 47.3008c20.04 93.3398 85.5703 156.06 162.971 156.06
-c34.3994 0 67.7695 -12.1201 96.3994 -35.0596zM495.45 175.23c114.95 -7.90039 144.55 -101.841 144.55 -127.23c0 -26.4922 -21.5078 -48 -48 -48c-97.0996 0 -141.24 35.46 -212.31 96.7002l-98 84.4795c-35.29 28.2705 -75.5 42.8203 -117.29 42.8203
-c-7.09082 0 -13.8906 -1.16992 -20.79 -2l6.88965 65.21c2.96094 27.6465 23.6035 50.1143 50.3496 55.79l191.15 40.5898c4.31055 0.916992 8.73828 1.34277 13.3203 1.34277c31.6191 0 57.9131 -22.9785 63.0801 -53.1328z" />
-    <glyph glyph-name="mouse" unicode="&#xf8cc;" horiz-adv-x="384" 
-d="M0 96v128h384v-128c0 -88.3066 -71.6934 -160 -160 -160h-64c-88.3066 0 -160 71.6934 -160 160zM176 448v-192h-176v32c0 88.3066 71.6934 160 160 160h16zM224 448c88.3066 0 160 -71.6934 160 -160v-32h-176v192h16z" />
-    <glyph glyph-name="record-vinyl" unicode="&#xf8d9;" 
-d="M256 296c57.3994 0 104 -46.6006 104 -104s-46.6006 -104 -104 -104s-104 46.6006 -104 104s46.6006 104 104 104zM256 168c13.2461 0 24 10.7539 24 24s-10.7539 24 -24 24s-24 -10.7539 -24 -24s10.7539 -24 24 -24zM256 440c137 0 248 -111 248 -248
-s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 64c70.6455 0 128 57.3545 128 128s-57.3545 128 -128 128s-128 -57.3545 -128 -128s57.3545 -128 128 -128z" />
-    <glyph glyph-name="caravan" unicode="&#xf8ff;" horiz-adv-x="640" 
-d="M416 240c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM624 128c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-336c0 -52.9834 -43.0166 -96 -96 -96s-96 43.0166 -96 96h-32
-c-35.3223 0 -64 28.6777 -64 64v256c0 35.3223 28.6777 64 64 64h352c88.3066 0 160 -71.6934 160 -160v-160h48zM192 16c26.4795 0.0273438 47.9727 21.5205 48 48c0 26.4922 -21.5078 48 -48 48s-48 -21.5078 -48 -48s21.5078 -48 48 -48zM256 256v64
-c0 17.6611 -14.3389 32 -32 32h-128c-17.6611 0 -32 -14.3389 -32 -32v-64c0 -17.6611 14.3389 -32 32 -32h128c17.6611 0 32 14.3389 32 32zM448 128v192c0 17.6611 -14.3389 32 -32 32h-64c-17.6611 0 -32 -14.3389 -32 -32v-192h128z" />
-  </font>
-</defs></svg>
diff --git a/public/vendor/fontawesome/webfonts/fa-solid-900.ttf b/public/vendor/fontawesome/webfonts/fa-solid-900.ttf
deleted file mode 100644
index f33e816299..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-solid-900.ttf and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-solid-900.woff b/public/vendor/fontawesome/webfonts/fa-solid-900.woff
deleted file mode 100644
index 73c1a4d5d1..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-solid-900.woff and /dev/null differ
diff --git a/public/vendor/fontawesome/webfonts/fa-solid-900.woff2 b/public/vendor/fontawesome/webfonts/fa-solid-900.woff2
deleted file mode 100644
index dc52d954d8..0000000000
Binary files a/public/vendor/fontawesome/webfonts/fa-solid-900.woff2 and /dev/null differ
diff --git a/public/vendor/mdl/material.css b/public/vendor/mdl/material.css
deleted file mode 100644
index 74b6b7b71f..0000000000
--- a/public/vendor/mdl/material.css
+++ /dev/null
@@ -1,11476 +0,0 @@
-/**
- * material-design-lite - Material Design Components in CSS, JS and HTML
- * @version v1.3.0
- * @license Apache-2.0
- * @copyright 2015 Google, Inc.
- * @link https://github.com/google/material-design-lite
- */
-@charset "UTF-8";
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Material Design Lite */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/*
- * What follows is the result of much research on cross-browser styling.
- * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
- * Kroc Camen, and the H5BP dev community and team.
- */
-/* ==========================================================================
-   Base styles: opinionated defaults
-   ========================================================================== */
-/*html {
-  color: rgba(0,0,0, 0.87);
-  font-size: 1em;
-  line-height: 1.4; }*/
-
-/*
- * Remove text-shadow in selection highlight:
- * https://twitter.com/miketaylr/status/12228805301
- *
- * These selection rule sets have to be separate.
- * Customize the background color to match your design.
- */
-::-moz-selection {
-  background: #b3d4fc;
-  text-shadow: none; }
-::selection {
-  background: #b3d4fc;
-  text-shadow: none; }
-
-/*
- * A better looking default horizontal rule
- */
-hr {
-  display: block;
-  height: 1px;
-  border: 0;
-  border-top: 1px solid #ccc;
-  margin: 1em 0;
-  padding: 0; }
-
-/*
- * Remove the gap between audio, canvas, iframes,
- * images, videos and the bottom of their containers:
- * https://github.com/h5bp/html5-boilerplate/issues/440
- */
-audio,
-canvas,
-iframe,
-img,
-svg,
-video {
-  vertical-align: middle; }
-
-/*
- * Remove default fieldset styles.
- */
-fieldset {
-  border: 0;
-  margin: 0;
-  padding: 0; }
-
-/*
- * Allow only vertical resizing of textareas.
- */
-textarea {
-  resize: vertical; }
-
-/* ==========================================================================
-   Browser Upgrade Prompt
-   ========================================================================== */
-.browserupgrade {
-  margin: 0.2em 0;
-  background: #ccc;
-  color: #000;
-  padding: 0.2em 0; }
-
-/* ==========================================================================
-   Author's custom styles
-   ========================================================================== */
-/* ==========================================================================
-   Helper classes
-   ========================================================================== */
-/*
- * Hide visually and from screen readers:
- */
-.hidden {
-  display: none !important; }
-
-/*
- * Hide only visually, but have it available for screen readers:
- * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
- */
-.visuallyhidden {
-  border: 0;
-  clip: rect(0 0 0 0);
-  height: 1px;
-  margin: -1px;
-  overflow: hidden;
-  padding: 0;
-  position: absolute;
-  width: 1px; }
-
-/*
- * Extends the .visuallyhidden class to allow the element
- * to be focusable when navigated to via the keyboard:
- * https://www.drupal.org/node/897638
- */
-.visuallyhidden.focusable:active,
-.visuallyhidden.focusable:focus {
-  clip: auto;
-  height: auto;
-  margin: 0;
-  overflow: visible;
-  position: static;
-  width: auto; }
-
-/*
- * Hide visually and from screen readers, but maintain layout
- */
-.invisible {
-  visibility: hidden; }
-
-/*
- * Clearfix: contain floats
- *
- * For modern browsers
- * 1. The space content is one way to avoid an Opera bug when the
- *    `contenteditable` attribute is included anywhere else in the document.
- *    Otherwise it causes space to appear at the top and bottom of elements
- *    that receive the `clearfix` class.
- * 2. The use of `table` rather than `block` is only necessary if using
- *    `:before` to contain the top-margins of child elements.
- */
-.clearfix:before,
-.clearfix:after {
-  content: " ";
-  /* 1 */
-  display: table;
-  /* 2 */ }
-
-.clearfix:after {
-  clear: both; }
-
-/* ==========================================================================
-   EXAMPLE Media Queries for Responsive Design.
-   These examples override the primary ('mobile first') styles.
-   Modify as content requires.
-   ========================================================================== */
-@media only screen and (min-width: 35em) {
-  /* Style adjustments for viewports that meet the condition */ }
-
-@media print, (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx), (min-resolution: 120dpi) {
-  /* Style adjustments for high resolution devices */ }
-
-/* ==========================================================================
-   Print styles.
-   Inlined to avoid the additional HTTP request:
-   http://www.phpied.com/delay-loading-your-print-css/
-   ========================================================================== */
-@media print {
-  *,
-  *:before,
-  *:after,
-  *:first-letter {
-    background: transparent !important;
-    color: #000 !important;
-    /* Black prints faster: http://www.sanbeiji.com/archives/953 */
-    box-shadow: none !important; }
-  a,
-  a:visited {
-    text-decoration: underline; }
-  a[href]:after {
-    content: " (" attr(href) ")"; }
-  abbr[title]:after {
-    content: " (" attr(title) ")"; }
-  /*
-     * Don't show links that are fragment identifiers,
-     * or use the `javascript:` pseudo protocol
-     */
-  a[href^="#"]:after,
-  a[href^="javascript:"]:after {
-    content: ""; }
-  pre,
-  blockquote {
-    border: 1px solid #999;
-    page-break-inside: avoid; }
-  /*
-     * Printing Tables:
-     * http://css-discuss.incutio.com/wiki/Printing_Tables
-     */
-  thead {
-    display: table-header-group; }
-  tr,
-  img {
-    page-break-inside: avoid; }
-  img {
-    max-width: 100% !important; }
-  p,
-  h2,
-  h3 {
-    orphans: 3;
-    widows: 3; }
-  h2,
-  h3 {
-    page-break-after: avoid; } }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Remove the unwanted box around FAB buttons */
-/* More info: http://goo.gl/IPwKi */
-a, .mdl-accordion, .mdl-button, .mdl-card, .mdl-checkbox, .mdl-dropdown-menu,
-.mdl-icon-toggle, .mdl-item, .mdl-radio, .mdl-slider, .mdl-switch, .mdl-tabs__tab {
-  -webkit-tap-highlight-color: transparent;
-  -webkit-tap-highlight-color: rgba(255, 255, 255, 0); }
-
-/*
- * Make html take up the entire screen
- * Then set touch-action to avoid touch delay on mobile IE
- */
-html {
-  width: 100%;
-  height: 100%;
-  -ms-touch-action: manipulation;
-  touch-action: manipulation; }
-
-/*
-* Make body take up the entire screen
-* Remove body margin so layout containers don't cause extra overflow.
-*/
-body {
-  width: 100%;
-  min-height: 100%;
-  margin: 0; }
-
-/*
- * Main display reset for IE support.
- * Source: http://weblog.west-wind.com/posts/2015/Jan/12/main-HTML5-Tag-not-working-in-Internet-Explorer-91011
- */
-main {
-  display: block; }
-
-/*
-* Apply no display to elements with the hidden attribute.
-* IE 9 and 10 support.
-*/
-*[hidden] {
-  display: none !important; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-/*html, body {
-  font-family: "Helvetica", "Arial", sans-serif;
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 20px; }
-
-h1, h2, h3, h4, h5, h6, p {
-  margin: 0;
-  padding: 0; }*/
-
-/**
-  * Styles for HTML elements
-  */
-/*h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 56px;
-  font-weight: 400;
-  line-height: 1.35;
-  letter-spacing: -0.02em;
-  opacity: 0.54;
-  font-size: 0.6em; }
-
-h1 {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 56px;
-  font-weight: 400;
-  line-height: 1.35;
-  letter-spacing: -0.02em;
-  margin-top: 24px;
-  margin-bottom: 24px; }
-
-h2 {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 45px;
-  font-weight: 400;
-  line-height: 48px;
-  margin-top: 24px;
-  margin-bottom: 24px; }
-
-h3 {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 34px;
-  font-weight: 400;
-  line-height: 40px;
-  margin-top: 24px;
-  margin-bottom: 24px; }
-
-h4 {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 24px;
-  font-weight: 400;
-  line-height: 32px;
-  -moz-osx-font-smoothing: grayscale;
-  margin-top: 24px;
-  margin-bottom: 16px; }
-
-h5 {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 20px;
-  font-weight: 500;
-  line-height: 1;
-  letter-spacing: 0.02em;
-  margin-top: 24px;
-  margin-bottom: 16px; }
-
-h6 {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 16px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0.04em;
-  margin-top: 24px;
-  margin-bottom: 16px; }
-
-p {
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0;
-  margin-bottom: 16px; }
-
-a {
-  color: rgb(255,64,129);
-  font-weight: 500; }
-
-blockquote {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  position: relative;
-  font-size: 24px;
-  font-weight: 300;
-  font-style: italic;
-  line-height: 1.35;
-  letter-spacing: 0.08em; }
-  blockquote:before {
-    position: absolute;
-    left: -0.5em;
-    content: '“'; }
-  blockquote:after {
-    content: '”';
-    margin-left: -0.05em; }
-
-mark {
-  background-color: #f4ff81; }
-
-dt {
-  font-weight: 700; }
-
-address {
-  font-size: 12px;
-  font-weight: 400;
-  line-height: 1;
-  letter-spacing: 0;
-  font-style: normal; }
-
-ul, ol {
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0; }*/
-
-/**
- * Class Name Styles
- */
-.mdl-typography--display-4 {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 112px;
-  font-weight: 300;
-  line-height: 1;
-  letter-spacing: -0.04em; }
-
-.mdl-typography--display-4-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 112px;
-  font-weight: 300;
-  line-height: 1;
-  letter-spacing: -0.04em;
-  opacity: 0.54; }
-
-.mdl-typography--display-3 {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 56px;
-  font-weight: 400;
-  line-height: 1.35;
-  letter-spacing: -0.02em; }
-
-.mdl-typography--display-3-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 56px;
-  font-weight: 400;
-  line-height: 1.35;
-  letter-spacing: -0.02em;
-  opacity: 0.54; }
-
-.mdl-typography--display-2 {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 45px;
-  font-weight: 400;
-  line-height: 48px; }
-
-.mdl-typography--display-2-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 45px;
-  font-weight: 400;
-  line-height: 48px;
-  opacity: 0.54; }
-
-.mdl-typography--display-1 {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 34px;
-  font-weight: 400;
-  line-height: 40px; }
-
-.mdl-typography--display-1-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 34px;
-  font-weight: 400;
-  line-height: 40px;
-  opacity: 0.54; }
-
-.mdl-typography--headline {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 24px;
-  font-weight: 400;
-  line-height: 32px;
-  -moz-osx-font-smoothing: grayscale; }
-
-.mdl-typography--headline-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 24px;
-  font-weight: 400;
-  line-height: 32px;
-  -moz-osx-font-smoothing: grayscale;
-  opacity: 0.87; }
-
-.mdl-typography--title {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 20px;
-  font-weight: 500;
-  line-height: 1;
-  letter-spacing: 0.02em; }
-
-.mdl-typography--title-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 20px;
-  font-weight: 500;
-  line-height: 1;
-  letter-spacing: 0.02em;
-  opacity: 0.87; }
-
-.mdl-typography--subhead {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 16px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0.04em; }
-
-.mdl-typography--subhead-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 16px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0.04em;
-  opacity: 0.87; }
-
-.mdl-typography--body-2 {
-  font-size: 14px;
-  font-weight: bold;
-  line-height: 24px;
-  letter-spacing: 0; }
-
-.mdl-typography--body-2-color-contrast {
-  font-size: 14px;
-  font-weight: bold;
-  line-height: 24px;
-  letter-spacing: 0;
-  opacity: 0.87; }
-
-.mdl-typography--body-1 {
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0; }
-
-.mdl-typography--body-1-color-contrast {
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0;
-  opacity: 0.87; }
-
-.mdl-typography--body-2-force-preferred-font {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 14px;
-  font-weight: 500;
-  line-height: 24px;
-  letter-spacing: 0; }
-
-.mdl-typography--body-2-force-preferred-font-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 14px;
-  font-weight: 500;
-  line-height: 24px;
-  letter-spacing: 0;
-  opacity: 0.87; }
-
-.mdl-typography--body-1-force-preferred-font {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0; }
-
-.mdl-typography--body-1-force-preferred-font-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0;
-  opacity: 0.87; }
-
-.mdl-typography--caption {
-  font-size: 12px;
-  font-weight: 400;
-  line-height: 1;
-  letter-spacing: 0; }
-
-.mdl-typography--caption-force-preferred-font {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 12px;
-  font-weight: 400;
-  line-height: 1;
-  letter-spacing: 0; }
-
-.mdl-typography--caption-color-contrast {
-  font-size: 12px;
-  font-weight: 400;
-  line-height: 1;
-  letter-spacing: 0;
-  opacity: 0.54; }
-
-.mdl-typography--caption-force-preferred-font-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 12px;
-  font-weight: 400;
-  line-height: 1;
-  letter-spacing: 0;
-  opacity: 0.54; }
-
-.mdl-typography--menu {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 14px;
-  font-weight: 500;
-  line-height: 1;
-  letter-spacing: 0; }
-
-.mdl-typography--menu-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 14px;
-  font-weight: 500;
-  line-height: 1;
-  letter-spacing: 0;
-  opacity: 0.87; }
-
-.mdl-typography--button {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 14px;
-  font-weight: 500;
-  text-transform: uppercase;
-  line-height: 1;
-  letter-spacing: 0; }
-
-.mdl-typography--button-color-contrast {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 14px;
-  font-weight: 500;
-  text-transform: uppercase;
-  line-height: 1;
-  letter-spacing: 0;
-  opacity: 0.87; }
-
-.mdl-typography--text-left {
-  text-align: left; }
-
-.mdl-typography--text-right {
-  text-align: right; }
-
-.mdl-typography--text-center {
-  text-align: center; }
-
-.mdl-typography--text-justify {
-  text-align: justify; }
-
-.mdl-typography--text-nowrap {
-  white-space: nowrap; }
-
-.mdl-typography--text-lowercase {
-  text-transform: lowercase; }
-
-.mdl-typography--text-uppercase {
-  text-transform: uppercase; }
-
-.mdl-typography--text-capitalize {
-  text-transform: capitalize; }
-
-.mdl-typography--font-thin {
-  font-weight: 200 !important; }
-
-.mdl-typography--font-light {
-  font-weight: 300 !important; }
-
-.mdl-typography--font-regular {
-  font-weight: 400 !important; }
-
-.mdl-typography--font-medium {
-  font-weight: 500 !important; }
-
-.mdl-typography--font-bold {
-  font-weight: 700 !important; }
-
-.mdl-typography--font-black {
-  font-weight: 900 !important; }
-
-.material-icons {
-  font-family: 'Material Icons';
-  font-weight: normal;
-  font-style: normal;
-  font-size: 24px;
-  line-height: 1;
-  letter-spacing: normal;
-  text-transform: none;
-  display: inline-block;
-  word-wrap: normal;
-  -moz-font-feature-settings: 'liga';
-       font-feature-settings: 'liga';
-  -webkit-font-feature-settings: 'liga';
-  -webkit-font-smoothing: antialiased; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-color-text--red {
-  color: rgb(244,67,54) !important; }
-
-.mdl-color--red {
-  background-color: rgb(244,67,54) !important; }
-
-.mdl-color-text--red-50 {
-  color: rgb(255,235,238) !important; }
-
-.mdl-color--red-50 {
-  background-color: rgb(255,235,238) !important; }
-
-.mdl-color-text--red-100 {
-  color: rgb(255,205,210) !important; }
-
-.mdl-color--red-100 {
-  background-color: rgb(255,205,210) !important; }
-
-.mdl-color-text--red-200 {
-  color: rgb(239,154,154) !important; }
-
-.mdl-color--red-200 {
-  background-color: rgb(239,154,154) !important; }
-
-.mdl-color-text--red-300 {
-  color: rgb(229,115,115) !important; }
-
-.mdl-color--red-300 {
-  background-color: rgb(229,115,115) !important; }
-
-.mdl-color-text--red-400 {
-  color: rgb(239,83,80) !important; }
-
-.mdl-color--red-400 {
-  background-color: rgb(239,83,80) !important; }
-
-.mdl-color-text--red-500 {
-  color: rgb(244,67,54) !important; }
-
-.mdl-color--red-500 {
-  background-color: rgb(244,67,54) !important; }
-
-.mdl-color-text--red-600 {
-  color: rgb(229,57,53) !important; }
-
-.mdl-color--red-600 {
-  background-color: rgb(229,57,53) !important; }
-
-.mdl-color-text--red-700 {
-  color: rgb(211,47,47) !important; }
-
-.mdl-color--red-700 {
-  background-color: rgb(211,47,47) !important; }
-
-.mdl-color-text--red-800 {
-  color: rgb(198,40,40) !important; }
-
-.mdl-color--red-800 {
-  background-color: rgb(198,40,40) !important; }
-
-.mdl-color-text--red-900 {
-  color: rgb(183,28,28) !important; }
-
-.mdl-color--red-900 {
-  background-color: rgb(183,28,28) !important; }
-
-.mdl-color-text--red-A100 {
-  color: rgb(255,138,128) !important; }
-
-.mdl-color--red-A100 {
-  background-color: rgb(255,138,128) !important; }
-
-.mdl-color-text--red-A200 {
-  color: rgb(255,82,82) !important; }
-
-.mdl-color--red-A200 {
-  background-color: rgb(255,82,82) !important; }
-
-.mdl-color-text--red-A400 {
-  color: rgb(255,23,68) !important; }
-
-.mdl-color--red-A400 {
-  background-color: rgb(255,23,68) !important; }
-
-.mdl-color-text--red-A700 {
-  color: rgb(213,0,0) !important; }
-
-.mdl-color--red-A700 {
-  background-color: rgb(213,0,0) !important; }
-
-.mdl-color-text--pink {
-  color: rgb(233,30,99) !important; }
-
-.mdl-color--pink {
-  background-color: rgb(233,30,99) !important; }
-
-.mdl-color-text--pink-50 {
-  color: rgb(252,228,236) !important; }
-
-.mdl-color--pink-50 {
-  background-color: rgb(252,228,236) !important; }
-
-.mdl-color-text--pink-100 {
-  color: rgb(248,187,208) !important; }
-
-.mdl-color--pink-100 {
-  background-color: rgb(248,187,208) !important; }
-
-.mdl-color-text--pink-200 {
-  color: rgb(244,143,177) !important; }
-
-.mdl-color--pink-200 {
-  background-color: rgb(244,143,177) !important; }
-
-.mdl-color-text--pink-300 {
-  color: rgb(240,98,146) !important; }
-
-.mdl-color--pink-300 {
-  background-color: rgb(240,98,146) !important; }
-
-.mdl-color-text--pink-400 {
-  color: rgb(236,64,122) !important; }
-
-.mdl-color--pink-400 {
-  background-color: rgb(236,64,122) !important; }
-
-.mdl-color-text--pink-500 {
-  color: rgb(233,30,99) !important; }
-
-.mdl-color--pink-500 {
-  background-color: rgb(233,30,99) !important; }
-
-.mdl-color-text--pink-600 {
-  color: rgb(216,27,96) !important; }
-
-.mdl-color--pink-600 {
-  background-color: rgb(216,27,96) !important; }
-
-.mdl-color-text--pink-700 {
-  color: rgb(194,24,91) !important; }
-
-.mdl-color--pink-700 {
-  background-color: rgb(194,24,91) !important; }
-
-.mdl-color-text--pink-800 {
-  color: rgb(173,20,87) !important; }
-
-.mdl-color--pink-800 {
-  background-color: rgb(173,20,87) !important; }
-
-.mdl-color-text--pink-900 {
-  color: rgb(136,14,79) !important; }
-
-.mdl-color--pink-900 {
-  background-color: rgb(136,14,79) !important; }
-
-.mdl-color-text--pink-A100 {
-  color: rgb(255,128,171) !important; }
-
-.mdl-color--pink-A100 {
-  background-color: rgb(255,128,171) !important; }
-
-.mdl-color-text--pink-A200 {
-  color: rgb(255,64,129) !important; }
-
-.mdl-color--pink-A200 {
-  background-color: rgb(255,64,129) !important; }
-
-.mdl-color-text--pink-A400 {
-  color: rgb(245,0,87) !important; }
-
-.mdl-color--pink-A400 {
-  background-color: rgb(245,0,87) !important; }
-
-.mdl-color-text--pink-A700 {
-  color: rgb(197,17,98) !important; }
-
-.mdl-color--pink-A700 {
-  background-color: rgb(197,17,98) !important; }
-
-.mdl-color-text--purple {
-  color: rgb(156,39,176) !important; }
-
-.mdl-color--purple {
-  background-color: rgb(156,39,176) !important; }
-
-.mdl-color-text--purple-50 {
-  color: rgb(243,229,245) !important; }
-
-.mdl-color--purple-50 {
-  background-color: rgb(243,229,245) !important; }
-
-.mdl-color-text--purple-100 {
-  color: rgb(225,190,231) !important; }
-
-.mdl-color--purple-100 {
-  background-color: rgb(225,190,231) !important; }
-
-.mdl-color-text--purple-200 {
-  color: rgb(206,147,216) !important; }
-
-.mdl-color--purple-200 {
-  background-color: rgb(206,147,216) !important; }
-
-.mdl-color-text--purple-300 {
-  color: rgb(186,104,200) !important; }
-
-.mdl-color--purple-300 {
-  background-color: rgb(186,104,200) !important; }
-
-.mdl-color-text--purple-400 {
-  color: rgb(171,71,188) !important; }
-
-.mdl-color--purple-400 {
-  background-color: rgb(171,71,188) !important; }
-
-.mdl-color-text--purple-500 {
-  color: rgb(156,39,176) !important; }
-
-.mdl-color--purple-500 {
-  background-color: rgb(156,39,176) !important; }
-
-.mdl-color-text--purple-600 {
-  color: rgb(142,36,170) !important; }
-
-.mdl-color--purple-600 {
-  background-color: rgb(142,36,170) !important; }
-
-.mdl-color-text--purple-700 {
-  color: rgb(123,31,162) !important; }
-
-.mdl-color--purple-700 {
-  background-color: rgb(123,31,162) !important; }
-
-.mdl-color-text--purple-800 {
-  color: rgb(106,27,154) !important; }
-
-.mdl-color--purple-800 {
-  background-color: rgb(106,27,154) !important; }
-
-.mdl-color-text--purple-900 {
-  color: rgb(74,20,140) !important; }
-
-.mdl-color--purple-900 {
-  background-color: rgb(74,20,140) !important; }
-
-.mdl-color-text--purple-A100 {
-  color: rgb(234,128,252) !important; }
-
-.mdl-color--purple-A100 {
-  background-color: rgb(234,128,252) !important; }
-
-.mdl-color-text--purple-A200 {
-  color: rgb(224,64,251) !important; }
-
-.mdl-color--purple-A200 {
-  background-color: rgb(224,64,251) !important; }
-
-.mdl-color-text--purple-A400 {
-  color: rgb(213,0,249) !important; }
-
-.mdl-color--purple-A400 {
-  background-color: rgb(213,0,249) !important; }
-
-.mdl-color-text--purple-A700 {
-  color: rgb(170,0,255) !important; }
-
-.mdl-color--purple-A700 {
-  background-color: rgb(170,0,255) !important; }
-
-.mdl-color-text--deep-purple {
-  color: rgb(103,58,183) !important; }
-
-.mdl-color--deep-purple {
-  background-color: rgb(103,58,183) !important; }
-
-.mdl-color-text--deep-purple-50 {
-  color: rgb(237,231,246) !important; }
-
-.mdl-color--deep-purple-50 {
-  background-color: rgb(237,231,246) !important; }
-
-.mdl-color-text--deep-purple-100 {
-  color: rgb(209,196,233) !important; }
-
-.mdl-color--deep-purple-100 {
-  background-color: rgb(209,196,233) !important; }
-
-.mdl-color-text--deep-purple-200 {
-  color: rgb(179,157,219) !important; }
-
-.mdl-color--deep-purple-200 {
-  background-color: rgb(179,157,219) !important; }
-
-.mdl-color-text--deep-purple-300 {
-  color: rgb(149,117,205) !important; }
-
-.mdl-color--deep-purple-300 {
-  background-color: rgb(149,117,205) !important; }
-
-.mdl-color-text--deep-purple-400 {
-  color: rgb(126,87,194) !important; }
-
-.mdl-color--deep-purple-400 {
-  background-color: rgb(126,87,194) !important; }
-
-.mdl-color-text--deep-purple-500 {
-  color: rgb(103,58,183) !important; }
-
-.mdl-color--deep-purple-500 {
-  background-color: rgb(103,58,183) !important; }
-
-.mdl-color-text--deep-purple-600 {
-  color: rgb(94,53,177) !important; }
-
-.mdl-color--deep-purple-600 {
-  background-color: rgb(94,53,177) !important; }
-
-.mdl-color-text--deep-purple-700 {
-  color: rgb(81,45,168) !important; }
-
-.mdl-color--deep-purple-700 {
-  background-color: rgb(81,45,168) !important; }
-
-.mdl-color-text--deep-purple-800 {
-  color: rgb(69,39,160) !important; }
-
-.mdl-color--deep-purple-800 {
-  background-color: rgb(69,39,160) !important; }
-
-.mdl-color-text--deep-purple-900 {
-  color: rgb(49,27,146) !important; }
-
-.mdl-color--deep-purple-900 {
-  background-color: rgb(49,27,146) !important; }
-
-.mdl-color-text--deep-purple-A100 {
-  color: rgb(179,136,255) !important; }
-
-.mdl-color--deep-purple-A100 {
-  background-color: rgb(179,136,255) !important; }
-
-.mdl-color-text--deep-purple-A200 {
-  color: rgb(124,77,255) !important; }
-
-.mdl-color--deep-purple-A200 {
-  background-color: rgb(124,77,255) !important; }
-
-.mdl-color-text--deep-purple-A400 {
-  color: rgb(101,31,255) !important; }
-
-.mdl-color--deep-purple-A400 {
-  background-color: rgb(101,31,255) !important; }
-
-.mdl-color-text--deep-purple-A700 {
-  color: rgb(98,0,234) !important; }
-
-.mdl-color--deep-purple-A700 {
-  background-color: rgb(98,0,234) !important; }
-
-.mdl-color-text--indigo {
-  color: rgb(63,81,181) !important; }
-
-.mdl-color--indigo {
-  background-color: rgb(63,81,181) !important; }
-
-.mdl-color-text--indigo-50 {
-  color: rgb(232,234,246) !important; }
-
-.mdl-color--indigo-50 {
-  background-color: rgb(232,234,246) !important; }
-
-.mdl-color-text--indigo-100 {
-  color: rgb(197,202,233) !important; }
-
-.mdl-color--indigo-100 {
-  background-color: rgb(197,202,233) !important; }
-
-.mdl-color-text--indigo-200 {
-  color: rgb(159,168,218) !important; }
-
-.mdl-color--indigo-200 {
-  background-color: rgb(159,168,218) !important; }
-
-.mdl-color-text--indigo-300 {
-  color: rgb(121,134,203) !important; }
-
-.mdl-color--indigo-300 {
-  background-color: rgb(121,134,203) !important; }
-
-.mdl-color-text--indigo-400 {
-  color: rgb(92,107,192) !important; }
-
-.mdl-color--indigo-400 {
-  background-color: rgb(92,107,192) !important; }
-
-.mdl-color-text--indigo-500 {
-  color: rgb(63,81,181) !important; }
-
-.mdl-color--indigo-500 {
-  background-color: rgb(63,81,181) !important; }
-
-.mdl-color-text--indigo-600 {
-  color: rgb(57,73,171) !important; }
-
-.mdl-color--indigo-600 {
-  background-color: rgb(57,73,171) !important; }
-
-.mdl-color-text--indigo-700 {
-  color: rgb(48,63,159) !important; }
-
-.mdl-color--indigo-700 {
-  background-color: rgb(48,63,159) !important; }
-
-.mdl-color-text--indigo-800 {
-  color: rgb(40,53,147) !important; }
-
-.mdl-color--indigo-800 {
-  background-color: rgb(40,53,147) !important; }
-
-.mdl-color-text--indigo-900 {
-  color: rgb(26,35,126) !important; }
-
-.mdl-color--indigo-900 {
-  background-color: rgb(26,35,126) !important; }
-
-.mdl-color-text--indigo-A100 {
-  color: rgb(140,158,255) !important; }
-
-.mdl-color--indigo-A100 {
-  background-color: rgb(140,158,255) !important; }
-
-.mdl-color-text--indigo-A200 {
-  color: rgb(83,109,254) !important; }
-
-.mdl-color--indigo-A200 {
-  background-color: rgb(83,109,254) !important; }
-
-.mdl-color-text--indigo-A400 {
-  color: rgb(61,90,254) !important; }
-
-.mdl-color--indigo-A400 {
-  background-color: rgb(61,90,254) !important; }
-
-.mdl-color-text--indigo-A700 {
-  color: rgb(48,79,254) !important; }
-
-.mdl-color--indigo-A700 {
-  background-color: rgb(48,79,254) !important; }
-
-.mdl-color-text--blue {
-  color: rgb(33,150,243) !important; }
-
-.mdl-color--blue {
-  background-color: rgb(33,150,243) !important; }
-
-.mdl-color-text--blue-50 {
-  color: rgb(227,242,253) !important; }
-
-.mdl-color--blue-50 {
-  background-color: rgb(227,242,253) !important; }
-
-.mdl-color-text--blue-100 {
-  color: rgb(187,222,251) !important; }
-
-.mdl-color--blue-100 {
-  background-color: rgb(187,222,251) !important; }
-
-.mdl-color-text--blue-200 {
-  color: rgb(144,202,249) !important; }
-
-.mdl-color--blue-200 {
-  background-color: rgb(144,202,249) !important; }
-
-.mdl-color-text--blue-300 {
-  color: rgb(100,181,246) !important; }
-
-.mdl-color--blue-300 {
-  background-color: rgb(100,181,246) !important; }
-
-.mdl-color-text--blue-400 {
-  color: rgb(66,165,245) !important; }
-
-.mdl-color--blue-400 {
-  background-color: rgb(66,165,245) !important; }
-
-.mdl-color-text--blue-500 {
-  color: rgb(33,150,243) !important; }
-
-.mdl-color--blue-500 {
-  background-color: rgb(33,150,243) !important; }
-
-.mdl-color-text--blue-600 {
-  color: rgb(30,136,229) !important; }
-
-.mdl-color--blue-600 {
-  background-color: rgb(30,136,229) !important; }
-
-.mdl-color-text--blue-700 {
-  color: rgb(25,118,210) !important; }
-
-.mdl-color--blue-700 {
-  background-color: rgb(25,118,210) !important; }
-
-.mdl-color-text--blue-800 {
-  color: rgb(21,101,192) !important; }
-
-.mdl-color--blue-800 {
-  background-color: rgb(21,101,192) !important; }
-
-.mdl-color-text--blue-900 {
-  color: rgb(13,71,161) !important; }
-
-.mdl-color--blue-900 {
-  background-color: rgb(13,71,161) !important; }
-
-.mdl-color-text--blue-A100 {
-  color: rgb(130,177,255) !important; }
-
-.mdl-color--blue-A100 {
-  background-color: rgb(130,177,255) !important; }
-
-.mdl-color-text--blue-A200 {
-  color: rgb(68,138,255) !important; }
-
-.mdl-color--blue-A200 {
-  background-color: rgb(68,138,255) !important; }
-
-.mdl-color-text--blue-A400 {
-  color: rgb(41,121,255) !important; }
-
-.mdl-color--blue-A400 {
-  background-color: rgb(41,121,255) !important; }
-
-.mdl-color-text--blue-A700 {
-  color: rgb(41,98,255) !important; }
-
-.mdl-color--blue-A700 {
-  background-color: rgb(41,98,255) !important; }
-
-.mdl-color-text--light-blue {
-  color: rgb(3,169,244) !important; }
-
-.mdl-color--light-blue {
-  background-color: rgb(3,169,244) !important; }
-
-.mdl-color-text--light-blue-50 {
-  color: rgb(225,245,254) !important; }
-
-.mdl-color--light-blue-50 {
-  background-color: rgb(225,245,254) !important; }
-
-.mdl-color-text--light-blue-100 {
-  color: rgb(179,229,252) !important; }
-
-.mdl-color--light-blue-100 {
-  background-color: rgb(179,229,252) !important; }
-
-.mdl-color-text--light-blue-200 {
-  color: rgb(129,212,250) !important; }
-
-.mdl-color--light-blue-200 {
-  background-color: rgb(129,212,250) !important; }
-
-.mdl-color-text--light-blue-300 {
-  color: rgb(79,195,247) !important; }
-
-.mdl-color--light-blue-300 {
-  background-color: rgb(79,195,247) !important; }
-
-.mdl-color-text--light-blue-400 {
-  color: rgb(41,182,246) !important; }
-
-.mdl-color--light-blue-400 {
-  background-color: rgb(41,182,246) !important; }
-
-.mdl-color-text--light-blue-500 {
-  color: rgb(3,169,244) !important; }
-
-.mdl-color--light-blue-500 {
-  background-color: rgb(3,169,244) !important; }
-
-.mdl-color-text--light-blue-600 {
-  color: rgb(3,155,229) !important; }
-
-.mdl-color--light-blue-600 {
-  background-color: rgb(3,155,229) !important; }
-
-.mdl-color-text--light-blue-700 {
-  color: rgb(2,136,209) !important; }
-
-.mdl-color--light-blue-700 {
-  background-color: rgb(2,136,209) !important; }
-
-.mdl-color-text--light-blue-800 {
-  color: rgb(2,119,189) !important; }
-
-.mdl-color--light-blue-800 {
-  background-color: rgb(2,119,189) !important; }
-
-.mdl-color-text--light-blue-900 {
-  color: rgb(1,87,155) !important; }
-
-.mdl-color--light-blue-900 {
-  background-color: rgb(1,87,155) !important; }
-
-.mdl-color-text--light-blue-A100 {
-  color: rgb(128,216,255) !important; }
-
-.mdl-color--light-blue-A100 {
-  background-color: rgb(128,216,255) !important; }
-
-.mdl-color-text--light-blue-A200 {
-  color: rgb(64,196,255) !important; }
-
-.mdl-color--light-blue-A200 {
-  background-color: rgb(64,196,255) !important; }
-
-.mdl-color-text--light-blue-A400 {
-  color: rgb(0,176,255) !important; }
-
-.mdl-color--light-blue-A400 {
-  background-color: rgb(0,176,255) !important; }
-
-.mdl-color-text--light-blue-A700 {
-  color: rgb(0,145,234) !important; }
-
-.mdl-color--light-blue-A700 {
-  background-color: rgb(0,145,234) !important; }
-
-.mdl-color-text--cyan {
-  color: rgb(0,188,212) !important; }
-
-.mdl-color--cyan {
-  background-color: rgb(0,188,212) !important; }
-
-.mdl-color-text--cyan-50 {
-  color: rgb(224,247,250) !important; }
-
-.mdl-color--cyan-50 {
-  background-color: rgb(224,247,250) !important; }
-
-.mdl-color-text--cyan-100 {
-  color: rgb(178,235,242) !important; }
-
-.mdl-color--cyan-100 {
-  background-color: rgb(178,235,242) !important; }
-
-.mdl-color-text--cyan-200 {
-  color: rgb(128,222,234) !important; }
-
-.mdl-color--cyan-200 {
-  background-color: rgb(128,222,234) !important; }
-
-.mdl-color-text--cyan-300 {
-  color: rgb(77,208,225) !important; }
-
-.mdl-color--cyan-300 {
-  background-color: rgb(77,208,225) !important; }
-
-.mdl-color-text--cyan-400 {
-  color: rgb(38,198,218) !important; }
-
-.mdl-color--cyan-400 {
-  background-color: rgb(38,198,218) !important; }
-
-.mdl-color-text--cyan-500 {
-  color: rgb(0,188,212) !important; }
-
-.mdl-color--cyan-500 {
-  background-color: rgb(0,188,212) !important; }
-
-.mdl-color-text--cyan-600 {
-  color: rgb(0,172,193) !important; }
-
-.mdl-color--cyan-600 {
-  background-color: rgb(0,172,193) !important; }
-
-.mdl-color-text--cyan-700 {
-  color: rgb(0,151,167) !important; }
-
-.mdl-color--cyan-700 {
-  background-color: rgb(0,151,167) !important; }
-
-.mdl-color-text--cyan-800 {
-  color: rgb(0,131,143) !important; }
-
-.mdl-color--cyan-800 {
-  background-color: rgb(0,131,143) !important; }
-
-.mdl-color-text--cyan-900 {
-  color: rgb(0,96,100) !important; }
-
-.mdl-color--cyan-900 {
-  background-color: rgb(0,96,100) !important; }
-
-.mdl-color-text--cyan-A100 {
-  color: rgb(132,255,255) !important; }
-
-.mdl-color--cyan-A100 {
-  background-color: rgb(132,255,255) !important; }
-
-.mdl-color-text--cyan-A200 {
-  color: rgb(24,255,255) !important; }
-
-.mdl-color--cyan-A200 {
-  background-color: rgb(24,255,255) !important; }
-
-.mdl-color-text--cyan-A400 {
-  color: rgb(0,229,255) !important; }
-
-.mdl-color--cyan-A400 {
-  background-color: rgb(0,229,255) !important; }
-
-.mdl-color-text--cyan-A700 {
-  color: rgb(0,184,212) !important; }
-
-.mdl-color--cyan-A700 {
-  background-color: rgb(0,184,212) !important; }
-
-.mdl-color-text--teal {
-  color: rgb(0,150,136) !important; }
-
-.mdl-color--teal {
-  background-color: rgb(0,150,136) !important; }
-
-.mdl-color-text--teal-50 {
-  color: rgb(224,242,241) !important; }
-
-.mdl-color--teal-50 {
-  background-color: rgb(224,242,241) !important; }
-
-.mdl-color-text--teal-100 {
-  color: rgb(178,223,219) !important; }
-
-.mdl-color--teal-100 {
-  background-color: rgb(178,223,219) !important; }
-
-.mdl-color-text--teal-200 {
-  color: rgb(128,203,196) !important; }
-
-.mdl-color--teal-200 {
-  background-color: rgb(128,203,196) !important; }
-
-.mdl-color-text--teal-300 {
-  color: rgb(77,182,172) !important; }
-
-.mdl-color--teal-300 {
-  background-color: rgb(77,182,172) !important; }
-
-.mdl-color-text--teal-400 {
-  color: rgb(38,166,154) !important; }
-
-.mdl-color--teal-400 {
-  background-color: rgb(38,166,154) !important; }
-
-.mdl-color-text--teal-500 {
-  color: rgb(0,150,136) !important; }
-
-.mdl-color--teal-500 {
-  background-color: rgb(0,150,136) !important; }
-
-.mdl-color-text--teal-600 {
-  color: rgb(0,137,123) !important; }
-
-.mdl-color--teal-600 {
-  background-color: rgb(0,137,123) !important; }
-
-.mdl-color-text--teal-700 {
-  color: rgb(0,121,107) !important; }
-
-.mdl-color--teal-700 {
-  background-color: rgb(0,121,107) !important; }
-
-.mdl-color-text--teal-800 {
-  color: rgb(0,105,92) !important; }
-
-.mdl-color--teal-800 {
-  background-color: rgb(0,105,92) !important; }
-
-.mdl-color-text--teal-900 {
-  color: rgb(0,77,64) !important; }
-
-.mdl-color--teal-900 {
-  background-color: rgb(0,77,64) !important; }
-
-.mdl-color-text--teal-A100 {
-  color: rgb(167,255,235) !important; }
-
-.mdl-color--teal-A100 {
-  background-color: rgb(167,255,235) !important; }
-
-.mdl-color-text--teal-A200 {
-  color: rgb(100,255,218) !important; }
-
-.mdl-color--teal-A200 {
-  background-color: rgb(100,255,218) !important; }
-
-.mdl-color-text--teal-A400 {
-  color: rgb(29,233,182) !important; }
-
-.mdl-color--teal-A400 {
-  background-color: rgb(29,233,182) !important; }
-
-.mdl-color-text--teal-A700 {
-  color: rgb(0,191,165) !important; }
-
-.mdl-color--teal-A700 {
-  background-color: rgb(0,191,165) !important; }
-
-.mdl-color-text--green {
-  color: rgb(76,175,80) !important; }
-
-.mdl-color--green {
-  background-color: rgb(76,175,80) !important; }
-
-.mdl-color-text--green-50 {
-  color: rgb(232,245,233) !important; }
-
-.mdl-color--green-50 {
-  background-color: rgb(232,245,233) !important; }
-
-.mdl-color-text--green-100 {
-  color: rgb(200,230,201) !important; }
-
-.mdl-color--green-100 {
-  background-color: rgb(200,230,201) !important; }
-
-.mdl-color-text--green-200 {
-  color: rgb(165,214,167) !important; }
-
-.mdl-color--green-200 {
-  background-color: rgb(165,214,167) !important; }
-
-.mdl-color-text--green-300 {
-  color: rgb(129,199,132) !important; }
-
-.mdl-color--green-300 {
-  background-color: rgb(129,199,132) !important; }
-
-.mdl-color-text--green-400 {
-  color: rgb(102,187,106) !important; }
-
-.mdl-color--green-400 {
-  background-color: rgb(102,187,106) !important; }
-
-.mdl-color-text--green-500 {
-  color: rgb(76,175,80) !important; }
-
-.mdl-color--green-500 {
-  background-color: rgb(76,175,80) !important; }
-
-.mdl-color-text--green-600 {
-  color: rgb(67,160,71) !important; }
-
-.mdl-color--green-600 {
-  background-color: rgb(67,160,71) !important; }
-
-.mdl-color-text--green-700 {
-  color: rgb(56,142,60) !important; }
-
-.mdl-color--green-700 {
-  background-color: rgb(56,142,60) !important; }
-
-.mdl-color-text--green-800 {
-  color: rgb(46,125,50) !important; }
-
-.mdl-color--green-800 {
-  background-color: rgb(46,125,50) !important; }
-
-.mdl-color-text--green-900 {
-  color: rgb(27,94,32) !important; }
-
-.mdl-color--green-900 {
-  background-color: rgb(27,94,32) !important; }
-
-.mdl-color-text--green-A100 {
-  color: rgb(185,246,202) !important; }
-
-.mdl-color--green-A100 {
-  background-color: rgb(185,246,202) !important; }
-
-.mdl-color-text--green-A200 {
-  color: rgb(105,240,174) !important; }
-
-.mdl-color--green-A200 {
-  background-color: rgb(105,240,174) !important; }
-
-.mdl-color-text--green-A400 {
-  color: rgb(0,230,118) !important; }
-
-.mdl-color--green-A400 {
-  background-color: rgb(0,230,118) !important; }
-
-.mdl-color-text--green-A700 {
-  color: rgb(0,200,83) !important; }
-
-.mdl-color--green-A700 {
-  background-color: rgb(0,200,83) !important; }
-
-.mdl-color-text--light-green {
-  color: rgb(139,195,74) !important; }
-
-.mdl-color--light-green {
-  background-color: rgb(139,195,74) !important; }
-
-.mdl-color-text--light-green-50 {
-  color: rgb(241,248,233) !important; }
-
-.mdl-color--light-green-50 {
-  background-color: rgb(241,248,233) !important; }
-
-.mdl-color-text--light-green-100 {
-  color: rgb(220,237,200) !important; }
-
-.mdl-color--light-green-100 {
-  background-color: rgb(220,237,200) !important; }
-
-.mdl-color-text--light-green-200 {
-  color: rgb(197,225,165) !important; }
-
-.mdl-color--light-green-200 {
-  background-color: rgb(197,225,165) !important; }
-
-.mdl-color-text--light-green-300 {
-  color: rgb(174,213,129) !important; }
-
-.mdl-color--light-green-300 {
-  background-color: rgb(174,213,129) !important; }
-
-.mdl-color-text--light-green-400 {
-  color: rgb(156,204,101) !important; }
-
-.mdl-color--light-green-400 {
-  background-color: rgb(156,204,101) !important; }
-
-.mdl-color-text--light-green-500 {
-  color: rgb(139,195,74) !important; }
-
-.mdl-color--light-green-500 {
-  background-color: rgb(139,195,74) !important; }
-
-.mdl-color-text--light-green-600 {
-  color: rgb(124,179,66) !important; }
-
-.mdl-color--light-green-600 {
-  background-color: rgb(124,179,66) !important; }
-
-.mdl-color-text--light-green-700 {
-  color: rgb(104,159,56) !important; }
-
-.mdl-color--light-green-700 {
-  background-color: rgb(104,159,56) !important; }
-
-.mdl-color-text--light-green-800 {
-  color: rgb(85,139,47) !important; }
-
-.mdl-color--light-green-800 {
-  background-color: rgb(85,139,47) !important; }
-
-.mdl-color-text--light-green-900 {
-  color: rgb(51,105,30) !important; }
-
-.mdl-color--light-green-900 {
-  background-color: rgb(51,105,30) !important; }
-
-.mdl-color-text--light-green-A100 {
-  color: rgb(204,255,144) !important; }
-
-.mdl-color--light-green-A100 {
-  background-color: rgb(204,255,144) !important; }
-
-.mdl-color-text--light-green-A200 {
-  color: rgb(178,255,89) !important; }
-
-.mdl-color--light-green-A200 {
-  background-color: rgb(178,255,89) !important; }
-
-.mdl-color-text--light-green-A400 {
-  color: rgb(118,255,3) !important; }
-
-.mdl-color--light-green-A400 {
-  background-color: rgb(118,255,3) !important; }
-
-.mdl-color-text--light-green-A700 {
-  color: rgb(100,221,23) !important; }
-
-.mdl-color--light-green-A700 {
-  background-color: rgb(100,221,23) !important; }
-
-.mdl-color-text--lime {
-  color: rgb(205,220,57) !important; }
-
-.mdl-color--lime {
-  background-color: rgb(205,220,57) !important; }
-
-.mdl-color-text--lime-50 {
-  color: rgb(249,251,231) !important; }
-
-.mdl-color--lime-50 {
-  background-color: rgb(249,251,231) !important; }
-
-.mdl-color-text--lime-100 {
-  color: rgb(240,244,195) !important; }
-
-.mdl-color--lime-100 {
-  background-color: rgb(240,244,195) !important; }
-
-.mdl-color-text--lime-200 {
-  color: rgb(230,238,156) !important; }
-
-.mdl-color--lime-200 {
-  background-color: rgb(230,238,156) !important; }
-
-.mdl-color-text--lime-300 {
-  color: rgb(220,231,117) !important; }
-
-.mdl-color--lime-300 {
-  background-color: rgb(220,231,117) !important; }
-
-.mdl-color-text--lime-400 {
-  color: rgb(212,225,87) !important; }
-
-.mdl-color--lime-400 {
-  background-color: rgb(212,225,87) !important; }
-
-.mdl-color-text--lime-500 {
-  color: rgb(205,220,57) !important; }
-
-.mdl-color--lime-500 {
-  background-color: rgb(205,220,57) !important; }
-
-.mdl-color-text--lime-600 {
-  color: rgb(192,202,51) !important; }
-
-.mdl-color--lime-600 {
-  background-color: rgb(192,202,51) !important; }
-
-.mdl-color-text--lime-700 {
-  color: rgb(175,180,43) !important; }
-
-.mdl-color--lime-700 {
-  background-color: rgb(175,180,43) !important; }
-
-.mdl-color-text--lime-800 {
-  color: rgb(158,157,36) !important; }
-
-.mdl-color--lime-800 {
-  background-color: rgb(158,157,36) !important; }
-
-.mdl-color-text--lime-900 {
-  color: rgb(130,119,23) !important; }
-
-.mdl-color--lime-900 {
-  background-color: rgb(130,119,23) !important; }
-
-.mdl-color-text--lime-A100 {
-  color: rgb(244,255,129) !important; }
-
-.mdl-color--lime-A100 {
-  background-color: rgb(244,255,129) !important; }
-
-.mdl-color-text--lime-A200 {
-  color: rgb(238,255,65) !important; }
-
-.mdl-color--lime-A200 {
-  background-color: rgb(238,255,65) !important; }
-
-.mdl-color-text--lime-A400 {
-  color: rgb(198,255,0) !important; }
-
-.mdl-color--lime-A400 {
-  background-color: rgb(198,255,0) !important; }
-
-.mdl-color-text--lime-A700 {
-  color: rgb(174,234,0) !important; }
-
-.mdl-color--lime-A700 {
-  background-color: rgb(174,234,0) !important; }
-
-.mdl-color-text--yellow {
-  color: rgb(255,235,59) !important; }
-
-.mdl-color--yellow {
-  background-color: rgb(255,235,59) !important; }
-
-.mdl-color-text--yellow-50 {
-  color: rgb(255,253,231) !important; }
-
-.mdl-color--yellow-50 {
-  background-color: rgb(255,253,231) !important; }
-
-.mdl-color-text--yellow-100 {
-  color: rgb(255,249,196) !important; }
-
-.mdl-color--yellow-100 {
-  background-color: rgb(255,249,196) !important; }
-
-.mdl-color-text--yellow-200 {
-  color: rgb(255,245,157) !important; }
-
-.mdl-color--yellow-200 {
-  background-color: rgb(255,245,157) !important; }
-
-.mdl-color-text--yellow-300 {
-  color: rgb(255,241,118) !important; }
-
-.mdl-color--yellow-300 {
-  background-color: rgb(255,241,118) !important; }
-
-.mdl-color-text--yellow-400 {
-  color: rgb(255,238,88) !important; }
-
-.mdl-color--yellow-400 {
-  background-color: rgb(255,238,88) !important; }
-
-.mdl-color-text--yellow-500 {
-  color: rgb(255,235,59) !important; }
-
-.mdl-color--yellow-500 {
-  background-color: rgb(255,235,59) !important; }
-
-.mdl-color-text--yellow-600 {
-  color: rgb(253,216,53) !important; }
-
-.mdl-color--yellow-600 {
-  background-color: rgb(253,216,53) !important; }
-
-.mdl-color-text--yellow-700 {
-  color: rgb(251,192,45) !important; }
-
-.mdl-color--yellow-700 {
-  background-color: rgb(251,192,45) !important; }
-
-.mdl-color-text--yellow-800 {
-  color: rgb(249,168,37) !important; }
-
-.mdl-color--yellow-800 {
-  background-color: rgb(249,168,37) !important; }
-
-.mdl-color-text--yellow-900 {
-  color: rgb(245,127,23) !important; }
-
-.mdl-color--yellow-900 {
-  background-color: rgb(245,127,23) !important; }
-
-.mdl-color-text--yellow-A100 {
-  color: rgb(255,255,141) !important; }
-
-.mdl-color--yellow-A100 {
-  background-color: rgb(255,255,141) !important; }
-
-.mdl-color-text--yellow-A200 {
-  color: rgb(255,255,0) !important; }
-
-.mdl-color--yellow-A200 {
-  background-color: rgb(255,255,0) !important; }
-
-.mdl-color-text--yellow-A400 {
-  color: rgb(255,234,0) !important; }
-
-.mdl-color--yellow-A400 {
-  background-color: rgb(255,234,0) !important; }
-
-.mdl-color-text--yellow-A700 {
-  color: rgb(255,214,0) !important; }
-
-.mdl-color--yellow-A700 {
-  background-color: rgb(255,214,0) !important; }
-
-.mdl-color-text--amber {
-  color: rgb(255,193,7) !important; }
-
-.mdl-color--amber {
-  background-color: rgb(255,193,7) !important; }
-
-.mdl-color-text--amber-50 {
-  color: rgb(255,248,225) !important; }
-
-.mdl-color--amber-50 {
-  background-color: rgb(255,248,225) !important; }
-
-.mdl-color-text--amber-100 {
-  color: rgb(255,236,179) !important; }
-
-.mdl-color--amber-100 {
-  background-color: rgb(255,236,179) !important; }
-
-.mdl-color-text--amber-200 {
-  color: rgb(255,224,130) !important; }
-
-.mdl-color--amber-200 {
-  background-color: rgb(255,224,130) !important; }
-
-.mdl-color-text--amber-300 {
-  color: rgb(255,213,79) !important; }
-
-.mdl-color--amber-300 {
-  background-color: rgb(255,213,79) !important; }
-
-.mdl-color-text--amber-400 {
-  color: rgb(255,202,40) !important; }
-
-.mdl-color--amber-400 {
-  background-color: rgb(255,202,40) !important; }
-
-.mdl-color-text--amber-500 {
-  color: rgb(255,193,7) !important; }
-
-.mdl-color--amber-500 {
-  background-color: rgb(255,193,7) !important; }
-
-.mdl-color-text--amber-600 {
-  color: rgb(255,179,0) !important; }
-
-.mdl-color--amber-600 {
-  background-color: rgb(255,179,0) !important; }
-
-.mdl-color-text--amber-700 {
-  color: rgb(255,160,0) !important; }
-
-.mdl-color--amber-700 {
-  background-color: rgb(255,160,0) !important; }
-
-.mdl-color-text--amber-800 {
-  color: rgb(255,143,0) !important; }
-
-.mdl-color--amber-800 {
-  background-color: rgb(255,143,0) !important; }
-
-.mdl-color-text--amber-900 {
-  color: rgb(255,111,0) !important; }
-
-.mdl-color--amber-900 {
-  background-color: rgb(255,111,0) !important; }
-
-.mdl-color-text--amber-A100 {
-  color: rgb(255,229,127) !important; }
-
-.mdl-color--amber-A100 {
-  background-color: rgb(255,229,127) !important; }
-
-.mdl-color-text--amber-A200 {
-  color: rgb(255,215,64) !important; }
-
-.mdl-color--amber-A200 {
-  background-color: rgb(255,215,64) !important; }
-
-.mdl-color-text--amber-A400 {
-  color: rgb(255,196,0) !important; }
-
-.mdl-color--amber-A400 {
-  background-color: rgb(255,196,0) !important; }
-
-.mdl-color-text--amber-A700 {
-  color: rgb(255,171,0) !important; }
-
-.mdl-color--amber-A700 {
-  background-color: rgb(255,171,0) !important; }
-
-.mdl-color-text--orange {
-  color: rgb(255,152,0) !important; }
-
-.mdl-color--orange {
-  background-color: rgb(255,152,0) !important; }
-
-.mdl-color-text--orange-50 {
-  color: rgb(255,243,224) !important; }
-
-.mdl-color--orange-50 {
-  background-color: rgb(255,243,224) !important; }
-
-.mdl-color-text--orange-100 {
-  color: rgb(255,224,178) !important; }
-
-.mdl-color--orange-100 {
-  background-color: rgb(255,224,178) !important; }
-
-.mdl-color-text--orange-200 {
-  color: rgb(255,204,128) !important; }
-
-.mdl-color--orange-200 {
-  background-color: rgb(255,204,128) !important; }
-
-.mdl-color-text--orange-300 {
-  color: rgb(255,183,77) !important; }
-
-.mdl-color--orange-300 {
-  background-color: rgb(255,183,77) !important; }
-
-.mdl-color-text--orange-400 {
-  color: rgb(255,167,38) !important; }
-
-.mdl-color--orange-400 {
-  background-color: rgb(255,167,38) !important; }
-
-.mdl-color-text--orange-500 {
-  color: rgb(255,152,0) !important; }
-
-.mdl-color--orange-500 {
-  background-color: rgb(255,152,0) !important; }
-
-.mdl-color-text--orange-600 {
-  color: rgb(251,140,0) !important; }
-
-.mdl-color--orange-600 {
-  background-color: rgb(251,140,0) !important; }
-
-.mdl-color-text--orange-700 {
-  color: rgb(245,124,0) !important; }
-
-.mdl-color--orange-700 {
-  background-color: rgb(245,124,0) !important; }
-
-.mdl-color-text--orange-800 {
-  color: rgb(239,108,0) !important; }
-
-.mdl-color--orange-800 {
-  background-color: rgb(239,108,0) !important; }
-
-.mdl-color-text--orange-900 {
-  color: rgb(230,81,0) !important; }
-
-.mdl-color--orange-900 {
-  background-color: rgb(230,81,0) !important; }
-
-.mdl-color-text--orange-A100 {
-  color: rgb(255,209,128) !important; }
-
-.mdl-color--orange-A100 {
-  background-color: rgb(255,209,128) !important; }
-
-.mdl-color-text--orange-A200 {
-  color: rgb(255,171,64) !important; }
-
-.mdl-color--orange-A200 {
-  background-color: rgb(255,171,64) !important; }
-
-.mdl-color-text--orange-A400 {
-  color: rgb(255,145,0) !important; }
-
-.mdl-color--orange-A400 {
-  background-color: rgb(255,145,0) !important; }
-
-.mdl-color-text--orange-A700 {
-  color: rgb(255,109,0) !important; }
-
-.mdl-color--orange-A700 {
-  background-color: rgb(255,109,0) !important; }
-
-.mdl-color-text--deep-orange {
-  color: rgb(255,87,34) !important; }
-
-.mdl-color--deep-orange {
-  background-color: rgb(255,87,34) !important; }
-
-.mdl-color-text--deep-orange-50 {
-  color: rgb(251,233,231) !important; }
-
-.mdl-color--deep-orange-50 {
-  background-color: rgb(251,233,231) !important; }
-
-.mdl-color-text--deep-orange-100 {
-  color: rgb(255,204,188) !important; }
-
-.mdl-color--deep-orange-100 {
-  background-color: rgb(255,204,188) !important; }
-
-.mdl-color-text--deep-orange-200 {
-  color: rgb(255,171,145) !important; }
-
-.mdl-color--deep-orange-200 {
-  background-color: rgb(255,171,145) !important; }
-
-.mdl-color-text--deep-orange-300 {
-  color: rgb(255,138,101) !important; }
-
-.mdl-color--deep-orange-300 {
-  background-color: rgb(255,138,101) !important; }
-
-.mdl-color-text--deep-orange-400 {
-  color: rgb(255,112,67) !important; }
-
-.mdl-color--deep-orange-400 {
-  background-color: rgb(255,112,67) !important; }
-
-.mdl-color-text--deep-orange-500 {
-  color: rgb(255,87,34) !important; }
-
-.mdl-color--deep-orange-500 {
-  background-color: rgb(255,87,34) !important; }
-
-.mdl-color-text--deep-orange-600 {
-  color: rgb(244,81,30) !important; }
-
-.mdl-color--deep-orange-600 {
-  background-color: rgb(244,81,30) !important; }
-
-.mdl-color-text--deep-orange-700 {
-  color: rgb(230,74,25) !important; }
-
-.mdl-color--deep-orange-700 {
-  background-color: rgb(230,74,25) !important; }
-
-.mdl-color-text--deep-orange-800 {
-  color: rgb(216,67,21) !important; }
-
-.mdl-color--deep-orange-800 {
-  background-color: rgb(216,67,21) !important; }
-
-.mdl-color-text--deep-orange-900 {
-  color: rgb(191,54,12) !important; }
-
-.mdl-color--deep-orange-900 {
-  background-color: rgb(191,54,12) !important; }
-
-.mdl-color-text--deep-orange-A100 {
-  color: rgb(255,158,128) !important; }
-
-.mdl-color--deep-orange-A100 {
-  background-color: rgb(255,158,128) !important; }
-
-.mdl-color-text--deep-orange-A200 {
-  color: rgb(255,110,64) !important; }
-
-.mdl-color--deep-orange-A200 {
-  background-color: rgb(255,110,64) !important; }
-
-.mdl-color-text--deep-orange-A400 {
-  color: rgb(255,61,0) !important; }
-
-.mdl-color--deep-orange-A400 {
-  background-color: rgb(255,61,0) !important; }
-
-.mdl-color-text--deep-orange-A700 {
-  color: rgb(221,44,0) !important; }
-
-.mdl-color--deep-orange-A700 {
-  background-color: rgb(221,44,0) !important; }
-
-.mdl-color-text--brown {
-  color: rgb(121,85,72) !important; }
-
-.mdl-color--brown {
-  background-color: rgb(121,85,72) !important; }
-
-.mdl-color-text--brown-50 {
-  color: rgb(239,235,233) !important; }
-
-.mdl-color--brown-50 {
-  background-color: rgb(239,235,233) !important; }
-
-.mdl-color-text--brown-100 {
-  color: rgb(215,204,200) !important; }
-
-.mdl-color--brown-100 {
-  background-color: rgb(215,204,200) !important; }
-
-.mdl-color-text--brown-200 {
-  color: rgb(188,170,164) !important; }
-
-.mdl-color--brown-200 {
-  background-color: rgb(188,170,164) !important; }
-
-.mdl-color-text--brown-300 {
-  color: rgb(161,136,127) !important; }
-
-.mdl-color--brown-300 {
-  background-color: rgb(161,136,127) !important; }
-
-.mdl-color-text--brown-400 {
-  color: rgb(141,110,99) !important; }
-
-.mdl-color--brown-400 {
-  background-color: rgb(141,110,99) !important; }
-
-.mdl-color-text--brown-500 {
-  color: rgb(121,85,72) !important; }
-
-.mdl-color--brown-500 {
-  background-color: rgb(121,85,72) !important; }
-
-.mdl-color-text--brown-600 {
-  color: rgb(109,76,65) !important; }
-
-.mdl-color--brown-600 {
-  background-color: rgb(109,76,65) !important; }
-
-.mdl-color-text--brown-700 {
-  color: rgb(93,64,55) !important; }
-
-.mdl-color--brown-700 {
-  background-color: rgb(93,64,55) !important; }
-
-.mdl-color-text--brown-800 {
-  color: rgb(78,52,46) !important; }
-
-.mdl-color--brown-800 {
-  background-color: rgb(78,52,46) !important; }
-
-.mdl-color-text--brown-900 {
-  color: rgb(62,39,35) !important; }
-
-.mdl-color--brown-900 {
-  background-color: rgb(62,39,35) !important; }
-
-.mdl-color-text--grey {
-  color: rgb(158,158,158) !important; }
-
-.mdl-color--grey {
-  background-color: rgb(158,158,158) !important; }
-
-.mdl-color-text--grey-50 {
-  color: rgb(250,250,250) !important; }
-
-.mdl-color--grey-50 {
-  background-color: rgb(250,250,250) !important; }
-
-.mdl-color-text--grey-100 {
-  color: rgb(245,245,245) !important; }
-
-.mdl-color--grey-100 {
-  background-color: rgb(245,245,245) !important; }
-
-.mdl-color-text--grey-200 {
-  color: rgb(238,238,238) !important; }
-
-.mdl-color--grey-200 {
-  background-color: rgb(238,238,238) !important; }
-
-.mdl-color-text--grey-300 {
-  color: rgb(224,224,224) !important; }
-
-.mdl-color--grey-300 {
-  background-color: rgb(224,224,224) !important; }
-
-.mdl-color-text--grey-400 {
-  color: rgb(189,189,189) !important; }
-
-.mdl-color--grey-400 {
-  background-color: rgb(189,189,189) !important; }
-
-.mdl-color-text--grey-500 {
-  color: rgb(158,158,158) !important; }
-
-.mdl-color--grey-500 {
-  background-color: rgb(158,158,158) !important; }
-
-.mdl-color-text--grey-600 {
-  color: rgb(117,117,117) !important; }
-
-.mdl-color--grey-600 {
-  background-color: rgb(117,117,117) !important; }
-
-.mdl-color-text--grey-700 {
-  color: rgb(97,97,97) !important; }
-
-.mdl-color--grey-700 {
-  background-color: rgb(97,97,97) !important; }
-
-.mdl-color-text--grey-800 {
-  color: rgb(66,66,66) !important; }
-
-.mdl-color--grey-800 {
-  background-color: rgb(66,66,66) !important; }
-
-.mdl-color-text--grey-900 {
-  color: rgb(33,33,33) !important; }
-
-.mdl-color--grey-900 {
-  background-color: rgb(33,33,33) !important; }
-
-.mdl-color-text--blue-grey {
-  color: rgb(96,125,139) !important; }
-
-.mdl-color--blue-grey {
-  background-color: rgb(96,125,139) !important; }
-
-.mdl-color-text--blue-grey-50 {
-  color: rgb(236,239,241) !important; }
-
-.mdl-color--blue-grey-50 {
-  background-color: rgb(236,239,241) !important; }
-
-.mdl-color-text--blue-grey-100 {
-  color: rgb(207,216,220) !important; }
-
-.mdl-color--blue-grey-100 {
-  background-color: rgb(207,216,220) !important; }
-
-.mdl-color-text--blue-grey-200 {
-  color: rgb(176,190,197) !important; }
-
-.mdl-color--blue-grey-200 {
-  background-color: rgb(176,190,197) !important; }
-
-.mdl-color-text--blue-grey-300 {
-  color: rgb(144,164,174) !important; }
-
-.mdl-color--blue-grey-300 {
-  background-color: rgb(144,164,174) !important; }
-
-.mdl-color-text--blue-grey-400 {
-  color: rgb(120,144,156) !important; }
-
-.mdl-color--blue-grey-400 {
-  background-color: rgb(120,144,156) !important; }
-
-.mdl-color-text--blue-grey-500 {
-  color: rgb(96,125,139) !important; }
-
-.mdl-color--blue-grey-500 {
-  background-color: rgb(96,125,139) !important; }
-
-.mdl-color-text--blue-grey-600 {
-  color: rgb(84,110,122) !important; }
-
-.mdl-color--blue-grey-600 {
-  background-color: rgb(84,110,122) !important; }
-
-.mdl-color-text--blue-grey-700 {
-  color: rgb(69,90,100) !important; }
-
-.mdl-color--blue-grey-700 {
-  background-color: rgb(69,90,100) !important; }
-
-.mdl-color-text--blue-grey-800 {
-  color: rgb(55,71,79) !important; }
-
-.mdl-color--blue-grey-800 {
-  background-color: rgb(55,71,79) !important; }
-
-.mdl-color-text--blue-grey-900 {
-  color: rgb(38,50,56) !important; }
-
-.mdl-color--blue-grey-900 {
-  background-color: rgb(38,50,56) !important; }
-
-.mdl-color--black {
-  background-color: rgb(0,0,0) !important; }
-
-.mdl-color-text--black {
-  color: rgb(0,0,0) !important; }
-
-.mdl-color--white {
-  background-color: rgb(255,255,255) !important; }
-
-.mdl-color-text--white {
-  color: rgb(255,255,255) !important; }
-
-.mdl-color--primary {
-  background-color: rgb(63,81,181) !important; }
-
-.mdl-color--primary-contrast {
-  background-color: rgb(255,255,255) !important; }
-
-.mdl-color--primary-dark {
-  background-color: rgb(48,63,159) !important; }
-
-.mdl-color--accent {
-  background-color: rgb(255,64,129) !important; }
-
-.mdl-color--accent-contrast {
-  background-color: rgb(255,255,255) !important; }
-
-.mdl-color-text--primary {
-  color: rgb(63,81,181) !important; }
-
-.mdl-color-text--primary-contrast {
-  color: rgb(255,255,255) !important; }
-
-.mdl-color-text--primary-dark {
-  color: rgb(48,63,159) !important; }
-
-.mdl-color-text--accent {
-  color: rgb(255,64,129) !important; }
-
-.mdl-color-text--accent-contrast {
-  color: rgb(255,255,255) !important; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-ripple {
-  background: rgb(0,0,0);
-  border-radius: 50%;
-  height: 50px;
-  left: 0;
-  opacity: 0;
-  pointer-events: none;
-  position: absolute;
-  top: 0;
-  -webkit-transform: translate(-50%, -50%);
-          transform: translate(-50%, -50%);
-  width: 50px;
-  overflow: hidden; }
-  .mdl-ripple.is-animating {
-    transition: width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0, 0, 0.2, 1);
-    transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1);
-    transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0, 0, 0.2, 1); }
-  .mdl-ripple.is-visible {
-    opacity: 0.3; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-animation--default {
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
-
-.mdl-animation--fast-out-slow-in {
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
-
-.mdl-animation--linear-out-slow-in {
-  transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }
-
-.mdl-animation--fast-out-linear-in {
-  transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-badge {
-  position: relative;
-  white-space: nowrap;
-  margin-right: 24px; }
-  .mdl-badge:not([data-badge]) {
-    margin-right: auto; }
-  .mdl-badge[data-badge]:after {
-    content: attr(data-badge);
-    display: -webkit-flex;
-    display: -ms-flexbox;
-    display: flex;
-    -webkit-flex-direction: row;
-        -ms-flex-direction: row;
-            flex-direction: row;
-    -webkit-flex-wrap: wrap;
-        -ms-flex-wrap: wrap;
-            flex-wrap: wrap;
-    -webkit-justify-content: center;
-        -ms-flex-pack: center;
-            justify-content: center;
-    -webkit-align-content: center;
-        -ms-flex-line-pack: center;
-            align-content: center;
-    -webkit-align-items: center;
-        -ms-flex-align: center;
-            align-items: center;
-    position: absolute;
-    top: -11px;
-    right: -24px;
-    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-    font-weight: 600;
-    font-size: 12px;
-    width: 22px;
-    height: 22px;
-    border-radius: 50%;
-    background: rgb(255,64,129);
-    color: rgb(255,255,255); }
-    .mdl-button .mdl-badge[data-badge]:after {
-      top: -10px;
-      right: -5px; }
-  .mdl-badge.mdl-badge--no-background[data-badge]:after {
-    color: rgb(255,64,129);
-    background: rgba(255,255,255,0.2);
-    box-shadow: 0 0 1px gray; }
-  .mdl-badge.mdl-badge--overlap {
-    margin-right: 10px; }
-    .mdl-badge.mdl-badge--overlap:after {
-      right: -10px; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-button {
-  background: transparent;
-  border: none;
-  border-radius: 2px;
-  color: rgb(0,0,0);
-  position: relative;
-  height: 36px;
-  margin: 0;
-  min-width: 64px;
-  padding: 0 16px;
-  display: inline-block;
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 14px;
-  font-weight: 500;
-  text-transform: uppercase;
-  line-height: 1;
-  letter-spacing: 0;
-  overflow: hidden;
-  will-change: box-shadow;
-  transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
-  outline: none;
-  cursor: pointer;
-  text-decoration: none;
-  text-align: center;
-  line-height: 36px;
-  vertical-align: middle; }
-  .mdl-button::-moz-focus-inner {
-    border: 0; }
-  .mdl-button:hover {
-    background-color: rgba(158,158,158, 0.20); }
-  .mdl-button:focus:not(:active) {
-    background-color: rgba(0,0,0, 0.12); }
-  .mdl-button:active {
-    background-color: rgba(158,158,158, 0.40); }
-  .mdl-button.mdl-button--colored {
-    color: rgb(63,81,181); }
-    .mdl-button.mdl-button--colored:focus:not(:active) {
-      background-color: rgba(0,0,0, 0.12); }
-
-input.mdl-button[type="submit"] {
-  -webkit-appearance: none; }
-
-.mdl-button--raised {
-  background: rgba(158,158,158, 0.20);
-  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
-  .mdl-button--raised:active {
-    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
-    background-color: rgba(158,158,158, 0.40); }
-  .mdl-button--raised:focus:not(:active) {
-    box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);
-    background-color: rgba(158,158,158, 0.40); }
-  .mdl-button--raised.mdl-button--colored {
-    background: rgb(63,81,181);
-    color: rgb(255,255,255); }
-    .mdl-button--raised.mdl-button--colored:hover {
-      background-color: rgb(63,81,181); }
-    .mdl-button--raised.mdl-button--colored:active {
-      background-color: rgb(63,81,181); }
-    .mdl-button--raised.mdl-button--colored:focus:not(:active) {
-      background-color: rgb(63,81,181); }
-    .mdl-button--raised.mdl-button--colored .mdl-ripple {
-      background: rgb(255,255,255); }
-
-.mdl-button--fab {
-  border-radius: 50%;
-  font-size: 24px;
-  height: 56px;
-  margin: auto;
-  min-width: 56px;
-  width: 56px;
-  padding: 0;
-  overflow: hidden;
-  background: rgba(158,158,158, 0.20);
-  box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24);
-  position: relative;
-  line-height: normal; }
-  .mdl-button--fab .material-icons {
-    position: absolute;
-    top: 50%;
-    left: 50%;
-    -webkit-transform: translate(-12px, -12px);
-            transform: translate(-12px, -12px);
-    line-height: 24px;
-    width: 24px; }
-  .mdl-button--fab.mdl-button--mini-fab {
-    height: 40px;
-    min-width: 40px;
-    width: 40px; }
-  .mdl-button--fab .mdl-button__ripple-container {
-    border-radius: 50%;
-    -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
-  .mdl-button--fab:active {
-    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
-    background-color: rgba(158,158,158, 0.40); }
-  .mdl-button--fab:focus:not(:active) {
-    box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);
-    background-color: rgba(158,158,158, 0.40); }
-  .mdl-button--fab.mdl-button--colored {
-    background: rgb(255,64,129);
-    color: rgb(255,255,255); }
-    .mdl-button--fab.mdl-button--colored:hover {
-      background-color: rgb(255,64,129); }
-    .mdl-button--fab.mdl-button--colored:focus:not(:active) {
-      background-color: rgb(255,64,129); }
-    .mdl-button--fab.mdl-button--colored:active {
-      background-color: rgb(255,64,129); }
-    .mdl-button--fab.mdl-button--colored .mdl-ripple {
-      background: rgb(255,255,255); }
-
-.mdl-button--icon {
-  border-radius: 50%;
-  font-size: 24px;
-  height: 32px;
-  margin-left: 0;
-  margin-right: 0;
-  min-width: 32px;
-  width: 32px;
-  padding: 0;
-  overflow: hidden;
-  color: inherit;
-  line-height: normal; }
-  .mdl-button--icon .material-icons {
-    position: absolute;
-    top: 50%;
-    left: 50%;
-    -webkit-transform: translate(-12px, -12px);
-            transform: translate(-12px, -12px);
-    line-height: 24px;
-    width: 24px; }
-  .mdl-button--icon.mdl-button--mini-icon {
-    height: 24px;
-    min-width: 24px;
-    width: 24px; }
-    .mdl-button--icon.mdl-button--mini-icon .material-icons {
-      top: 0px;
-      left: 0px; }
-  .mdl-button--icon .mdl-button__ripple-container {
-    border-radius: 50%;
-    -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
-
-.mdl-button__ripple-container {
-  display: block;
-  height: 100%;
-  left: 0px;
-  position: absolute;
-  top: 0px;
-  width: 100%;
-  z-index: 0;
-  overflow: hidden; }
-  .mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple,
-  .mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple {
-    background-color: transparent; }
-
-.mdl-button--primary.mdl-button--primary {
-  color: rgb(63,81,181); }
-  .mdl-button--primary.mdl-button--primary .mdl-ripple {
-    background: rgb(255,255,255); }
-  .mdl-button--primary.mdl-button--primary.mdl-button--raised, .mdl-button--primary.mdl-button--primary.mdl-button--fab {
-    color: rgb(255,255,255);
-    background-color: rgb(63,81,181); }
-
-.mdl-button--accent.mdl-button--accent {
-  color: rgb(255,64,129); }
-  .mdl-button--accent.mdl-button--accent .mdl-ripple {
-    background: rgb(255,255,255); }
-  .mdl-button--accent.mdl-button--accent.mdl-button--raised, .mdl-button--accent.mdl-button--accent.mdl-button--fab {
-    color: rgb(255,255,255);
-    background-color: rgb(255,64,129); }
-
-.mdl-button[disabled][disabled], .mdl-button.mdl-button--disabled.mdl-button--disabled {
-  color: rgba(0,0,0, 0.26);
-  cursor: default;
-  background-color: transparent; }
-
-.mdl-button--fab[disabled][disabled], .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {
-  background-color: rgba(0,0,0, 0.12);
-  color: rgba(0,0,0, 0.26); }
-
-.mdl-button--raised[disabled][disabled], .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
-  background-color: rgba(0,0,0, 0.12);
-  color: rgba(0,0,0, 0.26);
-  box-shadow: none; }
-
-.mdl-button--colored[disabled][disabled], .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
-  color: rgba(0,0,0, 0.26); }
-
-.mdl-button .material-icons {
-  vertical-align: middle; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-card {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-direction: column;
-      -ms-flex-direction: column;
-          flex-direction: column;
-  font-size: 16px;
-  font-weight: 400;
-  min-height: 200px;
-  overflow: hidden;
-  width: 330px;
-  z-index: 1;
-  position: relative;
-  background: rgb(255,255,255);
-  border-radius: 2px;
-  box-sizing: border-box; }
-
-.mdl-card__media {
-  background-color: rgb(255,64,129);
-  background-repeat: repeat;
-  background-position: 50% 50%;
-  background-size: cover;
-  background-origin: padding-box;
-  background-attachment: scroll;
-  box-sizing: border-box; }
-
-.mdl-card__title {
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-  color: rgb(0,0,0);
-  display: block;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-justify-content: stretch;
-      -ms-flex-pack: stretch;
-          justify-content: stretch;
-  line-height: normal;
-  padding: 16px 16px;
-  -webkit-perspective-origin: 165px 56px;
-          perspective-origin: 165px 56px;
-  -webkit-transform-origin: 165px 56px;
-          transform-origin: 165px 56px;
-  box-sizing: border-box; }
-  .mdl-card__title.mdl-card--border {
-    border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
-
-.mdl-card__title-text {
-  -webkit-align-self: flex-end;
-      -ms-flex-item-align: end;
-          align-self: flex-end;
-  color: inherit;
-  display: block;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  font-size: 24px;
-  font-weight: 300;
-  line-height: normal;
-  overflow: hidden;
-  -webkit-transform-origin: 149px 48px;
-          transform-origin: 149px 48px;
-  margin: 0; }
-
-.mdl-card__subtitle-text {
-  font-size: 14px;
-  color: rgba(0,0,0, 0.54);
-  margin: 0; }
-
-.mdl-card__supporting-text {
-  color: rgba(0,0,0, 0.54);
-  font-size: 1rem;
-  line-height: 18px;
-  overflow: hidden;
-  padding: 16px 16px;
-  width: 90%; }
-  .mdl-card__supporting-text.mdl-card--border {
-    border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
-
-.mdl-card__actions {
-  font-size: 16px;
-  line-height: normal;
-  width: 100%;
-  background-color: transparent;
-  padding: 8px;
-  box-sizing: border-box; }
-  .mdl-card__actions.mdl-card--border {
-    border-top: 1px solid rgba(0, 0, 0, 0.1); }
-
-.mdl-card--expand {
-  -webkit-flex-grow: 1;
-      -ms-flex-positive: 1;
-          flex-grow: 1; }
-
-.mdl-card__menu {
-  position: absolute;
-  right: 16px;
-  top: 16px; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-checkbox {
-  position: relative;
-  z-index: 1;
-  vertical-align: middle;
-  display: inline-block;
-  box-sizing: border-box;
-  width: 100%;
-  height: 24px;
-  margin: 0;
-  padding: 0; }
-  .mdl-checkbox.is-upgraded {
-    padding-left: 24px; }
-
-.mdl-checkbox__input {
-  line-height: 24px; }
-  .mdl-checkbox.is-upgraded .mdl-checkbox__input {
-    position: absolute;
-    width: 0;
-    height: 0;
-    margin: 0;
-    padding: 0;
-    opacity: 0;
-    -ms-appearance: none;
-    -moz-appearance: none;
-    -webkit-appearance: none;
-    appearance: none;
-    border: none; }
-
-.mdl-checkbox__box-outline {
-  position: absolute;
-  top: 3px;
-  left: 0;
-  display: inline-block;
-  box-sizing: border-box;
-  width: 16px;
-  height: 16px;
-  margin: 0;
-  cursor: pointer;
-  overflow: hidden;
-  border: 2px solid rgba(0,0,0, 0.54);
-  border-radius: 2px;
-  z-index: 2; }
-  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
-    border: 2px solid rgb(63,81,181); }
-  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,
-  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
-    border: 2px solid rgba(0,0,0, 0.26);
-    cursor: auto; }
-
-.mdl-checkbox__focus-helper {
-  position: absolute;
-  top: 3px;
-  left: 0;
-  display: inline-block;
-  box-sizing: border-box;
-  width: 16px;
-  height: 16px;
-  border-radius: 50%;
-  background-color: transparent; }
-  .mdl-checkbox.is-focused .mdl-checkbox__focus-helper {
-    box-shadow: 0 0 0px 8px rgba(0, 0, 0, 0.1);
-    background-color: rgba(0, 0, 0, 0.1); }
-  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
-    box-shadow: 0 0 0px 8px rgba(63,81,181, 0.26);
-    background-color: rgba(63,81,181, 0.26); }
-
-.mdl-checkbox__tick-outline {
-  position: absolute;
-  top: 0;
-  left: 0;
-  height: 100%;
-  width: 100%;
-  -webkit-mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==");
-          mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==");
-  background: transparent;
-  transition-duration: 0.28s;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-property: background; }
-  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
-    background: rgb(63,81,181) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K"); }
-  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,
-  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
-    background: rgba(0,0,0, 0.26) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K"); }
-
-.mdl-checkbox__label {
-  position: relative;
-  cursor: pointer;
-  font-size: 16px;
-  line-height: 24px;
-  margin: 0; }
-  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,
-  .mdl-checkbox.is-disabled .mdl-checkbox__label {
-    color: rgba(0,0,0, 0.26);
-    cursor: auto; }
-
-.mdl-checkbox__ripple-container {
-  position: absolute;
-  z-index: 2;
-  top: -6px;
-  left: -10px;
-  box-sizing: border-box;
-  width: 36px;
-  height: 36px;
-  border-radius: 50%;
-  cursor: pointer;
-  overflow: hidden;
-  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
-  .mdl-checkbox__ripple-container .mdl-ripple {
-    background: rgb(63,81,181); }
-  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container,
-  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container {
-    cursor: auto; }
-  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,
-  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
-    background: transparent; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-chip {
-  height: 32px;
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  line-height: 32px;
-  padding: 0 12px;
-  border: 0;
-  border-radius: 16px;
-  background-color: #dedede;
-  display: inline-block;
-  color: rgba(0,0,0, 0.87);
-  margin: 2px 0;
-  font-size: 0;
-  white-space: nowrap; }
-  .mdl-chip__text {
-    font-size: 13px;
-    vertical-align: middle;
-    display: inline-block; }
-  .mdl-chip__action {
-    height: 24px;
-    width: 24px;
-    background: transparent;
-    opacity: 0.54;
-    display: inline-block;
-    cursor: pointer;
-    text-align: center;
-    vertical-align: middle;
-    padding: 0;
-    margin: 0 0 0 4px;
-    font-size: 13px;
-    text-decoration: none;
-    color: rgba(0,0,0, 0.87);
-    border: none;
-    outline: none;
-    overflow: hidden; }
-  .mdl-chip__contact {
-    height: 32px;
-    width: 32px;
-    border-radius: 16px;
-    display: inline-block;
-    vertical-align: middle;
-    margin-right: 8px;
-    overflow: hidden;
-    text-align: center;
-    font-size: 18px;
-    line-height: 32px; }
-  .mdl-chip:focus {
-    outline: 0;
-    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
-  .mdl-chip:active {
-    background-color: #d6d6d6; }
-  .mdl-chip--deletable {
-    padding-right: 4px; }
-  .mdl-chip--contact {
-    padding-left: 0; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-data-table {
-  position: relative;
-  border: 1px solid rgba(0, 0, 0, 0.12);
-  border-collapse: collapse;
-  white-space: nowrap;
-  font-size: 13px;
-  background-color: rgb(255,255,255); }
-  .mdl-data-table thead {
-    padding-bottom: 3px; }
-    .mdl-data-table thead .mdl-data-table__select {
-      margin-top: 0; }
-  .mdl-data-table tbody tr {
-    position: relative;
-    height: 48px;
-    transition-duration: 0.28s;
-    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-    transition-property: background-color; }
-    .mdl-data-table tbody tr.is-selected {
-      background-color: #e0e0e0; }
-    .mdl-data-table tbody tr:hover {
-      background-color: #eeeeee; }
-  .mdl-data-table td, .mdl-data-table th {
-    padding: 0 18px 12px 18px;
-    text-align: right; }
-    .mdl-data-table td:first-of-type, .mdl-data-table th:first-of-type {
-      padding-left: 24px; }
-    .mdl-data-table td:last-of-type, .mdl-data-table th:last-of-type {
-      padding-right: 24px; }
-  .mdl-data-table td {
-    position: relative;
-    vertical-align: middle;
-    height: 48px;
-    border-top: 1px solid rgba(0, 0, 0, 0.12);
-    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
-    padding-top: 12px;
-    box-sizing: border-box; }
-    .mdl-data-table td .mdl-data-table__select {
-      vertical-align: middle; }
-  .mdl-data-table th {
-    position: relative;
-    vertical-align: bottom;
-    text-overflow: ellipsis;
-    font-size: 14px;
-    font-weight: bold;
-    line-height: 24px;
-    letter-spacing: 0;
-    height: 48px;
-    font-size: 12px;
-    color: rgba(0, 0, 0, 0.54);
-    padding-bottom: 8px;
-    box-sizing: border-box; }
-    .mdl-data-table th.mdl-data-table__header--sorted-ascending, .mdl-data-table th.mdl-data-table__header--sorted-descending {
-      color: rgba(0, 0, 0, 0.87); }
-      .mdl-data-table th.mdl-data-table__header--sorted-ascending:before, .mdl-data-table th.mdl-data-table__header--sorted-descending:before {
-        font-family: 'Material Icons';
-        font-weight: normal;
-        font-style: normal;
-        font-size: 24px;
-        line-height: 1;
-        letter-spacing: normal;
-        text-transform: none;
-        display: inline-block;
-        word-wrap: normal;
-        -moz-font-feature-settings: 'liga';
-             font-feature-settings: 'liga';
-        -webkit-font-feature-settings: 'liga';
-        -webkit-font-smoothing: antialiased;
-        font-size: 16px;
-        content: "\e5d8";
-        margin-right: 5px;
-        vertical-align: sub; }
-      .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover, .mdl-data-table th.mdl-data-table__header--sorted-descending:hover {
-        cursor: pointer; }
-        .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before, .mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before {
-          color: rgba(0, 0, 0, 0.26); }
-    .mdl-data-table th.mdl-data-table__header--sorted-descending:before {
-      content: "\e5db"; }
-
-.mdl-data-table__select {
-  width: 16px; }
-
-.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric {
-  text-align: left; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-dialog {
-  border: none;
-  box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2);
-  width: 280px; }
-  .mdl-dialog__title {
-    padding: 24px 24px 0;
-    margin: 0;
-    font-size: 2.5rem; }
-  .mdl-dialog__actions {
-    padding: 8px 8px 8px 24px;
-    display: -webkit-flex;
-    display: -ms-flexbox;
-    display: flex;
-    -webkit-flex-direction: row-reverse;
-        -ms-flex-direction: row-reverse;
-            flex-direction: row-reverse;
-    -webkit-flex-wrap: wrap;
-        -ms-flex-wrap: wrap;
-            flex-wrap: wrap; }
-    .mdl-dialog__actions > * {
-      margin-right: 8px;
-      height: 36px; }
-      .mdl-dialog__actions > *:first-child {
-        margin-right: 0; }
-    .mdl-dialog__actions--full-width {
-      padding: 0 0 8px 0; }
-      .mdl-dialog__actions--full-width > * {
-        height: 48px;
-        -webkit-flex: 0 0 100%;
-            -ms-flex: 0 0 100%;
-                flex: 0 0 100%;
-        padding-right: 16px;
-        margin-right: 0;
-        text-align: right; }
-  .mdl-dialog__content {
-    padding: 20px 24px 24px 24px;
-    color: rgba(0,0,0, 0.54); }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-mega-footer {
-  padding: 16px 40px;
-  color: rgb(158,158,158);
-  background-color: rgb(66,66,66); }
-
-.mdl-mega-footer--top-section:after,
-.mdl-mega-footer--middle-section:after,
-.mdl-mega-footer--bottom-section:after,
-.mdl-mega-footer__top-section:after,
-.mdl-mega-footer__middle-section:after,
-.mdl-mega-footer__bottom-section:after {
-  content: '';
-  display: block;
-  clear: both; }
-
-.mdl-mega-footer--left-section,
-.mdl-mega-footer__left-section {
-  margin-bottom: 16px; }
-
-.mdl-mega-footer--right-section,
-.mdl-mega-footer__right-section {
-  margin-bottom: 16px; }
-
-.mdl-mega-footer--right-section a,
-.mdl-mega-footer__right-section a {
-  display: block;
-  margin-bottom: 16px;
-  color: inherit;
-  text-decoration: none; }
-
-@media screen and (min-width: 760px) {
-  .mdl-mega-footer--left-section,
-  .mdl-mega-footer__left-section {
-    float: left; }
-  .mdl-mega-footer--right-section,
-  .mdl-mega-footer__right-section {
-    float: right; }
-  .mdl-mega-footer--right-section a,
-  .mdl-mega-footer__right-section a {
-    display: inline-block;
-    margin-left: 16px;
-    line-height: 36px;
-    vertical-align: middle; } }
-
-.mdl-mega-footer--social-btn,
-.mdl-mega-footer__social-btn {
-  width: 36px;
-  height: 36px;
-  padding: 0;
-  margin: 0;
-  background-color: rgb(158,158,158);
-  border: none; }
-
-.mdl-mega-footer--drop-down-section,
-.mdl-mega-footer__drop-down-section {
-  display: block;
-  position: relative; }
-
-@media screen and (min-width: 760px) {
-  .mdl-mega-footer--drop-down-section,
-  .mdl-mega-footer__drop-down-section {
-    width: 33%; }
-  .mdl-mega-footer--drop-down-section:nth-child(1),
-  .mdl-mega-footer--drop-down-section:nth-child(2),
-  .mdl-mega-footer__drop-down-section:nth-child(1),
-  .mdl-mega-footer__drop-down-section:nth-child(2) {
-    float: left; }
-  .mdl-mega-footer--drop-down-section:nth-child(3),
-  .mdl-mega-footer__drop-down-section:nth-child(3) {
-    float: right; }
-    .mdl-mega-footer--drop-down-section:nth-child(3):after,
-    .mdl-mega-footer__drop-down-section:nth-child(3):after {
-      clear: right; }
-  .mdl-mega-footer--drop-down-section:nth-child(4),
-  .mdl-mega-footer__drop-down-section:nth-child(4) {
-    clear: right;
-    float: right; }
-  .mdl-mega-footer--middle-section:after,
-  .mdl-mega-footer__middle-section:after {
-    content: '';
-    display: block;
-    clear: both; }
-  .mdl-mega-footer--bottom-section,
-  .mdl-mega-footer__bottom-section {
-    padding-top: 0; } }
-
-@media screen and (min-width: 1024px) {
-  .mdl-mega-footer--drop-down-section,
-  .mdl-mega-footer--drop-down-section:nth-child(3),
-  .mdl-mega-footer--drop-down-section:nth-child(4),
-  .mdl-mega-footer__drop-down-section,
-  .mdl-mega-footer__drop-down-section:nth-child(3),
-  .mdl-mega-footer__drop-down-section:nth-child(4) {
-    width: 24%;
-    float: left; } }
-
-.mdl-mega-footer--heading-checkbox,
-.mdl-mega-footer__heading-checkbox {
-  position: absolute;
-  width: 100%;
-  height: 55.8px;
-  padding: 32px;
-  margin: 0;
-  margin-top: -16px;
-  cursor: pointer;
-  z-index: 1;
-  opacity: 0; }
-  .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,
-  .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,
-  .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,
-  .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {
-    font-family: 'Material Icons';
-    content: '\E5CE'; }
-
-.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,
-.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,
-.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,
-.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,
-.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,
-.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,
-.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,
-.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list {
-  display: none; }
-
-.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,
-.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,
-.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,
-.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {
-  font-family: 'Material Icons';
-  content: '\E5CF'; }
-
-.mdl-mega-footer--heading,
-.mdl-mega-footer__heading {
-  position: relative;
-  width: 100%;
-  padding-right: 39.8px;
-  margin-bottom: 16px;
-  box-sizing: border-box;
-  font-size: 14px;
-  line-height: 23.8px;
-  font-weight: 500;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
-  color: rgb(224,224,224); }
-
-.mdl-mega-footer--heading:after,
-.mdl-mega-footer__heading:after {
-  content: '';
-  position: absolute;
-  top: 0;
-  right: 0;
-  display: block;
-  width: 23.8px;
-  height: 23.8px;
-  background-size: cover; }
-
-.mdl-mega-footer--link-list,
-.mdl-mega-footer__link-list {
-  list-style: none;
-  margin: 0;
-  padding: 0;
-  margin-bottom: 32px; }
-  .mdl-mega-footer--link-list:after,
-  .mdl-mega-footer__link-list:after {
-    clear: both;
-    display: block;
-    content: ''; }
-
-.mdl-mega-footer--link-list li,
-.mdl-mega-footer__link-list li {
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0;
-  line-height: 20px; }
-
-.mdl-mega-footer--link-list a,
-.mdl-mega-footer__link-list a {
-  color: inherit;
-  text-decoration: none;
-  white-space: nowrap; }
-
-@media screen and (min-width: 760px) {
-  .mdl-mega-footer--heading-checkbox,
-  .mdl-mega-footer__heading-checkbox {
-    display: none; }
-    .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,
-    .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,
-    .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,
-    .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {
-      content: ''; }
-  .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,
-  .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,
-  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,
-  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,
-  .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,
-  .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,
-  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,
-  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list {
-    display: block; }
-  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,
-  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,
-  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,
-  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {
-    content: ''; } }
-
-.mdl-mega-footer--bottom-section,
-.mdl-mega-footer__bottom-section {
-  padding-top: 16px;
-  margin-bottom: 16px; }
-
-.mdl-logo {
-  margin-bottom: 16px;
-  color: white; }
-
-.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li,
-.mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li {
-  float: left;
-  margin-bottom: 0;
-  margin-right: 16px; }
-
-@media screen and (min-width: 760px) {
-  .mdl-logo {
-    float: left;
-    margin-bottom: 0;
-    margin-right: 16px; } }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-mini-footer {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-flow: row wrap;
-      -ms-flex-flow: row wrap;
-          flex-flow: row wrap;
-  -webkit-justify-content: space-between;
-      -ms-flex-pack: justify;
-          justify-content: space-between;
-  padding: 32px 16px;
-  color: rgb(158,158,158);
-  background-color: rgb(66,66,66); }
-  .mdl-mini-footer:after {
-    content: '';
-    display: block; }
-  .mdl-mini-footer .mdl-logo {
-    line-height: 36px; }
-
-.mdl-mini-footer--link-list,
-.mdl-mini-footer__link-list {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-flow: row nowrap;
-      -ms-flex-flow: row nowrap;
-          flex-flow: row nowrap;
-  list-style: none;
-  margin: 0;
-  padding: 0; }
-  .mdl-mini-footer--link-list li,
-  .mdl-mini-footer__link-list li {
-    margin-bottom: 0;
-    margin-right: 16px; }
-    @media screen and (min-width: 760px) {
-      .mdl-mini-footer--link-list li,
-      .mdl-mini-footer__link-list li {
-        line-height: 36px; } }
-  .mdl-mini-footer--link-list a,
-  .mdl-mini-footer__link-list a {
-    color: inherit;
-    text-decoration: none;
-    white-space: nowrap; }
-
-.mdl-mini-footer--left-section,
-.mdl-mini-footer__left-section {
-  display: inline-block;
-  -webkit-order: 0;
-      -ms-flex-order: 0;
-          order: 0; }
-
-.mdl-mini-footer--right-section,
-.mdl-mini-footer__right-section {
-  display: inline-block;
-  -webkit-order: 1;
-      -ms-flex-order: 1;
-          order: 1; }
-
-.mdl-mini-footer--social-btn,
-.mdl-mini-footer__social-btn {
-  width: 36px;
-  height: 36px;
-  padding: 0;
-  margin: 0;
-  background-color: rgb(158,158,158);
-  border: none; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-icon-toggle {
-  position: relative;
-  z-index: 1;
-  vertical-align: middle;
-  display: inline-block;
-  height: 32px;
-  margin: 0;
-  padding: 0; }
-
-.mdl-icon-toggle__input {
-  line-height: 32px; }
-  .mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input {
-    position: absolute;
-    width: 0;
-    height: 0;
-    margin: 0;
-    padding: 0;
-    opacity: 0;
-    -ms-appearance: none;
-    -moz-appearance: none;
-    -webkit-appearance: none;
-    appearance: none;
-    border: none; }
-
-.mdl-icon-toggle__label {
-  display: inline-block;
-  position: relative;
-  cursor: pointer;
-  height: 32px;
-  width: 32px;
-  min-width: 32px;
-  color: rgb(97,97,97);
-  border-radius: 50%;
-  padding: 0;
-  margin-left: 0;
-  margin-right: 0;
-  text-align: center;
-  background-color: transparent;
-  will-change: background-color;
-  transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); }
-  .mdl-icon-toggle__label.material-icons {
-    line-height: 32px;
-    font-size: 24px; }
-  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
-    color: rgb(63,81,181); }
-  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
-    color: rgba(0,0,0, 0.26);
-    cursor: auto;
-    transition: none; }
-  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
-    background-color: rgba(0,0,0, 0.12); }
-  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
-    background-color: rgba(63,81,181, 0.26); }
-
-.mdl-icon-toggle__ripple-container {
-  position: absolute;
-  z-index: 2;
-  top: -2px;
-  left: -2px;
-  box-sizing: border-box;
-  width: 36px;
-  height: 36px;
-  border-radius: 50%;
-  cursor: pointer;
-  overflow: hidden;
-  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
-  .mdl-icon-toggle__ripple-container .mdl-ripple {
-    background: rgb(97,97,97); }
-  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container {
-    cursor: auto; }
-  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
-    background: transparent; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-list {
-  display: block;
-  padding: 8px 0;
-  list-style: none; }
-
-.mdl-list__item {
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 16px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0.04em;
-  line-height: 1;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  min-height: 48px;
-  box-sizing: border-box;
-  -webkit-flex-direction: row;
-      -ms-flex-direction: row;
-          flex-direction: row;
-  -webkit-flex-wrap: nowrap;
-      -ms-flex-wrap: nowrap;
-          flex-wrap: nowrap;
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-  padding: 16px;
-  cursor: default;
-  color: rgba(0,0,0, 0.87);
-  overflow: hidden; }
-  .mdl-list__item .mdl-list__item-primary-content {
-    -webkit-order: 0;
-        -ms-flex-order: 0;
-            order: 0;
-    -webkit-flex-grow: 2;
-        -ms-flex-positive: 2;
-            flex-grow: 2;
-    text-decoration: none;
-    box-sizing: border-box;
-    display: -webkit-flex;
-    display: -ms-flexbox;
-    display: flex;
-    -webkit-align-items: center;
-        -ms-flex-align: center;
-            align-items: center; }
-    .mdl-list__item .mdl-list__item-primary-content .mdl-list__item-icon {
-      margin-right: 32px; }
-    .mdl-list__item .mdl-list__item-primary-content .mdl-list__item-avatar {
-      margin-right: 16px; }
-  .mdl-list__item .mdl-list__item-secondary-content {
-    display: -webkit-flex;
-    display: -ms-flexbox;
-    display: flex;
-    -webkit-flex-flow: column;
-        -ms-flex-flow: column;
-            flex-flow: column;
-    -webkit-align-items: flex-end;
-        -ms-flex-align: end;
-            align-items: flex-end;
-    margin-left: 16px; }
-    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-action label {
-      display: inline; }
-    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-info {
-      font-size: 12px;
-      font-weight: 400;
-      line-height: 1;
-      letter-spacing: 0;
-      color: rgba(0,0,0, 0.54); }
-    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-sub-header {
-      padding: 0 0 0 16px; }
-
-.mdl-list__item-icon,
-.mdl-list__item-icon.material-icons {
-  height: 24px;
-  width: 24px;
-  font-size: 24px;
-  box-sizing: border-box;
-  color: rgb(117,117,117); }
-
-.mdl-list__item-avatar,
-.mdl-list__item-avatar.material-icons {
-  height: 40px;
-  width: 40px;
-  box-sizing: border-box;
-  border-radius: 50%;
-  background-color: rgb(117,117,117);
-  font-size: 40px;
-  color: white; }
-
-.mdl-list__item--two-line {
-  height: 72px; }
-  .mdl-list__item--two-line .mdl-list__item-primary-content {
-    height: 36px;
-    line-height: 20px;
-    display: block; }
-    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-avatar {
-      float: left; }
-    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-icon {
-      float: left;
-      margin-top: 6px; }
-    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-secondary-content {
-      height: 36px; }
-    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-sub-title {
-      font-size: 14px;
-      font-weight: 400;
-      line-height: 24px;
-      letter-spacing: 0;
-      line-height: 18px;
-      color: rgba(0,0,0, 0.54);
-      display: block;
-      padding: 0; }
-
-.mdl-list__item--three-line {
-  height: 88px; }
-  .mdl-list__item--three-line .mdl-list__item-primary-content {
-    height: 52px;
-    line-height: 20px;
-    display: block; }
-    .mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-avatar,
-    .mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-icon {
-      float: left; }
-  .mdl-list__item--three-line .mdl-list__item-secondary-content {
-    height: 52px; }
-  .mdl-list__item--three-line .mdl-list__item-text-body {
-    font-size: 14px;
-    font-weight: 400;
-    line-height: 24px;
-    letter-spacing: 0;
-    line-height: 18px;
-    height: 52px;
-    color: rgba(0,0,0, 0.54);
-    display: block;
-    padding: 0; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-menu__container {
-  display: block;
-  margin: 0;
-  padding: 0;
-  border: none;
-  position: absolute;
-  overflow: visible;
-  height: 0;
-  width: 0;
-  visibility: hidden;
-  z-index: -1; }
-  .mdl-menu__container.is-visible, .mdl-menu__container.is-animating {
-    z-index: 999;
-    visibility: visible; }
-
-.mdl-menu__outline {
-  display: block;
-  background: rgb(255,255,255);
-  margin: 0;
-  padding: 0;
-  border: none;
-  border-radius: 2px;
-  position: absolute;
-  top: 0;
-  left: 0;
-  overflow: hidden;
-  opacity: 0;
-  -webkit-transform: scale(0);
-          transform: scale(0);
-  -webkit-transform-origin: 0 0;
-          transform-origin: 0 0;
-  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
-  will-change: transform;
-  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  z-index: -1; }
-  .mdl-menu__container.is-visible .mdl-menu__outline {
-    opacity: 1;
-    -webkit-transform: scale(1);
-            transform: scale(1);
-    z-index: 999; }
-  .mdl-menu__outline.mdl-menu--bottom-right {
-    -webkit-transform-origin: 100% 0;
-            transform-origin: 100% 0; }
-  .mdl-menu__outline.mdl-menu--top-left {
-    -webkit-transform-origin: 0 100%;
-            transform-origin: 0 100%; }
-  .mdl-menu__outline.mdl-menu--top-right {
-    -webkit-transform-origin: 100% 100%;
-            transform-origin: 100% 100%; }
-
-.mdl-menu {
-  position: absolute;
-  list-style: none;
-  top: 0;
-  left: 0;
-  height: auto;
-  width: auto;
-  min-width: 124px;
-  padding: 8px 0;
-  margin: 0;
-  opacity: 0;
-  clip: rect(0 0 0 0);
-  z-index: -1; }
-  .mdl-menu__container.is-visible .mdl-menu {
-    opacity: 1;
-    z-index: 999; }
-  .mdl-menu.is-animating {
-    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), clip 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
-  .mdl-menu.mdl-menu--bottom-right {
-    left: auto;
-    right: 0; }
-  .mdl-menu.mdl-menu--top-left {
-    top: auto;
-    bottom: 0; }
-  .mdl-menu.mdl-menu--top-right {
-    top: auto;
-    left: auto;
-    bottom: 0;
-    right: 0; }
-  .mdl-menu.mdl-menu--unaligned {
-    top: auto;
-    left: auto; }
-
-.mdl-menu__item {
-  display: block;
-  border: none;
-  color: rgba(0,0,0, 0.87);
-  background-color: transparent;
-  text-align: left;
-  margin: 0;
-  padding: 0 16px;
-  outline-color: rgb(189,189,189);
-  position: relative;
-  overflow: hidden;
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0;
-  text-decoration: none;
-  cursor: pointer;
-  height: 48px;
-  line-height: 48px;
-  white-space: nowrap;
-  opacity: 0;
-  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none; }
-  .mdl-menu__container.is-visible .mdl-menu__item {
-    opacity: 1; }
-  .mdl-menu__item::-moz-focus-inner {
-    border: 0; }
-  .mdl-menu__item--full-bleed-divider {
-    border-bottom: 1px solid rgba(0,0,0, 0.12); }
-  .mdl-menu__item[disabled], .mdl-menu__item[data-mdl-disabled] {
-    color: rgb(189,189,189);
-    background-color: transparent;
-    cursor: auto; }
-    .mdl-menu__item[disabled]:hover, .mdl-menu__item[data-mdl-disabled]:hover {
-      background-color: transparent; }
-    .mdl-menu__item[disabled]:focus, .mdl-menu__item[data-mdl-disabled]:focus {
-      background-color: transparent; }
-    .mdl-menu__item[disabled] .mdl-ripple, .mdl-menu__item[data-mdl-disabled] .mdl-ripple {
-      background: transparent; }
-  .mdl-menu__item:hover {
-    background-color: rgb(238,238,238); }
-  .mdl-menu__item:focus {
-    outline: none;
-    background-color: rgb(238,238,238); }
-  .mdl-menu__item:active {
-    background-color: rgb(224,224,224); }
-
-.mdl-menu__item--ripple-container {
-  display: block;
-  height: 100%;
-  left: 0px;
-  position: absolute;
-  top: 0px;
-  width: 100%;
-  z-index: 0;
-  overflow: hidden; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-progress {
-  display: block;
-  position: relative;
-  height: 4px;
-  width: 500px;
-  max-width: 100%; }
-
-.mdl-progress > .bar {
-  display: block;
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  width: 0%;
-  transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1); }
-
-.mdl-progress > .progressbar {
-  background-color: rgb(63,81,181);
-  z-index: 1;
-  left: 0; }
-
-.mdl-progress > .bufferbar {
-  background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181));
-  z-index: 0;
-  left: 0; }
-
-.mdl-progress > .auxbar {
-  right: 0; }
-
-@supports (-webkit-appearance: none) {
-  .mdl-progress:not(.mdl-progress--indeterminate):not(.mdl-progress--indeterminate) > .auxbar,
-  .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar {
-    background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181));
-    -webkit-mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo=");
-            mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo="); } }
-
-.mdl-progress:not(.mdl-progress--indeterminate) > .auxbar,
-.mdl-progress:not(.mdl-progress__indeterminate) > .auxbar {
-  background-image: linear-gradient(to right, rgba(255,255,255, 0.9), rgba(255,255,255, 0.9)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181)); }
-
-.mdl-progress.mdl-progress--indeterminate > .bar1,
-.mdl-progress.mdl-progress__indeterminate > .bar1 {
-  background-color: rgb(63,81,181);
-  -webkit-animation-name: indeterminate1;
-          animation-name: indeterminate1;
-  -webkit-animation-duration: 2s;
-          animation-duration: 2s;
-  -webkit-animation-iteration-count: infinite;
-          animation-iteration-count: infinite;
-  -webkit-animation-timing-function: linear;
-          animation-timing-function: linear; }
-
-.mdl-progress.mdl-progress--indeterminate > .bar3,
-.mdl-progress.mdl-progress__indeterminate > .bar3 {
-  background-image: none;
-  background-color: rgb(63,81,181);
-  -webkit-animation-name: indeterminate2;
-          animation-name: indeterminate2;
-  -webkit-animation-duration: 2s;
-          animation-duration: 2s;
-  -webkit-animation-iteration-count: infinite;
-          animation-iteration-count: infinite;
-  -webkit-animation-timing-function: linear;
-          animation-timing-function: linear; }
-
-@-webkit-keyframes indeterminate1 {
-  0% {
-    left: 0%;
-    width: 0%; }
-  50% {
-    left: 25%;
-    width: 75%; }
-  75% {
-    left: 100%;
-    width: 0%; } }
-
-@keyframes indeterminate1 {
-  0% {
-    left: 0%;
-    width: 0%; }
-  50% {
-    left: 25%;
-    width: 75%; }
-  75% {
-    left: 100%;
-    width: 0%; } }
-
-@-webkit-keyframes indeterminate2 {
-  0% {
-    left: 0%;
-    width: 0%; }
-  50% {
-    left: 0%;
-    width: 0%; }
-  75% {
-    left: 0%;
-    width: 25%; }
-  100% {
-    left: 100%;
-    width: 0%; } }
-
-@keyframes indeterminate2 {
-  0% {
-    left: 0%;
-    width: 0%; }
-  50% {
-    left: 0%;
-    width: 0%; }
-  75% {
-    left: 0%;
-    width: 25%; }
-  100% {
-    left: 100%;
-    width: 0%; } }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-navigation {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-wrap: nowrap;
-      -ms-flex-wrap: nowrap;
-          flex-wrap: nowrap;
-  box-sizing: border-box; }
-
-.mdl-navigation__link {
-  color: rgb(66,66,66);
-  text-decoration: none;
-  margin: 0;
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 24px;
-  letter-spacing: 0;
-  opacity: 0.87; }
-  .mdl-navigation__link .material-icons {
-    vertical-align: middle; }
-
-.mdl-layout {
-  width: 100%;
-  height: 100%;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-direction: column;
-      -ms-flex-direction: column;
-          flex-direction: column;
-  overflow-y: auto;
-  overflow-x: hidden;
-  position: relative;
-  -webkit-overflow-scrolling: touch; }
-
-.mdl-layout.is-small-screen .mdl-layout--large-screen-only {
-  display: none; }
-
-.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only {
-  display: none; }
-
-.mdl-layout__container {
-  position: absolute;
-  width: 100%;
-  height: 100%; }
-
-.mdl-layout__title,
-.mdl-layout-title {
-  display: block;
-  position: relative;
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  font-size: 20px;
-  font-weight: 500;
-  line-height: 1;
-  letter-spacing: 0.02em;
-  font-weight: 400;
-  box-sizing: border-box; }
-
-.mdl-layout-spacer {
-  -webkit-flex-grow: 1;
-      -ms-flex-positive: 1;
-          flex-grow: 1; }
-
-.mdl-layout__drawer {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-direction: column;
-      -ms-flex-direction: column;
-          flex-direction: column;
-  -webkit-flex-wrap: nowrap;
-      -ms-flex-wrap: nowrap;
-          flex-wrap: nowrap;
-  width: 240px;
-  height: 100%;
-  max-height: 100%;
-  position: absolute;
-  top: 0;
-  left: 0;
-  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
-  box-sizing: border-box;
-  border-right: 1px solid rgb(224,224,224);
-  background: rgb(250,250,250);
-  -webkit-transform: translateX(-250px);
-          transform: translateX(-250px);
-  -webkit-transform-style: preserve-3d;
-          transform-style: preserve-3d;
-  will-change: transform;
-  transition-duration: 0.2s;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-property: -webkit-transform;
-  transition-property: transform;
-  transition-property: transform, -webkit-transform;
-  color: rgb(66,66,66);
-  overflow: visible;
-  overflow-y: auto;
-  z-index: 5; }
-  .mdl-layout__drawer.is-visible {
-    -webkit-transform: translateX(0);
-            transform: translateX(0); }
-    .mdl-layout__drawer.is-visible ~ .mdl-layout__content.mdl-layout__content {
-      overflow: hidden; }
-  .mdl-layout__drawer > * {
-    -webkit-flex-shrink: 0;
-        -ms-flex-negative: 0;
-            flex-shrink: 0; }
-  .mdl-layout__drawer > .mdl-layout__title,
-  .mdl-layout__drawer > .mdl-layout-title {
-    line-height: 64px;
-    padding-left: 40px; }
-    @media screen and (max-width: 1024px) {
-      .mdl-layout__drawer > .mdl-layout__title,
-      .mdl-layout__drawer > .mdl-layout-title {
-        line-height: 56px;
-        padding-left: 16px; } }
-  .mdl-layout__drawer .mdl-navigation {
-    -webkit-flex-direction: column;
-        -ms-flex-direction: column;
-            flex-direction: column;
-    -webkit-align-items: stretch;
-        -ms-flex-align: stretch;
-            align-items: stretch;
-    padding-top: 16px; }
-    .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
-      display: block;
-      -webkit-flex-shrink: 0;
-          -ms-flex-negative: 0;
-              flex-shrink: 0;
-      padding: 16px 40px;
-      margin: 0;
-      color: #757575; }
-      @media screen and (max-width: 1024px) {
-        .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
-          padding: 16px 16px; } }
-      .mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover {
-        background-color: rgb(224,224,224); }
-      .mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current {
-        background-color: rgb(224,224,224);
-        color: rgb(0,0,0); }
-  @media screen and (min-width: 1025px) {
-    .mdl-layout--fixed-drawer > .mdl-layout__drawer {
-      -webkit-transform: translateX(0);
-              transform: translateX(0); } }
-
-.mdl-layout__drawer-button {
-  display: block;
-  position: absolute;
-  height: 48px;
-  width: 48px;
-  border: 0;
-  -webkit-flex-shrink: 0;
-      -ms-flex-negative: 0;
-          flex-shrink: 0;
-  overflow: hidden;
-  text-align: center;
-  cursor: pointer;
-  font-size: 26px;
-  line-height: 56px;
-  font-family: Helvetica, Arial, sans-serif;
-  margin: 8px 12px;
-  top: 0;
-  left: 0;
-  color: rgb(255,255,255);
-  z-index: 4; }
-  .mdl-layout__header .mdl-layout__drawer-button {
-    position: absolute;
-    color: rgb(255,255,255);
-    background-color: inherit; }
-    @media screen and (max-width: 1024px) {
-      .mdl-layout__header .mdl-layout__drawer-button {
-        margin: 4px; } }
-  @media screen and (max-width: 1024px) {
-    .mdl-layout__drawer-button {
-      margin: 4px;
-      color: rgba(0, 0, 0, 0.5); } }
-  @media screen and (min-width: 1025px) {
-    .mdl-layout__drawer-button {
-      line-height: 54px; }
-      .mdl-layout--no-desktop-drawer-button .mdl-layout__drawer-button,
-      .mdl-layout--fixed-drawer > .mdl-layout__drawer-button,
-      .mdl-layout--no-drawer-button .mdl-layout__drawer-button {
-        display: none; } }
-
-.mdl-layout__header {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-direction: column;
-      -ms-flex-direction: column;
-          flex-direction: column;
-  -webkit-flex-wrap: nowrap;
-      -ms-flex-wrap: nowrap;
-          flex-wrap: nowrap;
-  -webkit-justify-content: flex-start;
-      -ms-flex-pack: start;
-          justify-content: flex-start;
-  box-sizing: border-box;
-  -webkit-flex-shrink: 0;
-      -ms-flex-negative: 0;
-          flex-shrink: 0;
-  width: 100%;
-  margin: 0;
-  padding: 0;
-  border: none;
-  min-height: 64px;
-  max-height: 1000px;
-  z-index: 3;
-  background-color: rgb(63,81,181);
-  color: rgb(255,255,255);
-  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
-  transition-duration: 0.2s;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-property: max-height, box-shadow; }
-  @media screen and (max-width: 1024px) {
-    .mdl-layout__header {
-      min-height: 56px; } }
-  .mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen) > .mdl-layout__header {
-    margin-left: 240px;
-    width: calc(100% - 240px); }
-  @media screen and (min-width: 1025px) {
-    .mdl-layout--fixed-drawer > .mdl-layout__header .mdl-layout__header-row {
-      padding-left: 40px; } }
-  .mdl-layout__header > .mdl-layout-icon {
-    position: absolute;
-    left: 40px;
-    top: 16px;
-    height: 32px;
-    width: 32px;
-    overflow: hidden;
-    z-index: 3;
-    display: block; }
-    @media screen and (max-width: 1024px) {
-      .mdl-layout__header > .mdl-layout-icon {
-        left: 16px;
-        top: 12px; } }
-  .mdl-layout.has-drawer .mdl-layout__header > .mdl-layout-icon {
-    display: none; }
-  .mdl-layout__header.is-compact {
-    max-height: 64px; }
-    @media screen and (max-width: 1024px) {
-      .mdl-layout__header.is-compact {
-        max-height: 56px; } }
-  .mdl-layout__header.is-compact.has-tabs {
-    height: 112px; }
-    @media screen and (max-width: 1024px) {
-      .mdl-layout__header.is-compact.has-tabs {
-        min-height: 104px; } }
-  @media screen and (max-width: 1024px) {
-    .mdl-layout__header {
-      display: none; }
-    .mdl-layout--fixed-header > .mdl-layout__header {
-      display: -webkit-flex;
-      display: -ms-flexbox;
-      display: flex; } }
-
-.mdl-layout__header--transparent.mdl-layout__header--transparent {
-  background-color: transparent;
-  box-shadow: none; }
-
-.mdl-layout__header--seamed {
-  box-shadow: none; }
-
-.mdl-layout__header--scroll {
-  box-shadow: none; }
-
-.mdl-layout__header--waterfall {
-  box-shadow: none;
-  overflow: hidden; }
-  .mdl-layout__header--waterfall.is-casting-shadow {
-    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
-  .mdl-layout__header--waterfall.mdl-layout__header--waterfall-hide-top {
-    -webkit-justify-content: flex-end;
-        -ms-flex-pack: end;
-            justify-content: flex-end; }
-
-.mdl-layout__header-row {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-direction: row;
-      -ms-flex-direction: row;
-          flex-direction: row;
-  -webkit-flex-wrap: nowrap;
-      -ms-flex-wrap: nowrap;
-          flex-wrap: nowrap;
-  -webkit-flex-shrink: 0;
-      -ms-flex-negative: 0;
-          flex-shrink: 0;
-  box-sizing: border-box;
-  -webkit-align-self: stretch;
-      -ms-flex-item-align: stretch;
-          align-self: stretch;
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-  height: 64px;
-  margin: 0;
-  padding: 0 40px 0 80px; }
-  .mdl-layout--no-drawer-button .mdl-layout__header-row {
-    padding-left: 40px; }
-  @media screen and (min-width: 1025px) {
-    .mdl-layout--no-desktop-drawer-button .mdl-layout__header-row {
-      padding-left: 40px; } }
-  @media screen and (max-width: 1024px) {
-    .mdl-layout__header-row {
-      height: 56px;
-      padding: 0 16px 0 72px; }
-      .mdl-layout--no-drawer-button .mdl-layout__header-row {
-        padding-left: 16px; } }
-  .mdl-layout__header-row > * {
-    -webkit-flex-shrink: 0;
-        -ms-flex-negative: 0;
-            flex-shrink: 0; }
-  .mdl-layout__header--scroll .mdl-layout__header-row {
-    width: 100%; }
-  .mdl-layout__header-row .mdl-navigation {
-    margin: 0;
-    padding: 0;
-    height: 64px;
-    -webkit-flex-direction: row;
-        -ms-flex-direction: row;
-            flex-direction: row;
-    -webkit-align-items: center;
-        -ms-flex-align: center;
-            align-items: center; }
-    @media screen and (max-width: 1024px) {
-      .mdl-layout__header-row .mdl-navigation {
-        height: 56px; } }
-  .mdl-layout__header-row .mdl-navigation__link {
-    display: block;
-    color: rgb(255,255,255);
-    line-height: 64px;
-    padding: 0 24px; }
-    @media screen and (max-width: 1024px) {
-      .mdl-layout__header-row .mdl-navigation__link {
-        line-height: 56px;
-        padding: 0 16px; } }
-
-.mdl-layout__obfuscator {
-  background-color: transparent;
-  position: absolute;
-  top: 0;
-  left: 0;
-  height: 100%;
-  width: 100%;
-  z-index: 4;
-  visibility: hidden;
-  transition-property: background-color;
-  transition-duration: 0.2s;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
-  .mdl-layout__obfuscator.is-visible {
-    background-color: rgba(0, 0, 0, 0.5);
-    visibility: visible; }
-  @supports (pointer-events: auto) {
-    .mdl-layout__obfuscator {
-      background-color: rgba(0, 0, 0, 0.5);
-      opacity: 0;
-      transition-property: opacity;
-      visibility: visible;
-      pointer-events: none; }
-      .mdl-layout__obfuscator.is-visible {
-        pointer-events: auto;
-        opacity: 1; } }
-
-.mdl-layout__content {
-  -ms-flex: 0 1 auto;
-  position: relative;
-  display: inline-block;
-  overflow-y: auto;
-  overflow-x: hidden;
-  -webkit-flex-grow: 1;
-      -ms-flex-positive: 1;
-          flex-grow: 1;
-  z-index: 1;
-  -webkit-overflow-scrolling: touch; }
-  .mdl-layout--fixed-drawer > .mdl-layout__content {
-    margin-left: 240px; }
-  .mdl-layout__container.has-scrolling-header .mdl-layout__content {
-    overflow: visible; }
-  @media screen and (max-width: 1024px) {
-    .mdl-layout--fixed-drawer > .mdl-layout__content {
-      margin-left: 0; }
-    .mdl-layout__container.has-scrolling-header .mdl-layout__content {
-      overflow-y: auto;
-      overflow-x: hidden; } }
-
-.mdl-layout__tab-bar {
-  height: 96px;
-  margin: 0;
-  width: calc(100% - 112px);
-  padding: 0 0 0 56px;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  background-color: rgb(63,81,181);
-  overflow-y: hidden;
-  overflow-x: scroll; }
-  .mdl-layout__tab-bar::-webkit-scrollbar {
-    display: none; }
-  .mdl-layout--no-drawer-button .mdl-layout__tab-bar {
-    padding-left: 16px;
-    width: calc(100% - 32px); }
-  @media screen and (min-width: 1025px) {
-    .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar {
-      padding-left: 16px;
-      width: calc(100% - 32px); } }
-  @media screen and (max-width: 1024px) {
-    .mdl-layout__tab-bar {
-      width: calc(100% - 60px);
-      padding: 0 0 0 60px; }
-      .mdl-layout--no-drawer-button .mdl-layout__tab-bar {
-        width: calc(100% - 8px);
-        padding-left: 4px; } }
-  .mdl-layout--fixed-tabs .mdl-layout__tab-bar {
-    padding: 0;
-    overflow: hidden;
-    width: 100%; }
-
-.mdl-layout__tab-bar-container {
-  position: relative;
-  height: 48px;
-  width: 100%;
-  border: none;
-  margin: 0;
-  z-index: 2;
-  -webkit-flex-grow: 0;
-      -ms-flex-positive: 0;
-          flex-grow: 0;
-  -webkit-flex-shrink: 0;
-      -ms-flex-negative: 0;
-          flex-shrink: 0;
-  overflow: hidden; }
-  .mdl-layout__container > .mdl-layout__tab-bar-container {
-    position: absolute;
-    top: 0;
-    left: 0; }
-
-.mdl-layout__tab-bar-button {
-  display: inline-block;
-  position: absolute;
-  top: 0;
-  height: 48px;
-  width: 56px;
-  z-index: 4;
-  text-align: center;
-  background-color: rgb(63,81,181);
-  color: transparent;
-  cursor: pointer;
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none; }
-  .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button,
-  .mdl-layout--no-drawer-button .mdl-layout__tab-bar-button {
-    width: 16px; }
-    .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button .material-icons,
-    .mdl-layout--no-drawer-button .mdl-layout__tab-bar-button .material-icons {
-      position: relative;
-      left: -4px; }
-  @media screen and (max-width: 1024px) {
-    .mdl-layout__tab-bar-button {
-      width: 60px; } }
-  .mdl-layout--fixed-tabs .mdl-layout__tab-bar-button {
-    display: none; }
-  .mdl-layout__tab-bar-button .material-icons {
-    line-height: 48px; }
-  .mdl-layout__tab-bar-button.is-active {
-    color: rgb(255,255,255); }
-
-.mdl-layout__tab-bar-left-button {
-  left: 0; }
-
-.mdl-layout__tab-bar-right-button {
-  right: 0; }
-
-.mdl-layout__tab {
-  margin: 0;
-  border: none;
-  padding: 0 24px 0 24px;
-  float: left;
-  position: relative;
-  display: block;
-  -webkit-flex-grow: 0;
-      -ms-flex-positive: 0;
-          flex-grow: 0;
-  -webkit-flex-shrink: 0;
-      -ms-flex-negative: 0;
-          flex-shrink: 0;
-  text-decoration: none;
-  height: 48px;
-  line-height: 48px;
-  text-align: center;
-  font-weight: 500;
-  font-size: 14px;
-  text-transform: uppercase;
-  color: rgba(255,255,255, 0.6);
-  overflow: hidden; }
-  @media screen and (max-width: 1024px) {
-    .mdl-layout__tab {
-      padding: 0 12px 0 12px; } }
-  .mdl-layout--fixed-tabs .mdl-layout__tab {
-    float: none;
-    -webkit-flex-grow: 1;
-        -ms-flex-positive: 1;
-            flex-grow: 1;
-    padding: 0; }
-  .mdl-layout.is-upgraded .mdl-layout__tab.is-active {
-    color: rgb(255,255,255); }
-  .mdl-layout.is-upgraded .mdl-layout__tab.is-active::after {
-    height: 2px;
-    width: 100%;
-    display: block;
-    content: " ";
-    bottom: 0;
-    left: 0;
-    position: absolute;
-    background: rgb(255,64,129);
-    -webkit-animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
-            animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
-    transition: all 1s cubic-bezier(0.4, 0, 1, 1); }
-  .mdl-layout__tab .mdl-layout__tab-ripple-container {
-    display: block;
-    position: absolute;
-    height: 100%;
-    width: 100%;
-    left: 0;
-    top: 0;
-    z-index: 1;
-    overflow: hidden; }
-    .mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple {
-      background-color: rgb(255,255,255); }
-
-.mdl-layout__tab-panel {
-  display: block; }
-  .mdl-layout.is-upgraded .mdl-layout__tab-panel {
-    display: none; }
-  .mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active {
-    display: block; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-radio {
-  position: relative;
-  font-size: 16px;
-  line-height: 24px;
-  display: inline-block;
-  vertical-align: middle;
-  box-sizing: border-box;
-  height: 24px;
-  margin: 0;
-  padding-left: 0; }
-  .mdl-radio.is-upgraded {
-    padding-left: 24px; }
-
-.mdl-radio__button {
-  line-height: 24px; }
-  .mdl-radio.is-upgraded .mdl-radio__button {
-    position: absolute;
-    width: 0;
-    height: 0;
-    margin: 0;
-    padding: 0;
-    opacity: 0;
-    -ms-appearance: none;
-    -moz-appearance: none;
-    -webkit-appearance: none;
-    appearance: none;
-    border: none; }
-
-.mdl-radio__outer-circle {
-  position: absolute;
-  top: 4px;
-  left: 0;
-  display: inline-block;
-  box-sizing: border-box;
-  width: 16px;
-  height: 16px;
-  margin: 0;
-  cursor: pointer;
-  border: 2px solid rgba(0,0,0, 0.54);
-  border-radius: 50%;
-  z-index: 2; }
-  .mdl-radio.is-checked .mdl-radio__outer-circle {
-    border: 2px solid rgb(63,81,181); }
-  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,
-  .mdl-radio.is-disabled .mdl-radio__outer-circle {
-    border: 2px solid rgba(0,0,0, 0.26);
-    cursor: auto; }
-
-.mdl-radio__inner-circle {
-  position: absolute;
-  z-index: 1;
-  margin: 0;
-  top: 8px;
-  left: 4px;
-  box-sizing: border-box;
-  width: 8px;
-  height: 8px;
-  cursor: pointer;
-  transition-duration: 0.28s;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-property: -webkit-transform;
-  transition-property: transform;
-  transition-property: transform, -webkit-transform;
-  -webkit-transform: scale(0, 0);
-          transform: scale(0, 0);
-  border-radius: 50%;
-  background: rgb(63,81,181); }
-  .mdl-radio.is-checked .mdl-radio__inner-circle {
-    -webkit-transform: scale(1, 1);
-            transform: scale(1, 1); }
-  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,
-  .mdl-radio.is-disabled .mdl-radio__inner-circle {
-    background: rgba(0,0,0, 0.26);
-    cursor: auto; }
-  .mdl-radio.is-focused .mdl-radio__inner-circle {
-    box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1); }
-
-.mdl-radio__label {
-  cursor: pointer; }
-  fieldset[disabled] .mdl-radio .mdl-radio__label,
-  .mdl-radio.is-disabled .mdl-radio__label {
-    color: rgba(0,0,0, 0.26);
-    cursor: auto; }
-
-.mdl-radio__ripple-container {
-  position: absolute;
-  z-index: 2;
-  top: -9px;
-  left: -13px;
-  box-sizing: border-box;
-  width: 42px;
-  height: 42px;
-  border-radius: 50%;
-  cursor: pointer;
-  overflow: hidden;
-  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
-  .mdl-radio__ripple-container .mdl-ripple {
-    background: rgb(63,81,181); }
-  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container,
-  .mdl-radio.is-disabled .mdl-radio__ripple-container {
-    cursor: auto; }
-  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,
-  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
-    background: transparent; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-_:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded {
-  -ms-appearance: none;
-  height: 32px;
-  margin: 0; }
-
-.mdl-slider {
-  width: calc(100% - 40px);
-  margin: 0 20px; }
-  .mdl-slider.is-upgraded {
-    -webkit-appearance: none;
-    -moz-appearance: none;
-    appearance: none;
-    height: 2px;
-    background: transparent;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-        user-select: none;
-    outline: 0;
-    padding: 0;
-    color: rgb(63,81,181);
-    -webkit-align-self: center;
-        -ms-flex-item-align: center;
-                -ms-grid-row-align: center;
-            align-self: center;
-    z-index: 1;
-    cursor: pointer;
-    /**************************** Tracks ****************************/
-    /**************************** Thumbs ****************************/
-    /**************************** 0-value ****************************/
-    /**************************** Disabled ****************************/ }
-    .mdl-slider.is-upgraded::-moz-focus-outer {
-      border: 0; }
-    .mdl-slider.is-upgraded::-ms-tooltip {
-      display: none; }
-    .mdl-slider.is-upgraded::-webkit-slider-runnable-track {
-      background: transparent; }
-    .mdl-slider.is-upgraded::-moz-range-track {
-      background: transparent;
-      border: none; }
-    .mdl-slider.is-upgraded::-ms-track {
-      background: none;
-      color: transparent;
-      height: 2px;
-      width: 100%;
-      border: none; }
-    .mdl-slider.is-upgraded::-ms-fill-lower {
-      padding: 0;
-      background: linear-gradient(to right, transparent, transparent 16px, rgb(63,81,181) 16px, rgb(63,81,181) 0); }
-    .mdl-slider.is-upgraded::-ms-fill-upper {
-      padding: 0;
-      background: linear-gradient(to left, transparent, transparent 16px, rgba(0,0,0, 0.26) 16px, rgba(0,0,0, 0.26) 0); }
-    .mdl-slider.is-upgraded::-webkit-slider-thumb {
-      -webkit-appearance: none;
-      width: 12px;
-      height: 12px;
-      box-sizing: border-box;
-      border-radius: 50%;
-      background: rgb(63,81,181);
-      border: none;
-      transition: border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);
-      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);
-      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1); }
-    .mdl-slider.is-upgraded::-moz-range-thumb {
-      -moz-appearance: none;
-      width: 12px;
-      height: 12px;
-      box-sizing: border-box;
-      border-radius: 50%;
-      background-image: none;
-      background: rgb(63,81,181);
-      border: none; }
-    .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
-      box-shadow: 0 0 0 10px rgba(63,81,181, 0.26); }
-    .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
-      box-shadow: 0 0 0 10px rgba(63,81,181, 0.26); }
-    .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
-      background-image: none;
-      background: rgb(63,81,181);
-      -webkit-transform: scale(1.5);
-              transform: scale(1.5); }
-    .mdl-slider.is-upgraded:active::-moz-range-thumb {
-      background-image: none;
-      background: rgb(63,81,181);
-      transform: scale(1.5); }
-    .mdl-slider.is-upgraded::-ms-thumb {
-      width: 32px;
-      height: 32px;
-      border: none;
-      border-radius: 50%;
-      background: rgb(63,81,181);
-      transform: scale(0.375);
-      transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);
-      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);
-      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1); }
-    .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
-      background: radial-gradient(circle closest-side, rgb(63,81,181) 0%, rgb(63,81,181) 37.5%, rgba(63,81,181, 0.26) 37.5%, rgba(63,81,181, 0.26) 100%);
-      transform: scale(1); }
-    .mdl-slider.is-upgraded:active::-ms-thumb {
-      background: rgb(63,81,181);
-      transform: scale(0.5625); }
-    .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
-      border: 2px solid rgba(0,0,0, 0.26);
-      background: transparent; }
-    .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
-      border: 2px solid rgba(0,0,0, 0.26);
-      background: transparent; }
-    .mdl-slider.is-upgraded.is-lowest-value +
-.mdl-slider__background-flex > .mdl-slider__background-upper {
-      left: 6px; }
-    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
-      box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);
-      background: rgba(0,0,0, 0.12); }
-    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
-      box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);
-      background: rgba(0,0,0, 0.12); }
-    .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
-      border: 1.6px solid rgba(0,0,0, 0.26);
-      -webkit-transform: scale(1.5);
-              transform: scale(1.5); }
-    .mdl-slider.is-upgraded.is-lowest-value:active +
-.mdl-slider__background-flex > .mdl-slider__background-upper {
-      left: 9px; }
-    .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
-      border: 1.5px solid rgba(0,0,0, 0.26);
-      transform: scale(1.5); }
-    .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
-      background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0,0,0, 0.26) 66.67%, rgba(0,0,0, 0.26) 100%); }
-    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
-      background: radial-gradient(circle closest-side, rgba(0,0,0, 0.12) 0%, rgba(0,0,0, 0.12) 25%, rgba(0,0,0, 0.26) 25%, rgba(0,0,0, 0.26) 37.5%, rgba(0,0,0, 0.12) 37.5%, rgba(0,0,0, 0.12) 100%);
-      transform: scale(1); }
-    .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
-      transform: scale(0.5625);
-      background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0,0,0, 0.26) 77.78%, rgba(0,0,0, 0.26) 100%); }
-    .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
-      background: transparent; }
-    .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper {
-      margin-left: 6px; }
-    .mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper {
-      margin-left: 9px; }
-    .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
-      -webkit-transform: scale(0.667);
-              transform: scale(0.667);
-      background: rgba(0,0,0, 0.26); }
-    .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded:disabled::-moz-range-thumb {
-      transform: scale(0.667);
-      background: rgba(0,0,0, 0.26); }
-    .mdl-slider.is-upgraded:disabled +
-.mdl-slider__background-flex > .mdl-slider__background-lower {
-      background-color: rgba(0,0,0, 0.26);
-      left: -6px; }
-    .mdl-slider.is-upgraded:disabled +
-.mdl-slider__background-flex > .mdl-slider__background-upper {
-      left: 6px; }
-    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
-      border: 3px solid rgba(0,0,0, 0.26);
-      background: transparent;
-      -webkit-transform: scale(0.667);
-              transform: scale(0.667); }
-    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
-      border: 3px solid rgba(0,0,0, 0.26);
-      background: transparent;
-      transform: scale(0.667); }
-    .mdl-slider.is-upgraded.is-lowest-value:disabled:active +
-.mdl-slider__background-flex > .mdl-slider__background-upper {
-      left: 6px; }
-    .mdl-slider.is-upgraded:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded:disabled:active::-ms-thumb, .mdl-slider.is-upgraded:disabled::-ms-thumb {
-      transform: scale(0.25);
-      background: rgba(0,0,0, 0.26); }
-    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
-      transform: scale(0.25);
-      background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0,0,0, 0.26) 50%, rgba(0,0,0, 0.26) 100%); }
-    .mdl-slider.is-upgraded:disabled::-ms-fill-lower {
-      margin-right: 6px;
-      background: linear-gradient(to right, transparent, transparent 25px, rgba(0,0,0, 0.26) 25px, rgba(0,0,0, 0.26) 0); }
-    .mdl-slider.is-upgraded:disabled::-ms-fill-upper {
-      margin-left: 6px; }
-    .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper {
-      margin-left: 6px; }
-
-.mdl-slider__ie-container {
-  height: 18px;
-  overflow: visible;
-  border: none;
-  margin: none;
-  padding: none; }
-
-.mdl-slider__container {
-  height: 18px;
-  position: relative;
-  background: none;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-direction: row;
-      -ms-flex-direction: row;
-          flex-direction: row; }
-
-.mdl-slider__background-flex {
-  background: transparent;
-  position: absolute;
-  height: 2px;
-  width: calc(100% - 52px);
-  top: 50%;
-  left: 0;
-  margin: 0 26px;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  overflow: hidden;
-  border: 0;
-  padding: 0;
-  -webkit-transform: translate(0, -1px);
-          transform: translate(0, -1px); }
-
-.mdl-slider__background-lower {
-  background: rgb(63,81,181);
-  -webkit-flex: 0;
-      -ms-flex: 0;
-          flex: 0;
-  position: relative;
-  border: 0;
-  padding: 0; }
-
-.mdl-slider__background-upper {
-  background: rgba(0,0,0, 0.26);
-  -webkit-flex: 0;
-      -ms-flex: 0;
-          flex: 0;
-  position: relative;
-  border: 0;
-  padding: 0;
-  transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1); }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-snackbar {
-  position: fixed;
-  bottom: 0;
-  left: 50%;
-  cursor: default;
-  background-color: #323232;
-  z-index: 3;
-  display: block;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-justify-content: space-between;
-      -ms-flex-pack: justify;
-          justify-content: space-between;
-  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-  will-change: transform;
-  -webkit-transform: translate(0, 80px);
-          transform: translate(0, 80px);
-  transition: -webkit-transform 0.25s cubic-bezier(0.4, 0, 1, 1);
-  transition: transform 0.25s cubic-bezier(0.4, 0, 1, 1);
-  transition: transform 0.25s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 1, 1);
-  pointer-events: none; }
-  @media (max-width: 479px) {
-    .mdl-snackbar {
-      width: 100%;
-      left: 0;
-      min-height: 48px;
-      max-height: 80px; } }
-  @media (min-width: 480px) {
-    .mdl-snackbar {
-      min-width: 288px;
-      max-width: 568px;
-      border-radius: 2px;
-      -webkit-transform: translate(-50%, 80px);
-              transform: translate(-50%, 80px); } }
-  .mdl-snackbar--active {
-    -webkit-transform: translate(0, 0);
-            transform: translate(0, 0);
-    pointer-events: auto;
-    transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.2, 1);
-    transition: transform 0.25s cubic-bezier(0, 0, 0.2, 1);
-    transition: transform 0.25s cubic-bezier(0, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0, 0, 0.2, 1); }
-    @media (min-width: 480px) {
-      .mdl-snackbar--active {
-        -webkit-transform: translate(-50%, 0);
-                transform: translate(-50%, 0); } }
-  .mdl-snackbar__text {
-    padding: 14px 12px 14px 24px;
-    vertical-align: middle;
-    color: white;
-    float: left; }
-  .mdl-snackbar__action {
-    background: transparent;
-    border: none;
-    color: rgb(255,64,129);
-    float: right;
-    text-transform: uppercase;
-    padding: 14px 24px 14px 12px;
-    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
-    font-size: 14px;
-    font-weight: 500;
-    text-transform: uppercase;
-    line-height: 1;
-    letter-spacing: 0;
-    overflow: hidden;
-    outline: none;
-    opacity: 0;
-    pointer-events: none;
-    cursor: pointer;
-    text-decoration: none;
-    text-align: center;
-    -webkit-align-self: center;
-        -ms-flex-item-align: center;
-                -ms-grid-row-align: center;
-            align-self: center; }
-    .mdl-snackbar__action::-moz-focus-inner {
-      border: 0; }
-    .mdl-snackbar__action:not([aria-hidden]) {
-      opacity: 1;
-      pointer-events: auto; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-spinner {
-  display: inline-block;
-  position: relative;
-  width: 28px;
-  height: 28px; }
-  .mdl-spinner:not(.is-upgraded).is-active:after {
-    content: "Loading..."; }
-  .mdl-spinner.is-upgraded.is-active {
-    -webkit-animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite;
-            animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite; }
-
-@-webkit-keyframes mdl-spinner__container-rotate {
-  to {
-    -webkit-transform: rotate(360deg);
-            transform: rotate(360deg); } }
-
-@keyframes mdl-spinner__container-rotate {
-  to {
-    -webkit-transform: rotate(360deg);
-            transform: rotate(360deg); } }
-
-.mdl-spinner__layer {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  opacity: 0; }
-
-.mdl-spinner__layer-1 {
-  border-color: rgb(66,165,245); }
-  .mdl-spinner--single-color .mdl-spinner__layer-1 {
-    border-color: rgb(63,81,181); }
-  .mdl-spinner.is-active .mdl-spinner__layer-1 {
-    -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
-            animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }
-
-.mdl-spinner__layer-2 {
-  border-color: rgb(244,67,54); }
-  .mdl-spinner--single-color .mdl-spinner__layer-2 {
-    border-color: rgb(63,81,181); }
-  .mdl-spinner.is-active .mdl-spinner__layer-2 {
-    -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
-            animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }
-
-.mdl-spinner__layer-3 {
-  border-color: rgb(253,216,53); }
-  .mdl-spinner--single-color .mdl-spinner__layer-3 {
-    border-color: rgb(63,81,181); }
-  .mdl-spinner.is-active .mdl-spinner__layer-3 {
-    -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
-            animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }
-
-.mdl-spinner__layer-4 {
-  border-color: rgb(76,175,80); }
-  .mdl-spinner--single-color .mdl-spinner__layer-4 {
-    border-color: rgb(63,81,181); }
-  .mdl-spinner.is-active .mdl-spinner__layer-4 {
-    -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
-            animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }
-
-@-webkit-keyframes mdl-spinner__fill-unfill-rotate {
-  12.5% {
-    -webkit-transform: rotate(135deg);
-            transform: rotate(135deg); }
-  25% {
-    -webkit-transform: rotate(270deg);
-            transform: rotate(270deg); }
-  37.5% {
-    -webkit-transform: rotate(405deg);
-            transform: rotate(405deg); }
-  50% {
-    -webkit-transform: rotate(540deg);
-            transform: rotate(540deg); }
-  62.5% {
-    -webkit-transform: rotate(675deg);
-            transform: rotate(675deg); }
-  75% {
-    -webkit-transform: rotate(810deg);
-            transform: rotate(810deg); }
-  87.5% {
-    -webkit-transform: rotate(945deg);
-            transform: rotate(945deg); }
-  to {
-    -webkit-transform: rotate(1080deg);
-            transform: rotate(1080deg); } }
-
-@keyframes mdl-spinner__fill-unfill-rotate {
-  12.5% {
-    -webkit-transform: rotate(135deg);
-            transform: rotate(135deg); }
-  25% {
-    -webkit-transform: rotate(270deg);
-            transform: rotate(270deg); }
-  37.5% {
-    -webkit-transform: rotate(405deg);
-            transform: rotate(405deg); }
-  50% {
-    -webkit-transform: rotate(540deg);
-            transform: rotate(540deg); }
-  62.5% {
-    -webkit-transform: rotate(675deg);
-            transform: rotate(675deg); }
-  75% {
-    -webkit-transform: rotate(810deg);
-            transform: rotate(810deg); }
-  87.5% {
-    -webkit-transform: rotate(945deg);
-            transform: rotate(945deg); }
-  to {
-    -webkit-transform: rotate(1080deg);
-            transform: rotate(1080deg); } }
-
-/**
-* HACK: Even though the intention is to have the current .mdl-spinner__layer-N
-* at `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome
-* to do proper subpixel rendering for the elements being animated. This is
-* especially visible in Chrome 39 on Ubuntu 14.04. See:
-*
-* - https://github.com/Polymer/paper-spinner/issues/9
-* - https://code.google.com/p/chromium/issues/detail?id=436255
-*/
-@-webkit-keyframes mdl-spinner__layer-1-fade-in-out {
-  from {
-    opacity: 0.99; }
-  25% {
-    opacity: 0.99; }
-  26% {
-    opacity: 0; }
-  89% {
-    opacity: 0; }
-  90% {
-    opacity: 0.99; }
-  100% {
-    opacity: 0.99; } }
-@keyframes mdl-spinner__layer-1-fade-in-out {
-  from {
-    opacity: 0.99; }
-  25% {
-    opacity: 0.99; }
-  26% {
-    opacity: 0; }
-  89% {
-    opacity: 0; }
-  90% {
-    opacity: 0.99; }
-  100% {
-    opacity: 0.99; } }
-
-@-webkit-keyframes mdl-spinner__layer-2-fade-in-out {
-  from {
-    opacity: 0; }
-  15% {
-    opacity: 0; }
-  25% {
-    opacity: 0.99; }
-  50% {
-    opacity: 0.99; }
-  51% {
-    opacity: 0; } }
-
-@keyframes mdl-spinner__layer-2-fade-in-out {
-  from {
-    opacity: 0; }
-  15% {
-    opacity: 0; }
-  25% {
-    opacity: 0.99; }
-  50% {
-    opacity: 0.99; }
-  51% {
-    opacity: 0; } }
-
-@-webkit-keyframes mdl-spinner__layer-3-fade-in-out {
-  from {
-    opacity: 0; }
-  40% {
-    opacity: 0; }
-  50% {
-    opacity: 0.99; }
-  75% {
-    opacity: 0.99; }
-  76% {
-    opacity: 0; } }
-
-@keyframes mdl-spinner__layer-3-fade-in-out {
-  from {
-    opacity: 0; }
-  40% {
-    opacity: 0; }
-  50% {
-    opacity: 0.99; }
-  75% {
-    opacity: 0.99; }
-  76% {
-    opacity: 0; } }
-
-@-webkit-keyframes mdl-spinner__layer-4-fade-in-out {
-  from {
-    opacity: 0; }
-  65% {
-    opacity: 0; }
-  75% {
-    opacity: 0.99; }
-  90% {
-    opacity: 0.99; }
-  100% {
-    opacity: 0; } }
-
-@keyframes mdl-spinner__layer-4-fade-in-out {
-  from {
-    opacity: 0; }
-  65% {
-    opacity: 0; }
-  75% {
-    opacity: 0.99; }
-  90% {
-    opacity: 0.99; }
-  100% {
-    opacity: 0; } }
-
-/**
-* Patch the gap that appear between the two adjacent
-* div.mdl-spinner__circle-clipper while the spinner is rotating
-* (appears on Chrome 38, Safari 7.1, and IE 11).
-*
-* Update: the gap no longer appears on Chrome when .mdl-spinner__layer-N's
-* opacity is 0.99, but still does on Safari and IE.
-*/
-.mdl-spinner__gap-patch {
-  position: absolute;
-  box-sizing: border-box;
-  top: 0;
-  left: 45%;
-  width: 10%;
-  height: 100%;
-  overflow: hidden;
-  border-color: inherit; }
-  .mdl-spinner__gap-patch .mdl-spinner__circle {
-    width: 1000%;
-    left: -450%; }
-
-.mdl-spinner__circle-clipper {
-  display: inline-block;
-  position: relative;
-  width: 50%;
-  height: 100%;
-  overflow: hidden;
-  border-color: inherit; }
-  .mdl-spinner__circle-clipper.mdl-spinner__left {
-    float: left; }
-  .mdl-spinner__circle-clipper.mdl-spinner__right {
-    float: right; }
-  .mdl-spinner__circle-clipper .mdl-spinner__circle {
-    width: 200%; }
-
-.mdl-spinner__circle {
-  box-sizing: border-box;
-  height: 100%;
-  border-width: 3px;
-  border-style: solid;
-  border-color: inherit;
-  border-bottom-color: transparent !important;
-  border-radius: 50%;
-  -webkit-animation: none;
-          animation: none;
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0; }
-  .mdl-spinner__left .mdl-spinner__circle {
-    border-right-color: transparent !important;
-    -webkit-transform: rotate(129deg);
-            transform: rotate(129deg); }
-    .mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle {
-      -webkit-animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
-              animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }
-  .mdl-spinner__right .mdl-spinner__circle {
-    left: -100%;
-    border-left-color: transparent !important;
-    -webkit-transform: rotate(-129deg);
-            transform: rotate(-129deg); }
-    .mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle {
-      -webkit-animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
-              animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }
-
-@-webkit-keyframes mdl-spinner__left-spin {
-  from {
-    -webkit-transform: rotate(130deg);
-            transform: rotate(130deg); }
-  50% {
-    -webkit-transform: rotate(-5deg);
-            transform: rotate(-5deg); }
-  to {
-    -webkit-transform: rotate(130deg);
-            transform: rotate(130deg); } }
-
-@keyframes mdl-spinner__left-spin {
-  from {
-    -webkit-transform: rotate(130deg);
-            transform: rotate(130deg); }
-  50% {
-    -webkit-transform: rotate(-5deg);
-            transform: rotate(-5deg); }
-  to {
-    -webkit-transform: rotate(130deg);
-            transform: rotate(130deg); } }
-
-@-webkit-keyframes mdl-spinner__right-spin {
-  from {
-    -webkit-transform: rotate(-130deg);
-            transform: rotate(-130deg); }
-  50% {
-    -webkit-transform: rotate(5deg);
-            transform: rotate(5deg); }
-  to {
-    -webkit-transform: rotate(-130deg);
-            transform: rotate(-130deg); } }
-
-@keyframes mdl-spinner__right-spin {
-  from {
-    -webkit-transform: rotate(-130deg);
-            transform: rotate(-130deg); }
-  50% {
-    -webkit-transform: rotate(5deg);
-            transform: rotate(5deg); }
-  to {
-    -webkit-transform: rotate(-130deg);
-            transform: rotate(-130deg); } }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-switch {
-  position: relative;
-  z-index: 1;
-  vertical-align: middle;
-  display: inline-block;
-  box-sizing: border-box;
-  width: 100%;
-  height: 24px;
-  margin: 0;
-  padding: 0;
-  overflow: visible;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none; }
-  .mdl-switch.is-upgraded {
-    padding-left: 28px; }
-
-.mdl-switch__input {
-  line-height: 24px; }
-  .mdl-switch.is-upgraded .mdl-switch__input {
-    position: absolute;
-    width: 0;
-    height: 0;
-    margin: 0;
-    padding: 0;
-    opacity: 0;
-    -ms-appearance: none;
-    -moz-appearance: none;
-    -webkit-appearance: none;
-    appearance: none;
-    border: none; }
-
-.mdl-switch__track {
-  background: rgba(0,0,0, 0.26);
-  position: absolute;
-  left: 0;
-  top: 5px;
-  height: 14px;
-  width: 36px;
-  border-radius: 14px;
-  cursor: pointer; }
-  .mdl-switch.is-checked .mdl-switch__track {
-    background: rgba(63,81,181, 0.5); }
-  .mdl-switch__track fieldset[disabled] .mdl-switch,
-  .mdl-switch.is-disabled .mdl-switch__track {
-    background: rgba(0,0,0, 0.12);
-    cursor: auto; }
-
-.mdl-switch__thumb {
-  background: rgb(250,250,250);
-  position: absolute;
-  left: 0;
-  top: 2px;
-  height: 20px;
-  width: 20px;
-  border-radius: 50%;
-  cursor: pointer;
-  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
-  transition-duration: 0.28s;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-property: left; }
-  .mdl-switch.is-checked .mdl-switch__thumb {
-    background: rgb(63,81,181);
-    left: 16px;
-    box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }
-  .mdl-switch__thumb fieldset[disabled] .mdl-switch,
-  .mdl-switch.is-disabled .mdl-switch__thumb {
-    background: rgb(189,189,189);
-    cursor: auto; }
-
-.mdl-switch__focus-helper {
-  position: absolute;
-  top: 50%;
-  left: 50%;
-  -webkit-transform: translate(-4px, -4px);
-          transform: translate(-4px, -4px);
-  display: inline-block;
-  box-sizing: border-box;
-  width: 8px;
-  height: 8px;
-  border-radius: 50%;
-  background-color: transparent; }
-  .mdl-switch.is-focused .mdl-switch__focus-helper {
-    box-shadow: 0 0 0px 20px rgba(0, 0, 0, 0.1);
-    background-color: rgba(0, 0, 0, 0.1); }
-  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
-    box-shadow: 0 0 0px 20px rgba(63,81,181, 0.26);
-    background-color: rgba(63,81,181, 0.26); }
-
-.mdl-switch__label {
-  position: relative;
-  cursor: pointer;
-  font-size: 16px;
-  line-height: 24px;
-  margin: 0;
-  left: 24px; }
-  .mdl-switch__label fieldset[disabled] .mdl-switch,
-  .mdl-switch.is-disabled .mdl-switch__label {
-    color: rgb(189,189,189);
-    cursor: auto; }
-
-.mdl-switch__ripple-container {
-  position: absolute;
-  z-index: 2;
-  top: -12px;
-  left: -14px;
-  box-sizing: border-box;
-  width: 48px;
-  height: 48px;
-  border-radius: 50%;
-  cursor: pointer;
-  overflow: hidden;
-  -webkit-mask-image: -webkit-radial-gradient(circle, white, black);
-  transition-duration: 0.40s;
-  transition-timing-function: step-end;
-  transition-property: left; }
-  .mdl-switch__ripple-container .mdl-ripple {
-    background: rgb(63,81,181); }
-  .mdl-switch__ripple-container fieldset[disabled] .mdl-switch,
-  .mdl-switch.is-disabled .mdl-switch__ripple-container {
-    cursor: auto; }
-  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,
-  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
-    background: transparent; }
-  .mdl-switch.is-checked .mdl-switch__ripple-container {
-    left: 2px; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-tabs {
-  display: block;
-  width: 100%; }
-
-.mdl-tabs__tab-bar {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-direction: row;
-      -ms-flex-direction: row;
-          flex-direction: row;
-  -webkit-justify-content: center;
-      -ms-flex-pack: center;
-          justify-content: center;
-  -webkit-align-content: space-between;
-      -ms-flex-line-pack: justify;
-          align-content: space-between;
-  -webkit-align-items: flex-start;
-      -ms-flex-align: start;
-          align-items: flex-start;
-  height: 48px;
-  padding: 0 0 0 0;
-  margin: 0;
-  border-bottom: 1px solid rgb(224,224,224); }
-
-.mdl-tabs__tab {
-  margin: 0;
-  border: none;
-  padding: 0 24px 0 24px;
-  float: left;
-  position: relative;
-  display: block;
-  text-decoration: none;
-  height: 48px;
-  line-height: 48px;
-  text-align: center;
-  font-weight: 500;
-  font-size: 14px;
-  text-transform: uppercase;
-  color: rgba(0,0,0, 0.54);
-  overflow: hidden; }
-  .mdl-tabs.is-upgraded .mdl-tabs__tab.is-active {
-    color: rgba(0,0,0, 0.87); }
-  .mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after {
-    height: 2px;
-    width: 100%;
-    display: block;
-    content: " ";
-    bottom: 0px;
-    left: 0px;
-    position: absolute;
-    background: rgb(63,81,181);
-    -webkit-animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
-            animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
-    transition: all 1s cubic-bezier(0.4, 0, 1, 1); }
-  .mdl-tabs__tab .mdl-tabs__ripple-container {
-    display: block;
-    position: absolute;
-    height: 100%;
-    width: 100%;
-    left: 0px;
-    top: 0px;
-    z-index: 1;
-    overflow: hidden; }
-    .mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple {
-      background: rgb(63,81,181); }
-
-.mdl-tabs__panel {
-  display: block; }
-  .mdl-tabs.is-upgraded .mdl-tabs__panel {
-    display: none; }
-  .mdl-tabs.is-upgraded .mdl-tabs__panel.is-active {
-    display: block; }
-
-@-webkit-keyframes border-expand {
-  0% {
-    opacity: 0;
-    width: 0; }
-  100% {
-    opacity: 1;
-    width: 100%; } }
-
-@keyframes border-expand {
-  0% {
-    opacity: 0;
-    width: 0; }
-  100% {
-    opacity: 1;
-    width: 100%; } }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-textfield {
-  position: relative;
-  font-size: 16px;
-  display: inline-block;
-  box-sizing: border-box;
-  width: 300px;
-  max-width: 100%;
-  margin: 0;
-  padding: 20px 0; }
-  .mdl-textfield .mdl-button {
-    position: absolute;
-    bottom: 20px; }
-
-.mdl-textfield--align-right {
-  text-align: right; }
-
-.mdl-textfield--full-width {
-  width: 100%; }
-
-.mdl-textfield--expandable {
-  min-width: 32px;
-  width: auto;
-  min-height: 32px; }
-  .mdl-textfield--expandable .mdl-button--icon {
-    top: 16px; }
-
-.mdl-textfield__input {
-  border: none;
-  border-bottom: 1px solid rgba(0,0,0, 0.12);
-  display: block;
-  font-size: 16px;
-  font-family: "Helvetica", "Arial", sans-serif;
-  margin: 0;
-  padding: 4px 0;
-  width: 100%;
-  background: none;
-  text-align: left;
-  color: inherit; }
-  .mdl-textfield__input[type="number"] {
-    -moz-appearance: textfield; }
-  .mdl-textfield__input[type="number"]::-webkit-inner-spin-button, .mdl-textfield__input[type="number"]::-webkit-outer-spin-button {
-    -webkit-appearance: none;
-    margin: 0; }
-  .mdl-textfield.is-focused .mdl-textfield__input {
-    outline: none; }
-  .mdl-textfield.is-invalid .mdl-textfield__input {
-    border-color: rgb(213,0,0);
-    box-shadow: none; }
-  fieldset[disabled] .mdl-textfield .mdl-textfield__input,
-  .mdl-textfield.is-disabled .mdl-textfield__input {
-    background-color: transparent;
-    border-bottom: 1px dotted rgba(0,0,0, 0.12);
-    color: rgba(0,0,0, 0.26); }
-
-.mdl-textfield textarea.mdl-textfield__input {
-  display: block; }
-
-.mdl-textfield__label {
-  bottom: 0;
-  color: rgba(0,0,0, 0.26);
-  font-size: 16px;
-  left: 0;
-  right: 0;
-  pointer-events: none;
-  position: absolute;
-  display: block;
-  top: 24px;
-  width: 100%;
-  overflow: hidden;
-  white-space: nowrap;
-  text-align: left; }
-  .mdl-textfield.is-dirty .mdl-textfield__label,
-  .mdl-textfield.has-placeholder .mdl-textfield__label {
-    visibility: hidden; }
-  .mdl-textfield--floating-label .mdl-textfield__label {
-    transition-duration: 0.2s;
-    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
-  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
-    transition: none; }
-  fieldset[disabled] .mdl-textfield .mdl-textfield__label,
-  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
-    color: rgba(0,0,0, 0.26); }
-  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,
-  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
-  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
-    color: rgb(63,81,181);
-    font-size: 12px;
-    top: 4px;
-    visibility: visible; }
-  .mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label,
-  .mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label,
-  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__expandable-holder .mdl-textfield__label {
-    top: -16px; }
-  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
-    color: rgb(213,0,0);
-    font-size: 12px; }
-  .mdl-textfield__label:after {
-    background-color: rgb(63,81,181);
-    bottom: 20px;
-    content: '';
-    height: 2px;
-    left: 45%;
-    position: absolute;
-    transition-duration: 0.2s;
-    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-    visibility: hidden;
-    width: 10px; }
-  .mdl-textfield.is-focused .mdl-textfield__label:after {
-    left: 0;
-    visibility: visible;
-    width: 100%; }
-  .mdl-textfield.is-invalid .mdl-textfield__label:after {
-    background-color: rgb(213,0,0); }
-
-.mdl-textfield__error {
-  color: rgb(213,0,0);
-  position: absolute;
-  font-size: 12px;
-  margin-top: 3px;
-  visibility: hidden;
-  display: block; }
-  .mdl-textfield.is-invalid .mdl-textfield__error {
-    visibility: visible; }
-
-.mdl-textfield__expandable-holder {
-  display: inline-block;
-  position: relative;
-  margin-left: 32px;
-  transition-duration: 0.2s;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  display: inline-block;
-  max-width: 0.1px; }
-  .mdl-textfield.is-focused .mdl-textfield__expandable-holder, .mdl-textfield.is-dirty .mdl-textfield__expandable-holder {
-    max-width: 600px; }
-  .mdl-textfield__expandable-holder .mdl-textfield__label:after {
-    bottom: 0; }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-tooltip {
-  -webkit-transform: scale(0);
-          transform: scale(0);
-  -webkit-transform-origin: top center;
-          transform-origin: top center;
-  z-index: 999;
-  background: rgba(97,97,97, 0.9);
-  border-radius: 2px;
-  color: rgb(255,255,255);
-  display: inline-block;
-  font-size: 10px;
-  font-weight: 500;
-  line-height: 14px;
-  max-width: 170px;
-  position: fixed;
-  top: -500px;
-  left: -500px;
-  padding: 8px;
-  text-align: center; }
-
-.mdl-tooltip.is-active {
-  -webkit-animation: pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards;
-          animation: pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards; }
-
-.mdl-tooltip--large {
-  line-height: 14px;
-  font-size: 14px;
-  padding: 16px; }
-
-@-webkit-keyframes pulse {
-  0% {
-    -webkit-transform: scale(0);
-            transform: scale(0);
-    opacity: 0; }
-  50% {
-    -webkit-transform: scale(0.99);
-            transform: scale(0.99); }
-  100% {
-    -webkit-transform: scale(1);
-            transform: scale(1);
-    opacity: 1;
-    visibility: visible; } }
-
-@keyframes pulse {
-  0% {
-    -webkit-transform: scale(0);
-            transform: scale(0);
-    opacity: 0; }
-  50% {
-    -webkit-transform: scale(0.99);
-            transform: scale(0.99); }
-  100% {
-    -webkit-transform: scale(1);
-            transform: scale(1);
-    opacity: 1;
-    visibility: visible; } }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* Typography */
-/* Shadows */
-/* Animations */
-/* Dialog */
-.mdl-shadow--2dp {
-  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
-
-.mdl-shadow--3dp {
-  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }
-
-.mdl-shadow--4dp {
-  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); }
-
-.mdl-shadow--6dp {
-  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2); }
-
-.mdl-shadow--8dp {
-  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2); }
-
-.mdl-shadow--16dp {
-  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); }
-
-.mdl-shadow--24dp {
-  box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2); }
-
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
-* NOTE: Some rules here are applied using duplicate selectors.
-* This is on purpose to increase their specificity when applied.
-* For example: `.mdl-cell--1-col-phone.mdl-cell--1-col-phone`
-*/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*------------------------------------*    $CONTENTS
-\*------------------------------------*/
-/**
- * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
- * -----Typography
- * -----Colors
- * -----Textfield
- * -----Switch
- * -----Spinner
- * -----Radio
- * -----Menu
- * -----List
- * -----Layout
- * -----Icon toggles
- * -----Footer
- * -----Column
- * -----Checkbox
- * -----Card
- * -----Button
- * -----Animation
- * -----Progress
- * -----Badge
- * -----Shadows
- * -----Grid
- * -----Data table
- * -----Dialog
- * -----Snackbar
- * -----Tooltip
- * -----Chip
- *
- * Even though all variables have the `!default` directive, most of them
- * should not be changed as they are dependent one another. This can cause
- * visual distortions (like alignment issues) that are hard to track down
- * and fix.
- */
-/* ==========  TYPOGRAPHY  ========== */
-/* We're splitting fonts into "preferred" and "performance" in order to optimize
-   page loading. For important text, such as the body, we want it to load
-   immediately and not wait for the web font load, whereas for other sections,
-   such as headers and titles, we're OK with things taking a bit longer to load.
-   We do have some optional classes and parameters in the mixins, in case you
-   definitely want to make sure you're using the preferred font and don't mind
-   the performance hit.
-   We should be able to improve on this once CSS Font Loading L3 becomes more
-   widely available.
-*/
-/* ==========  COLORS  ========== */
-/**
-*
-* Material design color palettes.
-* @see http://www.google.com/design/spec/style/color.html
-*
-**/
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  Color Palettes  ========== */
-/* colors.scss */
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/* ==========  IMAGES  ========== */
-/* ==========  Color & Themes  ========== */
-/* ==========  Typography  ========== */
-/* ==========  Components  ========== */
-/* ==========  Standard Buttons  ========== */
-/* ==========  Icon Toggles  ========== */
-/* ==========  Radio Buttons  ========== */
-/* ==========  Ripple effect  ========== */
-/* ==========  Layout  ========== */
-/* ==========  Content Tabs  ========== */
-/* ==========  Checkboxes  ========== */
-/* ==========  Switches  ========== */
-/* ==========  Spinner  ========== */
-/* ==========  Text fields  ========== */
-/* ==========  Card  ========== */
-/* ==========  Sliders ========== */
-/* ========== Progress ========== */
-/* ==========  List ========== */
-/* ==========  Item ========== */
-/* ==========  Dropdown menu ========== */
-/* ==========  Tooltips  ========== */
-/* ==========  Footer  ========== */
-/* TEXTFIELD */
-/* SWITCH */
-/* SPINNER */
-/* RADIO */
-/* MENU */
-/* LIST */
-/* LAYOUT */
-/* ICON TOGGLE */
-/* FOOTER */
-/*mega-footer*/
-/*mini-footer*/
-/* CHECKBOX */
-/* CARD */
-/* Card dimensions */
-/* Cover image */
-/* BUTTON */
-/**
- *
- * Dimensions
- *
- */
-/* ANIMATION */
-/* PROGRESS */
-/* BADGE */
-/* SHADOWS */
-/* GRID */
-/* DATA TABLE */
-/* DIALOG */
-/* SNACKBAR */
-/* TOOLTIP */
-/* CHIP */
-.mdl-grid {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-flow: row wrap;
-      -ms-flex-flow: row wrap;
-          flex-flow: row wrap;
-  margin: 0 auto 0 auto;
-  -webkit-align-items: stretch;
-      -ms-flex-align: stretch;
-          align-items: stretch; }
-  .mdl-grid.mdl-grid--no-spacing {
-    padding: 0; }
-
-.mdl-cell {
-  box-sizing: border-box; }
-
-.mdl-cell--top {
-  -webkit-align-self: flex-start;
-      -ms-flex-item-align: start;
-          align-self: flex-start; }
-
-.mdl-cell--middle {
-  -webkit-align-self: center;
-      -ms-flex-item-align: center;
-              -ms-grid-row-align: center;
-          align-self: center; }
-
-.mdl-cell--bottom {
-  -webkit-align-self: flex-end;
-      -ms-flex-item-align: end;
-          align-self: flex-end; }
-
-.mdl-cell--stretch {
-  -webkit-align-self: stretch;
-      -ms-flex-item-align: stretch;
-              -ms-grid-row-align: stretch;
-          align-self: stretch; }
-
-.mdl-grid.mdl-grid--no-spacing > .mdl-cell {
-  margin: 0; }
-
-.mdl-cell--order-1 {
-  -webkit-order: 1;
-      -ms-flex-order: 1;
-          order: 1; }
-
-.mdl-cell--order-2 {
-  -webkit-order: 2;
-      -ms-flex-order: 2;
-          order: 2; }
-
-.mdl-cell--order-3 {
-  -webkit-order: 3;
-      -ms-flex-order: 3;
-          order: 3; }
-
-.mdl-cell--order-4 {
-  -webkit-order: 4;
-      -ms-flex-order: 4;
-          order: 4; }
-
-.mdl-cell--order-5 {
-  -webkit-order: 5;
-      -ms-flex-order: 5;
-          order: 5; }
-
-.mdl-cell--order-6 {
-  -webkit-order: 6;
-      -ms-flex-order: 6;
-          order: 6; }
-
-.mdl-cell--order-7 {
-  -webkit-order: 7;
-      -ms-flex-order: 7;
-          order: 7; }
-
-.mdl-cell--order-8 {
-  -webkit-order: 8;
-      -ms-flex-order: 8;
-          order: 8; }
-
-.mdl-cell--order-9 {
-  -webkit-order: 9;
-      -ms-flex-order: 9;
-          order: 9; }
-
-.mdl-cell--order-10 {
-  -webkit-order: 10;
-      -ms-flex-order: 10;
-          order: 10; }
-
-.mdl-cell--order-11 {
-  -webkit-order: 11;
-      -ms-flex-order: 11;
-          order: 11; }
-
-.mdl-cell--order-12 {
-  -webkit-order: 12;
-      -ms-flex-order: 12;
-          order: 12; }
-
-@media (max-width: 479px) {
-  .mdl-grid {
-    padding: 8px; }
-  .mdl-cell {
-    margin: 8px;
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell {
-      width: 100%; }
-  .mdl-cell--hide-phone {
-    display: none !important; }
-  .mdl-cell--order-1-phone.mdl-cell--order-1-phone {
-    -webkit-order: 1;
-        -ms-flex-order: 1;
-            order: 1; }
-  .mdl-cell--order-2-phone.mdl-cell--order-2-phone {
-    -webkit-order: 2;
-        -ms-flex-order: 2;
-            order: 2; }
-  .mdl-cell--order-3-phone.mdl-cell--order-3-phone {
-    -webkit-order: 3;
-        -ms-flex-order: 3;
-            order: 3; }
-  .mdl-cell--order-4-phone.mdl-cell--order-4-phone {
-    -webkit-order: 4;
-        -ms-flex-order: 4;
-            order: 4; }
-  .mdl-cell--order-5-phone.mdl-cell--order-5-phone {
-    -webkit-order: 5;
-        -ms-flex-order: 5;
-            order: 5; }
-  .mdl-cell--order-6-phone.mdl-cell--order-6-phone {
-    -webkit-order: 6;
-        -ms-flex-order: 6;
-            order: 6; }
-  .mdl-cell--order-7-phone.mdl-cell--order-7-phone {
-    -webkit-order: 7;
-        -ms-flex-order: 7;
-            order: 7; }
-  .mdl-cell--order-8-phone.mdl-cell--order-8-phone {
-    -webkit-order: 8;
-        -ms-flex-order: 8;
-            order: 8; }
-  .mdl-cell--order-9-phone.mdl-cell--order-9-phone {
-    -webkit-order: 9;
-        -ms-flex-order: 9;
-            order: 9; }
-  .mdl-cell--order-10-phone.mdl-cell--order-10-phone {
-    -webkit-order: 10;
-        -ms-flex-order: 10;
-            order: 10; }
-  .mdl-cell--order-11-phone.mdl-cell--order-11-phone {
-    -webkit-order: 11;
-        -ms-flex-order: 11;
-            order: 11; }
-  .mdl-cell--order-12-phone.mdl-cell--order-12-phone {
-    -webkit-order: 12;
-        -ms-flex-order: 12;
-            order: 12; }
-  .mdl-cell--1-col,
-  .mdl-cell--1-col-phone.mdl-cell--1-col-phone {
-    width: calc(25% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
-    .mdl-cell--1-col-phone.mdl-cell--1-col-phone {
-      width: 25%; }
-  .mdl-cell--2-col,
-  .mdl-cell--2-col-phone.mdl-cell--2-col-phone {
-    width: calc(50% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
-    .mdl-cell--2-col-phone.mdl-cell--2-col-phone {
-      width: 50%; }
-  .mdl-cell--3-col,
-  .mdl-cell--3-col-phone.mdl-cell--3-col-phone {
-    width: calc(75% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
-    .mdl-cell--3-col-phone.mdl-cell--3-col-phone {
-      width: 75%; }
-  .mdl-cell--4-col,
-  .mdl-cell--4-col-phone.mdl-cell--4-col-phone {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
-    .mdl-cell--4-col-phone.mdl-cell--4-col-phone {
-      width: 100%; }
-  .mdl-cell--5-col,
-  .mdl-cell--5-col-phone.mdl-cell--5-col-phone {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
-    .mdl-cell--5-col-phone.mdl-cell--5-col-phone {
-      width: 100%; }
-  .mdl-cell--6-col,
-  .mdl-cell--6-col-phone.mdl-cell--6-col-phone {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
-    .mdl-cell--6-col-phone.mdl-cell--6-col-phone {
-      width: 100%; }
-  .mdl-cell--7-col,
-  .mdl-cell--7-col-phone.mdl-cell--7-col-phone {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
-    .mdl-cell--7-col-phone.mdl-cell--7-col-phone {
-      width: 100%; }
-  .mdl-cell--8-col,
-  .mdl-cell--8-col-phone.mdl-cell--8-col-phone {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
-    .mdl-cell--8-col-phone.mdl-cell--8-col-phone {
-      width: 100%; }
-  .mdl-cell--9-col,
-  .mdl-cell--9-col-phone.mdl-cell--9-col-phone {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
-    .mdl-cell--9-col-phone.mdl-cell--9-col-phone {
-      width: 100%; }
-  .mdl-cell--10-col,
-  .mdl-cell--10-col-phone.mdl-cell--10-col-phone {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
-    .mdl-cell--10-col-phone.mdl-cell--10-col-phone {
-      width: 100%; }
-  .mdl-cell--11-col,
-  .mdl-cell--11-col-phone.mdl-cell--11-col-phone {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
-    .mdl-cell--11-col-phone.mdl-cell--11-col-phone {
-      width: 100%; }
-  .mdl-cell--12-col,
-  .mdl-cell--12-col-phone.mdl-cell--12-col-phone {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
-    .mdl-cell--12-col-phone.mdl-cell--12-col-phone {
-      width: 100%; }
-  .mdl-cell--1-offset,
-  .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {
-    margin-left: calc(25% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {
-      margin-left: 25%; }
-  .mdl-cell--2-offset,
-  .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {
-    margin-left: calc(50% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {
-      margin-left: 50%; }
-  .mdl-cell--3-offset,
-  .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {
-    margin-left: calc(75% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {
-      margin-left: 75%; } }
-
-@media (min-width: 480px) and (max-width: 839px) {
-  .mdl-grid {
-    padding: 8px; }
-  .mdl-cell {
-    margin: 8px;
-    width: calc(50% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell {
-      width: 50%; }
-  .mdl-cell--hide-tablet {
-    display: none !important; }
-  .mdl-cell--order-1-tablet.mdl-cell--order-1-tablet {
-    -webkit-order: 1;
-        -ms-flex-order: 1;
-            order: 1; }
-  .mdl-cell--order-2-tablet.mdl-cell--order-2-tablet {
-    -webkit-order: 2;
-        -ms-flex-order: 2;
-            order: 2; }
-  .mdl-cell--order-3-tablet.mdl-cell--order-3-tablet {
-    -webkit-order: 3;
-        -ms-flex-order: 3;
-            order: 3; }
-  .mdl-cell--order-4-tablet.mdl-cell--order-4-tablet {
-    -webkit-order: 4;
-        -ms-flex-order: 4;
-            order: 4; }
-  .mdl-cell--order-5-tablet.mdl-cell--order-5-tablet {
-    -webkit-order: 5;
-        -ms-flex-order: 5;
-            order: 5; }
-  .mdl-cell--order-6-tablet.mdl-cell--order-6-tablet {
-    -webkit-order: 6;
-        -ms-flex-order: 6;
-            order: 6; }
-  .mdl-cell--order-7-tablet.mdl-cell--order-7-tablet {
-    -webkit-order: 7;
-        -ms-flex-order: 7;
-            order: 7; }
-  .mdl-cell--order-8-tablet.mdl-cell--order-8-tablet {
-    -webkit-order: 8;
-        -ms-flex-order: 8;
-            order: 8; }
-  .mdl-cell--order-9-tablet.mdl-cell--order-9-tablet {
-    -webkit-order: 9;
-        -ms-flex-order: 9;
-            order: 9; }
-  .mdl-cell--order-10-tablet.mdl-cell--order-10-tablet {
-    -webkit-order: 10;
-        -ms-flex-order: 10;
-            order: 10; }
-  .mdl-cell--order-11-tablet.mdl-cell--order-11-tablet {
-    -webkit-order: 11;
-        -ms-flex-order: 11;
-            order: 11; }
-  .mdl-cell--order-12-tablet.mdl-cell--order-12-tablet {
-    -webkit-order: 12;
-        -ms-flex-order: 12;
-            order: 12; }
-  .mdl-cell--1-col,
-  .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {
-    width: calc(12.5% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
-    .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {
-      width: 12.5%; }
-  .mdl-cell--2-col,
-  .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {
-    width: calc(25% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
-    .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {
-      width: 25%; }
-  .mdl-cell--3-col,
-  .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {
-    width: calc(37.5% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
-    .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {
-      width: 37.5%; }
-  .mdl-cell--4-col,
-  .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {
-    width: calc(50% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
-    .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {
-      width: 50%; }
-  .mdl-cell--5-col,
-  .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {
-    width: calc(62.5% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
-    .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {
-      width: 62.5%; }
-  .mdl-cell--6-col,
-  .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {
-    width: calc(75% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
-    .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {
-      width: 75%; }
-  .mdl-cell--7-col,
-  .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {
-    width: calc(87.5% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
-    .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {
-      width: 87.5%; }
-  .mdl-cell--8-col,
-  .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
-    .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {
-      width: 100%; }
-  .mdl-cell--9-col,
-  .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
-    .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {
-      width: 100%; }
-  .mdl-cell--10-col,
-  .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
-    .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {
-      width: 100%; }
-  .mdl-cell--11-col,
-  .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
-    .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {
-      width: 100%; }
-  .mdl-cell--12-col,
-  .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
-    .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {
-      width: 100%; }
-  .mdl-cell--1-offset,
-  .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {
-    margin-left: calc(12.5% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {
-      margin-left: 12.5%; }
-  .mdl-cell--2-offset,
-  .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {
-    margin-left: calc(25% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {
-      margin-left: 25%; }
-  .mdl-cell--3-offset,
-  .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {
-    margin-left: calc(37.5% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {
-      margin-left: 37.5%; }
-  .mdl-cell--4-offset,
-  .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {
-    margin-left: calc(50% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {
-      margin-left: 50%; }
-  .mdl-cell--5-offset,
-  .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {
-    margin-left: calc(62.5% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {
-      margin-left: 62.5%; }
-  .mdl-cell--6-offset,
-  .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {
-    margin-left: calc(75% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {
-      margin-left: 75%; }
-  .mdl-cell--7-offset,
-  .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {
-    margin-left: calc(87.5% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {
-      margin-left: 87.5%; } }
-
-@media (min-width: 840px) {
-  .mdl-grid {
-    padding: 8px; }
-  .mdl-cell {
-    margin: 8px;
-    width: calc(33.3333333333% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell {
-      width: 33.3333333333%; }
-  .mdl-cell--hide-desktop {
-    display: none !important; }
-  .mdl-cell--order-1-desktop.mdl-cell--order-1-desktop {
-    -webkit-order: 1;
-        -ms-flex-order: 1;
-            order: 1; }
-  .mdl-cell--order-2-desktop.mdl-cell--order-2-desktop {
-    -webkit-order: 2;
-        -ms-flex-order: 2;
-            order: 2; }
-  .mdl-cell--order-3-desktop.mdl-cell--order-3-desktop {
-    -webkit-order: 3;
-        -ms-flex-order: 3;
-            order: 3; }
-  .mdl-cell--order-4-desktop.mdl-cell--order-4-desktop {
-    -webkit-order: 4;
-        -ms-flex-order: 4;
-            order: 4; }
-  .mdl-cell--order-5-desktop.mdl-cell--order-5-desktop {
-    -webkit-order: 5;
-        -ms-flex-order: 5;
-            order: 5; }
-  .mdl-cell--order-6-desktop.mdl-cell--order-6-desktop {
-    -webkit-order: 6;
-        -ms-flex-order: 6;
-            order: 6; }
-  .mdl-cell--order-7-desktop.mdl-cell--order-7-desktop {
-    -webkit-order: 7;
-        -ms-flex-order: 7;
-            order: 7; }
-  .mdl-cell--order-8-desktop.mdl-cell--order-8-desktop {
-    -webkit-order: 8;
-        -ms-flex-order: 8;
-            order: 8; }
-  .mdl-cell--order-9-desktop.mdl-cell--order-9-desktop {
-    -webkit-order: 9;
-        -ms-flex-order: 9;
-            order: 9; }
-  .mdl-cell--order-10-desktop.mdl-cell--order-10-desktop {
-    -webkit-order: 10;
-        -ms-flex-order: 10;
-            order: 10; }
-  .mdl-cell--order-11-desktop.mdl-cell--order-11-desktop {
-    -webkit-order: 11;
-        -ms-flex-order: 11;
-            order: 11; }
-  .mdl-cell--order-12-desktop.mdl-cell--order-12-desktop {
-    -webkit-order: 12;
-        -ms-flex-order: 12;
-            order: 12; }
-  .mdl-cell--1-col,
-  .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
-    width: calc(8.3333333333% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
-    .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
-      width: 8.3333333333%; }
-  .mdl-cell--2-col,
-  .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
-    width: calc(16.6666666667% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
-    .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
-      width: 16.6666666667%; }
-  .mdl-cell--3-col,
-  .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {
-    width: calc(25% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
-    .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {
-      width: 25%; }
-  .mdl-cell--4-col,
-  .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {
-    width: calc(33.3333333333% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
-    .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {
-      width: 33.3333333333%; }
-  .mdl-cell--5-col,
-  .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
-    width: calc(41.6666666667% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
-    .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
-      width: 41.6666666667%; }
-  .mdl-cell--6-col,
-  .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {
-    width: calc(50% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
-    .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {
-      width: 50%; }
-  .mdl-cell--7-col,
-  .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {
-    width: calc(58.3333333333% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
-    .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {
-      width: 58.3333333333%; }
-  .mdl-cell--8-col,
-  .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
-    width: calc(66.6666666667% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
-    .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
-      width: 66.6666666667%; }
-  .mdl-cell--9-col,
-  .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {
-    width: calc(75% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
-    .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {
-      width: 75%; }
-  .mdl-cell--10-col,
-  .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {
-    width: calc(83.3333333333% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
-    .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {
-      width: 83.3333333333%; }
-  .mdl-cell--11-col,
-  .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
-    width: calc(91.6666666667% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
-    .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
-      width: 91.6666666667%; }
-  .mdl-cell--12-col,
-  .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {
-    width: calc(100% - 16px); }
-    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
-    .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {
-      width: 100%; }
-  .mdl-cell--1-offset,
-  .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {
-    margin-left: calc(8.3333333333% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {
-      margin-left: 8.3333333333%; }
-  .mdl-cell--2-offset,
-  .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {
-    margin-left: calc(16.6666666667% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {
-      margin-left: 16.6666666667%; }
-  .mdl-cell--3-offset,
-  .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {
-    margin-left: calc(25% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {
-      margin-left: 25%; }
-  .mdl-cell--4-offset,
-  .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {
-    margin-left: calc(33.3333333333% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {
-      margin-left: 33.3333333333%; }
-  .mdl-cell--5-offset,
-  .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {
-    margin-left: calc(41.6666666667% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {
-      margin-left: 41.6666666667%; }
-  .mdl-cell--6-offset,
-  .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {
-    margin-left: calc(50% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {
-      margin-left: 50%; }
-  .mdl-cell--7-offset,
-  .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {
-    margin-left: calc(58.3333333333% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {
-      margin-left: 58.3333333333%; }
-  .mdl-cell--8-offset,
-  .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {
-    margin-left: calc(66.6666666667% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--8-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {
-      margin-left: 66.6666666667%; }
-  .mdl-cell--9-offset,
-  .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {
-    margin-left: calc(75% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--9-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {
-      margin-left: 75%; }
-  .mdl-cell--10-offset,
-  .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {
-    margin-left: calc(83.3333333333% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--10-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {
-      margin-left: 83.3333333333%; }
-  .mdl-cell--11-offset,
-  .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {
-    margin-left: calc(91.6666666667% + 8px); }
-    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--11-offset, .mdl-grid.mdl-grid--no-spacing >
-    .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {
-      margin-left: 91.6666666667%; } }
diff --git a/src/api/admin.js b/src/api/admin.js
new file mode 100644
index 0000000000..e6b6994597
--- /dev/null
+++ b/src/api/admin.js
@@ -0,0 +1,36 @@
+'use strict';
+
+const meta = require('../meta');
+const analytics = require('../analytics');
+const privileges = require('../privileges');
+
+const adminApi = module.exports;
+
+adminApi.updateSetting = async (caller, { setting, value }) => {
+	const ok = await privileges.admin.can('admin:settings', caller.uid);
+	if (!ok) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	await meta.configs.set(setting, value);
+};
+
+adminApi.getAnalyticsKeys = async () => {
+	const keys = await analytics.getKeys();
+
+	// Sort keys alphabetically
+	return keys.sort((a, b) => (a < b ? -1 : 1));
+};
+
+adminApi.getAnalyticsData = async (caller, { set, until, amount, units }) => {
+	// Default returns views from past 24 hours, by hour
+	if (!amount) {
+		if (units === 'days') {
+			amount = 30;
+		} else {
+			amount = 24;
+		}
+	}
+	const getStats = units === 'days' ? analytics.getDailyStatsForSet : analytics.getHourlyStatsForSet;
+	return await getStats(`analytics:${set}`, parseInt(until, 10) || Date.now(), amount);
+};
diff --git a/src/api/categories.js b/src/api/categories.js
index 2871b6cf9d..c37e287221 100644
--- a/src/api/categories.js
+++ b/src/api/categories.js
@@ -8,6 +8,13 @@ const privileges = require('../privileges');
 
 const categoriesAPI = module.exports;
 
+const hasAdminPrivilege = async (uid, privilege = 'categories') => {
+	const ok = await privileges.admin.can(`admin:${privilege}`, uid);
+	if (!ok) {
+		throw new Error('[[error:no-privileges]]');
+	}
+};
+
 categoriesAPI.get = async function (caller, data) {
 	const [userPrivileges, category] = await Promise.all([
 		privileges.categories.get(data.cid, caller.uid),
@@ -21,31 +28,42 @@ categoriesAPI.get = async function (caller, data) {
 };
 
 categoriesAPI.create = async function (caller, data) {
+	await hasAdminPrivilege(caller.uid);
+
 	const response = await categories.create(data);
 	const categoryObjs = await categories.getCategories([response.cid], caller.uid);
 	return categoryObjs[0];
 };
 
 categoriesAPI.update = async function (caller, data) {
+	await hasAdminPrivilege(caller.uid);
 	if (!data) {
 		throw new Error('[[error:invalid-data]]');
 	}
-	await categories.update(data);
+	const { cid, values } = data;
+
+	const payload = {};
+	payload[cid] = values;
+	await categories.update(payload);
 };
 
-categoriesAPI.delete = async function (caller, data) {
-	const name = await categories.getCategoryField(data.cid, 'name');
-	await categories.purge(data.cid, caller.uid);
+categoriesAPI.delete = async function (caller, { cid }) {
+	await hasAdminPrivilege(caller.uid);
+
+	const name = await categories.getCategoryField(cid, 'name');
+	await categories.purge(cid, caller.uid);
 	await events.log({
 		type: 'category-purge',
 		uid: caller.uid,
 		ip: caller.ip,
-		cid: data.cid,
+		cid: cid,
 		name: name,
 	});
 };
 
-categoriesAPI.getPrivileges = async (caller, cid) => {
+categoriesAPI.getPrivileges = async (caller, { cid }) => {
+	await hasAdminPrivilege(caller.uid, 'privileges');
+
 	let responsePayload;
 
 	if (cid === 'admin') {
@@ -60,6 +78,8 @@ categoriesAPI.getPrivileges = async (caller, cid) => {
 };
 
 categoriesAPI.setPrivilege = async (caller, data) => {
+	await hasAdminPrivilege(caller.uid, 'privileges');
+
 	const [userExists, groupExists] = await Promise.all([
 		user.exists(data.member),
 		groups.exists(data.member),
@@ -100,3 +120,10 @@ categoriesAPI.setPrivilege = async (caller, data) => {
 		target: data.member,
 	});
 };
+
+categoriesAPI.setModerator = async (caller, { cid, member, set }) => {
+	await hasAdminPrivilege(caller.uid, 'admins-mods');
+
+	const privilegeList = await privileges.categories.getUserPrivilegeList();
+	await categoriesAPI.setPrivilege(caller, { cid, privilege: privilegeList, member, set });
+};
diff --git a/src/api/chats.js b/src/api/chats.js
index 67d2eabe5a..9f320d764e 100644
--- a/src/api/chats.js
+++ b/src/api/chats.js
@@ -5,9 +5,10 @@ const validator = require('validator');
 const user = require('../user');
 const meta = require('../meta');
 const messaging = require('../messaging');
+const notifications = require('../notifications');
 const plugins = require('../plugins');
+const privileges = require('../privileges');
 
-// const websockets = require('../socket.io');
 const socketHelpers = require('../socket.io/helpers');
 
 const chatsAPI = module.exports;
@@ -23,11 +24,21 @@ function rateLimitExceeded(caller) {
 	return false;
 }
 
+chatsAPI.list = async (caller, { page, perPage }) => {
+	const start = Math.max(0, page - 1) * perPage;
+	const stop = start + perPage;
+	const { rooms } = await messaging.getRecentChats(caller.uid, caller.uid, start, stop);
+
+	return { rooms };
+};
+
 chatsAPI.create = async function (caller, data) {
 	if (rateLimitExceeded(caller)) {
 		throw new Error('[[error:too-many-messages]]');
 	}
-
+	if (!data) {
+		throw new Error('[[error:invalid-data]]');
+	}
 	if (!data.uids || !Array.isArray(data.uids)) {
 		throw new Error(`[[error:wrong-parameter-type, uids, ${typeof data.uids}, Array]]`);
 	}
@@ -38,10 +49,15 @@ chatsAPI.create = async function (caller, data) {
 	return await messaging.getRoomData(roomId);
 };
 
+chatsAPI.get = async (caller, { uid, roomId }) => await messaging.loadRoom(caller.uid, { uid, roomId });
+
 chatsAPI.post = async (caller, data) => {
 	if (rateLimitExceeded(caller)) {
 		throw new Error('[[error:too-many-messages]]');
 	}
+	if (!data || !data.roomId || !caller.uid) {
+		throw new Error('[[error:invalid-data]]');
+	}
 
 	({ data } = await plugins.hooks.fire('filter:messaging.send', {
 		data,
@@ -63,6 +79,9 @@ chatsAPI.post = async (caller, data) => {
 };
 
 chatsAPI.rename = async (caller, data) => {
+	if (!data || !data.roomId || !data.name) {
+		throw new Error('[[error:invalid-data]]');
+	}
 	await messaging.renameRoom(caller.uid, data.roomId, data.name);
 	const uids = await messaging.getUidsInRoom(data.roomId, 0, -1);
 	const eventData = { roomId: data.roomId, newName: validator.escape(String(data.name)) };
@@ -73,11 +92,45 @@ chatsAPI.rename = async (caller, data) => {
 	});
 };
 
+chatsAPI.mark = async (caller, data) => {
+	if (!caller.uid || !data || !data.roomId) {
+		throw new Error('[[error:invalid-data]]');
+	}
+	const { roomId, state } = data;
+	if (state) {
+		await messaging.markUnread([caller.uid], roomId);
+	} else {
+		await messaging.markRead(caller.uid, roomId);
+		socketHelpers.emitToUids('event:chats.markedAsRead', { roomId: roomId }, [caller.uid]);
+
+		const uidsInRoom = await messaging.getUidsInRoom(roomId, 0, -1);
+		if (!uidsInRoom.includes(String(caller.uid))) {
+			return;
+		}
+
+		// Mark notification read
+		const nids = uidsInRoom.filter(uid => parseInt(uid, 10) !== caller.uid)
+			.map(uid => `chat_${uid}_${roomId}`);
+
+		await notifications.markReadMultiple(nids, caller.uid);
+		await user.notifications.pushCount(caller.uid);
+	}
+
+	socketHelpers.emitToUids('event:chats.mark', { roomId, state }, [caller.uid]);
+	messaging.pushUnreadCount(caller.uid);
+
+	return messaging.loadRoom(caller.uid, { roomId });
+};
+
 chatsAPI.users = async (caller, data) => {
-	const [isOwner, users] = await Promise.all([
+	const [isOwner, isUserInRoom, users] = await Promise.all([
 		messaging.isRoomOwner(caller.uid, data.roomId),
+		messaging.isUserInRoom(caller.uid, data.roomId),
 		messaging.getUsersInRoom(data.roomId, 0, -1),
 	]);
+	if (!isUserInRoom) {
+		throw new Error('[[error:no-privileges]]');
+	}
 	users.forEach((user) => {
 		user.canKick = (parseInt(user.uid, 10) !== parseInt(caller.uid, 10)) && isOwner;
 	});
@@ -85,6 +138,14 @@ chatsAPI.users = async (caller, data) => {
 };
 
 chatsAPI.invite = async (caller, data) => {
+	const canChat = await privileges.global.can('chat', caller.uid);
+	if (!canChat) {
+		throw new Error('[[error:no-privileges]]');
+	}
+	if (!data || !data.roomId) {
+		throw new Error('[[error:invalid-data]]');
+	}
+
 	const userCount = await messaging.getUserCountInRoom(data.roomId);
 	const maxUsers = meta.config.maximumUsersInChatRoom;
 	if (maxUsers && userCount >= maxUsers) {
@@ -103,6 +164,9 @@ chatsAPI.invite = async (caller, data) => {
 };
 
 chatsAPI.kick = async (caller, data) => {
+	if (!data || !data.roomId) {
+		throw new Error('[[error:invalid-data]]');
+	}
 	const uidsExist = await user.exists(data.uids);
 	if (!uidsExist.every(Boolean)) {
 		throw new Error('[[error:no-user]]');
@@ -118,3 +182,35 @@ chatsAPI.kick = async (caller, data) => {
 	delete data.uids;
 	return chatsAPI.users(caller, data);
 };
+
+chatsAPI.listMessages = async (caller, { uid, roomId, start }) => {
+	const messages = await messaging.getMessages({
+		callerUid: caller.uid,
+		uid,
+		roomId,
+		start,
+		count: 50,
+	});
+
+	return { messages };
+};
+
+chatsAPI.getMessage = async (caller, { mid, roomId }) => {
+	const messages = await messaging.getMessagesData([mid], caller.uid, roomId, false);
+	return messages.pop();
+};
+
+chatsAPI.editMessage = async (caller, { mid, roomId, message }) => {
+	await messaging.canEdit(mid, caller.uid);
+	await messaging.editMessage(caller.uid, mid, roomId, message);
+};
+
+chatsAPI.deleteMessage = async (caller, { mid }) => {
+	await messaging.canDelete(mid, caller.uid);
+	await messaging.deleteMessage(mid, caller.uid);
+};
+
+chatsAPI.restoreMessage = async (caller, { mid }) => {
+	await messaging.canDelete(mid, caller.uid);
+	await messaging.restoreMessage(mid, caller.uid);
+};
diff --git a/src/api/files.js b/src/api/files.js
new file mode 100644
index 0000000000..ca4e93f94c
--- /dev/null
+++ b/src/api/files.js
@@ -0,0 +1,11 @@
+'use strict';
+
+const fs = require('fs').promises;
+
+const filesApi = module.exports;
+
+// path assertion and traversal guarding logic is in src/middleware/assert.js
+
+filesApi.delete = async (_, { path }) => await fs.unlink(path);
+
+filesApi.createFolder = async (_, { path }) => await fs.mkdir(path);
diff --git a/src/api/flags.js b/src/api/flags.js
index 1d77470628..e4a3ba04e4 100644
--- a/src/api/flags.js
+++ b/src/api/flags.js
@@ -25,6 +25,15 @@ flagsApi.create = async (caller, data) => {
 	return flagObj;
 };
 
+flagsApi.get = async (caller, { flagId }) => {
+	const isPrivileged = await user.isPrivileged(caller.uid);
+	if (!isPrivileged) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	return await flags.get(flagId);
+};
+
 flagsApi.update = async (caller, data) => {
 	const allowed = await user.isPrivileged(caller.uid);
 	if (!allowed) {
@@ -38,6 +47,8 @@ flagsApi.update = async (caller, data) => {
 	return await flags.getHistory(flagId);
 };
 
+flagsApi.delete = async (_, { flagId }) => await flags.purge([flagId]);
+
 flagsApi.appendNote = async (caller, data) => {
 	const allowed = await user.isPrivileged(caller.uid);
 	if (!allowed) {
diff --git a/src/api/groups.js b/src/api/groups.js
index 9e6aa30d0b..840f5cf97a 100644
--- a/src/api/groups.js
+++ b/src/api/groups.js
@@ -77,7 +77,7 @@ groupsAPI.join = async function (caller, data) {
 		throw new Error('[[error:no-group]]');
 	}
 
-	const isCallerAdmin = await user.isAdministrator(caller.uid);
+	const isCallerAdmin = await privileges.admin.can('admin:groups', caller.uid);
 	if (!isCallerAdmin && (
 		groups.systemGroups.includes(groupName) ||
 		groups.isPrivilegeGroup(groupName)
@@ -85,9 +85,8 @@ groupsAPI.join = async function (caller, data) {
 		throw new Error('[[error:not-allowed]]');
 	}
 
-	const [groupData, isCallerOwner, userExists] = await Promise.all([
+	const [groupData, userExists] = await Promise.all([
 		groups.getGroupData(groupName),
-		groups.ownership.isOwner(caller.uid, groupName),
 		user.exists(data.uid),
 	]);
 
@@ -110,9 +109,9 @@ groupsAPI.join = async function (caller, data) {
 		throw new Error('[[error:group-join-disabled]]');
 	}
 
-	if ((!groupData.private && isSelf) || isCallerAdmin || isCallerOwner) {
+	if ((!groupData.private && isSelf) || isCallerAdmin) {
 		await groups.join(groupName, data.uid);
-		logGroupEvent(caller, 'group-join', {
+		logGroupEvent(caller, `group-${isSelf ? 'join' : 'add-member'}`, {
 			groupName: groupName,
 			targetUid: data.uid,
 		});
@@ -122,6 +121,8 @@ groupsAPI.join = async function (caller, data) {
 			groupName: groupName,
 			targetUid: data.uid,
 		});
+	} else {
+		throw new Error('[[error:not-allowed]]');
 	}
 };
 
@@ -158,7 +159,7 @@ groupsAPI.leave = async function (caller, data) {
 		throw new Error('[[error:invalid-uid]]');
 	}
 	if (!isMember) {
-		return;
+		throw new Error('[[error:group-not-member]]');
 	}
 
 	if (groupData.disableLeave && isSelf) {
@@ -183,7 +184,7 @@ groupsAPI.leave = async function (caller, data) {
 	const uids = await groups.getOwners(groupName);
 	await notifications.push(notification, uids);
 
-	logGroupEvent(caller, 'group-leave', {
+	logGroupEvent(caller, `group-${isSelf ? 'leave' : 'kick'}`, {
 		groupName: groupName,
 		targetUid: data.uid,
 	});
@@ -206,12 +207,105 @@ groupsAPI.rescind = async (caller, data) => {
 
 	await groups.ownership.rescind(data.uid, groupName);
 	logGroupEvent(caller, 'group-owner-rescind', {
-		groupName: groupName,
+		groupName,
 		targetUid: data.uid,
 	});
 };
 
-async function isOwner(caller, groupName) {
+groupsAPI.getPending = async (caller, { slug }) => {
+	const groupName = await groups.getGroupNameByGroupSlug(slug);
+	await isOwner(caller, groupName);
+
+	return await groups.getPending(groupName);
+};
+
+groupsAPI.accept = async (caller, { slug, uid }) => {
+	const groupName = await groups.getGroupNameByGroupSlug(slug);
+
+	await isOwner(caller, groupName);
+	const isPending = await groups.isPending(uid, groupName);
+	if (!isPending) {
+		throw new Error('[[error:group-user-not-pending]]');
+	}
+
+	await groups.acceptMembership(groupName, uid);
+	logGroupEvent(caller, 'group-accept-membership', {
+		groupName,
+		targetUid: uid,
+	});
+};
+
+groupsAPI.reject = async (caller, { slug, uid }) => {
+	const groupName = await groups.getGroupNameByGroupSlug(slug);
+
+	await isOwner(caller, groupName);
+	const isPending = await groups.isPending(uid, groupName);
+	if (!isPending) {
+		throw new Error('[[error:group-user-not-pending]]');
+	}
+
+	await groups.rejectMembership(groupName, uid);
+	logGroupEvent(caller, 'group-reject-membership', {
+		groupName,
+		targetUid: uid,
+	});
+};
+
+groupsAPI.getInvites = async (caller, { slug }) => {
+	const groupName = await groups.getGroupNameByGroupSlug(slug);
+	await isOwner(caller, groupName);
+
+	return await groups.getInvites(groupName);
+};
+
+groupsAPI.issueInvite = async (caller, { slug, uid }) => {
+	const groupName = await groups.getGroupNameByGroupSlug(slug);
+	await isOwner(caller, groupName);
+
+	await groups.invite(groupName, uid);
+	logGroupEvent(caller, 'group-invite', {
+		groupName,
+		targetUid: uid,
+	});
+};
+
+groupsAPI.acceptInvite = async (caller, { slug, uid }) => {
+	const groupName = await groups.getGroupNameByGroupSlug(slug);
+
+	// Can only be called by the invited user
+	const invited = await groups.isInvited(uid, groupName);
+	if (caller.uid !== parseInt(uid, 10)) {
+		throw new Error('[[error:not-allowed]]');
+	}
+	if (!invited) {
+		throw new Error('[[error:not-invited]]');
+	}
+
+	await groups.acceptMembership(groupName, uid);
+	logGroupEvent(caller, 'group-invite-accept', { groupName });
+};
+
+groupsAPI.rejectInvite = async (caller, { slug, uid }) => {
+	const groupName = await groups.getGroupNameByGroupSlug(slug);
+
+	// Can be called either by invited user, or group owner
+	const owner = await isOwner(caller, groupName, false);
+	const invited = await groups.isInvited(uid, groupName);
+
+	if (!owner && caller.uid !== parseInt(uid, 10)) {
+		throw new Error('[[error:not-allowed]]');
+	}
+	if (!invited) {
+		throw new Error('[[error:not-invited]]');
+	}
+
+	await groups.rejectMembership(groupName, uid);
+	if (!owner) {
+		logGroupEvent(caller, 'group-invite-reject', { groupName });
+	}
+};
+
+async function isOwner(caller, groupName, throwOnFalse = true) {
 	if (typeof groupName !== 'string') {
 		throw new Error('[[error:invalid-group-name]]');
 	}
@@ -223,9 +317,11 @@ async function isOwner(caller, groupName) {
 	]);
 
 	const check = isOwner || hasAdminPrivilege || (isGlobalModerator && !group.system);
-	if (!check) {
+	if (!check && throwOnFalse) {
 		throw new Error('[[error:no-privileges]]');
 	}
+
+	return check;
 }
 
 function logGroupEvent(caller, event, additional) {
diff --git a/src/api/index.js b/src/api/index.js
index a4b5f3488b..7c6a4e7552 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -1,6 +1,7 @@
 'use strict';
 
 module.exports = {
+	admin: require('./admin'),
 	users: require('./users'),
 	groups: require('./groups'),
 	topics: require('./topics'),
@@ -8,4 +9,7 @@ module.exports = {
 	chats: require('./chats'),
 	categories: require('./categories'),
 	flags: require('./flags'),
+	files: require('./files'),
+
+	utils: require('./utils'),
 };
diff --git a/src/api/posts.js b/src/api/posts.js
index abd40eda38..d1cb66cf44 100644
--- a/src/api/posts.js
+++ b/src/api/posts.js
@@ -333,3 +333,17 @@ postsAPI.restoreDiff = async (caller, data) => {
 	const edit = await posts.diffs.restore(data.pid, data.since, caller.uid, apiHelpers.buildReqObject(caller));
 	websockets.in(`topic_${edit.topic.tid}`).emit('event:post_edited', edit);
 };
+
+postsAPI.deleteDiff = async (caller, { pid, timestamp }) => {
+	const cid = await posts.getCidByPid(pid);
+	const [isAdmin, isModerator] = await Promise.all([
+		privileges.users.isAdministrator(caller.uid),
+		privileges.users.isModerator(caller.uid, cid),
+	]);
+
+	if (!(isAdmin || isModerator)) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	await posts.diffs.delete(pid, timestamp, caller.uid);
+};
diff --git a/src/api/topics.js b/src/api/topics.js
index 3cd98f0c20..d8910b1098 100644
--- a/src/api/topics.js
+++ b/src/api/topics.js
@@ -1,5 +1,7 @@
 'use strict';
 
+const validator = require('validator');
+
 const user = require('../user');
 const topics = require('../topics');
 const posts = require('../posts');
@@ -15,6 +17,22 @@ const socketHelpers = require('../socket.io/helpers');
 
 const topicsAPI = module.exports;
 
+topicsAPI._checkThumbPrivileges = async function ({ tid, uid }) {
+	// req.params.tid could be either a tid (pushing a new thumb to an existing topic)
+	// or a post UUID (a new topic being composed)
+	const isUUID = validator.isUUID(tid);
+
+	// Sanity-check the tid if it's strictly not a uuid
+	if (!isUUID && (isNaN(parseInt(tid, 10)) || !await topics.exists(tid))) {
+		throw new Error('[[error:no-topic]]');
+	}
+
+	// While drafts are not protected, tids are
+	if (!isUUID && !await privileges.topics.canEdit(tid, uid)) {
+		throw new Error('[[error:no-privileges]]');
+	}
+};
+
 topicsAPI.get = async function (caller, data) {
 	const [userPrivileges, topic] = await Promise.all([
 		privileges.topics.get(data.tid, caller.uid),
@@ -117,10 +135,12 @@ topicsAPI.purge = async function (caller, data) {
 	});
 };
 
-topicsAPI.pin = async function (caller, data) {
-	await doTopicAction('pin', 'event:topic_pinned', caller, {
-		tids: data.tids,
-	});
+topicsAPI.pin = async function (caller, { tids, expiry }) {
+	await doTopicAction('pin', 'event:topic_pinned', caller, { tids });
+
+	if (expiry) {
+		await Promise.all(tids.map(async tid => topics.tools.setPinExpiry(tid, expiry, caller.uid)));
+	}
 };
 
 topicsAPI.unpin = async function (caller, data) {
@@ -152,3 +172,87 @@ topicsAPI.ignore = async function (caller, data) {
 topicsAPI.unfollow = async function (caller, data) {
 	await topics.unfollow(data.tid, caller.uid);
 };
+
+topicsAPI.addTags = async (caller, { tid, tags }) => {
+	if (!await privileges.topics.canEdit(tid, caller.uid)) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	const cid = await topics.getTopicField(tid, 'cid');
+	await topics.validateTags(tags, cid, caller.uid, tid);
+	tags = await topics.filterTags(tags);
+
+	await topics.addTags(tags, [tid]);
+};
+
+topicsAPI.deleteTags = async (caller, { tid }) => {
+	if (!await privileges.topics.canEdit(tid, caller.uid)) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	await topics.deleteTopicTags(tid);
+};
+
+topicsAPI.getThumbs = async (caller, { tid }) => {
+	if (isFinite(tid)) { // post_uuids can be passed in occasionally, in that case no checks are necessary
+		const [exists, canRead] = await Promise.all([
+			topics.exists(tid),
+			privileges.topics.can('topics:read', tid, caller.uid),
+		]);
+		if (!exists) {
+			throw new Error('[[error:not-found]]');
+		}
+		if (!canRead) {
+			throw new Error('[[error:not-allowed]]');
+		}
+	}
+
+	return await topics.thumbs.get(tid);
+};
+
+// topicsAPI.addThumb
+
+topicsAPI.migrateThumbs = async (caller, { from, to }) => {
+	await Promise.all([
+		topicsAPI._checkThumbPrivileges({ tid: from, uid: caller.uid }),
+		topicsAPI._checkThumbPrivileges({ tid: to, uid: caller.uid }),
+	]);
+
+	await topics.thumbs.migrate(from, to);
+};
+
+topicsAPI.deleteThumb = async (caller, { tid, path }) => {
+	await topicsAPI._checkThumbPrivileges({ tid: tid, uid: caller.uid });
+	await topics.thumbs.delete(tid, path);
+};
+
+topicsAPI.reorderThumbs = async (caller, { tid, path, order }) => {
+	await topicsAPI._checkThumbPrivileges({ tid: tid, uid: caller.uid });
+
+	const exists = await topics.thumbs.exists(tid, path);
+	if (!exists) {
+		throw new Error('[[error:invalid-data]]');
+	}
+
+	await topics.thumbs.associate({
+		id: tid,
+		path: path,
+		score: order,
+	});
+};
+
+topicsAPI.getEvents = async (caller, { tid }) => {
+	if (!await privileges.topics.can('topics:read', tid, caller.uid)) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	return await topics.events.get(tid, caller.uid);
+};
+
+topicsAPI.deleteEvent = async (caller, { tid, eventId }) => {
+	if (!await privileges.topics.isAdminOrMod(tid, caller.uid)) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	await topics.events.purge(tid, [eventId]);
+};
diff --git a/src/api/users.js b/src/api/users.js
index bbb02a43bb..9b37d84c2f 100644
--- a/src/api/users.js
+++ b/src/api/users.js
@@ -1,5 +1,9 @@
 'use strict';
 
+const util = require('util');
+const path = require('path');
+const fs = require('fs').promises;
+
 const validator = require('validator');
 const winston = require('winston');
 
@@ -14,17 +18,32 @@ const plugins = require('../plugins');
 const events = require('../events');
 const translator = require('../translator');
 const sockets = require('../socket.io');
+const utils = require('../utils');
 
 const usersAPI = module.exports;
 
+const hasAdminPrivilege = async (uid, privilege) => {
+	const ok = await privileges.admin.can(`admin:${privilege}`, uid);
+	if (!ok) {
+		throw new Error('[[error:no-privileges]]');
+	}
+};
+
 usersAPI.create = async function (caller, data) {
 	if (!data) {
 		throw new Error('[[error:invalid-data]]');
 	}
+	await hasAdminPrivilege(caller.uid, 'users');
+
 	const uid = await user.create(data);
 	return await user.getUserData(uid);
 };
 
+usersAPI.get = async (caller, { uid }) => {
+	const userData = await user.getUserData(uid);
+	return await user.hidePrivateData(userData, caller.uid);
+};
+
 usersAPI.update = async function (caller, data) {
 	if (!caller.uid) {
 		throw new Error('[[error:invalid-uid]]');
@@ -90,6 +109,8 @@ usersAPI.deleteAccount = async function (caller, { uid, password }) {
 };
 
 usersAPI.deleteMany = async function (caller, data) {
+	await hasAdminPrivilege(caller.uid, 'users');
+
 	if (await canDeleteUids(data.uids)) {
 		await Promise.all(data.uids.map(uid => processDeletion({ uid, method: 'delete', caller })));
 	}
@@ -286,6 +307,188 @@ usersAPI.unmute = async function (caller, data) {
 	});
 };
 
+usersAPI.generateToken = async (caller, { uid, description }) => {
+	await hasAdminPrivilege(caller.uid, 'settings');
+	if (parseInt(uid, 10) !== parseInt(caller.uid, 10)) {
+		throw new Error('[[error:invalid-uid]]');
+	}
+
+	const settings = await meta.settings.get('core.api');
+	settings.tokens = settings.tokens || [];
+
+	const newToken = {
+		token: utils.generateUUID(),
+		uid: caller.uid,
+		description: description || '',
+		timestamp: Date.now(),
+	};
+	settings.tokens.push(newToken);
+	await meta.settings.set('core.api', settings);
+
+	return newToken;
+};
+
+usersAPI.deleteToken = async (caller, { uid, token }) => {
+	await hasAdminPrivilege(caller.uid, 'settings');
+	if (parseInt(uid, 10) !== parseInt(caller.uid, 10)) {
+		throw new Error('[[error:invalid-uid]]');
+	}
+
+	const settings = await meta.settings.get('core.api');
+	const beforeLen = settings.tokens.length;
+	settings.tokens = settings.tokens.filter(tokenObj => tokenObj.token !== token);
+	if (beforeLen !== settings.tokens.length) {
+		await meta.settings.set('core.api', settings);
+		return true;
+	}
+
+	return false;
+};
+
+const getSessionAsync = util.promisify((sid, callback) => {
+	db.sessionStore.get(sid, (err, sessionObj) => callback(err, sessionObj || null));
+});
+
+usersAPI.revokeSession = async (caller, { uid, uuid }) => {
+	// Only admins or global mods (besides the user themselves) can revoke sessions
+	if (parseInt(uid, 10) !== caller.uid && !await user.isAdminOrGlobalMod(caller.uid)) {
+		throw new Error('[[error:invalid-uid]]');
+	}
+
+	const sids = await db.getSortedSetRange(`uid:${uid}:sessions`, 0, -1);
+	let _id;
+	for (const sid of sids) {
+		/* eslint-disable no-await-in-loop */
+		const sessionObj = await getSessionAsync(sid);
+		if (sessionObj && sessionObj.meta && sessionObj.meta.uuid === uuid) {
+			_id = sid;
+			break;
+		}
+	}
+
+	if (!_id) {
+		throw new Error('[[error:no-session-found]]');
+	}
+
+	await user.auth.revokeSession(_id, uid);
+};
+
+usersAPI.invite = async (caller, { emails, groupsToJoin, uid }) => {
+	if (!emails || !Array.isArray(groupsToJoin)) {
+		throw new Error('[[error:invalid-data]]');
+	}
+
+	// For simplicity, this API route is restricted to self-use only. This can change if needed.
+	if (parseInt(caller.uid, 10) !== parseInt(uid, 10)) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	const canInvite = await privileges.users.hasInvitePrivilege(caller.uid);
+	if (!canInvite) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	const { registrationType } = meta.config;
+	const isAdmin = await user.isAdministrator(caller.uid);
+	if (registrationType === 'admin-invite-only' && !isAdmin) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	const inviteGroups = (await groups.getUserInviteGroups(caller.uid)).map(group => group.name);
+	const cannotInvite = groupsToJoin.some(group => !inviteGroups.includes(group));
+	if (groupsToJoin.length > 0 && cannotInvite) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	const max = meta.config.maximumInvites;
+	const emailsArr = emails.split(',').map(email => email.trim()).filter(Boolean);
+
+	for (const email of emailsArr) {
+		/* eslint-disable no-await-in-loop */
+		let invites = 0;
+		if (max) {
+			invites = await user.getInvitesNumber(caller.uid);
+		}
+		if (!isAdmin && max && invites >= max) {
+			throw new Error(`[[error:invite-maximum-met, ${invites}, ${max}]]`);
+		}
+
+		await user.sendInvitationEmail(caller.uid, email, groupsToJoin);
+	}
+};
+
+usersAPI.getInviteGroups = async (caller, { uid }) => {
+	// For simplicity, this API route is restricted to self-use only. This can change if needed.
+	if (parseInt(uid, 10) !== parseInt(caller.uid, 10)) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	const userInviteGroups = await groups.getUserInviteGroups(uid);
+	return userInviteGroups.map(group => group.displayName);
+};
+
+usersAPI.addEmail = async (caller, { email, skipConfirmation, uid }) => {
+	const canManageUsers = await privileges.admin.can('admin:users', caller.uid);
+	skipConfirmation = canManageUsers && skipConfirmation;
+
+	if (skipConfirmation) {
+		await user.setUserField(uid, 'email', email);
+		await user.email.confirmByUid(uid);
+	} else {
+		await usersAPI.update(caller, { uid, email });
+	}
+
+	return await db.getSortedSetRangeByScore('email:uid', 0, 500, uid, uid);
+};
+
+usersAPI.listEmails = async (caller, { uid }) => {
+	const [isPrivileged, { showemail }] = await Promise.all([
+		user.isPrivileged(caller.uid),
+		user.getSettings(uid),
+	]);
+	const isSelf = caller.uid === parseInt(uid, 10);
+
+	if (isSelf || isPrivileged || showemail) {
+		return await db.getSortedSetRangeByScore('email:uid', 0, 500, uid, uid);
+	}
+
+	return null;
+};
+
+usersAPI.getEmail = async (caller, { uid, email }) => {
+	const [isPrivileged, { showemail }, exists] = await Promise.all([
+		user.isPrivileged(caller.uid),
+		user.getSettings(uid),
+		db.isSortedSetMember('email:uid', email.toLowerCase()),
+	]);
+	const isSelf = caller.uid === parseInt(uid, 10);
+
+	return exists && (isSelf || isPrivileged || showemail);
+};
+
+usersAPI.confirmEmail = async (caller, { uid, email, sessionId }) => {
+	const [pending, current, canManage] = await Promise.all([
+		user.email.isValidationPending(uid, email),
+		user.getUserField(uid, 'email'),
+		privileges.admin.can('admin:users', caller.uid),
+	]);
+
+	if (!canManage) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	if (pending) { // has active confirmation request
+		const code = await db.get(`confirm:byUid:${uid}`);
+		await user.email.confirmByCode(code, sessionId);
+		return true;
+	} else if (current && current === email) { // i.e. old account w/ unconf. email in user hash
+		await user.email.confirmByUid(uid);
+		return true;
+	}
+
+	return false;
+};
+
 async function isPrivilegedOrSelfAndPasswordMatch(caller, data) {
 	const { uid } = caller;
 	const isSelf = parseInt(uid, 10) === parseInt(data.uid, 10);
@@ -442,6 +645,37 @@ usersAPI.changePicture = async (caller, data) => {
 	}, ['picture', 'icon:bgColor']);
 };
 
+const exportMetadata = new Map([
+	['posts', ['csv', 'text/csv']],
+	['uploads', ['zip', 'application/zip']],
+	['profile', ['json', 'application/json']],
+]);
+
+const prepareExport = async ({ uid, type }) => {
+	const [extension] = exportMetadata.get(type);
+	const filename = `${uid}_${type}.${extension}`;
+	try {
+		const stat = await fs.stat(path.join(__dirname, '../../build/export', filename));
+		return stat;
+	} catch (e) {
+		return false;
+	}
+};
+
+usersAPI.checkExportByType = async (caller, { uid, type }) => await prepareExport({ uid, type });
+
+usersAPI.getExportByType = async (caller, { uid, type }) => {
+	const [extension, mime] = exportMetadata.get(type);
+	const filename = `${uid}_${type}.${extension}`;
+
+	const exists = await prepareExport({ uid, type });
+	if (exists) {
+		return { filename, mime };
+	}
+
+	return false;
+};
+
 usersAPI.generateExport = async (caller, { uid, type }) => {
 	const validTypes = ['profile', 'posts', 'uploads'];
 	if (!validTypes.includes(type)) {
@@ -462,11 +696,10 @@ usersAPI.generateExport = async (caller, { uid, type }) => {
 	});
 	child.on('exit', async () => {
 		await db.deleteObjectField('locks', `export:${uid}${type}`);
-		const userData = await user.getUserFields(uid, ['username', 'userslug']);
-		const { displayname } = userData;
+		const { displayname } = await user.getUserFields(uid, ['username']);
 		const n = await notifications.create({
 			bodyShort: `[[notifications:${type}-exported, ${displayname}]]`,
-			path: `/api/user/${userData.userslug}/export/${type}`,
+			path: `/api/v3/users/${uid}/exports/${type}`,
 			nid: `${type}:export:${uid}`,
 			from: uid,
 		});
diff --git a/src/api/utils.js b/src/api/utils.js
new file mode 100644
index 0000000000..63d5473e12
--- /dev/null
+++ b/src/api/utils.js
@@ -0,0 +1,13 @@
+'use strict';
+
+const db = require('../database');
+
+const utils = module.exports;
+
+// internal token management utilities only
+
+utils.log = async (token) => {
+	await db.sortedSetAdd('tokens:lastSeen', Date.now(), token);
+};
+
+utils.getLastSeen = async tokens => await db.sortedSetScores('tokens:lastSeen', tokens);
diff --git a/src/cache/lru.js b/src/cache/lru.js
index 3434e0773b..fc6eb69147 100644
--- a/src/cache/lru.js
+++ b/src/cache/lru.js
@@ -1,7 +1,7 @@
 'use strict';
 
 module.exports = function (opts) {
-	const LRU = require('lru-cache');
+	const { LRUCache } = require('lru-cache');
 	const pubsub = require('../pubsub');
 
 	// lru-cache@7 deprecations
@@ -28,7 +28,7 @@ module.exports = function (opts) {
 		}
 	});
 
-	const lruCache = new LRU(opts);
+	const lruCache = new LRUCache(opts);
 
 	const cache = {};
 	cache.name = opts.name;
diff --git a/src/categories/create.js b/src/categories/create.js
index c2f7fb7968..403c492215 100644
--- a/src/categories/create.js
+++ b/src/categories/create.js
@@ -40,7 +40,7 @@ module.exports = function (Categories) {
 			order: order,
 			link: data.link || '',
 			numRecentReplies: 1,
-			class: (data.class ? data.class : 'col-md-3 col-xs-6'),
+			class: (data.class ? data.class : 'col-md-3 col-6'),
 			imageClass: 'cover',
 			isSection: 0,
 			subCategoriesPerPage: 10,
diff --git a/src/cli/index.js b/src/cli/index.js
index 3657549e3d..9f0af71030 100644
--- a/src/cli/index.js
+++ b/src/cli/index.js
@@ -97,6 +97,9 @@ nconf.argv(opts).env({
 	separator: '__',
 });
 
+process.env.NODE_ENV = process.env.NODE_ENV || 'production';
+global.env = process.env.NODE_ENV || 'production';
+
 prestart.setupWinston();
 
 // Alternate configuration file support
diff --git a/src/cli/reset.js b/src/cli/reset.js
index 2de33244bc..a05519b101 100644
--- a/src/cli/reset.js
+++ b/src/cli/reset.js
@@ -67,8 +67,8 @@ exports.reset = async function (options) {
 			'    -a\tall of the above',
 			'',
 			'Plugin and theme reset flags (-p & -t) can take a single argument',
-			'    e.g. ./nodebb reset -p nodebb-plugin-mentions, ./nodebb reset -t nodebb-theme-persona',
-			'         Prefix is optional, e.g. ./nodebb reset -p markdown, ./nodebb reset -t persona',
+			'    e.g. ./nodebb reset -p nodebb-plugin-mentions, ./nodebb reset -t nodebb-theme-harmony',
+			'         Prefix is optional, e.g. ./nodebb reset -p markdown, ./nodebb reset -t harmony',
 		].join('\n'));
 
 		process.exit(0);
@@ -105,7 +105,7 @@ async function resetTheme(themeId) {
 }
 
 async function resetThemes() {
-	await resetThemeTo('nodebb-theme-persona');
+	await resetThemeTo('nodebb-theme-harmony');
 }
 
 async function resetThemeTo(themeId) {
diff --git a/src/controllers/accounts/blocks.js b/src/controllers/accounts/blocks.js
index 12962e1027..a3f6cba3ff 100644
--- a/src/controllers/accounts/blocks.js
+++ b/src/controllers/accounts/blocks.js
@@ -1,39 +1,36 @@
 'use strict';
 
 const helpers = require('../helpers');
-const accountHelpers = require('./helpers');
 const pagination = require('../../pagination');
 const user = require('../../user');
 const plugins = require('../../plugins');
 
 const blocksController = module.exports;
 
-blocksController.getBlocks = async function (req, res, next) {
+blocksController.getBlocks = async function (req, res) {
 	const page = parseInt(req.query.page, 10) || 1;
 	const resultsPerPage = 50;
 	const start = Math.max(0, page - 1) * resultsPerPage;
 	const stop = start + resultsPerPage - 1;
 
-	const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
-	if (!userData) {
-		return next();
-	}
-	const uids = await user.blocks.list(userData.uid);
+	const { uid, username, userslug, blocksCount } = await user.getUserFields(res.locals.uid, ['uid', 'username', 'userslug', 'blocksCount']);
+	const payload = {};
+	const uids = await user.blocks.list(uid);
 	const data = await plugins.hooks.fire('filter:user.getBlocks', {
 		uids: uids,
-		uid: userData.uid,
+		uid: uid,
 		start: start,
 		stop: stop,
 	});
 
 	data.uids = data.uids.slice(start, stop + 1);
-	userData.users = await user.getUsers(data.uids, req.uid);
-	userData.title = `[[pages:account/blocks, ${userData.username}]]`;
+	payload.users = await user.getUsers(data.uids, req.uid);
+	payload.title = `[[pages:account/blocks, ${username}]]`;
 
-	const pageCount = Math.ceil(userData.counts.blocks / resultsPerPage);
-	userData.pagination = pagination.create(page, pageCount);
+	const pageCount = Math.ceil(blocksCount / resultsPerPage);
+	payload.pagination = pagination.create(page, pageCount);
 
-	userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: `/user/${userData.userslug}` }, { text: '[[user:blocks]]' }]);
+	payload.breadcrumbs = helpers.buildBreadcrumbs([{ text: username, url: `/user/${userslug}` }, { text: '[[user:blocks]]' }]);
 
-	res.render('account/blocks', userData);
+	res.render('account/blocks', payload);
 };
diff --git a/src/controllers/accounts/categories.js b/src/controllers/accounts/categories.js
index a5cd86c9d5..58a4e249e8 100644
--- a/src/controllers/accounts/categories.js
+++ b/src/controllers/accounts/categories.js
@@ -2,21 +2,17 @@
 
 const user = require('../../user');
 const categories = require('../../categories');
-const accountHelpers = require('./helpers');
 const helpers = require('../helpers');
 const pagination = require('../../pagination');
 const meta = require('../../meta');
 
 const categoriesController = module.exports;
 
-categoriesController.get = async function (req, res, next) {
-	const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
-	if (!userData) {
-		return next();
-	}
+categoriesController.get = async function (req, res) {
+	const { username, userslug } = await user.getUserFields(res.locals.uid, ['username', 'userslug']);
 	const [states, allCategoriesData] = await Promise.all([
-		user.getCategoryWatchState(userData.uid),
-		categories.buildForSelect(userData.uid, 'find', ['descriptionParsed', 'depth', 'slug']),
+		user.getCategoryWatchState(res.locals.uid),
+		categories.buildForSelect(res.locals.uid, 'find', ['descriptionParsed', 'depth', 'slug']),
 	]);
 
 	const pageCount = Math.max(1, Math.ceil(allCategoriesData.length / meta.config.categoriesPerPage));
@@ -33,12 +29,14 @@ categoriesController.get = async function (req, res, next) {
 			category.isNotWatched = states[category.cid] === categories.watchStates.notwatching;
 		}
 	});
-	userData.categories = categoriesData;
-	userData.title = `[[pages:account/watched_categories, ${userData.username}]]`;
-	userData.breadcrumbs = helpers.buildBreadcrumbs([
-		{ text: userData.username, url: `/user/${userData.userslug}` },
+
+	const payload = {};
+	payload.categories = categoriesData;
+	payload.title = `[[pages:account/watched_categories, ${username}]]`;
+	payload.breadcrumbs = helpers.buildBreadcrumbs([
+		{ text: username, url: `/user/${userslug}` },
 		{ text: '[[pages:categories]]' },
 	]);
-	userData.pagination = pagination.create(page, pageCount, req.query);
-	res.render('account/categories', userData);
+	payload.pagination = pagination.create(page, pageCount, req.query);
+	res.render('account/categories', payload);
 };
diff --git a/src/controllers/accounts/chats.js b/src/controllers/accounts/chats.js
index 9efd537813..02c9b404cc 100644
--- a/src/controllers/accounts/chats.js
+++ b/src/controllers/accounts/chats.js
@@ -21,7 +21,7 @@ chatsController.get = async function (req, res, next) {
 	if (!canChat) {
 		return next(new Error('[[error:no-privileges]]'));
 	}
-	const recentChats = await messaging.getRecentChats(req.uid, uid, 0, 19);
+	const recentChats = await messaging.getRecentChats(req.uid, uid, 0, 29);
 	if (!recentChats) {
 		return next();
 	}
diff --git a/src/controllers/accounts/consent.js b/src/controllers/accounts/consent.js
index a4b5cd02c9..c4ec132a11 100644
--- a/src/controllers/accounts/consent.js
+++ b/src/controllers/accounts/consent.js
@@ -2,8 +2,8 @@
 
 const db = require('../../database');
 const meta = require('../../meta');
+const user = require('../../user');
 const helpers = require('../helpers');
-const accountHelpers = require('./helpers');
 
 const consentController = module.exports;
 
@@ -12,19 +12,18 @@ consentController.get = async function (req, res, next) {
 		return next();
 	}
 
-	const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
-	if (!userData) {
-		return next();
-	}
-	const consented = await db.getObjectField(`user:${userData.uid}`, 'gdpr_consent');
-	userData.gdpr_consent = parseInt(consented, 10) === 1;
-	userData.digest = {
+	const { username, userslug } = await user.getUserFields(res.locals.uid, ['username', 'userslug']);
+	const consented = await db.getObjectField(`user:${res.locals.uid}`, 'gdpr_consent');
+
+	const payload = {};
+	payload.gdpr_consent = parseInt(consented, 10) === 1;
+	payload.digest = {
 		frequency: meta.config.dailyDigestFreq || 'off',
 		enabled: meta.config.dailyDigestFreq !== 'off',
 	};
 
-	userData.title = '[[user:consent.title]]';
-	userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: `/user/${userData.userslug}` }, { text: '[[user:consent.title]]' }]);
+	payload.title = '[[user:consent.title]]';
+	payload.breadcrumbs = helpers.buildBreadcrumbs([{ text: username, url: `/user/${userslug}` }, { text: '[[user:consent.title]]' }]);
 
-	res.render('account/consent', userData);
+	res.render('account/consent', payload);
 };
diff --git a/src/controllers/accounts/edit.js b/src/controllers/accounts/edit.js
index 7bbe27cebf..84763a6e71 100644
--- a/src/controllers/accounts/edit.js
+++ b/src/controllers/accounts/edit.js
@@ -4,44 +4,47 @@ const user = require('../../user');
 const meta = require('../../meta');
 const helpers = require('../helpers');
 const groups = require('../../groups');
-const accountHelpers = require('./helpers');
 const privileges = require('../../privileges');
+const accountHelpers = require('./helpers');
 const file = require('../../file');
 
 const editController = module.exports;
 
-editController.get = async function (req, res, next) {
-	const [userData, canUseSignature] = await Promise.all([
+editController.get = async function (req, res) {
+	const [{
+		username,
+		userslug,
+		isSelf,
+		reputation,
+		groups: _groups,
+		groupTitleArray,
+		allowMultipleBadges,
+	}, canUseSignature] = await Promise.all([
 		accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query),
 		privileges.global.can('signature', req.uid),
 	]);
-	if (!userData) {
-		return next();
-	}
-	userData.maximumSignatureLength = meta.config.maximumSignatureLength;
-	userData.maximumAboutMeLength = meta.config.maximumAboutMeLength;
-	userData.maximumProfileImageSize = meta.config.maximumProfileImageSize;
-	userData.allowProfilePicture = !userData.isSelf || !!meta.config['reputation:disabled'] || userData.reputation >= meta.config['min:rep:profile-picture'];
-	userData.allowCoverPicture = !userData.isSelf || !!meta.config['reputation:disabled'] || userData.reputation >= meta.config['min:rep:cover-picture'];
-	userData.allowProfileImageUploads = meta.config.allowProfileImageUploads;
-	userData.allowedProfileImageExtensions = user.getAllowedProfileImageExtensions().map(ext => `.${ext}`).join(', ');
-	userData.allowMultipleBadges = meta.config.allowMultipleBadges === 1;
-	userData.allowAccountDelete = meta.config.allowAccountDelete === 1;
-	userData.allowWebsite = !userData.isSelf || !!meta.config['reputation:disabled'] || userData.reputation >= meta.config['min:rep:website'];
-	userData.allowAboutMe = !userData.isSelf || !!meta.config['reputation:disabled'] || userData.reputation >= meta.config['min:rep:aboutme'];
-	userData.allowSignature = canUseSignature && (!userData.isSelf || !!meta.config['reputation:disabled'] || userData.reputation >= meta.config['min:rep:signature']);
-	userData.profileImageDimension = meta.config.profileImageDimension;
-	userData.defaultAvatar = user.getDefaultAvatar();
-
-	userData.groups = userData.groups.filter(g => g && g.userTitleEnabled && !groups.isPrivilegeGroup(g.name) && g.name !== 'registered-users');
-
-	if (!userData.allowMultipleBadges) {
-		userData.groupTitle = userData.groupTitleArray[0];
+
+	const payload = {};
+	payload.maximumSignatureLength = meta.config.maximumSignatureLength;
+	payload.maximumAboutMeLength = meta.config.maximumAboutMeLength;
+	payload.maximumProfileImageSize = meta.config.maximumProfileImageSize;
+	payload.allowMultipleBadges = meta.config.allowMultipleBadges === 1;
+	payload.allowAccountDelete = meta.config.allowAccountDelete === 1;
+	payload.allowWebsite = !isSelf || !!meta.config['reputation:disabled'] || reputation >= meta.config['min:rep:website'];
+	payload.allowAboutMe = !isSelf || !!meta.config['reputation:disabled'] || reputation >= meta.config['min:rep:aboutme'];
+	payload.allowSignature = canUseSignature && (!isSelf || !!meta.config['reputation:disabled'] || reputation >= meta.config['min:rep:signature']);
+	payload.profileImageDimension = meta.config.profileImageDimension;
+	payload.defaultAvatar = user.getDefaultAvatar();
+
+	payload.groups = _groups.filter(g => g && g.userTitleEnabled && !groups.isPrivilegeGroup(g.name) && g.name !== 'registered-users');
+
+	if (!allowMultipleBadges) {
+		payload.groupTitle = groupTitleArray[0];
 	}
 
-	userData.groups.sort((a, b) => {
-		const i1 = userData.groupTitleArray.indexOf(a.name);
-		const i2 = userData.groupTitleArray.indexOf(b.name);
+	payload.groups.sort((a, b) => {
+		const i1 = groupTitleArray.indexOf(a.name);
+		const i2 = groupTitleArray.indexOf(b.name);
 		if (i1 === -1) {
 			return 1;
 		} else if (i2 === -1) {
@@ -49,24 +52,25 @@ editController.get = async function (req, res, next) {
 		}
 		return i1 - i2;
 	});
-	userData.groups.forEach((group) => {
+	payload.groups.forEach((group) => {
 		group.userTitle = group.userTitle || group.displayName;
-		group.selected = userData.groupTitleArray.includes(group.name);
+		group.selected = groupTitleArray.includes(group.name);
 	});
-	userData.groupSelectSize = Math.min(10, Math.max(5, userData.groups.length + 1));
+	payload.groupSelectSize = Math.min(10, Math.max(5, payload.groups.length + 1));
 
-	userData.title = `[[pages:account/edit, ${userData.username}]]`;
-	userData.breadcrumbs = helpers.buildBreadcrumbs([
+	payload.title = `[[pages:account/edit, ${username}]]`;
+	payload.breadcrumbs = helpers.buildBreadcrumbs([
 		{
-			text: userData.username,
-			url: `/user/${userData.userslug}`,
+			text: username,
+			url: `/user/${userslug}`,
 		},
 		{
 			text: '[[user:edit]]',
 		},
 	]);
-	userData.editButtons = [];
-	res.render('account/edit', userData);
+	payload.editButtons = [];
+
+	res.render('account/edit', payload);
 };
 
 editController.password = async function (req, res, next) {
@@ -99,46 +103,39 @@ editController.email = async function (req, res, next) {
 	helpers.redirect(res, '/register/complete');
 };
 
-async function renderRoute(name, req, res, next) {
-	const userData = await getUserData(req, next);
-	if (!userData) {
-		return next();
-	}
-	if (meta.config[`${name}:disableEdit`] && !userData.isAdmin) {
+async function renderRoute(name, req, res) {
+	const [isAdmin, { username, userslug }, hasPassword] = await Promise.all([
+		privileges.admin.can('admin:users', req.uid),
+		user.getUserFields(res.locals.uid, ['username', 'userslug']),
+		user.hasPassword(res.locals.uid),
+	]);
+
+	if (meta.config[`${name}:disableEdit`] && !isAdmin) {
 		return helpers.notAllowed(req, res);
 	}
 
+	const payload = { hasPassword };
 	if (name === 'password') {
-		userData.minimumPasswordLength = meta.config.minimumPasswordLength;
-		userData.minimumPasswordStrength = meta.config.minimumPasswordStrength;
+		payload.minimumPasswordLength = meta.config.minimumPasswordLength;
+		payload.minimumPasswordStrength = meta.config.minimumPasswordStrength;
 	}
 
-	userData.title = `[[pages:account/edit/${name}, ${userData.username}]]`;
-	userData.breadcrumbs = helpers.buildBreadcrumbs([
+	payload.title = `[[pages:account/edit/${name}, ${username}]]`;
+	payload.breadcrumbs = helpers.buildBreadcrumbs([
 		{
-			text: userData.username,
-			url: `/user/${userData.userslug}`,
+			text: username,
+			url: `/user/${userslug}`,
 		},
 		{
 			text: '[[user:edit]]',
-			url: `/user/${userData.userslug}/edit`,
+			url: `/user/${userslug}/edit`,
 		},
 		{
 			text: `[[user:${name}]]`,
 		},
 	]);
 
-	res.render(`account/edit/${name}`, userData);
-}
-
-async function getUserData(req) {
-	const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
-	if (!userData) {
-		return null;
-	}
-
-	userData.hasPassword = await user.hasPassword(userData.uid);
-	return userData;
+	res.render(`account/edit/${name}`, payload);
 }
 
 editController.uploadPicture = async function (req, res, next) {
diff --git a/src/controllers/accounts/follow.js b/src/controllers/accounts/follow.js
index 82b23cb2f9..b573418aad 100644
--- a/src/controllers/accounts/follow.js
+++ b/src/controllers/accounts/follow.js
@@ -2,7 +2,6 @@
 
 const user = require('../../user');
 const helpers = require('../helpers');
-const accountHelpers = require('./helpers');
 const pagination = require('../../pagination');
 
 const followController = module.exports;
@@ -15,27 +14,25 @@ followController.getFollowers = async function (req, res, next) {
 	await getFollow('account/followers', 'followers', req, res, next);
 };
 
-async function getFollow(tpl, name, req, res, next) {
-	const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
-	if (!userData) {
-		return next();
-	}
+async function getFollow(tpl, name, req, res) {
+	const { username, userslug, followerCount, followingCount } = await user.getUserFields(res.locals.uid, ['username', 'userslug']);
 
 	const page = parseInt(req.query.page, 10) || 1;
 	const resultsPerPage = 50;
 	const start = Math.max(0, page - 1) * resultsPerPage;
 	const stop = start + resultsPerPage - 1;
 
-	userData.title = `[[pages:${tpl}, ${userData.username}]]`;
+	const payload = {};
+	payload.title = `[[pages:${tpl}, ${username}]]`;
 
 	const method = name === 'following' ? 'getFollowing' : 'getFollowers';
-	userData.users = await user[method](userData.uid, start, stop);
+	payload.users = await user[method](res.locals.uid, start, stop);
 
-	const count = name === 'following' ? userData.followingCount : userData.followerCount;
+	const count = name === 'following' ? followingCount : followerCount;
 	const pageCount = Math.ceil(count / resultsPerPage);
-	userData.pagination = pagination.create(page, pageCount);
+	payload.pagination = pagination.create(page, pageCount);
 
-	userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: `/user/${userData.userslug}` }, { text: `[[user:${name}]]` }]);
+	payload.breadcrumbs = helpers.buildBreadcrumbs([{ text: username, url: `/user/${userslug}` }, { text: `[[user:${name}]]` }]);
 
-	res.render(tpl, userData);
+	res.render(tpl, payload);
 }
diff --git a/src/controllers/accounts/groups.js b/src/controllers/accounts/groups.js
index 7d2f03cbf3..27c0797afe 100644
--- a/src/controllers/accounts/groups.js
+++ b/src/controllers/accounts/groups.js
@@ -1,25 +1,25 @@
 'use strict';
 
+const user = require('../../user');
 const groups = require('../../groups');
 const helpers = require('../helpers');
-const accountHelpers = require('./helpers');
 
 const groupsController = module.exports;
 
-groupsController.get = async function (req, res, next) {
-	const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
-	if (!userData) {
-		return next();
-	}
-	let groupsData = await groups.getUserGroups([userData.uid]);
+groupsController.get = async function (req, res) {
+	const { username, userslug } = await user.getUserFields(res.locals.uid, ['username', 'userslug']);
+
+	const payload = {};
+
+	let groupsData = await groups.getUserGroups([res.locals.uid]);
 	groupsData = groupsData[0];
 	const groupNames = groupsData.filter(Boolean).map(group => group.name);
 	const members = await groups.getMemberUsers(groupNames, 0, 3);
 	groupsData.forEach((group, index) => {
 		group.members = members[index];
 	});
-	userData.groups = groupsData;
-	userData.title = `[[pages:account/groups, ${userData.username}]]`;
-	userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: `/user/${userData.userslug}` }, { text: '[[global:header.groups]]' }]);
-	res.render('account/groups', userData);
+	payload.groups = groupsData;
+	payload.title = `[[pages:account/groups, ${username}]]`;
+	payload.breadcrumbs = helpers.buildBreadcrumbs([{ text: username, url: `/user/${userslug}` }, { text: '[[global:header.groups]]' }]);
+	res.render('account/groups', payload);
 };
diff --git a/src/controllers/accounts/helpers.js b/src/controllers/accounts/helpers.js
index 7c249d8d5f..0d2b08eee8 100644
--- a/src/controllers/accounts/helpers.js
+++ b/src/controllers/accounts/helpers.js
@@ -14,6 +14,8 @@ const translator = require('../../translator');
 const messaging = require('../../messaging');
 const categories = require('../../categories');
 
+const relative_path = nconf.get('relative_path');
+
 const helpers = module.exports;
 
 helpers.getUserDataByUserSlug = async function (userslug, callerUID, query = {}) {
@@ -26,6 +28,7 @@ helpers.getUserDataByUserSlug = async function (userslug, callerUID, query = {})
 	if (!results.userData) {
 		throw new Error('[[error:invalid-uid]]');
 	}
+
 	await parseAboutMe(results.userData);
 
 	let { userData } = results;
@@ -36,12 +39,17 @@ helpers.getUserDataByUserSlug = async function (userslug, callerUID, query = {})
 	const { canViewInfo } = results;
 	const isSelf = parseInt(callerUID, 10) === parseInt(userData.uid, 10);
 
+	if (meta.config['reputation:disabled']) {
+		delete userData.reputation;
+	}
+
 	userData.age = Math.max(
 		0,
 		userData.birthday ? Math.floor((new Date().getTime() - new Date(userData.birthday).getTime()) / 31536000000) : 0
 	);
 
 	userData = await user.hidePrivateData(userData, callerUID);
+	userData.emailHidden = !userSettings.showemail;
 	userData.emailClass = userSettings.showemail ? 'hide' : '';
 
 	// If email unconfirmed, hide from result set
@@ -76,7 +84,13 @@ helpers.getUserDataByUserSlug = async function (userslug, callerUID, query = {})
 	userData.isFollowing = results.isFollowing;
 	userData.hasPrivateChat = results.hasPrivateChat;
 	userData.showHidden = results.canEdit; // remove in v1.19.0
+	userData.allowProfilePicture = !userData.isSelf || !!meta.config['reputation:disabled'] || userData.reputation >= meta.config['min:rep:profile-picture'];
+	userData.allowCoverPicture = !userData.isSelf || !!meta.config['reputation:disabled'] || userData.reputation >= meta.config['min:rep:cover-picture'];
+	userData.allowProfileImageUploads = meta.config.allowProfileImageUploads;
+	userData.allowedProfileImageExtensions = user.getAllowedProfileImageExtensions().map(ext => `.${ext}`).join(', ');
 	userData.groups = Array.isArray(results.groups) && results.groups.length ? results.groups[0] : [];
+	userData.selectedGroup = userData.groups.filter(group => group && userData.groupTitleArray.includes(group.name))
+		.sort((a, b) => userData.groupTitleArray.indexOf(a.name) - userData.groupTitleArray.indexOf(b.name));
 	userData.disableSignatures = meta.config.disableSignatures === 1;
 	userData['reputation:disabled'] = meta.config['reputation:disabled'] === 1;
 	userData['downvote:disabled'] = meta.config['downvote:disabled'] === 1;
@@ -225,11 +239,18 @@ async function getProfileMenu(uid, callerUID) {
 		});
 	}
 
-	return await plugins.hooks.fire('filter:user.profileMenu', {
+	const data = await plugins.hooks.fire('filter:user.profileMenu', {
 		uid: uid,
 		callerUID: callerUID,
 		links: links,
 	});
+	const userslug = await user.getUserField(uid, 'userslug');
+	data.links.forEach((link) => {
+		if (!link.hasOwnProperty('url')) {
+			link.url = `${relative_path}/user/${userslug}/${link.route}`;
+		}
+	});
+	return data;
 }
 
 async function parseAboutMe(userData) {
diff --git a/src/controllers/accounts/info.js b/src/controllers/accounts/info.js
index 950b74945d..1f73c412e1 100644
--- a/src/controllers/accounts/info.js
+++ b/src/controllers/accounts/info.js
@@ -3,52 +3,53 @@
 const db = require('../../database');
 const user = require('../../user');
 const helpers = require('../helpers');
-const accountHelpers = require('./helpers');
 const pagination = require('../../pagination');
 
 const infoController = module.exports;
 
-infoController.get = async function (req, res, next) {
-	const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
-	if (!userData) {
-		return next();
-	}
+infoController.get = async function (req, res) {
 	const page = Math.max(1, req.query.page || 1);
 	const itemsPerPage = 10;
 	const start = (page - 1) * itemsPerPage;
 	const stop = start + itemsPerPage - 1;
 
+	const [{ username, userslug }, isPrivileged] = await Promise.all([
+		user.getUserFields(res.locals.uid, ['username', 'userslug']),
+		user.isPrivileged(req.uid),
+	]);
 	const [history, sessions, usernames, emails, notes] = await Promise.all([
-		user.getModerationHistory(userData.uid),
-		user.auth.getSessions(userData.uid, req.sessionID),
-		user.getHistory(`user:${userData.uid}:usernames`),
-		user.getHistory(`user:${userData.uid}:emails`),
-		getNotes(userData, start, stop),
+		user.getModerationHistory(res.locals.uid),
+		user.auth.getSessions(res.locals.uid, req.sessionID),
+		user.getHistory(`user:${res.locals.uid}:usernames`),
+		user.getHistory(`user:${res.locals.uid}:emails`),
+		getNotes({ uid: res.locals.uid, isPrivileged }, start, stop),
 	]);
 
-	userData.history = history;
-	userData.sessions = sessions;
-	userData.usernames = usernames;
-	userData.emails = emails;
+	const payload = {};
+
+	payload.history = history;
+	payload.sessions = sessions;
+	payload.usernames = usernames;
+	payload.emails = emails;
 
-	if (userData.isAdminOrGlobalModeratorOrModerator) {
-		userData.moderationNotes = notes.notes;
+	if (isPrivileged) {
+		payload.moderationNotes = notes.notes;
 		const pageCount = Math.ceil(notes.count / itemsPerPage);
-		userData.pagination = pagination.create(page, pageCount, req.query);
+		payload.pagination = pagination.create(page, pageCount, req.query);
 	}
-	userData.title = '[[pages:account/info]]';
-	userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: `/user/${userData.userslug}` }, { text: '[[user:account_info]]' }]);
+	payload.title = '[[pages:account/info]]';
+	payload.breadcrumbs = helpers.buildBreadcrumbs([{ text: username, url: `/user/${userslug}` }, { text: '[[user:account_info]]' }]);
 
-	res.render('account/info', userData);
+	res.render('account/info', payload);
 };
 
-async function getNotes(userData, start, stop) {
-	if (!userData.isAdminOrGlobalModeratorOrModerator) {
+async function getNotes({ uid, isPrivileged }, start, stop) {
+	if (!isPrivileged) {
 		return;
 	}
 	const [notes, count] = await Promise.all([
-		user.getModerationNotes(userData.uid, start, stop),
-		db.sortedSetCard(`uid:${userData.uid}:moderation:notes`),
+		user.getModerationNotes(uid, start, stop),
+		db.sortedSetCard(`uid:${uid}:moderation:notes`),
 	]);
 	return { notes: notes, count: count };
 }
diff --git a/src/controllers/accounts/notifications.js b/src/controllers/accounts/notifications.js
index a235f68e4c..c059aa4283 100644
--- a/src/controllers/accounts/notifications.js
+++ b/src/controllers/accounts/notifications.js
@@ -54,8 +54,14 @@ notificationsController.get = async function (req, res, next) {
 		return next();
 	}
 
-	const nids = await user.notifications.getAll(req.uid, selectedFilter.filter);
-	let notifications = await user.notifications.getNotifications(nids, req.uid);
+	const data = await user.notifications.getAllWithCounts(req.uid, selectedFilter.filter);
+	let notifications = await user.notifications.getNotifications(data.nids, req.uid);
+
+	allFilters.forEach((filterData) => {
+		if (filterData && filterData.filter) {
+			filterData.count = data.counts[filterData.filter] || 0;
+		}
+	});
 
 	const pageCount = Math.max(1, Math.ceil(notifications.length / itemsPerPage));
 	notifications = notifications.slice(start, stop + 1);
diff --git a/src/controllers/accounts/posts.js b/src/controllers/accounts/posts.js
index 94bc2d9169..b1ac6a4250 100644
--- a/src/controllers/accounts/posts.js
+++ b/src/controllers/accounts/posts.js
@@ -8,7 +8,6 @@ const categories = require('../../categories');
 const privileges = require('../../privileges');
 const pagination = require('../../pagination');
 const helpers = require('../helpers');
-const accountHelpers = require('./helpers');
 const plugins = require('../../plugins');
 const utils = require('../../utils');
 
@@ -174,28 +173,25 @@ postsController.getTopics = async function (req, res, next) {
 	await getPostsFromUserSet('account/topics', req, res, next);
 };
 
-async function getPostsFromUserSet(template, req, res, next) {
+async function getPostsFromUserSet(template, req, res) {
 	const data = templateToData[template];
 	const page = Math.max(1, parseInt(req.query.page, 10) || 1);
 
-	const [userData, settings] = await Promise.all([
-		accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query),
+	const [{ username, userslug }, settings] = await Promise.all([
+		user.getUserFields(res.locals.uid, ['username', 'userslug']),
 		user.getSettings(req.uid),
 	]);
 
-	if (!userData) {
-		return next();
-	}
 	const itemsPerPage = data.type === 'topics' ? settings.topicsPerPage : settings.postsPerPage;
 	const start = (page - 1) * itemsPerPage;
 	const stop = start + itemsPerPage - 1;
-	const sets = await data.getSets(req.uid, userData);
+	const sets = await data.getSets(req.uid, { uid: res.locals.uid, username, userslug });
 	let result;
 	if (plugins.hooks.hasListeners('filter:account.getPostsFromUserSet')) {
 		result = await plugins.hooks.fire('filter:account.getPostsFromUserSet', {
 			req: req,
 			template: template,
-			userData: userData,
+			userData: { uid: res.locals.uid, username, userslug },
 			settings: settings,
 			data: data,
 			start: start,
@@ -210,29 +206,31 @@ async function getPostsFromUserSet(template, req, res, next) {
 		});
 	}
 	const { itemCount, itemData } = result;
-	userData[data.type] = itemData[data.type];
-	userData.nextStart = itemData.nextStart;
+
+	const payload = {};
+	payload[data.type] = itemData[data.type];
+	payload.nextStart = itemData.nextStart;
 
 	const pageCount = Math.ceil(itemCount / itemsPerPage);
-	userData.pagination = pagination.create(page, pageCount, req.query);
+	payload.pagination = pagination.create(page, pageCount, req.query);
 
-	userData.noItemsFoundKey = data.noItemsFoundKey;
-	userData.title = `[[pages:${template}, ${userData.username}]]`;
-	userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: `/user/${userData.userslug}` }, { text: data.crumb }]);
-	userData.showSort = template === 'account/watched';
+	payload.noItemsFoundKey = data.noItemsFoundKey;
+	payload.title = `[[pages:${template}, ${username}]]`;
+	payload.breadcrumbs = helpers.buildBreadcrumbs([{ text: username, url: `/user/${userslug}` }, { text: data.crumb }]);
+	payload.showSort = template === 'account/watched';
 	const baseUrl = (req.baseUrl + req.path.replace(/^\/api/, ''));
-	userData.sortOptions = [
+	payload.sortOptions = [
 		{ url: `${baseUrl}?sort=votes`, name: '[[global:votes]]' },
 		{ url: `${baseUrl}?sort=posts`, name: '[[global:posts]]' },
 		{ url: `${baseUrl}?sort=views`, name: '[[global:views]]' },
 		{ url: `${baseUrl}?sort=lastpost`, name: '[[global:lastpost]]' },
 		{ url: `${baseUrl}?sort=firstpost`, name: '[[global:firstpost]]' },
 	];
-	userData.sortOptions.forEach((option) => {
+	payload.sortOptions.forEach((option) => {
 		option.selected = option.url.includes(`sort=${req.query.sort}`);
 	});
 
-	res.render(template, userData);
+	res.render(template, payload);
 }
 
 async function getItemData(sets, data, req, start, stop) {
diff --git a/src/controllers/accounts/profile.js b/src/controllers/accounts/profile.js
index 8b049b8e34..d2737ee314 100644
--- a/src/controllers/accounts/profile.js
+++ b/src/controllers/accounts/profile.js
@@ -8,7 +8,6 @@ const user = require('../../user');
 const posts = require('../../posts');
 const categories = require('../../categories');
 const plugins = require('../../plugins');
-const meta = require('../../meta');
 const privileges = require('../../privileges');
 const accountHelpers = require('./helpers');
 const helpers = require('../helpers');
@@ -40,16 +39,11 @@ profileController.get = async function (req, res, next) {
 		posts.parseSignature(userData, req.uid),
 	]);
 
-	if (meta.config['reputation:disabled']) {
-		delete userData.reputation;
-	}
-
 	userData.posts = latestPosts; // for backwards compat.
 	userData.latestPosts = latestPosts;
 	userData.bestPosts = bestPosts;
 	userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username }]);
 	userData.title = userData.username;
-	userData.allowCoverPicture = !userData.isSelf || !!meta.config['reputation:disabled'] || userData.reputation >= meta.config['min:rep:cover-picture'];
 
 	// Show email changed modal on first access after said change
 	userData.emailChanged = req.session.emailChanged;
@@ -61,9 +55,6 @@ profileController.get = async function (req, res, next) {
 
 	addMetaTags(res, userData);
 
-	userData.selectedGroup = userData.groups.filter(group => group && userData.groupTitleArray.includes(group.name))
-		.sort((a, b) => userData.groupTitleArray.indexOf(a.name) - userData.groupTitleArray.indexOf(b.name));
-
 	res.render('account/profile', userData);
 };
 
diff --git a/src/controllers/accounts/sessions.js b/src/controllers/accounts/sessions.js
index c1713d3d62..74896346d7 100644
--- a/src/controllers/accounts/sessions.js
+++ b/src/controllers/accounts/sessions.js
@@ -2,19 +2,17 @@
 
 const user = require('../../user');
 const helpers = require('../helpers');
-const accountHelpers = require('./helpers');
 
 const sessionController = module.exports;
 
-sessionController.get = async function (req, res, next) {
-	const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
-	if (!userData) {
-		return next();
-	}
+sessionController.get = async function (req, res) {
+	const { username, userslug } = await user.getUserFields(res.locals.uid, ['username', 'userslug']);
 
-	userData.sessions = await user.auth.getSessions(userData.uid, req.sessionID);
-	userData.title = '[[pages:account/sessions]]';
-	userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: `/user/${userData.userslug}` }, { text: '[[pages:account/sessions]]' }]);
+	const payload = {
+		sessions: await user.auth.getSessions(res.locals.uid, req.sessionID),
+		title: '[[pages:account/sessions]]',
+		breadcrumbs: helpers.buildBreadcrumbs([{ text: username, url: `/user/${userslug}` }, { text: '[[pages:account/sessions]]' }]),
+	};
 
-	res.render('account/sessions', userData);
+	res.render('account/sessions', payload);
 };
diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js
index 824e12af4f..d7c6b3d45c 100644
--- a/src/controllers/accounts/settings.js
+++ b/src/controllers/accounts/settings.js
@@ -56,26 +56,12 @@ settingsController.get = async function (req, res, next) {
 		{ value: 'biweek', name: '[[user:digest_biweekly]]', selected: userData.settings.dailyDigestFreq === 'biweek' },
 		{ value: 'month', name: '[[user:digest_monthly]]', selected: userData.settings.dailyDigestFreq === 'month' },
 	];
-
 	userData.bootswatchSkinOptions = [
 		{ name: 'Default', value: '' },
-		{ name: 'Cerulean', value: 'cerulean' },
-		{ name: 'Cosmo', value: 'cosmo' },
-		{ name: 'Cyborg', value: 'cyborg' },
-		{ name: 'Darkly', value: 'darkly' },
-		{ name: 'Flatly', value: 'flatly' },
-		{ name: 'Journal', value: 'journal' },
-		{ name: 'Lumen', value: 'lumen' },
-		{ name: 'Paper', value: 'paper' },
-		{ name: 'Readable', value: 'readable' },
-		{ name: 'Sandstone', value: 'sandstone' },
-		{ name: 'Simplex', value: 'simplex' },
-		{ name: 'Slate', value: 'slate' },
-		{ name: 'Spacelab', value: 'spacelab' },
-		{ name: 'Superhero', value: 'superhero' },
-		{ name: 'United', value: 'united' },
-		{ name: 'Yeti', value: 'yeti' },
 	];
+	userData.bootswatchSkinOptions.push(
+		...meta.css.supportedSkins.map(skin => ({ name: _.capitalize(skin), value: skin }))
+	);
 
 	userData.bootswatchSkinOptions.forEach((skin) => {
 		skin.selected = skin.value === userData.settings.bootswatchSkin;
diff --git a/src/controllers/accounts/uploads.js b/src/controllers/accounts/uploads.js
index b8afa0d1fe..edfbe23740 100644
--- a/src/controllers/accounts/uploads.js
+++ b/src/controllers/accounts/uploads.js
@@ -6,35 +6,33 @@ const nconf = require('nconf');
 
 const db = require('../../database');
 const helpers = require('../helpers');
+const user = require('../../user');
 const meta = require('../../meta');
 const pagination = require('../../pagination');
-const accountHelpers = require('./helpers');
 
 const uploadsController = module.exports;
 
-uploadsController.get = async function (req, res, next) {
-	const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
-	if (!userData) {
-		return next();
-	}
-
+uploadsController.get = async function (req, res) {
+	const { username, userslug } = await user.getUserFields(res.locals.uid, ['username', 'userslug']);
 	const page = Math.max(1, parseInt(req.query.page, 10) || 1);
 	const itemsPerPage = 25;
 	const start = (page - 1) * itemsPerPage;
 	const stop = start + itemsPerPage - 1;
 	const [itemCount, uploadNames] = await Promise.all([
-		db.sortedSetCard(`uid:${userData.uid}:uploads`),
-		db.getSortedSetRevRange(`uid:${userData.uid}:uploads`, start, stop),
+		db.sortedSetCard(`uid:${res.locals.uid}:uploads`),
+		db.getSortedSetRevRange(`uid:${res.locals.uid}:uploads`, start, stop),
 	]);
 
-	userData.uploads = uploadNames.map(uploadName => ({
+	const payload = {};
+	payload.uploads = uploadNames.map(uploadName => ({
 		name: uploadName,
 		url: path.resolve(nconf.get('upload_url'), uploadName),
 	}));
 	const pageCount = Math.ceil(itemCount / itemsPerPage);
-	userData.pagination = pagination.create(page, pageCount, req.query);
-	userData.privateUploads = meta.config.privateUploads === 1;
-	userData.title = `[[pages:account/uploads, ${userData.username}]]`;
-	userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: `/user/${userData.userslug}` }, { text: '[[global:uploads]]' }]);
-	res.render('account/uploads', userData);
+	payload.pagination = pagination.create(page, pageCount, req.query);
+	payload.privateUploads = meta.config.privateUploads === 1;
+	payload.title = `[[pages:account/uploads, ${username}]]`;
+	payload.breadcrumbs = helpers.buildBreadcrumbs([{ text: username, url: `/user/${userslug}` }, { text: '[[global:uploads]]' }]);
+
+	res.render('account/uploads', payload);
 };
diff --git a/src/controllers/admin/cache.js b/src/controllers/admin/cache.js
index 6d5c385a22..43d6f4ddca 100644
--- a/src/controllers/admin/cache.js
+++ b/src/controllers/admin/cache.js
@@ -10,7 +10,7 @@ cacheController.get = async function (req, res) {
 	const groupCache = require('../../groups').cache;
 	const { objectCache } = require('../../database');
 	const localCache = require('../../cache');
-
+	const uptimeInSeconds = process.uptime();
 	function getInfo(cache) {
 		return {
 			length: cache.length,
@@ -21,6 +21,7 @@ cacheController.get = async function (req, res) {
 				((cache.length / cache.maxSize) * 100).toFixed(2) :
 				((cache.itemCount / cache.max) * 100).toFixed(2),
 			hits: utils.addCommas(String(cache.hits)),
+			hitsPerSecond: (cache.hits / uptimeInSeconds).toFixed(2),
 			misses: utils.addCommas(String(cache.misses)),
 			hitRatio: ((cache.hits / (cache.hits + cache.misses) || 0)).toFixed(4),
 			enabled: cache.enabled,
diff --git a/src/controllers/admin/dashboard.js b/src/controllers/admin/dashboard.js
index ac9f4fc130..711bc0e9fe 100644
--- a/src/controllers/admin/dashboard.js
+++ b/src/controllers/admin/dashboard.js
@@ -337,8 +337,54 @@ dashboardController.getTopics = async (req, res) => {
 };
 
 dashboardController.getSearches = async (req, res) => {
-	const searches = await db.getSortedSetRevRangeWithScores('searches:all', 0, 99);
+	let start = 0;
+	let end = 0;
+	if (req.query.start) {
+		start = new Date(req.query.start);
+		start.setHours(24, 0, 0, 0);
+		end = new Date();
+		end.setHours(24, 0, 0, 0);
+	}
+	if (req.query.end) {
+		end = new Date(req.query.end);
+		end.setHours(24, 0, 0, 0);
+	}
+
+	let searches;
+	if (start && end && start <= end) {
+		const daysArr = [start];
+		const nextDay = new Date(start.getTime());
+		while (nextDay < end) {
+			nextDay.setDate(nextDay.getDate() + 1);
+			nextDay.setHours(0, 0, 0, 0);
+			daysArr.push(new Date(nextDay.getTime()));
+		}
+
+		const daysData = await Promise.all(
+			daysArr.map(async d => db.getSortedSetRevRangeWithScores(`searches:${d.getTime()}`, 0, -1))
+		);
+
+		const map = {};
+		daysData.forEach((d) => {
+			d.forEach((search) => {
+				if (!map[search.value]) {
+					map[search.value] = search.score;
+				} else {
+					map[search.value] += search.score;
+				}
+			});
+		});
+
+		searches = Object.keys(map)
+			.map(key => ({ value: key, score: map[key] }))
+			.sort((a, b) => b.score - a.score);
+	} else {
+		searches = await db.getSortedSetRevRangeWithScores('searches:all', 0, 99);
+	}
+
 	res.render('admin/dashboard/searches', {
 		searches: searches.map(s => ({ value: validator.escape(String(s.value)), score: s.score })),
+		startDate: req.query.start ? validator.escape(String(req.query.start)) : null,
+		endDate: req.query.end ? validator.escape(String(req.query.end)) : null,
 	});
 };
diff --git a/src/controllers/admin/hooks.js b/src/controllers/admin/hooks.js
index 0f68a7e47e..c3511ebaf3 100644
--- a/src/controllers/admin/hooks.js
+++ b/src/controllers/admin/hooks.js
@@ -20,7 +20,7 @@ hooksController.get = function (req, res) {
 				id: hookData.id,
 				priority: hookData.priority,
 				method: hookData.method ? validator.escape(hookData.method.toString()) : 'No plugin function!',
-				index: `${hookIndex}-code-${methodIndex}`,
+				index: `hook-${hookIndex}-code-${methodIndex}`,
 			});
 		});
 		hooks.push(current);
diff --git a/src/controllers/admin/settings.js b/src/controllers/admin/settings.js
index ca0765cc02..3255680a1e 100644
--- a/src/controllers/admin/settings.js
+++ b/src/controllers/admin/settings.js
@@ -9,6 +9,7 @@ const groups = require('../../groups');
 const languages = require('../../languages');
 const navigationAdmin = require('../../navigation/admin');
 const social = require('../../social');
+const api = require('../../api');
 
 const helpers = require('../helpers');
 const translator = require('../../translator');
@@ -108,3 +109,16 @@ settingsController.social = async function (req, res) {
 		posts: posts,
 	});
 };
+
+settingsController.api = async (req, res) => {
+	const { tokens } = await meta.settings.get('core.api');
+	const scores = await api.utils.getLastSeen(tokens.map(t => t.token));
+
+	const [lastSeen, lastSeenISO] = tokens.reduce((memo, cur, idx) => {
+		memo[0][cur.token] = scores[idx];
+		memo[1][cur.token] = new Date(scores[idx]).toISOString();
+		return memo;
+	}, [{}, {}]);
+
+	res.render('admin/settings/api', { lastSeen, lastSeenISO });
+};
diff --git a/src/controllers/api.js b/src/controllers/api.js
index 7474f6e7a0..a2a6f0c96b 100644
--- a/src/controllers/api.js
+++ b/src/controllers/api.js
@@ -9,6 +9,7 @@ const categories = require('../categories');
 const plugins = require('../plugins');
 const translator = require('../translator');
 const languages = require('../languages');
+const { generateToken } = require('../middleware/csrf');
 
 const apiController = module.exports;
 
@@ -64,10 +65,11 @@ apiController.loadConfig = async function (req) {
 		'cache-buster': meta.config['cache-buster'] || '',
 		topicPostSort: meta.config.topicPostSort || 'oldest_to_newest',
 		categoryTopicSort: meta.config.categoryTopicSort || 'newest_to_oldest',
-		csrf_token: req.uid >= 0 && req.csrfToken && req.csrfToken(),
+		csrf_token: req.uid >= 0 ? generateToken(req) : false,
 		searchEnabled: plugins.hooks.hasListeners('filter:search.query'),
 		searchDefaultInQuick: meta.config.searchDefaultInQuick || 'titles',
 		bootswatchSkin: meta.config.bootswatchSkin || '',
+		'composer:showHelpTab': meta.config['composer:showHelpTab'] === 1,
 		enablePostHistory: meta.config.enablePostHistory === 1,
 		timeagoCutoff: meta.config.timeagoCutoff !== '' ? Math.max(0, parseInt(meta.config.timeagoCutoff, 10)) : meta.config.timeagoCutoff,
 		timeagoCodes: languages.timeagoCodes,
@@ -110,6 +112,7 @@ apiController.loadConfig = async function (req) {
 	config.topicPostSort = settings.topicPostSort || config.topicPostSort;
 	config.categoryTopicSort = settings.categoryTopicSort || config.categoryTopicSort;
 	config.topicSearchEnabled = settings.topicSearchEnabled || false;
+	config.disableCustomUserSkins = meta.config.disableCustomUserSkins === 1;
 	config.bootswatchSkin = (meta.config.disableCustomUserSkins !== 1 && settings.bootswatchSkin && settings.bootswatchSkin !== '') ? settings.bootswatchSkin : '';
 
 	// Overrides based on privilege
diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js
index bb6e6bf49f..dcd9aa371f 100644
--- a/src/controllers/authentication.js
+++ b/src/controllers/authentication.js
@@ -25,15 +25,10 @@ async function registerAndLoginUser(req, res, userData) {
 		userData.updateEmail = true;
 	}
 
-	const data = await plugins.hooks.fire('filter:register.interstitial', {
-		req,
-		userData,
-		interstitials: [],
-	});
+	const data = await user.interstitials.get(req, userData);
 
 	// If interstitials are found, save registration attempt into session and abort
 	const deferRegistration = data.interstitials.length;
-
 	if (deferRegistration) {
 		userData.register = true;
 		req.session.registration = userData;
@@ -45,6 +40,7 @@ async function registerAndLoginUser(req, res, userData) {
 		res.json({ next: `${nconf.get('relative_path')}/register/complete` });
 		return;
 	}
+
 	const queue = await user.shouldQueueUser(req.ip);
 	const result = await plugins.hooks.fire('filter:register.shouldQueue', { req: req, res: res, userData: userData, queue: queue });
 	if (result.queue) {
@@ -140,12 +136,7 @@ async function addToApprovalQueue(req, userData) {
 authenticationController.registerComplete = async function (req, res) {
 	try {
 		// For the interstitials that respond, execute the callback with the form body
-		const data = await plugins.hooks.fire('filter:register.interstitial', {
-			req,
-			userData: req.session.registration,
-			interstitials: [],
-		});
-
+		const data = await user.interstitials.get(req, req.session.registration);
 		const callbacks = data.interstitials.reduce((memo, cur) => {
 			if (cur.hasOwnProperty('callback') && typeof cur.callback === 'function') {
 				req.body.files = req.files;
@@ -218,18 +209,22 @@ authenticationController.registerComplete = async function (req, res) {
 	}
 };
 
-authenticationController.registerAbort = function (req, res) {
+authenticationController.registerAbort = async (req, res) => {
 	if (req.uid) {
-		// Clear interstitial data and continue on...
-		delete req.session.registration;
-		res.redirect(nconf.get('relative_path') + (req.session.returnTo || '/'));
-	} else {
-		// End the session and redirect to home
-		req.session.destroy(() => {
-			res.clearCookie(nconf.get('sessionKey'), meta.configs.cookie.get());
-			res.redirect(`${nconf.get('relative_path')}/`);
-		});
+		// Email is the only cancelable interstitial
+		delete req.session.registration.updateEmail;
+
+		const { interstitials } = await user.interstitials.get(req, req.session.registration);
+		if (!interstitials.length) {
+			return res.redirect(nconf.get('relative_path') + (req.session.returnTo || '/'));
+		}
 	}
+
+	// End the session and redirect to home
+	req.session.destroy(() => {
+		res.clearCookie(nconf.get('sessionKey'), meta.configs.cookie.get());
+		res.redirect(`${nconf.get('relative_path')}/`);
+	});
 };
 
 authenticationController.login = async (req, res, next) => {
@@ -294,8 +289,9 @@ function continueLogin(strategy, req, res, next) {
 			req.session.cookie.maxAge = duration;
 			req.session.cookie.expires = new Date(Date.now() + duration);
 		} else {
-			req.session.cookie.maxAge = false;
-			req.session.cookie.expires = false;
+			const duration = meta.config.sessionDuration * 1000;
+			req.session.cookie.maxAge = duration || false;
+			req.session.cookie.expires = duration ? new Date(Date.now() + duration) : false;
 		}
 
 		plugins.hooks.fire('action:login.continue', { req, strategy, userData, error: null });
@@ -401,6 +397,9 @@ authenticationController.onSuccessfulLogin = async function (req, uid) {
 	}
 };
 
+const destroyAsync = util.promisify((req, callback) => req.session.destroy(callback));
+const logoutAsync = util.promisify((req, callback) => req.logout(callback));
+
 authenticationController.localLogin = async function (req, username, password, next) {
 	if (!username) {
 		return next(new Error('[[error:invalid-username]]'));
@@ -435,9 +434,17 @@ authenticationController.localLogin = async function (req, username, password, n
 			return next(new Error('[[error:local-login-disabled]]'));
 		}
 
-		const passwordMatch = await user.isPasswordCorrect(uid, password, req.ip);
-		if (!passwordMatch) {
-			return next(new Error('[[error:invalid-login-credentials]]'));
+		try {
+			const passwordMatch = await user.isPasswordCorrect(uid, password, req.ip);
+			if (!passwordMatch) {
+				return next(new Error('[[error:invalid-login-credentials]]'));
+			}
+		} catch (e) {
+			if (req.loggedIn) {
+				await logoutAsync(req);
+				await destroyAsync(req);
+			}
+			throw e;
 		}
 
 		next(null, userData, '[[success:authentication-successful]]');
@@ -446,9 +453,6 @@ authenticationController.localLogin = async function (req, username, password, n
 	}
 };
 
-const destroyAsync = util.promisify((req, callback) => req.session.destroy(callback));
-const logoutAsync = util.promisify((req, callback) => req.logout(callback));
-
 authenticationController.logout = async function (req, res, next) {
 	if (!req.loggedIn || !req.sessionID) {
 		res.clearCookie(nconf.get('sessionKey'), meta.configs.cookie.get());
@@ -460,7 +464,6 @@ authenticationController.logout = async function (req, res, next) {
 	try {
 		await user.auth.revokeSession(sessionID, uid);
 		await logoutAsync(req);
-
 		await destroyAsync(req);
 		res.clearCookie(nconf.get('sessionKey'), meta.configs.cookie.get());
 
diff --git a/src/controllers/category.js b/src/controllers/category.js
index d233dbb369..1c3a7d8f82 100644
--- a/src/controllers/category.js
+++ b/src/controllers/category.js
@@ -30,9 +30,10 @@ categoryController.get = async function (req, res, next) {
 		return next();
 	}
 
-	const [categoryFields, userPrivileges, userSettings, rssToken] = await Promise.all([
+	const [categoryFields, userPrivileges, tagData, userSettings, rssToken] = await Promise.all([
 		categories.getCategoryFields(cid, ['slug', 'disabled', 'link']),
 		privileges.categories.get(cid, req.uid),
+		helpers.getSelectedTag(req.query.tag),
 		user.getSettings(req.uid),
 		user.auth.getFeedToken(req.uid),
 	]);
@@ -121,6 +122,8 @@ categoryController.get = async function (req, res, next) {
 	categoryData.showSelect = userPrivileges.editable;
 	categoryData.showTopicTools = userPrivileges.editable;
 	categoryData.topicIndex = topicIndex;
+	categoryData.selectedTag = tagData.selectedTag;
+	categoryData.selectedTags = tagData.selectedTags;
 	categoryData.rssFeedUrl = `${url}/category/${categoryData.cid}.rss`;
 	if (parseInt(req.uid, 10)) {
 		categories.markAsRead([cid], req.uid);
diff --git a/src/controllers/groups.js b/src/controllers/groups.js
index e7b32899b7..3cdb435f9c 100644
--- a/src/controllers/groups.js
+++ b/src/controllers/groups.js
@@ -23,6 +23,7 @@ groupsController.list = async function (req, res) {
 	res.render('groups/list', {
 		groups: groupData,
 		allowGroupCreation: allowGroupCreation,
+		sort: validator.escape(String(sort)),
 		nextStart: 15,
 		title: '[[pages:groups]]',
 		breadcrumbs: helpers.buildBreadcrumbs([{ text: '[[pages:groups]]' }]),
@@ -45,7 +46,7 @@ groupsController.details = async function (req, res, next) {
 	const [exists, isHidden, isAdmin, isGlobalMod] = await Promise.all([
 		groups.exists(groupName),
 		groups.isHidden(groupName),
-		user.isAdministrator(req.uid),
+		privileges.admin.can('admin:groups', req.uid),
 		user.isGlobalModerator(req.uid),
 	]);
 	if (!exists) {
diff --git a/src/controllers/helpers.js b/src/controllers/helpers.js
index dcb6f55e4c..3d15ea12be 100644
--- a/src/controllers/helpers.js
+++ b/src/controllers/helpers.js
@@ -356,6 +356,24 @@ helpers.getSelectedCategory = async function (cids) {
 	};
 };
 
+helpers.getSelectedTag = function (tags) {
+	if (tags && !Array.isArray(tags)) {
+		tags = [tags];
+	}
+	tags = tags || [];
+	const tagData = tags.map(t => validator.escape(String(t)));
+	let selectedTag = null;
+	if (tagData.length) {
+		selectedTag = {
+			label: tagData.join(', '),
+		};
+	}
+	return {
+		selectedTags: tagData,
+		selectedTag: selectedTag,
+	};
+};
+
 helpers.trimChildren = function (category) {
 	if (category && Array.isArray(category.children)) {
 		category.children = category.children.slice(0, category.subCategoriesPerPage);
@@ -371,11 +389,14 @@ helpers.trimChildren = function (category) {
 
 helpers.setCategoryTeaser = function (category) {
 	if (Array.isArray(category.posts) && category.posts.length && category.posts[0]) {
+		const post = category.posts[0];
 		category.teaser = {
-			url: `${nconf.get('relative_path')}/post/${category.posts[0].pid}`,
-			timestampISO: category.posts[0].timestampISO,
-			pid: category.posts[0].pid,
-			topic: category.posts[0].topic,
+			url: `${nconf.get('relative_path')}/post/${post.pid}`,
+			timestampISO: post.timestampISO,
+			pid: post.pid,
+			index: post.index,
+			topic: post.topic,
+			user: post.user,
 		};
 	}
 };
@@ -469,6 +490,10 @@ helpers.formatApiResponse = async (statusCode, res, payload) => {
 			case '[[error:invalid-uid]]':
 				statusCode = 401;
 				break;
+
+			case '[[error:no-topic]]':
+				statusCode = 404;
+				break;
 		}
 
 		if (message.startsWith('[[error:required-parameters-missing, ')) {
diff --git a/src/controllers/index.js b/src/controllers/index.js
index 896a4a8e5f..1523c7073d 100644
--- a/src/controllers/index.js
+++ b/src/controllers/index.js
@@ -193,11 +193,7 @@ Controllers.registerInterstitial = async function (req, res, next) {
 		return res.redirect(`${nconf.get('relative_path')}/register`);
 	}
 	try {
-		const data = await plugins.hooks.fire('filter:register.interstitial', {
-			req,
-			userData: req.session.registration,
-			interstitials: [],
-		});
+		const data = await user.interstitials.get(req, req.session.registration);
 
 		if (!data.interstitials.length) {
 			// No interstitials, redirect to home
diff --git a/src/controllers/mods.js b/src/controllers/mods.js
index 760c119fbe..4976dd9e82 100644
--- a/src/controllers/mods.js
+++ b/src/controllers/mods.js
@@ -4,7 +4,9 @@ const _ = require('lodash');
 
 const user = require('../user');
 const groups = require('../groups');
+const meta = require('../meta');
 const posts = require('../posts');
+const db = require('../database');
 const flags = require('../flags');
 const analytics = require('../analytics');
 const plugins = require('../plugins');
@@ -94,10 +96,27 @@ modsController.flags.list = async function (req, res) {
 		helpers.getSelectedCategory(filters.cid),
 	]);
 
+	// Send back information for userFilter module
+	const selected = {};
+	await Promise.all(['assignee', 'reporterId', 'targetUid'].map(async (filter) => {
+		let uids = filters[filter];
+		if (!uids) {
+			selected[filter] = [];
+			return;
+		}
+		if (!Array.isArray(uids)) {
+			uids = [uids];
+		}
+
+		selected[filter] = await user.getUsersFields(uids, ['username', 'userslug', 'picture']);
+	}));
+
 	res.render('flags/list', {
 		flags: flagsData.flags,
+		count: flagsData.count,
 		analytics: analyticsData,
 		selectedCategory: selectData.selectedCategory,
+		selected,
 		hasFilter: hasFilter,
 		filters: filters,
 		expanded: !!(filters.assignee || filters.reporterId || filters.targetUid),
@@ -116,11 +135,27 @@ modsController.flags.detail = async function (req, res, next) {
 		privileges: Promise.all(['global', 'admin'].map(async type => privileges[type].get(req.uid))),
 	});
 	results.privileges = { ...results.privileges[0], ...results.privileges[1] };
-
 	if (!results.flagData || (!(results.isAdminOrGlobalMod || !!results.moderatedCids.length))) {
 		return next(); // 404
 	}
 
+	// extra checks for plain moderators
+	if (!results.isAdminOrGlobalMod) {
+		if (results.flagData.type === 'user') {
+			return next();
+		}
+		if (results.flagData.type === 'post') {
+			const isFlagInModeratedCids = await db.isMemberOfSortedSets(
+				results.moderatedCids.map(cid => `flags:byCid:${cid}`),
+				results.flagData.flagId
+			);
+			if (!isFlagInModeratedCids.includes(true)) {
+				return next();
+			}
+		}
+	}
+
+
 	async function getAssignees(flagData) {
 		let uids = [];
 		const [admins, globalMods] = await Promise.all([
@@ -143,7 +178,7 @@ modsController.flags.detail = async function (req, res, next) {
 	}
 
 	const assignees = await getAssignees(results.flagData);
-	results.flagData.history = results.isAdminOrGlobalMod ? (await flags.getHistory(req.params.flagId)) : null;
+	results.flagData.history = await flags.getHistory(req.params.flagId);
 
 	if (results.flagData.type === 'user') {
 		results.flagData.type_path = 'uid';
@@ -185,16 +220,24 @@ modsController.postQueue = async function (req, res, next) {
 	const postsPerPage = 20;
 
 	let postData = await posts.getQueuedPosts({ id: id });
-	const [isAdmin, isGlobalMod, moderatedCids, categoriesData] = await Promise.all([
+	let [isAdmin, isGlobalMod, moderatedCids, categoriesData, _privileges] = await Promise.all([
 		user.isAdministrator(req.uid),
 		user.isGlobalModerator(req.uid),
 		user.getModeratedCids(req.uid),
 		helpers.getSelectedCategory(cid),
+		Promise.all(['global', 'admin'].map(async type => privileges[type].get(req.uid))),
 	]);
+	_privileges = { ..._privileges[0], ..._privileges[1] };
 
-	postData = postData.filter(p => p &&
-		(!categoriesData.selectedCids.length || categoriesData.selectedCids.includes(p.category.cid)) &&
-		(isAdmin || isGlobalMod || moderatedCids.includes(Number(p.category.cid)) || req.uid === p.user.uid));
+	postData = postData
+		.filter(p => p &&
+			(!categoriesData.selectedCids.length || categoriesData.selectedCids.includes(p.category.cid)) &&
+			(isAdmin || isGlobalMod || moderatedCids.includes(Number(p.category.cid)) || req.uid === p.user.uid))
+		.map((post) => {
+			const isSelf = post.user.uid === req.uid;
+			post.canAccept = !isSelf && (isAdmin || isGlobalMod || !!moderatedCids.length);
+			return post;
+		});
 
 	({ posts: postData } = await plugins.hooks.fire('filter:post-queue.get', {
 		posts: postData,
@@ -214,11 +257,13 @@ modsController.postQueue = async function (req, res, next) {
 		title: '[[pages:post-queue]]',
 		posts: postData,
 		isAdmin: isAdmin,
-		canAccept: isAdmin || isGlobalMod || !!moderatedCids.length,
+		canAccept: isAdmin || isGlobalMod,
 		...categoriesData,
 		allCategoriesUrl: `post-queue${helpers.buildQueryString(req.query, 'cid', '')}`,
 		pagination: pagination.create(page, pageCount),
 		breadcrumbs: helpers.buildBreadcrumbs(crumbs),
+		enabled: meta.config.postQueue,
 		singlePost: !!id,
+		privileges: _privileges,
 	});
 };
diff --git a/src/controllers/recent.js b/src/controllers/recent.js
index 344ec3b3eb..ee6347ebc7 100644
--- a/src/controllers/recent.js
+++ b/src/controllers/recent.js
@@ -4,7 +4,6 @@
 const nconf = require('nconf');
 
 const user = require('../user');
-const categories = require('../categories');
 const topics = require('../topics');
 const meta = require('../meta');
 const helpers = require('./helpers');
@@ -19,13 +18,14 @@ recentController.get = async function (req, res, next) {
 	if (!data) {
 		return next();
 	}
+
 	res.render('recent', data);
 };
 
 recentController.getData = async function (req, url, sort) {
 	const page = parseInt(req.query.page, 10) || 1;
 	let term = helpers.terms[req.query.term];
-	const { cid, tags } = req.query;
+	const { cid, tag } = req.query;
 	const filter = req.query.filter || '';
 
 	if (!term && req.query.term) {
@@ -33,11 +33,12 @@ recentController.getData = async function (req, url, sort) {
 	}
 	term = term || 'alltime';
 
-	const [settings, categoryData, rssToken, canPost, isPrivileged] = await Promise.all([
+	const [settings, categoryData, tagData, rssToken, canPost, isPrivileged] = await Promise.all([
 		user.getSettings(req.uid),
 		helpers.getSelectedCategory(cid),
+		helpers.getSelectedTag(tag),
 		user.auth.getFeedToken(req.uid),
-		canPostTopic(req.uid),
+		privileges.categories.canPostTopic(req.uid),
 		user.isPrivileged(req.uid),
 	]);
 
@@ -46,7 +47,7 @@ recentController.getData = async function (req, url, sort) {
 
 	const data = await topics.getSortedTopics({
 		cids: cid,
-		tags: tags,
+		tags: tag,
 		uid: req.uid,
 		start: start,
 		stop: stop,
@@ -73,6 +74,8 @@ recentController.getData = async function (req, url, sort) {
 	data.allCategoriesUrl = baseUrl + helpers.buildQueryString(req.query, 'cid', '');
 	data.selectedCategory = categoryData.selectedCategory;
 	data.selectedCids = categoryData.selectedCids;
+	data.selectedTag = tagData.selectedTag;
+	data.selectedTags = tagData.selectedTags;
 	data['feeds:disableRSS'] = meta.config['feeds:disableRSS'] || 0;
 	data.rssFeedUrl = `${relative_path}/${url}.rss`;
 	if (req.loggedIn) {
@@ -90,10 +93,5 @@ recentController.getData = async function (req, url, sort) {
 	return data;
 };
 
-async function canPostTopic(uid) {
-	let cids = await categories.getAllCidsFromSet('categories:cid');
-	cids = await privileges.categories.filterCids('topics:create', cids, uid);
-	return cids.length > 0;
-}
 
 require('../promisify')(recentController, ['get']);
diff --git a/src/controllers/search.js b/src/controllers/search.js
index 238c167709..49fd58a6dc 100644
--- a/src/controllers/search.js
+++ b/src/controllers/search.js
@@ -2,14 +2,18 @@
 'use strict';
 
 const validator = require('validator');
+const _ = require('lodash');
 
 const db = require('../database');
 const meta = require('../meta');
 const plugins = require('../plugins');
 const search = require('../search');
 const categories = require('../categories');
+const user = require('../user');
+const topics = require('../topics');
 const pagination = require('../pagination');
 const privileges = require('../privileges');
+const translator = require('../translator');
 const utils = require('../utils');
 const helpers = require('./helpers');
 
@@ -57,21 +61,20 @@ searchController.search = async function (req, res, next) {
 		categories: req.query.categories,
 		searchChildren: req.query.searchChildren,
 		hasTags: req.query.hasTags,
-		replies: req.query.replies,
-		repliesFilter: req.query.repliesFilter,
-		timeRange: req.query.timeRange,
-		timeFilter: req.query.timeFilter,
-		sortBy: req.query.sortBy || meta.config.searchDefaultSortBy || '',
-		sortDirection: req.query.sortDirection,
+		replies: validator.escape(String(req.query.replies || '')),
+		repliesFilter: validator.escape(String(req.query.repliesFilter || '')),
+		timeRange: validator.escape(String(req.query.timeRange || '')),
+		timeFilter: validator.escape(String(req.query.timeFilter || '')),
+		sortBy: validator.escape(String(req.query.sortBy || '')) || meta.config.searchDefaultSortBy || '',
+		sortDirection: validator.escape(String(req.query.sortDirection || '')),
 		page: page,
 		itemsPerPage: req.query.itemsPerPage,
 		uid: req.uid,
 		qs: req.query,
 	};
 
-	const [searchData, categoriesData] = await Promise.all([
+	const [searchData] = await Promise.all([
 		search.search(data),
-		buildCategories(req.uid, searchOnly),
 		recordSearch(data),
 	]);
 
@@ -84,16 +87,55 @@ searchController.search = async function (req, res, next) {
 		return res.json(searchData);
 	}
 
-	searchData.allCategories = categoriesData;
-	searchData.allCategoriesCount = Math.max(10, Math.min(20, categoriesData.length));
 
 	searchData.breadcrumbs = helpers.buildBreadcrumbs([{ text: '[[global:search]]' }]);
-	searchData.expandSearch = !req.query.term;
-
 	searchData.showAsPosts = !req.query.showAs || req.query.showAs === 'posts';
 	searchData.showAsTopics = req.query.showAs === 'topics';
 	searchData.title = '[[global:header.search]]';
+	if (Array.isArray(data.categories)) {
+		searchData.selectedCids = data.categories.map(cid => validator.escape(String(cid)));
+		if (!searchData.selectedCids.includes('all') && searchData.selectedCids.length) {
+			searchData.selectedCategory = { cid: 0 };
+		}
+	}
+
+	searchData.filters = {
+		replies: {
+			active: !!data.repliesFilter,
+			label: `[[search:replies-${data.repliesFilter}-count, ${data.replies}]]`,
+		},
+		time: {
+			active: !!(data.timeFilter && data.timeRange),
+			label: `[[search:time-${data.timeFilter}-than-${data.timeRange}]]`,
+		},
+		sort: {
+			active: !!(data.sortBy && data.sortBy !== 'relevance'),
+			label: `[[search:sort-by-${data.sortBy}-${data.sortDirection}]]`,
+		},
+		users: {
+			active: !!(data.postedBy),
+			label: translator.compile(
+				'search:posted-by-usernames',
+				(Array.isArray(data.postedBy) ? data.postedBy : [])
+					.map(u => validator.escape(String(u))).join(', ')
+			),
+		},
+		tags: {
+			active: !!(Array.isArray(data.hasTags) && data.hasTags.length),
+			label: translator.compile(
+				'search:tags-x',
+				(Array.isArray(data.hasTags) ? data.hasTags : [])
+					.map(u => validator.escape(String(u))).join(', ')
+			),
+		},
+		categories: {
+			active: !!(Array.isArray(data.categories) && data.categories.length),
+			label: await buildSelectedCategoryLabel(searchData.selectedCids),
+		},
+	};
 
+	searchData.userFilterSelected = await getSelectedUsers(data.postedBy);
+	searchData.tagFilterSelected = getSelectedTags(data.hasTags);
 	searchData.searchDefaultSortBy = meta.config.searchDefaultSortBy || '';
 	searchData.searchDefaultIn = meta.config.searchDefaultIn || 'titlesposts';
 	searchData.privileges = userPrivileges;
@@ -105,41 +147,63 @@ const searches = {};
 
 async function recordSearch(data) {
 	const { query, searchIn } = data;
-	if (query) {
-		const cleanedQuery = String(query).trim().toLowerCase().slice(0, 255);
-		if (['titles', 'titlesposts', 'posts'].includes(searchIn) && cleanedQuery.length > 2) {
-			searches[data.uid] = searches[data.uid] || { timeoutId: 0, queries: [] };
-			searches[data.uid].queries.push(cleanedQuery);
-			if (searches[data.uid].timeoutId) {
-				clearTimeout(searches[data.uid].timeoutId);
-			}
-			searches[data.uid].timeoutId = setTimeout(async () => {
-				if (searches[data.uid] && searches[data.uid].queries) {
-					const copy = searches[data.uid].queries.slice();
-					const filtered = searches[data.uid].queries.filter(
-						q => !copy.find(query => query.startsWith(q) && query.length > q.length)
-					);
-					delete searches[data.uid];
-					await Promise.all(filtered.map(query => db.sortedSetIncrBy('searches:all', 1, query)));
-				}
-			}, 5000);
+	if (!query || parseInt(data.qs.composer, 10) === 1) {
+		return;
+	}
+	const cleanedQuery = String(query).trim().toLowerCase().slice(0, 255);
+	if (['titles', 'titlesposts', 'posts'].includes(searchIn) && cleanedQuery.length > 2) {
+		searches[data.uid] = searches[data.uid] || { timeoutId: 0, queries: [] };
+		searches[data.uid].queries.push(cleanedQuery);
+		if (searches[data.uid].timeoutId) {
+			clearTimeout(searches[data.uid].timeoutId);
 		}
+		searches[data.uid].timeoutId = setTimeout(async () => {
+			if (searches[data.uid] && searches[data.uid].queries) {
+				const copy = searches[data.uid].queries.slice();
+				const filtered = searches[data.uid].queries.filter(
+					q => !copy.find(query => query.startsWith(q) && query.length > q.length)
+				);
+				delete searches[data.uid];
+				const dayTimestamp = (new Date());
+				dayTimestamp.setHours(0, 0, 0, 0);
+				await Promise.all(_.uniq(filtered).map(async (query) => {
+					await db.sortedSetIncrBy('searches:all', 1, query);
+					await db.sortedSetIncrBy(`searches:${dayTimestamp.getTime()}`, 1, query);
+				}));
+			}
+		}, 5000);
 	}
 }
 
-async function buildCategories(uid, searchOnly) {
-	if (searchOnly) {
+async function getSelectedUsers(postedBy) {
+	if (!Array.isArray(postedBy) || !postedBy.length) {
 		return [];
 	}
+	const uids = await user.getUidsByUsernames(postedBy);
+	return await user.getUsersFields(uids, ['username', 'userslug', 'picture']);
+}
 
-	const cids = await categories.getCidsByPrivilege('categories:cid', uid, 'read');
-	let categoriesData = await categories.getCategoriesData(cids);
-	categoriesData = categoriesData.filter(category => category && !category.link);
-	categoriesData = categories.getTree(categoriesData);
-	categoriesData = categories.buildForSelectCategories(categoriesData, ['text', 'value']);
+function getSelectedTags(hasTags) {
+	if (!Array.isArray(hasTags) || !hasTags.length) {
+		return [];
+	}
+	const tags = hasTags.map(tag => ({ value: tag }));
+	return topics.getTagData(tags);
+}
 
-	return [
-		{ value: 'all', text: '[[unread:all_categories]]' },
-		{ value: 'watched', text: '[[category:watched-categories]]' },
-	].concat(categoriesData);
+async function buildSelectedCategoryLabel(selectedCids) {
+	let label = '[[search:categories]]';
+	if (Array.isArray(selectedCids)) {
+		if (selectedCids.length > 1) {
+			label = `[[search:categories-x, ${selectedCids.length}]]`;
+		} else if (selectedCids.length === 1 && selectedCids[0] === 'watched') {
+			label = `[[search:categories-watched-categories]]`;
+		} else if (selectedCids.length === 1 && parseInt(selectedCids[0], 10)) {
+			const categoryData = await categories.getCategoryData(selectedCids[0]);
+			if (categoryData && categoryData.name) {
+				label = `[[search:categories-x, ${categoryData.name}]]`;
+			}
+		}
+	}
+	return label;
 }
diff --git a/src/controllers/tags.js b/src/controllers/tags.js
index a447460b1a..3165303445 100644
--- a/src/controllers/tags.js
+++ b/src/controllers/tags.js
@@ -25,10 +25,11 @@ tagsController.getTag = async function (req, res) {
 		breadcrumbs: helpers.buildBreadcrumbs([{ text: '[[tags:tags]]', url: '/tags' }, { text: tag }]),
 		title: `[[pages:tag, ${tag}]]`,
 	};
-	const [settings, cids, categoryData, isPrivileged] = await Promise.all([
+	const [settings, cids, categoryData, canPost, isPrivileged] = await Promise.all([
 		user.getSettings(req.uid),
 		cid || categories.getCidsByPrivilege('categories:cid', req.uid, 'topics:read'),
 		helpers.getSelectedCategory(cid),
+		privileges.categories.canPostTopic(req.uid),
 		user.isPrivileged(req.uid),
 	]);
 	const start = Math.max(0, (page - 1) * settings.topicsPerPage);
@@ -40,6 +41,7 @@ tagsController.getTag = async function (req, res) {
 	]);
 
 	templateData.topics = await topics.getTopics(tids, req.uid);
+	templateData.canPost = canPost;
 	templateData.showSelect = isPrivileged;
 	templateData.showTopicTools = isPrivileged;
 	templateData.allCategoriesUrl = `tags/${tag}${helpers.buildQueryString(req.query, 'cid', '')}`;
diff --git a/src/controllers/top.js b/src/controllers/top.js
index cc06e794c4..e2935ec54d 100644
--- a/src/controllers/top.js
+++ b/src/controllers/top.js
@@ -24,5 +24,6 @@ topController.get = async function (req, res, next) {
 	if (req.loggedIn) {
 		data.rssFeedUrl += `?${feedQs}`;
 	}
+
 	res.render('top', data);
 };
diff --git a/src/controllers/topics.js b/src/controllers/topics.js
index a92570b8c8..dd536cdf12 100644
--- a/src/controllers/topics.js
+++ b/src/controllers/topics.js
@@ -265,6 +265,13 @@ async function addTags(topicData, req, res) {
 			href: `${url}/category/${topicData.category.slug}`,
 		});
 	}
+
+	if (postAtIndex) {
+		res.locals.linkTags.push({
+			rel: 'author',
+			href: `${url}/user/${postAtIndex.user.userslug}`,
+		});
+	}
 }
 
 async function addOGImageTags(res, topicData, postAtIndex) {
diff --git a/src/controllers/unread.js b/src/controllers/unread.js
index 38cda453a0..5db883a12a 100644
--- a/src/controllers/unread.js
+++ b/src/controllers/unread.js
@@ -9,17 +9,20 @@ const pagination = require('../pagination');
 const user = require('../user');
 const topics = require('../topics');
 const helpers = require('./helpers');
+const privileges = require('../privileges');
 
 const unreadController = module.exports;
 const relative_path = nconf.get('relative_path');
 
 unreadController.get = async function (req, res) {
-	const { cid } = req.query;
+	const { cid, tag } = req.query;
 	const filter = req.query.filter || '';
 
-	const [categoryData, userSettings, isPrivileged] = await Promise.all([
+	const [categoryData, tagData, userSettings, canPost, isPrivileged] = await Promise.all([
 		helpers.getSelectedCategory(cid),
+		helpers.getSelectedTag(tag),
 		user.getSettings(req.uid),
+		privileges.categories.canPostTopic(req.uid),
 		user.isPrivileged(req.uid),
 	]);
 
@@ -28,6 +31,7 @@ unreadController.get = async function (req, res) {
 	const stop = start + userSettings.topicsPerPage - 1;
 	const data = await topics.getUnreadTopics({
 		cid: cid,
+		tag: tag,
 		uid: req.uid,
 		start: start,
 		stop: stop,
@@ -53,6 +57,7 @@ unreadController.get = async function (req, res) {
 		req.query.page = Math.max(1, Math.min(data.pageCount, page));
 		return helpers.redirect(res, `/unread?${querystring.stringify(req.query)}`);
 	}
+	data.canPost = canPost;
 	data.showSelect = true;
 	data.showTopicTools = isPrivileged;
 	data.allCategoriesUrl = `${baseUrl}${helpers.buildQueryString(req.query, 'cid', '')}`;
@@ -61,6 +66,8 @@ unreadController.get = async function (req, res) {
 	data.selectCategoryLabel = '[[unread:mark_as_read]]';
 	data.selectCategoryIcon = 'fa-inbox';
 	data.showCategorySelectLabel = true;
+	data.selectedTag = tagData.selectedTag;
+	data.selectedTags = tagData.selectedTags;
 	data.filters = helpers.buildFilters(baseUrl, filter, req.query);
 	data.selectedFilter = data.filters.find(filter => filter && filter.selected);
 
diff --git a/src/controllers/user.js b/src/controllers/user.js
index df71aa0b18..6c924acf87 100644
--- a/src/controllers/user.js
+++ b/src/controllers/user.js
@@ -1,8 +1,5 @@
 'use strict';
 
-const path = require('path');
-const winston = require('winston');
-
 const user = require('../user');
 const privileges = require('../privileges');
 const accountHelpers = require('./accounts/helpers');
@@ -79,40 +76,6 @@ userController.getUserDataByUID = async function (callerUid, uid) {
 	return userData;
 };
 
-userController.exportPosts = async function (req, res, next) {
-	sendExport(`${res.locals.uid}_posts.csv`, 'text/csv', res, next);
-};
-
-userController.exportUploads = function (req, res, next) {
-	sendExport(`${res.locals.uid}_uploads.zip`, 'application/zip', res, next);
-};
-
-userController.exportProfile = async function (req, res, next) {
-	sendExport(`${res.locals.uid}_profile.json`, 'application/json', res, next);
-};
-
-// DEPRECATED; Remove in NodeBB v3.0.0
-function sendExport(filename, type, res, next) {
-	winston.warn(`[users/export] Access via page API is deprecated, use GET /api/v3/users/:uid/exports/:type instead.`);
-
-	res.sendFile(filename, {
-		root: path.join(__dirname, '../../build/export'),
-		headers: {
-			'Content-Type': type,
-			'Content-Disposition': `attachment; filename=${filename}`,
-		},
-	}, (err) => {
-		if (err) {
-			if (err.code === 'ENOENT') {
-				res.locals.isAPI = false;
-				return next();
-			}
-			return next(err);
-		}
-	});
-}
-
 require('../promisify')(userController, [
 	'getCurrentUser', 'getUserByUID', 'getUserByUsername', 'getUserByEmail',
-	'exportPosts', 'exportUploads', 'exportProfile',
 ]);
diff --git a/src/controllers/users.js b/src/controllers/users.js
index f08e428c38..7506a8c8d3 100644
--- a/src/controllers/users.js
+++ b/src/controllers/users.js
@@ -61,7 +61,7 @@ usersController.getOnlineUsers = async function (req, res) {
 	}
 
 	userData.anonymousUserCount = guests + hiddenCount;
-	userData.timeagoCutoff = 1000 * 60 * 60 * 24;
+	userData.timeagoCutoff = 1;
 
 	await render(req, res, userData);
 };
diff --git a/src/controllers/write/admin.js b/src/controllers/write/admin.js
index 8b9faa55ef..adac0a6ef2 100644
--- a/src/controllers/write/admin.js
+++ b/src/controllers/write/admin.js
@@ -1,42 +1,30 @@
 'use strict';
 
-const meta = require('../../meta');
-const privileges = require('../../privileges');
-const analytics = require('../../analytics');
-
+const api = require('../../api');
 const helpers = require('../helpers');
 
 const Admin = module.exports;
 
 Admin.updateSetting = async (req, res) => {
-	const ok = await privileges.admin.can('admin:settings', req.uid);
-
-	if (!ok) {
-		return helpers.formatApiResponse(403, res);
-	}
+	await api.admin.updateSetting(req, {
+		setting: req.params.setting,
+		value: req.body.value,
+	});
 
-	await meta.configs.set(req.params.setting, req.body.value);
 	helpers.formatApiResponse(200, res);
 };
 
 Admin.getAnalyticsKeys = async (req, res) => {
-	let keys = await analytics.getKeys();
-
-	// Sort keys alphabetically
-	keys = keys.sort((a, b) => (a < b ? -1 : 1));
-
-	helpers.formatApiResponse(200, res, { keys });
+	helpers.formatApiResponse(200, res, {
+		keys: await api.admin.getAnalyticsKeys(),
+	});
 };
 
 Admin.getAnalyticsData = async (req, res) => {
-	// Default returns views from past 24 hours, by hour
-	if (!req.query.amount) {
-		if (req.query.units === 'days') {
-			req.query.amount = 30;
-		} else {
-			req.query.amount = 24;
-		}
-	}
-	const getStats = req.query.units === 'days' ? analytics.getDailyStatsForSet : analytics.getHourlyStatsForSet;
-	helpers.formatApiResponse(200, res, await getStats(`analytics:${req.params.set}`, parseInt(req.query.until, 10) || Date.now(), req.query.amount));
+	helpers.formatApiResponse(200, res, await api.admin.getAnalyticsData(req, {
+		set: req.params.set,
+		until: parseInt(req.query.until, 10) || Date.now(),
+		amount: req.query.amount,
+		units: req.query.units,
+	}));
 };
diff --git a/src/controllers/write/categories.js b/src/controllers/write/categories.js
index 22250b931c..d84f2bddfb 100644
--- a/src/controllers/write/categories.js
+++ b/src/controllers/write/categories.js
@@ -1,6 +1,5 @@
 'use strict';
 
-const privileges = require('../../privileges');
 const categories = require('../../categories');
 const api = require('../../api');
 
@@ -8,75 +7,56 @@ const helpers = require('../helpers');
 
 const Categories = module.exports;
 
-const hasAdminPrivilege = async (uid) => {
-	const ok = await privileges.admin.can(`admin:categories`, uid);
-	if (!ok) {
-		throw new Error('[[error:no-privileges]]');
-	}
-};
-
 Categories.get = async (req, res) => {
 	helpers.formatApiResponse(200, res, await api.categories.get(req, req.params));
 };
 
 Categories.create = async (req, res) => {
-	await hasAdminPrivilege(req.uid);
-
 	const response = await api.categories.create(req, req.body);
 	helpers.formatApiResponse(200, res, response);
 };
 
 Categories.update = async (req, res) => {
-	await hasAdminPrivilege(req.uid);
+	await api.categories.update(req, {
+		cid: req.params.cid,
+		values: req.body,
+	});
 
-	const payload = {};
-	payload[req.params.cid] = req.body;
-	await api.categories.update(req, payload);
 	const categoryObjs = await categories.getCategories([req.params.cid]);
 	helpers.formatApiResponse(200, res, categoryObjs[0]);
 };
 
 Categories.delete = async (req, res) => {
-	await hasAdminPrivilege(req.uid);
-
 	await api.categories.delete(req, { cid: req.params.cid });
 	helpers.formatApiResponse(200, res);
 };
 
 Categories.getPrivileges = async (req, res) => {
-	if (!await privileges.admin.can('admin:privileges', req.uid)) {
-		throw new Error('[[error:no-privileges]]');
-	}
-
-	const privilegeSet = await api.categories.getPrivileges(req, req.params.cid);
+	const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid });
 	helpers.formatApiResponse(200, res, privilegeSet);
 };
 
 Categories.setPrivilege = async (req, res) => {
-	if (!await privileges.admin.can('admin:privileges', req.uid)) {
-		throw new Error('[[error:no-privileges]]');
-	}
+	const { cid, privilege } = req.params;
 
 	await api.categories.setPrivilege(req, {
-		...req.params,
+		cid,
+		privilege,
 		member: req.body.member,
 		set: req.method === 'PUT',
 	});
 
-	const privilegeSet = await api.categories.getPrivileges(req, req.params.cid);
+	const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid });
 	helpers.formatApiResponse(200, res, privilegeSet);
 };
 
 Categories.setModerator = async (req, res) => {
-	if (!await privileges.admin.can('admin:admins-mods', req.uid)) {
-		throw new Error('[[error:no-privileges]]');
-	}
-	const privilegeList = await privileges.categories.getUserPrivilegeList();
-	await api.categories.setPrivilege(req, {
+	await api.categories.setModerator(req, {
 		cid: req.params.cid,
-		privilege: privilegeList,
 		member: req.params.uid,
 		set: req.method === 'PUT',
 	});
-	helpers.formatApiResponse(200, res);
+
+	const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid });
+	helpers.formatApiResponse(200, res, privilegeSet);
 };
diff --git a/src/controllers/write/chats.js b/src/controllers/write/chats.js
index f009047a61..fe7900a50a 100644
--- a/src/controllers/write/chats.js
+++ b/src/controllers/write/chats.js
@@ -1,8 +1,6 @@
 'use strict';
 
 const api = require('../../api');
-const messaging = require('../../messaging');
-
 const helpers = require('../helpers');
 
 const Chats = module.exports;
@@ -10,9 +8,7 @@ const Chats = module.exports;
 Chats.list = async (req, res) => {
 	const page = (isFinite(req.query.page) && parseInt(req.query.page, 10)) || 1;
 	const perPage = (isFinite(req.query.perPage) && parseInt(req.query.perPage, 10)) || 20;
-	const start = Math.max(0, page - 1) * perPage;
-	const stop = start + perPage;
-	const { rooms } = await messaging.getRecentChats(req.uid, req.uid, start, stop);
+	const { rooms } = await api.chats.list(req, { page, perPage });
 
 	helpers.formatApiResponse(200, res, { rooms });
 };
@@ -23,21 +19,20 @@ Chats.create = async (req, res) => {
 };
 
 Chats.exists = async (req, res) => {
+	// yes, this is fine. Room existence is checked via middleware :)
 	helpers.formatApiResponse(200, res);
 };
 
 Chats.get = async (req, res) => {
-	const roomObj = await messaging.loadRoom(req.uid, {
+	helpers.formatApiResponse(200, res, await api.chats.get(req, {
 		uid: req.query.uid || req.uid,
 		roomId: req.params.roomId,
-	});
-
-	helpers.formatApiResponse(200, res, roomObj);
+	}));
 };
 
 Chats.post = async (req, res) => {
 	const messageObj = await api.chats.post(req, {
-		...req.body,
+		message: req.body.message,
 		roomId: req.params.roomId,
 	});
 
@@ -46,23 +41,34 @@ Chats.post = async (req, res) => {
 
 Chats.rename = async (req, res) => {
 	const roomObj = await api.chats.rename(req, {
-		...req.body,
+		name: req.body.name,
 		roomId: req.params.roomId,
 	});
 
 	helpers.formatApiResponse(200, res, roomObj);
 };
 
-Chats.users = async (req, res) => {
-	const users = await api.chats.users(req, {
-		...req.params,
+Chats.mark = async (req, res) => {
+	const state = req.method === 'PUT' ? 1 : 0;
+	const roomObj = await api.chats.mark(req, {
+		roomId: req.params.roomId,
+		state,
 	});
+
+	helpers.formatApiResponse(200, res, roomObj);
+};
+
+Chats.users = async (req, res) => {
+	const { roomId } = req.params;
+	const users = await api.chats.users(req, { roomId });
+
 	helpers.formatApiResponse(200, res, users);
 };
 
 Chats.invite = async (req, res) => {
+	const { uids } = req.body;
 	const users = await api.chats.invite(req, {
-		...req.body,
+		uids,
 		roomId: req.params.roomId,
 	});
 
@@ -70,8 +76,9 @@ Chats.invite = async (req, res) => {
 };
 
 Chats.kick = async (req, res) => {
+	const { uids } = req.body;
 	const users = await api.chats.kick(req, {
-		...req.body,
+		uids,
 		roomId: req.params.roomId,
 	});
 
@@ -79,9 +86,9 @@ Chats.kick = async (req, res) => {
 };
 
 Chats.kickUser = async (req, res) => {
-	req.body.uids = [req.params.uid];
+	const uids = [req.params.uid];
 	const users = await api.chats.kick(req, {
-		...req.body,
+		uids,
 		roomId: req.params.roomId,
 	});
 
@@ -90,40 +97,38 @@ Chats.kickUser = async (req, res) => {
 
 Chats.messages = {};
 Chats.messages.list = async (req, res) => {
-	const messages = await messaging.getMessages({
-		callerUid: req.uid,
-		uid: req.query.uid || req.uid,
-		roomId: req.params.roomId,
-		start: parseInt(req.query.start, 10) || 0,
-		count: 50,
-	});
+	const uid = req.query.uid || req.uid;
+	const { roomId } = req.params;
+	const start = parseInt(req.query.start, 10) || 0;
+	const { messages } = await api.chats.listMessages(req, { uid, roomId, start });
 
 	helpers.formatApiResponse(200, res, { messages });
 };
 
 Chats.messages.get = async (req, res) => {
-	const messages = await messaging.getMessagesData([req.params.mid], req.uid, req.params.roomId, false);
-	helpers.formatApiResponse(200, res, messages.pop());
+	const { mid, roomId } = req.params;
+
+	helpers.formatApiResponse(200, res, await api.chats.getMessage(req, { mid, roomId }));
 };
 
 Chats.messages.edit = async (req, res) => {
-	await messaging.canEdit(req.params.mid, req.uid);
-	await messaging.editMessage(req.uid, req.params.mid, req.params.roomId, req.body.message);
+	const { mid, roomId } = req.params;
+	const { message } = req.body;
+	await api.chats.editMessage(req, { mid, roomId, message });
 
-	const messages = await messaging.getMessagesData([req.params.mid], req.uid, req.params.roomId, false);
-	helpers.formatApiResponse(200, res, messages.pop());
+	helpers.formatApiResponse(200, res, await api.chats.getMessage(req, { mid, roomId }));
 };
 
 Chats.messages.delete = async (req, res) => {
-	await messaging.canDelete(req.params.mid, req.uid);
-	await messaging.deleteMessage(req.params.mid, req.uid);
+	const { mid } = req.params;
+	await api.chats.deleteMessage(req, { mid });
 
 	helpers.formatApiResponse(200, res);
 };
 
 Chats.messages.restore = async (req, res) => {
-	await messaging.canDelete(req.params.mid, req.uid);
-	await messaging.restoreMessage(req.params.mid, req.uid);
+	const { mid } = req.params;
+	await api.chats.restoreMessage(req, { mid });
 
 	helpers.formatApiResponse(200, res);
 };
diff --git a/src/controllers/write/files.js b/src/controllers/write/files.js
index 61a6320094..18b57b29fe 100644
--- a/src/controllers/write/files.js
+++ b/src/controllers/write/files.js
@@ -1,16 +1,16 @@
 'use strict';
 
-const fs = require('fs').promises;
 const helpers = require('../helpers');
+const api = require('../../api');
 
 const Files = module.exports;
 
 Files.delete = async (req, res) => {
-	await fs.unlink(res.locals.cleanedPath);
+	await api.files.delete(req, { path: res.locals.cleanedPath });
 	helpers.formatApiResponse(200, res);
 };
 
 Files.createFolder = async (req, res) => {
-	await fs.mkdir(res.locals.folderPath);
+	await api.files.createFolder(req, { path: res.locals.folderPath });
 	helpers.formatApiResponse(200, res);
 };
diff --git a/src/controllers/write/flags.js b/src/controllers/write/flags.js
index 3bda63888e..63135274bf 100644
--- a/src/controllers/write/flags.js
+++ b/src/controllers/write/flags.js
@@ -1,53 +1,48 @@
 'use strict';
 
 const user = require('../../user');
-const flags = require('../../flags');
 const api = require('../../api');
 const helpers = require('../helpers');
 
 const Flags = module.exports;
 
 Flags.create = async (req, res) => {
-	const flagObj = await api.flags.create(req, { ...req.body });
+	const { type, id, reason } = req.body;
+	const flagObj = await api.flags.create(req, { type, id, reason });
 	helpers.formatApiResponse(200, res, await user.isPrivileged(req.uid) ? flagObj : undefined);
 };
 
 Flags.get = async (req, res) => {
-	const isPrivileged = await user.isPrivileged(req.uid);
-	if (!isPrivileged) {
-		return helpers.formatApiResponse(403, res);
-	}
-
-	helpers.formatApiResponse(200, res, await flags.get(req.params.flagId));
+	helpers.formatApiResponse(200, res, await api.flags.get(req, req.params.flagId));
 };
 
 Flags.update = async (req, res) => {
+	const { state, assignee } = req.body;
 	const history = await api.flags.update(req, {
 		flagId: req.params.flagId,
-		...req.body,
+		state,
+		assignee,
 	});
 
 	helpers.formatApiResponse(200, res, { history });
 };
 
 Flags.delete = async (req, res) => {
-	await flags.purge([req.params.flagId]);
+	await api.flags.delete(req, { flagId: req.params.flagId });
 	helpers.formatApiResponse(200, res);
 };
 
 Flags.appendNote = async (req, res) => {
+	const { note, datetime } = req.body;
 	const payload = await api.flags.appendNote(req, {
 		flagId: req.params.flagId,
-		...req.body,
+		note,
+		datetime,
 	});
 
 	helpers.formatApiResponse(200, res, payload);
 };
 
 Flags.deleteNote = async (req, res) => {
-	const payload = await api.flags.deleteNote(req, {
-		...req.params,
-	});
-
-	helpers.formatApiResponse(200, res, payload);
+	helpers.formatApiResponse(200, res, await api.flags.deleteNote(req, req.params));
 };
diff --git a/src/controllers/write/groups.js b/src/controllers/write/groups.js
index f4019cb075..a8abd56404 100644
--- a/src/controllers/write/groups.js
+++ b/src/controllers/write/groups.js
@@ -47,3 +47,38 @@ Groups.rescind = async (req, res) => {
 	await api.groups.rescind(req, req.params);
 	helpers.formatApiResponse(200, res);
 };
+
+Groups.getPending = async (req, res) => {
+	const pending = await api.groups.getPending(req, req.params);
+	helpers.formatApiResponse(200, res, { pending });
+};
+
+Groups.accept = async (req, res) => {
+	await api.groups.accept(req, req.params);
+	helpers.formatApiResponse(200, res);
+};
+
+Groups.reject = async (req, res) => {
+	await api.groups.reject(req, req.params);
+	helpers.formatApiResponse(200, res);
+};
+
+Groups.getInvites = async (req, res) => {
+	const invites = await api.groups.getInvites(req, req.params);
+	helpers.formatApiResponse(200, res, { invites });
+};
+
+Groups.issueInvite = async (req, res) => {
+	await api.groups.issueInvite(req, req.params);
+	helpers.formatApiResponse(200, res);
+};
+
+Groups.acceptInvite = async (req, res) => {
+	await api.groups.acceptInvite(req, req.params);
+	helpers.formatApiResponse(200, res);
+};
+
+Groups.rejectInvite = async (req, res) => {
+	await api.groups.rejectInvite(req, req.params);
+	helpers.formatApiResponse(200, res);
+};
diff --git a/src/controllers/write/posts.js b/src/controllers/write/posts.js
index c9c8d21104..f250fb2fc4 100644
--- a/src/controllers/write/posts.js
+++ b/src/controllers/write/posts.js
@@ -1,11 +1,8 @@
 'use strict';
 
 const posts = require('../../posts');
-const privileges = require('../../privileges');
-
 const api = require('../../api');
 const helpers = require('../helpers');
-const apiHelpers = require('../../api/helpers');
 
 const Posts = module.exports;
 
@@ -18,7 +15,6 @@ Posts.edit = async (req, res) => {
 		...req.body,
 		pid: req.params.pid,
 		uid: req.uid,
-		req: apiHelpers.buildReqObject(req),
 	});
 
 	helpers.formatApiResponse(200, res, editResult);
@@ -96,21 +92,7 @@ Posts.restoreDiff = async (req, res) => {
 };
 
 Posts.deleteDiff = async (req, res) => {
-	if (!parseInt(req.params.pid, 10)) {
-		throw new Error('[[error:invalid-data]]');
-	}
-
-	const cid = await posts.getCidByPid(req.params.pid);
-	const [isAdmin, isModerator] = await Promise.all([
-		privileges.users.isAdministrator(req.uid),
-		privileges.users.isModerator(req.uid, cid),
-	]);
-
-	if (!(isAdmin || isModerator)) {
-		return helpers.formatApiResponse(403, res, new Error('[[error:no-privileges]]'));
-	}
-
-	await posts.diffs.delete(req.params.pid, req.params.timestamp, req.uid);
+	await api.posts.deleteDiff(req, { ...req.params });
 
 	helpers.formatApiResponse(200, res, await api.posts.getDiffs(req, { ...req.params }));
 };
diff --git a/src/controllers/write/topics.js b/src/controllers/write/topics.js
index bac1e42924..920f331b9a 100644
--- a/src/controllers/write/topics.js
+++ b/src/controllers/write/topics.js
@@ -1,11 +1,8 @@
 'use strict';
 
-const validator = require('validator');
-
 const db = require('../../database');
 const api = require('../../api');
 const topics = require('../../topics');
-const privileges = require('../../privileges');
 
 const helpers = require('../helpers');
 const middleware = require('../../middleware');
@@ -67,11 +64,8 @@ Topics.purge = async (req, res) => {
 };
 
 Topics.pin = async (req, res) => {
-	// Pin expiry was not available w/ sockets hence not included in api lib method
-	if (req.body.expiry) {
-		await topics.tools.setPinExpiry(req.params.tid, req.body.expiry, req.uid);
-	}
-	await api.topics.pin(req, { tids: [req.params.tid] });
+	const { expiry } = req.body;
+	await api.topics.pin(req, { tids: [req.params.tid], expiry });
 
 	helpers.formatApiResponse(200, res);
 };
@@ -107,45 +101,26 @@ Topics.unfollow = async (req, res) => {
 };
 
 Topics.addTags = async (req, res) => {
-	if (!await privileges.topics.canEdit(req.params.tid, req.user.uid)) {
-		return helpers.formatApiResponse(403, res);
-	}
-	const cid = await topics.getTopicField(req.params.tid, 'cid');
-	await topics.validateTags(req.body.tags, cid, req.user.uid, req.params.tid);
-	const tags = await topics.filterTags(req.body.tags);
+	await api.topics.addTags(req, {
+		tid: req.params.tid,
+		tags: req.body.tags,
+	});
 
-	await topics.addTags(tags, [req.params.tid]);
 	helpers.formatApiResponse(200, res);
 };
 
 Topics.deleteTags = async (req, res) => {
-	if (!await privileges.topics.canEdit(req.params.tid, req.user.uid)) {
-		return helpers.formatApiResponse(403, res);
-	}
-
-	await topics.deleteTopicTags(req.params.tid);
+	await api.topics.deleteTags(req, { tid: req.params.tid });
 	helpers.formatApiResponse(200, res);
 };
 
 Topics.getThumbs = async (req, res) => {
-	if (isFinite(req.params.tid)) { // post_uuids can be passed in occasionally, in that case no checks are necessary
-		const [exists, canRead] = await Promise.all([
-			topics.exists(req.params.tid),
-			privileges.topics.can('topics:read', req.params.tid, req.uid),
-		]);
-		if (!exists || !canRead) {
-			return helpers.formatApiResponse(403, res);
-		}
-	}
-
-	helpers.formatApiResponse(200, res, await topics.thumbs.get(req.params.tid));
+	helpers.formatApiResponse(200, res, await api.topics.getThumbs(req, { ...req.params }));
 };
 
 Topics.addThumb = async (req, res) => {
-	await checkThumbPrivileges({ tid: req.params.tid, uid: req.user.uid, res });
-	if (res.headersSent) {
-		return;
-	}
+	// todo: move controller logic to src/api/topics.js
+	await api.topics._checkThumbPrivileges({ tid: req.params.tid, uid: req.user.uid });
 
 	const files = await uploadsController.uploadThumb(req, res); // response is handled here
 
@@ -161,16 +136,12 @@ Topics.addThumb = async (req, res) => {
 };
 
 Topics.migrateThumbs = async (req, res) => {
-	await Promise.all([
-		checkThumbPrivileges({ tid: req.params.tid, uid: req.user.uid, res }),
-		checkThumbPrivileges({ tid: req.body.tid, uid: req.user.uid, res }),
-	]);
-	if (res.headersSent) {
-		return;
-	}
+	await api.topics.migrateThumbs(req, {
+		from: req.params.tid,
+		to: req.body.tid,
+	});
 
-	await topics.thumbs.migrate(req.params.tid, req.body.tid);
-	helpers.formatApiResponse(200, res);
+	helpers.formatApiResponse(200, res, await api.topics.getThumbs(req, { tid: req.body.tid }));
 };
 
 Topics.deleteThumb = async (req, res) => {
@@ -181,62 +152,32 @@ Topics.deleteThumb = async (req, res) => {
 		}
 	}
 
-	await checkThumbPrivileges({ tid: req.params.tid, uid: req.user.uid, res });
-	if (res.headersSent) {
-		return;
-	}
-
-	await topics.thumbs.delete(req.params.tid, req.body.path);
+	await api.topics.deleteThumb(req, {
+		tid: req.params.tid,
+		path: req.body.path,
+	});
 	helpers.formatApiResponse(200, res, await topics.thumbs.get(req.params.tid));
 };
 
 Topics.reorderThumbs = async (req, res) => {
-	await checkThumbPrivileges({ tid: req.params.tid, uid: req.user.uid, res });
-	if (res.headersSent) {
-		return;
-	}
-
-	const exists = await topics.thumbs.exists(req.params.tid, req.body.path);
-	if (!exists) {
-		return helpers.formatApiResponse(404, res);
-	}
-
-	await topics.thumbs.associate({
-		id: req.params.tid,
-		path: req.body.path,
-		score: req.body.order,
+	const { path, order } = req.body;
+	await api.topics.reorderThumbs(req, {
+		path,
+		order,
+		...req.params,
 	});
-	helpers.formatApiResponse(200, res);
-};
 
-async function checkThumbPrivileges({ tid, uid, res }) {
-	// req.params.tid could be either a tid (pushing a new thumb to an existing topic)
-	// or a post UUID (a new topic being composed)
-	const isUUID = validator.isUUID(tid);
-
-	// Sanity-check the tid if it's strictly not a uuid
-	if (!isUUID && (isNaN(parseInt(tid, 10)) || !await topics.exists(tid))) {
-		return helpers.formatApiResponse(404, res, new Error('[[error:no-topic]]'));
-	}
-
-	// While drafts are not protected, tids are
-	if (!isUUID && !await privileges.topics.canEdit(tid, uid)) {
-		return helpers.formatApiResponse(403, res, new Error('[[error:no-privileges]]'));
-	}
-}
+	helpers.formatApiResponse(200, res, await topics.thumbs.get(req.params.tid));
+};
 
 Topics.getEvents = async (req, res) => {
-	if (!await privileges.topics.can('topics:read', req.params.tid, req.uid)) {
-		return helpers.formatApiResponse(403, res);
-	}
+	const events = await api.topics.getEvents(req, { ...req.params });
 
-	helpers.formatApiResponse(200, res, await topics.events.get(req.params.tid, req.uid));
+	helpers.formatApiResponse(200, res, { events });
 };
 
 Topics.deleteEvent = async (req, res) => {
-	if (!await privileges.topics.isAdminOrMod(req.params.tid, req.uid)) {
-		return helpers.formatApiResponse(403, res);
-	}
-	await topics.events.purge(req.params.tid, [req.params.eventId]);
+	await api.topics.deleteEvent(req, { ...req.params });
+
 	helpers.formatApiResponse(200, res);
 };
diff --git a/src/controllers/write/users.js b/src/controllers/write/users.js
index 56d547aaaf..6dbcb1b01e 100644
--- a/src/controllers/write/users.js
+++ b/src/controllers/write/users.js
@@ -1,36 +1,16 @@
 'use strict';
 
-const util = require('util');
 const nconf = require('nconf');
 const path = require('path');
 const crypto = require('crypto');
-const fs = require('fs').promises;
 
-const db = require('../../database');
 const api = require('../../api');
-const groups = require('../../groups');
-const meta = require('../../meta');
-const privileges = require('../../privileges');
 const user = require('../../user');
-const utils = require('../../utils');
 
 const helpers = require('../helpers');
 
 const Users = module.exports;
 
-const exportMetadata = new Map([
-	['posts', ['csv', 'text/csv']],
-	['uploads', ['zip', 'application/zip']],
-	['profile', ['json', 'application/json']],
-]);
-
-const hasAdminPrivilege = async (uid, privilege) => {
-	const ok = await privileges.admin.can(`admin:${privilege}`, uid);
-	if (!ok) {
-		throw new Error('[[error:no-privileges]]');
-	}
-};
-
 Users.redirectBySlug = async (req, res) => {
 	const uid = await user.getUidByUserslug(req.params.userslug);
 
@@ -44,7 +24,6 @@ Users.redirectBySlug = async (req, res) => {
 };
 
 Users.create = async (req, res) => {
-	await hasAdminPrivilege(req.uid, 'users');
 	const userObj = await api.users.create(req, req.body);
 	helpers.formatApiResponse(200, res, userObj);
 };
@@ -54,9 +33,7 @@ Users.exists = async (req, res) => {
 };
 
 Users.get = async (req, res) => {
-	const userData = await user.getUserData(req.params.uid);
-	const publicUserData = await user.hidePrivateData(userData, req.uid);
-	helpers.formatApiResponse(200, res, publicUserData);
+	helpers.formatApiResponse(200, res, await api.users.get(req, { ...req.params }));
 };
 
 Users.update = async (req, res) => {
@@ -80,7 +57,6 @@ Users.deleteAccount = async (req, res) => {
 };
 
 Users.deleteMany = async (req, res) => {
-	await hasAdminPrivilege(req.uid, 'users');
 	await api.users.deleteMany(req, req.body);
 	helpers.formatApiResponse(200, res);
 };
@@ -131,137 +107,50 @@ Users.unmute = async (req, res) => {
 };
 
 Users.generateToken = async (req, res) => {
-	await hasAdminPrivilege(req.uid, 'settings');
-	if (parseInt(req.params.uid, 10) !== parseInt(req.user.uid, 10)) {
-		return helpers.formatApiResponse(401, res);
-	}
-
-	const settings = await meta.settings.get('core.api');
-	settings.tokens = settings.tokens || [];
-
-	const newToken = {
-		token: utils.generateUUID(),
-		uid: req.user.uid,
-		description: req.body.description || '',
-		timestamp: Date.now(),
-	};
-	settings.tokens.push(newToken);
-	await meta.settings.set('core.api', settings);
-	helpers.formatApiResponse(200, res, newToken);
+	const { description } = req.body;
+	const token = await api.users.generateToken(req, { description, ...req.params });
+	helpers.formatApiResponse(200, res, token);
 };
 
 Users.deleteToken = async (req, res) => {
-	await hasAdminPrivilege(req.uid, 'settings');
-	if (parseInt(req.params.uid, 10) !== parseInt(req.user.uid, 10)) {
-		return helpers.formatApiResponse(401, res);
-	}
-
-	const settings = await meta.settings.get('core.api');
-	const beforeLen = settings.tokens.length;
-	settings.tokens = settings.tokens.filter(tokenObj => tokenObj.token !== req.params.token);
-	if (beforeLen !== settings.tokens.length) {
-		await meta.settings.set('core.api', settings);
-		helpers.formatApiResponse(200, res);
-	} else {
-		helpers.formatApiResponse(404, res);
-	}
+	const ok = await api.users.deleteToken(req, { ...req.params });
+	helpers.formatApiResponse(ok ? 200 : 404, res);
 };
 
-const getSessionAsync = util.promisify((sid, callback) => {
-	db.sessionStore.get(sid, (err, sessionObj) => callback(err, sessionObj || null));
-});
-
 Users.revokeSession = async (req, res) => {
-	// Only admins or global mods (besides the user themselves) can revoke sessions
-	if (parseInt(req.params.uid, 10) !== req.uid && !await user.isAdminOrGlobalMod(req.uid)) {
-		return helpers.formatApiResponse(404, res);
-	}
-
-	const sids = await db.getSortedSetRange(`uid:${req.params.uid}:sessions`, 0, -1);
-	let _id;
-	for (const sid of sids) {
-		/* eslint-disable no-await-in-loop */
-		const sessionObj = await getSessionAsync(sid);
-		if (sessionObj && sessionObj.meta && sessionObj.meta.uuid === req.params.uuid) {
-			_id = sid;
-			break;
-		}
-	}
-
-	if (!_id) {
-		throw new Error('[[error:no-session-found]]');
-	}
-
-	await user.auth.revokeSession(_id, req.params.uid);
+	await api.users.revokeSession(req, { ...req.params });
 	helpers.formatApiResponse(200, res);
 };
 
 Users.invite = async (req, res) => {
 	const { emails, groupsToJoin = [] } = req.body;
 
-	if (!emails || !Array.isArray(groupsToJoin)) {
-		return helpers.formatApiResponse(400, res, new Error('[[error:invalid-data]]'));
-	}
-
-	// For simplicity, this API route is restricted to self-use only. This can change if needed.
-	if (parseInt(req.user.uid, 10) !== parseInt(req.params.uid, 10)) {
-		return helpers.formatApiResponse(403, res, new Error('[[error:no-privileges]]'));
-	}
-
-	const canInvite = await privileges.users.hasInvitePrivilege(req.uid);
-	if (!canInvite) {
-		return helpers.formatApiResponse(403, res, new Error('[[error:no-privileges]]'));
-	}
-
-	const { registrationType } = meta.config;
-	const isAdmin = await user.isAdministrator(req.uid);
-	if (registrationType === 'admin-invite-only' && !isAdmin) {
-		return helpers.formatApiResponse(403, res, new Error('[[error:no-privileges]]'));
-	}
-
-	const inviteGroups = (await groups.getUserInviteGroups(req.uid)).map(group => group.name);
-	const cannotInvite = groupsToJoin.some(group => !inviteGroups.includes(group));
-	if (groupsToJoin.length > 0 && cannotInvite) {
-		return helpers.formatApiResponse(403, res, new Error('[[error:no-privileges]]'));
-	}
-
-	const max = meta.config.maximumInvites;
-	const emailsArr = emails.split(',').map(email => email.trim()).filter(Boolean);
-
-	for (const email of emailsArr) {
-		/* eslint-disable no-await-in-loop */
-		let invites = 0;
-		if (max) {
-			invites = await user.getInvitesNumber(req.uid);
-		}
-		if (!isAdmin && max && invites >= max) {
-			return helpers.formatApiResponse(403, res, new Error(`[[error:invite-maximum-met, ${invites}, ${max}]]`));
+	try {
+		await api.users.invite(req, { emails, groupsToJoin, ...req.params });
+		helpers.formatApiResponse(200, res);
+	} catch (e) {
+		if (e.message.startsWith('[[error:invite-maximum-met')) {
+			return helpers.formatApiResponse(403, res, e);
 		}
 
-		await user.sendInvitationEmail(req.uid, email, groupsToJoin);
+		throw e;
 	}
-
-	return helpers.formatApiResponse(200, res);
 };
 
 Users.getInviteGroups = async function (req, res) {
-	if (parseInt(req.params.uid, 10) !== parseInt(req.user.uid, 10)) {
-		return helpers.formatApiResponse(401, res);
-	}
+	return helpers.formatApiResponse(200, res, await api.users.getInviteGroups(req, { ...req.params }));
+};
 
-	const userInviteGroups = await groups.getUserInviteGroups(req.params.uid);
-	return helpers.formatApiResponse(200, res, userInviteGroups.map(group => group.displayName));
+Users.addEmail = async (req, res) => {
+	const { email, skipConfirmation } = req.body;
+	const emails = await api.users.addEmail(req, { email, skipConfirmation, ...req.params });
+
+	helpers.formatApiResponse(200, res, { emails });
 };
 
 Users.listEmails = async (req, res) => {
-	const [isPrivileged, { showemail }] = await Promise.all([
-		user.isPrivileged(req.uid),
-		user.getSettings(req.params.uid),
-	]);
-	const isSelf = req.uid === parseInt(req.params.uid, 10);
-
-	if (isSelf || isPrivileged || showemail) {
-		const emails = await db.getSortedSetRangeByScore('email:uid', 0, 500, req.params.uid, req.params.uid);
+	const emails = await api.users.listEmails(req, { ...req.params });
+	if (emails) {
 		helpers.formatApiResponse(200, res, { emails });
 	} else {
 		helpers.formatApiResponse(204, res);
@@ -269,79 +158,38 @@ Users.listEmails = async (req, res) => {
 };
 
 Users.getEmail = async (req, res) => {
-	const [isPrivileged, { showemail }, exists] = await Promise.all([
-		user.isPrivileged(req.uid),
-		user.getSettings(req.params.uid),
-		db.isSortedSetMember('email:uid', req.params.email.toLowerCase()),
-	]);
-	const isSelf = req.uid === parseInt(req.params.uid, 10);
-
-	if (exists && (isSelf || isPrivileged || showemail)) {
-		helpers.formatApiResponse(204, res);
-	} else {
-		helpers.formatApiResponse(404, res);
-	}
+	const ok = await api.users.getEmail(req, { ...req.params });
+	helpers.formatApiResponse(ok ? 204 : 404, res);
 };
 
 Users.confirmEmail = async (req, res) => {
-	const [pending, current, canManage] = await Promise.all([
-		user.email.isValidationPending(req.params.uid, req.params.email),
-		user.getUserField(req.params.uid, 'email'),
-		privileges.admin.can('admin:users', req.uid),
-	]);
-
-	if (!canManage) {
-		return helpers.notAllowed(req, res);
-	}
-
-	if (pending) { // has active confirmation request
-		const code = await db.get(`confirm:byUid:${req.params.uid}`);
-		await user.email.confirmByCode(code, req.session.id);
-		helpers.formatApiResponse(200, res);
-	} else if (current && current === req.params.email) { // email in user hash (i.e. email passed into user.create)
-		await user.email.confirmByUid(req.params.uid);
-		helpers.formatApiResponse(200, res);
-	} else {
-		helpers.formatApiResponse(404, res);
-	}
-};
-
-const prepareExport = async (req, res) => {
-	const [extension] = exportMetadata.get(req.params.type);
-	const filename = `${req.params.uid}_${req.params.type}.${extension}`;
-	try {
-		const stat = await fs.stat(path.join(__dirname, '../../../build/export', filename));
-		const modified = new Date(stat.mtimeMs);
-		res.set('Last-Modified', modified.toUTCString());
-		res.set('ETag', `"${crypto.createHash('md5').update(String(stat.mtimeMs)).digest('hex')}"`);
-		res.status(204);
-		return true;
-	} catch (e) {
-		res.status(404);
-		return false;
-	}
+	const ok = await api.users.confirmEmail(req, {
+		sessionId: req.session.id,
+		...req.params,
+	});
+	helpers.formatApiResponse(ok ? 200 : 404, res);
 };
 
 Users.checkExportByType = async (req, res) => {
-	await prepareExport(req, res);
-	res.end();
+	const stat = await api.users.checkExportByType(req, { ...req.params });
+	const modified = new Date(stat.mtimeMs);
+	res.set('Last-Modified', modified.toUTCString());
+	res.set('ETag', `"${crypto.createHash('md5').update(String(stat.mtimeMs)).digest('hex')}"`);
+	res.sendStatus(204);
 };
 
-Users.getExportByType = async (req, res) => {
-	const [extension, mime] = exportMetadata.get(req.params.type);
-	const filename = `${req.params.uid}_${req.params.type}.${extension}`;
-
-	const exists = await prepareExport(req, res);
-	if (!exists) {
-		return res.end();
+Users.getExportByType = async (req, res, next) => {
+	const data = await api.users.getExportByType(req, ({ ...req.params }));
+	if (!data) {
+		return next();
 	}
 
 	res.status(200);
-	res.sendFile(filename, {
+	res.sendFile(data.filename, {
 		root: path.join(__dirname, '../../../build/export'),
 		headers: {
-			'Content-Type': mime,
-			'Content-Disposition': `attachment; filename=${filename}`,
+			'Content-Type': data.mime,
+			'Content-Disposition': `attachment; filename=${data.filename}`,
 		},
 	}, (err) => {
 		if (err) {
diff --git a/src/database/mongo.js b/src/database/mongo.js
index c4a6c0836c..5ecf81d285 100644
--- a/src/database/mongo.js
+++ b/src/database/mongo.js
@@ -173,9 +173,8 @@ async function getCollectionStats(db) {
 	return await Promise.all(items.map(collection => db.collection(collection.name).stats()));
 }
 
-mongoModule.close = function (callback) {
-	callback = callback || function () {};
-	client.close(err => callback(err));
+mongoModule.close = async function () {
+	await client.close();
 };
 
 require('./mongo/main')(mongoModule);
diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js
index 16bc5f2154..9dcb1aa2d3 100644
--- a/src/database/mongo/sorted.js
+++ b/src/database/mongo/sorted.js
@@ -49,15 +49,15 @@ module.exports = function (module) {
 		}
 
 		if (min !== '-inf') {
-			query.score = { $gte: min };
+			query.score = { $gte: parseFloat(min) };
 		}
 		if (max !== '+inf') {
 			query.score = query.score || {};
-			query.score.$lte = max;
+			query.score.$lte = parseFloat(max);
 		}
 
 		if (max === min) {
-			query.score = max;
+			query.score = parseFloat(max);
 		}
 
 		const fields = { _id: 0, _key: 0 };
diff --git a/src/database/mongo/sorted/union.js b/src/database/mongo/sorted/union.js
index f518fab79f..d70deab889 100644
--- a/src/database/mongo/sorted/union.js
+++ b/src/database/mongo/sorted/union.js
@@ -43,7 +43,7 @@ module.exports = function (module) {
 		const pipeline = [
 			{ $match: { _key: { $in: params.sets } } },
 			{ $group: { _id: { value: '$value' }, totalScore: aggregate } },
-			{ $sort: { totalScore: params.sort } },
+			{ $sort: { totalScore: params.sort, _id: 1 } },
 		];
 
 		if (params.start) {
diff --git a/src/database/redis.js b/src/database/redis.js
index 14059f4a8c..703b94905a 100644
--- a/src/database/redis.js
+++ b/src/database/redis.js
@@ -2,7 +2,6 @@
 
 const nconf = require('nconf');
 const semver = require('semver');
-const session = require('express-session');
 
 const connection = require('./redis/connection');
 
@@ -40,7 +39,7 @@ redisModule.init = async function () {
 
 redisModule.createSessionStore = async function (options) {
 	const meta = require('../meta');
-	const sessionStore = require('connect-redis')(session);
+	const sessionStore = require('connect-redis').default;
 	const client = await connection.connect(options);
 	const store = new sessionStore({
 		client: client,
diff --git a/src/file.js b/src/file.js
index ff836b05da..639cc9f58c 100644
--- a/src/file.js
+++ b/src/file.js
@@ -4,7 +4,7 @@ const fs = require('fs');
 const nconf = require('nconf');
 const path = require('path');
 const winston = require('winston');
-const mkdirp = require('mkdirp');
+const { mkdirp } = require('mkdirp');
 const mime = require('mime');
 const graceful = require('graceful-fs');
 
diff --git a/src/flags.js b/src/flags.js
index 8a400c9d88..904f1f71dc 100644
--- a/src/flags.js
+++ b/src/flags.js
@@ -191,6 +191,7 @@ Flags.list = async function (data) {
 		query: data.query,
 	});
 	flagIds = await Flags.sort(flagIds, data.sort);
+	const count = flagIds.length;
 
 	// Create subset for parsing based on page number (n=20)
 	const flagsPerPage = Math.abs(parseInt(filters.perPage, 10) || 1);
@@ -223,6 +224,7 @@ Flags.list = async function (data) {
 
 	return {
 		flags: payload.flags,
+		count,
 		page: payload.page,
 		pageCount: pageCount,
 	};
@@ -768,6 +770,13 @@ Flags.getHistory = async function (flagId) {
 		};
 	});
 
+	// turn assignee uids into usernames
+	await Promise.all(history.map(async (entry) => {
+		if (entry.fields.hasOwnProperty('assignee')) {
+			entry.fields.assignee = await user.getUserField(entry.fields.assignee, 'username');
+		}
+	}));
+
 	// Append ban history and username change data
 	history = await mergeBanHistory(history, targetUid, uids);
 	history = await mergeMuteHistory(history, targetUid, uids);
diff --git a/src/groups/index.js b/src/groups/index.js
index 5f1904f632..a66e34c6b3 100644
--- a/src/groups/index.js
+++ b/src/groups/index.js
@@ -123,8 +123,8 @@ Groups.get = async function (groupName, options) {
 	const [groupData, members, pending, invited, isMember, isPending, isInvited, isOwner] = await Promise.all([
 		Groups.getGroupData(groupName),
 		Groups.getOwnersAndMembers(groupName, options.uid, 0, stop),
-		Groups.getUsersFromSet(`group:${groupName}:pending`, ['username', 'userslug', 'picture']),
-		Groups.getUsersFromSet(`group:${groupName}:invited`, ['username', 'userslug', 'picture']),
+		Groups.getPending(groupName),
+		Groups.getInvites(groupName),
 		Groups.isMember(options.uid, groupName),
 		Groups.isPending(options.uid, groupName),
 		Groups.isInvited(options.uid, groupName),
diff --git a/src/groups/invite.js b/src/groups/invite.js
index 5cabdbdcdf..ddb244cd0a 100644
--- a/src/groups/invite.js
+++ b/src/groups/invite.js
@@ -9,6 +9,14 @@ const plugins = require('../plugins');
 const notifications = require('../notifications');
 
 module.exports = function (Groups) {
+	Groups.getPending = async function (groupName) {
+		return await Groups.getUsersFromSet(`group:${groupName}:pending`, ['username', 'userslug', 'picture']);
+	};
+
+	Groups.getInvites = async function (groupName) {
+		return await Groups.getUsersFromSet(`group:${groupName}:invited`, ['username', 'userslug', 'picture']);
+	};
+
 	Groups.requestMembership = async function (groupName, uid) {
 		await inviteOrRequestMembership(groupName, uid, 'request');
 		const { displayname } = await user.getUserFields(uid, ['username']);
@@ -107,11 +115,4 @@ module.exports = function (Groups) {
 		const map = _.zipObject(checkUids, isMembers);
 		return isArray ? uids.map(uid => !!map[uid]) : !!map[uids[0]];
 	}
-
-	Groups.getPending = async function (groupName) {
-		if (!groupName) {
-			return [];
-		}
-		return await db.getSetMembers(`group:${groupName}:pending`);
-	};
 };
diff --git a/src/groups/posts.js b/src/groups/posts.js
index 58d6831cfe..b378f66be6 100644
--- a/src/groups/posts.js
+++ b/src/groups/posts.js
@@ -1,7 +1,6 @@
 'use strict';
 
 const db = require('../database');
-const groups = require('.');
 const privileges = require('../privileges');
 const posts = require('../posts');
 
@@ -15,7 +14,7 @@ module.exports = function (Groups) {
 		groupNames = groupNames[0];
 
 		// Only process those groups that have the cid in its memberPostCids setting (or no setting at all)
-		const groupData = await groups.getGroupsFields(groupNames, ['memberPostCids']);
+		const groupData = await Groups.getGroupsFields(groupNames, ['memberPostCids']);
 		groupNames = groupNames.filter((groupName, idx) => (
 			!groupData[idx].memberPostCidsArray.length ||
 			groupData[idx].memberPostCidsArray.includes(postData.cid)
@@ -23,7 +22,7 @@ module.exports = function (Groups) {
 
 		const keys = groupNames.map(groupName => `group:${groupName}:member:pids`);
 		await db.sortedSetsAdd(keys, postData.timestamp, postData.pid);
-		await Promise.all(groupNames.map(name => truncateMemberPosts(name)));
+		await Promise.all(groupNames.map(truncateMemberPosts));
 	};
 
 	async function truncateMemberPosts(groupName) {
@@ -37,8 +36,13 @@ module.exports = function (Groups) {
 	}
 
 	Groups.getLatestMemberPosts = async function (groupName, max, uid) {
-		let pids = await db.getSortedSetRevRange(`group:${groupName}:member:pids`, 0, max - 1);
-		pids = await privileges.posts.filter('topics:read', pids, uid);
-		return await posts.getPostSummaryByPids(pids, uid, { stripTags: false });
+		const [allPids, groupData] = await Promise.all([
+			db.getSortedSetRevRange(`group:${groupName}:member:pids`, 0, max - 1),
+			Groups.getGroupFields(groupName, ['memberPostCids']),
+		]);
+		const cids = groupData.memberPostCidsArray;
+		const pids = await privileges.posts.filter('topics:read', allPids, uid);
+		const postData = await posts.getPostSummaryByPids(pids, uid, { stripTags: false });
+		return postData.filter(p => p && p.topic && (!cids.length || cids.includes(p.topic.cid)));
 	};
 };
diff --git a/src/install.js b/src/install.js
index ba0f13e7be..d1229de531 100644
--- a/src/install.js
+++ b/src/install.js
@@ -250,7 +250,7 @@ async function enableDefaultTheme() {
 		return;
 	}
 
-	const defaultTheme = nconf.get('defaultTheme') || 'nodebb-theme-persona';
+	const defaultTheme = nconf.get('defaultTheme') || 'nodebb-theme-harmony';
 	console.log(`Enabling default theme: ${defaultTheme}`);
 	await meta.themes.set({
 		type: 'local',
@@ -530,7 +530,7 @@ async function setCopyrightWidget() {
 	]);
 
 	if (!footer && footerJSON) {
-		await db.setObjectField('widgets:global', 'footer', footerJSON);
+		await db.setObjectField('widgets:global', 'sidebar-footer', footerJSON);
 	}
 }
 
diff --git a/src/messaging/data.js b/src/messaging/data.js
index 6839037678..085081d8ec 100644
--- a/src/messaging/data.js
+++ b/src/messaging/data.js
@@ -98,6 +98,8 @@ module.exports = function (Messaging) {
 				} else if (index > 0 && message.fromuid !== messages[index - 1].fromuid) {
 					// If the previous message was from the other person, this is also a new set
 					message.newSet = true;
+				} else if (index > 0 && messages[index - 1].system) {
+					message.newSet = true;
 				} else if (index === 0) {
 					message.newSet = true;
 				}
@@ -112,15 +114,14 @@ module.exports = function (Messaging) {
 				const mid = await db.getSortedSetRange(key, index - 1, index - 1);
 				const fields = await Messaging.getMessageFields(mid, ['fromuid', 'timestamp']);
 				if ((messages[0].timestamp > fields.timestamp + Messaging.newMessageCutoff) ||
-					(messages[0].fromuid !== fields.fromuid)) {
+					(messages[0].fromuid !== fields.fromuid) ||
+					messages[0].system) {
 					// If it's been 5 minutes, this is a new set of messages
 					messages[0].newSet = true;
 				}
 			} else {
 				messages[0].newSet = true;
 			}
-		} else {
-			messages = [];
 		}
 
 		const data = await plugins.hooks.fire('filter:messaging.getMessages', {
diff --git a/src/messaging/index.js b/src/messaging/index.js
index 6ad192ef7f..bc7d4ee4db 100644
--- a/src/messaging/index.js
+++ b/src/messaging/index.js
@@ -2,13 +2,16 @@
 
 
 const validator = require('validator');
-
+const nconf = require('nconf');
 const db = require('../database');
 const user = require('../user');
 const privileges = require('../privileges');
 const plugins = require('../plugins');
 const meta = require('../meta');
 const utils = require('../utils');
+const translator = require('../translator');
+
+const relative_path = nconf.get('relative_path');
 
 const Messaging = module.exports;
 
@@ -126,6 +129,9 @@ Messaging.getRecentChats = async (callerUid, uid, start, stop) => {
 			room.usernames = Messaging.generateUsernames(room.users, uid);
 		}
 	});
+	await Promise.all(results.roomData.map(async (room) => {
+		room.chatWithMessage = await Messaging.generateChatWithMessage(room.users, uid);
+	}));
 
 	results.roomData = results.roomData.filter(Boolean);
 	const ref = { rooms: results.roomData, nextStart: stop + 1 };
@@ -137,8 +143,40 @@ Messaging.getRecentChats = async (callerUid, uid, start, stop) => {
 	});
 };
 
-Messaging.generateUsernames = (users, excludeUid) => users.filter(user => user && parseInt(user.uid, 10) !== excludeUid)
-	.map(user => user.username).join(', ');
+Messaging.generateUsernames = function (users, excludeUid) {
+	users = users.filter(u => u && parseInt(u.uid, 10) !== excludeUid);
+	const usernames = users.map(u => u.username);
+	if (users.length > 3) {
+		return translator.compile(
+			'modules:chat.usernames-and-x-others',
+			usernames.slice(0, 2).join(', '),
+			usernames.length - 2
+		);
+	}
+	return usernames.join(', ');
+};
+
+Messaging.generateChatWithMessage = async function (users, excludeUid) {
+	users = users.filter(u => u && parseInt(u.uid, 10) !== excludeUid);
+	const usernames = users.map(u => `<a href="${relative_path}/uid/${u.uid}">${u.username}</a>`);
+	let compiled = '';
+	if (!users.length) {
+		return '[[modules:chat.no-users-in-room]]';
+	}
+	if (users.length > 3) {
+		compiled = translator.compile(
+			'modules:chat.chat-with-usernames-and-x-others',
+			usernames.slice(0, 2).join(', '),
+			usernames.length - 2
+		);
+	} else {
+		compiled = translator.compile(
+			'modules:chat.chat-with-usernames',
+			usernames.join(', '),
+		);
+	}
+	return utils.decodeHTMLEntities(await translator.translate(compiled));
+};
 
 Messaging.getTeaser = async (uid, roomId) => {
 	const mid = await Messaging.getLatestUndeletedMessage(uid, roomId);
diff --git a/src/messaging/notifications.js b/src/messaging/notifications.js
index 1c04d4562d..6913c2d415 100644
--- a/src/messaging/notifications.js
+++ b/src/messaging/notifications.js
@@ -57,9 +57,10 @@ module.exports = function (Messaging) {
 	};
 
 	async function sendNotifications(fromuid, uids, roomId, messageObj) {
-		const isOnline = await user.isOnline(uids);
-		uids = uids.filter((uid, index) => !isOnline[index] && parseInt(fromuid, 10) !== parseInt(uid, 10));
+		const hasRead = await Messaging.hasRead(uids, roomId);
+		uids = uids.filter((uid, index) => !hasRead[index] && parseInt(fromuid, 10) !== parseInt(uid, 10));
 		if (!uids.length) {
+			delete Messaging.notifyQueue[`${fromuid}:${roomId}`];
 			return;
 		}
 
diff --git a/src/messaging/rooms.js b/src/messaging/rooms.js
index 948fd88027..4c1d35a1bf 100644
--- a/src/messaging/rooms.js
+++ b/src/messaging/rooms.js
@@ -249,6 +249,7 @@ module.exports = function (Messaging) {
 		room.canReply = canReply;
 		room.groupChat = room.hasOwnProperty('groupChat') ? room.groupChat : users.length > 2;
 		room.usernames = Messaging.generateUsernames(users, uid);
+		room.chatWithMessage = await Messaging.generateChatWithMessage(users, uid);
 		room.maximumUsersInChatRoom = meta.config.maximumUsersInChatRoom;
 		room.maximumChatMessageLength = meta.config.maximumChatMessageLength;
 		room.showUserInput = !room.maximumUsersInChatRoom || room.maximumUsersInChatRoom > 2;
diff --git a/src/messaging/unread.js b/src/messaging/unread.js
index 169374045f..3a31595070 100644
--- a/src/messaging/unread.js
+++ b/src/messaging/unread.js
@@ -24,6 +24,14 @@ module.exports = function (Messaging) {
 		await db.sortedSetRemove(`uid:${uid}:chat:rooms:unread`, roomId);
 	};
 
+	Messaging.hasRead = async (uids, roomId) => {
+		const isMembers = await db.isMemberOfSortedSets(
+			uids.map(uid => `uid:${uid}:chat:rooms:unread`),
+			roomId
+		);
+		return uids.map((uid, index) => !isMembers[index]);
+	};
+
 	Messaging.markAllRead = async (uid) => {
 		await db.delete(`uid:${uid}:chat:rooms:unread`);
 	};
diff --git a/src/meta/aliases.js b/src/meta/aliases.js
index d393b2e18a..d5eb42aa89 100644
--- a/src/meta/aliases.js
+++ b/src/meta/aliases.js
@@ -10,7 +10,7 @@ const aliases = {
 	'admin js bundle': ['adminjs', 'adminscript', 'adminscripts'],
 	javascript: ['js'],
 	'client side styles': [
-		'clientcss', 'clientless', 'clientstyles', 'clientstyle',
+		'clientcss', 'clientscss', 'clientstyles', 'clientstyle',
 	],
 	'admin control panel styles': [
 		'admincss', 'adminless', 'adminstyles', 'adminstyle', 'acpcss', 'acpless', 'acpstyles', 'acpstyle',
diff --git a/src/meta/build.js b/src/meta/build.js
index 1941291020..d7b545dc80 100644
--- a/src/meta/build.js
+++ b/src/meta/build.js
@@ -5,7 +5,7 @@ const winston = require('winston');
 const nconf = require('nconf');
 const _ = require('lodash');
 const path = require('path');
-const mkdirp = require('mkdirp');
+const { mkdirp } = require('mkdirp');
 const chalk = require('chalk');
 
 const cacheBuster = require('./cacheBuster');
@@ -70,7 +70,7 @@ async function beforeBuild(targets) {
 		await plugins.prepareForBuild(targets);
 		await mkdirp(path.join(__dirname, '../../build/public'));
 	} catch (err) {
-		winston.error(`[build] Encountered error preparing for build\n${err.stack}`);
+		winston.error(`[build] Encountered error preparing for build`);
 		throw err;
 	}
 }
@@ -197,7 +197,7 @@ exports.build = async function (targets, options) {
 		await cacheBuster.write();
 		winston.info(`[build] Asset compilation successful. Completed in ${totalTime}sec.`);
 	} catch (err) {
-		winston.error(`[build] Encountered error during build step\n${err.stack ? err.stack : err}`);
+		winston.error(`[build] Encountered error during build step`);
 		throw err;
 	}
 };
diff --git a/src/meta/cacheBuster.js b/src/meta/cacheBuster.js
index 55f35764a9..58129ff2f8 100644
--- a/src/meta/cacheBuster.js
+++ b/src/meta/cacheBuster.js
@@ -2,7 +2,7 @@
 
 const fs = require('fs');
 const path = require('path');
-const mkdirp = require('mkdirp');
+const { mkdirp } = require('mkdirp');
 const winston = require('winston');
 
 const filePath = path.join(__dirname, '../../build/cache-buster');
diff --git a/src/meta/configs.js b/src/meta/configs.js
index 75a013f71b..ca53dc1494 100644
--- a/src/meta/configs.js
+++ b/src/meta/configs.js
@@ -240,12 +240,9 @@ async function saveRenderedCss(data) {
 	if (!data.customCSS) {
 		return;
 	}
-	const less = require('less');
-	const lessObject = await less.render(data.customCSS, {
-		compress: true,
-		javascriptEnabled: false,
-	});
-	data.renderedCustomCSS = lessObject.css;
+	const sass = require('../utils').getSass();
+	const scssOutput = await sass.compileStringAsync(data.customCSS, {});
+	data.renderedCustomCSS = scssOutput.css.toString();
 }
 
 async function getLogoSize(data) {
diff --git a/src/meta/css.js b/src/meta/css.js
index ea347d4af9..a51c8d72a8 100644
--- a/src/meta/css.js
+++ b/src/meta/css.js
@@ -3,11 +3,7 @@
 const winston = require('winston');
 const nconf = require('nconf');
 const fs = require('fs');
-const util = require('util');
 const path = require('path');
-const rimraf = require('rimraf');
-
-const rimrafAsync = util.promisify(rimraf);
 
 const plugins = require('../plugins');
 const db = require('../database');
@@ -17,47 +13,112 @@ const minifier = require('./minifier');
 const CSS = module.exports;
 
 CSS.supportedSkins = [
-	'cerulean', 'cyborg', 'flatly', 'journal', 'lumen', 'paper', 'simplex',
-	'spacelab', 'united', 'cosmo', 'darkly', 'readable', 'sandstone',
-	'slate', 'superhero', 'yeti',
+	'cerulean', 'cosmo', 'cyborg', 'darkly', 'flatly', 'journal', 'litera',
+	'lumen', 'lux', 'materia', 'minty', 'morph', 'pulse', 'quartz', 'sandstone',
+	'simplex', 'sketchy', 'slate', 'solar', 'spacelab', 'superhero', 'united',
+	'vapor', 'yeti', 'zephyr',
 ];
 
 const buildImports = {
-	client: function (source) {
-		return `@import "./theme";\n${source}\n${[
-			'@import "../public/vendor/fontawesome/less/regular.less";',
-			'@import "../public/vendor/fontawesome/less/solid.less";',
-			'@import "../public/vendor/fontawesome/less/brands.less";',
-			'@import "../public/vendor/fontawesome/less/fontawesome.less";',
-			'@import "../public/vendor/fontawesome/less/v4-shims.less";',
-			'@import "../public/vendor/fontawesome/less/nodebb-shims.less";',
-			'@import "../../public/less/jquery-ui.less";',
-			'@import (inline) "../node_modules/@adactive/bootstrap-tagsinput/src/bootstrap-tagsinput.css";',
-			'@import (inline) "../node_modules/cropperjs/dist/cropper.css";',
-			'@import "../../public/less/flags.less";',
-			'@import "../../public/less/generics.less";',
-			'@import "../../public/less/mixins.less";',
-			'@import "../../public/less/global.less";',
-			'@import "../../public/less/modals.less";',
-		].map(str => str.replace(/\//g, path.sep)).join('\n')}`;
+	client: function (source, themeData) {
+		return [
+			boostrapImport(themeData),
+			'@import "@adactive/bootstrap-tagsinput/src/bootstrap-tagsinput";',
+			source,
+			'@import "jquery-ui";',
+			'@import "cropperjs/dist/cropper";',
+		].join('\n');
 	},
 	admin: function (source) {
-		return `${source}\n${[
-			'@import "../public/vendor/fontawesome/less/regular.less";',
-			'@import "../public/vendor/fontawesome/less/solid.less";',
-			'@import "../public/vendor/fontawesome/less/brands.less";',
-			'@import "../public/vendor/fontawesome/less/fontawesome.less";',
-			'@import "../public/vendor/fontawesome/less/v4-shims.less";',
-			'@import "../public/vendor/fontawesome/less/nodebb-shims.less";',
-			'@import "../public/less/admin/admin";',
-			'@import "../public/less/generics.less";',
-			'@import "../../public/less/jquery-ui.less";',
-			'@import (inline) "../node_modules/@adactive/bootstrap-tagsinput/src/bootstrap-tagsinput.css";',
-			'@import (inline) "../public/vendor/mdl/material.css";',
-		].map(str => str.replace(/\//g, path.sep)).join('\n')}`;
+		return [
+			'@import "admin/vars";',
+			'@import "bootswatch/dist/materia/variables";',
+			'@import "bootstrap/scss/bootstrap";',
+			'@import "bootswatch/dist/materia/bootswatch";',
+			'@import "mixins";',
+			'@import "fontawesome";',
+			'@import "@adactive/bootstrap-tagsinput/src/bootstrap-tagsinput";',
+			'@import "generics";',
+			'@import "responsive-utilities";',
+			'@import "admin/admin";',
+			source,
+			'@import "jquery-ui";',
+		].join('\n');
 	},
 };
 
+function boostrapImport(themeData) {
+	// see https://getbootstrap.com/docs/5.0/customize/sass/#variable-defaults
+	// for an explanation of this order and https://bootswatch.com/help/
+	const { bootswatchSkin } = themeData;
+	return [
+		bootswatchSkin ? `@import "bootswatch/dist/${bootswatchSkin}/variables";` : '',
+		'@import "bootstrap/scss/mixins/banner";',
+		'@include bsBanner("");',
+		// functions must be included first
+		'@import "bootstrap/scss/functions";',
+
+		// overrides for bs5 variables
+		'@import "./scss/overrides";', // this file is in the themes scss folder
+		'@import "overrides.scss";', // core scss overrides
+
+		// bs files
+		'@import "bootstrap/scss/variables";',
+		'@import "bootstrap/scss/maps";',
+		'@import "bootstrap/scss/mixins";',
+		'@import "bootstrap/scss/utilities";',
+
+		// Layout & components
+		'@import "bootstrap/scss/root";',
+		'@import "bootstrap/scss/reboot";',
+		'@import "bootstrap/scss/type";',
+		'@import "bootstrap/scss/images";',
+		'@import "bootstrap/scss/containers";',
+		'@import "bootstrap/scss/grid";',
+		'@import "bootstrap/scss/tables";',
+		'@import "bootstrap/scss/forms";',
+		'@import "bootstrap/scss/buttons";',
+		'@import "bootstrap/scss/transitions";',
+		'@import "bootstrap/scss/dropdown";',
+		'@import "bootstrap/scss/button-group";',
+		'@import "bootstrap/scss/nav";',
+		'@import "bootstrap/scss/navbar";',
+		'@import "bootstrap/scss/card";',
+		'@import "bootstrap/scss/accordion";',
+		'@import "bootstrap/scss/breadcrumb";',
+		'@import "bootstrap/scss/pagination";',
+		'@import "bootstrap/scss/badge";',
+		'@import "bootstrap/scss/alert";',
+		'@import "bootstrap/scss/progress";',
+		'@import "bootstrap/scss/list-group";',
+		'@import "bootstrap/scss/close";',
+		'@import "bootstrap/scss/toasts";',
+		'@import "bootstrap/scss/modal";',
+		'@import "bootstrap/scss/tooltip";',
+		'@import "bootstrap/scss/popover";',
+		'@import "bootstrap/scss/carousel";',
+		'@import "bootstrap/scss/spinners";',
+		'@import "bootstrap/scss/offcanvas";',
+		'@import "bootstrap/scss/placeholders";',
+
+		// Helpers
+		'@import "bootstrap/scss/helpers";',
+
+		'@import "responsive-utilities";',
+
+		// Utilities
+		'@import "bootstrap/scss/utilities/api";',
+		// scss-docs-end import-stack
+
+		'@import "fontawesome";',
+		'@import "mixins";', // core mixins
+		'@import "generics";',
+		'@import "client";', // core page styles
+		'@import "./theme";', // rest of the theme scss
+		bootswatchSkin ? `@import "bootswatch/dist/${bootswatchSkin}/bootswatch";` : '',
+	].join('\n');
+}
+
 async function filterMissingFiles(filepaths) {
 	const exists = await Promise.all(
 		filepaths.map(async (filepath) => {
@@ -71,13 +132,23 @@ async function filterMissingFiles(filepaths) {
 	return filepaths.filter((filePath, i) => exists[i]);
 }
 
-async function getImports(files, prefix, extension) {
+async function getImports(files, extension) {
 	const pluginDirectories = [];
 	let source = '';
 
+	function pathToImport(file) {
+		if (!file) {
+			return '';
+		}
+		// trim css extension so it inlines the css like less (inline)
+		const parsed = path.parse(file);
+		const newFile = path.join(parsed.dir, parsed.name);
+		return `\n@import "${newFile.replace(/\\/g, '/')}";`;
+	}
+
 	files.forEach((styleFile) => {
 		if (styleFile.endsWith(extension)) {
-			source += `${prefix + path.sep + styleFile}";`;
+			source += pathToImport(styleFile);
 		} else {
 			pluginDirectories.push(styleFile);
 		}
@@ -85,7 +156,7 @@ async function getImports(files, prefix, extension) {
 	await Promise.all(pluginDirectories.map(async (directory) => {
 		const styleFiles = await file.walk(directory);
 		styleFiles.forEach((styleFile) => {
-			source += `${prefix + path.sep + styleFile}";`;
+			source += pathToImport(styleFile);
 		});
 	}));
 	return source;
@@ -94,8 +165,8 @@ async function getImports(files, prefix, extension) {
 async function getBundleMetadata(target) {
 	const paths = [
 		path.join(__dirname, '../../node_modules'),
-		path.join(__dirname, '../../public/less'),
-		path.join(__dirname, '../../public/vendor/fontawesome/less'),
+		path.join(__dirname, '../../public/scss'),
+		path.join(__dirname, '../../public/vendor/fontawesome/scss'),
 	];
 
 	// Skin support
@@ -107,48 +178,49 @@ async function getBundleMetadata(target) {
 			target = 'client';
 		}
 	}
-	let skinImport = [];
+
+	let themeData = null;
 	if (target === 'client') {
-		const themeData = await db.getObjectFields('config', ['theme:type', 'theme:id', 'bootswatchSkin']);
-		const themeId = (themeData['theme:id'] || 'nodebb-theme-persona');
-		const baseThemePath = path.join(nconf.get('themes_path'), (themeData['theme:type'] && themeData['theme:type'] === 'local' ? themeId : 'nodebb-theme-vanilla'));
+		themeData = await db.getObjectFields('config', ['theme:type', 'theme:id', 'bootswatchSkin']);
+		const themeId = (themeData['theme:id'] || 'nodebb-theme-harmony');
+		const baseThemePath = path.join(nconf.get('themes_path'), (themeData['theme:type'] && themeData['theme:type'] === 'local' ? themeId : 'nodebb-theme-harmony'));
 		paths.unshift(baseThemePath);
+		paths.unshift(`${baseThemePath}/node_modules`);
 
 		themeData.bootswatchSkin = skin || themeData.bootswatchSkin;
-		if (themeData && themeData.bootswatchSkin) {
-			skinImport.push(`\n@import "./@nodebb/bootswatch/${themeData.bootswatchSkin}/variables.less";`);
-			skinImport.push(`\n@import "./@nodebb/bootswatch/${themeData.bootswatchSkin}/bootswatch.less";`);
-		}
-		skinImport = skinImport.join('');
 	}
 
-	const [lessImports, cssImports, acpLessImports] = await Promise.all([
-		filterGetImports(plugins.lessFiles, '\n@import ".', '.less'),
-		filterGetImports(plugins.cssFiles, '\n@import (inline) ".', '.css'),
-		target === 'client' ? '' : filterGetImports(plugins.acpLessFiles, '\n@import ".', '.less'),
+	const [scssImports, cssImports, acpScssImports] = await Promise.all([
+		filterGetImports(plugins.scssFiles, '.scss'),
+		filterGetImports(plugins.cssFiles, '.css'),
+		target === 'client' ? '' : filterGetImports(plugins.acpScssFiles, '.scss'),
 	]);
 
-	async function filterGetImports(files, prefix, extension) {
+	async function filterGetImports(files, extension) {
 		const filteredFiles = await filterMissingFiles(files);
-		return await getImports(filteredFiles, prefix, extension);
+		return await getImports(filteredFiles, extension);
 	}
 
-	let imports = `${skinImport}\n${cssImports}\n${lessImports}\n${acpLessImports}`;
-	imports = buildImports[target](imports);
+	let imports = `${cssImports}\n${scssImports}\n${acpScssImports}`;
+	imports = buildImports[target](imports, themeData);
 
 	return { paths: paths, imports: imports };
 }
 
 CSS.buildBundle = async function (target, fork) {
 	if (target === 'client') {
-		await rimrafAsync(path.join(__dirname, '../../build/public/client*'));
+		let files = await fs.promises.readdir(path.join(__dirname, '../../build/public'));
+		files = files.filter(f => f.match(/^client.*\.css$/));
+		await Promise.all(files.map(f => fs.promises.unlink(path.join(__dirname, '../../build/public', f))));
 	}
 
 	const data = await getBundleMetadata(target);
 	const minify = process.env.NODE_ENV !== 'development';
-	const bundle = await minifier.css.bundle(data.imports, data.paths, minify, fork);
+	const { ltr, rtl } = await minifier.css.bundle(data.imports, data.paths, minify, fork);
 
-	const filename = `${target}.css`;
-	await fs.promises.writeFile(path.join(__dirname, '../../build/public', filename), bundle.code);
-	return bundle.code;
+	await Promise.all([
+		fs.promises.writeFile(path.join(__dirname, '../../build/public', `${target}.css`), ltr.code),
+		fs.promises.writeFile(path.join(__dirname, '../../build/public', `${target}-rtl.css`), rtl.code),
+	]);
+	return [ltr.code, rtl.code];
 };
diff --git a/src/meta/js.js b/src/meta/js.js
index e1998443d8..ccba341eaf 100644
--- a/src/meta/js.js
+++ b/src/meta/js.js
@@ -2,11 +2,7 @@
 
 const path = require('path');
 const fs = require('fs');
-const util = require('util');
-const mkdirp = require('mkdirp');
-const rimraf = require('rimraf');
-
-const rimrafAsync = util.promisify(rimraf);
+const { mkdirp } = require('mkdirp');
 
 const file = require('../file');
 const plugins = require('../plugins');
@@ -69,7 +65,7 @@ async function clearModules() {
 		p => path.join(__dirname, '../../build/public/src', p)
 	);
 	await Promise.all(
-		builtPaths.map(builtPath => rimrafAsync(builtPath))
+		builtPaths.map(builtPath => fs.promises.rm(builtPath, { recursive: true, force: true }))
 	);
 }
 
@@ -86,8 +82,7 @@ JS.buildModules = async function () {
 };
 
 JS.linkStatics = async function () {
-	await rimrafAsync(path.join(__dirname, '../../build/public/plugins'));
-
+	await fs.promises.rm(path.join(__dirname, '../../build/public/plugins'), { recursive: true, force: true });
 	await Promise.all(Object.keys(plugins.staticDirs).map(async (mappedPath) => {
 		const sourceDir = plugins.staticDirs[mappedPath];
 		const destDir = path.join(__dirname, '../../build/public/plugins', mappedPath);
@@ -131,14 +126,13 @@ async function getBundleScriptList(target) {
 JS.buildBundle = async function (target, fork) {
 	const filename = `scripts-${target}.js`;
 	const files = await getBundleScriptList(target);
-	const minify = false; // webpack will minify in prod
 	const filePath = path.join(__dirname, '../../build/public', filename);
 
 	await minifier.js.bundle({
 		files: files,
 		filename: filename,
 		destPath: filePath,
-	}, minify, fork);
+	}, fork);
 };
 
 JS.killMinifier = function () {
diff --git a/src/meta/languages.js b/src/meta/languages.js
index 4d845cc2e1..fe9dfd302b 100644
--- a/src/meta/languages.js
+++ b/src/meta/languages.js
@@ -4,13 +4,8 @@ const _ = require('lodash');
 const nconf = require('nconf');
 const path = require('path');
 const fs = require('fs');
-const util = require('util');
-let mkdirp = require('mkdirp');
+const { mkdirp } = require('mkdirp');
 
-mkdirp = mkdirp.hasOwnProperty('native') ? mkdirp : util.promisify(mkdirp);
-const rimraf = require('rimraf');
-
-const rimrafAsync = util.promisify(rimraf);
 
 const file = require('../file');
 const Plugins = require('../plugins');
@@ -137,7 +132,7 @@ async function assignFileToTranslations(translations, path) {
 }
 
 exports.build = async function buildLanguages() {
-	await rimrafAsync(buildLanguagesPath);
+	await fs.promises.rm(buildLanguagesPath, { recursive: true, force: true });
 	const data = await getTranslationMetadata();
 	await buildTranslations(data);
 };
diff --git a/src/meta/minifier.js b/src/meta/minifier.js
index cfb740755f..1434745fd2 100644
--- a/src/meta/minifier.js
+++ b/src/meta/minifier.js
@@ -2,13 +2,13 @@
 
 const fs = require('fs');
 const os = require('os');
-const uglify = require('uglify-es');
 const async = require('async');
 const winston = require('winston');
-const less = require('less');
 const postcss = require('postcss');
 const autoprefixer = require('autoprefixer');
 const clean = require('postcss-clean');
+const rtlcss = require('rtlcss');
+const sass = require('../utils').getSass();
 
 const fork = require('./debugFork');
 require('../file'); // for graceful-fs
@@ -34,7 +34,7 @@ Object.defineProperty(Minifier, 'maxThreads', {
 	enumerable: true,
 });
 
-Minifier.maxThreads = os.cpus().length - 1;
+Minifier.maxThreads = Math.max(1, os.cpus().length - 1);
 
 Minifier.killAll = function () {
 	pool.forEach((child) => {
@@ -147,100 +147,45 @@ actions.concat = async function concat(data) {
 	}
 };
 
-actions.minifyJS_batch = async function minifyJS_batch(data) {
-	await async.eachLimit(data.files, 100, async (fileObj) => {
-		const source = await fs.promises.readFile(fileObj.srcPath, 'utf8');
-		const filesToMinify = [
-			{
-				srcPath: fileObj.srcPath,
-				filename: fileObj.filename,
-				source: source,
-			},
-		];
-
-		await minifyAndSave({
-			files: filesToMinify,
-			destPath: fileObj.destPath,
-			filename: fileObj.filename,
-		});
-	});
-};
-
-actions.minifyJS = async function minifyJS(data) {
-	const filesToMinify = await async.mapLimit(data.files, 1000, async (fileObj) => {
-		const source = await fs.promises.readFile(fileObj.srcPath, 'utf8');
-		return {
-			srcPath: fileObj.srcPath,
-			filename: fileObj.filename,
-			source: source,
-		};
-	});
-	await minifyAndSave({
-		files: filesToMinify,
-		destPath: data.destPath,
-		filename: data.filename,
-	});
-};
-
-async function minifyAndSave(data) {
-	const scripts = {};
-	data.files.forEach((ref) => {
-		if (ref && ref.filename && ref.source) {
-			scripts[ref.filename] = ref.source;
-		}
-	});
-
-	const minified = uglify.minify(scripts, {
-		sourceMap: {
-			filename: data.filename,
-			url: `${String(data.filename).split(/[/\\]/).pop()}.map`,
-			includeSources: true,
-		},
-		compress: false,
-	});
-
-	if (minified.error) {
-		throw new Error(`Error minifying ${minified.error.filename}\n${minified.error.stack}`);
-	}
-	await Promise.all([
-		fs.promises.writeFile(data.destPath, minified.code),
-		fs.promises.writeFile(`${data.destPath}.map`, minified.map),
-	]);
-}
-
 Minifier.js = {};
-Minifier.js.bundle = async function (data, minify, fork) {
+Minifier.js.bundle = async function (data, fork) {
 	return await executeAction({
-		act: minify ? 'minifyJS' : 'concat',
+		act: 'concat',
 		files: data.files,
 		filename: data.filename,
 		destPath: data.destPath,
 	}, fork);
 };
 
-Minifier.js.minifyBatch = async function (scripts, fork) {
-	return await executeAction({
-		act: 'minifyJS_batch',
-		files: scripts,
-	}, fork);
-};
-
 actions.buildCSS = async function buildCSS(data) {
-	const lessOutput = await less.render(data.source, {
-		paths: data.paths,
-		javascriptEnabled: false,
+	const scssOutput = await sass.compileStringAsync(data.source, {
+		loadPaths: data.paths,
 	});
 
-	const postcssArgs = [autoprefixer];
-	if (data.minify) {
-		postcssArgs.push(clean({
-			processImportFrom: ['local'],
-		}));
+	async function processScss(direction) {
+		const postcssArgs = [autoprefixer];
+		if (direction === 'rtl') {
+			postcssArgs.unshift(rtlcss());
+		}
+		if (data.minify) {
+			postcssArgs.push(clean({
+				processImportFrom: ['local'],
+			}));
+		}
+		return await postcss(postcssArgs).process(scssOutput.css.toString(), {
+			from: undefined,
+		});
 	}
-	const result = await postcss(postcssArgs).process(lessOutput.css, {
-		from: undefined,
-	});
-	return { code: result.css };
+
+	const [ltrresult, rtlresult] = await Promise.all([
+		processScss('ltr'),
+		processScss('rtl'),
+	]);
+
+	return {
+		ltr: { code: ltrresult.css },
+		rtl: { code: rtlresult.css },
+	};
 };
 
 Minifier.css = {};
diff --git a/src/meta/templates.js b/src/meta/templates.js
index 89a68080fa..ec3c54882d 100644
--- a/src/meta/templates.js
+++ b/src/meta/templates.js
@@ -1,10 +1,6 @@
 'use strict';
 
-const util = require('util');
-let mkdirp = require('mkdirp');
-
-mkdirp = mkdirp.hasOwnProperty('native') ? mkdirp : util.promisify(mkdirp);
-const rimraf = require('rimraf');
+const { mkdirp } = require('mkdirp');
 const winston = require('winston');
 const path = require('path');
 const fs = require('fs');
@@ -68,7 +64,6 @@ async function getTemplateDirs(activePlugins) {
 		theme = themeConfig.baseTheme;
 	}
 
-	themeTemplates.push(nconf.get('base_templates_path'));
 	themeTemplates = _.uniq(themeTemplates.reverse());
 
 	const coreTemplatesPath = nconf.get('core_templates_path');
@@ -113,9 +108,7 @@ async function compileTemplate(filename, source) {
 Templates.compileTemplate = compileTemplate;
 
 async function compile() {
-	const _rimraf = util.promisify(rimraf);
-
-	await _rimraf(viewsPath);
+	await fs.promises.rm(viewsPath, { recursive: true, force: true });
 	await mkdirp(viewsPath);
 
 	let files = await plugins.getActive();
diff --git a/src/meta/themes.js b/src/meta/themes.js
index 0af75640c9..d757cfb9ec 100644
--- a/src/meta/themes.js
+++ b/src/meta/themes.js
@@ -150,7 +150,7 @@ Themes.setupPaths = async () => {
 		currentThemeId: Meta.configs.get('theme:id'),
 	});
 
-	const themeId = data.currentThemeId || 'nodebb-theme-persona';
+	const themeId = data.currentThemeId || 'nodebb-theme-harmony';
 
 	if (process.env.NODE_ENV === 'development') {
 		winston.info(`[themes] Using theme ${themeId}`);
@@ -159,7 +159,7 @@ Themes.setupPaths = async () => {
 	const themeObj = data.themesData.find(themeObj => themeObj.id === themeId);
 
 	if (!themeObj) {
-		throw new Error('[[error:theme-not-found]]');
+		throw new Error('theme-not-found');
 	}
 
 	Themes.setPath(themeObj);
@@ -167,13 +167,16 @@ Themes.setupPaths = async () => {
 
 Themes.setPath = function (themeObj) {
 	// Theme's templates path
-	let themePath = nconf.get('base_templates_path');
+	let themePath;
 	const fallback = path.join(nconf.get('themes_path'), themeObj.id, 'templates');
 
 	if (themeObj.templates) {
 		themePath = path.join(nconf.get('themes_path'), themeObj.id, themeObj.templates);
 	} else if (file.existsSync(fallback)) {
 		themePath = fallback;
+	} else {
+		winston.error('[themes] Unable to resolve this theme\'s templates. Expected to be at "templates/" or defined in the "templates" property of "theme.json"');
+		throw new Error('theme-missing-templates');
 	}
 
 	nconf.set('theme_templates_path', themePath);
diff --git a/src/middleware/admin.js b/src/middleware/admin.js
index ed49408be8..b514fb5cca 100644
--- a/src/middleware/admin.js
+++ b/src/middleware/admin.js
@@ -1,16 +1,12 @@
 'use strict';
 
-const winston = require('winston');
-const jsesc = require('jsesc');
+
 const nconf = require('nconf');
-const semver = require('semver');
 
 const user = require('../user');
 const meta = require('../meta');
 const plugins = require('../plugins');
 const privileges = require('../privileges');
-const utils = require('../utils');
-const versions = require('../admin/versions');
 const helpers = require('./helpers');
 
 const controllers = {
@@ -30,90 +26,6 @@ middleware.buildHeader = helpers.try(async (req, res, next) => {
 	next();
 });
 
-middleware.renderHeader = async (req, res, data) => {
-	const custom_header = {
-		plugins: [],
-		authentication: [],
-	};
-	res.locals.config = res.locals.config || {};
-
-	const results = await utils.promiseParallel({
-		userData: user.getUserFields(req.uid, ['username', 'userslug', 'email', 'picture', 'email:confirmed']),
-		scripts: getAdminScripts(),
-		custom_header: plugins.hooks.fire('filter:admin.header.build', custom_header),
-		configs: meta.configs.list(),
-		latestVersion: getLatestVersion(),
-		privileges: privileges.admin.get(req.uid),
-		tags: meta.tags.parse(req, {}, [], []),
-	});
-
-	const { userData } = results;
-	userData.uid = req.uid;
-	userData['email:confirmed'] = userData['email:confirmed'] === 1;
-	userData.privileges = results.privileges;
-
-	let acpPath = req.path.slice(1).split('/');
-	acpPath.forEach((path, i) => {
-		acpPath[i] = path.charAt(0).toUpperCase() + path.slice(1);
-	});
-	acpPath = acpPath.join(' > ');
-
-	const version = nconf.get('version');
-
-	res.locals.config.userLang = res.locals.config.acpLang || res.locals.config.userLang;
-	let templateValues = {
-		config: res.locals.config,
-		configJSON: jsesc(JSON.stringify(res.locals.config), { isScriptContext: true }),
-		relative_path: res.locals.config.relative_path,
-		adminConfigJSON: encodeURIComponent(JSON.stringify(results.configs)),
-		metaTags: results.tags.meta,
-		linkTags: results.tags.link,
-		user: userData,
-		userJSON: jsesc(JSON.stringify(userData), { isScriptContext: true }),
-		plugins: results.custom_header.plugins,
-		authentication: results.custom_header.authentication,
-		scripts: results.scripts,
-		'cache-buster': meta.config['cache-buster'] || '',
-		env: !!process.env.NODE_ENV,
-		title: `${acpPath || 'Dashboard'} | NodeBB Admin Control Panel`,
-		bodyClass: data.bodyClass,
-		version: version,
-		latestVersion: results.latestVersion,
-		upgradeAvailable: results.latestVersion && semver.gt(results.latestVersion, version),
-		showManageMenu: results.privileges.superadmin || ['categories', 'privileges', 'users', 'admins-mods', 'groups', 'tags', 'settings'].some(priv => results.privileges[`admin:${priv}`]),
-	};
-
-	templateValues.template = { name: res.locals.template };
-	templateValues.template[res.locals.template] = true;
-	({ templateData: templateValues } = await plugins.hooks.fire('filter:middleware.renderAdminHeader', {
-		req,
-		res,
-		templateData: templateValues,
-		data,
-	}));
-
-	return await req.app.renderAsync('admin/header', templateValues);
-};
-
-async function getAdminScripts() {
-	const scripts = await plugins.hooks.fire('filter:admin.scripts.get', []);
-	return scripts.map(script => ({ src: script }));
-}
-
-async function getLatestVersion() {
-	try {
-		const result = await versions.getLatestVersion();
-		return result;
-	} catch (err) {
-		winston.error(`[acp] Failed to fetch latest version${err.stack}`);
-	}
-	return null;
-}
-
-middleware.renderFooter = async function (req, res, data) {
-	return await req.app.renderAsync('admin/footer', data);
-};
-
 middleware.checkPrivileges = helpers.try(async (req, res, next) => {
 	// Kick out guests, obviously
 	if (req.uid <= 0) {
@@ -169,7 +81,7 @@ middleware.checkPrivileges = helpers.try(async (req, res, next) => {
 	}
 
 	if (res.locals.isAPI) {
-		res.status(401).json({});
+		controllers.helpers.formatApiResponse(401, res);
 	} else {
 		res.redirect(`${nconf.get('relative_path')}/login?local=1`);
 	}
diff --git a/src/middleware/csrf.js b/src/middleware/csrf.js
new file mode 100644
index 0000000000..f6af0c625b
--- /dev/null
+++ b/src/middleware/csrf.js
@@ -0,0 +1,22 @@
+'use strict';
+
+const { csrfSync } = require('csrf-sync');
+
+const {
+	generateToken,
+	csrfSynchronisedProtection,
+} = csrfSync({
+	getTokenFromRequest: (req) => {
+		if (req.headers['x-csrf-token']) {
+			return req.headers['x-csrf-token'];
+		} else if (req.body.csrf_token) {
+			return req.body.csrf_token;
+		}
+	},
+	size: 64,
+});
+
+module.exports = {
+	generateToken,
+	csrfSynchronisedProtection,
+};
diff --git a/src/middleware/header.js b/src/middleware/header.js
index ae1ea59752..e1db4535e3 100644
--- a/src/middleware/header.js
+++ b/src/middleware/header.js
@@ -1,33 +1,17 @@
 'use strict';
 
-const nconf = require('nconf');
-const jsesc = require('jsesc');
-const _ = require('lodash');
-const validator = require('validator');
 const util = require('util');
 
 const user = require('../user');
-const topics = require('../topics');
-const messaging = require('../messaging');
-const flags = require('../flags');
-const meta = require('../meta');
 const plugins = require('../plugins');
-const navigation = require('../navigation');
-const translator = require('../translator');
-const privileges = require('../privileges');
-const languages = require('../languages');
-const utils = require('../utils');
 const helpers = require('./helpers');
 
 const controllers = {
 	api: require('../controllers/api'),
-	helpers: require('../controllers/helpers'),
 };
 
 const middleware = module.exports;
 
-const relative_path = nconf.get('relative_path');
-
 middleware.buildHeader = helpers.try(async (req, res, next) => {
 	res.locals.renderHeader = true;
 	res.locals.isAPI = false;
@@ -35,7 +19,7 @@ middleware.buildHeader = helpers.try(async (req, res, next) => {
 		await require('./index').applyCSRFasync(req, res);
 	}
 
-	({ req, locals: res.locals } = await plugins.hooks.fire('filter:middleware.buildHeader', { req: req, locals: res.locals }));
+	await plugins.hooks.fire('filter:middleware.buildHeader', { req: req, locals: res.locals });
 	const [config, canLoginIfBanned] = await Promise.all([
 		controllers.api.loadConfig(req),
 		user.bans.canLoginIfBanned(req.uid),
@@ -53,213 +37,3 @@ middleware.buildHeader = helpers.try(async (req, res, next) => {
 });
 
 middleware.buildHeaderAsync = util.promisify(middleware.buildHeader);
-
-middleware.renderHeader = async function renderHeader(req, res, data) {
-	const registrationType = meta.config.registrationType || 'normal';
-	res.locals.config = res.locals.config || {};
-	const templateValues = {
-		title: meta.config.title || '',
-		'title:url': meta.config['title:url'] || '',
-		description: meta.config.description || '',
-		'cache-buster': meta.config['cache-buster'] || '',
-		'brand:logo': meta.config['brand:logo'] || '',
-		'brand:logo:url': meta.config['brand:logo:url'] || '',
-		'brand:logo:alt': meta.config['brand:logo:alt'] || '',
-		'brand:logo:display': meta.config['brand:logo'] ? '' : 'hide',
-		allowRegistration: registrationType === 'normal',
-		searchEnabled: plugins.hooks.hasListeners('filter:search.query'),
-		postQueueEnabled: !!meta.config.postQueue,
-		config: res.locals.config,
-		relative_path,
-		bodyClass: data.bodyClass,
-	};
-
-	templateValues.configJSON = jsesc(JSON.stringify(res.locals.config), { isScriptContext: true });
-
-	const results = await utils.promiseParallel({
-		isAdmin: user.isAdministrator(req.uid),
-		isGlobalMod: user.isGlobalModerator(req.uid),
-		isModerator: user.isModeratorOfAnyCategory(req.uid),
-		privileges: privileges.global.get(req.uid),
-		user: user.getUserData(req.uid),
-		isEmailConfirmSent: req.uid <= 0 ? false : await user.email.isValidationPending(req.uid),
-		languageDirection: translator.translate('[[language:dir]]', res.locals.config.userLang),
-		timeagoCode: languages.userTimeagoCode(res.locals.config.userLang),
-		browserTitle: translator.translate(controllers.helpers.buildTitle(translator.unescape(data.title))),
-		navigation: navigation.get(req.uid),
-	});
-
-	const unreadData = {
-		'': {},
-		new: {},
-		watched: {},
-		unreplied: {},
-	};
-
-	results.user.unreadData = unreadData;
-	results.user.isAdmin = results.isAdmin;
-	results.user.isGlobalMod = results.isGlobalMod;
-	results.user.isMod = !!results.isModerator;
-	results.user.privileges = results.privileges;
-	results.user.timeagoCode = results.timeagoCode;
-	results.user[results.user.status] = true;
-
-	results.user.email = String(results.user.email);
-	results.user['email:confirmed'] = results.user['email:confirmed'] === 1;
-	results.user.isEmailConfirmSent = !!results.isEmailConfirmSent;
-
-	templateValues.bootswatchSkin = (parseInt(meta.config.disableCustomUserSkins, 10) !== 1 ? res.locals.config.bootswatchSkin : '') || meta.config.bootswatchSkin || '';
-	templateValues.browserTitle = results.browserTitle;
-	({
-		navigation: templateValues.navigation,
-		unreadCount: templateValues.unreadCount,
-	} = await appendUnreadCounts({
-		uid: req.uid,
-		query: req.query,
-		navigation: results.navigation,
-		unreadData,
-	}));
-	templateValues.isAdmin = results.user.isAdmin;
-	templateValues.isGlobalMod = results.user.isGlobalMod;
-	templateValues.showModMenu = results.user.isAdmin || results.user.isGlobalMod || results.user.isMod;
-	templateValues.canChat = results.privileges.chat && meta.config.disableChat !== 1;
-	templateValues.user = results.user;
-	templateValues.userJSON = jsesc(JSON.stringify(results.user), { isScriptContext: true });
-	templateValues.useCustomCSS = meta.config.useCustomCSS && meta.config.customCSS;
-	templateValues.customCSS = templateValues.useCustomCSS ? (meta.config.renderedCustomCSS || '') : '';
-	templateValues.useCustomHTML = meta.config.useCustomHTML;
-	templateValues.customHTML = templateValues.useCustomHTML ? meta.config.customHTML : '';
-	templateValues.maintenanceHeader = meta.config.maintenanceMode && !results.isAdmin;
-	templateValues.defaultLang = meta.config.defaultLang || 'en-GB';
-	templateValues.userLang = res.locals.config.userLang;
-	templateValues.languageDirection = results.languageDirection;
-	if (req.query.noScriptMessage) {
-		templateValues.noScriptMessage = validator.escape(String(req.query.noScriptMessage));
-	}
-
-	templateValues.template = { name: res.locals.template };
-	templateValues.template[res.locals.template] = true;
-
-	if (data.hasOwnProperty('_header')) {
-		templateValues.metaTags = data._header.tags.meta;
-		templateValues.linkTags = data._header.tags.link;
-	}
-
-	if (req.route && req.route.path === '/') {
-		modifyTitle(templateValues);
-	}
-
-	const hookReturn = await plugins.hooks.fire('filter:middleware.renderHeader', {
-		req: req,
-		res: res,
-		templateValues: templateValues,
-		data: data,
-	});
-
-	return await req.app.renderAsync('header', hookReturn.templateValues);
-};
-
-async function appendUnreadCounts({ uid, navigation, unreadData, query }) {
-	const originalRoutes = navigation.map(nav => nav.originalRoute);
-	const calls = {
-		unreadData: topics.getUnreadData({ uid: uid, query: query }),
-		unreadChatCount: messaging.getUnreadCount(uid),
-		unreadNotificationCount: user.notifications.getUnreadCount(uid),
-		unreadFlagCount: (async function () {
-			if (originalRoutes.includes('/flags') && await user.isPrivileged(uid)) {
-				return flags.getCount({
-					uid,
-					query,
-					filters: {
-						quick: 'unresolved',
-						cid: (await user.isAdminOrGlobalMod(uid)) ? [] : (await user.getModeratedCids(uid)),
-					},
-				});
-			}
-			return 0;
-		}()),
-	};
-	const results = await utils.promiseParallel(calls);
-
-	const unreadCounts = results.unreadData.counts;
-	const unreadCount = {
-		topic: unreadCounts[''] || 0,
-		newTopic: unreadCounts.new || 0,
-		watchedTopic: unreadCounts.watched || 0,
-		unrepliedTopic: unreadCounts.unreplied || 0,
-		mobileUnread: 0,
-		unreadUrl: '/unread',
-		chat: results.unreadChatCount || 0,
-		notification: results.unreadNotificationCount || 0,
-		flags: results.unreadFlagCount || 0,
-	};
-
-	Object.keys(unreadCount).forEach((key) => {
-		if (unreadCount[key] > 99) {
-			unreadCount[key] = '99+';
-		}
-	});
-
-	const { tidsByFilter } = results.unreadData;
-	navigation = navigation.map((item) => {
-		function modifyNavItem(item, route, filter, content) {
-			if (item && item.originalRoute === route) {
-				unreadData[filter] = _.zipObject(tidsByFilter[filter], tidsByFilter[filter].map(() => true));
-				item.content = content;
-				unreadCount.mobileUnread = content;
-				unreadCount.unreadUrl = route;
-				if (unreadCounts[filter] > 0) {
-					item.iconClass += ' unread-count';
-				}
-			}
-		}
-		modifyNavItem(item, '/unread', '', unreadCount.topic);
-		modifyNavItem(item, '/unread?filter=new', 'new', unreadCount.newTopic);
-		modifyNavItem(item, '/unread?filter=watched', 'watched', unreadCount.watchedTopic);
-		modifyNavItem(item, '/unread?filter=unreplied', 'unreplied', unreadCount.unrepliedTopic);
-
-		['flags'].forEach((prop) => {
-			if (item && item.originalRoute === `/${prop}` && unreadCount[prop] > 0) {
-				item.iconClass += ' unread-count';
-				item.content = unreadCount.flags;
-			}
-		});
-
-		return item;
-	});
-
-	return { navigation, unreadCount };
-}
-
-middleware.renderFooter = async function renderFooter(req, res, templateValues) {
-	const data = await plugins.hooks.fire('filter:middleware.renderFooter', {
-		req: req,
-		res: res,
-		templateValues: templateValues,
-	});
-
-	const scripts = await plugins.hooks.fire('filter:scripts.get', []);
-
-	data.templateValues.scripts = scripts.map(script => ({ src: script }));
-
-	data.templateValues.useCustomJS = meta.config.useCustomJS;
-	data.templateValues.customJS = data.templateValues.useCustomJS ? meta.config.customJS : '';
-	data.templateValues.isSpider = req.uid === -1;
-
-	return await req.app.renderAsync('footer', data.templateValues);
-};
-
-function modifyTitle(obj) {
-	const title = controllers.helpers.buildTitle(meta.config.homePageTitle || '[[pages:home]]');
-	obj.browserTitle = title;
-
-	if (obj.metaTags) {
-		obj.metaTags.forEach((tag, i) => {
-			if (tag.property === 'og:title') {
-				obj.metaTags[i].content = title;
-			}
-		});
-	}
-
-	return title;
-}
diff --git a/src/middleware/helpers.js b/src/middleware/helpers.js
index e31d86299a..e92f8b272b 100644
--- a/src/middleware/helpers.js
+++ b/src/middleware/helpers.js
@@ -42,6 +42,10 @@ helpers.buildBodyClass = function (req, res, templateData = {}) {
 		parts[index] = index ? `${parts[0]}-${p}` : `page-${p || 'home'}`;
 	});
 
+	if (templateData.template) {
+		parts.push(`template-${templateData.template.name.split('/').join('-')}`);
+	}
+
 	if (templateData.template && templateData.template.topic) {
 		parts.push(`page-topic-category-${templateData.category.cid}`);
 		parts.push(`page-topic-category-${slugify(templateData.category.name)}`);
diff --git a/src/middleware/index.js b/src/middleware/index.js
index e4c8cc98ec..a92501a7b9 100644
--- a/src/middleware/index.js
+++ b/src/middleware/index.js
@@ -2,11 +2,11 @@
 
 const async = require('async');
 const path = require('path');
-const csrf = require('csurf');
 const validator = require('validator');
 const nconf = require('nconf');
 const toobusy = require('toobusy-js');
 const util = require('util');
+const { csrfSynchronisedProtection } = require('./csrf');
 
 const plugins = require('../plugins');
 const meta = require('../meta');
@@ -16,6 +16,7 @@ const analytics = require('../analytics');
 const privileges = require('../privileges');
 const cacheCreate = require('../cache/lru');
 const helpers = require('./helpers');
+const api = require('../api');
 
 const controllers = {
 	api: require('../controllers/api'),
@@ -24,6 +25,7 @@ const controllers = {
 
 const delayCache = cacheCreate({
 	ttl: 1000 * 60,
+	max: 200,
 });
 
 const middleware = module.exports;
@@ -34,7 +36,7 @@ middleware.regexes = {
 	timestampedUpload: /^\d+-.+$/,
 };
 
-const csrfMiddleware = csrf();
+const csrfMiddleware = csrfSynchronisedProtection;
 
 middleware.applyCSRF = function (req, res, next) {
 	if (req.uid >= 0) {
@@ -123,6 +125,15 @@ middleware.prepareAPI = function prepareAPI(req, res, next) {
 	next();
 };
 
+middleware.logApiUsage = async function logApiUsage(req, res, next) {
+	if (req.headers.hasOwnProperty('authorization')) {
+		const [, token] = req.headers.authorization.split(' ');
+		await api.utils.log(token);
+	}
+
+	next();
+};
+
 middleware.routeTouchIcon = function routeTouchIcon(req, res) {
 	if (meta.config['brand:touchIcon'] && validator.isURL(meta.config['brand:touchIcon'])) {
 		return res.redirect(meta.config['brand:touchIcon']);
@@ -159,7 +170,13 @@ async function expose(exposedField, method, field, req, res, next) {
 	if (!req.params.hasOwnProperty(field)) {
 		return next();
 	}
-	res.locals[exposedField] = await method(req.params[field]);
+	const value = await method(String(req.params[field]).toLowerCase());
+	if (!value) {
+		next('route');
+		return;
+	}
+
+	res.locals[exposedField] = value;
 	next();
 }
 
@@ -218,9 +235,9 @@ middleware.buildSkinAsset = helpers.try(async (req, res, next) => {
 	}
 
 	await plugins.prepareForBuild(['client side styles']);
-	const css = await meta.css.buildBundle(target[0], true);
+	const [ltr, rtl] = await meta.css.buildBundle(target[0], true);
 	require('../meta/minifier').killAll();
-	res.status(200).type('text/css').send(css);
+	res.status(200).type('text/css').send(req.originalUrl.includes('-rtl') ? rtl : ltr);
 });
 
 middleware.addUploadHeaders = function addUploadHeaders(req, res, next) {
diff --git a/src/middleware/maintenance.js b/src/middleware/maintenance.js
index 2e56fff8b6..73d0c077d6 100644
--- a/src/middleware/maintenance.js
+++ b/src/middleware/maintenance.js
@@ -6,6 +6,7 @@ const meta = require('../meta');
 const user = require('../user');
 const groups = require('../groups');
 const helpers = require('./helpers');
+const controllerHelpers = require('../controllers/helpers');
 
 module.exports = function (middleware) {
 	middleware.maintenanceMode = helpers.try(async (req, res, next) => {
@@ -30,6 +31,10 @@ module.exports = function (middleware) {
 			return next();
 		}
 
+		if (req.originalUrl.startsWith(`${nconf.get('relative_path')}/api/v3/`)) {
+			return controllerHelpers.formatApiResponse(meta.config.maintenanceModeStatus, res);
+		}
+
 		res.status(meta.config.maintenanceModeStatus);
 
 		const data = {
diff --git a/src/middleware/render.js b/src/middleware/render.js
index cb8f82bc86..7a06b67c6c 100644
--- a/src/middleware/render.js
+++ b/src/middleware/render.js
@@ -1,15 +1,28 @@
 'use strict';
 
+const _ = require('lodash');
 const nconf = require('nconf');
 const validator = require('validator');
+const jsesc = require('jsesc');
+const winston = require('winston');
+const semver = require('semver');
 
-
+const db = require('../database');
+const navigation = require('../navigation');
+const translator = require('../translator');
+const privileges = require('../privileges');
+const languages = require('../languages');
 const plugins = require('../plugins');
+const user = require('../user');
+const topics = require('../topics');
+const messaging = require('../messaging');
+const flags = require('../flags');
 const meta = require('../meta');
-const translator = require('../translator');
 const widgets = require('../widgets');
 const utils = require('../utils');
 const helpers = require('./helpers');
+const versions = require('../admin/versions');
+const controllersHelpers = require('../controllers/helpers');
 
 const relative_path = nconf.get('relative_path');
 
@@ -29,6 +42,7 @@ module.exports = function (middleware) {
 				}
 
 				options.loggedIn = req.uid > 0;
+				options.loggedInUser = await getLoggedInUser(req);
 				options.relative_path = relative_path;
 				options.template = { name: template, [template]: true };
 				options.url = (req.baseUrl + req.path.replace(/^\/api/, ''));
@@ -70,10 +84,11 @@ module.exports = function (middleware) {
 					return res.json(options);
 				}
 				const optionsString = JSON.stringify(options).replace(/<\//g, '<\\/');
+				const headerFooterData = await loadHeaderFooterData(req, res, options);
 				const results = await utils.promiseParallel({
-					header: renderHeaderFooter('renderHeader', req, res, options),
+					header: renderHeaderFooter('renderHeader', req, res, options, headerFooterData),
 					content: renderContent(render, templateToRender, req, res, options),
-					footer: renderHeaderFooter('renderFooter', req, res, options),
+					footer: renderHeaderFooter('renderFooter', req, res, options, headerFooterData),
 				});
 
 				const str = `${results.header +
@@ -93,7 +108,7 @@ module.exports = function (middleware) {
 			}
 
 			try {
-				await renderMethod(template, options, fn);
+				await renderMethod(template, { ...res.locals.templateValues, ...options }, fn);
 			} catch (err) {
 				next(err);
 			}
@@ -102,7 +117,187 @@ module.exports = function (middleware) {
 		next();
 	};
 
-	async function renderContent(render, tpl, req, res, options) {
+	async function getLoggedInUser(req) {
+		if (req.user) {
+			return await user.getUserData(req.uid);
+		}
+		return {
+			uid: 0,
+			username: '[[global:guest]]',
+			picture: user.getDefaultAvatar(),
+			'icon:text': '?',
+			'icon:bgColor': '#aaa',
+		};
+	}
+
+	async function loadHeaderFooterData(req, res, options) {
+		if (res.locals.renderHeader) {
+			return await loadClientHeaderFooterData(req, res, options);
+		} else if (res.locals.renderAdminHeader) {
+			return await loadAdminHeaderFooterData(req, res, options);
+		}
+		return null;
+	}
+
+	async function loadClientHeaderFooterData(req, res, options) {
+		const registrationType = meta.config.registrationType || 'normal';
+		res.locals.config = res.locals.config || {};
+		const templateValues = {
+			title: meta.config.title || '',
+			'title:url': meta.config['title:url'] || '',
+			description: meta.config.description || '',
+			'cache-buster': meta.config['cache-buster'] || '',
+			'brand:logo': meta.config['brand:logo'] || '',
+			'brand:logo:url': meta.config['brand:logo:url'] || '',
+			'brand:logo:alt': meta.config['brand:logo:alt'] || '',
+			'brand:logo:display': meta.config['brand:logo'] ? '' : 'hide',
+			allowRegistration: registrationType === 'normal',
+			searchEnabled: plugins.hooks.hasListeners('filter:search.query'),
+			postQueueEnabled: !!meta.config.postQueue,
+			config: res.locals.config,
+			relative_path,
+			bodyClass: options.bodyClass,
+			widgets: options.widgets,
+		};
+
+		templateValues.configJSON = jsesc(JSON.stringify(res.locals.config), { isScriptContext: true });
+
+		const results = await utils.promiseParallel({
+			isAdmin: user.isAdministrator(req.uid),
+			isGlobalMod: user.isGlobalModerator(req.uid),
+			isModerator: user.isModeratorOfAnyCategory(req.uid),
+			privileges: privileges.global.get(req.uid),
+			user: user.getUserData(req.uid),
+			isEmailConfirmSent: req.uid <= 0 ? false : await user.email.isValidationPending(req.uid),
+			languageDirection: translator.translate('[[language:dir]]', res.locals.config.userLang),
+			timeagoCode: languages.userTimeagoCode(res.locals.config.userLang),
+			browserTitle: translator.translate(controllersHelpers.buildTitle(translator.unescape(options.title))),
+			navigation: navigation.get(req.uid),
+			roomIds: db.getSortedSetRevRange(`uid:${req.uid}:chat:rooms`, 0, 0),
+		});
+
+		const unreadData = {
+			'': {},
+			new: {},
+			watched: {},
+			unreplied: {},
+		};
+
+		results.user.unreadData = unreadData;
+		results.user.isAdmin = results.isAdmin;
+		results.user.isGlobalMod = results.isGlobalMod;
+		results.user.isMod = !!results.isModerator;
+		results.user.privileges = results.privileges;
+		results.user.timeagoCode = results.timeagoCode;
+		results.user[results.user.status] = true;
+		results.user.lastRoomId = results.roomIds.length ? results.roomIds[0] : null;
+
+		results.user.email = String(results.user.email);
+		results.user['email:confirmed'] = results.user['email:confirmed'] === 1;
+		results.user.isEmailConfirmSent = !!results.isEmailConfirmSent;
+
+		templateValues.bootswatchSkin = (parseInt(meta.config.disableCustomUserSkins, 10) !== 1 ? res.locals.config.bootswatchSkin : '') || meta.config.bootswatchSkin || '';
+		templateValues.browserTitle = results.browserTitle;
+		({
+			navigation: templateValues.navigation,
+			unreadCount: templateValues.unreadCount,
+		} = await appendUnreadCounts({
+			uid: req.uid,
+			query: req.query,
+			navigation: results.navigation,
+			unreadData,
+		}));
+		templateValues.isAdmin = results.user.isAdmin;
+		templateValues.isGlobalMod = results.user.isGlobalMod;
+		templateValues.showModMenu = results.user.isAdmin || results.user.isGlobalMod || results.user.isMod;
+		templateValues.canChat = results.privileges.chat && meta.config.disableChat !== 1;
+		templateValues.user = results.user;
+		templateValues.userJSON = jsesc(JSON.stringify(results.user), { isScriptContext: true });
+		templateValues.useCustomCSS = meta.config.useCustomCSS && meta.config.customCSS;
+		templateValues.customCSS = templateValues.useCustomCSS ? (meta.config.renderedCustomCSS || '') : '';
+		templateValues.useCustomHTML = meta.config.useCustomHTML;
+		templateValues.customHTML = templateValues.useCustomHTML ? meta.config.customHTML : '';
+		templateValues.maintenanceHeader = meta.config.maintenanceMode && !results.isAdmin;
+		templateValues.defaultLang = meta.config.defaultLang || 'en-GB';
+		templateValues.userLang = res.locals.config.userLang;
+		templateValues.languageDirection = results.languageDirection;
+		if (req.query.noScriptMessage) {
+			templateValues.noScriptMessage = validator.escape(String(req.query.noScriptMessage));
+		}
+
+		templateValues.template = { name: res.locals.template };
+		templateValues.template[res.locals.template] = true;
+
+		if (options.hasOwnProperty('_header')) {
+			templateValues.metaTags = options._header.tags.meta;
+			templateValues.linkTags = options._header.tags.link;
+		}
+
+		if (req.route && req.route.path === '/') {
+			modifyTitle(templateValues);
+		}
+		return templateValues;
+	}
+
+	async function loadAdminHeaderFooterData(req, res, options) {
+		const custom_header = {
+			plugins: [],
+			authentication: [],
+		};
+		res.locals.config = res.locals.config || {};
+
+		const results = await utils.promiseParallel({
+			userData: user.getUserFields(req.uid, ['username', 'userslug', 'email', 'picture', 'email:confirmed']),
+			scripts: getAdminScripts(),
+			custom_header: plugins.hooks.fire('filter:admin.header.build', custom_header),
+			configs: meta.configs.list(),
+			latestVersion: getLatestVersion(),
+			privileges: privileges.admin.get(req.uid),
+			tags: meta.tags.parse(req, {}, [], []),
+		});
+
+		const { userData } = results;
+		userData.uid = req.uid;
+		userData['email:confirmed'] = userData['email:confirmed'] === 1;
+		userData.privileges = results.privileges;
+
+		let acpPath = req.path.slice(1).split('/');
+		acpPath.forEach((path, i) => {
+			acpPath[i] = path.charAt(0).toUpperCase() + path.slice(1);
+		});
+		acpPath = acpPath.join(' > ');
+
+		const version = nconf.get('version');
+
+		res.locals.config.userLang = res.locals.config.acpLang || res.locals.config.userLang;
+		const templateValues = {
+			config: res.locals.config,
+			configJSON: jsesc(JSON.stringify(res.locals.config), { isScriptContext: true }),
+			relative_path: res.locals.config.relative_path,
+			adminConfigJSON: encodeURIComponent(JSON.stringify(results.configs)),
+			metaTags: results.tags.meta,
+			linkTags: results.tags.link,
+			user: userData,
+			userJSON: jsesc(JSON.stringify(userData), { isScriptContext: true }),
+			plugins: results.custom_header.plugins,
+			authentication: results.custom_header.authentication,
+			scripts: results.scripts,
+			'cache-buster': meta.config['cache-buster'] || '',
+			env: !!process.env.NODE_ENV,
+			title: `${acpPath || 'Dashboard'} | NodeBB Admin Control Panel`,
+			bodyClass: options.bodyClass,
+			version: version,
+			latestVersion: results.latestVersion,
+			upgradeAvailable: results.latestVersion && semver.gt(results.latestVersion, version),
+			showManageMenu: results.privileges.superadmin || ['categories', 'privileges', 'users', 'admins-mods', 'groups', 'tags', 'settings'].some(priv => results.privileges[`admin:${priv}`]),
+		};
+
+		templateValues.template = { name: res.locals.template };
+		templateValues.template[res.locals.template] = true;
+		return templateValues;
+	}
+
+	function renderContent(render, tpl, req, res, options) {
 		return new Promise((resolve, reject) => {
 			render.call(res, tpl, options, async (err, str) => {
 				if (err) reject(err);
@@ -111,14 +306,76 @@ module.exports = function (middleware) {
 		});
 	}
 
-	async function renderHeaderFooter(method, req, res, options) {
+	async function renderHeader(req, res, options, headerFooterData) {
+		const hookReturn = await plugins.hooks.fire('filter:middleware.renderHeader', {
+			req: req,
+			res: res,
+			templateValues: headerFooterData, // TODO: deprecate
+			templateData: headerFooterData,
+			data: options,
+		});
+
+		return await req.app.renderAsync('header', hookReturn.templateData);
+	}
+
+	async function renderFooter(req, res, options, headerFooterData) {
+		const hookReturn = await plugins.hooks.fire('filter:middleware.renderFooter', {
+			req,
+			res,
+			templateValues: headerFooterData, // TODO: deprecate
+			templateData: headerFooterData,
+			data: options,
+		});
+
+		const scripts = await plugins.hooks.fire('filter:scripts.get', []);
+
+		hookReturn.templateData.scripts = scripts.map(script => ({ src: script }));
+
+		hookReturn.templateData.useCustomJS = meta.config.useCustomJS;
+		hookReturn.templateData.customJS = hookReturn.templateData.useCustomJS ? meta.config.customJS : '';
+		hookReturn.templateData.isSpider = req.uid === -1;
+
+		return await req.app.renderAsync('footer', hookReturn.templateData);
+	}
+
+	async function renderAdminHeader(req, res, options, headerFooterData) {
+		const hookReturn = await plugins.hooks.fire('filter:middleware.renderAdminHeader', {
+			req,
+			res,
+			templateValues: headerFooterData, // TODO: deprecate
+			templateData: headerFooterData,
+			data: options,
+		});
+
+		return await req.app.renderAsync('admin/header', hookReturn.templateData);
+	}
+
+	async function renderAdminFooter(req, res, options, headerFooterData) {
+		const hookReturn = await plugins.hooks.fire('filter:middleware.renderAdminFooter', {
+			req,
+			res,
+			templateValues: headerFooterData, // TODO: deprecate
+			templateData: headerFooterData,
+			data: options,
+		});
+
+		return await req.app.renderAsync('admin/footer', hookReturn.templateData);
+	}
+
+	async function renderHeaderFooter(method, req, res, options, headerFooterData) {
 		let str = '';
 		if (res.locals.renderHeader) {
-			str = await middleware[method](req, res, options);
+			if (method === 'renderHeader') {
+				str = await renderHeader(req, res, options, headerFooterData);
+			} else if (method === 'renderFooter') {
+				str = await renderFooter(req, res, options, headerFooterData);
+			}
 		} else if (res.locals.renderAdminHeader) {
-			str = await middleware.admin[method](req, res, options);
-		} else {
-			str = '';
+			if (method === 'renderHeader') {
+				str = await renderAdminHeader(req, res, options, headerFooterData);
+			} else if (method === 'renderFooter') {
+				str = await renderAdminFooter(req, res, options, headerFooterData);
+			}
 		}
 		return await translate(str, getLang(req, res));
 	}
@@ -135,4 +392,106 @@ module.exports = function (middleware) {
 		const translated = await translator.translate(str, language);
 		return translator.unescape(translated);
 	}
+
+	async function appendUnreadCounts({ uid, navigation, unreadData, query }) {
+		const originalRoutes = navigation.map(nav => nav.originalRoute);
+		const calls = {
+			unreadData: topics.getUnreadData({ uid: uid, query: query }),
+			unreadChatCount: messaging.getUnreadCount(uid),
+			unreadNotificationCount: user.notifications.getUnreadCount(uid),
+			unreadFlagCount: (async function () {
+				if (originalRoutes.includes('/flags') && await user.isPrivileged(uid)) {
+					return flags.getCount({
+						uid,
+						query,
+						filters: {
+							quick: 'unresolved',
+							cid: (await user.isAdminOrGlobalMod(uid)) ? [] : (await user.getModeratedCids(uid)),
+						},
+					});
+				}
+				return 0;
+			}()),
+		};
+		const results = await utils.promiseParallel(calls);
+
+		const unreadCounts = results.unreadData.counts;
+		const unreadCount = {
+			topic: unreadCounts[''] || 0,
+			newTopic: unreadCounts.new || 0,
+			watchedTopic: unreadCounts.watched || 0,
+			unrepliedTopic: unreadCounts.unreplied || 0,
+			mobileUnread: 0,
+			unreadUrl: '/unread',
+			chat: results.unreadChatCount || 0,
+			notification: results.unreadNotificationCount || 0,
+			flags: results.unreadFlagCount || 0,
+		};
+
+		Object.keys(unreadCount).forEach((key) => {
+			if (unreadCount[key] > 99) {
+				unreadCount[key] = '99+';
+			}
+		});
+
+		const { tidsByFilter } = results.unreadData;
+		navigation = navigation.map((item) => {
+			function modifyNavItem(item, route, filter, content) {
+				if (item && item.originalRoute === route) {
+					unreadData[filter] = _.zipObject(tidsByFilter[filter], tidsByFilter[filter].map(() => true));
+					item.content = content;
+					unreadCount.mobileUnread = content;
+					unreadCount.unreadUrl = route;
+					if (unreadCounts[filter] > 0) {
+						item.iconClass += ' unread-count';
+					}
+				}
+			}
+			modifyNavItem(item, '/unread', '', unreadCount.topic);
+			modifyNavItem(item, '/unread?filter=new', 'new', unreadCount.newTopic);
+			modifyNavItem(item, '/unread?filter=watched', 'watched', unreadCount.watchedTopic);
+			modifyNavItem(item, '/unread?filter=unreplied', 'unreplied', unreadCount.unrepliedTopic);
+
+			['flags'].forEach((prop) => {
+				if (item && item.originalRoute === `/${prop}` && unreadCount[prop] > 0) {
+					item.iconClass += ' unread-count';
+					item.content = unreadCount.flags;
+				}
+			});
+
+			return item;
+		});
+
+		return { navigation, unreadCount };
+	}
+
+
+	function modifyTitle(obj) {
+		const title = controllersHelpers.buildTitle(meta.config.homePageTitle || '[[pages:home]]');
+		obj.browserTitle = title;
+
+		if (obj.metaTags) {
+			obj.metaTags.forEach((tag, i) => {
+				if (tag.property === 'og:title') {
+					obj.metaTags[i].content = title;
+				}
+			});
+		}
+
+		return title;
+	}
+
+	async function getAdminScripts() {
+		const scripts = await plugins.hooks.fire('filter:admin.scripts.get', []);
+		return scripts.map(script => ({ src: script }));
+	}
+
+	async function getLatestVersion() {
+		try {
+			return await versions.getLatestVersion();
+		} catch (err) {
+			winston.error(`[acp] Failed to fetch latest version${err.stack}`);
+		}
+		return null;
+	}
 };
diff --git a/src/middleware/user.js b/src/middleware/user.js
index 11f6c849ed..fb3e5ed84f 100644
--- a/src/middleware/user.js
+++ b/src/middleware/user.js
@@ -12,6 +12,7 @@ const plugins = require('../plugins');
 const helpers = require('./helpers');
 const auth = require('../routes/authentication');
 const writeRouter = require('../routes/write');
+const accountHelpers = require('../controllers/accounts/helpers');
 
 const controllers = {
 	helpers: require('../controllers/helpers'),
@@ -181,6 +182,7 @@ module.exports = function (middleware) {
 		if (allowed) {
 			return next();
 		}
+
 		controllers.helpers.notAllowed(req, res);
 	});
 
@@ -223,6 +225,11 @@ module.exports = function (middleware) {
 		res.status(403).render('403', { title: '[[global:403.title]]' });
 	};
 
+	middleware.buildAccountData = async (req, res, next) => {
+		res.locals.templateValues = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
+		next();
+	};
+
 	middleware.registrationComplete = async function registrationComplete(req, res, next) {
 		// If the user's session contains registration data, redirect the user to complete registration
 		if (!req.session.hasOwnProperty('registration')) {
diff --git a/src/plugins/index.js b/src/plugins/index.js
index d1a3bd92bf..3587dc091c 100644
--- a/src/plugins/index.js
+++ b/src/plugins/index.js
@@ -33,8 +33,8 @@ Plugins.libraries = {};
 Plugins.loadedHooks = {};
 Plugins.staticDirs = {};
 Plugins.cssFiles = [];
-Plugins.lessFiles = [];
-Plugins.acpLessFiles = [];
+Plugins.scssFiles = [];
+Plugins.acpScssFiles = [];
 Plugins.clientScripts = [];
 Plugins.acpScripts = [];
 Plugins.libraryPaths = [];
@@ -98,8 +98,8 @@ Plugins.reload = async function () {
 	Plugins.staticDirs = {};
 	Plugins.versionWarning = [];
 	Plugins.cssFiles.length = 0;
-	Plugins.lessFiles.length = 0;
-	Plugins.acpLessFiles.length = 0;
+	Plugins.scssFiles.length = 0;
+	Plugins.acpScssFiles.length = 0;
 	Plugins.clientScripts.length = 0;
 	Plugins.acpScripts.length = 0;
 	Plugins.libraryPaths.length = 0;
diff --git a/src/plugins/load.js b/src/plugins/load.js
index 99ee26df3d..d6c0375820 100644
--- a/src/plugins/load.js
+++ b/src/plugins/load.js
@@ -22,11 +22,11 @@ module.exports = function (Plugins) {
 			cssFiles: function (next) {
 				Plugins.data.getFiles(pluginData, 'css', next);
 			},
-			lessFiles: function (next) {
-				Plugins.data.getFiles(pluginData, 'less', next);
+			scssFiles: function (next) {
+				Plugins.data.getFiles(pluginData, 'scss', next);
 			},
-			acpLessFiles: function (next) {
-				Plugins.data.getFiles(pluginData, 'acpLess', next);
+			acpScssFiles: function (next) {
+				Plugins.data.getFiles(pluginData, 'acpScss', next);
 			},
 			clientScripts: function (next) {
 				Plugins.data.getScripts(pluginData, 'client', next);
@@ -55,8 +55,8 @@ module.exports = function (Plugins) {
 
 		Object.assign(Plugins.staticDirs, results.staticDirs || {});
 		add(Plugins.cssFiles, results.cssFiles);
-		add(Plugins.lessFiles, results.lessFiles);
-		add(Plugins.acpLessFiles, results.acpLessFiles);
+		add(Plugins.scssFiles, results.scssFiles);
+		add(Plugins.acpScssFiles, results.acpScssFiles);
 		add(Plugins.clientScripts, results.clientScripts);
 		add(Plugins.acpScripts, results.acpScripts);
 		Object.assign(meta.js.scripts.modules, results.modules || {});
@@ -74,8 +74,8 @@ module.exports = function (Plugins) {
 			'requirejs modules': ['modules'],
 			'client js bundle': ['clientScripts'],
 			'admin js bundle': ['acpScripts'],
-			'client side styles': ['cssFiles', 'lessFiles'],
-			'admin control panel styles': ['cssFiles', 'lessFiles', 'acpLessFiles'],
+			'client side styles': ['cssFiles', 'scssFiles'],
+			'admin control panel styles': ['cssFiles', 'scssFiles', 'acpScssFiles'],
 			languages: ['languageData'],
 		};
 
@@ -87,8 +87,8 @@ module.exports = function (Plugins) {
 				case 'clientScripts':
 				case 'acpScripts':
 				case 'cssFiles':
-				case 'lessFiles':
-				case 'acpLessFiles':
+				case 'scssFiles':
+				case 'acpScssFiles':
 					Plugins[field].length = 0;
 					break;
 				case 'languageData':
diff --git a/src/posts/diffs.js b/src/posts/diffs.js
index eb687195d3..ac79565ee3 100644
--- a/src/posts/diffs.js
+++ b/src/posts/diffs.js
@@ -147,7 +147,7 @@ module.exports = function (Posts) {
 		const tagDiffs = diffs.filter(d => d.hasOwnProperty('tags') && d.tags);
 		if (tagDiffs.length && post[0].topic) {
 			const tags = tagDiffs[tagDiffs.length - 1].tags.split(',').map(tag => ({ value: tag }));
-			post[0].topic.tags = await topics.getTagData(tags);
+			post[0].topic.tags = topics.getTagData(tags);
 		}
 
 		return post[0];
diff --git a/src/posts/queue.js b/src/posts/queue.js
index 0b334742b1..24cc3a311c 100644
--- a/src/posts/queue.js
+++ b/src/posts/queue.js
@@ -303,14 +303,17 @@ module.exports = function (Posts) {
 	}
 
 	Posts.editQueuedContent = async function (uid, editData) {
-		const canEditQueue = await Posts.canEditQueue(uid, editData, 'edit');
+		const [canEditQueue, data] = await Promise.all([
+			Posts.canEditQueue(uid, editData, 'edit'),
+			getParsedObject(editData.id),
+		]);
+		if (!data) {
+			throw new Error('[[error:no-post]]');
+		}
 		if (!canEditQueue) {
 			throw new Error('[[error:no-privileges]]');
 		}
-		const data = await getParsedObject(editData.id);
-		if (!data) {
-			return;
-		}
+
 		if (editData.content !== undefined) {
 			data.data.content = editData.content;
 		}
diff --git a/src/prestart.js b/src/prestart.js
index 48d4dc3d13..bda51ad9e5 100644
--- a/src/prestart.js
+++ b/src/prestart.js
@@ -75,7 +75,6 @@ function loadConfig(configFile) {
 	// Ensure themes_path is a full filepath
 	nconf.set('themes_path', path.resolve(paths.baseDir, nconf.get('themes_path')));
 	nconf.set('core_templates_path', path.join(paths.baseDir, 'src/views'));
-	nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-persona/templates'));
 
 	nconf.set('upload_path', path.resolve(nconf.get('base_dir'), nconf.get('upload_path')));
 	nconf.set('upload_url', '/assets/uploads');
diff --git a/src/privileges/categories.js b/src/privileges/categories.js
index 76b9248bd2..ae0d285766 100644
--- a/src/privileges/categories.js
+++ b/src/privileges/categories.js
@@ -209,6 +209,12 @@ privsCategories.canMoveAllTopics = async function (currentCid, targetCid, uid) {
 	return isAdmin || !isModerators.includes(false);
 };
 
+privsCategories.canPostTopic = async function (uid) {
+	let cids = await categories.getAllCidsFromSet('categories:cid');
+	cids = await privsCategories.filterCids('topics:create', cids, uid);
+	return cids.length > 0;
+};
+
 privsCategories.userPrivileges = async function (cid, uid) {
 	const userPrivilegeList = await privsCategories.getUserPrivilegeList();
 	return await helpers.userOrGroupPrivileges(cid, uid, userPrivilegeList);
diff --git a/src/routes/admin.js b/src/routes/admin.js
index aac0e5dfb0..c7e9c5f060 100644
--- a/src/routes/admin.js
+++ b/src/routes/admin.js
@@ -39,6 +39,7 @@ module.exports = function (app, name, middleware, controllers) {
 	helpers.setupAdminPageRoute(app, `/${name}/settings/navigation`, middlewares, controllers.admin.settings.navigation);
 	helpers.setupAdminPageRoute(app, `/${name}/settings/homepage`, middlewares, controllers.admin.settings.homepage);
 	helpers.setupAdminPageRoute(app, `/${name}/settings/social`, middlewares, controllers.admin.settings.social);
+	helpers.setupAdminPageRoute(app, `/${name}/settings/api`, middlewares, controllers.admin.settings.api);
 	helpers.setupAdminPageRoute(app, `/${name}/settings/:term?`, middlewares, controllers.admin.settings.get);
 
 	helpers.setupAdminPageRoute(app, `/${name}/appearance/:term?`, middlewares, controllers.admin.appearance.get);
diff --git a/src/routes/api.js b/src/routes/api.js
index caab9c66a3..7f4afdc801 100644
--- a/src/routes/api.js
+++ b/src/routes/api.js
@@ -1,7 +1,6 @@
 'use strict';
 
 const express = require('express');
-const winston = require('winston');
 
 const uploadsController = require('../controllers/uploads');
 const helpers = require('./helpers');
@@ -18,16 +17,6 @@ module.exports = function (app, middleware, controllers) {
 	router.get('/user/username/:username', [...middlewares, middleware.canViewUsers], helpers.tryRoute(controllers.user.getUserByUsername));
 	router.get('/user/email/:email', [...middlewares, middleware.canViewUsers], helpers.tryRoute(controllers.user.getUserByEmail));
 
-	router.get('/user/:userslug/export/posts', [...middlewares, middleware.authenticateRequest, middleware.ensureLoggedIn, middleware.checkAccountPermissions, middleware.exposeUid], helpers.tryRoute(controllers.user.exportPosts));
-	router.get('/user/:userslug/export/uploads', [...middlewares, middleware.authenticateRequest, middleware.ensureLoggedIn, middleware.checkAccountPermissions, middleware.exposeUid], helpers.tryRoute(controllers.user.exportUploads));
-	router.get('/user/:userslug/export/profile', [...middlewares, middleware.authenticateRequest, middleware.ensureLoggedIn, middleware.checkAccountPermissions, middleware.exposeUid], helpers.tryRoute(controllers.user.exportProfile));
-
-	// Deprecated, remove in v1.20.0
-	router.get('/user/uid/:userslug/export/:type', (req, res) => {
-		winston.warn(`[router] \`/api/user/uid/${req.params.userslug}/export/${req.params.type}\` is deprecated, call it \`/api/user/${req.params.userslug}/export/${req.params.type}\`instead.`);
-		res.redirect(`/api/user/${req.params.userslug}/export/${req.params.type}`);
-	});
-
 	router.get('/categories/:cid/moderators', [...middlewares], helpers.tryRoute(controllers.api.getModerators));
 	router.get('/recent/posts/:term?', [...middlewares], helpers.tryRoute(controllers.posts.getRecentPosts));
 	router.get('/unread/total', [...middlewares, middleware.ensureLoggedIn], helpers.tryRoute(controllers.unread.unreadTotal));
diff --git a/src/routes/authentication.js b/src/routes/authentication.js
index 934fdec80e..e2b1cd73cf 100644
--- a/src/routes/authentication.js
+++ b/src/routes/authentication.js
@@ -10,6 +10,7 @@ const meta = require('../meta');
 const controllers = require('../controllers');
 const helpers = require('../controllers/helpers');
 const plugins = require('../plugins');
+const { generateToken } = require('../middleware/csrf');
 
 let loginStrategies = [];
 
@@ -25,20 +26,6 @@ Auth.initialize = function (app, middleware) {
 
 	Auth.app = app;
 	Auth.middleware = middleware;
-
-	// Apply wrapper around passport.authenticate to pass in keepSessionInfo option
-	const _authenticate = passport.authenticate;
-	passport.authenticate = (strategy, options, callback) => {
-		if (!callback && typeof options === 'function') {
-			return _authenticate.call(passport, strategy, options);
-		}
-
-		if (!options.hasOwnProperty('keepSessionInfo')) {
-			options.keepSessionInfo = true;
-		}
-
-		return _authenticate.call(passport, strategy, options, callback);
-	};
 };
 
 Auth.setAuthVars = function setAuthVars(req) {
@@ -108,7 +95,7 @@ Auth.reloadRoutes = async function (params) {
 				};
 
 				if (strategy.checkState !== false) {
-					req.session.ssoState = req.csrfToken && req.csrfToken();
+					req.session.ssoState = generateToken(req, true);
 					opts.state = req.session.ssoState;
 				}
 
@@ -171,7 +158,7 @@ Auth.reloadRoutes = async function (params) {
 
 	router.post('/register', middlewares, controllers.authentication.register);
 	router.post('/register/complete', middlewares, controllers.authentication.registerComplete);
-	router.post('/register/abort', Auth.middleware.applyCSRF, controllers.authentication.registerAbort);
+	router.post('/register/abort', middlewares, controllers.authentication.registerAbort);
 	router.post('/login', Auth.middleware.applyCSRF, Auth.middleware.applyBlacklist, controllers.authentication.login);
 	router.post('/logout', Auth.middleware.applyCSRF, controllers.authentication.logout);
 };
diff --git a/src/routes/helpers.js b/src/routes/helpers.js
index 6d0976f8d5..834ecfabfe 100644
--- a/src/routes/helpers.js
+++ b/src/routes/helpers.js
@@ -57,6 +57,7 @@ helpers.setupApiRoute = function (...args) {
 		middleware.maintenanceMode,
 		middleware.registrationComplete,
 		middleware.pluginHooks,
+		middleware.logApiUsage,
 		...middlewares,
 	];
 
diff --git a/src/routes/index.js b/src/routes/index.js
index 03b5c7fdfb..fb4733a501 100644
--- a/src/routes/index.js
+++ b/src/routes/index.js
@@ -4,7 +4,6 @@ const nconf = require('nconf');
 const winston = require('winston');
 const path = require('path');
 const express = require('express');
-const chalk = require('chalk');
 
 const meta = require('../meta');
 const controllers = require('../controllers');
@@ -75,14 +74,15 @@ _mounts.tags = (app, name, middleware, controllers) => {
 	setupPageRoute(app, `/${name}/:tag`, [middleware.privateTagListing], controllers.tags.getTag);
 	setupPageRoute(app, `/${name}`, [middleware.privateTagListing], controllers.tags.getTags);
 };
-
-_mounts.category = (app, name, middleware, controllers) => {
+_mounts.categories = (app, name, middleware, controllers) => {
 	setupPageRoute(app, '/categories', [], controllers.categories.list);
 	setupPageRoute(app, '/popular', [], controllers.popular.get);
 	setupPageRoute(app, '/recent', [], controllers.recent.get);
 	setupPageRoute(app, '/top', [], controllers.top.get);
 	setupPageRoute(app, '/unread', [middleware.ensureLoggedIn], controllers.unread.get);
+};
 
+_mounts.category = (app, name, middleware, controllers) => {
 	setupPageRoute(app, `/${name}/:category_id/:slug/:topic_index`, [], controllers.category.get);
 	setupPageRoute(app, `/${name}/:category_id/:slug?`, [], controllers.category.get);
 };
@@ -108,7 +108,7 @@ module.exports = async function (app, middleware) {
 	};
 
 	// Allow plugins/themes to mount some routes elsewhere
-	const remountable = ['admin', 'category', 'topic', 'post', 'users', 'user', 'groups', 'tags'];
+	const remountable = ['admin', 'categories', 'category', 'topic', 'post', 'users', 'user', 'groups', 'tags'];
 	const { mounts } = await plugins.hooks.fire('filter:router.add', {
 		mounts: remountable.reduce((memo, mount) => {
 			memo[mount] = mount;
@@ -188,13 +188,13 @@ function addCoreRoutes(app, router, middleware, mounts) {
 		res.redirect(`${relativePath}/assets/uploads${req.path}?${meta.config['cache-buster']}`);
 	});
 	app.use(`${relativePath}/plugins`, (req, res) => {
-		winston.warn(`${chalk.bold.red('[deprecation]')} The \`/plugins\` shorthand prefix is deprecated, prefix with \`/assets/plugins\` instead (path: ${req.path})`);
 		res.redirect(`${relativePath}/assets/plugins${req.path}${req._parsedUrl.search || ''}`);
 	});
 
 	// Skins
 	meta.css.supportedSkins.forEach((skin) => {
 		app.use(`${relativePath}/assets/client-${skin}.css`, middleware.buildSkinAsset);
+		app.use(`${relativePath}/assets/client-${skin}-rtl.css`, middleware.buildSkinAsset);
 	});
 
 	app.use(controllers['404'].handle404);
diff --git a/src/routes/user.js b/src/routes/user.js
index b6fd28d21d..9825fa58ea 100644
--- a/src/routes/user.js
+++ b/src/routes/user.js
@@ -5,11 +5,10 @@ const helpers = require('./helpers');
 const { setupPageRoute } = helpers;
 
 module.exports = function (app, name, middleware, controllers) {
-	const middlewares = [middleware.exposeUid, middleware.canViewUsers];
+	const middlewares = [middleware.exposeUid, middleware.canViewUsers, middleware.buildAccountData];
 	const accountMiddlewares = [
-		middleware.exposeUid,
+		...middlewares,
 		middleware.ensureLoggedIn,
-		middleware.canViewUsers,
 		middleware.checkAccountPermissions,
 	];
 
@@ -48,6 +47,6 @@ module.exports = function (app, name, middleware, controllers) {
 	setupPageRoute(app, `/${name}/:userslug/sessions`, accountMiddlewares, controllers.accounts.sessions.get);
 
 	setupPageRoute(app, '/notifications', [middleware.ensureLoggedIn], controllers.accounts.notifications.get);
-	setupPageRoute(app, `/${name}/:userslug/chats/:roomid?`, middlewares, controllers.accounts.chats.get);
+	setupPageRoute(app, `/${name}/:userslug/chats/:roomid?`, [middleware.exposeUid, middleware.canViewUsers], controllers.accounts.chats.get);
 	setupPageRoute(app, '/chats/:roomid?', [middleware.ensureLoggedIn], controllers.accounts.chats.redirectToChat);
 };
diff --git a/src/routes/write/chats.js b/src/routes/write/chats.js
index 1e5d870ca5..a92db701f7 100644
--- a/src/routes/write/chats.js
+++ b/src/routes/write/chats.js
@@ -19,6 +19,9 @@ module.exports = function () {
 	setupApiRoute(router, 'put', '/:roomId', [...middlewares, middleware.assert.room, middleware.checkRequired.bind(null, ['name'])], controllers.write.chats.rename);
 	// no route for room deletion, noted here just in case...
 
+	setupApiRoute(router, 'put', '/:roomId/state', [...middlewares, middleware.assert.room], controllers.write.chats.mark);
+	setupApiRoute(router, 'delete', '/:roomId/state', [...middlewares, middleware.assert.room], controllers.write.chats.mark);
+
 	setupApiRoute(router, 'get', '/:roomId/users', [...middlewares, middleware.assert.room], controllers.write.chats.users);
 	setupApiRoute(router, 'post', '/:roomId/users', [...middlewares, middleware.assert.room, middleware.checkRequired.bind(null, ['uids'])], controllers.write.chats.invite);
 	setupApiRoute(router, 'delete', '/:roomId/users', [...middlewares, middleware.assert.room, middleware.checkRequired.bind(null, ['uids'])], controllers.write.chats.kick);
diff --git a/src/routes/write/groups.js b/src/routes/write/groups.js
index 0245690fcb..f2ee86eab6 100644
--- a/src/routes/write/groups.js
+++ b/src/routes/write/groups.js
@@ -14,10 +14,21 @@ module.exports = function () {
 	setupApiRoute(router, 'head', '/:slug', [middleware.assert.group], controllers.write.groups.exists);
 	setupApiRoute(router, 'put', '/:slug', [...middlewares, middleware.assert.group], controllers.write.groups.update);
 	setupApiRoute(router, 'delete', '/:slug', [...middlewares, middleware.assert.group], controllers.write.groups.delete);
+
 	setupApiRoute(router, 'put', '/:slug/membership/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.join);
 	setupApiRoute(router, 'delete', '/:slug/membership/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.leave);
+
 	setupApiRoute(router, 'put', '/:slug/ownership/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.grant);
 	setupApiRoute(router, 'delete', '/:slug/ownership/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.rescind);
 
+	setupApiRoute(router, 'get', '/:slug/pending', [...middlewares, middleware.assert.group], controllers.write.groups.getPending);
+	setupApiRoute(router, 'put', '/:slug/pending/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.accept);
+	setupApiRoute(router, 'delete', '/:slug/pending/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.reject);
+
+	setupApiRoute(router, 'get', '/:slug/invites', [...middlewares, middleware.assert.group], controllers.write.groups.getInvites);
+	setupApiRoute(router, 'post', '/:slug/invites/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.issueInvite);
+	setupApiRoute(router, 'put', '/:slug/invites/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.acceptInvite);
+	setupApiRoute(router, 'delete', '/:slug/invites/:uid', [...middlewares, middleware.assert.group], controllers.write.groups.rejectInvite);
+
 	return router;
 };
diff --git a/src/routes/write/index.js b/src/routes/write/index.js
index 04d3207e05..2209aefbda 100644
--- a/src/routes/write/index.js
+++ b/src/routes/write/index.js
@@ -6,6 +6,7 @@ const plugins = require('../../plugins');
 const middleware = require('../../middleware');
 const writeControllers = require('../../controllers/write');
 const helpers = require('../../controllers/helpers');
+const { setupApiRoute } = require('../helpers');
 
 const Write = module.exports;
 
@@ -43,8 +44,8 @@ Write.reload = async (params) => {
 	router.use('/api/v3/files', require('./files')());
 	router.use('/api/v3/utilities', require('./utilities')());
 
-	router.get('/api/v3/ping', writeControllers.utilities.ping.get);
-	router.post('/api/v3/ping', middleware.authenticateRequest, middleware.ensureLoggedIn, writeControllers.utilities.ping.post);
+	setupApiRoute(router, 'get', '/api/v3/ping', writeControllers.utilities.ping.get);
+	setupApiRoute(router, 'post', '/api/v3/ping', writeControllers.utilities.ping.post);
 
 	/**
 	 * Plugins can add routes to the Write API by attaching a listener to the
diff --git a/src/routes/write/users.js b/src/routes/write/users.js
index 980eccc8a2..23d8d75ddd 100644
--- a/src/routes/write/users.js
+++ b/src/routes/write/users.js
@@ -48,6 +48,7 @@ function authenticatedRoutes() {
 	setupApiRoute(router, 'get', '/:uid/invites/groups', [...middlewares, middleware.assert.user], controllers.write.users.getInviteGroups);
 
 	setupApiRoute(router, 'get', '/:uid/emails', [...middlewares, middleware.assert.user], controllers.write.users.listEmails);
+	setupApiRoute(router, 'post', '/:uid/emails', [...middlewares, middleware.assert.user], controllers.write.users.addEmail);
 	setupApiRoute(router, 'get', '/:uid/emails/:email', [...middlewares, middleware.assert.user], controllers.write.users.getEmail);
 	setupApiRoute(router, 'post', '/:uid/emails/:email/confirm', [...middlewares, middleware.assert.user], controllers.write.users.confirmEmail);
 
diff --git a/src/socket.io/groups.js b/src/socket.io/groups.js
index 3b6f30a38d..969a0c07e8 100644
--- a/src/socket.io/groups.js
+++ b/src/socket.io/groups.js
@@ -3,7 +3,6 @@
 const groups = require('../groups');
 const user = require('../user');
 const utils = require('../utils');
-const events = require('../events');
 const privileges = require('../privileges');
 
 const SocketGroups = module.exports;
@@ -14,161 +13,6 @@ SocketGroups.before = async (socket, method, data) => {
 	}
 };
 
-SocketGroups.addMember = async (socket, data) => {
-	await isOwner(socket, data);
-	if (data.groupName === 'administrators' || groups.isPrivilegeGroup(data.groupName)) {
-		throw new Error('[[error:not-allowed]]');
-	}
-	if (!data.uid) {
-		throw new Error('[[error:invalid-data]]');
-	}
-	data.uid = !Array.isArray(data.uid) ? [data.uid] : data.uid;
-	if (data.uid.filter(uid => !(parseInt(uid, 10) > 0)).length) {
-		throw new Error('[[error:invalid-uid]]');
-	}
-	for (const uid of data.uid) {
-		// eslint-disable-next-line no-await-in-loop
-		await groups.join(data.groupName, uid);
-	}
-
-	logGroupEvent(socket, 'group-add-member', {
-		groupName: data.groupName,
-		targetUid: String(data.uid),
-	});
-};
-
-async function isOwner(socket, data) {
-	if (typeof data.groupName !== 'string') {
-		throw new Error('[[error:invalid-group-name]]');
-	}
-	const results = await utils.promiseParallel({
-		hasAdminPrivilege: privileges.admin.can('admin:groups', socket.uid),
-		isGlobalModerator: user.isGlobalModerator(socket.uid),
-		isOwner: groups.ownership.isOwner(socket.uid, data.groupName),
-		group: groups.getGroupData(data.groupName),
-	});
-
-	const isOwner = results.isOwner ||
-		results.hasAdminPrivilege ||
-		(results.isGlobalModerator && !results.group.system);
-	if (!isOwner) {
-		throw new Error('[[error:no-privileges]]');
-	}
-}
-
-async function isInvited(socket, data) {
-	if (typeof data.groupName !== 'string') {
-		throw new Error('[[error:invalid-group-name]]');
-	}
-	const invited = await groups.isInvited(socket.uid, data.groupName);
-	if (!invited) {
-		throw new Error('[[error:not-invited]]');
-	}
-}
-
-SocketGroups.accept = async (socket, data) => {
-	await isOwner(socket, data);
-	await groups.acceptMembership(data.groupName, data.toUid);
-	logGroupEvent(socket, 'group-accept-membership', {
-		groupName: data.groupName,
-		targetUid: data.toUid,
-	});
-};
-
-SocketGroups.reject = async (socket, data) => {
-	await isOwner(socket, data);
-	await groups.rejectMembership(data.groupName, data.toUid);
-	logGroupEvent(socket, 'group-reject-membership', {
-		groupName: data.groupName,
-		targetUid: data.toUid,
-	});
-};
-
-SocketGroups.acceptAll = async (socket, data) => {
-	await isOwner(socket, data);
-	await acceptRejectAll(SocketGroups.accept, socket, data);
-};
-
-SocketGroups.rejectAll = async (socket, data) => {
-	await isOwner(socket, data);
-	await acceptRejectAll(SocketGroups.reject, socket, data);
-};
-
-async function acceptRejectAll(method, socket, data) {
-	if (typeof data.groupName !== 'string') {
-		throw new Error('[[error:invalid-group-name]]');
-	}
-	const uids = await groups.getPending(data.groupName);
-	await Promise.all(uids.map(async (uid) => {
-		await method(socket, { groupName: data.groupName, toUid: uid });
-	}));
-}
-
-SocketGroups.issueInvite = async (socket, data) => {
-	await isOwner(socket, data);
-	await groups.invite(data.groupName, data.toUid);
-	logGroupEvent(socket, 'group-invite', {
-		groupName: data.groupName,
-		targetUid: data.toUid,
-	});
-};
-
-SocketGroups.issueMassInvite = async (socket, data) => {
-	await isOwner(socket, data);
-	if (!data || !data.usernames || !data.groupName) {
-		throw new Error('[[error:invalid-data]]');
-	}
-	let usernames = String(data.usernames).split(',');
-	usernames = usernames.map(username => username && username.trim());
-
-	let uids = await user.getUidsByUsernames(usernames);
-	uids = uids.filter(uid => !!uid && parseInt(uid, 10));
-
-	await groups.invite(data.groupName, uids);
-
-	for (const uid of uids) {
-		logGroupEvent(socket, 'group-invite', {
-			groupName: data.groupName,
-			targetUid: uid,
-		});
-	}
-};
-
-SocketGroups.rescindInvite = async (socket, data) => {
-	await isOwner(socket, data);
-	await groups.rejectMembership(data.groupName, data.toUid);
-};
-
-SocketGroups.acceptInvite = async (socket, data) => {
-	await isInvited(socket, data);
-	await groups.acceptMembership(data.groupName, socket.uid);
-	logGroupEvent(socket, 'group-invite-accept', {
-		groupName: data.groupName,
-	});
-};
-
-SocketGroups.rejectInvite = async (socket, data) => {
-	await isInvited(socket, data);
-	await groups.rejectMembership(data.groupName, socket.uid);
-	logGroupEvent(socket, 'group-invite-reject', {
-		groupName: data.groupName,
-	});
-};
-
-SocketGroups.kick = async (socket, data) => {
-	await isOwner(socket, data);
-	if (socket.uid === parseInt(data.uid, 10)) {
-		throw new Error('[[error:cant-kick-self]]');
-	}
-
-	const isOwnerBit = await groups.ownership.isOwner(data.uid, data.groupName);
-	await groups.kick(data.uid, data.groupName, isOwnerBit);
-	logGroupEvent(socket, 'group-kick', {
-		groupName: data.groupName,
-		targetUid: data.uid,
-	});
-};
-
 SocketGroups.search = async (socket, data) => {
 	data.options = data.options || {};
 
@@ -279,13 +123,4 @@ async function canModifyGroup(uid, groupName) {
 	}
 }
 
-function logGroupEvent(socket, event, additional) {
-	events.log({
-		type: event,
-		uid: socket.uid,
-		ip: socket.ip,
-		...additional,
-	});
-}
-
 require('../promisify')(SocketGroups);
diff --git a/src/socket.io/index.js b/src/socket.io/index.js
index 963267ed9a..67a1e4bda0 100644
--- a/src/socket.io/index.js
+++ b/src/socket.io/index.js
@@ -272,13 +272,3 @@ Sockets.getCountInRoom = function (room) {
 	const roomMap = Sockets.server.sockets.adapter.rooms.get(room);
 	return roomMap ? roomMap.size : 0;
 };
-
-Sockets.warnDeprecated = (socket, replacement) => {
-	if (socket.previousEvents && socket.emit) {
-		socket.emit('event:deprecated_call', {
-			eventName: socket.previousEvents[socket.previousEvents.length - 1],
-			replacement: replacement,
-		});
-	}
-	winston.warn(`[deprecated]\n ${new Error('-').stack.split('\n').slice(2, 5).join('\n')}\n     use ${replacement}`);
-};
diff --git a/src/socket.io/modules.js b/src/socket.io/modules.js
index 1a23fc1067..679a2516ec 100644
--- a/src/socket.io/modules.js
+++ b/src/socket.io/modules.js
@@ -1,16 +1,11 @@
 'use strict';
 
 const db = require('../database');
-const notifications = require('../notifications');
 const Messaging = require('../messaging');
 const utils = require('../utils');
-const server = require('./index');
 const user = require('../user');
 const privileges = require('../privileges');
 
-const sockets = require('.');
-const api = require('../api');
-
 const SocketModules = module.exports;
 
 SocketModules.chats = {};
@@ -41,176 +36,16 @@ SocketModules.chats.isDnD = async function (socket, uid) {
 	return status === 'dnd';
 };
 
-SocketModules.chats.newRoom = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'POST /api/v3/chats');
-
-	if (!data) {
-		throw new Error('[[error:invalid-data]]');
-	}
-
-	const roomObj = await api.chats.create(socket, {
-		uids: [data.touid],
-	});
-	return roomObj.roomId;
-};
-
-SocketModules.chats.send = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'POST /api/v3/chats/:roomId');
-
-	if (!data || !data.roomId || !socket.uid) {
-		throw new Error('[[error:invalid-data]]');
-	}
-
-	const canChat = await privileges.global.can('chat', socket.uid);
-	if (!canChat) {
-		throw new Error('[[error:no-privileges]]');
-	}
-
-	return api.chats.post(socket, data);
-};
-
-SocketModules.chats.loadRoom = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'GET /api/v3/chats/:roomId');
-
-	if (!data || !data.roomId) {
-		throw new Error('[[error:invalid-data]]');
-	}
-
-	return await Messaging.loadRoom(socket.uid, data);
-};
-
-SocketModules.chats.getUsersInRoom = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'GET /api/v3/chats/:roomId/users');
-
-	if (!data || !data.roomId) {
-		throw new Error('[[error:invalid-data]]');
-	}
-	const isUserInRoom = await Messaging.isUserInRoom(socket.uid, data.roomId);
-	if (!isUserInRoom) {
-		throw new Error('[[error:no-privileges]]');
-	}
-
-	return api.chats.users(socket, data);
-};
-
-SocketModules.chats.addUserToRoom = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'POST /api/v3/chats/:roomId/users');
-
-	if (!data || !data.roomId || !data.username) {
-		throw new Error('[[error:invalid-data]]');
-	}
-
-	const canChat = await privileges.global.can('chat', socket.uid);
-	if (!canChat) {
-		throw new Error('[[error:no-privileges]]');
-	}
-
-	// Revised API now takes uids, not usernames
-	data.uids = [await user.getUidByUsername(data.username)];
-	delete data.username;
-
-	await api.chats.invite(socket, data);
-};
-
-SocketModules.chats.removeUserFromRoom = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'DELETE /api/v3/chats/:roomId/users OR DELETE /api/v3/chats/:roomId/users/:uid');
-
-	if (!data || !data.roomId) {
-		throw new Error('[[error:invalid-data]]');
-	}
-
-	// Revised API can accept multiple uids now
-	data.uids = [data.uid];
-	delete data.uid;
-
-	await api.chats.kick(socket, data);
-};
-
-SocketModules.chats.leave = async function (socket, roomid) {
-	sockets.warnDeprecated(socket, 'DELETE /api/v3/chats/:roomId/users OR DELETE /api/v3/chats/:roomId/users/:uid');
-
-	if (!socket.uid || !roomid) {
-		throw new Error('[[error:invalid-data]]');
-	}
-
-	await Messaging.leaveRoom([socket.uid], roomid);
-};
-
-SocketModules.chats.edit = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'PUT /api/v3/chats/:roomId/:mid');
-
-	if (!data || !data.roomId || !data.message) {
-		throw new Error('[[error:invalid-data]]');
-	}
-	await Messaging.canEdit(data.mid, socket.uid);
-	await Messaging.editMessage(socket.uid, data.mid, data.roomId, data.message);
-};
-
-SocketModules.chats.delete = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'DELETE /api/v3/chats/:roomId/:mid');
-
-	if (!data || !data.roomId || !data.messageId) {
-		throw new Error('[[error:invalid-data]]');
-	}
-	await Messaging.canDelete(data.messageId, socket.uid);
-	await Messaging.deleteMessage(data.messageId, socket.uid);
-};
-
-SocketModules.chats.restore = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'POST /api/v3/chats/:roomId/:mid');
-
-	if (!data || !data.roomId || !data.messageId) {
-		throw new Error('[[error:invalid-data]]');
-	}
-	await Messaging.canDelete(data.messageId, socket.uid);
-	await Messaging.restoreMessage(data.messageId, socket.uid);
-};
-
 SocketModules.chats.canMessage = async function (socket, roomId) {
 	await Messaging.canMessageRoom(socket.uid, roomId);
 };
 
-SocketModules.chats.markRead = async function (socket, roomId) {
-	if (!socket.uid || !roomId) {
-		throw new Error('[[error:invalid-data]]');
-	}
-	const [uidsInRoom] = await Promise.all([
-		Messaging.getUidsInRoom(roomId, 0, -1),
-		Messaging.markRead(socket.uid, roomId),
-	]);
-
-	Messaging.pushUnreadCount(socket.uid);
-	server.in(`uid_${socket.uid}`).emit('event:chats.markedAsRead', { roomId: roomId });
-
-	if (!uidsInRoom.includes(String(socket.uid))) {
-		return;
-	}
-
-	// Mark notification read
-	const nids = uidsInRoom.filter(uid => parseInt(uid, 10) !== socket.uid)
-		.map(uid => `chat_${uid}_${roomId}`);
-
-	await notifications.markReadMultiple(nids, socket.uid);
-	await user.notifications.pushCount(socket.uid);
-};
-
 SocketModules.chats.markAllRead = async function (socket) {
+	// no v3 method ?
 	await Messaging.markAllRead(socket.uid);
 	Messaging.pushUnreadCount(socket.uid);
 };
 
-SocketModules.chats.renameRoom = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'PUT /api/v3/chats/:roomId');
-
-	if (!data || !data.roomId || !data.newName) {
-		throw new Error('[[error:invalid-data]]');
-	}
-
-	data.name = data.newName;
-	delete data.newName;
-	await api.chats.rename(socket, data);
-};
-
 SocketModules.chats.getRecentChats = async function (socket, data) {
 	if (!data || !utils.isNumber(data.after) || !utils.isNumber(data.uid)) {
 		throw new Error('[[error:invalid-data]]');
@@ -227,22 +62,6 @@ SocketModules.chats.hasPrivateChat = async function (socket, uid) {
 	return await Messaging.hasPrivateChat(socket.uid, uid);
 };
 
-SocketModules.chats.getMessages = async function (socket, data) {
-	sockets.warnDeprecated(socket, 'GET /api/v3/chats/:roomId/messages');
-
-	if (!socket.uid || !data || !data.uid || !data.roomId) {
-		throw new Error('[[error:invalid-data]]');
-	}
-
-	return await Messaging.getMessages({
-		callerUid: socket.uid,
-		uid: data.uid,
-		roomId: data.roomId,
-		start: parseInt(data.start, 10) || 0,
-		count: 50,
-	});
-};
-
 SocketModules.chats.getIP = async function (socket, mid) {
 	const allowed = await privileges.global.can('view:users:info', socket.uid);
 	if (!allowed) {
diff --git a/src/socket.io/posts.js b/src/socket.io/posts.js
index 6b257ca525..21f2ee6d71 100644
--- a/src/socket.io/posts.js
+++ b/src/socket.io/posts.js
@@ -58,6 +58,25 @@ SocketPosts.getPostSummaryByIndex = async function (socket, data) {
 	return postsData[0];
 };
 
+SocketPosts.getPostTimestampByIndex = async function (socket, data) {
+	if (data.index < 0) {
+		data.index = 0;
+	}
+	let pid;
+	if (data.index === 0) {
+		pid = await topics.getTopicField(data.tid, 'mainPid');
+	} else {
+		pid = await db.getSortedSetRange(`tid:${data.tid}:posts`, data.index - 1, data.index - 1);
+	}
+	pid = Array.isArray(pid) ? pid[0] : pid;
+	const topicPrivileges = await privileges.topics.get(data.tid, socket.uid);
+	if (!topicPrivileges['topics:read']) {
+		throw new Error('[[error:no-privileges]]');
+	}
+
+	return await posts.getPostField(pid, 'timestamp');
+};
+
 SocketPosts.getPostSummaryByPid = async function (socket, data) {
 	if (!data || !data.pid) {
 		throw new Error('[[error:invalid-data]]');
@@ -150,7 +169,13 @@ SocketPosts.notify = async function (socket, data) {
 };
 
 async function canEditQueue(socket, data, action) {
-	const canEditQueue = await posts.canEditQueue(socket.uid, data, action);
+	const [canEditQueue, queuedPost] = await Promise.all([
+		posts.canEditQueue(socket.uid, data, action),
+		posts.getFromQueue(data.id),
+	]);
+	if (!queuedPost) {
+		throw new Error('[[error:no-post]]');
+	}
 	if (!canEditQueue) {
 		throw new Error('[[error:no-privileges]]');
 	}
diff --git a/src/socket.io/topics.js b/src/socket.io/topics.js
index df20a6d657..b0a4fd3abc 100644
--- a/src/socket.io/topics.js
+++ b/src/socket.io/topics.js
@@ -34,7 +34,10 @@ SocketTopics.bookmark = async function (socket, data) {
 	}
 	const postcount = await topics.getTopicField(data.tid, 'postcount');
 	if (data.index > meta.config.bookmarkThreshold && postcount > meta.config.bookmarkThreshold) {
-		await topics.setUserBookmark(data.tid, socket.uid, data.index);
+		const currentIndex = await db.sortedSetScore(`tid:${data.tid}:bookmarks`, socket.uid);
+		if (!currentIndex || (data.index > currentIndex && data.index <= postcount) || (currentIndex > postcount)) {
+			await topics.setUserBookmark(data.tid, socket.uid, data.index);
+		}
 	}
 };
 
diff --git a/src/socket.io/topics/tags.js b/src/socket.io/topics/tags.js
index 117b63c31a..a8f86eee19 100644
--- a/src/socket.io/topics/tags.js
+++ b/src/socket.io/topics/tags.js
@@ -71,6 +71,34 @@ module.exports = function (SocketTopics) {
 		return await method(data);
 	}
 
+	// used by tag filter search
+	SocketTopics.tagFilterSearch = async function (socket, data) {
+		let cids = [];
+		if (Array.isArray(data.cids)) {
+			cids = await privileges.categories.filterCids('topics:read', data.cids, socket.uid);
+		} else { // if no cids passed in get all cids we can read
+			cids = await categories.getCidsByPrivilege('categories:cid', socket.uid, 'topics:read');
+		}
+
+		let tags = [];
+		if (data.query) {
+			const allowed = await privileges.global.can('search:tags', socket.uid);
+			if (!allowed) {
+				throw new Error('[[error:no-privileges]]');
+			}
+			tags = await topics.searchTags({
+				query: data.query,
+				cid: cids.length === 1 ? cids[0] : null,
+				cids: cids,
+			});
+			topics.getTagData(tags);
+		} else {
+			tags = await topics.getCategoryTagsData(cids, 0, 39);
+		}
+
+		return tags.filter(t => t.score > 0);
+	};
+
 	SocketTopics.loadMoreTags = async function (socket, data) {
 		if (!data || !utils.isNumber(data.after)) {
 			throw new Error('[[error:invalid-data]]');
diff --git a/src/socket.io/topics/unread.js b/src/socket.io/topics/unread.js
index 238ef89b7f..983a9634c6 100644
--- a/src/socket.io/topics/unread.js
+++ b/src/socket.io/topics/unread.js
@@ -1,6 +1,5 @@
 'use strict';
 
-const db = require('../../database');
 const user = require('../../user');
 const topics = require('../../topics');
 
@@ -54,7 +53,6 @@ module.exports = function (SocketTopics) {
 			throw new Error('[[error:no-privileges]]');
 		}
 		const isAdmin = await user.isAdministrator(socket.uid);
-		const now = Date.now();
 		await Promise.all(tids.map(async (tid) => {
 			const topicData = await topics.getTopicFields(tid, ['tid', 'cid']);
 			if (!topicData.tid) {
@@ -65,9 +63,6 @@ module.exports = function (SocketTopics) {
 				throw new Error('[[error:no-privileges]]');
 			}
 			await topics.markAsUnreadForAll(tid);
-			await topics.updateRecent(tid, now);
-			await db.sortedSetAdd(`cid:${topicData.cid}:tids:lastposttime`, now, tid);
-			await topics.setTopicField(tid, 'lastposttime', now);
 		}));
 		topics.pushUnreadCount(socket.uid);
 	};
diff --git a/src/socket.io/user.js b/src/socket.io/user.js
index 4f5c616114..443e73678f 100644
--- a/src/socket.io/user.js
+++ b/src/socket.io/user.js
@@ -16,7 +16,6 @@ const db = require('../database');
 const userController = require('../controllers/user');
 const privileges = require('../privileges');
 const utils = require('../utils');
-const sockets = require('.');
 
 const SocketUser = module.exports;
 
@@ -25,16 +24,6 @@ require('./user/status')(SocketUser);
 require('./user/picture')(SocketUser);
 require('./user/registration')(SocketUser);
 
-SocketUser.emailConfirm = async function (socket) {
-	sockets.warnDeprecated(socket, 'HTTP 302 /me/edit/email');
-
-	if (!socket.uid) {
-		throw new Error('[[error:no-privileges]]');
-	}
-
-	return await user.email.sendValidationEmail(socket.uid);
-};
-
 // Password Reset
 SocketUser.reset = {};
 
@@ -62,7 +51,7 @@ SocketUser.reset.send = async function (socket, email) {
 	} catch (err) {
 		await logEvent(err.message);
 		await sleep(2500 + ((Math.random() * 500) - 250));
-		const internalErrors = ['[[error:invalid-email]]', '[[error:reset-rate-limited]]'];
+		const internalErrors = ['[[error:invalid-email]]'];
 		if (!internalErrors.includes(err.message)) {
 			throw err;
 		}
diff --git a/src/socket.io/user/picture.js b/src/socket.io/user/picture.js
index bad7c963b7..32a4f0e30c 100644
--- a/src/socket.io/user/picture.js
+++ b/src/socket.io/user/picture.js
@@ -23,22 +23,36 @@ module.exports = function (SocketUser) {
 			throw new Error('[[error:invalid-data]]');
 		}
 
-		const [list, uploaded] = await Promise.all([
+		const [list, userObj] = await Promise.all([
 			plugins.hooks.fire('filter:user.listPictures', {
 				uid: data.uid,
 				pictures: [],
 			}),
-			user.getUserField(data.uid, 'uploadedpicture'),
+			user.getUserData(data.uid),
 		]);
 
-		if (uploaded) {
+		if (userObj.uploadedpicture) {
 			list.pictures.push({
 				type: 'uploaded',
-				url: uploaded,
+				url: userObj.uploadedpicture,
 				text: '[[user:uploaded_picture]]',
 			});
 		}
 
+		// Normalize list into "user object" format
+		list.pictures = list.pictures.map(({ type, url, text }) => ({
+			type,
+			username: text,
+			picture: url,
+		}));
+
+		list.pictures.unshift({
+			type: 'default',
+			'icon:text': userObj['icon:text'],
+			'icon:bgColor': userObj['icon:bgColor'],
+			username: '[[user:default_picture]]',
+		});
+
 		return list.pictures;
 	};
 };
diff --git a/src/socket.io/user/profile.js b/src/socket.io/user/profile.js
index 95c0097116..5d4c4624f3 100644
--- a/src/socket.io/user/profile.js
+++ b/src/socket.io/user/profile.js
@@ -4,9 +4,6 @@ const user = require('../../user');
 const privileges = require('../../privileges');
 const plugins = require('../../plugins');
 
-const sockets = require('..');
-const api = require('../../api');
-
 module.exports = function (SocketUser) {
 	SocketUser.updateCover = async function (socket, data) {
 		if (!socket.uid) {
@@ -48,32 +45,4 @@ module.exports = function (SocketUser) {
 		await user.blocks[isBlocked ? 'remove' : 'add'](data.blockeeUid, data.blockerUid);
 		return !isBlocked;
 	};
-
-	SocketUser.exportProfile = async function (socket, data) {
-		await doExport(socket, data, 'profile');
-	};
-
-	SocketUser.exportPosts = async function (socket, data) {
-		await doExport(socket, data, 'posts');
-	};
-
-	SocketUser.exportUploads = async function (socket, data) {
-		await doExport(socket, data, 'uploads');
-	};
-
-	async function doExport(socket, data, type) {
-		sockets.warnDeprecated(socket, 'POST /api/v3/users/:uid/exports/:type');
-
-		if (!socket.uid) {
-			throw new Error('[[error:invalid-uid]]');
-		}
-
-		if (!data || parseInt(data.uid, 10) <= 0) {
-			throw new Error('[[error:invalid-data]]');
-		}
-
-		await user.isAdminOrSelf(socket.uid, data.uid);
-
-		api.users.generateExport(socket, { type, uid: data.uid });
-	}
 };
diff --git a/src/start.js b/src/start.js
index 5f7b42ce7b..f87f0b4ddf 100644
--- a/src/start.js
+++ b/src/start.js
@@ -105,12 +105,14 @@ function addProcessHandlers() {
 		shutdown(1);
 	});
 	process.on('message', (msg) => {
-		if (msg && msg.compiling === 'tpl') {
-			const benchpressjs = require('benchpressjs');
-			benchpressjs.flush();
-		} else if (msg && msg.compiling === 'lang') {
-			const translator = require('./translator');
-			translator.flush();
+		if (msg && Array.isArray(msg.compiling)) {
+			if (msg.compiling.includes('tpl')) {
+				const benchpressjs = require('benchpressjs');
+				benchpressjs.flush();
+			} else if (msg.compiling.includes('lang')) {
+				const translator = require('./translator');
+				translator.flush();
+			}
 		}
 	});
 }
diff --git a/src/topics/bookmarks.js b/src/topics/bookmarks.js
index 2b473f5417..e7d52f84ae 100644
--- a/src/topics/bookmarks.js
+++ b/src/topics/bookmarks.js
@@ -22,6 +22,9 @@ module.exports = function (Topics) {
 	};
 
 	Topics.setUserBookmark = async function (tid, uid, index) {
+		if (parseInt(uid, 10) <= 0) {
+			return;
+		}
 		await db.sortedSetAdd(`tid:${tid}:bookmarks`, index, uid);
 	};
 
diff --git a/src/topics/create.js b/src/topics/create.js
index 8aacce42ca..d1fe0c6da9 100644
--- a/src/topics/create.js
+++ b/src/topics/create.js
@@ -211,7 +211,7 @@ module.exports = function (Topics) {
 	async function onNewPost(postData, data) {
 		const { tid } = postData;
 		const { uid } = postData;
-		await Topics.markAsUnreadForAll(tid);
+		await Topics.markCategoryUnreadForAll(tid);
 		await Topics.markAsRead([tid], uid);
 		const [
 			userInfo,
diff --git a/src/topics/events.js b/src/topics/events.js
index 1d6e67fd11..b4c80d2347 100644
--- a/src/topics/events.js
+++ b/src/topics/events.js
@@ -1,6 +1,7 @@
 'use strict';
 
 const _ = require('lodash');
+const nconf = require('nconf');
 const db = require('../database');
 const meta = require('../meta');
 const user = require('../user');
@@ -9,6 +10,10 @@ const categories = require('../categories');
 const plugins = require('../plugins');
 const translator = require('../translator');
 const privileges = require('../privileges');
+const utils = require('../utils');
+const helpers = require('../helpers');
+
+const relative_path = nconf.get('relative_path');
 
 const Events = module.exports;
 
@@ -20,49 +25,48 @@ const Events = module.exports;
  * You can then log a custom topic event by calling `topics.events.log(tid, { type, uid });`
  * `uid` is optional; if you pass in a valid uid in the payload,
  * the user avatar/username will be rendered as part of the event text
- *
+ * see https://github.com/NodeBB/nodebb-plugin-question-and-answer/blob/master/library.js#L288-L306
  */
 Events._types = {
 	pin: {
 		icon: 'fa-thumb-tack',
-		text: '[[topic:pinned-by]]',
+		translation: async event => translateSimple(event, 'topic:user-pinned-topic'),
 	},
 	unpin: {
-		icon: 'fa-thumb-tack',
-		text: '[[topic:unpinned-by]]',
+		icon: 'fa-thumb-tack fa-rotate-90',
+		translation: async event => translateSimple(event, 'topic:user-unpinned-topic'),
 	},
 	lock: {
 		icon: 'fa-lock',
-		text: '[[topic:locked-by]]',
+		translation: async event => translateSimple(event, 'topic:user-locked-topic'),
 	},
 	unlock: {
 		icon: 'fa-unlock',
-		text: '[[topic:unlocked-by]]',
+		translation: async event => translateSimple(event, 'topic:user-unlocked-topic'),
 	},
 	delete: {
 		icon: 'fa-trash',
-		text: '[[topic:deleted-by]]',
+		translation: async event => translateSimple(event, 'topic:user-deleted-topic'),
 	},
 	restore: {
 		icon: 'fa-trash-o',
-		text: '[[topic:restored-by]]',
+		translation: async event => translateSimple(event, 'topic:user-restored-topic'),
 	},
 	move: {
 		icon: 'fa-arrow-circle-right',
-		// text: '[[topic:moved-from-by]]',
+		translation: async event => translateEventArgs(event, 'topic:user-moved-topic-from', renderUser(event), `${event.fromCategory.name}`, renderTimeago(event)),
 	},
 	'post-queue': {
 		icon: 'fa-history',
-		text: '[[topic:queued-by]]',
-		href: '/post-queue',
+		translation: async event => translateEventArgs(event, 'topic:user-queued-post', renderUser(event), `${relative_path}${event.href}`, renderTimeago(event)),
 	},
 	backlink: {
 		icon: 'fa-link',
-		text: '[[topic:backlink]]',
+		translation: async event => translateEventArgs(event, 'topic:user-referenced-topic', renderUser(event), `${relative_path}${event.href}`, renderTimeago(event)),
 	},
 	fork: {
 		icon: 'fa-code-fork',
-		text: '[[topic:forked-by]]',
+		translation: async event => translateEventArgs(event, 'topic:user-forked-topic', renderUser(event), `${relative_path}${event.href}`, renderTimeago(event)),
 	},
 };
 
@@ -72,6 +76,40 @@ Events.init = async () => {
 	Events._types = types;
 };
 
+async function translateEventArgs(event, prefix, ...args) {
+	const key = getTranslationKey(event, prefix);
+	const compiled = translator.compile.apply(null, [key, ...args]);
+	return utils.decodeHTMLEntities(await translator.translate(compiled));
+}
+
+async function translateSimple(event, prefix) {
+	return await translateEventArgs(event, prefix, renderUser(event), renderTimeago(event));
+}
+
+Events.translateSimple = translateSimple; // so plugins can perform translate
+Events.translateEventArgs = translateEventArgs; // so plugins can perform translate
+
+// generate `user-locked-topic-ago` or `user-locked-topic-on` based on timeago cutoff setting
+function getTranslationKey(event, prefix) {
+	const cutoffMs = 1000 * 60 * 60 * 24 * Math.max(0, parseInt(meta.config.timeagoCutoff, 10));
+	let translationSuffix = 'ago';
+	if (cutoffMs > 0 && Date.now() - event.timestamp > cutoffMs) {
+		translationSuffix = 'on';
+	}
+	return `${prefix}-${translationSuffix}`;
+}
+
+function renderUser(event) {
+	if (!event.user || event.user.system) {
+		return '[[global:system-user]]';
+	}
+	return `${helpers.buildAvatar(event.user, '16px', true)} <a href="${relative_path}/user/${event.user.userslug}">${event.user.username}</a>`;
+}
+
+function renderTimeago(event) {
+	return `<span class="timeago timeline-text" title="${event.timestampISO}"></span>`;
+}
+
 Events.get = async (tid, uid, reverse = false) => {
 	const topics = require('.');
 
@@ -115,6 +153,7 @@ async function modifyEvent({ tid, uid, eventIds, timestamps, events }) {
 		const queuedPosts = await posts.getQueuedPosts({ tid }, { metadata: false });
 		events.push(...queuedPosts.map(item => ({
 			type: 'post-queue',
+			href: `/post-queue/${item.id}`,
 			timestamp: item.data.timestamp || Date.now(),
 			uid: item.data.uid,
 		})));
@@ -154,12 +193,17 @@ async function modifyEvent({ tid, uid, eventIds, timestamps, events }) {
 		}
 		if (event.hasOwnProperty('fromCid')) {
 			event.fromCategory = fromCategories[event.fromCid];
-			event.text = translator.compile('topic:moved-from-by', event.fromCategory.name);
 		}
 
 		Object.assign(event, Events._types[event.type]);
 	});
 
+	await Promise.all(events.map(async (event) => {
+		if (Events._types[event.type].translation) {
+			event.text = await Events._types[event.type].translation(event);
+		}
+	}));
+
 	// Sort events
 	events.sort((a, b) => a.timestamp - b.timestamp);
 
diff --git a/src/topics/fork.js b/src/topics/fork.js
index 97b5316656..4693d4afcc 100644
--- a/src/topics/fork.js
+++ b/src/topics/fork.js
@@ -70,7 +70,7 @@ module.exports = function (Topics) {
 				downvotes: postData.downvotes,
 			}),
 			db.sortedSetsAdd(['topics:votes', `cid:${cid}:tids:votes`], postData.votes, tid),
-			Topics.events.log(fromTid, { type: 'fork', uid, href: `/topic/${tid}`, timestamp: postData.timestamp }),
+			Topics.events.log(fromTid, { type: 'fork', uid, href: `/topic/${tid}` }),
 		]);
 
 		plugins.hooks.fire('action:topic.fork', { tid: tid, fromTid: fromTid, uid: uid });
diff --git a/src/topics/index.js b/src/topics/index.js
index b6dd08e817..ef08b7ccde 100644
--- a/src/topics/index.js
+++ b/src/topics/index.js
@@ -189,6 +189,8 @@ Topics.getTopicWithPosts = async function (topicData, set, uid, start, stop, rev
 		p.events = events.filter(
 			event => event.timestamp >= p.eventStart && event.timestamp < p.eventEnd
 		);
+		p.eventStart = undefined;
+		p.eventEnd = undefined;
 	});
 
 	topicData.category = category;
diff --git a/src/topics/tags.js b/src/topics/tags.js
index 3b17027672..1f4b140ded 100644
--- a/src/topics/tags.js
+++ b/src/topics/tags.js
@@ -288,10 +288,10 @@ module.exports = function (Topics) {
 		const payload = await plugins.hooks.fire('filter:tags.getAll', {
 			tags: tags,
 		});
-		return await Topics.getTagData(payload.tags);
+		return Topics.getTagData(payload.tags);
 	}
 
-	Topics.getTagData = async function (tags) {
+	Topics.getTagData = function (tags) {
 		if (!tags || !tags.length) {
 			return [];
 		}
@@ -323,7 +323,7 @@ module.exports = function (Topics) {
 		const uniqueTopicTags = _.uniq(_.flatten(topicTags));
 
 		const tags = uniqueTopicTags.map(tag => ({ value: tag }));
-		const tagData = await Topics.getTagData(tags);
+		const tagData = Topics.getTagData(tags);
 		const tagDataMap = _.zipObject(uniqueTopicTags, tagData);
 
 		topicTags.forEach((tags, index) => {
@@ -499,7 +499,7 @@ module.exports = function (Topics) {
 		}
 		const tags = await Topics.searchTags(data);
 
-		const tagData = await Topics.getTagData(tags.map(tag => ({ value: tag.value })));
+		const tagData = Topics.getTagData(tags.map(tag => ({ value: tag.value })));
 
 		tagData.forEach((tag, index) => {
 			tag.score = tags[index].score;
diff --git a/src/topics/unread.js b/src/topics/unread.js
index f0ab2a5c36..8bff23380a 100644
--- a/src/topics/unread.js
+++ b/src/topics/unread.js
@@ -66,8 +66,12 @@ module.exports = function (Topics) {
 			params.cid = [params.cid];
 		}
 
+		if (params.tag && !Array.isArray(params.tag)) {
+			params.tag = [params.tag];
+		}
+
 		const data = await getTids(params);
-		if (uid <= 0 || !data.tids || !data.tids.length) {
+		if (uid <= 0) {
 			return data;
 		}
 
@@ -135,7 +139,7 @@ module.exports = function (Topics) {
 		});
 
 		tids = await privileges.topics.filterTids('topics:read', tids, params.uid);
-		const topicData = (await Topics.getTopicsFields(tids, ['tid', 'cid', 'uid', 'postcount', 'deleted', 'scheduled']))
+		const topicData = (await Topics.getTopicsFields(tids, ['tid', 'cid', 'uid', 'postcount', 'deleted', 'scheduled', 'tags']))
 			.filter(t => t.scheduled || !t.deleted);
 		const topicCids = _.uniq(topicData.map(topic => topic.cid)).filter(Boolean);
 
@@ -143,9 +147,13 @@ module.exports = function (Topics) {
 		const userCidState = _.zipObject(topicCids, categoryWatchState);
 
 		const filterCids = params.cid && params.cid.map(cid => parseInt(cid, 10));
+		const filterTags = params.tag && params.tag.map(tag => String(tag));
 
 		topicData.forEach((topic) => {
-			if (topic && topic.cid && (!filterCids || filterCids.includes(topic.cid)) && !blockedUids.includes(topic.uid)) {
+			if (topic && topic.cid &&
+				(!filterCids || filterCids.includes(topic.cid)) &&
+				(!filterTags || filterTags.every(tag => topic.tags.find(topicTag => topicTag.value === tag))) &&
+				!blockedUids.includes(topic.uid)) {
 				if (isTopicsFollowed[topic.tid] || userCidState[topic.cid] === categories.watchStates.watching) {
 					tidsByFilter[''].push(topic.tid);
 				}
@@ -260,7 +268,12 @@ module.exports = function (Topics) {
 	};
 
 	Topics.markAsUnreadForAll = async function (tid) {
+		const now = Date.now();
+		const cid = await Topics.getTopicField(tid, 'cid');
 		await Topics.markCategoryUnreadForAll(tid);
+		await Topics.updateRecent(tid, now);
+		await db.sortedSetAdd(`cid:${cid}:tids:lastposttime`, now, tid);
+		await Topics.setTopicField(tid, 'lastposttime', now);
 	};
 
 	Topics.markAsRead = async function (tids, uid) {
@@ -367,8 +380,13 @@ module.exports = function (Topics) {
 		if (!exists) {
 			throw new Error('[[error:no-topic]]');
 		}
-		await db.sortedSetRemove(`uid:${uid}:tids_read`, tid);
-		await db.sortedSetAdd(`uid:${uid}:tids_unread`, Date.now(), tid);
+		await Promise.all([
+			db.sortedSetRemoveBulk([
+				[`uid:${uid}:tids_read`, tid],
+				[`tid:${tid}:bookmarks`, uid],
+			]),
+			db.sortedSetAdd(`uid:${uid}:tids_unread`, Date.now(), tid),
+		]);
 	};
 
 	Topics.filterNewTids = async function (tids, uid) {
diff --git a/src/translator.js b/src/translator.js
index 872349a4aa..8584686056 100644
--- a/src/translator.js
+++ b/src/translator.js
@@ -3,7 +3,9 @@
 const winston = require('winston');
 
 function warn(msg) {
-	winston.warn(msg);
+	if (global.env === 'development') {
+		winston.warn(msg);
+	}
 }
 
 module.exports = require('../public/src/modules/translator.common')(require('./utils'), (lang, namespace) => {
diff --git a/src/upgrades/3.0.0/reset_bootswatch_skin.js b/src/upgrades/3.0.0/reset_bootswatch_skin.js
new file mode 100644
index 0000000000..8c97adf7f5
--- /dev/null
+++ b/src/upgrades/3.0.0/reset_bootswatch_skin.js
@@ -0,0 +1,17 @@
+'use strict';
+
+
+const db = require('../../database');
+
+module.exports = {
+	name: 'Reset bootswatch skin',
+	timestamp: Date.UTC(2023, 3, 24),
+	method: async function () {
+		const config = await db.getObject('config');
+		const currentSkin = config.bootswatchSkin || '';
+		const css = require('../../meta/css');
+		if (currentSkin && !css.supportedSkins.includes(currentSkin)) {
+			await db.setObjectField('config', 'bootswatchSkin', '');
+		}
+	},
+};
diff --git a/src/user/approval.js b/src/user/approval.js
index 24e84fba64..9f2aeca562 100644
--- a/src/user/approval.js
+++ b/src/user/approval.js
@@ -132,7 +132,7 @@ module.exports = function (User) {
 			// need to keep this for getIPMatchedUsers
 			user.ip = user.ip.replace('::ffff:', '');
 			await getIPMatchedUsers(user);
-			user.customActions = [].concat(user.customActions);
+			user.customActions = user.customActions || [];
 			/*
 				// then spam prevention plugins, using the "filter:user.getRegistrationQueue" hook can be like:
 				user.customActions.push({
diff --git a/src/user/categories.js b/src/user/categories.js
index a1d141a628..80839a7ea7 100644
--- a/src/user/categories.js
+++ b/src/user/categories.js
@@ -49,7 +49,9 @@ module.exports = function (User) {
 		if (!(parseInt(uid, 10) > 0)) {
 			return [];
 		}
-		const cids = await User.getCategoriesByStates(uid, [categories.watchStates.watching]);
+		let cids = await User.getCategoriesByStates(uid, [categories.watchStates.watching]);
+		const categoryData = await categories.getCategoriesFields(cids, ['disabled']);
+		cids = cids.filter((cid, index) => categoryData[index] && !categoryData[index].disabled);
 		const result = await plugins.hooks.fire('filter:user.getWatchedCategories', {
 			uid: uid,
 			cids: cids,
diff --git a/src/user/create.js b/src/user/create.js
index f0ef5f37fc..6d598d03ff 100644
--- a/src/user/create.js
+++ b/src/user/create.js
@@ -46,7 +46,6 @@ module.exports = function (User) {
 		let userData = {
 			username: data.username,
 			userslug: data.userslug,
-			email: data.email || '',
 			joindate: timestamp,
 			lastonline: timestamp,
 			status: 'online',
@@ -104,13 +103,14 @@ module.exports = function (User) {
 			User.updateDigestSetting(userData.uid, meta.config.dailyDigestFreq),
 		]);
 
-		if (userData.email && isFirstUser) {
+		if (data.email && isFirstUser) {
+			await User.setUserField(uid, 'email', data.email);
 			await User.email.confirmByUid(userData.uid);
 		}
 
-		if (userData.email && userData.uid > 1) {
+		if (data.email && userData.uid > 1) {
 			await User.email.sendValidationEmail(userData.uid, {
-				email: userData.email,
+				email: data.email,
 				template: 'welcome',
 				subject: `[[email:welcome-to, ${meta.config.title || meta.config.browserTitle || 'NodeBB'}]]`,
 			}).catch(err => winston.error(`[user.create] Validation email failed to send\n[emailer.send] ${err.stack}`));
diff --git a/src/user/delete.js b/src/user/delete.js
index 4a7e72dac9..7bf076e7e7 100644
--- a/src/user/delete.js
+++ b/src/user/delete.js
@@ -4,8 +4,7 @@ const async = require('async');
 const _ = require('lodash');
 const path = require('path');
 const nconf = require('nconf');
-const util = require('util');
-const rimrafAsync = util.promisify(require('rimraf'));
+const { rimraf } = require('rimraf');
 
 const db = require('../database');
 const posts = require('../posts');
@@ -210,8 +209,8 @@ module.exports = function (User) {
 	async function deleteImages(uid) {
 		const folder = path.join(nconf.get('upload_path'), 'profile');
 		await Promise.all([
-			rimrafAsync(path.join(folder, `${uid}-profilecover*`)),
-			rimrafAsync(path.join(folder, `${uid}-profileavatar*`)),
+			rimraf(path.join(folder, `${uid}-profilecover*`), { glob: true }),
+			rimraf(path.join(folder, `${uid}-profileavatar*`), { glob: true }),
 		]);
 	}
 };
diff --git a/src/user/interstitials.js b/src/user/interstitials.js
index aa70e8098f..9a0e96f6db 100644
--- a/src/user/interstitials.js
+++ b/src/user/interstitials.js
@@ -14,6 +14,12 @@ const sleep = util.promisify(setTimeout);
 
 const Interstitials = module.exports;
 
+Interstitials.get = async (req, userData) => plugins.hooks.fire('filter:register.interstitial', {
+	req,
+	userData,
+	interstitials: [],
+});
+
 Interstitials.email = async (data) => {
 	if (!data.userData) {
 		throw new Error('[[error:invalid-data]]');
diff --git a/src/user/invite.js b/src/user/invite.js
index 63658551dc..a4e175b85e 100644
--- a/src/user/invite.js
+++ b/src/user/invite.js
@@ -78,6 +78,7 @@ module.exports = function (User) {
 		const email = await db.getObjectField(`invitation:token:${token}`, 'email');
 		// "Confirm" user's email if registration completed with invited address
 		if (email && email === enteredEmail) {
+			await User.setUserField(uid, 'email', email);
 			await User.email.confirmByUid(uid);
 		}
 	};
diff --git a/src/user/notifications.js b/src/user/notifications.js
index 57617cc5d5..d0efa369a1 100644
--- a/src/user/notifications.js
+++ b/src/user/notifications.js
@@ -42,6 +42,28 @@ async function filterNotifications(nids, filter) {
 }
 
 UserNotifications.getAll = async function (uid, filter) {
+	const nids = await getAllNids(uid);
+	return await filterNotifications(nids, filter);
+};
+
+UserNotifications.getAllWithCounts = async function (uid, filter) {
+	const nids = await getAllNids(uid);
+	const keys = nids.map(nid => `notifications:${nid}`);
+	let notifications = await db.getObjectsFields(keys, ['nid', 'type']);
+	const counts = {};
+	notifications.forEach((n) => {
+		if (n && n.type) {
+			counts[n.type] = counts[n.type] || 0;
+			counts[n.type] += 1;
+		}
+	});
+	if (filter) {
+		notifications = notifications.filter(n => n && n.nid && n.type === filter);
+	}
+	return { counts, nids: notifications.map(n => n.nid) };
+};
+
+async function getAllNids(uid) {
 	let nids = await db.getSortedSetRevRange([
 		`uid:${uid}:notifications:unread`,
 		`uid:${uid}:notifications:read`,
@@ -56,10 +78,9 @@ UserNotifications.getAll = async function (uid, filter) {
 		}
 		return nid && exists[index];
 	});
-
 	await deleteUserNids(deleteNids, uid);
-	return await filterNotifications(nids, filter);
-};
+	return nids;
+}
 
 async function deleteUserNids(nids, uid) {
 	await db.sortedSetRemove([
diff --git a/src/user/reset.js b/src/user/reset.js
index b8a77a4d08..557a83285c 100644
--- a/src/user/reset.js
+++ b/src/user/reset.js
@@ -17,6 +17,8 @@ const UserReset = module.exports;
 
 const twoHours = 7200000;
 
+UserReset.minSecondsBetweenEmails = 60;
+
 UserReset.validate = async function (code) {
 	const uid = await db.getObjectField('reset:uid', code);
 	if (!uid) {
@@ -39,31 +41,45 @@ UserReset.generate = async function (uid) {
 	return code;
 };
 
-async function canGenerate(uid) {
-	const score = await db.sortedSetScore('reset:issueDate:uid', uid);
-	if (score > Date.now() - (1000 * 60)) {
-		throw new Error('[[error:reset-rate-limited]]');
-	}
-}
-
 UserReset.send = async function (email) {
 	const uid = await user.getUidByEmail(email);
 	if (!uid) {
 		throw new Error('[[error:invalid-email]]');
 	}
-	await canGenerate(uid);
-	await db.sortedSetAdd('reset:issueDate:uid', Date.now(), uid);
-	const code = await UserReset.generate(uid);
-	await emailer.send('reset', uid, {
-		reset_link: `${nconf.get('url')}/reset/${code}`,
-		subject: '[[email:password-reset-requested]]',
-		template: 'reset',
-		uid: uid,
-	}).catch(err => winston.error(`[emailer.send] ${err.stack}`));
-
-	return code;
+	await lockReset(uid, '[[error:reset-rate-limited]]');
+	try {
+		await canGenerate(uid);
+		await db.sortedSetAdd('reset:issueDate:uid', Date.now(), uid);
+		const code = await UserReset.generate(uid);
+		await emailer.send('reset', uid, {
+			reset_link: `${nconf.get('url')}/reset/${code}`,
+			subject: '[[email:password-reset-requested]]',
+			template: 'reset',
+			uid: uid,
+		}).catch(err => winston.error(`[emailer.send] ${err.stack}`));
+
+		return code;
+	} finally {
+		db.deleteObjectField('locks', `reset${uid}`);
+	}
 };
 
+async function lockReset(uid, error) {
+	const value = `reset${uid}`;
+	const count = await db.incrObjectField('locks', value);
+	if (count > 1) {
+		throw new Error(error);
+	}
+	return value;
+}
+
+async function canGenerate(uid) {
+	const score = await db.sortedSetScore('reset:issueDate:uid', uid);
+	if (score > Date.now() - (UserReset.minSecondsBetweenEmails * 1000)) {
+		throw new Error('[[error:reset-rate-limited]]');
+	}
+}
+
 UserReset.commit = async function (code, password) {
 	user.isPasswordValid(password);
 	const validated = await UserReset.validate(code);
@@ -122,16 +138,13 @@ UserReset.updateExpiry = async function (uid) {
 };
 
 UserReset.clean = async function () {
-	const [tokens, uids] = await Promise.all([
-		db.getSortedSetRangeByScore('reset:issueDate', 0, -1, '-inf', Date.now() - twoHours),
-		db.getSortedSetRangeByScore('reset:issueDate:uid', 0, -1, '-inf', Date.now() - twoHours),
-	]);
-	if (!tokens.length && !uids.length) {
+	const tokens = await db.getSortedSetRangeByScore('reset:issueDate', 0, -1, '-inf', Date.now() - twoHours);
+	if (!tokens.length) {
 		return;
 	}
 
 	winston.verbose(`[UserReset.clean] Removing ${tokens.length} reset tokens from database`);
-	await cleanTokensAndUids(tokens, uids);
+	await cleanTokens(tokens);
 };
 
 UserReset.cleanByUid = async function (uid) {
@@ -153,13 +166,15 @@ UserReset.cleanByUid = async function (uid) {
 	}
 
 	winston.verbose(`[UserReset.cleanByUid] Found ${tokensToClean.length} token(s), removing...`);
-	await cleanTokensAndUids(tokensToClean, uid);
+	await Promise.all([
+		cleanTokens(tokensToClean),
+		db.deleteObjectField('locks', `reset${uid}`),
+	]);
 };
 
-async function cleanTokensAndUids(tokens, uids) {
+async function cleanTokens(tokens) {
 	await Promise.all([
 		db.deleteObjectFields('reset:uid', tokens),
 		db.sortedSetRemove('reset:issueDate', tokens),
-		db.sortedSetRemove('reset:issueDate:uid', uids),
 	]);
 }
diff --git a/src/utils.js b/src/utils.js
index 719abb50d2..2d0d2e7b9c 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -29,4 +29,13 @@ utils.generateUUID = function () {
 	return rnd.join('-');
 };
 
+utils.getSass = function () {
+	try {
+		const sass = require('sass-embedded');
+		return sass;
+	} catch (_err) {
+		return require('sass');
+	}
+};
+
 module.exports = utils;
diff --git a/src/views/400.tpl b/src/views/400.tpl
index c36f1b2f48..6658e27f99 100644
--- a/src/views/400.tpl
+++ b/src/views/400.tpl
@@ -1,12 +1,9 @@
 <div class="alert alert-danger">
 	<strong>[[global:400.title]]</strong>
-	<!-- IF error -->
-	<p>{error}</p>
-	<!-- ELSE -->
-	<p>[[global:400.message, {config.relative_path}]]</p>
-	<!-- ENDIF error -->
 
-	<!-- IF returnLink -->
+	<p>{{{ if error }}}{error}{{{ else }}}[[global:400.message, {config.relative_path}]]{{{ end }}}</p>
+
+	{{{ if returnLink }}}
 	<p>[[error:goback]]</p>
-	<!-- ENDIF returnLink -->
+	{{{ end }}}
 </div>
diff --git a/src/views/403.tpl b/src/views/403.tpl
index bf93b496cd..a68d8672f8 100644
--- a/src/views/403.tpl
+++ b/src/views/403.tpl
@@ -1,16 +1,13 @@
 <div class="alert alert-danger">
 	<strong>[[global:403.title]]</strong>
-	<!-- IF error -->
-	<p>{error}</p>
-	<!-- ELSE -->
-	<p>[[global:403.message]]</p>
-	<!-- ENDIF error -->
 
-	<!-- IF returnLink -->
+	<p>{{{ if error }}}{error}{{{ else }}}[[global:403.message]]{{{ end }}}</p>
+
+	{{{ if returnLink }}}
 	<p>[[error:goback]]</p>
-	<!-- ENDIF returnLink -->
+	{{{ end }}}
 
-	<!-- IF !loggedIn -->
+	{{{ if !loggedIn }}}
 	<p>[[global:403.login, {config.relative_path}]]</p>
-	<!-- ENDIF !loggedIn -->
+	{{{ end }}}
 </div>
\ No newline at end of file
diff --git a/src/views/404.tpl b/src/views/404.tpl
index 2a0a645bc8..5d1fb9d43c 100644
--- a/src/views/404.tpl
+++ b/src/views/404.tpl
@@ -1,8 +1,4 @@
 <div class="alert alert-danger">
 	<strong>{path} [[global:404.title]]</strong>
-	<!-- IF error -->
-	<p>{error}</p>
-	<!-- ELSE -->
-	<p>[[global:404.message, {config.relative_path}]]</p>
-	<!-- ENDIF error -->
+	<p>{{{ if error }}}{error}{{{ else }}}[[global:404.message, {config.relative_path}]]{{{ end }}}</p>
 </div>
\ No newline at end of file
diff --git a/src/views/500.tpl b/src/views/500.tpl
index 7795fbbf8a..e0ddffae26 100644
--- a/src/views/500.tpl
+++ b/src/views/500.tpl
@@ -2,9 +2,9 @@
 	<strong>[[global:500.title]]</strong>
 	<p>[[global:500.message]]</p>
 	<p>{path}</p>
-	<!-- IF error --><p>{error}</p><!-- ENDIF error -->
+	{{{ if error }}}<p>{error}</p>{{{ end }}}
 
-	<!-- IF returnLink -->
+	{{{ if returnLink }}}
 	<p>[[error:goback]]</p>
-	<!-- ENDIF returnLink -->
+	{{{ end }}}
 </div>
diff --git a/src/views/503.tpl b/src/views/503.tpl
index 5bd60e430d..2654ab8429 100644
--- a/src/views/503.tpl
+++ b/src/views/503.tpl
@@ -1,6 +1,6 @@
 <h1 class="text-center">[[pages:maintenance.text, {site_title}]]</h1>
 <h2 class="text-center"><i class="fa fa-wrench fa-3x"></i></h2>
-<!-- IF message -->
+{{{ if message }}}
 <div class="row maintenance">
 	<div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2">
 		<p class="lead text-center">[[pages:maintenance.messageIntro]]</p>
@@ -9,4 +9,4 @@
 		</div>
 	</div>
 </div>
-<!-- ENDIF message -->
\ No newline at end of file
+{{{ end }}}
\ No newline at end of file
diff --git a/src/views/admin/advanced/cache.tpl b/src/views/admin/advanced/cache.tpl
index c5a2dc2143..af1c616847 100644
--- a/src/views/admin/advanced/cache.tpl
+++ b/src/views/admin/advanced/cache.tpl
@@ -4,41 +4,50 @@
 		<div class="row">
 			{{{each caches}}}
 			<div class="col-lg-3">
-				<div class="panel panel-default">
-					<div class="panel-heading">[[admin/advanced/cache:{@key}-cache]]</div>
-					<div class="panel-body">
-						<div class="checkbox" data-name="{@key}">
-							<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-								<input class="mdl-switch__input" type="checkbox" {{{if caches.enabled}}}checked{{{end}}}>
-							</label>
+				<div class="card">
+					<div class="card-header">[[admin/advanced/cache:{@key}-cache]]</div>
+					<div class="card-body">
+						<div class="form-check form-switch mb-3" data-name="{@key}">
+							<input class="form-check-input" type="checkbox" {{{if caches.enabled}}}checked{{{end}}}>
 						</div>
 
-						<span>{{{if ../length}}}{../length}{{{else}}}{../itemCount}{{{end}}} / {{{if ../max}}}{../max}{{{else}}}{../maxSize}{{{end}}}</span><br/>
-
-						<div class="progress">
-							<div class="progress-bar" role="progressbar" aria-valuenow="{../percentFull}" aria-valuemin="0" aria-valuemax="100" style="width: {../percentFull}%;">
-								[[admin/advanced/cache:percent-full, {../percentFull}]]
+						<div class="mb-3">{{{if ./length}}}{./length}{{{else}}}{./itemCount}{{{end}}} / {{{if ./max}}}{./max}{{{else}}}{./maxSize}{{{end}}}</div>
+						<div class="progress mb-3" style="height:20px;">
+							<div class="progress-bar" role="progressbar" aria-valuenow="{./percentFull}" aria-valuemin="0" aria-valuemax="100" style="width: {./percentFull}%;">
+								[[admin/advanced/cache:percent-full, {./percentFull}]]
 							</div>
 						</div>
+						<div class="mb-2">
+							<label>Hits:</label> <span>{./hits}</span>
+						</div>
+						<div class="mb-2">
+							<label>Misses:</label> <span>{./misses}</span>
+						</div>
+						<div class="mb-2">
+							<label>Hit Ratio:</label> <span>{./hitRatio}</span>
+						</div>
+						<div class="mb-2">
+							<label>Hits / Sec:</label> <span>{./hitsPerSecond}</span>
+						</div>
 
-						<label>Hits:</label> <span>{../hits}</span><br/>
-						<label>Misses:</label> <span>{../misses}</span><br/>
-						<label>Hit Ratio:</label> <span>{../hitRatio}</span><br/>
-						{{{if ../ttl}}}<label>TTL:</label> <span>{../ttl}</span></br>{{{end}}}
+						{{{if ./ttl}}}
+						<div class="mb-2">
+							<label>TTL:</label> <span>{./ttl}</span>
+						</div>
+						{{{end}}}
 						{{{if (@key == "post")}}}
 						<hr/>
-						<div class="form-group">
+						<div class="mb-3">
 							<label for="postCacheSize">[[admin/advanced/cache:post-cache-size]]</label>
 							<input id="postCacheSize" type="text" class="form-control" value="" data-field="postCacheSize">
 						</div>
 						{{{end}}}
-						<a href="{config.relative_path}/api/admin/advanced/cache/dump?name={@key}" class="btn btn-sm btn-default"><i class="fa fa-download"></i></a>
+						<a href="{config.relative_path}/api/admin/advanced/cache/dump?name={@key}" class="btn btn-sm"><i class="fa fa-download"></i></a>
 						<a class="btn btn-sm btn-danger clear" data-name="{@key}"><i class="fa fa-trash"></i></a>
 					</div>
 				</div>
 			</div>
 			{{{end}}}
-			
 		</div>
 	</div>
 </div>
diff --git a/src/views/admin/advanced/database.tpl b/src/views/admin/advanced/database.tpl
index f63b77cb86..311ff9deef 100644
--- a/src/views/admin/advanced/database.tpl
+++ b/src/views/admin/advanced/database.tpl
@@ -7,32 +7,32 @@
 			{mongo.serverStatusError}
 		</div>
 		{{{ end }}}
-		<div class="panel panel-default">
-			<div class="panel-heading"><i class="fa fa-hdd-o"></i> [[admin/advanced/database:mongo]]</div>
-			<div class="panel-body">
+		<div class="card">
+			<div class="card-header"><i class="fa fa-hdd-o"></i> [[admin/advanced/database:mongo]]</div>
+			<div class="card-body">
 				<div class="database-info">
-					<span>[[admin/advanced/database:mongo.version]]</span> <span class="text-right">{mongo.version}</span><br/>
+					<span>[[admin/advanced/database:mongo.version]]</span> <span class="text-end">{mongo.version}</span><br/>
 					<hr/>
-					<span>[[admin/advanced/database:uptime-seconds]]</span> <span class="text-right formatted-number">{mongo.uptime}</span><br/>
-					<span>[[admin/advanced/database:mongo.storage-engine]]</span> <span class="text-right">{mongo.storageEngine}</span><br/>
-					<span>[[admin/advanced/database:mongo.collections]]</span> <span class="text-right formatted-number">{mongo.collections}</span><br/>
-					<span>[[admin/advanced/database:mongo.objects]]</span> <span class="text-right formatted-number">{mongo.objects}</span><br/>
-					<span>[[admin/advanced/database:mongo.avg-object-size]]</span> <span class="text-right">[[admin/advanced/database:x-b, {mongo.avgObjSize}]]</span><br/>
+					<span>[[admin/advanced/database:uptime-seconds]]</span> <span class="text-end formatted-number">{mongo.uptime}</span><br/>
+					<span>[[admin/advanced/database:mongo.storage-engine]]</span> <span class="text-end">{mongo.storageEngine}</span><br/>
+					<span>[[admin/advanced/database:mongo.collections]]</span> <span class="text-end formatted-number">{mongo.collections}</span><br/>
+					<span>[[admin/advanced/database:mongo.objects]]</span> <span class="text-end formatted-number">{mongo.objects}</span><br/>
+					<span>[[admin/advanced/database:mongo.avg-object-size]]</span> <span class="text-end">[[admin/advanced/database:x-b, {mongo.avgObjSize}]]</span><br/>
 					<hr/>
-					<span>[[admin/advanced/database:mongo.data-size]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {mongo.dataSize}]]</span><br/>
-					<span>[[admin/advanced/database:mongo.storage-size]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {mongo.storageSize}]]</span><br/>
-					<span>[[admin/advanced/database:mongo.index-size]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {mongo.indexSize}]]</span><br/>
-					<!-- IF mongo.fileSize -->
-					<span>[[admin/advanced/database:mongo.file-size]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {mongo.fileSize}]]</span><br/>
-					<!-- ENDIF mongo.fileSize -->
+					<span>[[admin/advanced/database:mongo.data-size]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.dataSize}]]</span><br/>
+					<span>[[admin/advanced/database:mongo.storage-size]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.storageSize}]]</span><br/>
+					<span>[[admin/advanced/database:mongo.index-size]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.indexSize}]]</span><br/>
+					{{{ if mongo.fileSize }}}
+					<span>[[admin/advanced/database:mongo.file-size]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.fileSize}]]</span><br/>
+					{{{ end }}}
 					<hr/>
-					<span>[[admin/advanced/database:mongo.resident-memory]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {mongo.mem.resident}]]</span><br/>
-					<span>[[admin/advanced/database:mongo.virtual-memory]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {mongo.mem.virtual}]]</span><br/>
-					<span>[[admin/advanced/database:mongo.mapped-memory]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {mongo.mem.mapped}]]</span><br/>
+					<span>[[admin/advanced/database:mongo.resident-memory]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.mem.resident}]]</span><br/>
+					<span>[[admin/advanced/database:mongo.virtual-memory]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.mem.virtual}]]</span><br/>
+					<span>[[admin/advanced/database:mongo.mapped-memory]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.mem.mapped}]]</span><br/>
 					<hr/>
-					<span>[[admin/advanced/database:mongo.bytes-in]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {mongo.network.bytesIn}]]</span><br/>
-					<span>[[admin/advanced/database:mongo.bytes-out]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {mongo.network.bytesOut}]]</span><br/>
-					<span>[[admin/advanced/database:mongo.num-requests]]</span> <span class="text-right">{mongo.network.numRequests}</span><br/>
+					<span>[[admin/advanced/database:mongo.bytes-in]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.network.bytesIn}]]</span><br/>
+					<span>[[admin/advanced/database:mongo.bytes-out]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {mongo.network.bytesOut}]]</span><br/>
+					<span>[[admin/advanced/database:mongo.num-requests]]</span> <span class="text-end">{mongo.network.numRequests}</span><br/>
 				</div>
 			</div>
 		</div>
@@ -41,38 +41,38 @@
 
 	{{{ if redis }}}
 	<div class="col-lg-6">
-		<div class="panel panel-default">
-			<div class="panel-heading"><i class="fa fa-hdd-o"></i> [[admin/advanced/database:redis]]</div>
-			<div class="panel-body">
+		<div class="card">
+			<div class="card-header"><i class="fa fa-hdd-o"></i> [[admin/advanced/database:redis]]</div>
+			<div class="card-body">
 				<div class="database-info">
-					<span>[[admin/advanced/database:redis.version]]</span> <span class="text-right">{redis.redis_version}</span><br/>
+					<span>[[admin/advanced/database:redis.version]]</span> <span class="text-end">{redis.redis_version}</span><br/>
 					<hr/>
-					<span>[[admin/advanced/database:uptime-seconds]]</span> <span class="text-right formatted-number">{redis.uptime_in_seconds}</span><br/>
-					<span>[[admin/advanced/database:uptime-days]]</span> <span class="text-right">{redis.uptime_in_days}</span><br/>
+					<span>[[admin/advanced/database:uptime-seconds]]</span> <span class="text-end formatted-number">{redis.uptime_in_seconds}</span><br/>
+					<span>[[admin/advanced/database:uptime-days]]</span> <span class="text-end">{redis.uptime_in_days}</span><br/>
 					<hr/>
-					<span>[[admin/advanced/database:redis.keys]]</span> <span class="text-right formatted-number">{redis.keys}</span><br/>
-					<span>[[admin/advanced/database:redis.expires]]</span> <span class="text-right formatted-number">{redis.expires}</span><br/>
-					<span>[[admin/advanced/database:redis.avg-ttl]]</span> <span class="text-right formatted-number">{redis.avg_ttl}</span><br/>
-					<span>[[admin/advanced/database:redis.connected-clients]]</span> <span class="text-right">{redis.connected_clients}</span><br/>
-					<span>[[admin/advanced/database:redis.connected-slaves]]</span> <span class="text-right">{redis.connected_slaves}</span><br/>
-					<span>[[admin/advanced/database:redis.blocked-clients]]</span> <span class="text-right">{redis.blocked_clients}</span><br/>
+					<span>[[admin/advanced/database:redis.keys]]</span> <span class="text-end formatted-number">{redis.keys}</span><br/>
+					<span>[[admin/advanced/database:redis.expires]]</span> <span class="text-end formatted-number">{redis.expires}</span><br/>
+					<span>[[admin/advanced/database:redis.avg-ttl]]</span> <span class="text-end formatted-number">{redis.avg_ttl}</span><br/>
+					<span>[[admin/advanced/database:redis.connected-clients]]</span> <span class="text-end">{redis.connected_clients}</span><br/>
+					<span>[[admin/advanced/database:redis.connected-slaves]]</span> <span class="text-end">{redis.connected_slaves}</span><br/>
+					<span>[[admin/advanced/database:redis.blocked-clients]]</span> <span class="text-end">{redis.blocked_clients}</span><br/>
 					<hr/>
 
-					<span>[[admin/advanced/database:redis.used-memory]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {redis.used_memory_human}]]</span><br/>
-					<span>[[admin/advanced/database:redis.memory-frag-ratio]]</span> <span class="text-right">{redis.mem_fragmentation_ratio}</span><br/>
+					<span>[[admin/advanced/database:redis.used-memory]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {redis.used_memory_human}]]</span><br/>
+					<span>[[admin/advanced/database:redis.memory-frag-ratio]]</span> <span class="text-end">{redis.mem_fragmentation_ratio}</span><br/>
 					<hr/>
-					<span>[[admin/advanced/database:redis.total-connections-recieved]]</span> <span class="text-right formatted-number">{redis.total_connections_received}</span><br/>
-					<span>[[admin/advanced/database:redis.total-commands-processed]]</span> <span class="text-right formatted-number">{redis.total_commands_processed}</span><br/>
-					<span>[[admin/advanced/database:redis.iops]]</span> <span class="text-right formatted-number">{redis.instantaneous_ops_per_sec}</span><br/>
+					<span>[[admin/advanced/database:redis.total-connections-recieved]]</span> <span class="text-end formatted-number">{redis.total_connections_received}</span><br/>
+					<span>[[admin/advanced/database:redis.total-commands-processed]]</span> <span class="text-end formatted-number">{redis.total_commands_processed}</span><br/>
+					<span>[[admin/advanced/database:redis.iops]]</span> <span class="text-end formatted-number">{redis.instantaneous_ops_per_sec}</span><br/>
 
-					<span>[[admin/advanced/database:redis.iinput]]</span> <span class="text-right">[[admin/advanced/database:x-mb, {redis.instantaneous_input}]]</span><br/>
-					<span>[[admin/advanced/database:redis.ioutput]]</span> <span class="text-right">[[admin/advanced/database:x-mb, {redis.instantaneous_output}]]</span><br/>
-					<span>[[admin/advanced/database:redis.total-input]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {redis.total_net_input}]]</span><br/>
-					<span>[[admin/advanced/database:redis.total-output]]</span> <span class="text-right">[[admin/advanced/database:x-gb, {redis.total_net_output}]]</span><br/>
+					<span>[[admin/advanced/database:redis.iinput]]</span> <span class="text-end">[[admin/advanced/database:x-mb, {redis.instantaneous_input}]]</span><br/>
+					<span>[[admin/advanced/database:redis.ioutput]]</span> <span class="text-end">[[admin/advanced/database:x-mb, {redis.instantaneous_output}]]</span><br/>
+					<span>[[admin/advanced/database:redis.total-input]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {redis.total_net_input}]]</span><br/>
+					<span>[[admin/advanced/database:redis.total-output]]</span> <span class="text-end">[[admin/advanced/database:x-gb, {redis.total_net_output}]]</span><br/>
 
 					<hr/>
-					<span>[[admin/advanced/database:redis.keyspace-hits]]</span> <span class="text-right formatted-number">{redis.keyspace_hits}</span><br/>
-					<span>[[admin/advanced/database:redis.keyspace-misses]]</span> <span class="text-right formatted-number">{redis.keyspace_misses}</span><br/>
+					<span>[[admin/advanced/database:redis.keyspace-hits]]</span> <span class="text-end formatted-number">{redis.keyspace_hits}</span><br/>
+					<span>[[admin/advanced/database:redis.keyspace-misses]]</span> <span class="text-end formatted-number">{redis.keyspace_misses}</span><br/>
 				</div>
 			</div>
 		</div>
@@ -81,13 +81,13 @@
 
 	{{{ if postgres }}}
 	<div class="col-lg-6">
-		<div class="panel panel-default">
-			<div class="panel-heading"><i class="fa fa-hdd-o"></i> [[admin/advanced/database:postgres]]</div>
-			<div class="panel-body">
+		<div class="card">
+			<div class="card-header"><i class="fa fa-hdd-o"></i> [[admin/advanced/database:postgres]]</div>
+			<div class="card-body">
 				<div class="database-info">
-					<span>[[admin/advanced/database:postgres.version]]</span> <span class="text-right">{postgres.version}</span><br/>
+					<span>[[admin/advanced/database:postgres.version]]</span> <span class="text-end">{postgres.version}</span><br/>
 					<hr/>
-					<span>[[admin/advanced/database:uptime-seconds]]</span> <span class="text-right formatted-number">{postgres.uptime}</span><br/>
+					<span>[[admin/advanced/database:uptime-seconds]]</span> <span class="text-end formatted-number">{postgres.uptime}</span><br/>
 				</div>
 			</div>
 		</div>
@@ -98,12 +98,12 @@
 <div class="row database">
 	{{{ if mongo }}}
 	<div class="col-lg-6">
-		<div class="panel panel-default">
-			<div class="panel-heading" data-toggle="collapse" data-target=".mongodb-raw">
-				<h3 class="panel-title"><i class="fa fa-caret-down"></i> [[admin/advanced/database:mongo.raw-info]]</h3>
-			</div>
+		<div class="card">
+			<h5 class="card-header" data-bs-toggle="collapse" data-bs-target=".mongodb-raw">
+				<i class="fa fa-caret-down"></i> [[admin/advanced/database:mongo.raw-info]]
+			</h5>
 
-			<div class="panel-body mongodb-raw collapse">
+			<div class="card-body mongodb-raw collapse">
 				<div class="highlight">
 					<pre>{mongo.raw}</pre>
 				</div>
@@ -114,12 +114,12 @@
 
 	{{{ if redis }}}
 	<div class="col-lg-6">
-		<div class="panel panel-default">
-			<div class="panel-heading" data-toggle="collapse" data-target=".redis-raw">
-				<h3 class="panel-title"><i class="fa fa-caret-down"></i> [[admin/advanced/database:redis.raw-info]]</h3>
-			</div>
+		<div class="card">
+			<h5 class="card-header" data-bs-toggle="collapse" data-bs-target=".redis-raw">
+				<i class="fa fa-caret-down"></i> [[admin/advanced/database:redis.raw-info]]
+			</h5>
 
-			<div class="panel-body redis-raw collapse">
+			<div class="card-body redis-raw collapse">
 				<div class="highlight">
 					<pre>{redis.raw}</pre>
 				</div>
@@ -130,12 +130,12 @@
 
 	{{{ if postgres }}}
 	<div class="col-lg-6">
-		<div class="panel panel-default">
-			<div class="panel-heading" data-toggle="collapse" data-target=".postgresql-raw">
-				<h3 class="panel-title"><i class="fa fa-caret-down"></i> [[admin/advanced/database:postgres.raw-info]]</h3>
-			</div>
+		<div class="card">
+			<h5 class="card-header" data-bs-toggle="collapse" data-bs-target=".postgresql-raw">
+				<i class="fa fa-caret-down"></i> [[admin/advanced/database:postgres.raw-info]]
+			</h5>
 
-			<div class="panel-body postgresql-raw collapse">
+			<div class="card-body postgresql-raw collapse">
 				<div class="highlight">
 					<pre>{postgres.raw}</pre>
 				</div>
diff --git a/src/views/admin/advanced/errors.tpl b/src/views/admin/advanced/errors.tpl
index f5f0838c31..bf70584e5a 100644
--- a/src/views/admin/advanced/errors.tpl
+++ b/src/views/admin/advanced/errors.tpl
@@ -2,23 +2,23 @@
 	<div class="col-lg-9">
 		<div class="row">
 			<div class="col-sm-6 text-center">
-				<div class="panel panel-default">
-					<div class="panel-body">
+				<div class="card">
+					<div class="card-body">
 						<div><canvas id="not-found" height="250"></canvas></div>
 					</div>
-					<div class="panel-footer"><small>
-						<strong>[[admin/advanced/errors:figure-x, 1]]</strong> &ndash; 
+					<div class="card-footer"><small>
+						<strong>[[admin/advanced/errors:figure-x, 1]]</strong> &ndash;
 						[[admin/advanced/errors:error-events-per-day, [[admin/advanced/errors:error.404]]]]
 					</small></div>
 				</div>
 			</div>
 			<div class="col-sm-6 text-center">
-				<div class="panel panel-default">
-					<div class="panel-body">
+				<div class="card">
+					<div class="card-body">
 						<div><canvas id="toobusy" height="250"></canvas></div>
 					</div>
-					<div class="panel-footer"><small>
-						<strong>[[admin/advanced/errors:figure-x, 2]]</strong> &ndash; 
+					<div class="card-footer"><small>
+						<strong>[[admin/advanced/errors:figure-x, 2]]</strong> &ndash;
 						[[admin/advanced/errors:error-events-per-day, [[admin/advanced/errors:error.503]]]]
 					</small></div>
 				</div>
@@ -26,10 +26,10 @@
 		</div>
 	</div>
 	<div class="col-lg-3 acp-sidebar">
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/advanced/errors:manage-error-log]]</div>
-			<div class="panel-body">
-				<div class="btn-group-vertical btn-block" role="group">
+		<div class="card">
+			<div class="card-header">[[admin/advanced/errors:manage-error-log]]</div>
+			<div class="card-body">
+				<div class="d-grid gap-2" role="group">
 					<a class="btn btn-info" target="_top" href="{config.relative_path}/admin/advanced/errors/export">
 						<i class="fa fa-download"></i> [[admin/advanced/errors:export-error-log]]
 					</a>
@@ -43,25 +43,25 @@
 </div>
 
 <div class="row">
-	<div class="col-xs-12">
-		<div class="panel panel-default">
-			<div class="panel-heading">
+	<div class="col-12">
+		<div class="card">
+			<div class="card-header">
 				<i class="fa fa-exclamation-triangle"></i> [[admin/advanced/errors:error.404]]
 			</div>
-			<div class="panel-body">
+			<div class="card-body">
 				<table class="table table-striped">
 					<thead>
 						<th>[[admin/advanced/errors:route]]</th>
 						<th>[[admin/advanced/errors:count]]</th>
 					</thead>
 					<tbody>
-						<!-- BEGIN not-found -->
+						{{{ each not-found }}}
 						<tr>
-							<td>{../value}</td>
-							<td>{../score}</td>
+							<td>{./value}</td>
+							<td>{./score}</td>
 						</tr>
-						<!-- END not-found -->
-						<!-- IF !not-found.length -->
+						{{{ end }}}
+						{{{ if !not-found.length }}}
 						<tr>
 							<td colspan="2">
 								<div class="alert alert-success">
@@ -69,7 +69,7 @@
 								</div>
 							</td>
 						</tr>
-						<!-- ENDIF !not-found.length -->
+						{{{ end }}}
 					</tbody>
 				</table>
 			</div>
diff --git a/src/views/admin/advanced/events.tpl b/src/views/admin/advanced/events.tpl
index ccaca544b6..d5d0fa8022 100644
--- a/src/views/admin/advanced/events.tpl
+++ b/src/views/admin/advanced/events.tpl
@@ -1,68 +1,66 @@
 <div class="row events">
 	<div class="col-lg-9">
-		<div class="panel panel-default">
-			<div class="panel-heading"><i class="fa fa-calendar-o"></i> [[admin/advanced/events:events]]</div>
-			<div class="panel-body">
-				<!-- IF !events.length -->
-				<div class="alert alert-info">[[admin/advanced/events:no-events]]</div>
-				<!-- ENDIF !events.length -->
-				<div class="events-list">
-				<!-- BEGIN events -->
-				<div data-eid="{events.eid}">
-					<span class="label label-default">#{events.eid}</span>
-					<span class="label label-info">{events.type}</span>
-					<span class="label label-default">uid {events.uid}</span>
-					<!-- IF events.ip --><span class="label label-default">{events.ip}</span><!-- END -->
-					<a href="{config.relative_path}/user/{events.user.userslug}" target="_blank">
-						<!-- IF events.user.picture -->
-						<img class="avatar avatar-xs" src="{events.user.picture}" alt="" />
-						<!-- ELSE -->
-						<div class="avatar avatar-xs" style="background-color: {events.user.icon:bgColor};">{events.user.icon:text}</div>
-						<!-- ENDIF events.user.picture -->
-					</a>
-					<a href="{config.relative_path}/user/{events.user.userslug}" target="_blank">{events.user.username}</a>
-					<span class="pull-right delete-event"><i class="fa fa-trash-o"></i></span>
-					<span class="pull-right">{events.timestampISO}</span>
-					<pre class="well">{events.jsonString}</pre>
-				</div>
-				<!-- END events -->
-				<!-- IMPORT partials/paginator.tpl -->
+		<h5><i class="fa fa-calendar-o"></i> [[admin/advanced/events:events]]</h5>
+		{{{ if !events.length }}}
+		<div class="alert alert-info">[[admin/advanced/events:no-events]]</div>
+		{{{ end }}}
+		<div class="events-list">
+			{{{ each events }}}
+			<div class="card mb-3">
+				<div class="card-body">
+					<div data-eid="{events.eid}">
+						<div class="mb-3">
+							<span class="badge bg-primary">#{events.eid}</span>
+							<span class="badge bg-info">{events.type}</span>
+							<span class="badge bg-info">uid {events.uid}</span>
+							{{{ if events.ip }}}<span class="badge bg-info">{events.ip}</span>{{{ end }}}
+							<a href="{config.relative_path}/user/{events.user.userslug}" target="_blank">{buildAvatar(events.user, "24px", true)}</a>
+							<a href="{config.relative_path}/user/{events.user.userslug}" target="_blank">{events.user.username}</a>
+							<span class="float-end delete-event ms-2 pointer"><i class="fa fa-trash-o"></i></span>
+							<span class="float-end">{events.timestampISO}</span>
+						</div>
+						<pre class="text-bg-light p-3">{events.jsonString}</pre>
+					</div>
 				</div>
 			</div>
+			{{{ end }}}
+			<!-- IMPORT partials/paginator.tpl -->
 		</div>
 	</div>
 	<div class="col-lg-3 acp-sidebar">
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/advanced/events:filters]]</div>
-			<div class="panel-body">
+		<div class="card">
+			<h5 class="card-header">[[admin/advanced/events:filters]]</h5>
+			<div class="card-body">
 				<form role="form" id="filters">
-					<div class="form-group">
-						<label for="type">[[admin/advanced/events:filter-type]]</label>
-						<select id="type" name="type" class="form-control">
-							<!-- BEGIN types -->
-							<option value="{types.value}" <!-- IF types.selected -->selected<!-- ENDIF types.selected -->>{types.name} - ({types.count}) </option>
-							<!-- END types -->
+					<div class="mb-3">
+						<label class="form-label" for="type">[[admin/advanced/events:filter-type]]</label>
+						<select id="type" name="type" class="form-select">
+							{{{ each types }}}
+							<option value="{./value}" {{{ if ./selected }}}selected{{{ end }}}>{./name} - ({./count}) </option>
+							{{{ end }}}
 						</select>
 					</div>
-					<div class="form-group">
-						<label for="start">[[admin/advanced/events:filter-start]]</label>
+					<div class="mb-3">
+						<label class="form-label" for="start">[[admin/advanced/events:filter-start]]</label>
 						<input type="date" id="start" name="start" value="{query.start}" class="form-control" />
 					</div>
-					<div class="form-group">
-						<label for="end">[[admin/advanced/events:filter-end]]</label>
+					<div class="mb-3">
+						<label class="form-label" for="end">[[admin/advanced/events:filter-end]]</label>
 						<input type="date" id="end" name="end" value="{query.end}" class="form-control" />
 					</div>
-					<div class="form-group">
-						<label for="perPage">[[admin/advanced/events:filter-perPage]]</label>
+					<div class="mb-3">
+						<label class="form-label" for="perPage">[[admin/advanced/events:filter-perPage]]</label>
 						<input type="text" id="perPage" name="perPage" value="{query.perPage}" class="form-control" />
 					</div>
-					<button type="submit" class="btn btn-primary btn-block" id="apply">[[admin/advanced/events:filters-apply]]</button>
+					<div class="d-grid">
+						<button type="submit" class="btn btn-primary" id="apply">[[admin/advanced/events:filters-apply]]</button>
+					</div>
 				</form>
 			</div>
 		</div>
-		<div class="panel panel-default">
-			<div class="panel-body">
-				<button class="btn btn-block btn-danger" data-action="clear">
+		<div class="card">
+			<div class="card-body d-grid">
+				<button class="btn btn-danger" data-action="clear">
 					<i class="fa fa-eraser"></i> [[admin/advanced/events:delete-events]]
 				</button>
 			</div>
diff --git a/src/views/admin/advanced/hooks.tpl b/src/views/admin/advanced/hooks.tpl
index b9b2493b88..d137038ef6 100644
--- a/src/views/admin/advanced/hooks.tpl
+++ b/src/views/admin/advanced/hooks.tpl
@@ -1,27 +1,25 @@
 <div class="hooks-list panel-group" id="accordion" role="tablist" aria-multiselectable="true">
 	{{{ each hooks }}}
-	<div class="panel panel-default">
-		<div class="panel-heading" role="tab">
-		<div class="panel-title">
-			<a role="button" data-toggle="collapse" data-parent="#accordion" data-target="#{hooks.index}" aria-expanded="true" aria-controls="{hooks.index}">
-			{hooks.hookName}
-			</a>
-			<span class="pull-right">{hooks.count} hooks</span>
+	<div class="card">
+		<div class="card-header" role="tab">
+			<h6 class="mb-0">
+				<a style="text-transform: none;" role="button" data-bs-toggle="collapse" data-bs-parent="#accordion" data-bs-target="#{hooks.index}" aria-expanded="true" aria-controls="{hooks.index}">{hooks.hookName}</a>
+				<span class="float-end">{hooks.count} hooks</span>
+			</h6>
 		</div>
-		</div>
-		<div id="{hooks.index}" class="panel-collapse collapse" role="tabpanel">
-		<div class="panel-body clearfix">
+		<div id="{hooks.index}" class="accordion-collapse collapse" role="tabpanel">
+		<div class="card-body">
 			{{{ each hooks.methods }}}
-			<div class="clearfix">
+			<div class="mb-3">
 				<strong>{hooks.methods.id}</strong>
 				Priority: {hooks.methods.priority}
 
-				<button class="btn btn-primary btn-sm pull-right" type="button" data-toggle="collapse" data-target="#{hooks.methods.index}" aria-expanded="false" aria-controls="{hooks.methods.index}">
+				<button class="btn btn-primary btn-sm float-end" type="button" data-bs-toggle="collapse" data-bs-target="#{hooks.methods.index}" aria-expanded="false" aria-controls="{hooks.methods.index}">
 					Show Code <i class="fa fa-eye"></i>
 				</button>
 			</div>
 			<div class="collapse" id="{hooks.methods.index}">
-				<pre>{hooks.methods.method}</pre>
+				<pre class="p-3 text-bg-light border border-secondary rounded">{hooks.methods.method}</pre>
 			</div>
 			{{{ end }}}
 		</div>
diff --git a/src/views/admin/advanced/logs.tpl b/src/views/admin/advanced/logs.tpl
index 4f7772bd22..73bd209486 100644
--- a/src/views/admin/advanced/logs.tpl
+++ b/src/views/admin/advanced/logs.tpl
@@ -1,16 +1,16 @@
 <div class="row logs">
 	<div class="col-lg-9">
-		<div class="panel panel-default">
-			<div class="panel-heading"><i class="fa fa-file-text-o"></i> [[admin/advanced/logs:logs]]</div>
-			<div class="panel-body">
-				<pre>{data}</pre>
+		<div class="card">
+			<div class="card-header"><i class="fa fa-file-text-o"></i> [[admin/advanced/logs:logs]]</div>
+			<div class="card-body">
+				<pre style="height: 600px;">{data}</pre>
 			</div>
 		</div>
 	</div>
 	<div class="col-lg-3 acp-sidebar">
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/advanced/logs:control-panel]]</div>
-			<div class="panel-body">
+		<div class="card">
+			<div class="card-header">[[admin/advanced/logs:control-panel]]</div>
+			<div class="card-body d-grid gap-2">
 				<button class="btn btn-primary" data-action="reload">
 					<i class="fa fa-refresh"></i> [[admin/advanced/logs:reload]]
 				</button>
diff --git a/src/views/admin/appearance/customise.tpl b/src/views/admin/appearance/customise.tpl
index 1c8a76b2f4..f01359cb4f 100644
--- a/src/views/admin/appearance/customise.tpl
+++ b/src/views/admin/appearance/customise.tpl
@@ -1,12 +1,12 @@
 <div id="customise" class="customise">
-	<ul class="nav nav-pills">
-		<li class="active"><a href="#custom-css" data-toggle="tab">[[admin/appearance/customise:custom-css]]</a></li>
-		<li><a href="#custom-js" data-toggle="tab">[[admin/appearance/customise:custom-js]]</a></li>
-		<li><a href="#custom-header" data-toggle="tab">[[admin/appearance/customise:custom-header]]</a></li>
+	<ul class="nav nav-pills mb-3">
+		<li class="nav-item"><a class="nav-link active" href="#custom-css" data-bs-toggle="tab">[[admin/appearance/customise:custom-css]]</a></li>
+		<li class="nav-item"><a class="nav-link" href="#custom-js" data-bs-toggle="tab">[[admin/appearance/customise:custom-js]]</a></li>
+		<li class="nav-item"><a class="nav-link" href="#custom-header" data-bs-toggle="tab">[[admin/appearance/customise:custom-header]]</a></li>
 	</ul>
-	<br />
+
 	<div class="tab-content">
-		<div class="tab-pane fade active in" id="custom-css">
+		<div class="tab-pane fade show active" id="custom-css">
 			<p>
 				[[admin/appearance/customise:custom-css.description]]
 			</p>
@@ -15,11 +15,9 @@
 
 			<br />
 			<form class="form">
-				<div class="form-group">
-					<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="useCustomCSS">
-						<input class="mdl-switch__input" id="useCustomCSS" type="checkbox" data-field="useCustomCSS" />
-						<span class="mdl-switch__label">[[admin/appearance/customise:custom-css.enable]]</span>
-					</label>
+				<div class="form-check">
+					<input class="form-check-input" id="useCustomCSS" type="checkbox" data-field="useCustomCSS" />
+					<label class="form-check-label" for="useCustomCSS">[[admin/appearance/customise:custom-css.enable]]</label>
 				</div>
 			</form>
 		</div>
@@ -33,11 +31,9 @@
 
 			<br />
 			<form class="form">
-				<div class="form-group">
-					<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="useCustomJS">
-						<input class="mdl-switch__input" id="useCustomJS" type="checkbox" data-field="useCustomJS" />
-						<span class="mdl-switch__label">[[admin/appearance/customise:custom-js.enable]]</span>
-					</label>
+				<div class="form-check">
+					<input class="form-check-input" id="useCustomJS" type="checkbox" data-field="useCustomJS" />
+					<label class="form-check-label" for="useCustomJS">[[admin/appearance/customise:custom-js.enable]]</label>
 				</div>
 			</form>
 		</div>
@@ -52,29 +48,21 @@
 
 			<br />
 			<form class="form">
-				<div class="form-group">
-					<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="useCustomHTML">
-						<input class="mdl-switch__input" id="useCustomHTML" type="checkbox" data-field="useCustomHTML" />
-						<span class="mdl-switch__label">[[admin/appearance/customise:custom-header.enable]]</span>
-					</label>
+				<div class="form-check">
+					<input class="form-check-input" id="useCustomHTML" type="checkbox" data-field="useCustomHTML" />
+					<label class="form-check-label" for="useCustomHTML">[[admin/appearance/customise:custom-header.enable]]</label>
 				</div>
 			</form>
 		</div>
 
 		<form class="form">
-			<div class="form-group">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="enableLiveReload">
-					<input class="mdl-switch__input" id="enableLiveReload" type="checkbox" data-field="enableLiveReload" checked />
-					<span class="mdl-switch__label">
-						[[admin/appearance/customise:custom-css.livereload]]
-						<small>[[admin/appearance/customise:custom-css.livereload.description]]</small>
-					</span>
-				</label>
+			<div class="form-check">
+				<input class="form-check-input" id="enableLiveReload" type="checkbox" data-field="enableLiveReload" checked />
+				<label class="form-check-label" for="enableLiveReload">[[admin/appearance/customise:custom-css.livereload]]</label>
+				<div class="form-text">[[admin/appearance/customise:custom-css.livereload.description]]</div>
 			</div>
 		</form>
 	</div>
 </div>
 
-<button id="save" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-	<i class="material-icons">save</i>
-</button>
\ No newline at end of file
+<!-- IMPORT admin/partials/save_button.tpl -->
\ No newline at end of file
diff --git a/src/views/admin/appearance/skins.tpl b/src/views/admin/appearance/skins.tpl
index 4b0b89323b..208d3810b1 100644
--- a/src/views/admin/appearance/skins.tpl
+++ b/src/views/admin/appearance/skins.tpl
@@ -4,8 +4,8 @@
 	</div>
 
 	<div data-type="bootswatch" data-theme="" data-css="">
-		<button data-action="use" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-			<i class="material-icons">undo</i>
+		<button data-action="use" class="btn btn-primary position-fixed bottom-0 end-0 px-3 py-2 mb-4 me-4 rounded-circle fs-4" type="button" style="width: 64px; height: 64px;">
+			<i class="fa fa-fw fas fa-rotate-left"></i>
 		</button>
 	</div>
 </div>
diff --git a/src/views/admin/appearance/themes.tpl b/src/views/admin/appearance/themes.tpl
index c0d9884b81..fa98276c64 100644
--- a/src/views/admin/appearance/themes.tpl
+++ b/src/views/admin/appearance/themes.tpl
@@ -4,6 +4,6 @@
 	</div>
 </div>
 
-<button id="revert_theme" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-	<i class="material-icons">undo</i>
+<button id="revert_theme" class="btn btn-primary position-fixed bottom-0 end-0 px-3 py-2 mb-4 me-4 rounded-circle fs-4" type="button" style="width: 64px; height: 64px;">
+	<i class="fa fa-fw fas fa-rotate-left"></i>
 </button>
\ No newline at end of file
diff --git a/src/views/admin/dashboard.tpl b/src/views/admin/dashboard.tpl
index 42e2a92aa6..7a7ca43f24 100644
--- a/src/views/admin/dashboard.tpl
+++ b/src/views/admin/dashboard.tpl
@@ -5,9 +5,9 @@
 
 		<div class="row">
 			<div class="col-lg-3">
-				<div class="panel panel-default">
-					<div class="panel-heading">[[admin/dashboard:guest-registered-users]]</div>
-					<div class="panel-body">
+				<div class="card">
+					<div class="card-header">[[admin/dashboard:guest-registered-users]]</div>
+					<div class="card-body">
 						<div class="graph-container pie-chart legend-down">
 							<canvas id="analytics-registered"></canvas>
 							<ul class="graph-legend" id="analytics-legend">
@@ -20,9 +20,9 @@
 			</div>
 
 			<div class="col-lg-3">
-				<div class="panel panel-default">
-					<div class="panel-heading">[[admin/dashboard:user-presence]]</div>
-					<div class="panel-body">
+				<div class="card">
+					<div class="card-header">[[admin/dashboard:user-presence]]</div>
+					<div class="card-body">
 						<div class="graph-container pie-chart legend-down">
 							<canvas id="analytics-presence"></canvas>
 							<ul class="graph-legend" id="analytics-presence-legend">
@@ -37,9 +37,9 @@
 				</div>
 			</div>
 			<div class="col-lg-3">
-				<div class="panel panel-default">
-					<div class="panel-heading">[[admin/dashboard:high-presence-topics]]</div>
-					<div class="panel-body">
+				<div class="card">
+					<div class="card-header">[[admin/dashboard:high-presence-topics]]</div>
+					<div class="card-body">
 						<div class="graph-container pie-chart legend-down">
 							<canvas id="analytics-topics"></canvas>
 							<ul class="graph-legend" id="topics-legend"></ul>
@@ -48,9 +48,9 @@
 				</div>
 			</div>
 			<div class="col-lg-3">
-				<div class="panel panel-default">
-					<div class="panel-heading">[[admin/dashboard:popular-searches]]</div>
-					<div class="panel-body">
+				<div class="card">
+					<div class="card-header">[[admin/dashboard:popular-searches]]</div>
+					<div class="card-body">
 						<div class="graph-container pie-chart legend-down">
 							<ul class="graph-legend" id="popular-searches-legend">
 								{{{ each popularSearches}}}
@@ -66,28 +66,28 @@
 
 	<div class="col-lg-3">
 		{{{ if showSystemControls }}}
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/dashboard:control-panel]]</div>
-			<div class="panel-body text-center">
-				<p>
-					<button class="btn btn-block btn-warning restart"<!-- IF !canRestart --> disabled<!-- END -->>[[admin/dashboard:restart]]</button>
-					<button class="btn btn-block btn-danger rebuild-and-restart"<!-- IF !canRestart --> disabled<!-- END -->>[[admin/dashboard:rebuild-and-restart]]</button>
-				</p>
-				<!-- IF lastrestart -->
+		<div class="card mb-3">
+			<div class="card-header">[[admin/dashboard:control-panel]]</div>
+			<div class="card-body text-center">
+				<div class="d-grid gap-2 mb-2">
+					<button class="btn btn-block btn-warning restart"{{{ if !canRestart }}} disabled{{{ end }}}>[[admin/dashboard:restart]]</button>
+					<button class="btn btn-block btn-danger rebuild-and-restart"{{{ if !canRestart }}} disabled{{{ end }}}>[[admin/dashboard:rebuild-and-restart]]</button>
+				</div>
+				{{{ if lastrestart }}}
 				<p>
 					[[admin/dashboard:last-restarted-by]]<br />
-					<a href="{config.relative_path}/uid/{lastrestart.uid}"><span class="label label-info">{lastrestart.user.username}</span></a> <span class="timeago" title="{lastrestart.timestampISO}"></span>
+					<a href="{config.relative_path}/uid/{lastrestart.uid}"><span class="badge bg-info">{lastrestart.user.username}</span></a> <span class="timeago" title="{lastrestart.timestampISO}"></span>
 				</p>
-				<!-- ENDIF lastrestart -->
-				<p class="<!-- IF canRestart -->help-block<!-- ELSE -->alert alert-warning<!-- END -->">
-					<!-- IF canRestart -->
+				{{{ end }}}
+				<p class="{{{ if canRestart }}}form-text{{{ else }}}alert alert-warning{{{ end }}}">
+					{{{ if canRestart }}}
 					[[admin/dashboard:restart-warning]]
-					<!-- ELSE -->
+					{{{ else }}}
 					[[admin/dashboard:restart-disabled]]
-					<!-- END -->
+					{{{ end }}}
 				</p>
 				<p>
-					<a href="{config.relative_path}/admin/settings/advanced" class="btn btn-info btn-block" data-placement="bottom" data-toggle="tooltip" title="[[admin/dashboard:maintenance-mode-title]]">[[admin/dashboard:maintenance-mode]]</a>
+					<a href="{config.relative_path}/admin/settings/advanced" class="btn btn-info btn-block" data-bs-placement="bottom" data-bs-toggle="tooltip" title="[[admin/dashboard:maintenance-mode-title]]">[[admin/dashboard:maintenance-mode]]</a>
 				</p>
 
 				<hr />
@@ -96,36 +96,36 @@
 		</div>
 		{{{ end }}}
 
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/dashboard:active-users]]</div>
-			<div class="panel-body">
+		<div class="card mb-3">
+			<div class="card-header">[[admin/dashboard:active-users]]</div>
+			<div class="card-body">
 				<div id="active-users" class="stats"></div>
 			</div>
 		</div>
 
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/dashboard:updates]]</div>
-			<div class="panel-body">
-				<div class="alert <!-- IF lookupFailed -->alert-danger<!-- ELSE --><!-- IF upgradeAvailable -->alert-warning<!-- ELSE --><!-- IF currentPrerelease -->alert-info<!-- ELSE -->alert-success<!-- END --><!-- END --><!-- END --> version-check">
+		<div class="card mb-3">
+			<div class="card-header">[[admin/dashboard:updates]]</div>
+			<div class="card-body">
+				<div class="alert {{{ if lookupFailed }}}alert-danger{{{ else }}}{{{ if upgradeAvailable }}}alert-warning{{{ else }}}{{{ if currentPrerelease }}}alert-info{{{ else }}}alert-success{{{ end }}}{{{ end }}}{{{ end }}} version-check">
 					<p>[[admin/dashboard:running-version, {version}]]</p>
 					<p>
-					<!-- IF lookupFailed -->
+					{{{ if lookupFailed }}}
 					[[admin/dashboard:latest-lookup-failed]]
-					<!-- ELSE -->
-						<!-- IF upgradeAvailable -->
-							<!-- IF currentPrerelease -->
+					{{{ else }}}
+						{{{ if upgradeAvailable }}}
+							{{{ if currentPrerelease }}}
 							[[admin/dashboard:prerelease-upgrade-available, {latestVersion}]]
-							<!-- ELSE -->
+							{{{ else }}}
 							[[admin/dashboard:upgrade-available, {latestVersion}]]
-							<!-- END -->
-						<!-- ELSE -->
-							<!-- IF currentPrerelease -->
+							{{{ end }}}
+						{{{ else }}}
+							{{{ if currentPrerelease }}}
 							[[admin/dashboard:prerelease-warning]]
-							<!-- ELSE -->
+							{{{ else }}}
 							[[admin/dashboard:up-to-date]]
-							<!-- END -->
-						<!-- END -->
-					<!-- END -->
+							{{{ end }}}
+						{{{ end }}}
+					{{{ end }}}
 					</p>
 				</div>
 				<p>
@@ -134,20 +134,20 @@
 			</div>
 		</div>
 
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/dashboard:notices]]</div>
-			<div class="panel-body">
-			<!-- BEGIN notices -->
+		<div class="card">
+			<div class="card-header">[[admin/dashboard:notices]]</div>
+			<div class="card-body">
+			{{{ each notices}}}
 				<div>
-					<!-- IF notices.done -->
-					<i class="fa fa-fw fa-check text-success"></i> {notices.doneText}
-					<!-- ELSE -->
-					<!-- IF notices.link --><a href="{config.relative_path}{notices.link}" data-toggle="tooltip" title="{notices.tooltip}"><!-- ENDIF notices.link -->
-					<i class="fa fa-fw fa-times text-danger"></i> {notices.notDoneText}
-					<!-- IF notices.link --></a><!-- ENDIF notices.link -->
-					<!-- ENDIF notices.done -->
+					{{{ if ./done }}}
+					<i class="fa fa-fw fa-check text-success"></i> {./doneText}
+					{{{ else }}}
+					{{{ if ./link }}}<a href="{config.relative_path}{./link}" data-bs-toggle="tooltip" title="{./tooltip}">{{{ end }}}
+					<i class="fa fa-fw fa-times text-danger"></i> {./notDoneText}
+					{{{ if ./link }}}</a>{{{ end }}}
+					{{{ end }}}
 				</div>
-			<!-- END notices -->
+			{{{ end }}}
 			</div>
 		</div>
 	</div>
diff --git a/src/views/admin/dashboard/logins.tpl b/src/views/admin/dashboard/logins.tpl
index 9f3be1d1d6..5f135991f6 100644
--- a/src/views/admin/dashboard/logins.tpl
+++ b/src/views/admin/dashboard/logins.tpl
@@ -1,6 +1,6 @@
 <div class="row dashboard">
-	<div class="col-xs-12">
-		<a class="btn btn-link" href="{config.relative_path}/admin/dashboard">
+	<div class="col-12">
+		<a class="btn btn-primary mb-3" href="{config.relative_path}/admin/dashboard">
 			<i class="fa fa-chevron-left"></i>
 			[[admin/dashboard:back-to-dashboard]]
 		</a>
diff --git a/src/views/admin/dashboard/searches.tpl b/src/views/admin/dashboard/searches.tpl
index baefcea306..7dbce7080e 100644
--- a/src/views/admin/dashboard/searches.tpl
+++ b/src/views/admin/dashboard/searches.tpl
@@ -1,12 +1,30 @@
 <div class="row dashboard">
-	<div class="col-xs-12">
-		<a class="btn btn-link" href="{config.relative_path}/admin/dashboard">
-			<i class="fa fa-chevron-left"></i>
-			[[admin/dashboard:back-to-dashboard]]
-		</a>
+	<div class="col-12">
+		<div class="d-flex gap-2 mb-3">
+			<a class="btn btn-primary me-auto align-items-center" href="{config.relative_path}/admin/dashboard">
+				<i class="fa fa-chevron-left"></i>
+				[[admin/dashboard:back-to-dashboard]]
+			</a>
+			<form class="row row-cols-lg-auto g-3 align-items-center" method="GET">
+				<div class="col-12 d-flex align-items-center gap-2">
+					<label class="form-label mb-0" for="start">[[admin/dashboard:start]]</label>
+					<input type="date" class="form-control" id="start" name="start" value="{startDate}">
+				</div>
+				<div class="col-12 d-flex align-items-center gap-2">
+					<label class="form-label mb-0" for="end">[[admin/dashboard:end]]</label>
+					<input type="date" class="form-control" id="end" name="end" value="{endDate}">
+				</div>
+				<div class="col-12">
+					<button onclick="$('form').submit();return false;"class="btn btn-primary" type="submit">Filter</button>
+				</div>
+			</form>
+		</div>
 
-
-		<table class="table table-striped search-list">
+		<table class="table table-sm table-striped search-list">
+			<thead>
+				<th class="text-end">Count</th>
+				<th>Term</th>
+			</thead>
 			<tbody>
 				{{{ if !searches.length}}}
 				<tr>
@@ -15,8 +33,8 @@
 				{{{ end }}}
 				{{{ each searches }}}
 				<tr>
+					<td class="text-end" style="width: 1px;">{searches.score}</td>
 					<td>{searches.value}</a></td>
-					<td class="text-right">{searches.score}</td>
 				</tr>
 				{{{ end }}}
 			</tbody>
diff --git a/src/views/admin/dashboard/topics.tpl b/src/views/admin/dashboard/topics.tpl
index 6c0951e654..aee31ff56f 100644
--- a/src/views/admin/dashboard/topics.tpl
+++ b/src/views/admin/dashboard/topics.tpl
@@ -1,6 +1,6 @@
 <div class="row dashboard">
-	<div class="col-xs-12">
-		<a class="btn btn-link" href="{config.relative_path}/admin/dashboard">
+	<div class="col-12">
+		<a class="btn btn-primary mb-3" href="{config.relative_path}/admin/dashboard">
 			<i class="fa fa-chevron-left"></i>
 			[[admin/dashboard:back-to-dashboard]]
 		</a>
diff --git a/src/views/admin/dashboard/users.tpl b/src/views/admin/dashboard/users.tpl
index 7c6e249b49..2cb3cac6a8 100644
--- a/src/views/admin/dashboard/users.tpl
+++ b/src/views/admin/dashboard/users.tpl
@@ -1,6 +1,6 @@
 <div class="dashboard">
-	<div class="col-xs-12">
-		<a class="btn btn-link" href="{config.relative_path}/admin/dashboard">
+	<div class="col-12">
+		<a class="btn btn-primary mb-3" href="{config.relative_path}/admin/dashboard">
 			<i class="fa fa-chevron-left"></i>
 			[[admin/dashboard:back-to-dashboard]]
 		</a>
diff --git a/src/views/admin/development/info.tpl b/src/views/admin/development/info.tpl
index bb113ab0d9..4b4c97f878 100644
--- a/src/views/admin/development/info.tpl
+++ b/src/views/admin/development/info.tpl
@@ -1,10 +1,10 @@
 <div class="info">
-	<div class="panel panel-default">
-		<div class="panel-heading">
-			<h3 class="panel-title">[[admin/development/info:you-are-on, {host}, {port}]] &bull; [[admin/development/info:ip, {ip}]]</h3>
-		</div>
+	<div class="card">
+		<h5 class="card-header">
+			[[admin/development/info:you-are-on, {host}, {port}]] &bull; [[admin/development/info:ip, {ip}]]
+		</h5>
 
-		<div class="panel-body">
+		<div class="card-body">
 			<span>[[admin/development/info:nodes-responded, {nodeCount}, {timeout}]]</span>
 
 			<table class="table table-striped">
@@ -24,7 +24,7 @@
 					</tr>
 				</thead>
 				<tbody>
-				<!-- BEGIN info -->
+				{{{ each info }}}
 				<tr>
 					<td>{info.os.hostname}:{info.process.port}</td>
 					<td class="text-center">
@@ -50,20 +50,19 @@
 					<td>{info.os.load}</td>
 					<td>{info.process.uptimeHumanReadable}</td>
 				</tr>
-				<!-- END info -->
+				{{{ end }}}
 				</tbody>
 			</table>
 			</div>
 		</div>
 	</div>
 
-	<div class="panel panel-default">
-		<div class="panel-heading">
-			<h3 class="panel-title">[[admin/development/info:info]]</h3>
-		</div>
-
-		<div class="panel-body">
-			<div class="highlight">
+	<div class="card">
+		<h5 class="card-header">
+			[[admin/development/info:info]]
+		</h5>
+		<div class="card-body">
+			<div class="p-3 text-bg-light border border-secondary rounded">
 				<pre>{infoJSON}</pre>
 			</div>
 		</div>
diff --git a/src/views/admin/development/logger.tpl b/src/views/admin/development/logger.tpl
index 04e2004154..b5f6d658a4 100644
--- a/src/views/admin/development/logger.tpl
+++ b/src/views/admin/development/logger.tpl
@@ -1,9 +1,9 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 <div class="row logger">
 	<div class="col-lg-12">
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/development/logger:logger-settings]]</div>
-			<div class="panel-body">
+		<div class="card">
+			<div class="card-header">[[admin/development/logger:logger-settings]]</div>
+			<div class="card-body">
 				<p>
 					[[admin/development/logger:description]]
 				</p>
@@ -14,7 +14,6 @@
 				<br/>
 
 				<form>
-
 					<label>
 						<input type="checkbox" data-field="loggerStatus"> <strong>[[admin/development/logger:enable-http]]</strong>
 					</label>
diff --git a/src/views/admin/extend/plugins.tpl b/src/views/admin/extend/plugins.tpl
index 57a871ec3a..c93c22fbac 100644
--- a/src/views/admin/extend/plugins.tpl
+++ b/src/views/admin/extend/plugins.tpl
@@ -1,81 +1,44 @@
 {{{ if !canChangeState }}}
 <div class="alert alert-warning">[[error:plugins-set-in-configuration]]</div>
 {{{ end }}}
-<ul class="nav nav-pills">
-	<li>
-		<a href="#trending" data-toggle="tab">
+<ul class="nav nav-pills mb-3">
+	<li class="nav-item">
+		<button class="nav-link" data-bs-target="#trending" data-bs-toggle="tab">
 			[[admin/extend/plugins:trending]]
 			<i class="fa fa-star"></i>
-		</a>
+		</button>
 	</li>
-	<li class="active">
-		<a href="#installed" data-toggle="tab">
+	<li class="nav-item">
+		<button class="nav-link active" data-bs-target="#installed" data-bs-toggle="tab">
 			[[admin/extend/plugins:installed]]
-			<span class="badge">{installedCount}</span>
-		</a>
+			<span class="badge bg-light">{installedCount}</span>
+		</button>
 	</li>
-	<li>
-		<a href="#active" data-toggle="tab">
+	<li class="nav-item">
+		<button class="nav-link" data-bs-target="#active" data-bs-toggle="tab">
 			[[admin/extend/plugins:active]]
-			<span class="badge">{activeCount}</span>
-		</a>
+			<span class="badge bg-light">{activeCount}</span>
+		</button>
 	</li>
-	<li>
-		<a href="#deactive" data-toggle="tab">
+	<li class="nav-item">
+		<button class="nav-link" data-bs-target="#deactive" data-bs-toggle="tab">
 			[[admin/extend/plugins:inactive]]
-			<span class="badge">{inactiveCount}</span>
-		</a>
+			<span class="badge bg-light">{inactiveCount}</span>
+		</button>
 	</li>
-	<li>
-		<a href="#upgrade" data-toggle="tab">
+	<li class="nav-item">
+		<button class="nav-link" data-bs-target="#upgrade" data-bs-toggle="tab">
 			[[admin/extend/plugins:out-of-date]]
-			<span class="badge">{upgradeCount}</span>
-		</a>
+			<span class="badge bg-light">{upgradeCount}</span>
+		</button>
 	</li>
-	<li>
-		<a href="#download" data-toggle="tab">[[admin/extend/plugins:find-plugins]]</a>
+	<li class="nav-item">
+		<button class="nav-link" data-bs-target="#download" data-bs-toggle="tab">[[admin/extend/plugins:find-plugins]]</button>
 	</li>
 </ul>
-<br />
 
 <div class="plugins row">
-	<div class="acp-sidebar col-lg-3 col-lg-push-9">
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/extend/plugins:plugin-search]]</div>
-			<div class="panel-body">
-				<input autofocus class="form-control" type="text" id="plugin-search" placeholder="[[admin/extend/plugins:plugin-search-placeholder]]"/><br/>
-			</div>
-		</div>
-
-		<div class="panel panel-default">
-			<div class="panel-body">
-				<div class="checkbox">
-					<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-						<input id="plugin-submit-usage" class="mdl-switch__input" type="checkbox" data-field="submitPluginUsage" <!-- IF submitPluginUsage -->checked<!-- ENDIF submitPluginUsage -->/>
-						<span class="mdl-switch__label">[[admin/extend/plugins:submit-anonymous-usage]]</span>
-					</label>
-				</div>
-			</div>
-		</div>
-
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/extend/plugins:reorder-plugins]]</div>
-			<div class="panel-body">
-				<button class="btn btn-default btn-block" id="plugin-order"><i class="fa fa-exchange"></i> [[admin/extend/plugins:order-active]]</button>
-			</div>
-		</div>
-
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/extend/plugins:dev-interested]]</div>
-			<div class="panel-body">
-				<p>
-					[[admin/extend/plugins:docs-info]]
-				</p>
-			</div>
-		</div>
-	</div>
-
-	<div class="col-lg-9 col-lg-pull-3">
+	<div class="col-lg-9">
 		<div class="tab-content">
 			<div class="tab-pane fade" id="trending">
 				<!-- IMPORT admin/partials/plugins/no-plugins.tpl -->
@@ -85,12 +48,12 @@
 					{{{ end }}}
 				</ul>
 			</div>
-			<div class="tab-pane fade active in" id="installed">
+			<div class="tab-pane fade show active" id="installed">
 				<!-- IMPORT admin/partials/plugins/no-plugins.tpl -->
 				<ul class="installed">
-					<!-- BEGIN installed -->
+					{{{ each installed }}}
 					<!-- IMPORT admin/partials/installed_plugin_item.tpl -->
-					<!-- END installed -->
+					{{{ end }}}
 				</ul>
 			</div>
 			<div class="tab-pane fade" id="active">
@@ -108,20 +71,54 @@
 			<div class="tab-pane fade" id="download">
 				<!-- IMPORT admin/partials/plugins/no-plugins.tpl -->
 				<ul class="download">
-					<!-- BEGIN download -->
+					{{{ each download }}}
 					<!-- IMPORT admin/partials/download_plugin_item.tpl -->
-					<!-- END download -->
+					{{{ end }}}
 				</ul>
 			</div>
 		</div>
 	</div>
 
+	<div class="acp-sidebar col-lg-3">
+		<div class="card">
+			<div class="card-header">[[admin/extend/plugins:plugin-search]]</div>
+			<div class="card-body">
+				<input autofocus class="form-control" type="text" id="plugin-search" placeholder="[[admin/extend/plugins:plugin-search-placeholder]]"/><br/>
+			</div>
+		</div>
+
+		<div class="card">
+			<div class="card-body">
+				<div class="form-check">
+					<input id="plugin-submit-usage" class="form-check-input" type="checkbox" data-field="submitPluginUsage" {{{ if submitPluginUsage }}}checked{{{ end }}}/>
+					<label for="plugin-submit-usage" class="form-check-label">[[admin/extend/plugins:submit-anonymous-usage]]</label>
+				</div>
+			</div>
+		</div>
+
+		<div class="card">
+			<div class="card-header">[[admin/extend/plugins:reorder-plugins]]</div>
+			<div class="card-body d-grid">
+				<button class="btn btn-outline-secondary" id="plugin-order">[[admin/extend/plugins:order-active]]</button>
+			</div>
+		</div>
+
+		<div class="card">
+			<div class="card-header">[[admin/extend/plugins:dev-interested]]</div>
+			<div class="card-body">
+				<p>
+					[[admin/extend/plugins:docs-info]]
+				</p>
+			</div>
+		</div>
+	</div>
+
 	<div class="modal fade" id="order-active-plugins-modal">
 		<div class="modal-dialog">
 			<div class="modal-content">
 				<div class="modal-header">
-					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
 					<h4 class="modal-title">[[admin/extend/plugins:order-active]]</h4>
+					<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
 				</div>
 				<div class="modal-body">
 					<p>
@@ -133,14 +130,12 @@
 					<ul class="plugin-list"></ul>
 				</div>
 				<div class="modal-footer">
-					<button type="button" class="btn btn-default" data-dismiss="modal">[[global:buttons.close]]</button>
+					<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">[[global:buttons.close]]</button>
 					<button type="button" class="btn btn-primary" id="save-plugin-order">[[global:save]]</button>
 				</div>
 			</div>
 		</div>
 	</div>
-
-
 </div>
 
 
diff --git a/src/views/admin/extend/rewards.tpl b/src/views/admin/extend/rewards.tpl
index e53b639b2d..c8100f798d 100644
--- a/src/views/admin/extend/rewards.tpl
+++ b/src/views/admin/extend/rewards.tpl
@@ -4,65 +4,65 @@
 		{{{ each active }}}
 		<li data-rid="{active.rid}" data-id="{active.id}">
 			<div class="row">
-				<div class="col-xs-12 col-sm-12 col-lg-8">
-					<form class="main inline-block">
-						<div class="well inline-block if-block">
-							<label for="condition-if-users">[[admin/extend/rewards:condition-if-users]]</label><br />
-							<select id="condition-if-users" class="form-control" name="condition" data-selected="{active.condition}">
+				<div class="col-12 col-lg-8">
+					<form class="main d-inline-block">
+						<div class="card card-body d-inline-block if-block">
+							<label class="form-label" for="condition-if-users">[[admin/extend/rewards:condition-if-users]]</label>
+							<select id="condition-if-users" class="form-select" name="condition" data-selected="{active.condition}">
 								{{{ each conditions }}}
 								<option value="{conditions.condition}">{conditions.name}</option>
 								{{{ end }}}
 							</select>
 						</div>
-						<div class="well inline-block this-block">
-							<label for="condition-is">[[admin/extend/rewards:condition-is]]</label><br />
+						<div class="card card-body d-inline-block this-block">
+							<label class="form-label" for="condition-is">[[admin/extend/rewards:condition-is]]</label>
 							<div class="row">
-								<div class="col-xs-4">
-									<select id="condition-is" class="form-control" name="conditional" data-selected="{active.conditional}">
+								<div class="col-4">
+									<select id="condition-is" class="form-select" name="conditional" data-selected="{active.conditional}">
 										{{{ each  conditionals }}}
 										<option value="{conditionals.conditional}">{conditionals.name}</option>
 										{{{ end }}}
 									</select>
 								</div>
-								<div class="col-xs-8">
+								<div class="col-8">
 									<input class="form-control" type="text" name="value" value="{active.value}" />
 								</div>
 							</div>
 						</div>
-						<div class="well inline-block then-block">
-							<label for="condition-then">[[admin/extend/rewards:condition-then]]</label><br />
-							<select id="condition-then" class="form-control" name="rid" data-selected="{active.rid}">
-								<!-- BEGIN ../../rewards -->
+						<div class="card card-body d-inline-block then-block">
+							<label class="form-label" for="condition-then">[[admin/extend/rewards:condition-then]]</label>
+							<select id="condition-then" class="form-select" name="rid" data-selected="{active.rid}">
+								{{{ each ../../rewards }}}
 								<option value="{rewards.rid}">{rewards.name}</option>
-								<!-- END ../../rewards -->
+								{{{ end }}}
 							</select>
 						</div>
 					</form>
 				</div>
-				<div class="col-xs-12 col-sm-12 col-lg-4">
-					<form class="rewards inline-block">
-						<div class="inputs well inline-block reward-block"></div>
+				<div class="col-12 col-lg-4">
+					<form class="rewards d-inline-block">
+						<div class="inputs card card-body d-inline-block reward-block"></div>
 					</form>
 				</div>
 			</div>
 
-			<div class="pull-left">
-				<div class="panel-body inline-block">
+			<div class="float-start">
+				<div class="card-body d-inline-block">
 					<form class="main">
-						<label for="claimable">[[admin/extend/rewards:max-claims]] <small>[[admin/extend/rewards:zero-infinite]]</small></label><br />
+						<label class="form-label" for="claimable">[[admin/extend/rewards:max-claims]] <small>[[admin/extend/rewards:zero-infinite]]</small></label>
 						<input id="claimable" class="form-control" type="text" name="claimable" value="{active.claimable}" placeholder="1" />
 					</form>
 				</div>
 			</div>
 
-			<div class="pull-right">
-				<div class="panel-body inline-block">
+			<div class="float-end">
+				<div class="card-body d-inline-block">
 					<button class="btn btn-danger delete">[[admin/extend/rewards:delete]]</button>
-					<!-- IF active.disabled -->
+					{{{ if active.disabled }}}
 					<button class="btn btn-success toggle">[[admin/extend/rewards:enable]]</button>
-					<!-- ELSE -->
+					{{{ else }}}
 					<button class="btn btn-warning toggle">[[admin/extend/rewards:disable]]</button>
-					<!-- ENDIF active.disabled -->
+					{{{ end }}}
 				</div>
 			</div>
 			<div class="clearfix"></div>
@@ -72,11 +72,9 @@
 </div>
 
 <div class="floating-button">
-	<button id="new" class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored" >
-		<i class="material-icons">add</i>
+	<button id="new" class="btn btn-primary position-fixed end-0 px-3 py-2 mb-4 me-4 rounded-circle fs-4" type="button" style="width: 64px; height: 64px;">
+		<i class="fa fa-fw fa-plus"></i>
 	</button>
 
-	<button id="save" class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored primary">
-		<i class="material-icons">save</i>
-	</button>
+	<!-- IMPORT admin/partials/save_button.tpl -->
 </div>
\ No newline at end of file
diff --git a/src/views/admin/extend/widgets.tpl b/src/views/admin/extend/widgets.tpl
index 35555e847d..e25b4e3d93 100644
--- a/src/views/admin/extend/widgets.tpl
+++ b/src/views/admin/extend/widgets.tpl
@@ -1,28 +1,25 @@
 <div id="widgets" class="row">
 	<div class="col-md-8" id="active-widgets">
-		<ul class="nav nav-pills">
-
-			<li role="presentation" class="dropdown">
-				<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
-				<span class="selected-template">{templates.0.template}</span> <span class="caret"></span>
-				</a>
-				<ul class="dropdown-menu">
-					{{{ each templates }}}
-					<li><a href="#" data-template="{../template}" data-toggle="pill">{../template}</a></li>
-					{{{ end }}}
-				</ul>
-			</li>
-		</ul>
+		<div class="dropdown mb-3">
+			<button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
+			<span class="selected-template">{templates.0.template}</span> <span class="caret"></span>
+			</button>
+			<ul class="dropdown-menu">
+				{{{ each templates }}}
+				<li><a class="dropdown-item" href="#" data-template="{./template}" data-toggle="pill">{./template}</a></li>
+				{{{ end }}}
+			</ul>
+		</div>
 
 		<div class="row">
-			<div class="col-xs-12">
+			<div class="col-12">
 				<div class="tab-content">
 				{{{ each templates }}}
-					<div class="tab-pane <!-- IF @first -->active<!-- ENDIF @first -->" data-template="{../template}">
+					<div class="tab-pane {{{ if @first }}}active{{{ end }}}" data-template="{./template}">
 					{{{ each templates.areas }}}
-						<div class="area" data-template="{templates.template}" data-location="{../location}">
-							<h4>{../name} <small>{templates.template} / {../location}</small></h4>
-							<div class="well widget-area">
+						<div class="area" data-template="{templates.template}" data-location="{./location}">
+							<h4>{./name} <small>{templates.template} / {./location}</small></h4>
+							<div class="card card-body text-bg-light widget-area">
 
 							</div>
 						</div>
@@ -35,99 +32,100 @@
 	</div>
 
 	<div class="col-md-4">
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/extend/widgets:available]]</div>
-			<div class="panel-body">
+		<div class="card mb-3">
+			<div class="card-header">[[admin/extend/widgets:available]]</div>
+			<div class="card-body">
 				<div class="available-widgets">
 					<p>[[admin/extend/widgets:explanation]]</p>
-					<!-- IF !availableWidgets.length -->
+					{{{ if !availableWidgets.length }}}
 					<div class="alert alert-info">[[admin/extend/widgets:none-installed, {config.relative_path}/admin/extend/plugins]]</div>
-					<!-- ENDIF !availableWidgets.length -->
+					{{{ end }}}
 					<p>
 						<select id="widget-selector" class="form-control">
-							<!-- BEGIN availableWidgets -->
-							<option value="{availableWidgets.widget}">{availableWidgets.name}</option>
-							<!-- END availableWidgets -->
+							{{{ each availableWidgets }}}
+							<option value="{./widget}">{./name}</option>
+							{{{ end }}}
 						</select>
 					</p>
 					<div class="row">
-						<!-- BEGIN availableWidgets -->
-						<div class="col-xs-12">
-							<div data-widget="{availableWidgets.widget}" class="panel widget-panel panel-default pointer hide">
-								<div class="panel-heading">
-									<strong>{availableWidgets.name}</strong>
-									<small><br />{availableWidgets.description}</small>
+						{{{ each availableWidgets }}}
+						<div class="col-12">
+							<div data-widget="{./widget}" class="card widget-panel  pointer hide">
+								<div class="card-header">
+									<strong>{./name}</strong>
+									<small><br />{./description}</small>
 								</div>
-								<div class="panel-body hidden">
+								<div class="card-body hidden">
 									<form>
-										{availableWidgets.content}
+										{./content}
 									</form>
 								</div>
 							</div>
 						</div>
-						<!-- END availableWidgets -->
+						{{{ end }}}
 					</div>
 
 					<div class="btn-group" component="clone">
 						<button type="button" class="btn btn-primary" component="clone/button">[[admin/extend/widgets:clone-from]] ...</button>
-						<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
+						<button type="button" class="btn btn-primary dropdown-toggle" data-bs-toggle="dropdown">
 							<span class="caret"></span>
 						</button>
-						<ul class="dropdown-menu pull-right">
-							<!-- BEGIN templates -->
-							<!-- IF !@first -->
-							<li><a href="#">{templates.template}</a></li>
-							<!-- END -->
-							<!-- END templates -->
+						<ul class="dropdown-menu dropdown-menu-end">
+							{{{ each templates }}}
+							{{{ if !@first }}}
+							<li><a class="dropdown-item" href="#">{./template}</a></li>
+							{{{ end }}}
+							{{{ end }}}
 						</ul>
 					</div>
 				</div>
 			</div>
 		</div>
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/extend/widgets:containers.available]]</div>
-			<div class="panel-body">
+
+		<div class="card">
+			<div class="card-header">[[admin/extend/widgets:containers.available]]</div>
+			<div class="card-body">
 				<p>[[admin/extend/widgets:containers.explanation]]</p>
 				<div class="available-containers">
 					<div class="containers">
 						<div class="pointer" style="padding: 20px; border: 1px dotted #dedede; margin-bottom: 20px;" data-container-html=" ">
 							[[admin/extend/widgets:containers.none]]
 						</div>
-						<div class="well pointer" data-container-html='<div class="well">\{{body}}</div>'>
+						<div class="card card-header p-3 rounded-0 border-0 shadow-none mb-3 pointer" data-container-html='<div class="card card-header p-3 rounded-0 border-0 shadow-none mb-3">\{{body}}</div>'>
 							[[admin/extend/widgets:container.well]]
 						</div>
-						<div class="jumbotron pointer" data-container-html='<div class="jumbotron">\{{body}}</div>'>
+						<div class="card card-header rounded-0 border-0 shadow-none p-5 mb-3 pointer" data-container-html='<div class="card card-header rounded-0 border-0 shadow-none p-5 mb-3">\{{body}}</div>'>
 							[[admin/extend/widgets:container.jumbotron]]
 						</div>
-						<div class="panel" data-container-html='<div class="panel panel-default"><div class="panel-body">\{{body}}</div></div>'>
-							<div class="panel-body pointer">
-								[[admin/extend/widgets:container.panel]]
+						<div class="card mb-3" data-container-html='<div class="card"><div class="card-body">\{{body}}</div></div>'>
+							<div class="card-body pointer">
+								[[admin/extend/widgets:container.card]]
 							</div>
 						</div>
-						<div class="panel panel-default pointer" data-container-html='<div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title">\{{title}}</h3></div><div class="panel-body">\{{body}}</div></div>'>
-							<div class="panel-heading">
-								[[admin/extend/widgets:container.panel-header]]
-								<div class="pull-right color-selector">
-									<button data-class="panel-default" class="btn btn-xs">&nbsp;&nbsp;</button>
-									<button data-class="panel-primary" class="btn btn-xs btn-primary">&nbsp;&nbsp;</button>
-									<button data-class="panel-success" class="btn btn-xs btn-success">&nbsp;&nbsp;</button>
-									<button data-class="panel-info" class="btn btn-xs btn-info">&nbsp;&nbsp;</button>
-									<button data-class="panel-warning" class="btn btn-xs btn-warning">&nbsp;&nbsp;</button>
-									<button data-class="panel-danger" class="btn btn-xs btn-danger">&nbsp;&nbsp;</button>
+						<div class="card mb-3 pointer" data-container-html='<div class="card"><h5 class="card-header">\{{title}}</h5><div class="card-body">\{{body}}</div></div>'>
+							<div class="card-header">
+								[[admin/extend/widgets:container.card-header]]
+								<div class="float-end color-selector">
+									<button data-class="text-bg-primary" class="btn btn-sm btn-primary">&nbsp;&nbsp;</button>
+									<button data-class="" class="btn btn-sm btn-secondary">&nbsp;&nbsp;</button>
+									<button data-class="text-bg-success" class="btn btn-sm btn-success">&nbsp;&nbsp;</button>
+									<button data-class="text-bg-info" class="btn btn-sm btn-info">&nbsp;&nbsp;</button>
+									<button data-class="text-bg-warning" class="btn btn-sm btn-warning">&nbsp;&nbsp;</button>
+									<button data-class="text-bg-danger" class="btn btn-sm btn-danger">&nbsp;&nbsp;</button>
 								</div>
 							</div>
-							<div class="panel-body">
-								[[admin/extend/widgets:container.panel-body]]
+							<div class="card-body">
+								[[admin/extend/widgets:container.card-body]]
 							</div>
 						</div>
 
 						<div class="alert alert-info pointer" data-container-html='<div class="alert alert-info">\{{body}}</div>'>
 							[[admin/extend/widgets:container.alert]]
-							<div class="pull-right color-selector">
-								<button data-class="alert-success" class="btn btn-xs btn-success">&nbsp;&nbsp;</button>
-								<button data-class="alert-info" class="btn btn-xs btn-info">&nbsp;&nbsp;</button>
-								<button data-class="alert-warning" class="btn btn-xs btn-warning">&nbsp;&nbsp;</button>
-								<button data-class="alert-danger" class="btn btn-xs btn-danger">&nbsp;&nbsp;</button>
+							<div class="float-end color-selector">
+								<button data-class="alert-success" class="btn btn-sm btn-success">&nbsp;&nbsp;</button>
+								<button data-class="alert-info" class="btn btn-sm btn-info">&nbsp;&nbsp;</button>
+								<button data-class="alert-warning" class="btn btn-sm btn-warning">&nbsp;&nbsp;</button>
+								<button data-class="alert-danger" class="btn btn-sm btn-danger">&nbsp;&nbsp;</button>
 							</div>
 						</div>
 					</div>
@@ -137,6 +135,4 @@
 	</div>
 </div>
 
-<button id="save" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-	<i class="material-icons">save</i>
-</button>
\ No newline at end of file
+<!-- IMPORT admin/partials/save_button.tpl -->
\ No newline at end of file
diff --git a/src/views/admin/header.tpl b/src/views/admin/header.tpl
index 3ed52226fa..ef1354cd08 100644
--- a/src/views/admin/header.tpl
+++ b/src/views/admin/header.tpl
@@ -6,7 +6,6 @@
 		{{{each metaTags}}}{function.buildMetaTag}{{{end}}}
 		{{{each linkTags}}}{function.buildLinkTag}{{{end}}}
 		<link rel="stylesheet" type="text/css" href="{relative_path}/assets/admin.css?{cache-buster}" />
-		<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
 
 		<script>
 			var config = JSON.parse('{{configJSON}}');
@@ -20,9 +19,9 @@
 
 		<script type="text/javascript" src="{relative_path}/assets/admin.min.js?{cache-buster}"></script>
 
-		<!-- BEGIN scripts -->
-		<script type="text/javascript" src="{scripts.src}"></script>
-		<!-- END scripts -->
+		{{{ each scripts }}}
+		<script type="text/javascript" src="{./src}"></script>
+		{{{ end }}}
 	</head>
 
 	<body class="admin {bodyClass}">
diff --git a/src/views/admin/manage/admins-mods.tpl b/src/views/admin/manage/admins-mods.tpl
index cec7b0d22d..c3d386e238 100644
--- a/src/views/admin/manage/admins-mods.tpl
+++ b/src/views/admin/manage/admins-mods.tpl
@@ -1,77 +1,68 @@
 <div class="admins-mods">
-	<h4><!-- IF admins.icon --><i class="fa {admins.icon}"></i> <!-- ENDIF admins.icon -->[[admin/manage/admins-mods:administrators]]</h4>
-	<div class="administrator-area">
-	<!-- BEGIN admins.members -->
-		<div class="user-card pull-left" data-uid="{admins.members.uid}">
-			<!-- IF admins.members.picture -->
-			<img class="avatar avatar-sm" src="{admins.members.picture}" alt="" />
-			<!-- ELSE -->
-			<div class="avatar avatar-sm" style="background-color: {admins.members.icon:bgColor};">{admins.members.icon:text}</div>
-			<!-- ENDIF admins.members.picture -->
-			<a href="{config.relative_path}/user/{admins.members.userslug}">{admins.members.username}</a>
-			<i class="remove-user-icon fa fa-times" role="button"></i>
+	<div class="mb-5">
+		<h4>{{{ if admins.icon }}}<i class="fa {admins.icon}"></i> {{{ end }}}[[admin/manage/admins-mods:administrators]]</h4>
+		<div class="administrator-area">
+		{{{ each admins.members }}}
+			<div class="badge text-bg-light m-1 p-1 float-start" data-uid="{admins.members.uid}">
+				{buildAvatar(admins.members, "24px", true)}
+				<a href="{config.relative_path}/user/{admins.members.userslug}">{admins.members.username}</a>
+				<i class="mx-1 remove-user-icon fa fa-times" role="button"></i>
+			</div>
+		{{{ end }}}
 		</div>
-	<!-- END admins.members -->
+		<input id="admin-search" class="form-control" placeholder="[[admin/manage/admins-mods:add-administrator]]" />
 	</div>
-	<input id="admin-search" class="form-control" placeholder="[[admin/manage/admins-mods:add-administrator]]" />
-
-	<br/>
 
-	<h4><!-- IF globalMods.icon --><i class="fa {globalMods.icon}"></i> <!-- ENDIF globalMods.icon -->[[admin/manage/admins-mods:global-moderators]]</h4>
-	<div class="global-moderator-area">
-	<!-- BEGIN globalMods.members -->
-		<div class="user-card pull-left" data-uid="{globalMods.members.uid}">
-			<!-- IF globalMods.members.picture -->
-			<img class="avatar avatar-sm" src="{globalMods.members.picture}" alt="" />
-			<!-- ELSE -->
-			<div class="avatar avatar-sm" style="background-color: {globalMods.members.icon:bgColor};">{globalMods.members.icon:text}</div>
-			<!-- ENDIF globalMods.members.picture -->
-			<a href="{config.relative_path}/user/{globalMods.members.userslug}">{globalMods.members.username}</a>
-			<i class="remove-user-icon fa fa-times" role="button"></i>
+	<div class="mb-5">
+		<h4>{{{ if globalMods.icon }}}<i class="fa {globalMods.icon}"></i> {{{ end }}}[[admin/manage/admins-mods:global-moderators]]</h4>
+		<div class="global-moderator-area">
+		{{{ each globalMods.members }}}
+			<div class="badge text-bg-light  m-1 p-1 float-start" data-uid="{globalMods.members.uid}">
+				{buildAvatar(globalMods.members, "24px", true)}
+				<a href="{config.relative_path}/user/{globalMods.members.userslug}">{globalMods.members.username}</a>
+				<i class="mx-1 remove-user-icon fa fa-times" role="button"></i>
+			</div>
+		{{{ end }}}
 		</div>
-	<!-- END globalMods.members -->
-	</div>
 
-	<div id="no-global-mods-warning" class="<!-- IF globalMods.members.length -->hidden<!-- ENDIF globalMods.members.length -->">[[admin/manage/admins-mods:no-global-moderators]]</div>
+		<div id="no-global-mods-warning" class="alert alert-info {{{ if globalMods.members.length }}}hidden{{{ end }}}">[[admin/manage/admins-mods:no-global-moderators]]</div>
 
-	<input id="global-mod-search" class="form-control" placeholder="[[admin/manage/admins-mods:add-global-moderator]]" />
-
-	<br/>
-
-	<h4 id="moderators-title">[[admin/manage/admins-mods:moderators]]</h4>
-
-	<!-- IMPORT partials/breadcrumbs.tpl -->
+		<input id="global-mod-search" class="form-control" placeholder="[[admin/manage/admins-mods:add-global-moderator]]" />
+	</div>
 
-	<!-- IMPORT partials/category-selector.tpl -->
+	<div>
+		<h4 id="moderators-title">[[admin/manage/admins-mods:moderators]]</h4>
 
-	{{{ if !categoryMods.length }}}
-	<div><p class="well">[[admin/manage/admins-mods:no-sub-categories]]</p></div>
-	{{{ end }}}
+		<!-- IMPORT partials/breadcrumbs.tpl -->
+		<div class="mb-3">
+		<!-- IMPORT admin/partials/category/selector-dropdown-left.tpl -->
+		</div>
+		{{{ if !categoryMods.length }}}
+		<div><p class="alert alert-info">[[admin/manage/admins-mods:no-sub-categories]]</p></div>
+		{{{ end }}}
 
-	{{{ each categoryMods }}}
-	<div class="categories category-wrapper category-depth-{categoryMods.depth}">
-	<h4>{{{ if categoryMods.icon }}}<i class="fa {categoryMods.icon}"></i> {{{ end }}}{categoryMods.name} {{{ if categoryMods.subCategoryCount }}}<small><a href="{config.relative_path}/admin/manage/admins-mods?cid={categoryMods.cid}#moderators-title">[[admin/manage/admins-mods:subcategories, {categoryMods.subCategoryCount}]]</a></small>{{{ else }}}{{{ end }}}{{{if categoryMods.disabled}}}<span class="badge badge-primary">[[admin/manage/admins-mods:disabled]]</span>{{{end}}}</h4>
-	<div class="moderator-area" data-cid="{categoryMods.cid}">
-		{{{ each categoryMods.moderators }}}
-			<div class="user-card pull-left" data-uid="{categoryMods.moderators.uid}">
-				{{{ if  categoryMods.moderators.picture }}}
-				<img class="avatar avatar-sm" src="{categoryMods.moderators.picture}" alt="" />
-				{{{ else }}}
-				<div class="avatar avatar-sm" style="background-color: {categoryMods.moderators.icon:bgColor};">{categoryMods.moderators.icon:text}</div>
+		{{{ each categoryMods }}}
+		<div class="categories category-wrapper mb-4">
+			<div class="float-start me-1">{buildCategoryIcon(@value, "24px", "rounded-circle")}</div>
+			<h4>{categoryMods.name} {{{ if categoryMods.subCategoryCount }}}<small><a href="{config.relative_path}/admin/manage/admins-mods?cid={categoryMods.cid}#moderators-title">[[admin/manage/admins-mods:subcategories, {categoryMods.subCategoryCount}]]</a></small>{{{ else }}}{{{ end }}}{{{if categoryMods.disabled}}}<span class="badge bg-warning">[[admin/manage/admins-mods:disabled]]</span>{{{end}}}</h4>
+			<div class="moderator-area" data-cid="{categoryMods.cid}">
+				{{{ each categoryMods.moderators }}}
+					<div class="badge text-bg-light m-1 p-1 float-start" data-uid="{categoryMods.moderators.uid}">
+						{buildAvatar(categoryMods.moderators, "24px", true)}
+						<a href="{config.relative_path}/user/{categoryMods.moderators.userslug}">{categoryMods.moderators.username}</a>
+						<i class="mx-1 remove-user-icon fa fa-times" role="button"></i>
+					</div>
 				{{{ end }}}
-				<a href="{config.relative_path}/user/{categoryMods.moderators.userslug}">{categoryMods.moderators.username}</a>
-				<i class="remove-user-icon fa fa-times" role="button"></i>
 			</div>
-		{{{ end }}}
-	</div>
 
-	<div data-cid="{categoryMods.cid}" class="no-moderator-warning {{{ if categoryMods.moderators.length }}}hidden{{{ end }}}">[[admin/manage/admins-mods:no-moderators]]</div>
+			<div data-cid="{categoryMods.cid}" class="no-moderator-warning {{{ if categoryMods.moderators.length }}}hidden{{{ end }}}">[[admin/manage/admins-mods:no-moderators]]</div>
 
-	<input data-cid="{categoryMods.cid}" class="form-control moderator-search" placeholder="[[admin/manage/admins-mods:add-moderator]]" />
-	</div>
-	<br/>
-	{{{ end }}}
-	<div>
-		<!-- IMPORT partials/paginator.tpl -->
+			<input data-cid="{categoryMods.cid}" class="form-control moderator-search" placeholder="[[admin/manage/admins-mods:add-moderator]]" />
+		</div>
+
+		{{{ end }}}
+		<div>
+			<!-- IMPORT partials/paginator.tpl -->
+		</div>
 	</div>
 </div>
diff --git a/src/views/admin/manage/categories.tpl b/src/views/admin/manage/categories.tpl
index 608decb44e..799e638d8d 100644
--- a/src/views/admin/manage/categories.tpl
+++ b/src/views/admin/manage/categories.tpl
@@ -2,13 +2,13 @@
 <div class="row">
     <div class="col-lg-12">
         <div class="category btn-group">
-            <!-- IMPORT partials/category-selector.tpl -->
+            <!-- IMPORT admin/partials/category/selector-dropdown-left.tpl -->
         </div>
         <div class="btn-group">
-            <button id="collapse-all" class="btn btn-default">[[admin/manage/categories:collapse-all]]</button>
+            <button id="collapse-all" class="btn btn-outline-secondary">[[admin/manage/categories:collapse-all]]</button>
         </div>
         <div class="btn-group">
-            <button id="expand-all" class="btn btn-default">[[admin/manage/categories:expand-all]]</button>
+            <button id="expand-all" class="btn btn-outline-secondary">[[admin/manage/categories:expand-all]]</button>
         </div>
     </div>
 </div>
@@ -20,6 +20,6 @@
 <div>
     <!-- IMPORT partials/paginator.tpl -->
 </div>
-<button data-action="create" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-    <i class="material-icons">add</i>
+<button data-action="create" class="btn btn-primary position-fixed bottom-0 end-0 px-3 py-2 mb-4 me-4 rounded-circle fs-4" type="button" style="width: 64px; height: 64px;">
+    <i class="fa fa-fw fa-plus"></i>
 </button>
\ No newline at end of file
diff --git a/src/views/admin/manage/category-analytics.tpl b/src/views/admin/manage/category-analytics.tpl
index a582a3599e..523e79cdfc 100644
--- a/src/views/admin/manage/category-analytics.tpl
+++ b/src/views/admin/manage/category-analytics.tpl
@@ -1,55 +1,55 @@
-<a class="btn btn-primary" href="{config.relative_path}/admin/manage/categories">
+<a class="btn btn-primary mb-3" href="{config.relative_path}/admin/manage/categories">
 	<i class="fa fa-fw fa-chevron-left"></i> [[admin/manage/categories:analytics.back]]
 </a>
 
-<h3>[[admin/manage/categories:analytics.title, {name}]]</h3>
+<h5>[[admin/manage/categories:analytics.title, {name}]]</h5>
 <hr />
 
 <div class="row">
 	<div class="col-sm-6 text-center">
-		<div class="panel panel-default">
-			<div class="panel-body">
+		<div class="card">
+			<div class="card-body">
 				<div><canvas id="pageviews:hourly" height="250"></canvas></div>
 				<p>
-					
+
 				</p>
 			</div>
-			<div class="panel-footer"><small>[[admin/manage/categories:analytics.pageviews-hourly]]</div>
+			<div class="card-footer"><small>[[admin/manage/categories:analytics.pageviews-hourly]]</div>
 		</div>
 	</div>
 	<div class="col-sm-6 text-center">
-		<div class="panel panel-default">
-			<div class="panel-body">
+		<div class="card">
+			<div class="card-body">
 				<div><canvas id="pageviews:daily" height="250"></canvas></div>
 				<p>
-					
+
 				</p>
 			</div>
-			<div class="panel-footer"><small>[[admin/manage/categories:analytics.pageviews-daily]]</div>
+			<div class="card-footer"><small>[[admin/manage/categories:analytics.pageviews-daily]]</div>
 		</div>
 	</div>
 </div>
 <div class="row">
 	<div class="col-sm-6 text-center">
-		<div class="panel panel-default">
-			<div class="panel-body">
+		<div class="card">
+			<div class="card-body">
 				<div><canvas id="topics:daily" height="250"></canvas></div>
 				<p>
-					
+
 				</p>
 			</div>
-			<div class="panel-footer"><small>[[admin/manage/categories:analytics.topics-daily]]</div>
+			<div class="card-footer"><small>[[admin/manage/categories:analytics.topics-daily]]</div>
 		</div>
 	</div>
 	<div class="col-sm-6 text-center">
-		<div class="panel panel-default">
-			<div class="panel-body">
+		<div class="card">
+			<div class="card-body">
 				<div><canvas id="posts:daily" height="250"></canvas></div>
 				<p>
-					
+
 				</p>
 			</div>
-			<div class="panel-footer"><small>[[admin/manage/categories:analytics.posts-daily]]</div>
+			<div class="card-footer"><small>[[admin/manage/categories:analytics.posts-daily]]</div>
 		</div>
 	</div>
 </div>
\ No newline at end of file
diff --git a/src/views/admin/manage/category.tpl b/src/views/admin/manage/category.tpl
index 5d48140fd7..5cfd56aafc 100644
--- a/src/views/admin/manage/category.tpl
+++ b/src/views/admin/manage/category.tpl
@@ -1,229 +1,230 @@
 <div class="category" data-cid="{category.cid}">
-	<div class="row">
-		<div class="col-md-3 pull-right">
-			<!-- IMPORT partials/category-selector.tpl -->
+	<div class="row mb-3">
+		<div class="d-flex col-12 justify-content-end">
+			<!-- IMPORT admin/partials/category/selector-dropdown-right.tpl -->
 		</div>
 	</div>
 
-	<br/>
-
 	<div class="row">
 		<div class="col-md-9" id="category-settings">
 			<div class="category-settings-form">
-				<fieldset>
-					<label for="cid-{category.cid}-name">
+				<div class="mb-3">
+					<label class="form-label" for="cid-{category.cid}-name">
 						[[admin/manage/categories:name]]
 					</label>
-					<input id="cid-{category.cid}-name" type="text" class="form-control" placeholder="[[admin/manage/categories:name]]" data-name="name" value="{category.name}" /><br />
+					<input id="cid-{category.cid}-name" type="text" class="form-control" placeholder="[[admin/manage/categories:name]]" data-name="name" value="{category.name}" />
+				</div>
 
-					<label for="cid-{category.cid}-description">
+				<div class="mb-3">
+					<label class="form-label" for="cid-{category.cid}-description">
 						[[admin/manage/categories:description]]
 					</label>
-					<textarea id="cid-{category.cid}-description" data-name="description" placeholder="[[admin/manage/categories:description]]" class="form-control category_description description" />{category.description}</textarea><br />
-				</fieldset>
+					<textarea id="cid-{category.cid}-description" data-name="description" placeholder="[[admin/manage/categories:description]]" class="form-control category_description description" />{category.description}</textarea>
+				</div>
 
-				<fieldset class="row">
-					<div class="col-sm-4 col-xs-12">
+				<div class="row mb-3">
+					<div class="col-sm-4 col-12">
 						<div class="form-group">
-							<label for="cid-{category.cid}-bgColor">
+							<label class="form-label" for="cid-{category.cid}-bgColor">
 								[[admin/manage/categories:bg-color]]
 							</label>
 							<input type="color" id="cid-{category.cid}-bgColor" placeholder="#0059b2" data-name="bgColor" value="{category.bgColor}" class="form-control category_bgColor" />
 						</div>
 					</div>
-					<div class="col-sm-4 col-xs-12">
+
+					<div class="col-sm-4 col-12">
 						<div class="form-group">
-							<label for="cid-{category.cid}-color">
+							<label class="form-label" for="cid-{category.cid}-color">
 								[[admin/manage/categories:text-color]]
 							</label>
 							<input type="color" id="cid-{category.cid}-color" placeholder="#ffffff" data-name="color" value="{category.color}" class="form-control category_color" />
 						</div>
 					</div>
 
-					<div class="col-sm-4 col-xs-12">
+					<div class="col-sm-4 col-12">
 						<div class="form-group">
-							<label for="cid-{category.cid}-imageClass">
+							<label class="form-label" for="cid-{category.cid}-imageClass">
 								[[admin/manage/categories:bg-image-size]]
 							</label>
-							<select id="cid-{category.cid}-imageClass" class="form-control" data-name="imageClass" data-value="{category.imageClass}">
+							<select id="cid-{category.cid}-imageClass" class="form-select" data-name="imageClass" data-value="{category.imageClass}">
 								<option value="auto">auto</option>
 								<option value="cover">cover</option>
 								<option value="contain">contain</option>
 							</select>
 						</div>
-					</div><br />
-					<div class="col-sm-4 col-xs-12">
+					</div>
+				</div>
+
+				<div class="row mb-3">
+					<div class="col-sm-4 col-12">
 						<div class="form-group">
-							<label for="cid-{category.cid}-class">
+							<label class="form-label" for="cid-{category.cid}-class">
 								[[admin/manage/categories:custom-class]]
 							</label>
-							<input list="customClasses" id="cid-{category.cid}-class" type="text" class="form-control" placeholder="<!-- IF customClasses.length --><!-- BEGIN customClasses --><!-- IF @first -->{@value}<!-- ENDIF --><!-- END --><!-- ELSE -->col-md-6 col-xs-6<!-- ENDIF -->" data-name="class" value="{category.class}" />
+							<input list="customClasses" id="cid-{category.cid}-class" type="text" class="form-control" placeholder="{{{ if customClasses.length }}}{{{ each customClasses }}}{{{ if @first }}}{@value}{{{ end }}}{{{ end }}}{{{ else }}}col-md-6 col-6{{{ end }}}" data-name="class" value="{category.class}" />
 							<datalist id="customClasses">
-								<!-- BEGIN customClasses -->
+								{{{ each customClasses }}}
 								<option>{@value}</option>
-								<!-- END customClasses -->
+								{{{ end }}}
 							</datalist>
 						</div>
 					</div>
-					<div class="col-sm-4 col-xs-12">
+					<div class="col-sm-4 col-12">
 						<div class="form-group">
-							<label for="cid-{category.cid}-numRecentReplies">
+							<label class="form-label" for="cid-{category.cid}-numRecentReplies">
 								[[admin/manage/categories:num-recent-replies]]
 							</label>
 							<input id="cid-{category.cid}-numRecentReplies" type="text" class="form-control" placeholder="2" data-name="numRecentReplies" value="{category.numRecentReplies}" />
 						</div>
 					</div>
-					<div class="col-sm-4 col-xs-12">
+					<div class="col-sm-4 col-12">
 						<div class="form-group">
-							<label for="cid-{category.cid}-link">
+							<label class="form-label" for="cid-{category.cid}-link">
 								[[admin/manage/categories:ext-link]]
 							</label>
 							<input id="cid-{category.cid}-link" type="text" class="form-control" placeholder="http://domain.com" data-name="link" value="{category.link}" />
 						</div>
 					</div>
-				</fieldset>
-				<fieldset class="row">
-					<div class="col-sm-4 col-xs-12">
+				</div>
+
+				<div class="row mb-3">
+					<div class="col-sm-4 col-12">
 						<div class="form-group">
-							<label for="cid-subcategories-per-page">
+							<label class="form-label" for="cid-subcategories-per-page">
 								[[admin/manage/categories:subcategories-per-page]]
 							</label>
 							<input id="cid-subcategories-per-page" type="text" class="form-control" data-name="subCategoriesPerPage" value="{category.subCategoriesPerPage}" />
 						</div>
 					</div>
-					<div class="col-sm-4 col-xs-12">
+					<div class="col-sm-4 col-12">
 						<div class="form-group">
-							<label for="cid-min-tags">
+							<label class="form-label" for="cid-min-tags">
 								[[admin/settings/tags:min-per-topic]]
 							</label>
 							<input id="cid-min-tags" type="text" class="form-control" data-name="minTags" value="{category.minTags}" />
 						</div>
 					</div>
-					<div class="col-sm-4 col-xs-12">
+					<div class="col-sm-4 col-12">
 						<div class="form-group">
-							<label for="cid-max-tags">
+							<label class="form-label" for="cid-max-tags">
 								[[admin/settings/tags:max-per-topic]]
 							</label>
 							<input id="cid-max-tags" type="text" class="form-control" data-name="maxTags" value="{category.maxTags}" />
 						</div>
 					</div>
-				</fieldset>
-				<fieldset class="row">
+				</div>
+				<div class="row mb-3">
 					<div class="col-lg-12">
 						<div class="form-group">
-							<label for="tag-whitelist">[[admin/manage/categories:tag-whitelist]]</label><br />
+							<label class="form-label" for="tag-whitelist">[[admin/manage/categories:tag-whitelist]]</label>
 							<input id="tag-whitelist" type="text" class="form-control" data-name="tagWhitelist" value="" />
 						</div>
 					</div>
-				</fieldset>
-				<fieldset class="row">
+				</div>
+				<div class="row">
 					<div class="col-lg-6">
-						<div class="form-group">
-							<div class="checkbox">
-								<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-									<input type="checkbox" class="mdl-switch__input" id="cid-{category.cid}-isSection" data-name="isSection" <!-- IF category.isSection -->checked<!-- ENDIF category.isSection --> />
-									<span class="mdl-switch__label"><strong>[[admin/manage/categories:is-section]]</strong></span>
-								</label>
+						<div class="form-group mb-3">
+							<div class="form-check form-switch">
+								<input type="checkbox" class="form-check-input" id="cid-{category.cid}-isSection" data-name="isSection" {{{ if category.isSection }}}checked{{{ end }}} />
+								<label class="form-check-label">[[admin/manage/categories:is-section]]</label>
 							</div>
 						</div>
 					</div>
 					{{{ if postQueueEnabled }}}
 					<div class="col-lg-6">
-						<div class="form-group">
-							<div class="checkbox">
-								<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-									<input type="checkbox" class="mdl-switch__input" data-name="postQueue" {{{ if category.postQueue }}}checked{{{ end }}} />
-									<span class="mdl-switch__label"><strong>[[admin/manage/categories:post-queue]]</strong></span>
-								</label>
+						<div class="form-group mb-3">
+							<div class="form-check form-switch">
+								<input type="checkbox" class="form-check-input" data-name="postQueue" {{{ if category.postQueue }}}checked{{{ end }}} />
+								<label class="form-check-label">[[admin/manage/categories:post-queue]]</label>
 							</div>
 						</div>
 					</div>
 					{{{ end }}}
-				</fieldset>
+				</div>
 			</div>
 		</div>
 
 		<div class="col-md-3 options acp-sidebar">
-			<div class="panel panel-default">
-				<div class="panel-body">
+			<div class="card">
+				<div class="card-body">
 					<div class="category-preview" style="
-						<!-- IF category.backgroundImage -->background-image: url({category.backgroundImage});<!-- ENDIF category.backgroundImage -->
-						<!-- IF category.bgColor -->background-color: {category.bgColor};<!-- ENDIF category.bgColor -->
-						<!-- IF category.imageClass -->background-size: {category.imageClass};<!-- ENDIF category.imageClass -->
+						{{{ if category.backgroundImage }}}background-image: url({category.backgroundImage});{{{ end }}}
+						{{{ if category.bgColor }}}background-color: {category.bgColor};{{{ end }}}
+						{{{ if category.imageClass }}}background-size: {category.imageClass};{{{ end }}}
 						color: {category.color};
 					">
 						<div class="icon">
 							<i data-name="icon" value="{category.icon}" class="fa {category.icon} fa-2x"></i>
 						</div>
 					</div>
-					<div class="btn-group btn-group-justified">
+					<div class="d-grid gap-2 mb-3">
 						<div class="btn-group">
-							<button type="button" data-cid="{category.cid}" class="btn btn-default upload-button">
+							<button type="button" data-cid="{category.cid}" class="btn btn-outline-secondary upload-button">
 								<i class="fa fa-upload"></i>
 								[[admin/manage/categories:upload-image]]
 							</button>
 						</div>
-						<!-- IF category.backgroundImage -->
+						{{{ if category.backgroundImage }}}
 						<div class="btn-group">
 							<button class="btn btn-warning delete-image">
 								<i data-name="icon" value="fa-times" class="fa fa-times"></i>
 								[[admin/manage/categories:delete-image]]
 							</button>
 						</div>
-						<!-- ENDIF category.backgroundImage -->
-					</div><br />
+						{{{ end }}}
+					</div>
 
-					<fieldset>
-						<div class="form-group text-center">
-							<label for="category-image">
-								[[admin/manage/categories:category-image]]
-							</label>
-							<br/>
-							<input id="category-image" type="text" class="form-control" placeholder="[[admin/manage/categories:category-image]]" data-name="backgroundImage" value="{category.backgroundImage}" />
-						</div>
-					</fieldset>
 
-					<fieldset>
-						<div class="form-group text-center">
-							<label for="cid-{category.cid}-parentCid">[[admin/manage/categories:parent-category]]</label>
-							<br/>
-							<div class="btn-group <!-- IF !category.parent.name -->hide<!-- ENDIF !category.parent.name -->">
-								<button type="button" class="btn btn-default" data-action="changeParent" data-parentCid="{category.parent.cid}"><i class="fa {category.parent.icon}"></i> {category.parent.name}</button>
+					<div class="mb-3">
+						<label class="form-label" for="category-image">
+							[[admin/manage/categories:category-image]]
+						</label>
+						<input id="category-image" type="text" class="form-control" placeholder="[[admin/manage/categories:category-image]]" data-name="backgroundImage" value="{category.backgroundImage}" />
+					</div>
+
+					<div class="mb-3">
+						<label class="form-label" for="cid-{category.cid}-parentCid">[[admin/manage/categories:parent-category]]</label>
+						<div class="d-grid">
+							<div class="btn-group {{{ if !category.parent.name }}}hide{{{ end }}}">
+								<button type="button" class="btn btn-outline-secondary" data-action="changeParent" data-parentCid="{category.parent.cid}"><i class="fa {category.parent.icon}"></i> {category.parent.name}</button>
 								<button type="button" class="btn btn-warning" data-action="removeParent" data-parentCid="{category.parent.cid}"><i class="fa fa-times"></i></button>
 							</div>
-							<button type="button" class="btn btn-default btn-block <!-- IF category.parent.name -->hide<!-- ENDIF category.parent.name -->" data-action="setParent">
+							<button type="button" class="btn btn-outline-secondary btn-block {{{ if category.parent.name }}}hide{{{ end }}}" data-action="setParent">
 								<i class="fa fa-sitemap"></i>
 								[[admin/manage/categories:parent-category-none]]
 							</button>
 						</div>
-					</fieldset>
+					</div>
+
 					<hr/>
-					<a href="{config.relative_path}/admin/manage/privileges/{category.cid}" class="btn btn-info btn-block">
-						<i class="fa fa-gear"></i> [[admin/manage/privileges:edit-privileges]]
-					</a>
-					<a href="{config.relative_path}/category/{category.cid}" class="btn btn-info btn-block">
-						<i class="fa fa-eye"></i> [[admin/manage/categories:view-category]]
-					</a>
-					<button class="btn btn-info btn-block copy-settings">
-						<i class="fa fa-files-o"></i> [[admin/manage/categories:copy-settings]]
-					</button>
+					<div class="d-grid gap-2">
+						<a href="{config.relative_path}/admin/manage/privileges/{category.cid}" class="btn btn-info >
+							<i class="fa fa-gear"></i> [[admin/manage/privileges:edit-privileges]]
+						</a>
+						<a href="{config.relative_path}/category/{category.cid}" class="btn btn-info >
+							<i class="fa fa-eye"></i> [[admin/manage/categories:view-category]]
+						</a>
+						<button class="btn btn-info copy-settings">
+							<i class="fa fa-files-o"></i> [[admin/manage/categories:copy-settings]]
+						</button>
+					</div>
 					<hr />
-					<button data-action="toggle" data-disabled="{category.disabled}" class="btn btn-sm btn-block <!-- IF category.disabled -->btn-primary<!-- ELSE -->btn-danger<!-- ENDIF category.disabled -->">
-						<!-- IF category.disabled -->
-						[[admin/manage/categories:enable]]
-						<!-- ELSE -->
-						[[admin/manage/categories:disable]]
-						<!-- ENDIF category.disabled -->
-					</button>
-					<button class="btn btn-danger btn-block purge">
-						<i class="fa fa-eraser"></i> [[admin/manage/categories:purge]]
-					</button>
+					<div class="d-grid gap-2">
+						<button data-action="toggle" data-disabled="{category.disabled}" class="btn btn-sm btn-block {{{ if category.disabled }}}btn-primary{{{ else }}}btn-danger{{{ end }}}">
+							{{{ if category.disabled }}}
+							[[admin/manage/categories:enable]]
+							{{{ else }}}
+							[[admin/manage/categories:disable]]
+							{{{ end }}}
+						</button>
+						<button class="btn btn-sm btn-danger btn-block purge">
+							<i class="fa fa-eraser"></i> [[admin/manage/categories:purge]]
+						</button>
+					</div>
 				</div>
 			</div>
 		</div>
 	</div>
 </div>
 
-<button id="save" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-    <i class="material-icons">save</i>
-</button>
+<!-- IMPORT admin/partials/save_button.tpl -->
diff --git a/src/views/admin/manage/digest.tpl b/src/views/admin/manage/digest.tpl
index 96fc869331..f6b12c8be4 100644
--- a/src/views/admin/manage/digest.tpl
+++ b/src/views/admin/manage/digest.tpl
@@ -4,49 +4,51 @@
 
 <hr />
 
-<table class="table table-striped">
-	<thead>
-		<th>[[admin/manage/digest:user]]</th>
-		<th>[[admin/manage/digest:subscription]]</th>
-		<th>[[admin/manage/digest:last-delivery]]</th>
-		<th></th>
-	</thead>
-	<tbody>
-		<!-- BEGIN delivery -->
-		<tr>
-			<td><a href="{config.relative_path}/uid/{../uid}">{buildAvatar(delivery, "sm", true)} {../username}</a></td>
-			<td>{{{if ../setting}}}{../setting}{{{else}}}<em>[[admin/manage/digest:default]]</em>{{{end}}}</td>
-			<td>{../lastDelivery}</td>
-			<td><button class="btn btn-xs btn-default" data-action="resend" data-uid="{../uid}">[[admin/manage/digest:resend]]</button></td>
-		</tr>
-		<!-- END delivery -->
-		<!-- IF !delivery.length -->
-		<tr>
-			<td colspan="4">
-				<div class="alert alert-success">
-					[[admin/manage/digest:no-delivery-data]]
-				</div>
-			</td>
-		</tr>
-		<!-- ENDIF !delivery.length -->
-	</tbody>
-	<tfoot>
-		<tr>
-			<td colspan="4"><!-- IMPORT partials/paginator.tpl --></td>
-		</tr>
-		<tr>
-			<td colspan="4">
-				<em>[[admin/manage/digest:default-help, {default}]]</em>
-			</td>
-		</tr>
-		<tr>
-			<td colspan="4">
-				[[admin/manage/digest:manual-run]]
-				<button class="btn btn-xs btn-default" data-action="resend-day">[[admin/settings/user:digest-freq.daily]]</button>
-				<button class="btn btn-xs btn-default" data-action="resend-week">[[admin/settings/user:digest-freq.weekly]]</button>
-				<button class="btn btn-xs btn-default" data-action="resend-biweek">[[admin/settings/user:digest-freq.biweekly]]</button>
-				<button class="btn btn-xs btn-default" data-action="resend-month">[[admin/settings/user:digest-freq.monthly]]</button>
-			</td>
-		</tr>
-	</tfoot>
-</table>
+<div class="table-responsive">
+	<table class="table table-striped">
+		<thead>
+			<th>[[admin/manage/digest:user]]</th>
+			<th>[[admin/manage/digest:subscription]]</th>
+			<th>[[admin/manage/digest:last-delivery]]</th>
+			<th></th>
+		</thead>
+		<tbody>
+			{{{ each delivery }}}
+			<tr>
+				<td>{buildAvatar(delivery, "24px", true)} <a href="{config.relative_path}/uid/{./uid}">{./username}</a></td>
+				<td>{{{if ./setting}}}{./setting}{{{else}}}<em>[[admin/manage/digest:default]]</em>{{{end}}}</td>
+				<td>{./lastDelivery}</td>
+				<td><button class="btn btn-sm btn-outline-secondary" data-action="resend" data-uid="{./uid}">[[admin/manage/digest:resend]]</button></td>
+			</tr>
+			{{{ end }}}
+			{{{ if !delivery.length }}}
+			<tr>
+				<td colspan="4">
+					<div class="alert alert-success">
+						[[admin/manage/digest:no-delivery-data]]
+					</div>
+				</td>
+			</tr>
+			{{{ end }}}
+		</tbody>
+		<tfoot>
+			<tr>
+				<td colspan="4"><!-- IMPORT partials/paginator.tpl --></td>
+			</tr>
+			<tr>
+				<td colspan="4">
+					<em>[[admin/manage/digest:default-help, {default}]]</em>
+				</td>
+			</tr>
+			<tr>
+				<td colspan="4">
+					[[admin/manage/digest:manual-run]]
+					<button class="btn btn-sm btn-outline-secondary" data-action="resend-day">[[admin/settings/user:digest-freq.daily]]</button>
+					<button class="btn btn-sm btn-outline-secondary" data-action="resend-week">[[admin/settings/user:digest-freq.weekly]]</button>
+					<button class="btn btn-sm btn-outline-secondary" data-action="resend-biweek">[[admin/settings/user:digest-freq.biweekly]]</button>
+					<button class="btn btn-sm btn-outline-secondary" data-action="resend-month">[[admin/settings/user:digest-freq.monthly]]</button>
+				</td>
+			</tr>
+		</tfoot>
+	</table>
+</div>
diff --git a/src/views/admin/manage/group.tpl b/src/views/admin/manage/group.tpl
index e3b9d3313f..318849c2ed 100644
--- a/src/views/admin/manage/group.tpl
+++ b/src/views/admin/manage/group.tpl
@@ -1,80 +1,81 @@
-<div class="row">
-	<form role="form" class="group" data-groupname="{group.displayName}">
+<div>
+	<form role="form" class="group row" data-groupname="{group.displayName}">
 		<div class="col-md-9">
 			<div class="group-settings-form">
-				<fieldset>
-					<label for="change-group-name">[[admin/manage/groups:edit.name]]</label>
-					<input type="text" class="form-control" id="change-group-name" placeholder="Group Name" value="{group.displayName}" maxlength="{maximumGroupNameLength}" data-property <!-- IF group.system -->readonly<!-- ENDIF group.system -->/><br />
+				<fieldset class="mb-3">
+					<label class="form-label" for="change-group-name">[[admin/manage/groups:edit.name]]</label>
+					<input type="text" class="form-control" id="change-group-name" placeholder="Group Name" value="{group.displayName}" maxlength="{maximumGroupNameLength}" data-property {{{ if group.system }}}readonly{{{ end }}}/><br />
 				</fieldset>
 
-				<fieldset>
-					<label for="change-group-desc">[[admin/manage/groups:edit.description]]</label>
+				<fieldset class="mb-3">
+					<label class="form-label" for="change-group-desc">[[admin/manage/groups:edit.description]]</label>
 					<input type="text" class="form-control" id="change-group-desc" placeholder="A short description about your group" value="{group.description}" maxlength="255" data-property /><br />
 				</fieldset>
 
-				<div class="row">
+				<div class="row mb-3">
 					<div class="col-md-4">
 						<fieldset>
-							<label for="change-group-user-title">[[admin/manage/groups:edit.user-title]]</label>
-							<span id="group-label-preview" class="label label-default" style="color:<!-- IF group.textColor -->{group.textColor}<!-- ELSE -->#ffffff<!-- ENDIF group.textColor -->; background:<!-- IF group.labelColor -->{group.labelColor}<!-- ELSE -->#000000<!-- ENDIF group.labelColor -->;"><i id="group-icon-preview" class="fa {group.icon} <!-- IF !group.icon -->hidden<!-- ENDIF -->"></i> <span id="group-label-preview-text">{group.userTitle}</span></span>
+							<label class="form-label" for="change-group-user-title">[[admin/manage/groups:edit.user-title]]</label>
+							<span id="group-label-preview" class="badge" style="color:{{{ if group.textColor }}}{group.textColor}{{{ else }}}#ffffff{{{ end }}}; background:{{{ if group.labelColor }}}{group.labelColor}{{{ else }}}#000000{{{ end }}};"><i id="group-icon-preview" class="fa {group.icon} {{{ if !group.icon }}}hidden{{{ end }}}"></i> <span id="group-label-preview-text">{group.userTitle}</span></span>
 							<input type="text" class="form-control" id="change-group-user-title" placeholder="The title of users if they are a member of this group" value="{group.userTitleEscaped}" maxlength="{maximumGroupTitleLength}" data-property /><br />
 						</fieldset>
 					</div>
 					<div class="col-md-2">
 						<fieldset>
-							<label id="group-icon-label" for="change-group-icon">[[admin/manage/groups:edit.icon]]</label><br/>
-							<i id="group-icon" class="fa fa-2x <!-- IF group.icon -->{group.icon}<!-- ENDIF group.icon -->" value="{group.icon}"></i><br />
+							<label class="form-label" id="group-icon-label" for="change-group-icon">[[admin/manage/groups:edit.icon]]</label><br/>
+							<i id="group-icon" class="fa fa-2x {{{ if group.icon }}}{group.icon}{{{ end }}}" value="{group.icon}"></i><br />
 						</fieldset>
 					</div>
 					<div class="col-md-3">
 						<fieldset>
-							<label for="change-group-label-color">[[admin/manage/groups:edit.label-color]]</label>
+							<label class="form-label" for="change-group-label-color">[[admin/manage/groups:edit.label-color]]</label>
 
 							<input type="color" id="change-group-label-color" placeholder="#0059b2" data-name="bgColor" value="{group.labelColor}" class="form-control" data-property/><br />
 						</fieldset>
 					</div>
 					<div class="col-md-3">
 						<fieldset>
-							<label for="change-group-text-color">[[admin/manage/groups:edit.text-color]]</label>
+							<label class="form-label" for="change-group-text-color">[[admin/manage/groups:edit.text-color]]</label>
 							<input type="color" id="change-group-text-color" placeholder="#ffffff" data-name="textColor" value="{group.textColor}" class="form-control" data-property/><br />
 						</fieldset>
 					</div>
 				</div>
-				<fieldset>
+
+				<fieldset class="mb-3">
 					<div class="checkbox">
 						<label>
-							<input id="group-userTitleEnabled" name="userTitleEnabled" data-property type="checkbox"<!-- IF group.userTitleEnabled --> checked<!-- ENDIF group.userTitleEnabled -->> <strong>[[admin/manage/groups:edit.show-badge]]</strong>
+							<input id="group-userTitleEnabled" name="userTitleEnabled" data-property type="checkbox"{{{ if group.userTitleEnabled }}} checked{{{ end }}}> <strong>[[admin/manage/groups:edit.show-badge]]</strong>
 						</label>
 					</div>
 				</fieldset>
 
-				<fieldset>
+				<fieldset class="mb-3">
 					<div class="checkbox">
 						<label>
-							<input id="group-private" name="private" data-property type="checkbox"<!-- IF group.private --> checked<!-- ENDIF group.private -->>
+							<input id="group-private" name="private" data-property type="checkbox"{{{ if group.private }}} checked{{{ end }}}>
 							<strong>[[groups:details.private]]</strong>
-							<p class="help-block">
+							<p class="form-text">
 								[[admin/manage/groups:edit.private-details]]
 							</p>
-							<!-- IF !allowPrivateGroups -->
-							<p class="help-block">
+							{{{ if !allowPrivateGroups }}}
+							<p class="form-text">
 								[[admin/manage/groups:edit.private-override]]
 							</p>
-							<!-- ENDIF !allowPrivateGroups -->
+							{{{ end }}}
 						</label>
 					</div>
 				</fieldset>
 
-				<fieldset>
+				<fieldset class="mb-3">
 					<div class="checkbox">
 						<label>
-							<input id="group-disableJoinRequests" name="disableJoinRequests" data-property type="checkbox"<!-- IF group.disableJoinRequests --> checked<!-- ENDIF group.disableJoinRequests -->>
+							<input id="group-disableJoinRequests" name="disableJoinRequests" data-property type="checkbox"{{{ if group.disableJoinRequests }}} checked{{{ end }}}>
 							<strong>[[admin/manage/groups:edit.disable-join]]</strong>
 						</label>
 					</div>
 				</fieldset>
 
-				<fieldset>
+				<fieldset class="mb-3">
 					<div class="checkbox">
 						<label>
 							<input id="group-disableLeave" name="disableLeave" data-property type="checkbox"{{{if group.disableLeave}}} checked{{{end}}}>
@@ -83,12 +84,12 @@
 					</div>
 				</fieldset>
 
-				<fieldset>
+				<fieldset class="mb-3">
 					<div class="checkbox">
 						<label>
-							<input id="group-hidden" name="hidden" data-property type="checkbox"<!-- IF group.hidden --> checked<!-- ENDIF group.hidden -->>
+							<input id="group-hidden" name="hidden" data-property type="checkbox"{{{ if group.hidden }}} checked{{{ end }}}>
 							<strong>[[admin/manage/groups:edit.hidden]]</strong>
-							<p class="help-block">
+							<p class="form-text">
 								[[admin/manage/groups:edit.hidden-details]]
 							</p>
 						</label>
@@ -97,14 +98,14 @@
 
 				<hr />
 
-				<div class="form-group">
-					<label for="memberPostCids">[[groups:details.member-post-cids]]</label>
+				<div class="mb-3">
+					<label class="form-label" for="memberPostCids">[[groups:details.member-post-cids]]</label>
 					<div class="row">
 						<div class="col-md-9">
 							<input id="memberPostCids" type="text" class="form-control" value="{group.memberPostCids}">
 						</div>
 						<div class="col-md-3 member-post-cids-selector">
-							<!-- IMPORT partials/category-selector.tpl -->
+							<!-- IMPORT admin/partials/category/selector-dropdown-right.tpl -->
 						</div>
 					</div>
 				</div>
@@ -112,11 +113,11 @@
 				<hr />
 
 				<fieldset>
-					<div class="panel panel-default">
-						<div class="panel-heading">
-							<h3 class="panel-title"><i class="fa fa-users"></i> [[admin/manage/groups:edit.members]]</h3>
+					<div class="card">
+						<div class="card-header">
+							<h5 class="card-title"><i class="fa fa-users"></i> [[admin/manage/groups:edit.members]]</h5>
 						</div>
-						<div class="panel-body">
+						<div class="card-body">
 							<!-- IMPORT admin/partials/groups/memberlist.tpl -->
 						</div>
 					</div>
@@ -125,40 +126,39 @@
 		</div>
 		<div class="col-md-3">
 			<div component="group-selector" class="btn-group">
-				<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
+				<button type="button" class="btn btn-outline-secondary dropdown-toggle w-100" data-bs-toggle="dropdown">
 					<span component="group-selector-selected">{group.displayName}</span> <span class="caret"></span>
 				</button>
-				<div component="group-selector-search" class="hidden">
+				<div component="group-selector-search" class="hidden position-absolute w-100">
 					<input type="text" class="form-control" autocomplete="off">
 				</div>
-				<ul component="group-list" class="dropdown-menu group-dropdown-menu" role="menu">
+				<ul component="group-list" class="dropdown-menu dropdown-menu-end group-dropdown-menu" role="menu">
 					<li component="group-no-matches" role="presentation" class="group hidden">
-						<a role="menuitem">[[search:no-matches]]</a>
+						<a class="dropdown-item" role="menuitem">[[search:no-matches]]</a>
 					</li>
-					<!-- BEGIN groupNames -->
+					{{{ each groupNames }}}
 					<li role="presentation" class="group" data-name="{groupNames.displayName}">
-						<a href="{config.relative_path}/admin/manage/groups/{groupNames.encodedName}" role="menuitem">{groupNames.displayName}</a>
+						<a class="dropdown-item" href="{config.relative_path}/admin/manage/groups/{groupNames.encodedName}" role="menuitem">{groupNames.displayName}</a>
 					</li>
-					<!-- END groupNames -->
+					{{{ end }}}
 				</ul>
 			</div>
 			<hr />
-			<div class="well edit-privileges-selector">
-				<strong class="pull-left">[[admin/manage/privileges:edit-privileges]]</strong><br />
-				<!-- IMPORT partials/category-selector.tpl -->
+			<div class="edit-privileges-selector">
+				<label class="form-label" class="float-start">[[admin/manage/privileges:edit-privileges]]</label>
+				<div>
+					<!-- IMPORT admin/partials/category/selector-dropdown-right.tpl -->
+				</div>
 			</div>
 		</div>
 	</form>
 </div>
 
-<button id="save" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-    <i class="material-icons">save</i>
-</button>
+<!-- IMPORT admin/partials/save_button.tpl -->
 
 <div id="icons" style="display:none;">
 	<div class="icon-container">
-		<div class="row fa-icons">
-			<i class="fa fa-doesnt-exist"></i>
+		<div class="row nbb-fa-icons">
 			<!-- IMPORT partials/fontawesome.tpl -->
 		</div>
 	</div>
diff --git a/src/views/admin/manage/groups.tpl b/src/views/admin/manage/groups.tpl
index 25f7b835b5..92ef545dcc 100644
--- a/src/views/admin/manage/groups.tpl
+++ b/src/views/admin/manage/groups.tpl
@@ -1,13 +1,13 @@
-<div class="row">
-	<div class="col-lg-3 pull-right">
+<div class="row justify-content-end">
+	<div class="col-lg-3">
 		<div class="input-group">
 			<input type="text" class="form-control" placeholder="[[admin/manage/groups:search-placeholder]]" id="group-search">
-			<span class="input-group-addon search-button"><i class="fa fa-search"></i></span>
+			<span class="input-group-text search-button"><i class="fa fa-search"></i></span>
 		</div>
 	</div>
 </div>
 <div class="row groups">
-	<div class="col-xs-12">
+	<div class="col-12">
 		<table class="table table-striped groups-list">
 			<thead>
 				<tr>
@@ -18,40 +18,38 @@
 				</tr>
 			</thead>
 			<tbody>
-				<!-- BEGIN groups -->
-				<tr data-groupname="{groups.displayName}" data-name-encoded="{groups.nameEncoded}">
+				{{{ each groups }}}
+				<tr data-groupname="{./displayName}" data-name-encoded="{./nameEncoded}">
 					<td>
-						<a href="{config.relative_path}/admin/manage/groups/{groups.slug}">{groups.displayName}</a> ({groups.memberCount})
-						<p class="description">{groups.description}</p>
+						<a href="{config.relative_path}/admin/manage/groups/{./slug}">{./displayName}</a> ({./memberCount})
+						<p class="description">{./description}</p>
 					</td>
 					<td>
-						<span class="label label-default" style="color:{groups.textColor}; background-color: {groups.labelColor};"><!-- IF groups.icon --><i class="fa {groups.icon}"></i> <!-- ENDIF groups.icon -->{groups.userTitle}</span>
+						<span class="badge" style="color:{./textColor}; background-color: {./labelColor};">{{{ if ./icon }}}<i class="fa {./icon}"></i> {{{ end }}}{./userTitle}</span>
 					</td>
 					<td>
-						<!-- IF groups.system -->
-						<span class="label label-danger">[[admin/manage/groups:system]]</span>
-						<!-- ENDIF groups.system -->
-						<!-- IF groups.private -->
-						<span class="label label-primary">[[admin/manage/groups:private]]</span>
-						<!-- ENDIF groups.private -->
-						<!-- IF groups.hidden -->
-						<span class="label label-default">[[admin/manage/groups:hidden]]</span>
-						<!-- ENDIF groups.hidden -->
+						{{{ if ./system }}}
+						<span class="badge bg-danger">[[admin/manage/groups:system]]</span>
+						{{{ end }}}
+						{{{ if ./private }}}
+						<span class="badge bg-primary">[[admin/manage/groups:private]]</span>
+						{{{ end }}}
+						{{{ if ./hidden }}}
+						<span class="badge bg-default">[[admin/manage/groups:hidden]]</span>
+						{{{ end }}}
 					</td>
 
-					<td>
-						<div class="btn-group">
-							<a href="{config.relative_path}/api/admin/groups/{groups.nameEncoded}/csv" class="btn btn-default">[[admin/manage/groups:download-csv]]</a>
+					<td class="text-end">
+						<div class="btn-group gap-1">
+							<a href="{config.relative_path}/api/admin/groups/{groups.nameEncoded}/csv" class="btn btn-outline-secondary">[[admin/manage/groups:download-csv]]</a>
 
 							<!-- IMPORT admin/partials/groups/privileges-select-category.tpl -->
 
-							<!-- IF !groups.system -->
-							<button class="btn btn-danger" data-action="delete"><i class="fa fa-times"></i></button>
-							<!-- ENDIF !groups.system -->
+							<button class="btn btn-danger {{{ if groups.system }}} disabled {{{ end }}}" data-action="delete"><i class="fa fa-times"></i></button>
 						</div>
 					</td>
 				</tr>
-				<!-- END groups -->
+				{{{ end }}}
 			</tbody>
 			<tfoot>
 				<tr>
@@ -62,53 +60,8 @@
 
 		<!-- IMPORT partials/paginator.tpl -->
 	</div>
-
-	<div class="modal fade" id="create-modal">
-		<div class="modal-dialog">
-			<div class="modal-content">
-				<div class="modal-header">
-					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-					<h4 class="modal-title">[[admin/manage/groups:create]]</h4>
-				</div>
-				<div class="modal-body">
-					<div class="alert alert-danger hide" id="create-modal-error"></div>
-					<form>
-						<div class="form-group">
-							<label for="create-group-name">[[admin/manage/groups:name]]</label>
-							<input type="text" class="form-control" id="create-group-name" placeholder="[[admin/manage/groups:name]]" />
-						</div>
-						<div class="form-group">
-							<label for="create-group-desc">[[admin/manage/groups:description]]</label>
-							<input type="text" class="form-control" id="create-group-desc" placeholder="[[admin/manage/groups:description-placeholder]]" />
-						</div>
-						<div class="form-group">
-							<label>
-								<input id="create-group-private" name="private" type="checkbox" checked>
-								<strong>[[admin/manage/groups:private]]</strong>
-							</label>
-						</div>
-						<div class="form-group">
-							<label>
-								<input id="create-group-hidden" name="hidden" type="checkbox">
-								<strong>[[admin/manage/groups:hidden]]</strong>
-							</label>
-						</div>
-
-					</form>
-				</div>
-				<div class="modal-footer">
-					<button type="button" class="btn btn-default" data-dismiss="modal">
-						[[global:close]]
-					</button>
-					<button type="button" class="btn btn-primary" id="create-modal-go">
-						[[admin/manage/groups:create-button]]
-					</button>
-				</div>
-			</div>
-		</div>
-	</div>
 </div>
 
-<button id="create" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-    <i class="material-icons">add</i>
+<button id="create" class="btn btn-primary position-fixed bottom-0 end-0 px-3 py-2 mb-4 me-4 rounded-circle fs-4" type="button" style="width: 64px; height: 64px;">
+    <i class="fa fa-fw fa-plus"></i>
 </button>
diff --git a/src/views/admin/manage/privileges.tpl b/src/views/admin/manage/privileges.tpl
index 3bc1dccc7b..5e515b0f23 100644
--- a/src/views/admin/manage/privileges.tpl
+++ b/src/views/admin/manage/privileges.tpl
@@ -1,32 +1,32 @@
 <div class="row">
-	<form role="form" class="category">
-		<div class="">
-			<p>
-				[[admin/manage/categories:privileges.description]]
-			</p>
+	<div class="col-12">
+		<form role="form" class="category">
+			<div class="">
+				<p>
+					[[admin/manage/categories:privileges.description]]
+				</p>
 
-			<div class="lead">
-				[[admin/manage/categories:privileges.category-selector]]
-				<!-- IMPORT partials/category-selector.tpl -->
-			</div>
+				<div class="lead mb-3">
+					[[admin/manage/categories:privileges.category-selector]]
+					<!-- IMPORT admin/partials/category/selector-dropdown-left.tpl -->
+				</div>
 
-			<div class="privilege-table-container">
-				{{{ if cid }}}
-				<!-- IMPORT admin/partials/privileges/category.tpl -->
-				{{{ else }}}
-				<!-- IMPORT admin/partials/privileges/global.tpl -->
-				{{{ end }}}
+				<div class="privilege-table-container">
+					{{{ if cid }}}
+					<!-- IMPORT admin/partials/privileges/category.tpl -->
+					{{{ else }}}
+					<!-- IMPORT admin/partials/privileges/global.tpl -->
+					{{{ end }}}
+				</div>
 			</div>
-		</div>
-	</form>
+		</form>
+	</div>
 </div>
 
 <div class="floating-button">
-	<button id="discard" class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored" style="display: none;">
-		<i class="material-icons">undo</i>
+	<button id="discard" class="btn btn-primary position-fixed end-0 px-3 py-2 mb-4 me-4 rounded-circle fs-4" type="button" style="width: 64px; height: 64px; bottom: 5rem;">
+		<i class="fa fa-rotate-left"></i>
 	</button>
 
-	<button id="save" class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored primary">
-		<i class="material-icons">save</i>
-	</button>
+	<!-- IMPORT admin/partials/save_button.tpl -->
 </div>
\ No newline at end of file
diff --git a/src/views/admin/manage/registration.tpl b/src/views/admin/manage/registration.tpl
index e12f08d370..146db16602 100644
--- a/src/views/admin/manage/registration.tpl
+++ b/src/views/admin/manage/registration.tpl
@@ -1,14 +1,14 @@
 <div class="row">
-	<div class="col-xs-12">
-		<div class="registration panel panel-primary">
-			<div class="panel-heading">
+	<div class="col-12">
+		<div class="registration card mb-3">
+			<div class="card-header text-bg-primary">
 				[[admin/manage/registration:queue]]
 			</div>
-			<!-- IF !users.length -->
-			<p class="panel-body">
+			{{{ if !users.length }}}
+			<p class="card-body">
 				[[admin/manage/registration:description, {config.relative_path}/admin/settings/user#user-registration]]
 			</p>
-			<!-- ENDIF !users.length -->
+			{{{ end }}}
 			<div class="table-responsive">
 				<table class="table table-striped users-list">
 					<thead>
@@ -17,69 +17,65 @@
 							<th>[[admin/manage/registration:list.email]]</th>
 							<th class="hidden-xs">[[admin/manage/registration:list.ip]]</th>
 							<th class="hidden-xs">[[admin/manage/registration:list.time]]</th>
-							<!-- BEGIN customHeaders -->
-							<th class="hidden-xs">{customHeaders.label}</th>
-							<!-- END customHeaders -->
+							{{{ each customHeaders }}}
+							<th class="hidden-xs">{./label}</th>
+							{{{ end }}}
 							<th></th>
 						</tr>
 					</thead>
 					<tbody>
 						{{{ each users }}}
-						<tr data-username="{users.usernameEscaped}">
+						<tr data-username="{./usernameEscaped}">
 							<td>
-								<!-- IF users.usernameSpam -->
-								<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.username-spam, {users.spamData.username.frequency}, {users.spamData.username.appears}, {users.spamData.username.confidence}]]"></i>
-								<!-- ELSE -->
-								<!-- IF users.spamChecked -->
+								{{{ if ./usernameSpam }}}
+								<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.username-spam, {./spamData.username.frequency}, {./spamData.username.appears}, {./spamData.username.confidence}]]"></i>
+								{{{ else }}}
+								{{{ if ./spamChecked }}}
 								<i class="fa fa-check text-success"></i>
-								<!-- ENDIF users.spamChecked -->
-								<!-- ENDIF users.usernameSpam -->
-								{users.username}
+								{{{ end }}}
+								{{{ end }}}
+								{./username}
 							</td>
 							<td>
-								<!-- IF users.emailSpam -->
-								<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.email-spam, {users.spamData.email.frequency}, {users.spamData.email.appears}]]"></i>
-								<!-- ELSE -->
-								<!-- IF users.spamChecked -->
+								{{{ if ./emailSpam }}}
+								<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.email-spam, {./spamData.email.frequency}, {./spamData.email.appears}]]"></i>
+								{{{ else }}}
+								{{{ if ./spamChecked }}}
 								<i class="fa fa-check text-success"></i>
-								<!-- ENDIF users.spamChecked -->
-								<!-- ENDIF users.emailSpam -->
-								{users.email}
+								{{{ end }}}
+								{{{ end }}}
+								{./email}
 							</td>
 							<td class="hidden-xs">
-								<!-- IF users.ipSpam -->
-								<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.ip-spam, {users.spamData.ip.frequency}, {users.spamData.ip.appears}]]"></i>
-								<!-- ELSE -->
-								<!-- IF users.spamChecked -->
+								{{{ if ./ipSpam }}}
+								<i class="fa fa-times-circle text-danger" title="[[admin/manage/registration:list.ip-spam, {./spamData.ip.frequency}, {./spamData.ip.appears}]]"></i>
+								{{{ else }}}
+								{{{ if ./spamChecked }}}
 								<i class="fa fa-check text-success"></i>
-								<!-- ENDIF users.spamChecked -->
-								<!-- ENDIF users.ipSpam -->
-								{users.ip}
-								{{{ each users.ipMatch }}}
+								{{{ end }}}
+								{{{ end }}}
+								{./ip}
+								{{{ each ./ipMatch }}}
 								<br>
-								<!-- IF users.ipMatch.picture -->
-								<img src="{users.ipMatch.picture}" class="user-img" alt="" />
-								<!-- ELSE -->
-								<div class="user-img avatar avatar-sm" style="background-color: {users.ipMatch.icon:bgColor};">{users.ipMatch.icon:text}</div>
-								<!-- ENDIF users.ipMatch.picture -->
-								<a href="{config.relative_path}/uid/{users.ipMatch.uid}">{users.ipMatch.username}</a>
+								{buildAvatar(@value, "24px", true)}
+								<a href="{config.relative_path}/uid/{./uid}">{./username}</a>
 								{{{ end }}}
 							</td>
 							<td class="hidden-xs">
-								<span class="timeago" title="{users.timestampISO}"></span>
+								<span class="timeago" title="{./timestampISO}"></span>
 							</td>
 
-							{{{ each users.customRows }}}
-							<td class="hidden-xs">{users.customRows.value}</td>
+							{{{ each ./customRows }}}
+							<td class="hidden-xs">{./value}</td>
 							{{{ end }}}
 
 							<td>
-								<div class="btn-group pull-right">
-									<button class="btn btn-success btn-xs" data-action="accept"><i class="fa fa-check"></i></button>
-									<button class="btn btn-danger btn-xs" data-action="delete"><i class="fa fa-times"></i></button>
-									{{{ each users.customActions }}}
-									<button id="{users.customActions.id}" title="{users.customActions.title}" class="btn btn-xs {users.customActions.class}">
-										<i class="fa {users.customActions.icon}"></i>
+								<div class="btn-group float-end">
+									<button class="btn btn-success btn-sm" data-action="accept"><i class="fa fa-check"></i></button>
+									<button class="btn btn-danger btn-sm" data-action="delete"><i class="fa fa-times"></i></button>
+									{{{ each ./customActions }}}
+									<button id="{./id}" title="{./title}" class="btn btn-sm {./class}">
+										<i class="fa {./icon}"></i>
 									</button>
 									{{{ end }}}
 								</div>
@@ -93,11 +89,11 @@
 			<!-- IMPORT partials/paginator.tpl -->
 		</div>
 
-		<div class="invitations panel panel-success">
-			<div class="panel-heading">
+		<div class="invitations card">
+			<div class="card-header text-bg-success">
 				[[admin/manage/registration:invitations]]
 			</div>
-			<p class="panel-body">
+			<p class="card-body">
 				[[admin/manage/registration:invitations.description]]
 			</p>
 			<div class="table-responsive">
@@ -114,11 +110,11 @@
 						{{{ each invites.invitations }}}
 						<tr data-invitation-mail="{invites.invitations.email}"
 								data-invited-by="{invites.username}">
-							<td class ="invited-by"><!-- IF @first -->{invites.username}<!-- ENDIF @first --></td>
+							<td class ="invited-by">{{{ if @first }}}{invites.username}{{{ end }}}</td>
 							<td>{invites.invitations.email}</td>
 							<td>{invites.invitations.username}
-								<div class="btn-group pull-right">
-									<button class="btn btn-danger btn-xs" data-action="delete"><i class="fa fa-times"></i></button>
+								<div class="btn-group float-end">
+									<button class="btn btn-danger btn-sm" data-action="delete"><i class="fa fa-times"></i></button>
 								</div>
 							</td>
 						</tr>
diff --git a/src/views/admin/manage/tags.tpl b/src/views/admin/manage/tags.tpl
index 0d3a0fa40d..13acef00d2 100644
--- a/src/views/admin/manage/tags.tpl
+++ b/src/views/admin/manage/tags.tpl
@@ -1,50 +1,55 @@
 <div class="tags row">
 	<div class="col-lg-9">
-		<div class="panel panel-default tag-management">
-			<div class="panel-body">
+		<div class="card tag-management">
+			<div class="card-body">
 				<div class="alert alert-info">
 					<p>[[admin/manage/tags:description]]</p>
 				</div>
 
-				<!-- IF !tags.length -->
+				{{{ if !tags.length }}}
 				[[admin/manage/tags:none]]
-				<!-- ENDIF !tags.length -->
+				{{{ end }}}
 
 				<div class="tag-list">
-					<!-- BEGIN tags -->
+					{{{ each tags }}}
 					<div class="tag-row" data-tag="{tags.valueEscaped}">
 						<div>
-							<span class="mdl-chip mdl-chip--contact tag-item" data-tag="{tags.valueEscaped}" style="
-								<!-- IF tags.color -->color: {tags.color};<!-- ENDIF tags.color -->
-								<!-- IF tags.bgColor -->background-color: {tags.bgColor};<!-- ENDIF tags.bgColor -->">
-							    <span class="mdl-chip__contact mdl-color--light-blue mdl-color-text--white tag-topic-count">{tags.score}</span>
-							    <span class="mdl-chip__text">{tags.valueEscaped}</span>
-							</span>
+							<button disabled class="rounded-3 btn btn-light">
+								{tags.valueEscaped}
+								<span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-secondary">{tags.score} <span class="visually-hidden">[[tags:tags]]</span>
+							</button>
 						</div>
 					</div>
-					<!-- END tags -->
+					{{{ end }}}
 				</div>
 			</div>
 		</div>
 	</div>
 
 	<div class="col-lg-3 acp-sidebar">
-		<div class="panel panel-default">
-			<div class="panel-body">
-				<button class="btn btn-primary btn-block" id="create">[[admin/manage/tags:create]]</button>
-				<button class="btn btn-primary btn-block" id="rename">[[admin/manage/tags:rename]]</button>
-				<button class="btn btn-warning btn-block" id="deleteSelected">[[admin/manage/tags:delete]]</button>
+		<div class="card">
+			<div class="card-body">
+				<div class="d-grid gap-2">
+					<button class="btn btn-primary btn-block" id="create">[[admin/manage/tags:create]]</button>
+					<button class="btn btn-primary btn-block" id="rename">[[admin/manage/tags:rename]]</button>
+					<button class="btn btn-warning btn-block" id="deleteSelected">[[admin/manage/tags:delete]]</button>
+				</div>
 				<hr />
-				<a class="btn btn-default btn-block" href="{config.relative_path}/admin/settings/tags">
-					<i class="fa fa-external-link"></i>
-					[[admin/manage/tags:settings]]
-				</a>
+				<div class="d-grid gap-2">
+					<a class="btn btn-outline-secondary" href="{config.relative_path}/admin/settings/tags">
+						<i class="fa fa-external-link"></i>
+						[[admin/manage/tags:settings]]
+					</a>
+				</div>
 			</div>
 		</div>
 
-		<div class="panel panel-default">
-			<div class="panel-body">
-				<input class="form-control" type="text" id="tag-search" placeholder="[[admin/manage/tags:search]]"/><br/>
+		<div class="card">
+			<div class="card-body">
+				<div class="input-group">
+					<input class="form-control" type="text" id="tag-search" placeholder="[[admin/manage/tags:search]]"/>
+					<span class="input-group-text"><i class="fa fa-search"></i></span>
+				</div>
 			</div>
 		</div>
 	</div>
@@ -53,13 +58,13 @@
 		<div class="modal-dialog">
 			<div class="modal-content">
 				<div class="modal-header">
-					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
 					<h4 class="modal-title">[[admin/manage/tags:create]]</h4>
+					<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
 				</div>
 				<div class="modal-body">
 					<form>
-						<div class="form-group">
-							<label for="create-tag-name">[[admin/manage/tags:name]]</label>
+						<div class="mb-3">
+							<label class="form-label" for="create-tag-name">[[admin/manage/tags:name]]</label>
 							<input type="text" class="form-control" id="create-tag-name" placeholder="[[admin/manage/tags:name]]" />
 						</div>
 					</form>
@@ -73,7 +78,7 @@
 
 	<div class="rename-modal hidden">
 		<div class="form-group">
-			<label for="value">[[admin/manage/tags:name]]</label>
+			<label class="form-label" for="value">[[admin/manage/tags:name]]</label>
 			<input id="value" data-name="value" value="" class="form-control" />
 		</div>
 	</div>
diff --git a/src/views/admin/manage/uploads.tpl b/src/views/admin/manage/uploads.tpl
index e478d2b023..757312c730 100644
--- a/src/views/admin/manage/uploads.tpl
+++ b/src/views/admin/manage/uploads.tpl
@@ -1,11 +1,11 @@
 <!-- IMPORT partials/breadcrumbs.tpl -->
 <div class="clearfix">
-	<div class="pull-right">
+	<div class="float-end">
 		<div class="btn-group">
-			<button id="new-folder" class="btn-primary"><i class="fa fa-folder"></i> [[admin/manage/uploads:new-folder]]</button>
+			<button id="new-folder" class="btn btn-primary"><i class="fa fa-folder"></i> [[admin/manage/uploads:new-folder]]</button>
 		</div>
 		<div class="btn-group">
-			<button id="upload" class="btn-success"><i class="fa fa-upload"></i> [[global:upload]]</button>
+			<button id="upload" class="btn btn-success"><i class="fa fa-upload"></i> [[global:upload]]</button>
 		</div>
 	</div>
 </div>
@@ -15,42 +15,42 @@
 		<thead>
 			<tr>
 				<th>[[admin/manage/uploads:filename]]</th>
-				<!-- IF showPids --><th class="text-right">[[admin/manage/uploads:usage]]</th><!-- END -->
-				<th class="text-right">[[admin/manage/uploads:size/filecount]]</th>
+				{{{ if showPids }}}<th class="text-end">[[admin/manage/uploads:usage]]</th>{{{ end }}}
+				<th class="text-end">[[admin/manage/uploads:size/filecount]]</th>
 				<th></th>
 			</tr>
 		</thead>
 		<tbody>
-			<!-- BEGIN files -->
+			{{{ each files }}}
 			<tr data-path="{files.path}">
-				<!-- IF files.isDirectory -->
+				{{{ if files.isDirectory }}}
 				<td class="col-md-6" role="button">
 					<i class="fa fa-fw fa-folder-o"></i> <a href="{config.relative_path}/admin/manage/uploads?dir={files.path}">{files.name}</a>
 				</td>
-				<!-- ENDIF files.isDirectory -->
+				{{{ end }}}
 
-				<!-- IF files.isFile -->
+				{{{ if files.isFile }}}
 				<td class="col-md-6">
 					<i class="fa fa-fw fa-file-text-o"></i> <a href="{config.relative_path}{files.url}" target="_blank">{files.name}</a>
 				</td>
-				<!-- ENDIF files.isFile -->
+				{{{ end }}}
 
-				<!-- IF showPids -->
-				<td class="col-md-3 text-right">
-					{{{ each ../inPids }}}
+				{{{ if showPids }}}
+				<td class="col-md-3 text-end">
+					{{{ each ./inPids }}}
 					<a target="_blank" href="{config.relative_path}/post/{@value}"><span class="label label-default">{@value}</span></a>
 					{{{ end }}}
-					<!-- IF !../inPids.length -->
+					{{{ if !./inPids.length }}}
 					<span class="label label-danger">[[admin/manage/uploads:orphaned]]</span>
-					<!-- END -->
+					{{{ end }}}
 				</td>
-				<!-- END -->
+				{{{ end }}}
 
-				<td class="col-md-2 text-right"><!-- IF files.isFile -->{files.sizeHumanReadable}<!-- ELSE -->[[admin/manage/uploads:filecount, {files.fileCount}]]<!-- ENDIF files.isFile --></td>
+				<td class="col-md-2 text-end">{{{ if files.isFile }}}{files.sizeHumanReadable}{{{ else }}}[[admin/manage/uploads:filecount, {files.fileCount}]]{{{ end }}}</td>
 
-				<td role="button" class="col-md-1 text-right"><i class="delete fa fa-fw fa-trash-o <!-- IF !files.isFile --> hidden<!-- ENDIF !files.isFile -->"></i></td>
+				<td role="button" class="col-md-1 text-end"><i class="delete fa fa-fw fa-trash-o {{{ if !files.isFile }}} hidden{{{ end }}}"></i></td>
 			</tr>
-			<!-- END files -->
+			{{{ end }}}
 		</tbody>
 	</table>
 </div>
diff --git a/src/views/admin/manage/users.tpl b/src/views/admin/manage/users.tpl
index 37c79b780c..c86ce850d1 100644
--- a/src/views/admin/manage/users.tpl
+++ b/src/views/admin/manage/users.tpl
@@ -1,72 +1,78 @@
 <div class="row manage-users">
 	<div class="col-lg-12">
-		<div class="clearfix">
+		<div class="d-flex justify-content-between">
+			<div class="row">
+				<div class="col">
+					<div class="input-group">
+						<input type="text" class="form-control" placeholder="[[global:search]]" id="user-search" value="{query}">
+						<span class="input-group-text px-2 search-button"><i class="fa fa-search"></i></span>
+					</div>
+				</div>
+				<div class="col">
+					<select id="user-search-by" class="form-select">
+						<option value="username" {{{if searchBy_username}}}selected{{{end}}}>[[admin/manage/users:search.username]]</option>
+						<option value="email" {{{if searchBy_email}}}selected{{{end}}}>[[admin/manage/users:search.email]]</option>
+						<option value="uid" {{{if searchBy_uid}}}selected{{{end}}}>[[admin/manage/users:search.uid]]</option>
+						<option value="ip" {{{if searchBy_ip}}}selected{{{end}}}>[[admin/manage/users:search.ip]]</option>
+					</select>
+				</div>
+				<div class="col">
+					<select id="results-per-page" class="form-select">
+						<option value="50">[[admin/manage/users:50-per-page]]</option>
+						<option value="100">[[admin/manage/users:100-per-page]]</option>
+						<option value="250">[[admin/manage/users:250-per-page]]</option>
+						<option value="500">[[admin/manage/users:500-per-page]]</option>
+					</select>
+				</div>
+				<div class="col">
+					<div class="btn-group" id="filter-by">
+						<button type="button" class="btn btn-link dropdown-toggle" data-bs-toggle="dropdown">
+							[[admin/manage/users:filter-by]] <span class="caret"></span>
+						</button>
+						<ul class="dropdown-menu" role="menu">
+							<li data-filter-by="unverified" role="presentation">
+								<a class="dropdown-item" role="menuitem" href="#"><i class="fa fa-fw {{{ if filterBy_unverified }}}fa-check{{{end}}}"></i>[[admin/manage/users:pills.unvalidated]]</a>
+							</li>
+							<li data-filter-by="verified" role="presentation">
+								<a class="dropdown-item" role="menuitem" href="#"><i class="fa fa-fw {{{ if filterBy_verified }}}fa-check{{{end}}}"></i>[[admin/manage/users:pills.validated]]</a>
+							</li>
+							<li data-filter-by="banned" role="presentation">
+								<a class="dropdown-item" role="menuitem" href="#"><i class="fa fa-fw {{{ if filterBy_banned }}}fa-check{{{end}}}"></i>[[admin/manage/users:pills.banned]]</a>
+							</li>
+						</ul>
+					</div>
+				</div>
+			</div>
 
-			<div class="pull-right">
+			<div class="">
 				<div class="btn-group">
-					<button class="btn btn-primary dropdown-toggle" id="action-dropdown" data-toggle="dropdown" type="button" disabled="disabled">[[admin/manage/users:edit]] <span class="caret"></span></button>
-					<ul class="dropdown-menu dropdown-menu-right">
-						<li><a href="#" class="validate-email"><i class="fa fa-fw fa-check"></i> [[admin/manage/users:validate-email]]</a></li>
-						<li><a href="#" class="send-validation-email"><i class="fa fa-fw fa-mail-forward"></i> [[admin/manage/users:send-validation-email]]</a></li>
-						<li><a href="#" class="password-reset-email"><i class="fa fa-fw fa-key"></i> [[admin/manage/users:password-reset-email]]</a></li>
-						<li><a href="#" class="force-password-reset"><i class="fa fa-fw fa-unlock-alt"></i> [[admin/manage/users:force-password-reset]]</a></li>
-						<li><a href="#" class="manage-groups"><i class="fa fa-fw fa-users"></i> [[admin/manage/users:manage-groups]]</a></li>
-						<li class="divider"></li>
-						<li><a href="#" class="ban-user"><i class="fa fa-fw fa-gavel"></i> [[admin/manage/users:ban]]</a></li>
-						<li><a href="#" class="ban-user-temporary"><i class="fa fa-fw fa-clock-o"></i> [[admin/manage/users:temp-ban]]</a></li>
-						<li><a href="#" class="unban-user"><i class="fa fa-fw fa-comment-o"></i> [[admin/manage/users:unban]]</a></li>
-						<li><a href="#" class="reset-lockout"><i class="fa fa-fw fa-unlock"></i> [[admin/manage/users:reset-lockout]]</a></li>
+					<button class="btn btn-primary dropdown-toggle" id="action-dropdown" data-bs-toggle="dropdown" type="button" disabled="disabled">[[admin/manage/users:edit]] <span class="caret"></span></button>
+					<ul class="dropdown-menu dropdown-menu-end">
+						<li><a href="#" class="dropdown-item validate-email"><i class="fa fa-fw fa-check"></i> [[admin/manage/users:validate-email]]</a></li>
+						<li><a href="#" class="dropdown-item send-validation-email"><i class="fa fa-fw fa-mail-forward"></i> [[admin/manage/users:send-validation-email]]</a></li>
+						<li><a href="#" class="dropdown-item password-reset-email"><i class="fa fa-fw fa-key"></i> [[admin/manage/users:password-reset-email]]</a></li>
+						<li><a href="#" class="dropdown-item force-password-reset"><i class="fa fa-fw fa-unlock-alt"></i> [[admin/manage/users:force-password-reset]]</a></li>
+						<li><a href="#" class="dropdown-item manage-groups"><i class="fa fa-fw fa-users"></i> [[admin/manage/users:manage-groups]]</a></li>
+						<li class="dropdown-divider"></li>
+						<li><a href="#" class="dropdown-item ban-user"><i class="fa fa-fw fa-gavel"></i> [[admin/manage/users:ban]]</a></li>
+						<li><a href="#" class="dropdown-item ban-user-temporary"><i class="fa fa-fw fa-clock-o"></i> [[admin/manage/users:temp-ban]]</a></li>
+						<li><a href="#" class="dropdown-item unban-user"><i class="fa fa-fw fa-comment-o"></i> [[admin/manage/users:unban]]</a></li>
+						<li><a href="#" class="dropdown-item reset-lockout"><i class="fa fa-fw fa-unlock"></i> [[admin/manage/users:reset-lockout]]</a></li>
 						<li class="divider"></li>
-						<li><a href="#" class="delete-user"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:delete]]</a></li>
-						<li><a href="#" class="delete-user-content"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:delete-content]]</a></li>
-						<li><a href="#" class="delete-user-and-content"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:purge]]</a></li>
+						<li><a href="#" class="dropdown-item delete-user"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:delete]]</a></li>
+						<li><a href="#" class="dropdown-item delete-user-content"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:delete-content]]</a></li>
+						<li><a href="#" class="dropdown-item delete-user-and-content"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:purge]]</a></li>
 					</ul>
 				</div>
 				<div class="btn-group">
-					<button class="btn btn-default dropdown-toggle" data-toggle="dropdown" type="button"><i class="fa fa-ellipsis-v"></i></button>
-					<ul class="dropdown-menu dropdown-menu-right">
-						<li><a href="#" data-action="create">[[admin/manage/users:create]]</a></li>
-						{{{ if showInviteButton }}}<li><a href="#" component="user/invite">[[admin/manage/users:invite]]</a></li>{{{ end }}}
-						<li><a target="_blank" href="#" class="export-csv">[[admin/manage/users:download-csv]]</a></li>
+					<button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button"><i class="fa fa-ellipsis-v"></i></button>
+					<ul class="dropdown-menu dropdown-menu-end">
+						<li><a class="dropdown-item" href="#" data-action="create">[[admin/manage/users:create]]</a></li>
+						{{{ if showInviteButton }}}<li><a class="dropdown-item" href="#" component="user/invite">[[admin/manage/users:invite]]</a></li>{{{ end }}}
+						<li><a target="_blank" href="#" class="dropdown-item export-csv">[[admin/manage/users:download-csv]]</a></li>
 					</ul>
 				</div>
 			</div>
-
-			<form class="form-inline pull-left">
-				<div class="input-group">
-					<input type="text" class="form-control" placeholder="[[global:search]]" id="user-search" value="{query}">
-					<span class="input-group-addon search-button"><i class="fa fa-search"></i></span>
-				</div>
-				<select id="user-search-by" class="form-control">
-					<option value="username" {{{if searchBy_username}}}selected{{{end}}}>[[admin/manage/users:search.username]]</option>
-					<option value="email" {{{if searchBy_email}}}selected{{{end}}}>[[admin/manage/users:search.email]]</option>
-					<option value="uid" {{{if searchBy_uid}}}selected{{{end}}}>[[admin/manage/users:search.uid]]</option>
-					<option value="ip" {{{if searchBy_ip}}}selected{{{end}}}>[[admin/manage/users:search.ip]]</option>
-				</select>
-				<select id="results-per-page" class="form-control">
-					<option value="50">[[admin/manage/users:50-per-page]]</option>
-					<option value="100">[[admin/manage/users:100-per-page]]</option>
-					<option value="250">[[admin/manage/users:250-per-page]]</option>
-					<option value="500">[[admin/manage/users:500-per-page]]</option>
-				</select>
-
-				<div class="btn-group" id="filter-by">
-					<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown">
-						[[admin/manage/users:filter-by]] <span class="caret"></span>
-					</button>
-					<ul class="dropdown-menu" role="menu">
-						<li data-filter-by="unverified" role="presentation">
-							<a role="menuitem" href="#"><i class="fa fa-fw {{{ if filterBy_unverified }}}fa-check{{{end}}}"></i>[[admin/manage/users:pills.unvalidated]]</a>
-						</li>
-						<li data-filter-by="verified" role="presentation">
-							<a role="menuitem" href="#"><i class="fa fa-fw {{{ if filterBy_verified }}}fa-check{{{end}}}"></i>[[admin/manage/users:pills.validated]]</a>
-						</li>
-						<li data-filter-by="banned" role="presentation">
-							<a role="menuitem" href="#"><i class="fa fa-fw {{{ if filterBy_banned }}}fa-check{{{end}}}"></i>[[admin/manage/users:pills.banned]]</a>
-						</li>
-					</ul>
-				</div>
-			</form>
 		</div>
 
 		<hr/>
@@ -79,42 +85,36 @@
 			<div id="user-notfound-notify" class="label label-danger {{{if !query}}}hidden{{{end}}} {{{if matchCount}}}hidden{{{end}}}">[[admin/manage/users:search.not-found]]</div>
 		</div>
 
-		<!-- IF inactive -->
-		<a href="{config.relative_path}/admin/manage/users/inactive?months=3&resultsPerPage={resultsPerPage}" class="btn btn-default">[[admin/manage/users:inactive.3-months]]</a>
-		<a href="{config.relative_path}/admin/manage/users/inactive?months=6&resultsPerPage={resultsPerPage}" class="btn btn-default">[[admin/manage/users:inactive.6-months]]</a>
-		<a href="{config.relative_path}/admin/manage/users/inactive?months=12&resultsPerPage={resultsPerPage}" class="btn btn-default">[[admin/manage/users:inactive.12-months]]</a>
-		<!-- ENDIF inactive -->
-
 		<div class="table-responsive">
 			<table class="table table-striped users-table">
 				<thead>
 					<tr>
 						<th><input component="user/select/all" type="checkbox"/></th>
-						<th class="text-right text-muted">[[admin/manage/users:users.uid]]</th>
+						<th class="text-end text-muted">[[admin/manage/users:users.uid]]</th>
 						<th class="text-muted">[[admin/manage/users:users.username]]</th>
 						<th class="text-muted">[[admin/manage/users:users.email]]</th>
 						<th class="text-muted">[[admin/manage/users:users.ip]]</th>
-						<th data-sort="postcount" class="text-right pointer">[[admin/manage/users:users.postcount]] {{{if sort_postcount}}}<i class="fa fa-sort-{{{if reverse}}}down{{{else}}}up{{{end}}}">{{{end}}}</th>
-						<th data-sort="reputation" class="text-right pointer">[[admin/manage/users:users.reputation]] {{{if sort_reputation}}}<i class="fa fa-sort-{{{if reverse}}}down{{{else}}}up{{{end}}}">{{{end}}}</th>
-						<th data-sort="flags" class="text-right pointer">[[admin/manage/users:users.flags]] {{{if sort_flags}}}<i class="fa fa-sort-{{{if reverse}}}down{{{else}}}up{{{end}}}">{{{end}}}</th>
+						<th data-sort="postcount" class="text-end pointer">[[admin/manage/users:users.postcount]] {{{if sort_postcount}}}<i class="fa fa-sort-{{{if reverse}}}down{{{else}}}up{{{end}}}">{{{end}}}</th>
+						<th data-sort="reputation" class="text-end pointer">[[admin/manage/users:users.reputation]] {{{if sort_reputation}}}<i class="fa fa-sort-{{{if reverse}}}down{{{else}}}up{{{end}}}">{{{end}}}</th>
+						<th data-sort="flags" class="text-end pointer">[[admin/manage/users:users.flags]] {{{if sort_flags}}}<i class="fa fa-sort-{{{if reverse}}}down{{{else}}}up{{{end}}}">{{{end}}}</th>
 						<th data-sort="joindate" class="pointer">[[admin/manage/users:users.joined]] {{{if sort_joindate}}}<i class="fa fa-sort-{{{if reverse}}}down{{{else}}}up{{{end}}}">{{{end}}}</th>
 						<th data-sort="lastonline" class="pointer">[[admin/manage/users:users.last-online]] {{{if sort_lastonline}}}<i class="fa fa-sort-{{{if reverse}}}down{{{else}}}up{{{end}}}">{{{end}}}</th>
 					</tr>
 				</thead>
 				<tbody>
-					<!-- BEGIN users -->
+					{{{ each users }}}
 					<tr class="user-row">
 						<th><input component="user/select/single" data-uid="{users.uid}" type="checkbox"/></th>
-						<td class="text-right">{users.uid}</td>
+						<td class="text-end">{users.uid}</td>
 						<td>
-							<i title="[[admin/manage/users:users.banned]]" class="ban fa fa-gavel text-danger<!-- IF !users.banned --> hidden<!-- ENDIF !users.banned -->"></i>
-							<i class="administrator fa fa-shield text-success<!-- IF !users.administrator --> hidden<!-- ENDIF !users.administrator -->"></i>
+							<i title="[[admin/manage/users:users.banned]]" class="ban fa fa-gavel text-danger{{{ if !users.banned }}} hidden{{{ end }}}"></i>
+							<i class="administrator fa fa-shield text-success{{{ if !users.administrator }}} hidden{{{ end }}}"></i>
 							<a href="{config.relative_path}/user/{users.userslug}"> {users.username}</a>
 						</td>
 						<td>
 							{{{ if ../email }}}
-							<i class="validated fa fa-check text-success<!-- IF !users.email:confirmed --> hidden<!-- ENDIF !users.email:confirmed -->" title="validated"></i>
-							<i class="notvalidated fa fa-check text-muted<!-- IF users.email:confirmed --> hidden<!-- ENDIF users.email:confirmed -->" title="not validated"></i>
+							<i class="validated fa fa-check text-success{{{ if !users.email:confirmed }}} hidden{{{ end }}}" title="validated"></i>
+							<i class="notvalidated fa fa-check text-muted{{{ if users.email:confirmed }}} hidden{{{ end }}}" title="not validated"></i>
 							{../email}
 							{{{ else }}}
 							<i class="notvalidated fa fa-check text-muted" title="not validated"></i>
@@ -122,13 +122,13 @@
 							{{{ end }}}
 						</td>
 						<td>{users.ip}</td>
-						<td class="text-right">{users.postcount}</td>
-						<td class="text-right">{users.reputation}</td>
-						<td class="text-right"><!-- IF users.flags -->{users.flags}<!-- ELSE -->0<!-- ENDIF users.flags --></td>
+						<td class="text-end">{users.postcount}</td>
+						<td class="text-end">{users.reputation}</td>
+						<td class="text-end">{{{ if users.flags }}}{users.flags}{{{ else }}}0{{{ end }}}</td>
 						<td><span class="timeago" title="{users.joindateISO}"></span></td>
 						<td><span class="timeago" title="{users.lastonlineISO}"></span></td>
 					</tr>
-					<!-- END users -->
+					{{{ end }}}
 				</tbody>
 			</table>
 		</div>
diff --git a/src/views/admin/partials/api/sorted-list/form.tpl b/src/views/admin/partials/api/sorted-list/form.tpl
index b69447aecb..2f129b43e4 100644
--- a/src/views/admin/partials/api/sorted-list/form.tpl
+++ b/src/views/admin/partials/api/sorted-list/form.tpl
@@ -1,15 +1,15 @@
 <form>
     <input type="hidden" name="token" />
     <input type="hidden" name="timestamp" />
-    <div class="form-group">
-        <label for="uid">[[admin/settings/api:uid]]</label>
+    <div class="mb-3">
+        <label class="form-label" for="uid">[[admin/settings/api:uid]]</label>
         <input type="text" inputmode="numeric" pattern="\d+" name="uid" class="form-control" placeholder="1" />
-        <p class="help-text">
+        <p class="form-text">
             [[admin/settings/api:uid-help-text]]
         </p>
     </div>
-    <div class="form-group">
-        <label for="description">[[admin/settings/api:description]]</label>
+    <div class="mb-3">
+        <label class="form-label" for="description">[[admin/settings/api:description]]</label>
         <input type="text" name="description" class="form-control" placeholder="Description" />
     </div>
 </form>
\ No newline at end of file
diff --git a/src/views/admin/partials/api/sorted-list/item.tpl b/src/views/admin/partials/api/sorted-list/item.tpl
index 8c8daaa11f..c34836e758 100644
--- a/src/views/admin/partials/api/sorted-list/item.tpl
+++ b/src/views/admin/partials/api/sorted-list/item.tpl
@@ -1,8 +1,8 @@
 <li data-type="item" class="list-group-item">
     <div class="row">
-        <div class="col-xs-9">
-            <span class="label label-primary">{{{ if uid }}}uid {uid}{{{ else }}}master{{{ end }}}</span>
-            {{{ if token }}}<input type="text" readonly="readonly" value="{token}" size="32" />{{{ else }}}<em class="text-warning">[[admin/settings/api:token-on-save]]</em>{{{ end }}}<br />
+        <div class="col-9">
+            <span class="badge bg-primary">{{{ if uid }}}uid {uid}{{{ else }}}master{{{ end }}}</span>
+            {{{ if token }}}<input class="form-control-plaintext" type="text" readonly="readonly" value="{token}" size="32" />{{{ else }}}<em class="text-warning">[[admin/settings/api:token-on-save]]</em>{{{ end }}}<br />
             <p>
                 {{{ if description }}}
                 {description}
@@ -10,10 +10,10 @@
                 <em>[[admin/settings/api:no-description]]</em>
                 {{{ end }}}
                 <br />
-                <small>{timestampISO}</small>
+                <small class="text-info">{./lastSeen}</small>
             </p>
         </div>
-        <div class="col-xs-3 text-right">
+        <div class="col-3 text-end">
             <button type="button" data-type="edit" class="btn btn-info">Edit</button>
             <button type="button" data-type="remove" class="btn btn-danger">Delete</button>
         </div>
diff --git a/src/views/admin/partials/blacklist-validate.tpl b/src/views/admin/partials/blacklist-validate.tpl
index 3d4aba6225..723c5ece14 100644
--- a/src/views/admin/partials/blacklist-validate.tpl
+++ b/src/views/admin/partials/blacklist-validate.tpl
@@ -2,13 +2,13 @@
 	[[ip-blacklist:validate.x-valid, {valid.length}, {numRules}]]
 </p>
 
-<!-- IF invalid.length -->
+{{{ if invalid.length }}}
 <p>
 	[[ip-blacklist:validate.x-invalid, {invalid.length}]]
 </p>
 <ul>
-	<!-- BEGIN invalid -->
+	{{{ each invalid }}}
 	<li><code>{@value}</code></li>
-	<!-- END invalid -->
+	{{{ end }}}
 </ul>
-<!-- ENDIF invalid.length -->
\ No newline at end of file
+{{{ end }}}
\ No newline at end of file
diff --git a/src/views/admin/partials/categories/category-rows.tpl b/src/views/admin/partials/categories/category-rows.tpl
index 7c4429766e..670f0d50f9 100644
--- a/src/views/admin/partials/categories/category-rows.tpl
+++ b/src/views/admin/partials/categories/category-rows.tpl
@@ -1,6 +1,6 @@
 <ul data-cid="{cid}">
 {{{ each categories }}}
-    <li data-cid="{categories.cid}" data-parent-cid="{categories.parentCid}" data-name="{categories.name}" <!-- IF categories.disabled -->class="disabled"<!-- ENDIF categories.disabled -->>
+    <li data-cid="{categories.cid}" data-parent-cid="{categories.parentCid}" data-name="{categories.name}" {{{ if categories.disabled }}}class="disabled"{{{ end }}}>
         <div class="row category-row">
             <div class="col-md-9">
                 <div class="clearfix">
@@ -8,32 +8,30 @@
                         <i class="fa fa-chevron-down"></i>
                     </div>
                     <div class="information">
-                        <div class="icon" style="
-                            color: {categories.color};
-                            background-color: {categories.bgColor};
-                            <!-- IF categories.backgroundImage -->
-                            background-image: url('{categories.backgroundImage}');
-                            <!-- ENDIF categories.backgroundImage -->
-                        ">
-                            <i data-name="icon" value="{categories.icon}" class="fa {categories.icon}"></i>
+                        <div class="float-start me-1">
+                        {buildCategoryIcon(@value, "24px", "rounded-circle")}
                         </div>
                         <h5 class="category-header"><a href="{config.relative_path}/admin/manage/categories/{categories.cid}">{categories.name}</a> {{{ if categories.link }}}<small><a class="text-muted" href="{categories.link}"><i class="fa fa-link"></i> {categories.link}</a></small>{{{ end }}}</h5>
                     </div>
                 </div>
             </div>
             <div class="col-md-3">
-                <div class="clearfix pull-right text-right">
+                <div class="clearfix float-end text-end">
                     <div class="btn-group category-tools">
-                        <button class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" type="button"><i class="fa fa-fw fa-ellipsis-h"></i></button>
-                        <ul class="dropdown-menu dropdown-menu-right">
-                            <li><a href="./categories/{categories.cid}">[[admin/manage/categories:edit]]</a></li>
-                            <li><a href="./categories/{categories.cid}/analytics">[[admin/manage/categories:analytics]]</a></li>
-                            <li><a href="{config.relative_path}/admin/manage/privileges/{categories.cid}">[[admin/manage/categories:privileges]]</a></li>
+                        <button class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" type="button"><i class="fa fa-fw fa-ellipsis-h"></i></button>
+                        <ul class="dropdown-menu dropdown-menu-end">
+                            <li><a class="dropdown-item" href="./categories/{categories.cid}">[[admin/manage/categories:edit]]</a></li>
+                            <li><a class="dropdown-item" href="./categories/{categories.cid}/analytics">[[admin/manage/categories:analytics]]</a></li>
+                            <li><a class="dropdown-item" href="{config.relative_path}/admin/manage/privileges/{categories.cid}">[[admin/manage/categories:privileges]]</a></li>
 
-                            <li><a href="{{{if categories.link}}}{categories.link}{{{else}}}{config.relative_path}/category/{categories.cid}{{{end}}}" target="_blank">[[admin/manage/categories:view-category]]</a></li>
+                            <li><a class="dropdown-item" href="{{{if categories.link}}}{categories.link}{{{else}}}{config.relative_path}/category/{categories.cid}{{{end}}}" target="_blank">[[admin/manage/categories:view-category]]</a></li>
 
                             <li>
-                                <a href="#" data-disable-cid="{categories.cid}" data-action="toggle" data-disabled="{categories.disabled}">
+                                <a href="#" class="set-order dropdown-item" data-cid="{categories.cid}" data-order="{categories.order}">[[admin/manage/categories:set-order]]</a>
+                            </li>
+                            <li class="dropdown-divider"></li>
+                            <li>
+                                <a class="dropdown-item" href="#" data-disable-cid="{categories.cid}" data-action="toggle" data-disabled="{categories.disabled}">
                                 {{{if categories.disabled}}}
                                 [[admin/manage/categories:enable]]
                                 {{{else}}}
@@ -41,9 +39,6 @@
                                 {{{end}}}
                                 </a>
                             </li>
-                            <li>
-                                <a href="#" class="set-order" data-cid="{categories.cid}" data-order="{categories.order}">[[admin/manage/categories:set-order]]</a>
-                            </li>
                         </ul>
                     </div>
                 </div>
diff --git a/src/views/admin/partials/categories/copy-settings.tpl b/src/views/admin/partials/categories/copy-settings.tpl
index ab1f13c36a..b17b4264c7 100644
--- a/src/views/admin/partials/categories/copy-settings.tpl
+++ b/src/views/admin/partials/categories/copy-settings.tpl
@@ -1,7 +1,7 @@
 <!-- IMPORT admin/partials/categories/select-category.tpl -->
-<div class="form-group">
-    <label for="copyParent">
-        <input id="copyParent" name="copyParent" type="checkbox">
+<div class="mt-3">
+    <label class="form-label" for="copyParent">
+        <input id="copyParent" name="copyParent" type="checkbox" class="form-check-input">
         <strong>[[admin/manage/categories:copy-parent]]</strong>
     </label>
 </div>
\ No newline at end of file
diff --git a/src/views/admin/partials/categories/create.tpl b/src/views/admin/partials/categories/create.tpl
index a76e195d89..60a4bc3ab9 100644
--- a/src/views/admin/partials/categories/create.tpl
+++ b/src/views/admin/partials/categories/create.tpl
@@ -1,27 +1,26 @@
 <form type="form">
-	<div class="form-group">
-		<label for="name">[[admin/manage/categories:name]]</label>
+	<div class="mb-3">
+		<label class="form-label" for="name">[[admin/manage/categories:name]]</label>
 		<input type="text" class="form-control" name="name" id="name" />
 	</div>
-	<div class="form-group" id="parentCidGroup">
-		<label for="parentCid">[[admin/manage/categories:optional-parent-category]]</label>
-		<!-- IMPORT partials/category-selector.tpl -->
+	<div class="mb-3" id="parentCidGroup">
+		<label class="form-label" for="parentCid">[[admin/manage/categories:optional-parent-category]]</label>
+		<!-- IMPORT admin/partials/category/selector-dropdown-left.tpl -->
 	</div>
 
-	<div class="form-group" id="cloneFromCidGroup">
-		<label for="cloneFromCid">[[admin/manage/categories:optional-clone-settings]]</label>
-		<!-- IMPORT partials/category-selector.tpl -->
+	<div class="mb-3" id="cloneFromCidGroup">
+		<label class="form-label" for="cloneFromCid">[[admin/manage/categories:optional-clone-settings]]</label>
+		<!-- IMPORT admin/partials/category/selector-dropdown-left.tpl -->
 		<label>
 			<input id="cloneChildren" name="cloneChildren" type="checkbox">
 			<strong>[[admin/manage/categories:clone-children]]</strong>
 		</label>
 	</div>
 
-	<div class="form-group">
+	<div class="mb-3">
 		<label>
 			<input id="disabled" name="disabled" type="checkbox">
 			<strong>[[admin/manage/categories:disable-on-create]]</strong>
 		</label>
 	</div>
-
 </form>
\ No newline at end of file
diff --git a/src/views/admin/partials/categories/groups.tpl b/src/views/admin/partials/categories/groups.tpl
deleted file mode 100644
index 495aa9589f..0000000000
--- a/src/views/admin/partials/categories/groups.tpl
+++ /dev/null
@@ -1,20 +0,0 @@
-<!-- BEGIN groups -->
-<li data-name="{groups.displayName}">
-	<div class="btn-group pull-right">
-		<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
-			Privileges <span class="caret"></span>
-		</button>
-		<ul class="dropdown-menu" role="menu">
-			<li role="presentation"><a href="#" data-priv="groups:find" class="<!-- IF groups.privileges.groups:find -->active<!-- ENDIF groups.privileges.groups:find -->">Find Category</a></li>
-			<li role="presentation"><a href="#" data-priv="groups:read" class="<!-- IF groups.privileges.groups:read -->active<!-- ENDIF groups.privileges.groups:read -->">Access Category</a></li>
-			<li role="presentation"><a href="#" data-priv="groups:topics:read" class="<!-- IF groups.privileges.groups:topics:read -->active<!-- ENDIF groups.privileges.groups:topics:read -->">Access Topics</a></li>
-			<li role="presentation"><a href="#" data-priv="groups:topics:create" class="<!-- IF groups.privileges.groups:topics:create -->active<!-- ENDIF groups.privileges.groups:topics:create -->">Create Topics</a></li>
-			<li role="presentation"><a href="#" data-priv="groups:topics:reply" class="<!-- IF groups.privileges.groups:topics:reply -->active<!-- ENDIF groups.privileges.groups:topics:reply -->">Reply to Topics</a></li>
-			<li role="presentation"><a href="#" data-priv="groups:posts:edit" class="<!-- IF groups.privileges.groups:posts:edit -->active<!-- ENDIF groups.privileges.groups:posts:edit -->">Edit Posts</a></li>
-			<li role="presentation"><a href="#" data-priv="groups:posts:delete" class="<!-- IF groups.privileges.groups:posts:delete -->active<!-- ENDIF groups.privileges.groups:posts:delete -->">Delete Posts</a></li>
-			<li role="presentation"><a href="#" data-priv="groups:topics:delete" class="<!-- IF groups.privileges.groups:topics:delete -->active<!-- ENDIF groups.privileges.groups:topics:delete -->">Delete Topics</a></li>
-		</ul>
-	</div>
-	{groups.displayName}
-</li>
-<!-- END groups -->
diff --git a/src/views/admin/partials/categories/select-category.tpl b/src/views/admin/partials/categories/select-category.tpl
index 643f561289..579e81d2d9 100644
--- a/src/views/admin/partials/categories/select-category.tpl
+++ b/src/views/admin/partials/categories/select-category.tpl
@@ -1,21 +1,28 @@
 <form type="form">
 	<div class="form-group">
 		<div component="category-selector" class="btn-group">
-			<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
+			<button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown">
 				<span component="category-selector-selected">[[topic:thread_tools.select_category]]</span> <span class="caret"></span>
 			</button>
-			<div component="category-selector-search" class="hidden">
-				<input type="text" class="form-control" autocomplete="off">
+			<div component="category-selector-search" class="hidden position-absolute">
+				<input type="text" class="form-control" placeholder="[[search:type-to-search]]" autocomplete="off">
 			</div>
 			<ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
 				<li component="category/no-matches" role="presentation" class="category hidden">
-					<a role="menuitem">[[search:no-matches]]</a>
+					<a class="dropdown-item" role="menuitem">[[search:no-matches]]</a>
 				</li>
-				<!-- BEGIN categories -->
+				{{{ each categories }}}
 				<li role="presentation" class="category {{{if categories.disabledClass}}}disabled{{{end}}}" data-cid="{categories.cid}" data-name="{categories.name}">
-					<a role="menuitem">{categories.level}<span component="category-markup"><!-- IF categories.icon --><span class="fa-stack" style="{function.generateCategoryBackground}"><i style="color: {categories.color};" class="fa fa-stack-1x fa-fw {categories.icon}"></i></span><!-- ENDIF categories.icon --> {categories.name}</span></a>
+					<a class="dropdown-item" role="menuitem">{categories.level}
+						<span component="category-markup">
+							<div class="category-item d-inline-block">
+								{buildCategoryIcon(@value, "24px", "rounded-circle")}
+								{./name}
+							</div>
+						</span>
+					</a>
 				</li>
-				<!-- END categories -->
+				{{{ end }}}
 			</ul>
 		</div>
 	</div>
diff --git a/src/views/admin/partials/categories/users.tpl b/src/views/admin/partials/categories/users.tpl
deleted file mode 100644
index 67f272e6fd..0000000000
--- a/src/views/admin/partials/categories/users.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-<!-- BEGIN users -->
-<li data-uid="{users.uid}">
-	<div class="btn-group pull-right">
-		<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
-			Privileges <span class="caret"></span>
-		</button>
-		<ul class="dropdown-menu" role="menu">
-			<li role="presentation"><a href="#" data-priv="find" class="<!-- IF users.privileges.find -->active<!-- ENDIF users.privileges.find -->">Find Category</a></li>
-			<li role="presentation"><a href="#" data-priv="read" class="<!-- IF users.privileges.read -->active<!-- ENDIF users.privileges.read -->">Access Category</a></li>
-			<li role="presentation"><a href="#" data-priv="topics:read" class="<!-- IF users.privileges.topics:read -->active<!-- ENDIF users.privileges.topics:read -->">Access Topics</a></li>
-			<li role="presentation"><a href="#" data-priv="topics:create" class="<!-- IF users.privileges.topics:create -->active<!-- ENDIF users.privileges.topics:create -->">Create Topics</a></li>
-			<li role="presentation"><a href="#" data-priv="topics:reply" class="<!-- IF users.privileges.topics:reply -->active<!-- ENDIF users.privileges.topics:reply -->">Reply to Topics</a></li>
-			<li role="presentation"><a href="#" data-priv="posts:edit" class="<!-- IF users.privileges.posts:edit -->active<!-- ENDIF users.privileges.posts:edit -->">Edit Posts</a></li>
-			<li role="presentation"><a href="#" data-priv="posts:delete" class="<!-- IF users.privileges.posts:delete -->active<!-- ENDIF users.privileges.posts:delete -->">Delete Posts</a></li>
-			<li role="presentation"><a href="#" data-priv="topics:delete" class="<!-- IF users.privileges.topics:delete -->active<!-- ENDIF users.privileges.topics:delete -->">Delete Topics</a></li>
-			<li role="presentation" class="divider"></li>
-			<li role="presentation"><a href="#" data-priv="mods" class="<!-- IF users.privileges.mods -->active<!-- ENDIF users.privileges.mods -->">Moderator</a></li>
-		</ul>
-	</div>
-	<img src="{users.picture}" alt="" /> {users.username}
-</li>
-<!-- END users -->
diff --git a/src/views/admin/partials/category/selector-dropdown-content.tpl b/src/views/admin/partials/category/selector-dropdown-content.tpl
new file mode 100644
index 0000000000..2724221d82
--- /dev/null
+++ b/src/views/admin/partials/category/selector-dropdown-content.tpl
@@ -0,0 +1,33 @@
+<button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown">
+    <span component="category-selector-selected">
+        {{{ if (selectedCategory && !showCategorySelectLabel) }}}
+        <span class="category-item">
+            {buildCategoryIcon(selectedCategory, "24px", "rounded-circle")}
+            {selectedCategory.name}
+        </span>
+        {{{ else }}}
+    <span class="visible-sm-inline visible-md-inline visible-lg-inline">{{{ if selectCategoryLabel }}}{selectCategoryLabel}{{{ else }}}[[topic:thread_tools.select_category]]{{{ end }}}</span><span class="visible-xs-inline"><i class="fa fa-fw {{{ if selectCategoryIcon }}}{selectCategoryIcon}{{{ else }}}fa-list{{{ end }}}"></i></span>
+    {{{ end }}}</span> <span class="caret"></span>
+</button>
+<div component="category-selector-search" class="hidden position-absolute">
+    <input type="text" class="form-control" placeholder="[[search:type-to-search]]" autocomplete="off">
+</div>
+<ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
+    <li component="category/no-matches" role="presentation" class="category hidden">
+        <a class="dropdown-item" role="menu-item">[[search:no-matches]]</a>
+    </li>
+    {{{each categoryItems}}}
+    <li role="presentation" class="category {{{ if ../disabledClass }}}disabled {{{ end }}}" data-cid="{../cid}" data-name="{../name}" data-parent-cid="{../parentCid}">
+        <a class="dropdown-item" role="menu-item">{../level}
+            <span component="category-markup" style="{{{ if ../match }}}font-weight: bold;{{{end}}}">
+                <div class="category-item d-inline-block">
+                    {{{ if ./icon }}}
+                    {buildCategoryIcon(@value, "24px", "rounded-circle")}
+                    {{{ end }}}
+                    {./name}
+                </div>
+            </span>
+        </a>
+    </li>
+    {{{ end }}}
+</ul>
\ No newline at end of file
diff --git a/src/views/admin/partials/category/selector-dropdown-left.tpl b/src/views/admin/partials/category/selector-dropdown-left.tpl
new file mode 100644
index 0000000000..c462f6c4d7
--- /dev/null
+++ b/src/views/admin/partials/category/selector-dropdown-left.tpl
@@ -0,0 +1,3 @@
+<div component="category-selector" class="btn-group bottom-sheet">
+<!-- IMPORT admin/partials/category/selector-dropdown-content.tpl -->
+</div>
\ No newline at end of file
diff --git a/src/views/admin/partials/category/selector-dropdown-right.tpl b/src/views/admin/partials/category/selector-dropdown-right.tpl
new file mode 100644
index 0000000000..dda6493b82
--- /dev/null
+++ b/src/views/admin/partials/category/selector-dropdown-right.tpl
@@ -0,0 +1,3 @@
+<div component="category-selector" class="btn-group dropdown-right category-dropdown-container bottom-sheet">
+<!-- IMPORT admin/partials/category/selector-dropdown-content.tpl -->
+</div>
\ No newline at end of file
diff --git a/src/views/admin/partials/create_group_modal.tpl b/src/views/admin/partials/create_group_modal.tpl
new file mode 100644
index 0000000000..49ee2678fd
--- /dev/null
+++ b/src/views/admin/partials/create_group_modal.tpl
@@ -0,0 +1,39 @@
+<div class="modal fade" id="create-modal">
+	<div class="modal-dialog">
+		<div class="modal-content">
+			<div class="modal-header">
+				<h4 class="modal-title">[[admin/manage/groups:create]]</h4>
+				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
+			</div>
+			<div class="modal-body">
+				<div class="alert alert-danger hide" id="create-modal-error"></div>
+				<form>
+					<div class="mb-3">
+						<label class="form-label" for="create-group-name">[[admin/manage/groups:name]]</label>
+						<input type="text" class="form-control" id="create-group-name" placeholder="[[admin/manage/groups:name]]" />
+					</div>
+					<div class="mb-3">
+						<label class="form-label" for="create-group-desc">[[admin/manage/groups:description]]</label>
+						<input type="text" class="form-control" id="create-group-desc" placeholder="[[admin/manage/groups:description-placeholder]]" />
+					</div>
+					<div class="form-check form-switch mb-3">
+						<input class="form-check-input" id="create-group-private" name="private" type="checkbox" checked>
+						<label class="form-check-label" for="create-group-private">[[admin/manage/groups:private]]</label>
+					</div>
+					<div class="form-check form-switch mb-3">
+						<input class="form-check-input" id="create-group-hidden" name="hidden" type="checkbox">
+						<label class="form-check-label" for="create-group-hidden">[[admin/manage/groups:hidden]]</label>
+					</div>
+				</form>
+			</div>
+			<div class="modal-footer">
+				<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
+					[[global:close]]
+				</button>
+				<button type="button" class="btn btn-primary" id="create-modal-go">
+					[[admin/manage/groups:create-button]]
+				</button>
+			</div>
+		</div>
+	</div>
+</div>
\ No newline at end of file
diff --git a/src/views/admin/partials/create_user_modal.tpl b/src/views/admin/partials/create_user_modal.tpl
index 278e133165..9526ac52ed 100644
--- a/src/views/admin/partials/create_user_modal.tpl
+++ b/src/views/admin/partials/create_user_modal.tpl
@@ -1,21 +1,21 @@
 <div class="alert alert-danger hidden" id="create-modal-error"></div>
 <form>
-	<div class="form-group">
-		<label for="create-user-name">[[admin/manage/users:create.username]]</label>
+	<div class="mb-3">
+		<label class="form-label" for="create-user-name">[[admin/manage/users:create.username]]</label>
 		<input type="text" class="form-control" id="create-user-name" placeholder="[[admin/manage/users:create.username]]" />
 	</div>
-	<div class="form-group">
-		<label for="create-user-email">[[admin/manage/users:create.email]]</label>
+	<div class="mb-3">
+		<label class="form-label" for="create-user-email">[[admin/manage/users:create.email]]</label>
 		<input type="text" class="form-control" id="create-user-email" placeholder="[[admin/manage/users:create.email-placeholder]]" />
 	</div>
 
-	<div class="form-group">
-		<label for="create-user-password">[[admin/manage/users:create.password]]</label>
+	<div class="mb-3">
+		<label class="form-label" for="create-user-password">[[admin/manage/users:create.password]]</label>
 		<input type="password" class="form-control" id="create-user-password" placeholder="[[admin/manage/users:create.password]]" />
 	</div>
 
-	<div class="form-group">
-		<label for="create-user-password-again">[[admin/manage/users:create.password-confirm]]</label>
+	<div class="mb-3">
+		<label class="form-label" for="create-user-password-again">[[admin/manage/users:create.password-confirm]]</label>
 		<input type="password" class="form-control" id="create-user-password-again" placeholder="[[admin/manage/users:create.password]]" />
 	</div>
 </form>
diff --git a/src/views/admin/partials/dashboard/graph.tpl b/src/views/admin/partials/dashboard/graph.tpl
index ee55cd7ce1..03a50a51b3 100644
--- a/src/views/admin/partials/dashboard/graph.tpl
+++ b/src/views/admin/partials/dashboard/graph.tpl
@@ -1,14 +1,14 @@
-<div class="panel panel-default" id="analytics-panel">
-	<div class="panel-heading">
+<div class="card mb-3" id="analytics-panel">
+	<div class="card-header">
 		[[admin/dashboard:forum-traffic]]
-		<div class="pull-right">
+		<div class="float-end">
 			<a href="#"><i class="fa fa-fw fa-expand"></i></a>
 		</div>
-		<div class="pull-right">
+		<div class="float-end">
 			<a target="_blank" id="view-as-json" href="{config.relative_path}/api/v3/admin/analytics/{set}?type=hourly"><i class="fa fa-fw fa-terminal"></i></a>
 		</div>
 	</div>
-	<div class="panel-body">
+	<div class="card-body">
 		<div class="graph-container" id="analytics-traffic-container">
 			<canvas id="analytics-traffic" width="100%" height="400"></canvas>
 		</div>
diff --git a/src/views/admin/partials/dashboard/stats.tpl b/src/views/admin/partials/dashboard/stats.tpl
index d89fe04b0c..c7df18edca 100644
--- a/src/views/admin/partials/dashboard/stats.tpl
+++ b/src/views/admin/partials/dashboard/stats.tpl
@@ -1,47 +1,47 @@
-<div class="table-responsive">
+<div class="table-responsive mb-3">
 	<table class="table table-striped">
 		<thead>
 			<tr>
 				<th></th>
-				<th class="text-right">[[admin/dashboard:stats.yesterday]]</th>
-				<th class="text-right">[[admin/dashboard:stats.today]]</th>
+				<th class="text-end">[[admin/dashboard:stats.yesterday]]</th>
+				<th class="text-end">[[admin/dashboard:stats.today]]</th>
 				<th></th>
-				<th class="text-right">[[admin/dashboard:stats.last-week]]</th>
-				<th class="text-right">[[admin/dashboard:stats.this-week]]</th>
+				<th class="text-end">[[admin/dashboard:stats.last-week]]</th>
+				<th class="text-end">[[admin/dashboard:stats.this-week]]</th>
 				<th></th>
-				<th class="text-right">[[admin/dashboard:stats.last-month]]</th>
-				<th class="text-right">[[admin/dashboard:stats.this-month]]</th>
+				<th class="text-end">[[admin/dashboard:stats.last-month]]</th>
+				<th class="text-end">[[admin/dashboard:stats.this-month]]</th>
 				<th></th>
-				<th class="text-right">[[admin/dashboard:stats.all]]</th>
+				<th class="text-end">[[admin/dashboard:stats.all]]</th>
 			</tr>
 		</thead>
 		<tbody>
-			<!-- BEGIN stats -->
+			{{{ each stats }}}
 			<tr>
 				<td>
 					<strong>
-						{{{ if ../href }}}
-							<a href="{../href}">{../name}</a>
+						{{{ if ./href }}}
+							<a href="{./href}">{./name}</a>
 						{{{ else }}}
-							{../name}
+							{./name}
 						{{{ end }}}
 					</strong>
 				</td>
-				<td class="text-right formatted-number">{stats.yesterday}</td>
-				<td class="text-right formatted-number">{stats.today}</td>
-				<td class="{stats.dayTextClass}"><small>{stats.dayIncrease}%</small></td>
+				<td class="text-end formatted-number">{./yesterday}</td>
+				<td class="text-end formatted-number">{./today}</td>
+				<td class="{./dayTextClass}"><small>{./dayIncrease}%</small></td>
 
-				<td class="text-right formatted-number">{stats.lastweek}</td>
-				<td class="text-right formatted-number">{stats.thisweek}</td>
-				<td class="{stats.weekTextClass}"><small>{stats.weekIncrease}%</small></td>
+				<td class="text-end formatted-number">{./lastweek}</td>
+				<td class="text-end formatted-number">{./thisweek}</td>
+				<td class="{./weekTextClass}"><small>{./weekIncrease}%</small></td>
 
-				<td class="text-right formatted-number">{stats.lastmonth}</td>
-				<td class="text-right formatted-number">{stats.thismonth}</td>
-				<td class="{stats.monthTextClass}"><small>{stats.monthIncrease}%</small></td>
+				<td class="text-end formatted-number">{./lastmonth}</td>
+				<td class="text-end formatted-number">{./thismonth}</td>
+				<td class="{./monthTextClass}"><small>{./monthIncrease}%</small></td>
 
-				<td class="text-right formatted-number">{stats.alltime}</td>
+				<td class="text-end formatted-number">{./alltime}</td>
 			</tr>
-			<!-- END stats -->
+			{{{ end }}}
 		</tbody>
 	</table>
 </div>
\ No newline at end of file
diff --git a/src/views/admin/partials/download_plugin_item.tpl b/src/views/admin/partials/download_plugin_item.tpl
index 23e6baaea3..61c1e6e8be 100644
--- a/src/views/admin/partials/download_plugin_item.tpl
+++ b/src/views/admin/partials/download_plugin_item.tpl
@@ -1,25 +1,25 @@
-					<li id="{../id}" data-plugin-id="{../id}" class="clearfix">
-						<div class="pull-right">
+					<li id="{./id}" data-plugin-id="{./id}" class="clearfix">
+						<div class="float-end">
 							<button data-action="toggleActive" class="btn btn-success hidden"><i class="fa fa-power-off"></i> [[admin/extend/plugins:plugin-item.activate]]</button>
 							<button data-action="toggleInstall" data-installed="0" class="btn btn-success"><i class="fa fa-download"></i> [[admin/extend/plugins:plugin-item.install]]</button>
 						</div>
 
-						<h2><strong>{../name}</strong></h2>
+						<h2><strong>{./name}</strong></h2>
 
-						<!-- IF ../description -->
-						<p>{../description}</p>
-						<!-- ENDIF ../description -->
+						{{{ if ./description }}}
+						<p>{./description}</p>
+						{{{ end }}}
 
-						<small>[[admin/extend/plugins:plugin-item.latest]] <strong class="latestVersion">{../latest}</strong></small>
+						<small>[[admin/extend/plugins:plugin-item.latest]] <strong class="latestVersion">{./latest}</strong></small>
 						<p>
-							<!-- IF ../isCompatible -->
+							{{{ if ./isCompatible }}}
 							<i class="fa fa-check text-success"></i> [[admin/extend/plugins:plugin-item.compatible, {version}]]
-							<!-- ELSE -->
+							{{{ else }}}
 							<i class="fa fa-question text-warning"></i> [[admin/extend/plugins:plugin-item.not-compatible]]
-							<!-- ENDIF -->
+							{{{ end }}}
 						</p>
 
-						<!-- IF ../url -->
-						<p>[[admin/extend/plugins:plugin-item.more-info]] <a target="_blank" href="{../url}">{../url}</a></p>
-						<!-- ENDIF ../url -->
+						{{{ if ./url }}}
+						<p>[[admin/extend/plugins:plugin-item.more-info]] <a target="_blank" href="{./url}">{./url}</a></p>
+						{{{ end }}}
 					</li>
diff --git a/src/views/admin/partials/groups/add-members.tpl b/src/views/admin/partials/groups/add-members.tpl
index 7db00be2bb..2127b072ea 100644
--- a/src/views/admin/partials/groups/add-members.tpl
+++ b/src/views/admin/partials/groups/add-members.tpl
@@ -3,6 +3,6 @@
 
 <div class="list-group" id="search-result">
     {{{each users}}}
-    <a href="#" class="list-group-item" data-username="{users.username}" data-uid="{users.uid}"><i class="fa fa-fw fa-check invisible"></i>{users.username}</a>
+    <a href="#" class="list-group-item" data-username="{users.username}" data-uid="{users.uid}"><i class="fa fa-fw fa-check invisible"></i> {users.username}</a>
     {{{end}}}
 </div>
diff --git a/src/views/admin/partials/groups/memberlist.tpl b/src/views/admin/partials/groups/memberlist.tpl
index 5e8b0c049e..0dfbbb304e 100644
--- a/src/views/admin/partials/groups/memberlist.tpl
+++ b/src/views/admin/partials/groups/memberlist.tpl
@@ -1,35 +1,30 @@
-<div class="row">
-	<!-- IF group.isOwner -->
+<div class="row mb-2">
+	{{{ if group.isOwner }}}
 	<div class="col-lg-1">
 		<button component="groups/members/add" type="button" class="btn btn-primary" title="[[groups:details.add-member]]"><i class="fa fa-user-plus"></i></button>
 	</div>
-	<!-- ENDIF group.isOwner -->
-	<div class="<!-- IF group.isOwner -->col-lg-11<!-- ELSE -->col-lg-12<!-- ENDIF group.isOwner -->">
+	{{{ end }}}
+	<div class="{{{ if group.isOwner }}}col-lg-11{{{ else }}}col-lg-12{{{ end }}}">
 		<div class="input-group">
 			<input class="form-control" type="text" component="groups/members/search" placeholder="[[global:search]]"/>
-			<span class="input-group-addon search-button"><i class="fa fa-search"></i></span>
+			<span class="input-group-text search-button px-2"><i class="fa fa-search"></i></span>
 		</div>
 	</div>
 </div>
 
 <table component="groups/members" class="table table-striped table-hover" data-nextstart="{group.membersNextStart}">
 	<tbody>
-	<!-- BEGIN group.members -->
+	{{{ each group.members }}}
 	<tr data-uid="{group.members.uid}">
 		<td>
-			<a href="{config.relative_path}/user/{group.members.userslug}">
-				<!-- IF group.members.picture -->
-				<img class="avatar avatar-sm avatar-rounded" src="{group.members.picture}" alt="" />
-				<!-- ELSE -->
-				<div class="avatar avatar-sm avatar-rounded" style="background-color: {group.members.icon:bgColor};">{group.members.icon:text}</div>
-				<!-- ENDIF group.members.picture -->
-			</a>
+			<a href="{config.relative_path}/user/{group.members.userslug}">{buildAvatar(group.members, "24px", true)}</a>
 		</td>
 		<td class="member-name">
-			<a href="{config.relative_path}/user/{group.members.userslug}">{group.members.username}</a> <i title="[[groups:owner]]" class="user-owner-icon fa fa-star text-warning <!-- IF !group.members.isOwner -->invisible<!-- ENDIF !group.members.isOwner -->"></i>
+			<a href="{config.relative_path}/user/{group.members.userslug}">{group.members.username}</a> <i title="[[groups:owner]]" class="user-owner-icon fa fa-star text-warning
+			{{{ if !group.members.isOwner }}}invisible{{{ end }}}"></i>
 
-			<!-- IF group.isOwner -->
-			<div class="owner-controls btn-group pull-right">
+			{{{ if group.isOwner }}}
+			<div class="owner-controls btn-group float-end">
 				<a class="btn btn-sm" href="#" data-ajaxify="false" data-action="toggleOwnership" title="[[groups:details.grant]]">
 					<i class="fa fa-star"></i>
 				</a>
@@ -38,9 +33,9 @@
 					<i class="fa fa-ban"></i>
 				</a>
 			</div>
-			<!-- ENDIF group.isOwner -->
+			{{{ end }}}
 		</td>
 	</tr>
-	<!-- END group.members -->
+	{{{ end }}}
 	</tbody>
 </table>
\ No newline at end of file
diff --git a/src/views/admin/partials/groups/privileges-select-category.tpl b/src/views/admin/partials/groups/privileges-select-category.tpl
index ee2dcf0ac8..7322296984 100644
--- a/src/views/admin/partials/groups/privileges-select-category.tpl
+++ b/src/views/admin/partials/groups/privileges-select-category.tpl
@@ -1,17 +1,24 @@
 <div component="category-selector" class="btn-group">
-	<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
+	<button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown">
 		<span>[[admin/manage/groups:privileges]]</span> <span class="caret"></span>
 	</button>
-	<div component="category-selector-search" class="hidden">
-		<input type="text" class="form-control" autocomplete="off">
+	<div component="category-selector-search" class="hidden position-absolute">
+		<input type="text" class="form-control" placeholder="[[search:type-to-search]]" autocomplete="off">
 	</div>
-	<ul component="category/list" class="dropdown-menu category-dropdown-menu dropdown-menu-right" role="menu">
+	<ul component="category/list" class="dropdown-menu category-dropdown-menu dropdown-menu-end" role="menu">
 		<li component="category/no-matches" role="presentation" class="category hidden">
-			<a role="menuitem">[[search:no-matches]]</a>
+			<a class="dropdown-item" role="menuitem">[[search:no-matches]]</a>
 		</li>
 		{{{each categories}}}
-		<li role="presentation" class="category <!-- IF categories.disabledClass -->disabled<!-- ENDIF categories.disabledClass -->" data-cid="{categories.cid}" data-name="{categories.name}" data-parent-cid="{categories.parentCid}">
-			<a role="menuitem">{categories.level}<span component="category-markup"><!-- IF categories.icon --><span class="fa-stack" style="{function.generateCategoryBackground}"><i style="color: {categories.color};" class="fa fa-stack-1x fa-fw {categories.icon}"></i></span><!-- ENDIF categories.icon --> {categories.name}</span></a>
+		<li role="presentation" class="category {{{ if categories.disabledClass }}}disabled{{{ end }}}" data-cid="{categories.cid}" data-name="{categories.name}" data-parent-cid="{categories.parentCid}">
+			<a class="dropdown-item" role="menuitem">{categories.level}
+				<span component="category-markup">
+					<div class="category-item d-inline-block">
+						{buildCategoryIcon(@value, "24px", "rounded-circle")}
+						{./name}
+					</div>
+				</span>
+			</a>
 		</li>
 		{{{end}}}
 	</ul>
diff --git a/src/views/admin/partials/installed_plugin_item.tpl b/src/views/admin/partials/installed_plugin_item.tpl
index 9b17243edd..a6c1636b1b 100644
--- a/src/views/admin/partials/installed_plugin_item.tpl
+++ b/src/views/admin/partials/installed_plugin_item.tpl
@@ -1,60 +1,60 @@
-					<!-- IF !../error -->
-					<li id="{../id}" data-plugin-index="{@index}" data-plugin-id="{../id}" data-version="{../version}" class="clearfix <!-- IF ../active -->active<!-- ENDIF ../active -->">
-						<div class="pull-right controls">
-							{{{ if ../installed }}}
-								<!-- IF ../isTheme -->
+					{{{ if !./error }}}
+					<li id="{./id}" data-plugin-index="{@index}" data-plugin-id="{./id}" data-version="{./version}" class="clearfix {{{ if ./active }}}active{{{ end }}}">
+						<div class="float-end controls">
+							{{{ if ./installed }}}
+								{{{ if ./isTheme }}}
 								<a href="{config.relative_path}/admin/appearance/themes" class="btn btn-info">[[admin/extend/plugins:plugin-item.themes]]</a>
-								<!-- ELSE -->
-								<button data-action="toggleActive" class="btn <!-- IF ../active --> btn-warning<!-- ELSE --> btn-success<!-- ENDIF ../active --> <!-- IF !canChangeState -->disabled<!-- ENDIF -->">
-								<i class="fa fa-power-off"></i> <!-- IF ../active -->[[admin/extend/plugins:plugin-item.deactivate]]<!-- ELSE -->[[admin/extend/plugins:plugin-item.activate]]<!-- ENDIF ../active --></button>
-								<!-- ENDIF ../isTheme -->
+								{{{ else }}}
+								<button data-action="toggleActive" class="btn {{{ if ./active }}} btn-warning{{{ else }}} btn-success{{{ end }}} {{{ if !canChangeState }}}disabled{{{ end }}}">
+								<i class="fa fa-power-off"></i> {{{ if ./active }}}[[admin/extend/plugins:plugin-item.deactivate]]{{{ else }}}[[admin/extend/plugins:plugin-item.activate]]{{{ end }}}</button>
+								{{{ end }}}
 
 								<button data-action="toggleInstall" data-installed="1" class="btn btn-danger"><i class="fa fa-trash-o"></i> [[admin/extend/plugins:plugin-item.uninstall]]</button>
 
-								<!-- IF ../active -->
-								<!-- IF ../settingsRoute -->
-								<a href="{config.relative_path}{../settingsRoute}" class="btn btn-primary"><i class="fa fa-wrench"></i> [[admin/extend/plugins:plugin-item.settings]]</a>
-								<!-- ENDIF ../settingsRoute -->
-								<!-- ENDIF ../active -->
+								{{{ if ./active }}}
+								{{{ if ./settingsRoute }}}
+								<a href="{config.relative_path}{./settingsRoute}" class="btn btn-primary"><i class="fa fa-wrench"></i> [[admin/extend/plugins:plugin-item.settings]]</a>
+								{{{ end }}}
+								{{{ end }}}
 							{{{ else }}}
 								<button data-action="toggleInstall" data-installed="0" class="btn btn-success"><i class="fa fa-download"></i> [[admin/extend/plugins:plugin-item.install]]</button>
 							{{{ end }}}
 						</div>
 
-						<h2><strong>{../name}</strong></h2>
+						<h2><strong>{./name}</strong></h2>
 
-						<!-- IF ../description -->
-						<p>{../description}</p>
-						<!-- ENDIF ../description -->
-						<!-- IF ../outdated --><i class="fa fa-exclamation-triangle text-danger"></i> <!-- ENDIF ../outdated -->
-						<small>[[admin/extend/plugins:plugin-item.installed]] <strong class="currentVersion">{../version}</strong> | [[admin/extend/plugins:plugin-item.latest]] <strong class="latestVersion">{../latest}</strong></small>
+						{{{ if ./description }}}
+						<p>{./description}</p>
+						{{{ end }}}
+						{{{ if ./outdated }}}<i class="fa fa-exclamation-triangle text-danger"></i> {{{ end }}}
+						<small>[[admin/extend/plugins:plugin-item.installed]] <strong class="currentVersion">{./version}</strong> | [[admin/extend/plugins:plugin-item.latest]] <strong class="latestVersion">{./latest}</strong></small>
 
-						<!-- IF ../outdated -->
-						<button data-action="upgrade" class="btn btn-success btn-xs"><i class="fa fa-download"></i> [[admin/extend/plugins:plugin-item.upgrade]]</button>
+						{{{ if ./outdated }}}
+						<button data-action="upgrade" class="btn btn-success btn-sm"><i class="fa fa-download"></i> [[admin/extend/plugins:plugin-item.upgrade]]</button>
 						<p>
-							<!-- IF ../isCompatible -->
+							{{{ if ./isCompatible }}}
 							<i class="fa fa-check text-success"></i> [[admin/extend/plugins:plugin-item.compatible, {version}]]
-							<!-- ELSE -->
+							{{{ else }}}
 							<i class="fa fa-question text-warning"></i> [[admin/extend/plugins:plugin-item.not-compatible]]
-							<!-- ENDIF -->
+							{{{ end }}}
 						</p>
-						<!-- ENDIF ../outdated -->
+						{{{ end }}}
 
-						<!-- IF ../url -->
-						<p>[[admin/extend/plugins:plugin-item.more-info]] <a target="_blank" href="{../url}">{../url}</a></p>
-						<!-- ENDIF ../url -->
+						{{{ if ./url }}}
+						<p>[[admin/extend/plugins:plugin-item.more-info]] <a target="_blank" href="{./url}">{./url}</a></p>
+						{{{ end }}}
 					</li>
-					<!-- ENDIF !../error -->
-					<!-- IF ../error -->
-					<li data-plugin-id="{../id}" class="clearfix">
-						<div class="pull-right">
-							<button class="btn btn-default disabled"><i class="fa fa-exclamation-triangle"></i> [[admin/extend/plugins:plugin-item.unknown]]</button>
+					{{{ end }}}
+					{{{ if ./error }}}
+					<li data-plugin-id="{./id}" class="clearfix">
+						<div class="float-end">
+							<button class="btn btn-outline-secondary disabled"><i class="fa fa-exclamation-triangle"></i> [[admin/extend/plugins:plugin-item.unknown]]</button>
 							<button data-action="toggleInstall" data-installed="1" class="btn btn-danger"><i class="fa fa-trash-o"></i> [[admin/extend/plugins:plugin-item.uninstall]]</button>
 						</div>
 
-						<h2><strong>{../id}</strong></h2>
+						<h2><strong>{./id}</strong></h2>
 						<p>
 							[[admin/extend/plugins:plugin-item.unknown-explanation]]
 						</p>
 					</li>
-					<!-- ENDIF ../error -->
+					{{{ end }}}
diff --git a/src/views/admin/partials/manage_user_groups.tpl b/src/views/admin/partials/manage_user_groups.tpl
index a7599f9675..5d686d730f 100644
--- a/src/views/admin/partials/manage_user_groups.tpl
+++ b/src/views/admin/partials/manage_user_groups.tpl
@@ -3,8 +3,8 @@
     <h5>{users.username}</h5>
     <div class="group-area">
         {{{ each users.groups }}}
-        <div class="group-card pull-left" data-group-name="{users.groups.nameEscaped}">
-            <a href="{config.relative_path}/admin/manage/groups/{users.groups.nameEncoded}"><span class="label label-default" style="color:{users.groups.textColor}; background-color: {users.groups.labelColor};"><!-- IF users.groups.icon --><i class="fa {users.groups.icon}"></i> <!-- ENDIF users.groups.icon -->{users.groups.displayName} <i class="remove-group-icon fa fa-times" role="button"></i></span></a>
+        <div class="group-card float-start m-1" data-group-name="{users.groups.nameEscaped}">
+            <a href="{config.relative_path}/admin/manage/groups/{users.groups.nameEncoded}"><span class="badge p-2" style="color:{users.groups.textColor}; background-color: {users.groups.labelColor};">{{{ if users.groups.icon }}}<i class="fa {users.groups.icon}"></i> {{{ end }}}{users.groups.displayName} <i class="ms-2 remove-group-icon fa fa-times" role="button"></i></span></a>
         </div>
         {{{ end }}}
     </div>
diff --git a/src/views/admin/partials/menu.tpl b/src/views/admin/partials/menu.tpl
index 091c28ee9f..35ecd54797 100644
--- a/src/views/admin/partials/menu.tpl
+++ b/src/views/admin/partials/menu.tpl
@@ -77,31 +77,31 @@
 		</ul>
 	</section>
 
-	<!-- IF plugins.length -->
+	{{{ if plugins.length }}}
 	<section class="menu-section">
 		<h3 class="menu-section-title">[[admin/menu:section-plugins]]</h3>
 		<ul class="menu-section-list">
-			<!-- BEGIN plugins -->
+			{{{ each plugins }}}
 			<li>
-				<a href="{relative_path}/admin{plugins.route}">{plugins.name}</a>
+				<a href="{relative_path}/admin{./route}">{./name}</a>
 			</li>
-			<!-- END plugins -->
+			{{{ end }}}
 		</ul>
 	</section>
-	<!-- ENDIF plugins.length -->
+	{{{ end }}}
 
-	<!-- IF authentication.length -->
+	{{{ if authentication.length }}}
 	<section class="menu-section">
 		<h3 class="menu-section-title">[[admin/menu:section-social-auth]]</h3>
 		<ul class="menu-section-list">
-			<!-- BEGIN authentication -->
+			{{{ each authentication }}}
 			<li>
-				<a href="{relative_path}/admin{authentication.route}">{authentication.name}</a>
+				<a href="{relative_path}/admin{./route}">{./name}</a>
 			</li>
-			<!-- END authentication -->
+			{{{ end }}}
 		</ul>
 	</section>
-	<!-- ENDIF authentication.length -->
+	{{{ end }}}
 	{{{ end }}}
 
 	{{{ if user.privileges.superadmin }}}
@@ -114,9 +114,9 @@
 			<li><a href="{relative_path}/admin/advanced/cache">[[admin/menu:advanced/cache]]</a></li>
 			<li><a href="{relative_path}/admin/advanced/errors">[[admin/menu:advanced/errors]]</a></li>
 			<li><a href="{relative_path}/admin/advanced/logs">[[admin/menu:advanced/logs]]</a></li>
-			<!-- IF env -->
+			{{{ if env }}}
 			<li><a href="{relative_path}/admin/development/logger">[[admin/menu:development/logger]]</a></li>
-			<!-- ENDIF env -->
+			{{{ end }}}
 		</ul>
 	</section>
 	{{{ end }}}
@@ -124,7 +124,7 @@
 
 <main id="panel">
 	<nav class="header" id="header">
-		<div class="pull-left">
+		<div class="float-start">
 			<div id="mobile-menu">
 				<div class="bar"></div>
 				<div class="bar"></div>
@@ -133,29 +133,29 @@
 			<h1 id="main-page-title"></h1>
 		</div>
 
-		<ul class="quick-actions hidden-xs hidden-sm">
+		<ul class="quick-actions hidden-xs hidden-sm hidden-md align-items-center">
 			<!-- IMPORT admin/partials/quick_actions/buttons.tpl -->
 
 			{{{ if user.privileges.admin:settings }}}
 			<form role="search">
 				<div id="acp-search" >
 					<div class="dropdown" data-text="[[admin/menu:search.placeholder]]">
-						<input type="text" data-toggle="dropdown" class="form-control">
-						<ul class="dropdown-menu dropdown-menu-right state-start-typing" role="menu">
+						<input type="text" data-bs-toggle="dropdown" class="form-control">
+						<ul class="dropdown-menu dropdown-menu-end state-start-typing" role="menu">
 							<li role="presentation" class="no-results">
-								<a>[[admin/menu:search.no-results]]</a>
+								<a class="dropdown-item">[[admin/menu:search.no-results]]</a>
 							</li>
-							<li role="presentation" class="divider search-forum"></li>
+							<li role="presentation" class="dropdown-divider search-forum"></li>
 							<li role="presentation" class="search-forum">
-								<a role="menuitem" target="_top" href="#">
+								<a class="dropdown-item" role="menuitem" target="_top" href="#">
 									[[admin/menu:search.search-forum]]
 								</a>
 							</li>
 							<li role="presentation" class="keep-typing">
-								<a>[[admin/menu:search.keep-typing]]</a>
+								<a class="dropdown-item">[[admin/menu:search.keep-typing]]</a>
 							</li>
 							<li role="presentation" class="start-typing">
-								<a>[[admin/menu:search.start-typing]]</a>
+								<a class="dropdown-item">[[admin/menu:search.start-typing]]</a>
 							</li>
 						</ul>
 					</div>
@@ -168,7 +168,7 @@
 			{{{ end }}}
 
 			<li class="reconnect-spinner">
-				<a href="#" id="reconnect" class="hide" title="[[admin/menu:connection-lost, {title}]]">
+				<a href="#" id="reconnect" class="hide" title="[[admin/menu:connection-lost, {title}]]" data-bs-toggle="tooltip" data-bs-placement="bottom">
 					<i class="fa fa-check"></i>
 				</a>
 			</li>
@@ -178,34 +178,34 @@
 		<ul id="main-menu">
 			{{{ if user.privileges.admin:dashboard }}}
 			<li class="dropdown menu-item">
-				<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-dashboard]]</a>
+				<a href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-dashboard]]</a>
 				<ul class="dropdown-menu" role="menu">
-					<li><a href="{relative_path}/admin/dashboard">[[admin/menu:dashboard/overview]]</a></li>
-					<li><a href="{relative_path}/admin/dashboard/logins">[[admin/menu:dashboard/logins]]</a></li>
-					<li><a href="{relative_path}/admin/dashboard/users">[[admin/menu:dashboard/users]]</a></li>
-					<li><a href="{relative_path}/admin/dashboard/topics">[[admin/menu:dashboard/topics]]</a></li>
-					<li><a href="{relative_path}/admin/dashboard/searches">[[admin/menu:dashboard/searches]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/dashboard">[[admin/menu:dashboard/overview]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/dashboard/logins">[[admin/menu:dashboard/logins]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/dashboard/users">[[admin/menu:dashboard/users]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/dashboard/topics">[[admin/menu:dashboard/topics]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/dashboard/searches">[[admin/menu:dashboard/searches]]</a></li>
 				</ul>
 			</li>
 			{{{ end }}}
 
 			{{{ if showManageMenu }}}
 			<li class="dropdown menu-item">
-				<a id="manage-menu" href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-manage]]</a>
+				<a id="manage-menu" href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-manage]]</a>
 				<ul class="dropdown-menu" role="menu">
-					{{{ if user.privileges.admin:categories }}}<li><a id="manage-categories" href="{relative_path}/admin/manage/categories">[[admin/menu:manage/categories]]</a></li>{{{ end }}}
-					{{{ if user.privileges.admin:privileges }}}<li><a href="{relative_path}/admin/manage/privileges">[[admin/menu:manage/privileges]]</a></li>{{{ end }}}
-					{{{ if user.privileges.admin:users }}}<li><a id="manage-users" href="{relative_path}/admin/manage/users">[[admin/menu:manage/users]]</a></li>{{{ end }}}
-					{{{ if user.privileges.admin:groups }}}<li><a href="{relative_path}/admin/manage/groups">[[admin/menu:manage/groups]]</a></li>{{{ end }}}
-					{{{ if user.privileges.admin:admins-mods }}}<li><a href="{relative_path}/admin/manage/admins-mods">[[admin/menu:manage/admins-mods]]</a></li>{{{ end }}}
-					{{{ if user.privileges.admin:tags }}}<li><a href="{relative_path}/admin/manage/tags">[[admin/menu:manage/tags]]</a></li>{{{ end }}}
+					{{{ if user.privileges.admin:categories }}}<li><a class="dropdown-item" id="manage-categories" href="{relative_path}/admin/manage/categories">[[admin/menu:manage/categories]]</a></li>{{{ end }}}
+					{{{ if user.privileges.admin:privileges }}}<li><a class="dropdown-item" href="{relative_path}/admin/manage/privileges">[[admin/menu:manage/privileges]]</a></li>{{{ end }}}
+					{{{ if user.privileges.admin:users }}}<li><a class="dropdown-item" id="manage-users" href="{relative_path}/admin/manage/users">[[admin/menu:manage/users]]</a></li>{{{ end }}}
+					{{{ if user.privileges.admin:groups }}}<li><a class="dropdown-item" href="{relative_path}/admin/manage/groups">[[admin/menu:manage/groups]]</a></li>{{{ end }}}
+					{{{ if user.privileges.admin:admins-mods }}}<li><a class="dropdown-item" href="{relative_path}/admin/manage/admins-mods">[[admin/menu:manage/admins-mods]]</a></li>{{{ end }}}
+					{{{ if user.privileges.admin:tags }}}<li><a class="dropdown-item" href="{relative_path}/admin/manage/tags">[[admin/menu:manage/tags]]</a></li>{{{ end }}}
 					{{{ if user.privileges.superadmin }}}
-					<li><a href="{relative_path}/admin/manage/registration">[[admin/menu:manage/registration]]</a></li>
-					<li><a href="{relative_path}/admin/manage/uploads">[[admin/menu:manage/uploads]]</a></li>
-					<li><a href="{relative_path}/admin/manage/digest">[[admin/menu:manage/digest]]</a></li>
-					<li role="separator" class="divider"></li>
-					<li><a target="_top" href="{relative_path}/post-queue">[[admin/menu:manage/post-queue]] <i class="fa fa-external-link"></i></a></li>
-					<li><a target="_top" href="{relative_path}/ip-blacklist">[[admin/menu:manage/ip-blacklist]] <i class="fa fa-external-link"></i></a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/manage/registration">[[admin/menu:manage/registration]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/manage/uploads">[[admin/menu:manage/uploads]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/manage/digest">[[admin/menu:manage/digest]]</a></li>
+					<li role="separator" class="dropdown-divider"></li>
+					<li><a class="dropdown-item" target="_top" href="{relative_path}/post-queue">[[admin/menu:manage/post-queue]] <i class="fa fa-external-link"></i></a></li>
+					<li><a class="dropdown-item" target="_top" href="{relative_path}/ip-blacklist">[[admin/menu:manage/ip-blacklist]] <i class="fa fa-external-link"></i></a></li>
 					{{{ end }}}
 				</ul>
 			</li>
@@ -213,89 +213,87 @@
 
 			{{{ if user.privileges.admin:settings }}}
 			<li class="dropdown menu-item">
-				<a id="settings-menu" href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-settings]]</a>
+				<a id="settings-menu" href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-settings]]</a>
 				<ul class="dropdown-menu" role="menu">
-					<li><a id="settings-general" href="{relative_path}/admin/settings/general">[[admin/menu:section-general]]</a></li>
-					<li><a href="{relative_path}/admin/settings/homepage">[[admin/menu:settings/homepage]]</a></li>
-					<li><a href="{relative_path}/admin/settings/navigation">[[admin/menu:settings/navigation]]</a></li>
-					<li><a href="{relative_path}/admin/settings/user">[[admin/menu:settings/user]]</a></li>
-					<li><a href="{relative_path}/admin/settings/reputation">[[admin/menu:settings/reputation]]</a></li>
-					<li><a href="{relative_path}/admin/settings/guest">[[admin/menu:settings/guest]]</a></li>
-					<li><a href="{relative_path}/admin/settings/group">[[admin/menu:settings/group]]</a></li>
-					<li><a href="{relative_path}/admin/settings/tags">[[admin/menu:manage/tags]]</a></li>
-					<li><a href="{relative_path}/admin/settings/post">[[admin/menu:settings/post]]</a></li>
-					<li><a href="{relative_path}/admin/settings/uploads">[[admin/menu:settings/uploads]]</a></li>
-					<li><a href="{relative_path}/admin/settings/languages">[[admin/menu:settings/languages]]</a></li>
-					<li><a href="{relative_path}/admin/settings/email">[[admin/menu:settings/email]]</a></li>
-					<li><a href="{relative_path}/admin/settings/chat">[[admin/menu:settings/chat]]</a></li>
-					<li><a href="{relative_path}/admin/settings/pagination">[[admin/menu:settings/pagination]]</a></li>
-					<li><a href="{relative_path}/admin/settings/notifications">[[admin/menu:settings/notifications]]</a></li>
-					<li><a href="{relative_path}/admin/settings/api">[[admin/menu:settings/api]]</a></li>
-					<li><a href="{relative_path}/admin/settings/social">[[admin/menu:settings/social]]</a></li>
-					<li><a href="{relative_path}/admin/settings/cookies">[[admin/menu:settings/cookies]]</a></li>
-					<li><a href="{relative_path}/admin/settings/web-crawler">[[admin/menu:settings/web-crawler]]</a></li>
-					<li><a href="{relative_path}/admin/settings/advanced">[[admin/menu:settings/advanced]]</a></li>
+					<li><a class="dropdown-item" id="settings-general" href="{relative_path}/admin/settings/general">[[admin/menu:section-general]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/homepage">[[admin/menu:settings/homepage]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/navigation">[[admin/menu:settings/navigation]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/user">[[admin/menu:settings/user]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/reputation">[[admin/menu:settings/reputation]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/guest">[[admin/menu:settings/guest]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/group">[[admin/menu:settings/group]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/tags">[[admin/menu:manage/tags]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/post">[[admin/menu:settings/post]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/uploads">[[admin/menu:settings/uploads]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/languages">[[admin/menu:settings/languages]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/email">[[admin/menu:settings/email]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/chat">[[admin/menu:settings/chat]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/pagination">[[admin/menu:settings/pagination]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/notifications">[[admin/menu:settings/notifications]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/api">[[admin/menu:settings/api]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/social">[[admin/menu:settings/social]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/cookies">[[admin/menu:settings/cookies]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/web-crawler">[[admin/menu:settings/web-crawler]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/settings/advanced">[[admin/menu:settings/advanced]]</a></li>
 				</ul>
 			</li>
 			<li class="dropdown menu-item">
-				<a id="appearance-menu" href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-appearance]]</a>
+				<a id="appearance-menu" href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-appearance]]</a>
 				<ul class="dropdown-menu" role="menu">
-					<li><a id="appearance-themes" href="{relative_path}/admin/appearance/themes">[[admin/menu:appearance/themes]]</a></li>
-					<li><a id="appearance-skins" href="{relative_path}/admin/appearance/skins">[[admin/menu:appearance/skins]]</a></li>
-					<li><a id="appearance-customise" href="{relative_path}/admin/appearance/customise">[[admin/menu:appearance/customise]]</a></li>
+					<li><a class="dropdown-item" id="appearance-themes" href="{relative_path}/admin/appearance/themes">[[admin/menu:appearance/themes]]</a></li>
+					<li><a class="dropdown-item" id="appearance-skins" href="{relative_path}/admin/appearance/skins">[[admin/menu:appearance/skins]]</a></li>
+					<li><a class="dropdown-item" id="appearance-customise" href="{relative_path}/admin/appearance/customise">[[admin/menu:appearance/customise]]</a></li>
 				</ul>
 			</li>
 			<li class="dropdown menu-item">
-				<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-extend]]</a>
+				<a href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-extend]]</a>
 				<ul class="dropdown-menu" role="menu">
-					<li><a href="{relative_path}/admin/extend/plugins">[[admin/menu:extend/plugins]]</a></li>
-					<li><a href="{relative_path}/admin/extend/widgets">[[admin/menu:extend/widgets]]</a></li>
-					<li><a href="{relative_path}/admin/extend/rewards">[[admin/menu:extend/rewards]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/extend/plugins">[[admin/menu:extend/plugins]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/extend/widgets">[[admin/menu:extend/widgets]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/extend/rewards">[[admin/menu:extend/rewards]]</a></li>
 				</ul>
 			</li>
-			<!-- IF plugins.length -->
+			{{{ if plugins.length }}}
 			<li class="dropdown menu-item">
-				<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-plugins]]</a>
+				<a href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-plugins]]</a>
 				<ul class="dropdown-menu plugins-menu" role="menu">
 					<li class="dropdown-header">[[admin/menu:section-plugins]]</li>
-					<!-- BEGIN plugins -->
+					{{{ each plugins }}}
 					<li>
-						<a href="{relative_path}/admin{plugins.route}">{plugins.name}</a>
+						<a class="dropdown-item"  href="{relative_path}/admin{./route}">{./name}</a>
 					</li>
-					<!-- END plugins -->
-					<!-- IF authentication.length -->
-					<li class="divider"></li>
-					{{{if authentication.length}}}
+					{{{ end }}}
+					{{{ if authentication.length }}}
+					<li class="dropdown-divider"></li>
 					<li class="dropdown-header">[[admin/menu:section-social-auth]]</li>
-					{{{each authentication}}}
+					{{{ each authentication }}}
 					<li>
-						<a href="{relative_path}/admin{authentication.route}">{authentication.name}</a>
+						<a class="dropdown-item" href="{relative_path}/admin{./route}">{./name}</a>
 					</li>
-					{{{end}}}
-					{{{end}}}
-					<!-- ENDIF authentication.length -->
-					<li class="divider"></li>
+					{{{ end }}}
+					{{{ end }}}
+					<li class="dropdown-divider"></li>
 					<li data-link="1">
-						<a href="{relative_path}/admin/extend/plugins#download">[[admin/menu:extend/plugins.install]]</a>
+						<a class="dropdown-item" href="{relative_path}/admin/extend/plugins#download">[[admin/menu:extend/plugins.install]]</a>
 					</li>
 				</ul>
 			</li>
-			<!-- ENDIF plugins.length -->
+			{{{ end }}}
 			{{{ end }}}
 
 			{{{ if user.privileges.superadmin }}}
 			<li class="dropdown menu-item">
-				<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-advanced]]</a>
+				<a href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false">[[admin/menu:section-advanced]]</a>
 				<ul class="dropdown-menu" role="menu">
-					<li><a href="{relative_path}/admin/advanced/database">[[admin/menu:advanced/database]]</a></li>
-					<li><a href="{relative_path}/admin/advanced/events">[[admin/menu:advanced/events]]</a></li>
-					<li><a href="{relative_path}/admin/advanced/hooks">[[admin/menu:advanced/hooks]]</a></li>
-					<li><a href="{relative_path}/admin/advanced/cache">[[admin/menu:advanced/cache]]</a></li>
-					<li><a href="{relative_path}/admin/advanced/errors">[[admin/menu:advanced/errors]]</a></li>
-					<li><a href="{relative_path}/admin/advanced/logs">[[admin/menu:advanced/logs]]</a></li>
-					<!-- IF env -->
-					<li><a href="{relative_path}/admin/development/logger">[[admin/menu:development/logger]]</a></li>
-					<!-- ENDIF env -->
+					<li><a class="dropdown-item" href="{relative_path}/admin/advanced/database">[[admin/menu:advanced/database]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/advanced/events">[[admin/menu:advanced/events]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/advanced/hooks">[[admin/menu:advanced/hooks]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/advanced/cache">[[admin/menu:advanced/cache]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/advanced/errors">[[admin/menu:advanced/errors]]</a></li>
+					<li><a class="dropdown-item" href="{relative_path}/admin/advanced/logs">[[admin/menu:advanced/logs]]</a></li>
+					{{{ if env }}}
+					<li><a class="dropdown-item" href="{relative_path}/admin/development/logger">[[admin/menu:development/logger]]</a></li>
+					{{{ end }}}
 				</ul>
 			</li>
 			{{{ end }}}
diff --git a/src/views/admin/partials/pageviews-range-select.tpl b/src/views/admin/partials/pageviews-range-select.tpl
index 09ede7ff74..e5168d664f 100644
--- a/src/views/admin/partials/pageviews-range-select.tpl
+++ b/src/views/admin/partials/pageviews-range-select.tpl
@@ -2,19 +2,19 @@
 	<fieldset>
 		<div class="alert alert-danger hidden">[[admin/dashboard:page-views-custom-error]]</div>
 		<div class="row">
-			<div class="col-xs-6">
-				<div class="form-group">
-					<label for="startRange">[[admin/dashboard:page-views-custom-start]]</label>
+			<div class="col-6">
+				<div class="mb-3">
+					<label class="form-label" for="startRange">[[admin/dashboard:page-views-custom-start]]</label>
 					<input class="form-control" type="date" id="startRange" name="startRange" />
 				</div>
 			</div>
-			<div class="col-xs-6">
-				<div class="form-group">
-					<label for="endRange">[[admin/dashboard:page-views-custom-end]]</label>
+			<div class="col-6">
+				<div class="mb-3">
+					<label class="form-label" for="endRange">[[admin/dashboard:page-views-custom-end]]</label>
 					<input class="form-control" type="date" id="endRange" name="endRange" />
 				</div>
 			</div>
 		</div>
-		<p class="help-block">[[admin/dashboard:page-views-custom-help]]</p>
+		<p class="form-text">[[admin/dashboard:page-views-custom-help]]</p>
 	</fieldset>
 </form>
\ No newline at end of file
diff --git a/src/views/admin/partials/privileges/category.tpl b/src/views/admin/partials/privileges/category.tpl
index 6e4dbdf0cf..e53b9a8056 100644
--- a/src/views/admin/partials/privileges/category.tpl
+++ b/src/views/admin/partials/privileges/category.tpl
@@ -2,13 +2,15 @@
 					<table class="table table-striped privilege-table">
 						<thead>
 							<tr class="privilege-table-header">
-								<th class="privilege-filters btn-toolbar" colspan="100">
-									<!-- IF privileges.columnCountGroupOther -->
-									<button type="button" data-filter="19,99" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-other]]</button>
-									<!-- END -->
-									<button type="button" data-filter="16,18" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-moderation]]</button>
-									<button type="button" data-filter="6,15" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-posting]]</button>
-									<button type="button" data-filter="3,5" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-viewing]]</button>
+								<th class="privilege-filters" colspan="100">
+									<div class="btn-toolbar justify-content-end gap-1">
+									<button type="button" data-filter="3,5" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-viewing]]</button>
+									<button type="button" data-filter="6,15" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-posting]]</button>
+									<button type="button" data-filter="16,18" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-moderation]]</button>
+									{{{ if privileges.columnCountGroupOther }}}
+									<button type="button" data-filter="19,99" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-other]]</button>
+									{{{ end }}}
+									</div>
 								</th>
 							</tr><tr><!-- zebrastripe reset --></tr>
 							<tr>
@@ -20,8 +22,8 @@
 							</tr>
 						</thead>
 						<tbody>
-							<!-- BEGIN privileges.groups -->
-							<tr data-group-name="{privileges.groups.nameEscaped}" data-private="<!-- IF privileges.groups.isPrivate -->1<!-- ELSE -->0<!-- ENDIF privileges.groups.isPrivate -->">
+							{{{ each privileges.groups }}}
+							<tr data-group-name="{privileges.groups.nameEscaped}" data-private="{{{ if privileges.groups.isPrivate }}}1{{{ else }}}0{{{ end }}}">
 								<td>
 									{{{ if privileges.groups.isPrivate }}}
 										{{{ if (privileges.groups.name == "banned-users") }}}
@@ -36,39 +38,43 @@
 								</td>
 								<td>
 									<div class="dropdown">
-										<button class="btn btn-default btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
+										<button class="btn btn-outline-secondary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
 											<i class="fa fa-copy"></i>
 										</button>
-										<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
-											<li data-action="copyToAllGroup"><a href="#">[[admin/manage/categories:privileges.copy-group-privileges-to-all-categories]]</a></li>
-											<li data-action="copyToChildrenGroup"><a href="#">[[admin/manage/categories:privileges.copy-group-privileges-to-children]]</a></li>
-											<li data-action="copyPrivilegesFromGroup"><a href="#">[[admin/manage/categories:privileges.copy-group-privileges-from]]</a></li>
+										<ul class="dropdown-menu">
+											<li data-action="copyToAllGroup"><a class="dropdown-item" href="#">[[admin/manage/categories:privileges.copy-group-privileges-to-all-categories]]</a></li>
+											<li data-action="copyToChildrenGroup"><a class="dropdown-item" href="#">[[admin/manage/categories:privileges.copy-group-privileges-to-children]]</a></li>
+											<li data-action="copyPrivilegesFromGroup"><a class="dropdown-item" href="#">[[admin/manage/categories:privileges.copy-group-privileges-from]]</a></li>
 										</ul>
 									</div>
 								</td>
-								<td class="text-center"><input autocomplete="off" type="checkbox" class="checkbox-helper"></td>
+								<td class="">
+									<div class="form-check text-center">
+										<input autocomplete="off" type="checkbox" class="form-check-input float-none checkbox-helper">
+									</div>
+								</td>
 								{function.spawnPrivilegeStates, privileges.groups.name, ../privileges}
 							</tr>
-							<!-- END privileges.groups -->
+							{{{ end }}}
 						</tbody>
 						<tfoot>
 							<tr>
 								<td colspan="3"></td>
 								<td colspan="{privileges.keys.groups.length}">
-									<div class="btn-toolbar">
-										<button type="button" class="btn btn-default pull-right" data-ajaxify="false" data-action="search.group">
+									<div class="btn-toolbar justify-content-end gap-1">
+										<button type="button" class="btn btn-sm btn-outline-secondary" data-ajaxify="false" data-action="search.group">
 											<i class="fa fa-users"></i>
 											[[admin/manage/categories:privileges.search-group]]
 										</button>
-										<button type="button" class="btn btn-default pull-right" data-ajaxify="false" data-action="copyPrivilegesFrom">
+										<button type="button" class="btn btn-sm btn-outline-secondary" data-ajaxify="false" data-action="copyPrivilegesFrom">
 											<i class="fa fa-copy"></i>
 											[[admin/manage/categories:privileges.copy-from-category]]
 										</button>
-										<button type="button" class="btn btn-default pull-right" data-ajaxify="false" data-action="copyToChildren">
+										<button type="button" class="btn btn-sm btn-outline-secondary" data-ajaxify="false" data-action="copyToChildren">
 											<i class="fa fa-copy"></i>
 											[[admin/manage/categories:privileges.copy-to-children]]
 										</button>
-										<button type="button" class="btn btn-default pull-right" data-ajaxify="false" data-action="copyToAll">
+										<button type="button" class="btn btn-sm btn-outline-secondary" data-ajaxify="false" data-action="copyToAll">
 											<i class="fa fa-copy"></i>
 											[[admin/manage/categories:privileges.copy-privileges-to-all-categories]]
 										</button>
@@ -77,7 +83,7 @@
 							</tr>
 						</tfoot>
 					</table>
-					<div class="help-block">
+					<div class="form-text">
 						[[admin/manage/categories:privileges.inherit]]
 					</div>
 					<hr/>
@@ -85,13 +91,15 @@
 					<table class="table table-striped privilege-table">
 						<thead>
 							<tr class="privilege-table-header">
-								<th class="privilege-filters btn-toolbar" colspan="100">
-									<!-- IF privileges.columnCountUserOther -->
-									<button type="button" data-filter="19,99" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-other]]</button>
-									<!-- END -->
-									<button type="button" data-filter="16,18" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-moderation]]</button>
-									<button type="button" data-filter="6,15" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-posting]]</button>
-									<button type="button" data-filter="3,5" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-viewing]]</button>
+								<th class="privilege-filters" colspan="100">
+									<div class="btn-toolbar justify-content-end gap-1">
+									<button type="button" data-filter="3,5" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-viewing]]</button>
+									<button type="button" data-filter="6,15" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-posting]]</button>
+									<button type="button" data-filter="16,18" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-moderation]]</button>
+									{{{ if privileges.columnCountUserOther }}}
+									<button type="button" data-filter="19,99" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-other]]</button>
+									{{{ end }}}
+									</div>
 								</th>
 							</tr><tr><!-- zebrastripe reset --></tr>
 							<tr>
@@ -103,14 +111,14 @@
 							</tr>
 						</thead>
 						<tbody>
-							<!-- BEGIN privileges.users -->
+							{{{ each privileges.users }}}
 							<tr data-uid="{privileges.users.uid}"{{{ if privileges.users.banned }}} data-banned{{{ end }}}>
 								<td>
-									<!-- IF ../picture -->
+									{{{ if ./picture }}}
 									<img class="avatar avatar-sm" src="{privileges.users.picture}" title="{privileges.users.username}" alt="" />
-									<!-- ELSE -->
+									{{{ else }}}
 									<div class="avatar avatar-sm" style="background-color: {../icon:bgColor};">{../icon:text}</div>
-									<!-- ENDIF ../picture -->
+									{{{ end }}}
 								</td>
 								<td>
 									{{{ if privileges.users.banned }}}
@@ -121,16 +129,18 @@
 								<td class="text-center"><input autocomplete="off" type="checkbox" class="checkbox-helper"></td>
 								{function.spawnPrivilegeStates, privileges.users.username, ../privileges}
 							</tr>
-							<!-- END privileges.users -->
+							{{{ end }}}
 						</tbody>
 						<tfoot>
 							<tr>
 								<td colspan="3"></td>
 								<td colspan="{privileges.keys.users.length}">
-									<button type="button" class="btn btn-default pull-right" data-ajaxify="false" data-action="search.user">
-										<i class="fa fa-user"></i>
-										[[admin/manage/categories:privileges.search-user]]
-									</button>
+									<div class="btn-toolbar justify-content-end">
+										<button type="button" class="btn btn-sm btn-outline-secondary" data-ajaxify="false" data-action="search.user">
+											<i class="fa fa-user"></i>
+											[[admin/manage/categories:privileges.search-user]]
+										</button>
+									</div>
 								</td>
 							</tr>
 						</tfoot>
diff --git a/src/views/admin/partials/privileges/global.tpl b/src/views/admin/partials/privileges/global.tpl
index db656ccf18..dedc9c0ac8 100644
--- a/src/views/admin/partials/privileges/global.tpl
+++ b/src/views/admin/partials/privileges/global.tpl
@@ -3,13 +3,15 @@
 						<thead>
 							{{{ if !isAdminPriv }}}
 							<tr class="privilege-table-header">
-								<th class="privilege-filters btn-toolbar" colspan="100">
-									<!-- IF privileges.columnCountGroupOther -->
-									<button type="button" data-filter="19,99" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-other]]</button>
-									<!-- END -->
-									<button type="button" data-filter="16,18" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-moderation]]</button>
-									<button type="button" data-filter="3,8" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-posting]]</button>
-									<button type="button" data-filter="9,15" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-viewing]]</button>
+								<th class="privilege-filters" colspan="100">
+									<div class="btn-toolbar justify-content-end gap-1">
+									<button type="button" data-filter="9,15" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-viewing]]</button>
+									<button type="button" data-filter="3,8" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-posting]]</button>
+									<button type="button" data-filter="16,18" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-moderation]]</button>
+									{{{ if privileges.columnCountGroupOther }}}
+									<button type="button" data-filter="19,99" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-other]]</button>
+									{{{ end }}}
+									</div>
 								</th>
 							</tr><tr><!-- zebrastripe reset --></tr>
 							{{{ end }}}
@@ -22,8 +24,8 @@
 							</tr>
 						</thead>
 						<tbody>
-							<!-- BEGIN privileges.groups -->
-							<tr data-group-name="{privileges.groups.nameEscaped}" data-private="<!-- IF privileges.groups.isPrivate -->1<!-- ELSE -->0<!-- ENDIF privileges.groups.isPrivate -->">
+							{{{ each privileges.groups }}}
+							<tr data-group-name="{privileges.groups.nameEscaped}" data-private="{{{ if privileges.groups.isPrivate }}}1{{{ else }}}0{{{ end }}}">
 								<td>
 									{{{ if privileges.groups.isPrivate }}}
 										{{{ if (privileges.groups.name == "banned-users") }}}
@@ -40,14 +42,14 @@
 								<td class="text-center"><input autocomplete="off" type="checkbox" class="checkbox-helper"></td>
 								{function.spawnPrivilegeStates, privileges.groups.name, ../privileges}
 							</tr>
-							<!-- END privileges.groups -->
+							{{{ end }}}
 						</tbody>
 						<tfoot>
 							<tr>
 								<td colspan="3"></td>
 								<td colspan="{privileges.keys.groups.length}">
-									<div class="btn-toolbar">
-										<button type="button" class="btn btn-default pull-right" data-ajaxify="false" data-action="search.group">
+									<div class="btn-toolbar justify-content-end">
+										<button type="button" class="btn btn-sm btn-outline-secondary" data-ajaxify="false" data-action="search.group">
 											<i class="fa fa-users"></i>
 											[[admin/manage/categories:privileges.search-group]]
 										</button>
@@ -56,7 +58,7 @@
 							</tr>
 						</tfoot>
 					</table>
-					<div class="help-block">
+					<div class="form-text">
 						[[admin/manage/categories:privileges.inherit]]
 					</div>
 					<hr/>
@@ -65,13 +67,15 @@
 						<thead>
 							{{{ if !isAdminPriv }}}
 							<tr class="privilege-table-header">
-								<th class="privilege-filters btn-toolbar" colspan="100">
-									<!-- IF privileges.columnCountUserOther -->
-									<button type="button" data-filter="19,99" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-other]]</button>
-									<!-- END -->
-									<button type="button" data-filter="16,18" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-moderation]]</button>
-									<button type="button" data-filter="3,8" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-posting]]</button>
-									<button type="button" data-filter="9,15" class="btn btn-default pull-right">[[admin/manage/categories:privileges.section-viewing]]</button>
+								<th class="privilege-filters" colspan="100">
+									<div class="btn-toolbar justify-content-end gap-1">
+									<button type="button" data-filter="9,15" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-viewing]]</button>
+									<button type="button" data-filter="3,8" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-posting]]</button>
+									<button type="button" data-filter="16,18" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-moderation]]</button>
+									{{{ if privileges.columnCountUserOther }}}
+									<button type="button" data-filter="19,99" class="btn btn-outline-secondary">[[admin/manage/categories:privileges.section-other]]</button>
+									{{{ end }}}
+									</div>
 								</th>
 							</tr><tr><!-- zebrastripe reset --></tr>
 							{{{ end }}}
@@ -84,14 +88,14 @@
 							</tr>
 						</thead>
 						<tbody>
-							<!-- BEGIN privileges.users -->
+							{{{ each privileges.users }}}
 							<tr data-uid="{privileges.users.uid}"{{{ if privileges.users.banned }}} data-banned{{{ end }}}>
 								<td>
-									<!-- IF ../picture -->
+									{{{ if ./picture }}}
 									<img class="avatar avatar-sm" src="{privileges.users.picture}" title="{privileges.users.username}" alt="" />
-									<!-- ELSE -->
+									{{{ else }}}
 									<div class="avatar avatar-sm" style="background-color: {../icon:bgColor};">{../icon:text}</div>
-									<!-- ENDIF ../picture -->
+									{{{ end }}}
 								</td>
 								<td>
 									{{{ if privileges.users.banned }}}
@@ -102,16 +106,18 @@
 								<td class="text-center"><input autocomplete="off" type="checkbox" class="checkbox-helper"></td>
 								{function.spawnPrivilegeStates, privileges.users.username, ../privileges}
 							</tr>
-							<!-- END privileges.users -->
+							{{{ end }}}
 						</tbody>
 						<tfoot>
 							<tr>
 								<td colspan="3"></td>
 								<td colspan="{privileges.keys.users.length}">
-									<button type="button" class="btn btn-default pull-right" data-ajaxify="false" data-action="search.user">
-										<i class="fa fa-user"></i>
-										[[admin/manage/categories:privileges.search-user]]
-									</button>
+									<div class="btn-toolbar justify-content-end">
+										<button type="button" class="btn btn-sm btn-outline-secondary" data-ajaxify="false" data-action="search.user">
+											<i class="fa fa-user"></i>
+											[[admin/manage/categories:privileges.search-user]]
+										</button>
+									</div>
 								</td>
 							</tr>
 						</tfoot>
diff --git a/src/views/admin/partials/quick_actions/alerts.tpl b/src/views/admin/partials/quick_actions/alerts.tpl
index 96f34a4848..60ca2f3959 100644
--- a/src/views/admin/partials/quick_actions/alerts.tpl
+++ b/src/views/admin/partials/quick_actions/alerts.tpl
@@ -1,10 +1,10 @@
-<div class="alert <!-- IF upgradeAvailable -->alert-warning<!-- ELSE -->alert-info<!-- END --> well-sm">
+<div class="alert {{{ if upgradeAvailable }}}alert-warning{{{ else }}}alert-info{{{ end }}}">
 	<span>[[admin/menu:alerts.version, {version}]]</span>
-	<!-- IF upgradeAvailable -->
+	{{{ if upgradeAvailable }}}
 	<span style="margin-left: 10px">
 		<a href="https://docs.nodebb.org/configuring/upgrade/" target="_blank">
 			<u>[[admin/menu:alerts.upgrade, {latestVersion}]]</u>
 		</a>
 	</span>
-	<!-- END -->
+	{{{ end }}}
 </div>
\ No newline at end of file
diff --git a/src/views/admin/partials/quick_actions/buttons.tpl b/src/views/admin/partials/quick_actions/buttons.tpl
index eed00da8f6..0d1b7c26da 100644
--- a/src/views/admin/partials/quick_actions/buttons.tpl
+++ b/src/views/admin/partials/quick_actions/buttons.tpl
@@ -1,24 +1,24 @@
 <li component="logout">
-	<a href="#" title="[[admin/menu:logout]]" data-placement="bottom" data-toggle="tooltip">
+	<a href="#" title="[[admin/menu:logout]]" data-bs-placement="bottom" data-bs-toggle="tooltip">
 		<i class="fa fw-fw fa-sign-out"></i>
 	</a>
 </li>
 
 {{{ if user.privileges.superadmin }}}
 <li>
-	<a href="#" class="restart" data-toggle="tooltip" data-placement="bottom" title="[[admin/menu:restart-forum]]">
+	<a href="#" class="restart" data-bs-toggle="tooltip" data-bs-placement="bottom" title="[[admin/menu:restart-forum]]">
 		<i class="fa fa-fw fa-repeat"></i>
 	</a>
 </li>
 <li>
-	<a href="#" class="rebuild-and-restart" data-toggle="tooltip" data-placement="bottom" title="[[admin/menu:rebuild-and-restart-forum]]">
+	<a href="#" class="rebuild-and-restart" data-bs-toggle="tooltip" data-bs-placement="bottom" title="[[admin/menu:rebuild-and-restart-forum]]">
 		<i class="fa fa-fw fa-refresh"></i>
 	</a>
 </li>
 {{{ end }}}
 
 <li>
-	<a href="{config.relative_path}/" data-toggle="tooltip" data-placement="bottom" title="[[admin/menu:view-forum]]">
+	<a href="{config.relative_path}/" data-bs-toggle="tooltip" data-bs-placement="bottom" title="[[admin/menu:view-forum]]">
 		<i class="fa fa-fw fa-home"></i>
 	</a>
 </li>
\ No newline at end of file
diff --git a/src/views/admin/partials/save_button.tpl b/src/views/admin/partials/save_button.tpl
new file mode 100644
index 0000000000..ec5c298896
--- /dev/null
+++ b/src/views/admin/partials/save_button.tpl
@@ -0,0 +1,3 @@
+<button id="save" class="btn btn-primary position-fixed bottom-0 end-0 px-3 py-2 mb-4 me-4 rounded-circle fs-4" type="button" style="width: 64px; height: 64px;">
+	<i class="fa fa-fw fas fa-floppy-disk"></i>
+</button>
\ No newline at end of file
diff --git a/src/views/admin/partials/settings/footer.tpl b/src/views/admin/partials/settings/footer.tpl
index c8e884c6ab..d0e0048093 100644
--- a/src/views/admin/partials/settings/footer.tpl
+++ b/src/views/admin/partials/settings/footer.tpl
@@ -1,5 +1,3 @@
 </div>
 
-<button id="save" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-	<i class="material-icons">save</i>
-</button>
+<!-- IMPORT admin/partials/save_button.tpl -->
diff --git a/src/views/admin/partials/settings/header.tpl b/src/views/admin/partials/settings/header.tpl
index 5c0d635724..b0d46b9624 100644
--- a/src/views/admin/partials/settings/header.tpl
+++ b/src/views/admin/partials/settings/header.tpl
@@ -1,9 +1,9 @@
 <div class="settings">
-	<div class="row">
-		<div class="col-sm-2 col-xs-12 content-header">
+	<div class="row mb-4">
+		<div class="col-sm-2 col-12 content-header">
 			[[admin/admin:settings-header-contents]]
 		</div>
-		<div class="col-sm-10 col-xs-12">
+		<div class="col-sm-10 col-12">
 			<nav class="section-content">
 				<ul></ul>
 			</nav>
diff --git a/src/views/admin/partials/temporary-ban.tpl b/src/views/admin/partials/temporary-ban.tpl
deleted file mode 100644
index 5a3fdc9c62..0000000000
--- a/src/views/admin/partials/temporary-ban.tpl
+++ /dev/null
@@ -1,32 +0,0 @@
-<form class="form">
-	<div class="row">
-		<div class="col-xs-4">
-			<div class="form-group">
-				<label for="length">[[admin/manage/users:temp-ban.length]]</label>
-				<input class="form-control" id="length" name="length" type="number" min="0" value="1" />
-			</div>
-		</div>
-		<div class="col-xs-8">
-			<div class="form-group">
-				<label for="reason">[[admin/manage/users:temp-ban.reason]]</label>
-				<input type="text" class="form-control" id="reason" name="reason" />
-			</div>
-		</div>
-	</div>
-	<div class="row">
-		<div class="col-sm-4 text-center">
-			<div class="form-group units">
-				<label>[[admin/manage/users:temp-ban.hours]]</label>
-				<input type="radio" name="unit" value="0" checked />
-				&nbsp;&nbsp;
-				<label>[[admin/manage/users:temp-ban.days]]</label>
-				<input type="radio" name="unit" value="1" />
-			</div>
-		</div>
-		<div class="col-sm-8">
-			<p class="help-block">
-				[[admin/manage/users:temp-ban.explanation]]
-			</p>
-		</div>
-	</div>
-</form>
diff --git a/src/views/admin/partials/temporary-mute.tpl b/src/views/admin/partials/temporary-mute.tpl
deleted file mode 100644
index 31bcd631f3..0000000000
--- a/src/views/admin/partials/temporary-mute.tpl
+++ /dev/null
@@ -1,27 +0,0 @@
-<form class="form">
-	<div class="row">
-		<div class="col-xs-4">
-			<div class="form-group">
-				<label for="length">[[admin/manage/users:temp-ban.length]]</label>
-				<input class="form-control" id="length" name="length" type="number" min="0" value="1" />
-			</div>
-		</div>
-		<div class="col-xs-8">
-			<div class="form-group">
-				<label for="reason">[[admin/manage/users:temp-ban.reason]]</label>
-				<input type="text" class="form-control" id="reason" name="reason" />
-			</div>
-		</div>
-	</div>
-	<div class="row">
-		<div class="col-sm-4 text-center">
-			<div class="form-group units">
-				<label>[[admin/manage/users:temp-ban.hours]]</label>
-				<input type="radio" name="unit" value="0" checked />
-				&nbsp;&nbsp;
-				<label>[[admin/manage/users:temp-ban.days]]</label>
-				<input type="radio" name="unit" value="1" />
-			</div>
-		</div>
-	</div>
-</form>
diff --git a/src/views/admin/partials/theme_list.tpl b/src/views/admin/partials/theme_list.tpl
index 26a226b803..4ac0a67743 100644
--- a/src/views/admin/partials/theme_list.tpl
+++ b/src/views/admin/partials/theme_list.tpl
@@ -1,24 +1,24 @@
-<!-- BEGIN themes -->
-<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12" data-type="{themes.type}" data-theme="{themes.id}"<!-- IF themes.css --> data-css="{themes.css}"<!-- ENDIF themes.css -->>
-	<div class="theme-card mdl-card mdl-shadow--2dp">
-		<div class="mdl-card__title mdl-card--expand" style="background-image: url('{themes.screenshot_url}');"></div>
-		<div class="mdl-card__supporting-text">
-			<h2 class="mdl-card__title-text">{themes.name}</h2>
-			<p>
-				{themes.description}
+{{{ each themes }}}
+<div class="col-lg-4 col-md-6 col-12 mb-4" data-type="{./type}" data-theme="{./id}"{{{ if ./css }}} data-css="{./css}" {{{ end }}}>
+	<div class="card h-100">
+		<img src="{./screenshot_url}" class="card-img-top">
+		<div class="card-body">
+			<h5 class="card-title">{./name}</h5>
+			<p class="card-text">
+				{./description}
 			</p>
 
-			<!-- IF themes.url -->
+			{{{ if ./url }}}
 			<p>
-				<a href="{themes.url}" target="_blank">[[admin/appearance/themes:homepage]]</a>
+				<a href="{./url}" target="_blank">[[admin/appearance/themes:homepage]]</a>
 			</p>
-			<!-- ENDIF themes.url -->
+			{{{ end }}}
 		</div>
-		<div class="mdl-card__actions mdl-card--border">
-			<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect" data-action="use">
-				<!-- IF themes.skin -->[[admin/appearance/skins:select-skin]]<!-- ELSE -->[[admin/appearance/themes:select-theme]]<!-- ENDIF themes.skin -->
+		<div class="card-footer">
+			<a class="btn btn-primary" data-action="use">
+				{{{ if ./skin }}}[[admin/appearance/skins:select-skin]]{{{ else }}}[[admin/appearance/themes:select-theme]]{{{ end }}}
 			</a>
 		</div>
 	</div>
 </div>
-<!-- END themes -->
+{{{ end }}}
diff --git a/src/views/admin/partials/widget-settings.tpl b/src/views/admin/partials/widget-settings.tpl
index 2549b27d1b..260f111d0b 100644
--- a/src/views/admin/partials/widget-settings.tpl
+++ b/src/views/admin/partials/widget-settings.tpl
@@ -1,13 +1,16 @@
-<br />
-<label>[[admin/extend/widgets:title]]</label>
-<input type="text" class="form-control" name="title" placeholder="[[admin/extend/widgets:title.placeholder]]" /><br />
+<div class="mb-3">
+	<label class="form-label">[[admin/extend/widgets:title]]</label>
+	<input type="text" class="form-control" name="title" placeholder="[[admin/extend/widgets:title.placeholder]]" />
+</div>
 
-<label>[[admin/extend/widgets:container]]</label>
-<textarea rows="4" class="form-control container-html" name="container" placeholder="[[admin/extend/widgets:container.placeholder]]"></textarea>
+<div class="mb-3">
+	<label class="form-label">[[admin/extend/widgets:container]]</label>
+	<textarea rows="4" class="form-control container-html" name="container" placeholder="[[admin/extend/widgets:container.placeholder]]"></textarea>
+</div>
 
-<br/>
 <!-- IMPORT admin/partials/widgets/show_hide_groups.tpl -->
 
-<div class="checkbox">
-<label><input name="hide-mobile" type="checkbox"> [[admin/extend/widgets:hide-on-mobile]]</input></label>
+<div class="form-check form-switch mb-3">
+	<input class="form-check-input" type="checkbox" name="hide-mobile" id="hide-mobile-check"/>
+	<label class="form-check-label" for="hide-mobile-check">[[admin/extend/widgets:hide-on-mobile]]</label>
 </div>
diff --git a/src/views/admin/partials/widgets/show_hide_groups.tpl b/src/views/admin/partials/widgets/show_hide_groups.tpl
index a640c27716..583a405947 100644
--- a/src/views/admin/partials/widgets/show_hide_groups.tpl
+++ b/src/views/admin/partials/widgets/show_hide_groups.tpl
@@ -1,18 +1,18 @@
-<div class="row">
+<div class="row mb-3">
 	<div class="col-lg-6">
 		<label>[[admin/extend/widgets:show-to-groups]]</label>
-		<select name="groups" class="form-control" multiple size="10">
-			<!-- BEGIN groups -->
-			<option value="{groups.displayName}">{groups.displayName}</option>
-			<!-- END groups -->
+		<select name="groups" class="form-select" multiple size="10">
+			{{{ each groups }}}
+			<option value="{./displayName}">{./displayName}</option>
+			{{{ end }}}
 		</select>
 	</div>
 	<div class="col-lg-6">
 		<label>[[admin/extend/widgets:hide-from-groups]]</label>
-		<select name="groupsHideFrom" class="form-control" multiple size="10">
-			<!-- BEGIN groups -->
-			<option value="{groups.displayName}">{groups.displayName}</option>
-			<!-- END groups -->
+		<select name="groupsHideFrom" class="form-select" multiple size="10">
+			{{{ each groups }}}
+			<option value="{./displayName}">{./displayName}</option>
+			{{{ end }}}
 		</select>
 	</div>
 </div>
\ No newline at end of file
diff --git a/src/views/admin/settings/advanced.tpl b/src/views/admin/settings/advanced.tpl
index 1041848878..dc7e5beb38 100644
--- a/src/views/admin/settings/advanced.tpl
+++ b/src/views/admin/settings/advanced.tpl
@@ -1,29 +1,27 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/advanced:maintenance-mode]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/advanced:maintenance-mode]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="maintenanceMode">
-					<span class="mdl-switch__label"><strong>[[admin/settings/advanced:maintenance-mode]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="maintenanceMode">
+				<label class="form-check-label">[[admin/settings/advanced:maintenance-mode]]</label>
 			</div>
-			<p class="help-block">
+			<p class="form-text">
 				[[admin/settings/advanced:maintenance-mode.help]]
 			</p>
-			<div class="form-group">
-				<label for="maintenanceModeStatus">[[admin/settings/advanced:maintenance-mode.status]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maintenanceModeStatus">[[admin/settings/advanced:maintenance-mode.status]]</label>
 				<input id="maintenanceModeStatus" class="form-control" type="text" data-field="maintenanceModeStatus">
 			</div>
-			<div class="form-group">
-				<label for="maintenanceModeMessage">[[admin/settings/advanced:maintenance-mode.message]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maintenanceModeMessage">[[admin/settings/advanced:maintenance-mode.message]]</label>
 				<textarea id="maintenanceModeMessage" class="form-control" data-field="maintenanceModeMessage"></textarea>
 			</div>
 			<div class="form-group">
-				<label for="groupsExemptFromMaintenanceMode">[[admin/settings/advanced:maintenance-mode.groups-exempt-from-maintenance-mode]]</label>
-				<select id="groupsExemptFromMaintenanceMode" class="form-control" multiple data-field="groupsExemptFromMaintenanceMode">
+				<label class="form-label" for="groupsExemptFromMaintenanceMode">[[admin/settings/advanced:maintenance-mode.groups-exempt-from-maintenance-mode]]</label>
+				<select id="groupsExemptFromMaintenanceMode" class="form-select" multiple data-field="groupsExemptFromMaintenanceMode">
 					{{{ each groupsExemptFromMaintenanceMode }}}
 					<option value="{groupsExemptFromMaintenanceMode.displayName}">{groupsExemptFromMaintenanceMode.displayName}</option>
 					{{{ end }}}
@@ -33,71 +31,68 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/advanced:headers]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/advanced:headers]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="csp-frame-ancestors">[[admin/settings/advanced:headers.csp-frame-ancestors]]</label>
-				<input class="form-control" id="csp-frame-ancestors" type="text" placeholder="https://a.example.com https://b.example.com" data-field="csp-frame-ancestors" /><br />
-				<p class="help-block">
+			<div class="mb-3">
+				<label class="form-label" for="csp-frame-ancestors">[[admin/settings/advanced:headers.csp-frame-ancestors]]</label>
+				<input class="form-control" id="csp-frame-ancestors" type="text" placeholder="https://a.example.com https://b.example.com" data-field="csp-frame-ancestors" />
+				<p class="form-text">
 					[[admin/settings/advanced:headers.csp-frame-ancestors-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="powered-by">[[admin/settings/advanced:headers.powered-by]]</label>
-				<input class="form-control" id="powered-by" type="text" placeholder="NodeBB" data-field="powered-by" /><br />
+			<div class="mb-3">
+				<label class="form-label" for="powered-by">[[admin/settings/advanced:headers.powered-by]]</label>
+				<input class="form-control" id="powered-by" type="text" placeholder="NodeBB" data-field="powered-by" />
 			</div>
-			<div class="form-group">
-				<label for="access-control-allow-origin">[[admin/settings/advanced:headers.acao]]</label>
-				<input class="form-control" id="access-control-allow-origin" type="text" placeholder="" value="" data-field="access-control-allow-origin" /><br />
-				<p class="help-block">
+			<div class="mb-3">
+				<label class="form-label" for="access-control-allow-origin">[[admin/settings/advanced:headers.acao]]</label>
+				<input class="form-control" id="access-control-allow-origin" type="text" placeholder="" value="" data-field="access-control-allow-origin" />
+				<p class="form-text">
 					[[admin/settings/advanced:headers.acao-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="access-control-allow-origin-regex">[[admin/settings/advanced:headers.acao-regex]]</label>
-				<input class="form-control" id="access-control-allow-origin-regex" type="text" placeholder="" value="" data-field="access-control-allow-origin-regex" /><br />
-				<p class="help-block">
+			<div class="mb-3">
+				<label class="form-label" for="access-control-allow-origin-regex">[[admin/settings/advanced:headers.acao-regex]]</label>
+				<input class="form-control" id="access-control-allow-origin-regex" type="text" placeholder="" value="" data-field="access-control-allow-origin-regex" />
+				<p class="form-text">
 					[[admin/settings/advanced:headers.acao-regex-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="access-control-allow-credentials">[[admin/settings/advanced:headers.acac]]</label>
-				<input class="form-control" id="access-control-allow-credentials" type="text" placeholder="" value="" data-field="access-control-allow-credentials" /><br />
+			<div class="mb-3">
+				<label class="form-label" for="access-control-allow-credentials">[[admin/settings/advanced:headers.acac]]</label>
+				<input class="form-control" id="access-control-allow-credentials" type="text" placeholder="" value="" data-field="access-control-allow-credentials" />
 			</div>
-			<div class="form-group">
-				<label for="access-control-allow-methods">[[admin/settings/advanced:headers.acam]]</label>
-				<input class="form-control" id="access-control-allow-methods" type="text" placeholder="" data-field="access-control-allow-methods" /><br />
+			<div class="mb-3">
+				<label class="form-label" for="access-control-allow-methods">[[admin/settings/advanced:headers.acam]]</label>
+				<input class="form-control" id="access-control-allow-methods" type="text" placeholder="" data-field="access-control-allow-methods" />
 			</div>
-			<div class="form-group">
-				<label for="access-control-allow-headers">[[admin/settings/advanced:headers.acah]]</label>
-				<input class="form-control" id="access-control-allow-headers" type="text" placeholder="" data-field="access-control-allow-headers" /><br />
+			<div class="mb-3">
+				<label class="form-label" for="access-control-allow-headers">[[admin/settings/advanced:headers.acah]]</label>
+				<input class="form-control" id="access-control-allow-headers" type="text" placeholder="" data-field="access-control-allow-headers" />
 			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="cross-origin-embedder-policy" id="cross-origin-embedder-policy">
-					<span class="mdl-switch__label"><strong>[[admin/settings/advanced:headers.coep]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="cross-origin-embedder-policy" id="cross-origin-embedder-policy">
+				<label class="form-check-label">[[admin/settings/advanced:headers.coep]]</label>
 			</div>
-			<p class="help-block">[[admin/settings/advanced:headers.coep-help]]</p>
-			<div class="form-group">
+			<p class="form-text">[[admin/settings/advanced:headers.coep-help]]</p>
+			<div class="mb-3">
 				<label for="cross-origin-resource-policy">[[admin/settings/advanced:headers.coop]]</label>
-				<select class="form-control" id="cross-origin-opener-policy" data-field="cross-origin-opener-policy">
+				<select class="form-select" id="cross-origin-opener-policy" data-field="cross-origin-opener-policy">
 					<option value="same-origin">same-origin</option>
 					<option value="same-origin-allow-popups">same-origin-allow-popups</option>
 					<option value="unsafe-none">unsafe-none</option>
 				</select>
 			</div>
 
-			<div class="form-group">
+			<div class="mb-3">
 				<label for="cross-origin-resource-policy">[[admin/settings/advanced:headers.corp]]</label>
-				<select class="form-control" id="cross-origin-resource-policy" data-field="cross-origin-resource-policy">
+				<select class="form-select" id="cross-origin-resource-policy" data-field="cross-origin-resource-policy">
 					<option value="same-site">same-site</option>
 					<option value="same-origin">same-origin</option>
 					<option value="cross-origin">cross-origin</option>
 				</select>
-				<br />
 			</div>
 
 			<div class="form-group">
@@ -109,63 +104,55 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/advanced:hsts]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/advanced:hsts]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="hsts-enabled" checked>
-					<span class="mdl-switch__label"><strong>[[admin/settings/advanced:hsts.enabled]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="hsts-enabled" checked>
+				<label class="form-check-label">[[admin/settings/advanced:hsts.enabled]]</label>
 			</div>
-			<div class="form-group">
-				<label for="hsts-maxage">[[admin/settings/advanced:hsts.maxAge]]</label>
-				<input class="form-control" id="hsts-maxage" type="number" placeholder="31536000" data-field="hsts-maxage" /><br />
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="hsts-subdomains" checked>
-					<span class="mdl-switch__label"><strong>[[admin/settings/advanced:hsts.subdomains]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="hsts-preload">
-					<span class="mdl-switch__label"><strong>[[admin/settings/advanced:hsts.preload]]</strong></span>
-				</label>
-			</div>
-			<p class="help-block">
+			<div class="mb-3">
+				<label class="form-label" for="hsts-maxage">[[admin/settings/advanced:hsts.maxAge]]</label>
+				<input class="form-control" id="hsts-maxage" type="number" placeholder="31536000" data-field="hsts-maxage" />
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="hsts-subdomains" checked>
+				<label class="form-check-label">[[admin/settings/advanced:hsts.subdomains]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="hsts-preload">
+				<label class="form-check-label">[[admin/settings/advanced:hsts.preload]]</label>
+			</div>
+			<p class="form-text">
 				[[admin/settings/advanced:hsts.help, https:\/\/hstspreload.org\/]]
 			</p>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/advanced:traffic-management]]</div>
-	<div class="col-sm-10 col-xs-12">
-		<p class="help-block">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/advanced:traffic-management]]</div>
+	<div class="col-sm-10 col-12">
+		<p class="form-text">
 			[[admin/settings/advanced:traffic.help]]
 		</p>
 		<form>
-			<div class="form-group">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="eventLoopCheckEnabled">
-					<input class="mdl-switch__input" id="eventLoopCheckEnabled" type="checkbox" data-field="eventLoopCheckEnabled" checked />
-					<span class="mdl-switch__label">[[admin/settings/advanced:traffic.enable]]</span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" id="eventLoopCheckEnabled" type="checkbox" data-field="eventLoopCheckEnabled" checked />
+				<label class="form-check-label" for="eventLoopCheckEnabled">[[admin/settings/advanced:traffic.enable]]</label>
 			</div>
-			<div class="form-group">
-				<label for="eventLoopLagThreshold">[[admin/settings/advanced:traffic.event-lag]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="eventLoopLagThreshold">[[admin/settings/advanced:traffic.event-lag]]</label>
 				<input class="form-control" id="eventLoopLagThreshold" type="number" data-field="eventLoopLagThreshold" placeholder="Default: 70" step="10" min="10" value="70" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/advanced:traffic.event-lag-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="eventLoopInterval">[[admin/settings/advanced:traffic.lag-check-interval]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="eventLoopInterval">[[admin/settings/advanced:traffic.lag-check-interval]]</label>
 				<input class="form-control" id="eventLoopInterval" type="number" data-field="eventLoopInterval" placeholder="Default: 500" value="500" step="50" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/advanced:traffic.lag-check-interval-help]]
 				</p>
 			</div>
@@ -173,30 +160,30 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/advanced:sockets.settings]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/advanced:sockets.settings]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="maxReconnectionAttempts">[[admin/settings/advanced:sockets.max-attempts]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maxReconnectionAttempts">[[admin/settings/advanced:sockets.max-attempts]]</label>
 				<input class="form-control" id="maxReconnectionAttempts" type="text" value="5" placeholder="[[admin/settings/advanced:sockets.default-placeholder, 5]]" data-field="maxReconnectionAttempts" />
 			</div>
-			<div class="form-group">
-				<label for="reconnectionDelay">[[admin/settings/advanced:sockets.delay]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="reconnectionDelay">[[admin/settings/advanced:sockets.delay]]</label>
 				<input class="form-control" id="reconnectionDelay" type="text" value="1500" placeholder="[[admin/settings/advanced:sockets.default-placeholder, 1500]]" data-field="reconnectionDelay" />
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/advanced:analytics.settings]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/advanced:analytics.settings]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="analytics:maxCache">[[admin/settings/advanced:analytics.max-cache]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="analytics:maxCache">[[admin/settings/advanced:analytics.max-cache]]</label>
 				<input class="form-control" id="analytics:maxCache" type="text" value="500" placeholder="500" data-field="analytics:maxCache" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/advanced:analytics.max-cache-help]]
 				</p>
 			</div>
@@ -204,19 +191,17 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/advanced:compression.settings]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/advanced:compression.settings]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<p class="help-block">
+			<div class="mb-3">
+				<p class="form-text">
 					[[admin/settings/advanced:compression.help]]
 				</p>
-				<div class="checkbox">
-					<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-						<input class="mdl-switch__input" type="checkbox" data-field="useCompression">
-						<span class="mdl-switch__label"><strong>[[admin/settings/advanced:compression.enable]]</strong></span>
-					</label>
+				<div class="form-check form-switch">
+					<input class="form-check-input" type="checkbox" data-field="useCompression">
+					<label class="form-check-label">[[admin/settings/advanced:compression.enable]]</label>
 				</div>
 			</div>
 		</form>
diff --git a/src/views/admin/settings/api.tpl b/src/views/admin/settings/api.tpl
index 9ee1cd35f6..19af4cb568 100644
--- a/src/views/admin/settings/api.tpl
+++ b/src/views/admin/settings/api.tpl
@@ -10,31 +10,27 @@
 
 	<hr />
 
-	<div class="row">
-		<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/api:settings]]</div>
-		<div class="col-sm-10 col-xs-12">
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input id="requireHttps" class="mdl-switch__input" type="checkbox" name="requireHttps" />
-					<span class="mdl-switch__label">[[admin/settings/api:require-https]]</span>
-				</label>
+	<div class="row mb-4">
+		<div class="col-sm-2 col-12 settings-header">[[admin/settings/api:settings]]</div>
+		<div class="col-sm-10 col-12">
+			<div class="form-check form-switch mb-3">
+				<input id="requireHttps" class="form-check-input" type="checkbox" name="requireHttps" />
+				<label class="form-check-label">[[admin/settings/api:require-https]]</label>
+				<p class="form-text">[[admin/settings/api:require-https-caveat]]</p>
 			</div>
-			<p class="help-block">[[admin/settings/api:require-https-caveat]]</p>
 		</div>
 	</div>
 
-	<div class="row">
-		<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/api:tokens]]</div>
-		<div class="col-sm-10 col-xs-12">
+	<div class="row mb-4">
+		<div class="col-sm-2 col-12 settings-header">[[admin/settings/api:tokens]]</div>
+		<div class="col-sm-10 col-12">
 			<div class="form-group" data-type="sorted-list" data-sorted-list="tokens" data-item-template="admin/partials/api/sorted-list/item" data-form-template="admin/partials/api/sorted-list/form">
 				<input type="hidden" name="tokens">
-				<ul data-type="list" class="list-group"></ul>
+				<ul data-type="list" class="list-group mb-3"></ul>
 				<button type="button" data-type="add" class="btn btn-info">Create Token</button>
 			</div>
 		</div>
 	</div>
 </form>
 
-<button id="save" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-	<i class="material-icons">save</i>
-</button>
+<!-- IMPORT admin/partials/save_button.tpl -->
diff --git a/src/views/admin/settings/chat.tpl b/src/views/admin/settings/chat.tpl
index 403c013d16..de99a1a367 100644
--- a/src/views/admin/settings/chat.tpl
+++ b/src/views/admin/settings/chat.tpl
@@ -2,55 +2,51 @@
 
 
 <div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/chat:chat-settings]]</div>
-	<div class="col-sm-10 col-xs-12">
-		<div class="form-group">
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input type="checkbox" class="mdl-switch__input" id="disableChat" data-field="disableChat">
-					<span class="mdl-switch__label"><strong>[[admin/settings/chat:disable]]</strong></span>
-				</label>
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/chat:chat-settings]]</div>
+	<div class="col-sm-10 col-12">
+		<div class="mb-3">
+			<div class="form-check form-switch">
+				<input type="checkbox" class="form-check-input" id="disableChat" data-field="disableChat">
+				<label class="form-check-label">[[admin/settings/chat:disable]]</label>
 			</div>
 		</div>
 
-		<div class="form-group">
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input type="checkbox" class="mdl-switch__input" id="disableChatMessageEditing" data-field="disableChatMessageEditing">
-					<span class="mdl-switch__label"><strong>[[admin/settings/chat:disable-editing]]</strong></span>
-				</label>
+		<div class="mb-3">
+			<div class="form-check form-switch">
+				<input type="checkbox" class="form-check-input" id="disableChatMessageEditing" data-field="disableChatMessageEditing">
+				<label class="form-check-label">[[admin/settings/chat:disable-editing]]</label>
 			</div>
-			<p class="help-block">[[admin/settings/chat:disable-editing-help]]</p>
+			<p class="form-text">[[admin/settings/chat:disable-editing-help]]</p>
 		</div>
 
-		<div class="form-group">
-			<label for="chatEditDuration">[[admin/settings/chat:restrictions.seconds-edit-after]]</label>
+		<div class="mb-3">
+			<label class="form-label" for="chatEditDuration">[[admin/settings/chat:restrictions.seconds-edit-after]]</label>
 			<input id="chatEditDuration" type="text" class="form-control" value="0" data-field="chatEditDuration">
 		</div>
 
-		<div class="form-group">
-			<label for="chatDeleteDuration">[[admin/settings/chat:restrictions.seconds-delete-after]]</label>
+		<div class="mb-3">
+			<label class="form-label" for="chatDeleteDuration">[[admin/settings/chat:restrictions.seconds-delete-after]]</label>
 			<input id="chatDeleteDuration" type="text" class="form-control" value="0" data-field="chatDeleteDuration">
 		</div>
 
-		<div class="form-group">
-			<label for="maximumChatMessageLength">[[admin/settings/chat:max-length]]</label>
+		<div class="mb-3">
+			<label class="form-label" for="maximumChatMessageLength">[[admin/settings/chat:max-length]]</label>
 			<input id="maximumChatMessageLength" type="text" class="form-control" value="1000" data-field="maximumChatMessageLength">
 		</div>
 
-		<div class="form-group">
-			<label for="maximumUsersInChatRoom">[[admin/settings/chat:max-room-size]]</label>
+		<div class="mb-3">
+			<label class="form-label" for="maximumUsersInChatRoom">[[admin/settings/chat:max-room-size]]</label>
 			<input id="maximumUsersInChatRoom" type="text" class="form-control" value="0" data-field="maximumUsersInChatRoom">
 		</div>
 
 
-		<div class="form-group">
-			<label for="chatMessageDelay">[[admin/settings/chat:delay]]</label>
+		<div class="mb-3">
+			<label class="form-label" for="chatMessageDelay">[[admin/settings/chat:delay]]</label>
 			<input id="chatMessageDelay" type="text" class="form-control" value="200" data-field="chatMessageDelay">
 		</div>
 
-		<div class="form-group">
-			<label for="notificationSendDelay">[[admin/settings/chat:notification-delay]]</label>
+		<div class="mb-3">
+			<label class="form-label" for="notificationSendDelay">[[admin/settings/chat:notification-delay]]</label>
 			<input id="notificationSendDelay" type="text" class="form-control" value="60" data-field="notificationSendDelay">
 		</div>
 	</div>
diff --git a/src/views/admin/settings/cookies.tpl b/src/views/admin/settings/cookies.tpl
index 367c86d257..8272421010 100644
--- a/src/views/admin/settings/cookies.tpl
+++ b/src/views/admin/settings/cookies.tpl
@@ -1,69 +1,67 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/cookies:eu-consent]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/cookies:eu-consent]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<div class="checkbox">
-					<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-						<input type="checkbox" class="mdl-switch__input" id="cookieConsentEnabled" data-field="cookieConsentEnabled">
-						<span class="mdl-switch__label"><strong>[[admin/settings/cookies:consent.enabled]]</strong></span>
-					</label>
+			<div class="mb-3">
+				<div class="form-check form-switch">
+					<input type="checkbox" class="form-check-input" id="cookieConsentEnabled" data-field="cookieConsentEnabled">
+					<label class="form-check-label">[[admin/settings/cookies:consent.enabled]]</label>
 				</div>
 			</div>
-			<div class="form-group">
-				<label for="cookieConsentMessage">[[admin/settings/cookies:consent.message]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="cookieConsentMessage">[[admin/settings/cookies:consent.message]]</label>
 				<input class="form-control" id="cookieConsentMessage" type="text" data-field="cookieConsentMessage" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/cookies:consent.blank-localised-default]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="cookieConsentDismiss">[[admin/settings/cookies:consent.acceptance]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="cookieConsentDismiss">[[admin/settings/cookies:consent.acceptance]]</label>
 				<input class="form-control" id="cookieConsentDismiss" type="text" data-field="cookieConsentDismiss" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/cookies:consent.blank-localised-default]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="cookieConsentLink">[[admin/settings/cookies:consent.link-text]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="cookieConsentLink">[[admin/settings/cookies:consent.link-text]]</label>
 				<input class="form-control" id="cookieConsentLink" type="text" data-field="cookieConsentLink" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/cookies:consent.blank-localised-default]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="cookieConsentLinkUrl">[[admin/settings/cookies:consent.link-url]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="cookieConsentLinkUrl">[[admin/settings/cookies:consent.link-url]]</label>
 				<input class="form-control" id="cookieConsentLinkUrl" type="text" data-field="cookieConsentLinkUrl" />
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">Settings</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">Settings</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="cookieDomain">[[admin/settings/cookies:cookie-domain]]</label>
-				<input class="form-control" id="cookieDomain" type="text" placeholder=".domain.tld" data-field="cookieDomain" /><br />
-				<p class="help-block">
+			<div class="mb-3">
+				<label class="form-label" for="cookieDomain">[[admin/settings/cookies:cookie-domain]]</label>
+				<input class="form-control" id="cookieDomain" type="text" placeholder=".domain.tld" data-field="cookieDomain" />
+				<p class="form-text">
 					[[admin/settings/cookies:blank-default]]
 				</p>
 			</div>
 
-			<div class="form-group">
-				<label for="maxUserSessions">[[admin/settings/cookies:max-user-sessions]]</label>
-				<input class="form-control" id="maxUserSessions" type="number" placeholder="10" data-field="maxUserSessions" /><br />
-				<p class="help-block">
+			<div class="mb-3">
+				<label class="form-label" for="maxUserSessions">[[admin/settings/cookies:max-user-sessions]]</label>
+				<input class="form-control" id="maxUserSessions" type="number" placeholder="10" data-field="maxUserSessions" />
+				<p class="form-text">
 					[[admin/settings/cookies:blank-default]]
 				</p>
 			</div>
 
-			<div class="form-group">
+			<div class="mb-3">
 				<button id="delete-all-sessions" class="btn btn-danger">Revoke All Sessions</button>
-				<p class="help-block">
+				<p class="form-text">
 					This will delete all sessions, you will be logged out and will have to login again!
 				</p>
 			</div>
diff --git a/src/views/admin/settings/email.tpl b/src/views/admin/settings/email.tpl
index 86145d0c69..8dbd5cd751 100644
--- a/src/views/admin/settings/email.tpl
+++ b/src/views/admin/settings/email.tpl
@@ -1,104 +1,97 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/email:email-settings]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/email:email-settings]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="email:from"><strong>[[admin/settings/email:address]]</strong></label>
-				<p class="help-block">
+			<div class="mb-3">
+				<label class="form-label" for="email:from">[[admin/settings/email:address]]</label>
+				<p class="form-text">
 					[[admin/settings/email:address-help]]
 				</p>
-				<input type="text" class="form-control input-lg" id="email:from" data-field="email:from" placeholder="info@example.org" /><br />
+				<input type="text" class="form-control input-lg" id="email:from" data-field="email:from" placeholder="info@example.org" />
 			</div>
 
-			<div class="form-group">
-				<label for="email:from_name"><strong>From Name</strong></label>
-				<p class="help-block">
+			<div class="mb-3">
+				<label class="form-label" for="email:from_name">[[admin/settings/email:from]]</label>
+				<p class="form-text">
 					[[admin/settings/email:from-help]]
 				</p>
-				<input type="text" class="form-control input-lg" id="email:from_name" data-field="email:from_name" placeholder="NodeBB" /><br />
+				<input type="text" class="form-control input-lg" id="email:from_name" data-field="email:from_name" placeholder="NodeBB" />
 			</div>
 
-			<div class="checkbox">
-				<label for="requireEmailAddress" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" id="requireEmailAddress" data-field="requireEmailAddress" name="requireEmailAddress" />
-					<span class="mdl-switch__label">[[admin/settings/email:require-email-address]]</span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" id="requireEmailAddress" data-field="requireEmailAddress" name="requireEmailAddress" />
+				<label for="requireEmailAddress" class="form-check-label">[[admin/settings/email:require-email-address]]</label>
 			</div>
-			<p class="help-block">[[admin/settings/email:require-email-address-warning]]</p>
+			<p class="form-text">[[admin/settings/email:require-email-address-warning]]</p>
 
-			<div class="checkbox">
-				<label for="sendEmailToBanned" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" id="sendEmailToBanned" data-field="sendEmailToBanned" name="sendEmailToBanned" />
-					<span class="mdl-switch__label">[[admin/settings/email:sendEmailToBanned]]</span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" id="sendEmailToBanned" data-field="sendEmailToBanned" name="sendEmailToBanned" />
+				<label for="sendEmailToBanned" class="form-check-label">[[admin/settings/email:sendEmailToBanned]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label for="removeEmailNotificationImages" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" id="removeEmailNotificationImages" data-field="removeEmailNotificationImages" name="removeEmailNotificationImages" />
-					<span class="mdl-switch__label">[[admin/settings/email:notifications.remove-images]]</span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" id="removeEmailNotificationImages" data-field="removeEmailNotificationImages" name="removeEmailNotificationImages" />
+				<label for="removeEmailNotificationImages" class="form-check-label">[[admin/settings/email:notifications.remove-images]]</label>
 			</div>
 		</form>
 	</div>
 </div>
 
 <div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/email:confirmation-settings]]</div>
-	<div class="col-sm-10 col-xs-12">
-		<div class="form-group form-inline">
-			<label for="emailConfirmInterval">[[admin/settings/user:email-confirm-interval]]</label>
-			<input class="form-control" data-field="emailConfirmInterval" type="number" id="emailConfirmInterval" placeholder="10" />
-			<label for="emailConfirmInterval">[[admin/settings/user:email-confirm-interval2]]</label>
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/email:confirmation-settings]]</div>
+	<div class="col-sm-10 col-12">
+		<div class="row mb-3 align-items-center">
+			<div class="col-auto">
+				<label class="form-label" for="emailConfirmInterval">[[admin/settings/user:email-confirm-interval]]</label>
+			</div>
+			<div class="col-auto">
+				<input class="form-control" data-field="emailConfirmInterval" type="number" id="emailConfirmInterval" placeholder="Default: 10"
+				value="10" />
+			</div>
+			<div class="col-auto">
+				<label class="form-label" for="emailConfirmInterval">[[admin/settings/user:email-confirm-interval2]]</label>
+			</div>
 		</div>
 
-		<div class="form-group">
+		<div class="mb-3">
 			<label for="emailConfirmExpiry">[[admin/settings/email:confirmation.expiry]]</label>
 			<input class="form-control" data-field="emailConfirmExpiry" type="number" id="emailConfirmExpiry" placeholder="24" />
 		</div>
 
-		<div class="checkbox">
-			<label for="sendValidationEmail" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-				<input class="mdl-switch__input" type="checkbox" id="sendValidationEmail" data-field="sendValidationEmail" name="sendValidationEmail" />
-				<span class="mdl-switch__label">[[admin/settings/email:send-validation-email]]</span>
-			</label>
+		<div class="form-check form-switch mb-3">
+			<input class="form-check-input" type="checkbox" id="sendValidationEmail" data-field="sendValidationEmail" name="sendValidationEmail" />
+			<label for="sendValidationEmail" class="form-check-label">[[admin/settings/email:send-validation-email]]</label>
 		</div>
 
-		<div class="checkbox">
-			<label for="includeUnverifiedEmails" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-				<input class="mdl-switch__input" type="checkbox" id="includeUnverifiedEmails" data-field="includeUnverifiedEmails" name="includeUnverifiedEmails" />
-				<span class="mdl-switch__label">[[admin/settings/email:include-unverified-emails]]</span>
-			</label>
+		<div class="form-check form-switch mb-3">
+			<input class="form-check-input" type="checkbox" id="includeUnverifiedEmails" data-field="includeUnverifiedEmails" name="includeUnverifiedEmails" />
+			<label for="includeUnverifiedEmails" class="form-check-label">[[admin/settings/email:include-unverified-emails]]</label>
 		</div>
-		<p class="help-block">[[admin/settings/email:include-unverified-warning]]</p>
+		<p class="form-text">[[admin/settings/email:include-unverified-warning]]</p>
 
-		<div class="checkbox">
-			<label for="emailPrompt" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-				<input class="mdl-switch__input" type="checkbox" id="emailPrompt" data-field="emailPrompt" name="emailPrompt" />
-				<span class="mdl-switch__label">[[admin/settings/email:prompt]]</span>
-			</label>
+		<div class="form-check form-switch mb-3">
+			<input class="form-check-input" type="checkbox" id="emailPrompt" data-field="emailPrompt" name="emailPrompt" />
+			<label for="emailPrompt" class="form-check-label">[[admin/settings/email:prompt]]</label>
 		</div>
-		<p class="help-block">[[admin/settings/email:prompt-help]]</p>
+		<p class="form-text">[[admin/settings/email:prompt-help]]</p>
 	</div>
 </div>
 
 <div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/email:subscriptions]]</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/email:subscriptions]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label for="disableEmailSubscriptions" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" id="disableEmailSubscriptions" data-field="disableEmailSubscriptions" name="disableEmailSubscriptions" />
-					<span class="mdl-switch__label">[[admin/settings/email:subscriptions.disable]]</span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" id="disableEmailSubscriptions" data-field="disableEmailSubscriptions" name="disableEmailSubscriptions" />
+				<label for="disableEmailSubscriptions" class="form-check-label">[[admin/settings/email:subscriptions.disable]]</label>
 			</div>
 
-			<div class="form-group">
-				<label for="digestHour"><strong>[[admin/settings/email:subscriptions.hour]]</strong></label>
+			<div class="mb-3">
+				<label class="form-label" for="digestHour">[[admin/settings/email:subscriptions.hour]]</label>
 				<input type="number" class="form-control input-lg" id="digestHour" data-field="digestHour" placeholder="17" min="0" max="24" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/email:subscriptions.hour-help]]
 				</p>
 			</div>
@@ -106,35 +99,25 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/email:smtp-transport]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/email:smtp-transport]]</div>
+	<div class="col-sm-10 col-12">
 		<div class="alert alert-warning">
-			<p>
-				[[admin/settings/email:smtp-transport-help]]
-			</p>
+			[[admin/settings/email:smtp-transport-help]]
 		</div>
 		<form>
-			<div class="checkbox">
-				<label for="email:smtpTransport:enabled" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" id="email:smtpTransport:enabled" data-field="email:smtpTransport:enabled" name="email:smtpTransport:enabled" />
-					<span class="mdl-switch__label">[[admin/settings/email:smtp-transport.enabled]]</span>
-				</label>
-			</div>
-			<div class="form-group">
-				<div class="checkbox">
-					<label for="email:smtpTransport:pool" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-						<input class="mdl-switch__input" type="checkbox" id="email:smtpTransport:pool" data-field="email:smtpTransport:pool" name="email:smtpTransport:pool" />
-						<span class="mdl-switch__label">[[admin/settings/email:smtp-transport.pool]]</span>
-					</label>
-				</div>
-				<p class="col-xs-12 help-block">
-					[[admin/settings/email:smtp-transport.pool-help]]
-				</p>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" id="email:smtpTransport:enabled" data-field="email:smtpTransport:enabled" name="email:smtpTransport:enabled" />
+				<label for="email:smtpTransport:enabled" class="form-check-label">[[admin/settings/email:smtp-transport.enabled]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" id="email:smtpTransport:pool" data-field="email:smtpTransport:pool" name="email:smtpTransport:pool" />
+				<label for="email:smtpTransport:pool" class="form-check-label">[[admin/settings/email:smtp-transport.pool]]</label>
+				<p class="form-text">[[admin/settings/email:smtp-transport.pool-help]]</p>
 			</div>
-			<div class="form-group">
-				<label for="email:smtpTransport:service"><strong>[[admin/settings/email:smtp-transport.service]]</strong></label>
-				<select class="form-control input-lg" id="email:smtpTransport:service" data-field="email:smtpTransport:service">
+			<div class="mb-3">
+				<label class="form-label" for="email:smtpTransport:service">[[admin/settings/email:smtp-transport.service]]</label>
+				<select class="form-select" id="email:smtpTransport:service" data-field="email:smtpTransport:service">
 					<option value="nodebb-custom-smtp" style="font-weight: bold">[[admin/settings/email:smtp-transport.service-custom]]</option>
 					<option style="font-size: 10px" disabled>&nbsp;</option>
 
@@ -142,7 +125,7 @@
 					<option value="{@value}">{@value}</option>
 					{{{ end }}}
 				</select>
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/email:smtp-transport.service-help]]
 					<br>
 					[[admin/settings/email:smtp-transport.gmail-warning1]]
@@ -150,67 +133,75 @@
 					[[admin/settings/email:smtp-transport.gmail-warning2]]
 				</p>
 			</div>
-			<div class="form-group well" id="email:smtpTransport:custom-service">
+			<div class="mb-3 card card-body text-bg-light border-0" id="email:smtpTransport:custom-service">
 				<h5>Custom Service</h5>
+				<div class="mb-3">
+					<label class="form-label" for="email:smtpTransport:host">[[admin/settings/email:smtp-transport.host]]</label>
+					<input type="text" class="form-control input-md" id="email:smtpTransport:host" data-field="email:smtpTransport:host" placeholder="smtp.example.org">
+				</div>
 
-				<label for="email:smtpTransport:host">[[admin/settings/email:smtp-transport.host]]</label>
-				<input type="text" class="form-control input-md" id="email:smtpTransport:host" data-field="email:smtpTransport:host" placeholder="smtp.example.org">
-
-				<label for="email:smtpTransport:port">[[admin/settings/email:smtp-transport.port]]</label>
-				<input type="text" class="form-control input-md" id="email:smtpTransport:port" data-field="email:smtpTransport:port" placeholder="5555">
+				<div class="mb-3">
+					<label class="form-label" for="email:smtpTransport:port">[[admin/settings/email:smtp-transport.port]]</label>
+					<input type="text" class="form-control input-md" id="email:smtpTransport:port" data-field="email:smtpTransport:port" placeholder="5555">
+				</div>
 
-				<label for="email:smtpTransport:security">[[admin/settings/email:smtp-transport.security]]</label>
-				<select class="form-control" id="email:smtpTransport:security" data-field="email:smtpTransport:security">
-					<option value="ENCRYPTED">[[admin/settings/email:smtp-transport.security-encrypted]]</option>
-					<option value="STARTTLS">[[admin/settings/email:smtp-transport.security-starttls]]</option>
-					<option value="NONE">[[admin/settings/email:smtp-transport.security-none]]</option>
-				</select>
+				<div>
+					<label class="form-label" for="email:smtpTransport:security">[[admin/settings/email:smtp-transport.security]]</label>
+					<select class="form-select" id="email:smtpTransport:security" data-field="email:smtpTransport:security">
+						<option value="ENCRYPTED">[[admin/settings/email:smtp-transport.security-encrypted]]</option>
+						<option value="STARTTLS">[[admin/settings/email:smtp-transport.security-starttls]]</option>
+						<option value="NONE">[[admin/settings/email:smtp-transport.security-none]]</option>
+					</select>
+				</div>
 			</div>
-			<div class="form-group">
-				<label for="email:smtpTransport:user"><strong>[[admin/settings/email:smtp-transport.username]]</strong></label>
+			<div class="mb-3">
+				<label class="form-label" for="email:smtpTransport:user">[[admin/settings/email:smtp-transport.username]]</label>
 				<input id="email:smtpTransport:user" type="text" class="form-control input-lg" data-field="email:smtpTransport:user" placeholder="admin@example.org" autocomplete="off" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/email:smtp-transport.username-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="email:smtpTransport:pass"><strong>[[admin/settings/email:smtp-transport.password]]</strong></label>
+			<div>
+				<label class="form-label" for="email:smtpTransport:pass">[[admin/settings/email:smtp-transport.password]]</label>
 				<input id="email:smtpTransport:pass" type="password" class="form-control input-lg" data-field="email:smtpTransport:pass" autocomplete="off" />
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/email:template]]</div>
-	<div class="col-sm-10 col-xs-12">
-		<label for="email-editor-selector">[[admin/settings/email:template.select]]</label><br />
-		<select id="email-editor-selector" class="form-control">
-			<!-- BEGIN emails -->
-			<option value="{emails.path}">{emails.path}</option>
-			<!-- END emails -->
-		</select>
-		<br />
-		<div id="email-editor"></div>
-		<input type="hidden" id="email-editor-holder" value="" data-field="" />
-		<br />
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/email:template]]</div>
+	<div class="col-sm-10 col-12">
+		<div class="mb-3">
+			<label class="form-label" for="email-editor-selector">[[admin/settings/email:template.select]]</label>
+			<select id="email-editor-selector" class="form-select">
+				{{{ each emails }}}
+				<option value="{./path}">{./path}</option>
+				{{{ end }}}
+			</select>
+		</div>
+		<div class="mb-3">
+			<div id="email-editor"></div>
+			<input type="hidden" id="email-editor-holder" value="" data-field="" />
+		</div>
+
 		<button class="btn btn-warning" type="button" data-action="email.revert">[[admin/settings/email:template.revert]]</button>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/email:testing]]</div>
-	<div class="col-sm-10 col-xs-12">
-		<div class="form-group">
-			<label for="test-email">[[admin/settings/email:testing.select]]</label>
-			<select id="test-email" class="form-control">
-				<!-- BEGIN sendable -->
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/email:testing]]</div>
+	<div class="col-sm-10 col-12">
+		<div class="mb-3">
+			<label class="form-label" for="test-email">[[admin/settings/email:testing.select]]</label>
+			<select id="test-email" class="form-select">
+				{{{ each sendable }}}
 				<option value="{@value}">{@value}</option>
-				<!-- END sendable -->
+				{{{ end }}}
 			</select>
 		</div>
 		<button class="btn btn-primary" type="button" data-action="email.test">[[admin/settings/email:testing.send]]</button>
-		<p class="help-block">
+		<p class="form-text">
 			[[admin/settings/email:testing.send-help]]
 		</p>
 	</div>
diff --git a/src/views/admin/settings/general.tpl b/src/views/admin/settings/general.tpl
index 1453e047b5..ed278261f2 100644
--- a/src/views/admin/settings/general.tpl
+++ b/src/views/admin/settings/general.tpl
@@ -1,146 +1,149 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">
 		[[admin/settings/general:site-settings]]
 	</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-10 col-12">
 		<form>
-			<label for="site-title">[[admin/settings/general:title]]</label>
-			<input id="site-title" class="form-control" type="text" placeholder="[[admin/settings/general:title.name]]" data-field="title" />
-			<label for="title:short">[[admin/settings/general:title.short]]</label>
-			<input id="title:short" type="text" class="form-control" placeholder="[[admin/settings/general:title.short-placeholder]]" data-field="title:short" />
-			<label for="title:url">[[admin/settings/general:title.url]]</label>
-			<input id ="title:url" type="text" class="form-control" placeholder="[[admin/settings/general:title.url-placeholder]]" data-field="title:url" />
-			<p class="help-block">
-				[[admin/settings/general:title.url-help]]
-			</p>
-
-			<div class="checkbox">
-				<label for="showSiteTitle" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input type="checkbox" class="mdl-switch__input" id="showSiteTitle" data-field="showSiteTitle" name="showSiteTitle" />
-					<span class="mdl-switch__label">[[admin/settings/general:title.show-in-header]]</span>
-				</label>
+			<div class="mb-3">
+				<label class="form-label" for="site-title">[[admin/settings/general:title]]</label>
+				<input id="site-title" class="form-control" type="text" placeholder="[[admin/settings/general:title.name]]" data-field="title" />
+			</div>
+			<div class="mb-3">
+				<label class="form-label" for="title:short">[[admin/settings/general:title.short]]</label>
+				<input id="title:short" type="text" class="form-control" placeholder="[[admin/settings/general:title.short-placeholder]]" data-field="title:short" />
+			</div>
+			<div class="mb-3">
+				<label class="form-label" for="title:url">[[admin/settings/general:title.url]]</label>
+				<input id ="title:url" type="text" class="form-control" placeholder="[[admin/settings/general:title.url-placeholder]]" data-field="title:url" />
+				<p class="form-text">
+					[[admin/settings/general:title.url-help]]
+				</p>
 			</div>
 
-			<label for="browserTitle">[[admin/settings/general:browser-title]]</label>
-			<input id="browserTitle" class="form-control" type="text" placeholder="[[admin/settings/general:browser-title]]" data-field="browserTitle" />
-			<p class="help-block">
-				[[admin/settings/general:browser-title-help]]
-			</p>
-
-			<label for="titleLayout">[[admin/settings/general:title-layout]]</label>
-			<input id="titleLayout" class="form-control" type="text" placeholder="[[admin/settings/general:title-layout]]" data-field="titleLayout" />
-			<p class="help-block">
-				[[admin/settings/general:title-layout-help]]
-			</p>
-
-			<label for="description">[[admin/settings/general:description]]</label>
-			<input id="description" type="text" class="form-control" placeholder="[[admin/settings/general:description.placeholder]]" data-field="description" /><br />
-
-			<label for="keywords">[[admin/settings/general:keywords]]</label><br />
-			<input id="keywords" type="text" class="form-control" placeholder="[[admin/settings/general:keywords-placeholder]]" data-field="keywords" data-field-type="tagsinput" /><br />
+			<div class="form-check form-switch mb-3">
+				<input type="checkbox" class="form-check-input" id="showSiteTitle" data-field="showSiteTitle" name="showSiteTitle" />
+				<label for="showSiteTitle" class="form-check-label">[[admin/settings/general:title.show-in-header]]</label>
+			</div>
+			<div class="mb-3">
+				<label class="form-label" for="browserTitle">[[admin/settings/general:browser-title]]</label>
+				<input id="browserTitle" class="form-control" type="text" placeholder="[[admin/settings/general:browser-title]]" data-field="browserTitle" />
+				<p class="form-text">
+					[[admin/settings/general:browser-title-help]]
+				</p>
+			</div>
+			<div class="mb-3">
+				<label class="form-label" for="titleLayout">[[admin/settings/general:title-layout]]</label>
+				<input id="titleLayout" class="form-control" type="text" placeholder="[[admin/settings/general:title-layout]]" data-field="titleLayout" />
+				<p class="form-text">
+					[[admin/settings/general:title-layout-help]]
+				</p>
+			</div>
+			<div class="mb-3">
+				<label class="form-label" for="description">[[admin/settings/general:description]]</label>
+				<input id="description" type="text" class="form-control" placeholder="[[admin/settings/general:description.placeholder]]" data-field="description" />
+			</div>
+			<div class="mb-3">
+				<label class="form-label" for="keywords">[[admin/settings/general:keywords]]</label>
+				<input id="keywords" type="text" class="form-control" placeholder="[[admin/settings/general:keywords-placeholder]]" data-field="keywords" data-field-type="tagsinput" />
+			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/general:logo]]</div>
-	<div class="col-sm-10 col-xs-12">
-		<div class="form-group">
-			<label for="logoUrl">[[admin/settings/general:logo.image]]</label>
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/general:logo]]</div>
+	<div class="col-sm-10 col-12">
+		<div class="mb-3">
+			<label class="form-label" for="logoUrl">[[admin/settings/general:logo.image]]</label>
 			<div class="input-group">
 				<input id="logoUrl" type="text" class="form-control" placeholder="[[admin/settings/general:logo.image-placeholder]]" data-field="brand:logo" />
-				<span class="input-group-btn">
-					<input data-action="upload" data-target="logoUrl" data-route="{config.relative_path}/api/admin/uploadlogo" type="button" class="btn btn-default" value="[[admin/settings/general:logo.upload]]" />
-					<button data-action="removeLogo" type="button" class="btn btn-default btn-danger"><i class="fa fa-times"></i></button>
-				</span>
+
+				<input data-action="upload" data-target="logoUrl" data-route="{config.relative_path}/api/admin/uploadlogo" type="button" class="btn btn-outline-secondary" value="[[admin/settings/general:logo.upload]]" />
+				<button data-action="removeLogo" type="button" class="btn btn-danger"><i class="fa fa-times"></i></button>
 			</div>
 		</div>
 
-		<div class="form-group">
-			<label for="brand:logo:url">[[admin/settings/general:logo.url]]</label>
+		<div class="mb-3">
+			<label class="form-label" for="brand:logo:url">[[admin/settings/general:logo.url]]</label>
 			<input id ="brand:logo:url" type="text" class="form-control" placeholder="[[admin/settings/general:logo.url-placeholder]]" data-field="brand:logo:url" />
-			<p class="help-block">
+			<p class="form-text">
 				[[admin/settings/general:logo.url-help]]
 			</p>
 		</div>
-		<div class="form-group">
-			<label for="brand:logo:alt">[[admin/settings/general:logo.alt-text]]</label>
+
+		<div class="mb-3">
+			<label class="form-label" for="brand:logo:alt">[[admin/settings/general:logo.alt-text]]</label>
 			<input id ="brand:logo:alt" type="text" class="form-control" placeholder="[[admin/settings/general:log.alt-text-placeholder]]" data-field="brand:logo:alt" />
 		</div>
 
-		<div class="form-group">
-			<label for="og_image">og:image</label>
+		<div class="mb-3">
+			<label class="form-label" for="og_image">og:image</label>
 			<div class="input-group">
 				<input id="og_image" type="text" class="form-control" placeholder="" data-field="og:image" />
-				<span class="input-group-btn">
-					<input data-action="upload" data-target="og_image" data-route="{config.relative_path}/api/admin/uploadOgImage" type="button" class="btn btn-default" value="[[admin/settings/general:logo.upload]]" />
-					<button data-action="removeOgImage" type="button" class="btn btn-default btn-danger"><i class="fa fa-times"></i></button>
-				</span>
+
+				<input data-action="upload" data-target="og_image" data-route="{config.relative_path}/api/admin/uploadOgImage" type="button" class="btn btn-outline-secondary" value="[[admin/settings/general:logo.upload]]" />
+				<button data-action="removeOgImage" type="button" class="btn btn-danger"><i class="fa fa-times"></i></button>
 			</div>
 		</div>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">
 		[[admin/settings/general:favicon]]
 	</div>
-	<div class="col-sm-10 col-xs-12">
-		<div class="form-group">
+	<div class="col-sm-10 col-12">
+		<div class="mb-3">
 			<div class="input-group">
 				<input id="faviconUrl" type="text" class="form-control" placeholder="favicon.ico" data-field="brand:favicon" data-action="upload" data-target="faviconUrl" data-route="{config.relative_path}/api/admin/uploadfavicon" readonly />
-				<span class="input-group-btn">
-					<input data-action="upload" data-target="faviconUrl" data-route="{config.relative_path}/api/admin/uploadfavicon" data-help="0" type="button" class="btn btn-default" value="[[admin/settings/general:favicon.upload]]" />
-					<button data-action="removeFavicon" type="button" class="btn btn-default btn-danger"><i class="fa fa-times"></i></button>
-				</span>
+
+				<input data-action="upload" data-target="faviconUrl" data-route="{config.relative_path}/api/admin/uploadfavicon" data-help="0" type="button" class="btn btn-outline-secondary" value="[[admin/settings/general:favicon.upload]]" />
+				<button data-action="removeFavicon" type="button" class="btn btn-danger"><i class="fa fa-times"></i></button>
 			</div>
 		</div>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">
 		[[admin/settings/general:pwa]]
 	</div>
-	<div class="col-sm-10 col-xs-12">
-		<div class="form-group">
-			<label for="touchIconUrl">[[admin/settings/general:touch-icon]]</label>
+	<div class="col-sm-10 col-12">
+		<div class="mb-3">
+			<label class="form-label" for="touchIconUrl">[[admin/settings/general:touch-icon]]</label>
 			<div class="input-group">
 				<input id="touchIconUrl" type="text" class="form-control" data-field="brand:touchIcon" data-action="upload" data-target="touchIconUrl" data-route="{config.relative_path}/api/admin/uploadTouchIcon" readonly />
-				<span class="input-group-btn">
-					<input data-action="upload" data-target="touchIconUrl" data-route="{config.relative_path}/api/admin/uploadTouchIcon" type="button" class="btn btn-default" value="[[admin/settings/general:touch-icon.upload]]" />
-					<button data-action="removeTouchIcon" type="button" class="btn btn-default btn-danger"><i class="fa fa-times"></i></button>
-				</span>
+				<input data-action="upload" data-target="touchIconUrl" data-route="{config.relative_path}/api/admin/uploadTouchIcon" type="button" class="btn btn-outline-secondary" value="[[admin/settings/general:touch-icon.upload]]" />
+				<button data-action="removeTouchIcon" type="button" class="btn btn-danger"><i class="fa fa-times"></i></button>
 			</div>
-			<p class="help-block">
+			<p class="form-text">
 				[[admin/settings/general:touch-icon.help]]
 			</p>
 		</div>
 
-		<div class="form-group">
-			<label for="maskableIconUrl">[[admin/settings/general:maskable-icon]]</label>
+		<div class="mb-3">
+			<label class="form-label" for="maskableIconUrl">[[admin/settings/general:maskable-icon]]</label>
 			<div class="input-group">
 				<input id="maskableIconUrl" type="text" class="form-control" data-field="brand:maskableIcon" data-action="upload" data-target="maskableIconUrl" data-route="{config.relative_path}/api/admin/uploadMaskableIcon" readonly />
-				<span class="input-group-btn">
-					<input data-action="upload" data-target="maskableIconUrl" data-route="{config.relative_path}/api/admin/uploadMaskableIcon" type="button" class="btn btn-default" value="[[admin/settings/general:touch-icon.upload]]" />
-					<button data-action="removeMaskableIcon" type="button" class="btn btn-default btn-danger"><i class="fa fa-times"></i></button>
-				</span>
+
+				<input data-action="upload" data-target="maskableIconUrl" data-route="{config.relative_path}/api/admin/uploadMaskableIcon" type="button" class="btn btn-outline-secondary" value="[[admin/settings/general:touch-icon.upload]]" />
+				<button data-action="removeMaskableIcon" type="button" class="btn btn-danger"><i class="fa fa-times"></i></button>
 			</div>
-			<p class="help-block">
+			<p class="form-text">
 				[[admin/settings/general:maskable-icon.help]]
 			</p>
 		</div>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/general:search]]</div>
-	<div class="col-sm-10 col-xs-12">
-		<div class="form-group">
-			<label for="searchDefaultIn">[[admin/settings/general:search-default-in]]</label>
-			<select id="searchDefaultIn" class="form-control" data-field="searchDefaultIn">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/general:search]]</div>
+	<div class="col-sm-10 col-12">
+		<div class="mb-3">
+			<label class="form-label" for="searchDefaultIn">[[admin/settings/general:search-default-in]]</label>
+			<select id="searchDefaultIn" class="form-select" data-field="searchDefaultIn">
 				<option value="titlesposts">[[search:titles-posts]]</option>
 				<option value="titles">[[search:titles]]</option>
 				<option value="posts">[[global:posts]]</option>
@@ -149,17 +152,17 @@
 				<option value="tags">[[tags:tags]]</option>
 			</select>
 		</div>
-		<div class="form-group">
-			<label for="searchDefaultInQuick">[[admin/settings/general:search-default-in-quick]]</label>
-			<select id="searchDefaultInQuick" class="form-control" data-field="searchDefaultInQuick">
+		<div class="mb-3">
+			<label class="form-label" for="searchDefaultInQuick">[[admin/settings/general:search-default-in-quick]]</label>
+			<select id="searchDefaultInQuick" class="form-select" data-field="searchDefaultInQuick">
 				<option value="titlesposts">[[search:titles-posts]]</option>
 				<option value="titles">[[search:titles]]</option>
 				<option value="posts">[[global:posts]]</option>
 			</select>
 		</div>
-		<div class="form-group">
-			<label for="post-sort-by">[[admin/settings/general:search-default-sort-by]]</label>
-			<select id="post-sort-by" class="form-control" data-field="searchDefaultSortBy">
+		<div class="mb-3">
+			<label class="form-label" for="post-sort-by">[[admin/settings/general:search-default-sort-by]]</label>
+			<select id="post-sort-by" class="form-select" data-field="searchDefaultSortBy">
 				<option value="relevance">[[search:relevance]]</option>
 				<option value="timestamp">[[search:post-time]]</option>
 				<option value="votes">[[search:votes]]</option>
@@ -176,50 +179,53 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/general:outgoing-links]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/general:outgoing-links]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label for="useOutgoingLinksPage" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input type="checkbox" class="mdl-switch__input" id="useOutgoingLinksPage" data-field="useOutgoingLinksPage">
-					<span class="mdl-switch__label"><strong>[[admin/settings/general:outgoing-links.warning-page]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input type="checkbox" class="form-check-input" id="useOutgoingLinksPage" data-field="useOutgoingLinksPage">
+				<label for="useOutgoingLinksPage" class="form-check-label">[[admin/settings/general:outgoing-links.warning-page]]</label>
 			</div>
 
-			<div class="form-group">
-				<label for="outgoingLinks:whitelist">[[admin/settings/general:outgoing-links.whitelist]]</label><br />
+			<div class="mb-3">
+				<label class="form-label" for="outgoingLinks:whitelist">[[admin/settings/general:outgoing-links.whitelist]]</label>
 				<input id="outgoingLinks:whitelist" type="text" class="form-control" placeholder="subdomain.domain.com" data-field="outgoingLinks:whitelist" data-field-type="tagsinput" />
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/general:site-colors]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/general:site-colors]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<label for="themeColor">[[admin/settings/general:theme-color]]</label>
-			<input id="themeColor" type="text" class="form-control" placeholder="#ffffff" data-field="themeColor" />
-
-			<label for="backgroundColor">[[admin/settings/general:background-color]]</label>
-			<input id="backgroundColor" type="text" class="form-control" placeholder="#ffffff" data-field="backgroundColor" />
-			<p class="help-block">
-				[[admin/settings/general:background-color-help]]
-			</p>
+			<div class="mb-3">
+				<label class="form-label" for="themeColor">[[admin/settings/general:theme-color]]</label>
+				<input id="themeColor" type="text" class="form-control" placeholder="#ffffff" data-field="themeColor" />
+			</div>
+			<div class="mb-3">
+				<label class="form-label" for="backgroundColor">[[admin/settings/general:background-color]]</label>
+				<input id="backgroundColor" type="text" class="form-control" placeholder="#ffffff" data-field="backgroundColor" />
+				<p class="form-text">
+					[[admin/settings/general:background-color-help]]
+				</p>
+			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/general:topic-tools]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/general:topic-tools]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<label for="undoTimeout">[[admin/settings/general:undo-timeout]]</label>
-			<input id="undoTimeout" type="text" class="form-control" placeholder="10000" data-field="undoTimeout" />
-			<p class="help-block">
-				[[admin/settings/general:undo-timeout-help]]
-			</p>
+			<div class="mb-3">
+				<label class="form-label" for="undoTimeout">[[admin/settings/general:undo-timeout]]</label>
+				<input id="undoTimeout" type="text" class="form-control" placeholder="10000" data-field="undoTimeout" />
+				<p class="form-text">
+					[[admin/settings/general:undo-timeout-help]]
+				</p>
+			</div>
 		</form>
 	</div>
 </div>
diff --git a/src/views/admin/settings/group.tpl b/src/views/admin/settings/group.tpl
index 8033448b01..d113cf2d9c 100644
--- a/src/views/admin/settings/group.tpl
+++ b/src/views/admin/settings/group.tpl
@@ -1,52 +1,44 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/group:general]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/group:general]]</div>
+	<div class="col-sm-10 col-12">
 		<form role="form">
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="allowPrivateGroups">
-					<span class="mdl-switch__label"><strong>[[admin/settings/group:private-groups]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="allowPrivateGroups">
+				<label class="form-check-label">[[admin/settings/group:private-groups]]</label>
+				<p class="form-text">[[admin/settings/group:private-groups.help]]</p>
+				<p class="form-text">[[admin/settings/group:private-groups.warning]]</p>
 			</div>
 
-			<p class="help-block">
-				[[admin/settings/group:private-groups.help]]
-			</p>
-			<p class="help-block">
-				[[admin/settings/group:private-groups.warning]]
-			</p>
-
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="allowMultipleBadges">
-					<span class="mdl-switch__label"><strong>[[admin/settings/group:allow-multiple-badges]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="allowMultipleBadges">
+				<label class="form-check-label">[[admin/settings/group:allow-multiple-badges]]</label>
+				<p class="form-text">[[admin/settings/group:allow-multiple-badges-help]]</p>
 			</div>
 
-			<p class="help-block">
-				[[admin/settings/group:allow-multiple-badges-help]]
-			</p>
-
-			<label for="maximumGroupNameLength">[[admin/settings/group:max-name-length]]</label>
-			<input id="maximumGroupNameLength" class="form-control" type="text" placeholder="255" data-field="maximumGroupNameLength" />
+			<div class="mb-3">
+				<label class="form-label" for="maximumGroupNameLength">[[admin/settings/group:max-name-length]]</label>
+				<input id="maximumGroupNameLength" class="form-control" type="text" placeholder="255" data-field="maximumGroupNameLength" />
+			</div>
 
-			<label for="maximumGroupTitleLength">[[admin/settings/group:max-title-length]]</label>
-			<input id="maximumGroupTitleLength" class="form-control" type="text" placeholder="40" data-field="maximumGroupTitleLength" />
+			<div class="mb=3">
+				<label class="form-label" for="maximumGroupTitleLength">[[admin/settings/group:max-title-length]]</label>
+				<input id="maximumGroupTitleLength" class="form-control" type="text" placeholder="40" data-field="maximumGroupTitleLength" />
+			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/group:cover-image]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/group:cover-image]]</div>
+	<div class="col-sm-10 col-12">
 		<form role="form">
-			<label for="groups:defaultCovers"><strong>[[admin/settings/group:default-cover]]</strong></label>
-			<p class="help-block">
+			<label class="form-label" for="groups:defaultCovers"><strong>[[admin/settings/group:default-cover]]</strong></label>
+			<p class="form-text">
 				[[admin/settings/group:default-cover-help]]
 			</p>
-			<input type="text" class="form-control input-lg" id="groups:defaultCovers" data-field="groups:defaultCovers" data-field-type="tagsinput" value="/assets/images/cover-default.png" placeholder="https://example.com/group1.png, https://example.com/group2.png" /><br />
+			<input type="text" class="form-control input-lg" id="groups:defaultCovers" data-field="groups:defaultCovers" data-field-type="tagsinput" value="/assets/images/cover-default.png" placeholder="https://example.com/group1.png, https://example.com/group2.png" />
 		</form>
 	</div>
 </div>
diff --git a/src/views/admin/settings/guest.tpl b/src/views/admin/settings/guest.tpl
index 3adaf9917c..91c9b69467 100644
--- a/src/views/admin/settings/guest.tpl
+++ b/src/views/admin/settings/guest.tpl
@@ -1,33 +1,27 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
 <div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/guest:settings]]</div>
-	<div class="col-sm-10 col-xs-12">
-		<form role="form">
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="allowGuestHandles">
-					<span class="mdl-switch__label"><strong>[[admin/settings/guest:handles.enabled]]</strong></span>
-				</label>
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/guest:settings]]</div>
+	<div class="col-sm-10 col-12">
+		<form role="form" class="mb-3">
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="allowGuestHandles">
+				<label class="form-check-label">[[admin/settings/guest:handles.enabled]]</label>
 			</div>
-			<p class="help-block">
+			<p class="form-text">
 				[[admin/settings/guest:handles.enabled-help]]
 			</p>
 		</form>
-		<form role="form">
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="guestsIncrementTopicViews">
-					<span class="mdl-switch__label"><strong>[[admin/settings/guest:topic-views.enabled]]</strong></span>
-				</label>
+		<form role="form" class="mb-3">
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="guestsIncrementTopicViews">
+				<label class="form-check-label">[[admin/settings/guest:topic-views.enabled]]</label>
 			</div>
 		</form>
-		<form role="form">
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="allowGuestReplyNotifications">
-					<span class="mdl-switch__label"><strong>[[admin/settings/guest:reply-notifications.enabled]]</strong></span>
-				</label>
+		<form role="form" class="mb-3">
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="allowGuestReplyNotifications">
+				<label class="form-check-label">[[admin/settings/guest:reply-notifications.enabled]]</label>
 			</div>
 		</form>
 	</div>
diff --git a/src/views/admin/settings/homepage.tpl b/src/views/admin/settings/homepage.tpl
index dbf30482d9..785f323e57 100644
--- a/src/views/admin/settings/homepage.tpl
+++ b/src/views/admin/settings/homepage.tpl
@@ -1,34 +1,34 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 <div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/homepage:home-page]]</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/homepage:home-page]]</div>
+	<div class="col-sm-10 col-12">
 		<p>
 			[[admin/settings/homepage:description]]
 		</p>
 		<form class="row">
 			<div class="col-sm-12">
-				<label for="homePageRoute">[[admin/settings/homepage:home-page-route]]</label>
-				<select id="homePageRoute" class="form-control" data-field="homePageRoute">
-					<!-- BEGIN routes -->
-					<option value="{routes.route}">{routes.name}</option>
-					<!-- END routes -->
-				</select>
-				<div id="homePageCustom" style="display: none;">
-					<br>
-					<label for="homePageCustomInput">[[admin/settings/homepage:custom-route]]</label>
+				<div class="mb-3">
+					<label class="form-label" for="homePageRoute">[[admin/settings/homepage:home-page-route]]</label>
+					<select id="homePageRoute" class="form-select" data-field="homePageRoute">
+						{{{ each routes }}}
+						<option value="{./route}">{./name}</option>
+						{{{ end }}}
+					</select>
+				</div>
+				<div id="homePageCustom" class="mb-3" style="display: none;">
+					<label class="form-label" for="homePageCustomInput">[[admin/settings/homepage:custom-route]]</label>
 					<input id="homePageCustomInput" type="text" class="form-control" data-field="homePageCustom"/>
-					<p class="help-block">[[user:custom_route_help]]</p>
+					<p class="form-text">[[user:custom_route_help]]</p>
+				</div>
+
+				<div class="form-check form-switch mb-3">
+					<input class="form-check-input" type="checkbox" data-field="allowUserHomePage">
+					<label class="form-check-label">[[admin/settings/homepage:allow-user-home-pages]]</label>
 				</div>
-				<br>
-				<div class="checkbox">
-					<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-						<input class="mdl-switch__input" type="checkbox" data-field="allowUserHomePage">
-						<span class="mdl-switch__label"><strong>[[admin/settings/homepage:allow-user-home-pages]]</strong></span>
-					</label>
+				<div>
+					<label class="form-label" for="homePageTitle">[[admin/settings/homepage:home-page-title]]</label>
+					<input id="homePageTitle" class="form-control" type="text" data-field="homePageTitle" placeholder="[[pages:home]]">
 				</div>
-				<br>
-				<label for="homePageTitle">[[admin/settings/homepage:home-page-title]]</label>
-				<input id="homePageTitle" class="form-control" type="text" data-field="homePageTitle" placeholder="[[pages:home]]">
 			</div>
 		</form>
 	</div>
diff --git a/src/views/admin/settings/languages.tpl b/src/views/admin/settings/languages.tpl
index 5f6bb114b1..6aa27904e8 100644
--- a/src/views/admin/settings/languages.tpl
+++ b/src/views/admin/settings/languages.tpl
@@ -1,30 +1,28 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
 <div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/languages:language-settings]]</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/languages:language-settings]]</div>
+	<div class="col-sm-10 col-12">
 		<p>
 			[[admin/settings/languages:description]]
 		</p>
 
-		<form class="row">
+		<form class="row mb-4">
 			<div class="form-group col-sm-6">
-				<label for="language">[[admin/settings/languages:default-language]]</label>
-				<select id="language" data-field="defaultLang" class="form-control">
-					<!-- BEGIN languages -->
-					<option value="{languages.code}" <!-- IF languages.selected -->selected<!-- ENDIF languages.selected -->>{languages.name} ({languages.code})</option>
-					<!-- END languages -->
+				<label class="form-label" for="language">[[admin/settings/languages:default-language]]</label>
+				<select id="language" data-field="defaultLang" class="form-select">
+					{{{ each languages }}}
+					<option value="{./code}" {{{ if ./selected }}}selected{{{ end }}}>{./name} ({./code})</option>
+					{{{ end }}}
 				</select>
 			</div>
 		</form>
 
 		<form class="row">
 			<div class="form-group col-sm-6">
-				<div class="checkbox">
-					<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-						<input class="mdl-switch__input" type="checkbox" data-field="autoDetectLang" <!-- IF autoDetectLang -->checked<!-- ENDIF autoDetectLang -->/>
-						<span class="mdl-switch__label">[[admin/settings/languages:auto-detect]]</span>
-					</label>
+				<div class="formcheck">
+					<input class="form-check-input" type="checkbox" data-field="autoDetectLang" {{{ if autoDetectLang }}}checked{{{ end }}}/>
+					<label class="form-check-label">[[admin/settings/languages:auto-detect]]</label>
 				</div>
 			</div>
 		</form>
diff --git a/src/views/admin/settings/navigation.tpl b/src/views/admin/settings/navigation.tpl
index ff76b337e5..0c0b58ad0d 100644
--- a/src/views/admin/settings/navigation.tpl
+++ b/src/views/admin/settings/navigation.tpl
@@ -1,14 +1,14 @@
 <div class="row" id="navigation">
 	<div class="col-lg-9">
 		<div class="clearfix">
-			<ul id="active-navigation" class="nav navbar-nav">
-				<!-- BEGIN navigation -->
-				<li data-index="{navigation.index}" class="{navigation.class} {{{ if navigation.selected }}} active {{{ end }}}">
-					<a href="#" title="{navigation.route}" id="{navigation.id}" class="{{{ if !navigation.enabled }}}text-muted{{{ end }}}">
+			<ul id="active-navigation" class="nav">
+				{{{ each navigation }}}
+				<li data-index="{navigation.index}" class="float-start nav-item {navigation.class} {{{ if navigation.selected }}} active {{{ end }}}">
+					<a href="#" title="{navigation.route}" id="{navigation.id}" class="nav-link p-3 {{{ if !navigation.enabled }}}text-muted{{{ end }}}">
 						<i class="nav-icon fa fa-fw {{{ if navigation.iconClass }}}{navigation.iconClass}{{{ end }}}"></i><i class="dropdown-icon fa fa-caret-down{{{ if !navigation.dropdown }}} hidden{{{ end }}}"></i>
 					</a>
 				</li>
-				<!-- END navigation -->
+				{{{ end }}}
 			</ul>
 		</div>
 
@@ -16,10 +16,10 @@
 
 		<ul id="enabled">
 			{{{ each enabled }}}
-			<li data-index="{enabled.index}" class="well <!-- IF !enabled.selected -->hidden<!-- ENDIF !enabled.selected -->">
+			<li data-index="{enabled.index}" class="card card-body text-bg-light border-0 {{{ if !enabled.selected }}}hidden{{{ end }}}">
 				<form>
 					<div class="row">
-						<div class="col-sm-12 text-right">
+						<div class="col-sm-12 text-end mb-3">
 							{{{ if enabled.enabled }}}
 							<button class="btn btn-warning toggle">[[admin/settings/navigation:btn.disable]]</button>
 							{{{ else }}}
@@ -29,85 +29,71 @@
 							<input type="hidden" name="enabled" value="{{{ if enabled.enabled }}}on{{{ end}}}" />
 						</div>
 					</div>
-					<div class="row">
+					<div class="row mb-3">
 						<div class="col-sm-1">
-							<div class="form-group">
-								<label>[[admin/settings/navigation:icon]]</label>
-								<br/>
-								<span class="iconPicker"><i class="fa fa-2x {enabled.iconClass}"></i>
-									<a class="change-icon-link <!-- IF enabled.iconClass -->hidden<!-- ENDIF enabled.iconClass -->" href="#">[[admin/settings/navigation:change-icon]]</a>
-									<input class="form-control" type="hidden" name="iconClass" value="{enabled.iconClass}" />
-								</span>
-							</div>
+							<label class="form-label">[[admin/settings/navigation:icon]]</label>
+							<span class="iconPicker"><i class="fa fa-2x {enabled.iconClass}"></i>
+								<a class="change-icon-link {{{ if enabled.iconClass }}}hidden{{{ end }}}" href="#">[[admin/settings/navigation:change-icon]]</a>
+								<input class="form-control" type="hidden" name="iconClass" value="{enabled.iconClass}" />
+							</span>
 						</div>
 
 						<div class="col-sm-3">
-							<div class="form-group">
-								<label for="nav:route">[[admin/settings/navigation:route]]</label>
-								<input id="nav:route" class="form-control" type="text" name="route" value="{enabled.route}" />
-							</div>
+							<label class="form-label" for="nav:route">[[admin/settings/navigation:route]]</label>
+							<input id="nav:route" class="form-control" type="text" name="route" value="{enabled.route}" />
 						</div>
 
 						<div class="col-sm-4">
-							<div class="form-group">
-								<label for="nav:class">[[admin/settings/navigation:class]]</label>
-								<input id="nav:class" class="form-control" type="text" name="class" value="{enabled.class}" />
-							</div>
+							<label class="form-label" for="nav:class">[[admin/settings/navigation:class]]</label>
+							<input id="nav:class" class="form-control" type="text" name="class" value="{enabled.class}" />
 						</div>
 
 						<div class="col-sm-4">
-							<div class="form-group">
-								<label for="nav:id">[[admin/settings/navigation:id]]</label>
-								<input id="nav:id" class="form-control" type="text" name="id" value="{enabled.id}" />
-							</div>
+							<label class="form-label" for="nav:id">[[admin/settings/navigation:id]]</label>
+							<input id="nav:id" class="form-control" type="text" name="id" value="{enabled.id}" />
 						</div>
 					</div>
-					<div class="row">
+
+					<div class="row mb-3">
 						<div class="col-sm-4">
-							<div class="form-group">
-								<label for="nav:text">[[admin/settings/navigation:text]]</label>
-								<input id="nav:text" class="form-control unescape" type="text" name="text" value="{enabled.text}" />
-							</div>
+							<label class="form-label" for="nav:text">[[admin/settings/navigation:text]]</label>
+							<input id="nav:text" class="form-control unescape" type="text" name="text" value="{enabled.text}" />
 						</div>
+
 						<div class="col-sm-4">
-							<div class="form-group">
-								<label for="nav:text-class">[[admin/settings/navigation:text-class]]</label>
-								<input id="nav:text-class" class="form-control" type="text" name="textClass" value="{enabled.textClass}" />
-							</div>
+							<label class="form-label" for="nav:text-class">[[admin/settings/navigation:text-class]]</label>
+							<input id="nav:text-class" class="form-control" type="text" name="textClass" value="{enabled.textClass}" />
 						</div>
 
 						<div class="col-sm-4">
-							<div class="form-group">
-								<label for="nav:tooltip">[[admin/settings/navigation:tooltip]]</label>
-								<input id="nav:tooltip" class="form-control unescape" type="text" name="title" value="{enabled.title}" />
-							</div>
+							<label class="form-label" for="nav:tooltip">[[admin/settings/navigation:tooltip]]</label>
+							<input id="nav:tooltip" class="form-control unescape" type="text" name="title" value="{enabled.title}" />
 						</div>
 					</div>
 
-					<strong>[[admin/settings/navigation:groups]]</strong>
-					<div>
-						<select name="groups" class="form-control" size="10" multiple>
-							{{{ each enabled.groups }}}
-							<option value="{enabled.groups.displayName}"<!-- IF enabled.groups.selected --> selected<!-- ENDIF enabled.groups.selected -->>{enabled.groups.displayName}</option>
-							{{{ end }}}
-						</select>
+					<div class="row mb-3">
+						<div class="col-12">
+							<label class="form-label">[[admin/settings/navigation:groups]]</label>
+
+							<select name="groups" class="form-select" size="10" multiple>
+								{{{ each enabled.groups }}}
+								<option value="{enabled.groups.displayName}"{{{ if enabled.groups.selected }}} selected{{{ end }}}>{enabled.groups.displayName}</option>
+								{{{ end }}}
+							</select>
+						</div>
 					</div>
 
-					<div class="checkbox">
-						<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-							<input class="mdl-switch__input" type="checkbox" name="targetBlank" <!-- IF enabled.targetBlank -->checked<!-- ENDIF enabled.targetBlank -->/>
-							<span class="mdl-switch__label"><strong>[[admin/settings/navigation:open-new-window]]</strong></span>
-						</label>
+					<div class="form-check form-switch mb-3">
+						<input class="form-check-input" type="checkbox" name="targetBlank" {{{ if enabled.targetBlank }}}checked{{{ end }}}/>
+						<label class="form-check-label">[[admin/settings/navigation:open-new-window]]</label>
 					</div>
 
-					<div class="checkbox">
-						<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-							<input class="mdl-switch__input" type="checkbox" name="dropdown" {{{ if enabled.dropdown }}}checked{{{ end }}}/>
-							<span class="mdl-switch__label"><strong>[[admin/settings/navigation:dropdown]]</strong></span>
-						</label>
+					<div class="form-check form-switch mb-3">
+						<input class="form-check-input" type="checkbox" name="dropdown" {{{ if enabled.dropdown }}}checked{{{ end }}}/>
+						<label class="form-check-label">[[admin/settings/navigation:dropdown]]</label>
 					</div>
 					<div>
-						<p class="help-block">
+						<p class="form-text">
 							[[admin/settings/navigation:dropdown-placeholder]]
 						</p>
 						<textarea name="dropdownContent" rows="5" class="form-control">{enabled.dropdownContent}</textarea>
@@ -119,12 +105,12 @@
 	</div>
 
 	<div class="col-lg-3">
-		<div class="panel panel-default">
-			<div class="panel-heading">[[admin/settings/navigation:available-menu-items]]</div>
-			<div class="panel-body">
+		<div class="card">
+			<div class="card-header">[[admin/settings/navigation:available-menu-items]]</div>
+			<div class="card-body">
 				<ul id="available">
 					<li data-id="custom" class="clearfix">
-						<div data-id="custom" class="drag-item alert alert-success pull-left">
+						<div data-id="custom" class="drag-item alert alert-success float-start">
 							<i class="fa fa-fw fa-plus-circle"></i>
 						</div>
 						<p>
@@ -133,12 +119,12 @@
 					</li>
 					{{{ each available }}}
 					<li data-id="{@index}" class="clearfix">
-						<div data-id="{@index}" class="drag-item alert <!-- IF available.core -->alert-warning<!-- ELSE -->alert-info<!-- ENDIF available.core --> pull-left">
-							<i class="fa fa-fw <!-- IF available.iconClass -->{available.iconClass}<!-- ELSE -->fa-navicon<!-- ENDIF available.iconClass -->"></i>
+						<div data-id="{@index}" class="drag-item alert {{{ if available.core }}}alert-warning{{{ else }}}alert-info{{{ end }}} float-start">
+							<i class="fa fa-fw {{{ if available.iconClass }}}{available.iconClass}{{{ else }}}fa-navicon{{{ end }}}"></i>
 						</div>
 						<p>
 							<strong>{available.text}</strong> {available.route} <br/>
-							<!-- IF available.core --> [[admin/settings/navigation:core]] <!-- ELSE --> [[admin/settings/navigation:plugin]] <!-- ENDIF available.core -->
+							{{{ if available.core }}} [[admin/settings/navigation:core]] {{{ else }}} [[admin/settings/navigation:plugin]] {{{ end }}}
 						</p>
 					</li>
 					{{{ end }}}
@@ -148,6 +134,4 @@
 	</div>
 </div>
 
-<button id="save" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-	<i class="material-icons">save</i>
-</button>
\ No newline at end of file
+<!-- IMPORT admin/partials/save_button.tpl -->
\ No newline at end of file
diff --git a/src/views/admin/settings/notifications.tpl b/src/views/admin/settings/notifications.tpl
index 7fc1934832..33c8cea733 100644
--- a/src/views/admin/settings/notifications.tpl
+++ b/src/views/admin/settings/notifications.tpl
@@ -1,13 +1,25 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
 <div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/notifications:notifications]]</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/notifications:notifications]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<strong>[[admin/settings/notifications:welcome-notification]]</strong><br /> <textarea class="form-control" data-field="welcomeNotification"></textarea><br />
-			<strong>[[admin/settings/notifications:welcome-notification-link]]</strong><br /> <input type="text" class="form-control" data-field="welcomeLink"><br />
-			<strong>[[admin/settings/notifications:welcome-notification-uid]]</strong><br /> <input type="text" class="form-control" data-field="welcomeUid"><br />
-			<strong>[[admin/settings/notifications:post-queue-notification-uid]]</strong><br /> <input type="text" class="form-control" data-field="postQueueNotificationUid"><br />
+			<div class="mb-3">
+				<label class="form-label">[[admin/settings/notifications:welcome-notification]]</label>
+				<textarea class="form-control" data-field="welcomeNotification"></textarea>
+			</div>
+			<div class="mb-3">
+				<label class="form-label">[[admin/settings/notifications:welcome-notification-link]]</label>
+				<input type="text" class="form-control" data-field="welcomeLink">
+			</div>
+			<div class="mb-3">
+				<label class="form-label">[[admin/settings/notifications:welcome-notification-uid]]</label>
+				<input type="text" class="form-control" data-field="welcomeUid">
+			</div>
+			<div class="mb-3">
+				<label class="form-label">[[admin/settings/notifications:post-queue-notification-uid]]</label>
+				<input type="text" class="form-control" data-field="postQueueNotificationUid">
+			</div>
 		</form>
 	</div>
 </div>
diff --git a/src/views/admin/settings/pagination.tpl b/src/views/admin/settings/pagination.tpl
index 673338c0cc..ef13b02d12 100644
--- a/src/views/admin/settings/pagination.tpl
+++ b/src/views/admin/settings/pagination.tpl
@@ -1,44 +1,57 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/pagination:pagination]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/pagination:pagination]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="usePagination">
-					<span class="mdl-switch__label"><strong>[[admin/settings/pagination:enable]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="usePagination">
+				<label class="form-check-label">[[admin/settings/pagination:enable]]</label>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/pagination:posts]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/pagination:posts]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<strong>[[admin/settings/pagination:posts-per-page]]</strong><br /> <input type="text" class="form-control" value="20" data-field="postsPerPage"><br/>
-			<strong>[[admin/settings/pagination:max-posts-per-page]]</strong><br /> <input type="text" class="form-control" value="20" data-field="maxPostsPerPage"><br/>
+			<div class="mb-3">
+				<label class="form-label">[[admin/settings/pagination:posts-per-page]]</label>
+				<input type="text" class="form-control" value="20" data-field="postsPerPage">
+			</div>
+			<div class="mb-3">
+				<label class="form-label">[[admin/settings/pagination:max-posts-per-page]]</label>
+				<input type="text" class="form-control" value="20" data-field="maxPostsPerPage">
+			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/pagination:topics]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/pagination:topics]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<strong>[[admin/settings/pagination:topics-per-page]]</strong><br /> <input type="text" class="form-control" value="20" data-field="topicsPerPage"><br />
-			<strong>[[admin/settings/pagination:max-topics-per-page]]</strong><br /> <input type="text" class="form-control" value="20" data-field="maxTopicsPerPage"><br/>
+			<div class="mb-3">
+				<label class="form-label">[[admin/settings/pagination:topics-per-page]]</label>
+				<input type="text" class="form-control" value="20" data-field="topicsPerPage">
+			</div>
+			<div class="mb-3">
+				<label class="form-label">[[admin/settings/pagination:max-topics-per-page]]</label>
+				<input type="text" class="form-control" value="20" data-field="maxTopicsPerPage">
+			</div>
 		</form>
 	</div>
 </div>
 
 <div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/pagination:categories]]</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/pagination:categories]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<strong>[[admin/settings/pagination:categories-per-page]]</strong><br /> <input type="text" class="form-control" value="50" data-field="categoriesPerPage"><br />
+			<div>
+				<label class="form-label">[[admin/settings/pagination:categories-per-page]]</label>
+				<input type="text" class="form-control" value="50" data-field="categoriesPerPage">
+			</div>
 		</form>
 	</div>
 </div>
diff --git a/src/views/admin/settings/post.tpl b/src/views/admin/settings/post.tpl
index 8e8d2e76bc..6733ef5d63 100644
--- a/src/views/admin/settings/post.tpl
+++ b/src/views/admin/settings/post.tpl
@@ -1,20 +1,20 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:sorting]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:sorting]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="topicPostSort">[[admin/settings/post:sorting.post-default]]</label>
-				<select id="topicPostSort" class="form-control" data-field="topicPostSort">
+			<div class="mb-3">
+				<label class="form-label" for="topicPostSort">[[admin/settings/post:sorting.post-default]]</label>
+				<select id="topicPostSort" class="form-select" data-field="topicPostSort">
 					<option value="oldest_to_newest">[[admin/settings/post:sorting.oldest-to-newest]]</option>
 					<option value="newest_to_oldest">[[admin/settings/post:sorting.newest-to-oldest]]</option>
 					<option value="most_votes">[[admin/settings/post:sorting.most-votes]]</option>
 				</select>
 			</div>
-			<div class="form-group">
-				<label for="categoryTopicSort">[[admin/settings/post:sorting.topic-default]]</label>
-				<select id="categoryTopicSort" class="form-control" data-field="categoryTopicSort">
+			<div class="mb-3">
+				<label class="form-label" for="categoryTopicSort">[[admin/settings/post:sorting.topic-default]]</label>
+				<select id="categoryTopicSort" class="form-select" data-field="categoryTopicSort">
 					<option value="oldest_to_newest">[[admin/settings/post:sorting.oldest-to-newest]]</option>
 					<option value="newest_to_oldest">[[admin/settings/post:sorting.newest-to-oldest]]</option>
 					<option value="most_posts">[[admin/settings/post:sorting.most-posts]]</option>
@@ -24,28 +24,28 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:length]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:length]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
 			<div class="row">
-				<div class="col-xs-6">
-					<div class="form-group">
-						<label for="minimumTitleLength">[[admin/settings/post:restrictions.min-title-length]]</label>
+				<div class="col-6">
+					<div class="mb-3">
+						<label class="form-label" for="minimumTitleLength">[[admin/settings/post:restrictions.min-title-length]]</label>
 						<input id="minimumTitleLength" type="text" class="form-control" value="3" data-field="minimumTitleLength">
 					</div>
-					<div class="form-group">
-						<label for="maximumTitleLength">[[admin/settings/post:restrictions.max-title-length]]</label>
+					<div class="mb-3">
+						<label class="form-label" for="maximumTitleLength">[[admin/settings/post:restrictions.max-title-length]]</label>
 						<input id="maximumTitleLength" type="text" class="form-control" value="255" data-field="maximumTitleLength">
 					</div>
 				</div>
-				<div class="col-xs-6">
-					<div class="form-group">
-						<label for="minimumPostLength">[[admin/settings/post:restrictions.min-post-length]]</label>
+				<div class="col-6">
+					<div class="mb-3">
+						<label class="form-label" for="minimumPostLength">[[admin/settings/post:restrictions.min-post-length]]</label>
 						<input id="minimumPostLength" type="text" class="form-control" value="8" data-field="minimumPostLength">
 					</div>
-					<div class="form-group">
-						<label for="maximumPostLength">[[admin/settings/post:restrictions.max-post-length]]</label>
+					<div class="mb-3">
+						<label class="form-label" for="maximumPostLength">[[admin/settings/post:restrictions.max-post-length]]</label>
 						<input id="maximumPostLength" type="text" class="form-control" value="32767" data-field="maximumPostLength">
 					</div>
 				</div>
@@ -54,31 +54,31 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:restrictions]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:restrictions]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="postDelay">[[admin/settings/post:restrictions.seconds-between]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="postDelay">[[admin/settings/post:restrictions.seconds-between]]</label>
 				<input id="postDelay" type="text" class="form-control" value="10" data-field="postDelay">
 			</div>
-			<div class="form-group">
-				<label for="postEditDuration">[[admin/settings/post:restrictions.seconds-edit-after]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="postEditDuration">[[admin/settings/post:restrictions.seconds-edit-after]]</label>
 				<input id="postEditDuration" type="text" class="form-control" value="0" data-field="postEditDuration">
 			</div>
-			<div class="form-group">
-				<label for="postDeleteDuration">[[admin/settings/post:restrictions.seconds-delete-after]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="postDeleteDuration">[[admin/settings/post:restrictions.seconds-delete-after]]</label>
 				<input id="postDeleteDuration" type="text" class="form-control" value="0" data-field="postDeleteDuration">
 			</div>
-			<div class="form-group">
-				<label for="preventTopicDeleteAfterReplies">[[admin/settings/post:restrictions.replies-no-delete]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="preventTopicDeleteAfterReplies">[[admin/settings/post:restrictions.replies-no-delete]]</label>
 				<input id="preventTopicDeleteAfterReplies" type="text" class="form-control" value="0" data-field="preventTopicDeleteAfterReplies">
 			</div>
 
-			<div class="form-group">
-				<label for="topicStaleDays">[[admin/settings/post:restrictions.days-until-stale]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="topicStaleDays">[[admin/settings/post:restrictions.days-until-stale]]</label>
 				<input id="topicStaleDays" type="text" class="form-control" value="60" data-field="topicStaleDays">
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/post:restrictions.stale-help]]
 				</p>
 			</div>
@@ -86,65 +86,63 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:restrictions-new]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:restrictions-new]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="newbiePostDelayThreshold">[[admin/settings/post:restrictions.rep-threshold]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="newbiePostDelayThreshold">[[admin/settings/post:restrictions.rep-threshold]]</label>
 				<input id="newbiePostDelayThreshold" type="text" class="form-control" value="3" data-field="newbiePostDelayThreshold">
 			</div>
 
-			<div class="form-group">
-				<label for="newbiePostDelay">[[admin/settings/post:restrictions.seconds-between-new]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="newbiePostDelay">[[admin/settings/post:restrictions.seconds-between-new]]</label>
 				<input id="newbiePostDelay" type="text" class="form-control" value="120" data-field="newbiePostDelay">
 			</div>
 
-			<div class="form-group">
-				<label for="initialPostDelay">[[admin/settings/post:restrictions.seconds-before-new]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="initialPostDelay">[[admin/settings/post:restrictions.seconds-before-new]]</label>
 				<input id="initialPostDelay" type="text" class="form-control" value="10" data-field="initialPostDelay">
 			</div>
 
-			<div class="form-group">
-				<label for="newbiePostEditDuration">[[admin/settings/post:restrictions.seconds-edit-after]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="newbiePostEditDuration">[[admin/settings/post:restrictions.seconds-edit-after]]</label>
 				<input id="newbiePostEditDuration" type="text" class="form-control" value="120" data-field="newbiePostEditDuration">
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:post-queue]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:post-queue]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
 			<div class="row">
 				<div class="col-sm-6">
-					<div class="form-group">
-						<div class="checkbox">
-							<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-								<input class="mdl-switch__input" type="checkbox" data-field="postQueue">
-								<span class="mdl-switch__label"><strong>[[admin/settings/post:restrictions.post-queue]]</strong></span>
-							</label>
+					<div class="mb-3">
+						<div class="form-check form-switch mb-3">
+							<input class="form-check-input" type="checkbox" data-field="postQueue">
+							<label class="form-check-label">[[admin/settings/post:restrictions.post-queue]]</label>
 						</div>
-						<p class="help-block">
+						<p class="form-text">
 							[[admin/settings/post:restrictions.post-queue-help]]
 						</p>
 					</div>
 				</div>
 				<div class="col-sm-6">
-					<div class="form-group">
-						<label for="postQueueReputationThreshold">[[admin/settings/post:restrictions.post-queue-rep-threshold]]</label>
+					<div class="mb-3">
+						<label class="form-label" for="postQueueReputationThreshold">[[admin/settings/post:restrictions.post-queue-rep-threshold]]</label>
 						<input id="postQueueReputationThreshold" type="text" class="form-control" value="0" data-field="postQueueReputationThreshold">
 					</div>
 				</div>
 			</div>
 			<div class="row">
-				<div class="form-group">
-					<label for="groupsExemptFromPostQueue">[[admin/settings/post:restrictions.groups-exempt-from-post-queue]]</label>
-					<select id="groupsExemptFromPostQueue" class="form-control" multiple data-field="groupsExemptFromPostQueue">
-						<!-- BEGIN groupsExemptFromPostQueue -->
+				<div class="mb-3">
+					<label class="form-label" for="groupsExemptFromPostQueue">[[admin/settings/post:restrictions.groups-exempt-from-post-queue]]</label>
+					<select id="groupsExemptFromPostQueue" class="form-select" multiple data-field="groupsExemptFromPostQueue">
+						{{{ each groupsExemptFromPostQueue }}}
 						<option value="{groupsExemptFromPostQueue.displayName}">{groupsExemptFromPostQueue.displayName}</option>
-						<!-- END -->
+						{{{ end }}}
 					</select>
 				</div>
 			</div>
@@ -152,28 +150,28 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:timestamp]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:timestamp]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="timeagoCutoff">[[admin/settings/post:timestamp.cut-off]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="timeagoCutoff">[[admin/settings/post:timestamp.cut-off]]</label>
 				<input type="number" class="form-control" id="timeagoCutoff" data-field="timeagoCutoff"  />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/post:timestamp.cut-off-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="necroThreshold">[[admin/settings/post:timestamp.necro-threshold]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="necroThreshold">[[admin/settings/post:timestamp.necro-threshold]]</label>
 				<input type="number" class="form-control" id="necroThreshold" data-field="necroThreshold"  />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/post:timestamp.necro-threshold-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="incrementTopicViewsInterval">[[admin/settings/post:timestamp.topic-views-interval]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="incrementTopicViewsInterval">[[admin/settings/post:timestamp.topic-views-interval]]</label>
 				<input type="number" class="form-control" id="incrementTopicViewsInterval" data-field="incrementTopicViewsInterval"  />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/post:timestamp.topic-views-interval-help]]
 				</p>
 			</div>
@@ -181,155 +179,133 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">Teaser</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">Teaser</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="teaserPost">[[admin/settings/post:teaser]]</label>
-				<select id="teaserPost" class="form-control" data-field="teaserPost">
+			<div class="mb-3">
+				<label class="form-label" for="teaserPost">[[admin/settings/post:teaser]]</label>
+				<select id="teaserPost" class="form-select" data-field="teaserPost">
 					<option value="last-post">[[admin/settings/post:teaser.last-post]]</option>
 					<option value="last-reply">[[admin/settings/post:teaser.last-reply]]</option>
 					<option value="first">[[admin/settings/post:teaser.first]]</option>
 				</select>
 			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="showPostPreviewsOnHover">
-					<span class="mdl-switch__label"><strong>[[admin/settings/post:showPostPreviewsOnHover]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="showPostPreviewsOnHover">
+				<label class="form-check-label">[[admin/settings/post:showPostPreviewsOnHover]]</label>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:unread]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:unread]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="unreadCutoff">[[admin/settings/post:unread.cutoff]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="unreadCutoff">[[admin/settings/post:unread.cutoff]]</label>
 				<input id="unreadCutoff" type="text" class="form-control" value="2" data-field="unreadCutoff">
 			</div>
-			<div class="form-group">
-				<label for="bookmarkthreshold">[[admin/settings/post:unread.min-track-last]]</label>
+			<div>
+				<label class="form-label" for="bookmarkthreshold">[[admin/settings/post:unread.min-track-last]]</label>
 				<input id="bookmarkthreshold" type="text" class="form-control" value="5" data-field="bookmarkThreshold">
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:recent]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:recent]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="recentMaxTopics">[[admin/settings/post:recent.max-topics]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="recentMaxTopics">[[admin/settings/post:recent.max-topics]]</label>
 				<input id="recentMaxTopics" type="text" class="form-control" value="200" data-field="recentMaxTopics">
 			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="disableRecentCategoryFilter">
-					<span class="mdl-switch__label"><strong>[[admin/settings/post:recent.categoryFilter.disable]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="disableRecentCategoryFilter">
+				<label class="form-check-label">[[admin/settings/post:recent.categoryFilter.disable]]</label>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:signature]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:signature]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="disableSignatures">
-					<span class="mdl-switch__label"><strong>[[admin/settings/post:signature.disable]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="signatures:disableLinks">
-					<span class="mdl-switch__label"><strong>[[admin/settings/post:signature.no-links]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="signatures:disableImages">
-					<span class="mdl-switch__label"><strong>[[admin/settings/post:signature.no-images]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="signatures:hideDuplicates">
-					<span class="mdl-switch__label"><strong>[[admin/settings/post:signature.hide-duplicates]]</strong></span>
-				</label>
-			</div>
-			<div class="form-group">
-				<label for="maximumSignatureLength">[[admin/settings/post:signature.max-length]]</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="disableSignatures">
+				<label class="form-check-label">[[admin/settings/post:signature.disable]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="signatures:disableLinks">
+				<label class="form-check-label">[[admin/settings/post:signature.no-links]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="signatures:disableImages">
+				<label class="form-check-label">[[admin/settings/post:signature.no-images]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="signatures:hideDuplicates">
+				<label class="form-check-label">[[admin/settings/post:signature.hide-duplicates]]</label>
+			</div>
+			<div>
+				<label class="form-label" for="maximumSignatureLength">[[admin/settings/post:signature.max-length]]</label>
 				<input id="maximumSignatureLength" type="text" class="form-control" value="255" data-field="maximumSignatureLength">
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:composer]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:composer]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
 			<p>
 				[[admin/settings/post:composer-help]]
 			</p>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="composer:showHelpTab">
-					<input class="mdl-switch__input" type="checkbox" id="composer:showHelpTab" data-field="composer:showHelpTab" checked />
-					<span class="mdl-switch__label">[[admin/settings/post:composer.show-help]]</span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="composer:allowPluginHelp">
-					<input class="mdl-switch__input" type="checkbox" id="composer:allowPluginHelp" data-field="composer:allowPluginHelp" checked />
-					<span class="mdl-switch__label">[[admin/settings/post:composer.enable-plugin-help]]</span>
-				</label>
-			</div>
-			<div class="form-group">
-				<label for="composer:customHelpText">[[admin/settings/post:composer.custom-help]]</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" id="composer:showHelpTab" data-field="composer:showHelpTab" checked />
+				<label class="form-check-label" for="composer:showHelpTab">[[admin/settings/post:composer.show-help]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" id="composer:allowPluginHelp" data-field="composer:allowPluginHelp" checked />
+				<label class="form-check-label" for="composer:allowPluginHelp">[[admin/settings/post:composer.enable-plugin-help]]</label>
+			</div>
+			<div class="mb-3">
+				<label class="form-label" for="composer:customHelpText">[[admin/settings/post:composer.custom-help]]</label>
 				<textarea class="form-control" id="composer:customHelpText" data-field="composer:customHelpText" rows="5"></textarea>
 			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="enablePostHistory">
-					<input class="mdl-switch__input" type="checkbox" id="enablePostHistory" data-field="enablePostHistory" checked />
-					<span class="mdl-switch__label">[[admin/settings/post:enable-post-history]]</span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" id="enablePostHistory" data-field="enablePostHistory" checked />
+				<label class="form-check-label" for="enablePostHistory">[[admin/settings/post:enable-post-history]]</label>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:backlinks]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:backlinks]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="topicBacklinks">
-					<span class="mdl-switch__label"><strong>[[admin/settings/post:backlinks.enabled]]</strong></span>
-					<p class="help-block">[[admin/settings/post:backlinks.help]]</p>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="topicBacklinks">
+				<label class="form-check-label">[[admin/settings/post:backlinks.enabled]]</label>
+				<p class="form-text">[[admin/settings/post:backlinks.help]]</p>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/post:ip-tracking]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/post:ip-tracking]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="trackIpPerPost">
-					<span class="mdl-switch__label"><strong>[[admin/settings/post:ip-tracking.each-post]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="trackIpPerPost">
+				<label class="form-check-label">[[admin/settings/post:ip-tracking.each-post]]</label>
 			</div>
 		</form>
 	</div>
diff --git a/src/views/admin/settings/reputation.tpl b/src/views/admin/settings/reputation.tpl
index c9ac7d3acc..6ab7bff608 100644
--- a/src/views/admin/settings/reputation.tpl
+++ b/src/views/admin/settings/reputation.tpl
@@ -1,133 +1,125 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/reputation:reputation]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/reputation:reputation]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input type="checkbox" class="mdl-switch__input" data-field="reputation:disabled">
-					<span class="mdl-switch__label"><strong>[[admin/settings/reputation:disable]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input type="checkbox" class="mdl-switch__input" data-field="downvote:disabled">
-					<span class="mdl-switch__label"><strong>[[admin/settings/reputation:disable-down-voting]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input type="checkbox" class="mdl-switch__input" data-field="votesArePublic">
-					<span class="mdl-switch__label"><strong>[[admin/settings/reputation:votes-are-public]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input type="checkbox" class="form-check-input" data-field="reputation:disabled">
+				<label class="form-check-label">[[admin/settings/reputation:disable]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input type="checkbox" class="form-check-input" data-field="downvote:disabled">
+				<label class="form-check-label">[[admin/settings/reputation:disable-down-voting]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input type="checkbox" class="form-check-input" data-field="votesArePublic">
+				<label class="form-check-label">[[admin/settings/reputation:votes-are-public]]</label>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/reputation:thresholds]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/reputation:thresholds]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="min:rep:chat">[[admin/settings/reputation:min-rep-chat]]</label>
-				<input type="text" class="form-control" placeholder="0" data-field="min:rep:chat" id="min:rep:chat">
+			<div class="mb-3">
+				<label class="form-label" for="min:rep:chat">[[admin/settings/reputation:min-rep-chat]]</label>
+				<input type="number" min="0" class="form-control" placeholder="0" data-field="min:rep:chat" id="min:rep:chat">
 			</div>
-			<div class="form-group">
-				<label for="min:rep:upvote">[[admin/settings/reputation:min-rep-upvote]]</label>
-				<input type="text" class="form-control" placeholder="0" data-field="min:rep:upvote" id="min:rep:upvote">
+			<div class="mb-3">
+				<label class="form-label" for="min:rep:upvote">[[admin/settings/reputation:min-rep-upvote]]</label>
+				<input type="number" min="0" class="form-control" placeholder="0" data-field="min:rep:upvote" id="min:rep:upvote">
 			</div>
-			<div class="form-group">
-				<label for="upvotesPerDay">[[admin/settings/reputation:upvotes-per-day]]</label>
-				<input type="text" class="form-control" placeholder="10" data-field="upvotesPerDay" id="upvotesPerDay">
+			<div class="mb-3">
+				<label class="form-label" for="upvotesPerDay">[[admin/settings/reputation:upvotes-per-day]]</label>
+				<input type="number" min="0" class="form-control" placeholder="10" data-field="upvotesPerDay" id="upvotesPerDay">
 			</div>
-			<div class="form-group">
-				<label for="upvotesPerUserPerDay">[[admin/settings/reputation:upvotes-per-user-per-day]]</label>
-				<input type="text" class="form-control" placeholder="3" data-field="upvotesPerUserPerDay" id="upvotesPerUserPerDay">
+			<div class="mb-3">
+				<label class="form-label" for="upvotesPerUserPerDay">[[admin/settings/reputation:upvotes-per-user-per-day]]</label>
+				<input type="number" min="0" class="form-control" placeholder="3" data-field="upvotesPerUserPerDay" id="upvotesPerUserPerDay">
 			</div>
 
-			<div class="form-group">
-				<label for="min:rep:downvote">[[admin/settings/reputation:min-rep-downvote]]</label>
-				<input type="text" class="form-control" placeholder="0" data-field="min:rep:downvote" id="min:rep:downvote">
+			<div class="mb-3">
+				<label class="form-label" for="min:rep:downvote">[[admin/settings/reputation:min-rep-downvote]]</label>
+				<input type="number" min="0" class="form-control" placeholder="0" data-field="min:rep:downvote" id="min:rep:downvote">
 			</div>
-			<div class="form-group">
-				<label for="downvotesPerDay">[[admin/settings/reputation:downvotes-per-day]]</label>
-				<input type="text" class="form-control" placeholder="10" data-field="downvotesPerDay" id="downvotesPerDay">
+			<div class="mb-3">
+				<label class="form-label" for="downvotesPerDay">[[admin/settings/reputation:downvotes-per-day]]</label>
+				<input type="number" min="0" class="form-control" placeholder="10" data-field="downvotesPerDay" id="downvotesPerDay">
 			</div>
-			<div class="form-group">
-				<label for="downvotesPerUserPerDay">[[admin/settings/reputation:downvotes-per-user-per-day]]</label>
-				<input type="text" class="form-control" placeholder="3" data-field="downvotesPerUserPerDay" id="downvotesPerUserPerDay">
+			<div class="mb-3">
+				<label class="form-label" for="downvotesPerUserPerDay">[[admin/settings/reputation:downvotes-per-user-per-day]]</label>
+				<input type="number" min="0" class="form-control" placeholder="3" data-field="downvotesPerUserPerDay" id="downvotesPerUserPerDay">
 			</div>
-			<div class="form-group">
-				<label for="min:rep:flag">[[admin/settings/reputation:min-rep-flag]]</label>
-				<input type="text" class="form-control" placeholder="0" data-field="min:rep:flag" id="min:rep:flag">
+			<div class="mb-3">
+				<label class="form-label" for="min:rep:flag">[[admin/settings/reputation:min-rep-flag]]</label>
+				<input type="number" min="0" class="form-control" placeholder="0" data-field="min:rep:flag" id="min:rep:flag">
 			</div>
-			<div class="form-group">
-				<label for="min:rep:website">[[admin/settings/reputation:min-rep-website]]</label>
-				<input type="text" class="form-control" placeholder="0" data-field="min:rep:website" id="min:rep:website">
+			<div class="mb-3">
+				<label class="form-label" for="min:rep:website">[[admin/settings/reputation:min-rep-website]]</label>
+				<input type="number" min="0" class="form-control" placeholder="0" data-field="min:rep:website" id="min:rep:website">
 			</div>
-			<div class="form-group">
-				<label for="min:rep:aboutme">[[admin/settings/reputation:min-rep-aboutme]]</label>
-				<input type="text" class="form-control" placeholder="0" data-field="min:rep:aboutme" id="min:rep:aboutme">
+			<div class="mb-3">
+				<label class="form-label" for="min:rep:aboutme">[[admin/settings/reputation:min-rep-aboutme]]</label>
+				<input type="number" min="0" class="form-control" placeholder="0" data-field="min:rep:aboutme" id="min:rep:aboutme">
 			</div>
-			<div class="form-group">
-				<label for="min:rep:signature">[[admin/settings/reputation:min-rep-signature]]</label>
-				<input type="text" class="form-control" placeholder="0" data-field="min:rep:signature" id="min:rep:signature">
+			<div class="mb-3">
+				<label class="form-label" for="min:rep:signature">[[admin/settings/reputation:min-rep-signature]]</label>
+				<input type="number" min="0" class="form-control" placeholder="0" data-field="min:rep:signature" id="min:rep:signature">
 			</div>
-			<div class="form-group">
-				<label for="min:rep:profile-picture">[[admin/settings/reputation:min-rep-profile-picture]]</label>
-				<input type="text" class="form-control" placeholder="0" data-field="min:rep:profile-picture" id="min:rep:profile-picture">
+			<div class="mb-3">
+				<label class="form-label" for="min:rep:profile-picture">[[admin/settings/reputation:min-rep-profile-picture]]</label>
+				<input type="number" min="0" class="form-control" placeholder="0" data-field="min:rep:profile-picture" id="min:rep:profile-picture">
 			</div>
-			<div class="form-group">
-				<label for="min:rep:cover-picture">[[admin/settings/reputation:min-rep-cover-picture]]</label>
-				<input type="text" class="form-control" placeholder="0" data-field="min:rep:cover-picture" id="min:rep:cover-picture">
+			<div class="mb-3">
+				<label class="form-label" for="min:rep:cover-picture">[[admin/settings/reputation:min-rep-cover-picture]]</label>
+				<input type="number" min="0" class="form-control" placeholder="0" data-field="min:rep:cover-picture" id="min:rep:cover-picture">
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/reputation:flags]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/reputation:flags]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="flags:limitPerTarget">[[admin/settings/reputation:flags.limit-per-target]]</label>
-				<input type="text" class="form-control" placeholder="[[admin/settings/reputation:flags.limit-per-target-placeholder]]" data-field="flags:limitPerTarget" id="flags:limitPerTarget">
-				<p class="help-block">
+			<div class="mb-3">
+				<label class="form-label" for="flags:limitPerTarget">[[admin/settings/reputation:flags.limit-per-target]]</label>
+				<input type="number" min="0" class="form-control" placeholder="[[admin/settings/reputation:flags.limit-per-target-placeholder]]" data-field="flags:limitPerTarget" id="flags:limitPerTarget">
+				<p class="form-text">
 					[[admin/settings/reputation:flags.limit-per-target-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="flags:autoFlagOnDownvoteThreshold">[[admin/settings/reputation:flags.auto-flag-on-downvote-threshold]]</label>
-				<input type="text" class="form-control" placeholder="0" data-field="flags:autoFlagOnDownvoteThreshold" id="flags:autoFlagOnDownvoteThreshold">
+			<div class="mb-3">
+				<label class="form-label" for="flags:autoFlagOnDownvoteThreshold">[[admin/settings/reputation:flags.auto-flag-on-downvote-threshold]]</label>
+				<input type="number" min="0" class="form-control" placeholder="0" data-field="flags:autoFlagOnDownvoteThreshold" id="flags:autoFlagOnDownvoteThreshold">
 			</div>
 			<div class="row">
 				<div class="col-sm-6">
-					<div class="form-group">
-						<label for="flags:actionOnResolve">[[admin/settings/reputation:flags.action-on-resolve]]</label>
-						<select class="form-control" data-field="flags:actionOnResolve" name="flags:actionOnResolve" id="flags:actionOnResolve">
+					<div class="mb-3">
+						<label class="form-label" for="flags:actionOnResolve">[[admin/settings/reputation:flags.action-on-resolve]]</label>
+						<select class="form-select" data-field="flags:actionOnResolve" name="flags:actionOnResolve" id="flags:actionOnResolve">
 							<option value="">[[admin/settings/reputation:flags.action.nothing]]</option>
 							<option value="rescind">[[admin/settings/reputation:flags.action.rescind]]</option>
 						</select>
 					</div>
 				</div>
 				<div class="col-sm-6">
-					<div class="form-group">
-						<label for="flags:actionOnReject">[[admin/settings/reputation:flags.action-on-reject]]</label>
-						<select class="form-control" data-field="flags:actionOnReject" name="flags:actionOnReject" id="flags:actionOnReject">
+					<div class="mb-3">
+						<label class="form-label" for="flags:actionOnReject">[[admin/settings/reputation:flags.action-on-reject]]</label>
+						<select class="form-select" data-field="flags:actionOnReject" name="flags:actionOnReject" id="flags:actionOnReject">
 							<option value="">[[admin/settings/reputation:flags.action.nothing]]</option>
 							<option value="rescind">[[admin/settings/reputation:flags.action.rescind]]</option>
 						</select>
 					</div>
 				</div>
 			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input type="checkbox" class="mdl-switch__input" data-field="flags:autoResolveOnBan">
-					<span class="mdl-switch__label"><strong>[[admin/settings/reputation:flags.auto-resolve-on-ban]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input type="checkbox" class="form-check-input" data-field="flags:autoResolveOnBan">
+				<label class="form-check-label">[[admin/settings/reputation:flags.auto-resolve-on-ban]]</label>
 			</div>
 		</form>
 	</div>
diff --git a/src/views/admin/settings/social.tpl b/src/views/admin/settings/social.tpl
index bcb41d52a8..1bc946d33e 100644
--- a/src/views/admin/settings/social.tpl
+++ b/src/views/admin/settings/social.tpl
@@ -1,24 +1,22 @@
 <div class="social">
 	<form role="form">
 		<div class="row">
-			<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/social:post-sharing]]</div>
-			<div class="col-sm-10 col-xs-12">
+			<div class="col-sm-2 col-12 settings-header">[[admin/settings/social:post-sharing]]</div>
+			<div class="col-sm-10 col-12">
 				<div class="form-group" id="postSharingNetworks">
-					<!-- BEGIN posts -->
-					<div class="checkbox">
-						<label for="{posts.id}" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-							<input type="checkbox" class="mdl-switch__input" id="{posts.id}" data-field="{posts.id}" name="{posts.id}" <!-- IF posts.activated -->checked<!-- ENDIF posts.activated --> />
-							<span class="mdl-switch__label"><i class="fa {posts.class}"></i> {posts.name}</span>
+					{{{ each posts }}}
+					<div class="form-check form-switch mb-3">
+						<input type="checkbox" class="form-check-input" id="{posts.id}" data-field="{posts.id}" name="{posts.id}" {{{ if posts.activated }}}checked{{{ end }}} />
+						<label for="{posts.id}" class="form-check-label">
+							<i class="fa {posts.class}"></i> {posts.name}
 						</label>
 					</div>
-					<!-- END posts -->
-					<small>[[admin/settings/social:info-plugins-additional]]</small>
+					{{{ end }}}
+					<p class="form-text">[[admin/settings/social:info-plugins-additional]]</p>
 				</div>
 			</div>
 		</div>
 	</form>
 </div>
 
-<button id="save" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
-	<i class="material-icons">save</i>
-</button>
\ No newline at end of file
+<!-- IMPORT admin/partials/save_button.tpl -->
\ No newline at end of file
diff --git a/src/views/admin/settings/sockets.tpl b/src/views/admin/settings/sockets.tpl
index a5810276b5..6ee7a2bf1f 100644
--- a/src/views/admin/settings/sockets.tpl
+++ b/src/views/admin/settings/sockets.tpl
@@ -1,8 +1,8 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
 <div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/sockets:reconnection]]</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/sockets:reconnection]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
 			<div class="form-group">
 				<label for="maxReconnectionAttempts">[[admin/settings/sockets:max-attempts]]</label>
diff --git a/src/views/admin/settings/tags.tpl b/src/views/admin/settings/tags.tpl
index ff10590ec4..25e8f4f25b 100644
--- a/src/views/admin/settings/tags.tpl
+++ b/src/views/admin/settings/tags.tpl
@@ -1,36 +1,36 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/tags:tag]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/tags:tag]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
+			<div class="mb-3">
 				<a class="btn btn-primary" href="{config.relative_path}/admin/manage/tags">
 					<i class="fa fa-external-link"></i>
 					[[admin/settings/tags:link-to-manage]]
 				</a>
 			</div>
-			<div class="form-group">
-				<label for="systemTags">[[admin/settings/tags:system-tags]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="systemTags">[[admin/settings/tags:system-tags]]</label>
 				<input id="systemTags" type="text" class="form-control" value="" data-field="systemTags" data-field-type="tagsinput" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/tags:system-tags-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="minimumTagsPerTopics">[[admin/settings/tags:min-per-topic]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="minimumTagsPerTopics">[[admin/settings/tags:min-per-topic]]</label>
 				<input id="minimumTagsPerTopics" type="text" class="form-control" value="0" data-field="minimumTagsPerTopic">
 			</div>
-			<div class="form-group">
-				<label for="maximumTagsPerTopics">[[admin/settings/tags:max-per-topic]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maximumTagsPerTopics">[[admin/settings/tags:max-per-topic]]</label>
 				<input id="maximumTagsPerTopics" type="text" class="form-control" value="5" data-field="maximumTagsPerTopic">
 			</div>
-			<div class="form-group">
-				<label for="minimumTagLength">[[admin/settings/tags:min-length]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="minimumTagLength">[[admin/settings/tags:min-length]]</label>
 				<input id="minimumTagLength" type="text" class="form-control" value="3" data-field="minimumTagLength">
 			</div>
-			<div class="form-group">
-				<label for="maximumTagLength">[[admin/settings/tags:max-length]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maximumTagLength">[[admin/settings/tags:max-length]]</label>
 				<input id="maximumTagLength" type="text" class="form-control" value="15" data-field="maximumTagLength">
 			</div>
 		</form>
@@ -38,11 +38,11 @@
 </div>
 
 <div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/tags:related-topics]]</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/tags:related-topics]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="maximumRelatedTopics">[[admin/settings/tags:max-related-topics]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maximumRelatedTopics">[[admin/settings/tags:max-related-topics]]</label>
 				<input id="maximumRelatedTopics" type="text" class="form-control" value="5" data-field="maximumRelatedTopics">
 			</div>
 		</form>
diff --git a/src/views/admin/settings/uploads.tpl b/src/views/admin/settings/uploads.tpl
index 820d6943dc..aa9bd853ce 100644
--- a/src/views/admin/settings/uploads.tpl
+++ b/src/views/admin/settings/uploads.tpl
@@ -1,115 +1,109 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">
 		[[admin/settings/uploads:posts]]
 	</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="stripEXIFData">
-					<span class="mdl-switch__label"><strong>[[admin/settings/uploads:strip-exif-data]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="stripEXIFData">
+				<label class="form-check-label">[[admin/settings/uploads:strip-exif-data]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="privateUploads">
-					<span class="mdl-switch__label"><strong>[[admin/settings/uploads:private]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="privateUploads">
+				<label class="form-check-label">[[admin/settings/uploads:private]]</label>
 			</div>
 
-			<div class="form-group">
-				<label for="privateUploadsExtensions">[[admin/settings/uploads:private-extensions]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="privateUploadsExtensions">[[admin/settings/uploads:private-extensions]]</label>
 				<input id="privateUploadsExtensions" type="text" class="form-control" value="" data-field="privateUploadsExtensions" placeholder="">
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/uploads:private-uploads-extensions-help]]
 				</p>
 			</div>
 
 			<div class="row">
-				<div class="col-xs-6">
-					<div class="form-group">
-						<label for="resizeImageWidthThreshold">[[admin/settings/uploads:resize-image-width-threshold]]</label>
+				<div class="col-6">
+					<div class="mb-3">
+						<label class="form-label" for="resizeImageWidthThreshold">[[admin/settings/uploads:resize-image-width-threshold]]</label>
 						<input id="resizeImageWidthThreshold" type="text" class="form-control" value="2000" data-field="resizeImageWidthThreshold" placeholder="2000">
-						<p class="help-block">
+						<p class="form-text">
 							[[admin/settings/uploads:resize-image-width-threshold-help]]
 						</p>
 					</div>
 				</div>
 
-				<div class="col-xs-6">
-					<div class="form-group">
-						<label for="resizeImageWidth">[[admin/settings/uploads:resize-image-width]]</label>
+				<div class="col-6">
+					<div class="mb-3">
+						<label class="form-label" for="resizeImageWidth">[[admin/settings/uploads:resize-image-width]]</label>
 						<input id="resizeImageWidth" type="text" class="form-control" value="760" data-field="resizeImageWidth" placeholder="760">
-						<p class="help-block">
+						<p class="form-text">
 							[[admin/settings/uploads:resize-image-width-help]]
 						</p>
 					</div>
 				</div>
 			</div>
 
-			<div class="form-group">
-				<label for="resizeImageQuality">[[admin/settings/uploads:resize-image-quality]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="resizeImageQuality">[[admin/settings/uploads:resize-image-quality]]</label>
 				<input id="resizeImageQuality" type="text" class="form-control" value="60" data-field="resizeImageQuality" placeholder="60">
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/uploads:resize-image-quality-help]]
 				</p>
 			</div>
 
-			<div class="form-group">
-				<label for="maximumFileSize">[[admin/settings/uploads:max-file-size]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maximumFileSize">[[admin/settings/uploads:max-file-size]]</label>
 				<input id="maximumFileSize" type="text" class="form-control" value="2048" data-field="maximumFileSize">
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/uploads:max-file-size-help]]
 				</p>
 			</div>
 
-			<div class="form-group">
-				<label for="rejectImageWidth">[[admin/settings/uploads:reject-image-width]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="rejectImageWidth">[[admin/settings/uploads:reject-image-width]]</label>
 				<input id="rejectImageWidth" type="text" class="form-control" value="5000" data-field="rejectImageWidth" placeholder="5000">
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/uploads:reject-image-width-help]]
 				</p>
 			</div>
 
-			<div class="form-group">
-				<label for="rejectImageHeight">[[admin/settings/uploads:reject-image-height]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="rejectImageHeight">[[admin/settings/uploads:reject-image-height]]</label>
 				<input id="rejectImageHeight" type="text" class="form-control" value="5000" data-field="rejectImageHeight" placeholder="5000">
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/uploads:reject-image-height-help]]
 				</p>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="allowTopicsThumbnail">
-					<span class="mdl-switch__label"><strong>[[admin/settings/uploads:allow-topic-thumbnails]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="allowTopicsThumbnail">
+				<label class="form-check-label">[[admin/settings/uploads:allow-topic-thumbnails]]</label>
 			</div>
 
-			<div class="form-group">
-				<label for="topicThumbSize">[[admin/settings/uploads:topic-thumb-size]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="topicThumbSize">[[admin/settings/uploads:topic-thumb-size]]</label>
 				<input id="topicThumbSize" type="text" class="form-control" value="120" data-field="topicThumbSize">
 			</div>
 
-			<div class="form-group">
-				<label for="allowedFileExtensions">[[admin/settings/uploads:allowed-file-extensions]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="allowedFileExtensions">[[admin/settings/uploads:allowed-file-extensions]]</label>
 				<input id="allowedFileExtensions" type="text" class="form-control" value="" data-field="allowedFileExtensions" data-field-type="tagsinput" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/uploads:allowed-file-extensions-help]]
 				</p>
 			</div>
 
-			<div class="form-group">
-				<label for="uploadRateLimitThreshold">[[admin/settings/uploads:upload-limit-threshold]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="uploadRateLimitThreshold">[[admin/settings/uploads:upload-limit-threshold]]</label>
 				<div id="uploadRateLimitThreshold" class="row">
-					<div class="col-xs-2">
+					<div class="col-2">
 						<input type="text" class="form-control" data-field="uploadRateLimitThreshold" />
 					</div>
-					<div class="col-xs-2">
-						<select class="form-control" data-field="uploadRateLimitCooldown">
+					<div class="col-3">
+						<select class="form-select" data-field="uploadRateLimitCooldown">
 							<option value="60">[[admin/settings/uploads:upload-limit-threshold-per-minute, 1]]</option>
 							<option value="300">[[admin/settings/uploads:upload-limit-threshold-per-minutes, 5]]</option>
 							<option value="900">[[admin/settings/uploads:upload-limit-threshold-per-minutes, 15]]</option>
@@ -122,101 +116,91 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">
 		[[admin/settings/uploads:orphans]]
 	</div>
-	<div class="col-sm-10 col-xs-12">
-		<div class="checkbox">
-			<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-				<input class="mdl-switch__input" type="checkbox" data-field="preserveOrphanedUploads">
-				<span class="mdl-switch__label"><strong>[[admin/settings/uploads:preserve-orphaned-uploads]]</strong></span>
-			</label>
+	<div class="col-sm-10 col-12">
+		<div class="form-check form-switch mb-3">
+			<input class="form-check-input" type="checkbox" data-field="preserveOrphanedUploads">
+			<label class="form-check-label">[[admin/settings/uploads:preserve-orphaned-uploads]]</label>
 		</div>
 
 		<div class="row">
-			<div class="form-group col-sm-6">
-				<label for="orphanExpiryDays">[[admin/settings/uploads:orphanExpiryDays]]</label>
+			<div class="mb-3 col-sm-6">
+				<label class="form-label" for="orphanExpiryDays">[[admin/settings/uploads:orphanExpiryDays]]</label>
 				<input id="orphanExpiryDays" type="number" min="0" placeholder="0" class="form-control" data-field="orphanExpiryDays" />
-				<p class="help-block">[[admin/settings/uploads:orphanExpiryDays-help]]</p>
+				<p class="form-text">[[admin/settings/uploads:orphanExpiryDays-help]]</p>
 			</div>
 		</div>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">
 		[[admin/settings/uploads:profile-avatars]]
 	</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="allowProfileImageUploads">
-					<span class="mdl-switch__label"><strong>[[admin/settings/uploads:allow-profile-image-uploads]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="allowProfileImageUploads">
+				<label class="form-check-label">[[admin/settings/uploads:allow-profile-image-uploads]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="profile:convertProfileImageToPNG">
-					<span class="mdl-switch__label"><strong>[[admin/settings/uploads:convert-profile-image-png]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="profile:convertProfileImageToPNG">
+				<label class="form-check-label">[[admin/settings/uploads:convert-profile-image-png]]</label>
 			</div>
 
-			<div class="form-group">
+			<div class="mb-3">
 				<label>[[admin/settings/uploads:default-avatar]]</label>
 				<div class="input-group">
 					<input id="defaultAvatar" type="text" class="form-control" placeholder="A custom image to use instead of user icons" data-field="defaultAvatar" />
-					<span class="input-group-btn">
-						<input data-action="upload" data-target="defaultAvatar" data-route="{config.relative_path}/api/admin/uploadDefaultAvatar" type="button" class="btn btn-default" value="[[admin/settings/uploads:upload]]" />
-					</span>
+					<input data-action="upload" data-target="defaultAvatar" data-route="{config.relative_path}/api/admin/uploadDefaultAvatar" type="button" class="btn btn-outline-secondary" value="[[admin/settings/uploads:upload]]" />
 				</div>
 			</div>
 
-			<div class="form-group">
-				<label for="profileImageDimension">[[admin/settings/uploads:profile-image-dimension]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="profileImageDimension">[[admin/settings/uploads:profile-image-dimension]]</label>
 				<input id="profileImageDimension" type="text" class="form-control" data-field="profileImageDimension" placeholder="200" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/uploads:profile-image-dimension-help]]
 				</p>
 			</div>
 
-			<div class="form-group">
-				<label for="maximumProfileImageSize">[[admin/settings/uploads:max-profile-image-size]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maximumProfileImageSize">[[admin/settings/uploads:max-profile-image-size]]</label>
 				<input id="maximumProfileImageSize" type="text" class="form-control" placeholder="Maximum size of uploaded user images in kibibytes" data-field="maximumProfileImageSize" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/uploads:max-profile-image-size-help]]
 				</p>
 			</div>
 
-			<div class="form-group">
-				<label for="maximumCoverImageSize">[[admin/settings/uploads:max-cover-image-size]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maximumCoverImageSize">[[admin/settings/uploads:max-cover-image-size]]</label>
 				<input id="maximumCoverImageSize" type="text" class="form-control" placeholder="Maximum size of uploaded cover images in kibibytes" data-field="maximumCoverImageSize" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/uploads:max-cover-image-size-help]]
 				</p>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="profile:keepAllUserImages">
-					<span class="mdl-switch__label"><strong>[[admin/settings/uploads:keep-all-user-images]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="profile:keepAllUserImages">
+				<label class="form-check-label">[[admin/settings/uploads:keep-all-user-images]]</label>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/uploads:profile-covers]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/uploads:profile-covers]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<label for="profile:defaultCovers"><strong>[[admin/settings/uploads:default-covers]]</strong></label>
-			<p class="help-block">
+			<label class="form-label" for="profile:defaultCovers"><strong>[[admin/settings/uploads:default-covers]]</strong></label>
+			<p class="form-text">
 				[[admin/settings/uploads:default-covers-help]]
 			</p>
-			<input type="text" class="form-control input-lg" id="profile:defaultCovers" data-field="profile:defaultCovers" data-field-type="tagsinput" value="/assets/images/cover-default.png" placeholder="https://example.com/group1.png, https://example.com/group2.png" />
+			<input type="text" class="form-control form-control-lg" id="profile:defaultCovers" data-field="profile:defaultCovers" data-field-type="tagsinput" value="/assets/images/cover-default.png" placeholder="https://example.com/group1.png, https://example.com/group2.png" />
 		</form>
 	</div>
 </div>
diff --git a/src/views/admin/settings/user.tpl b/src/views/admin/settings/user.tpl
index 8a04d13524..3ab0c0531e 100644
--- a/src/views/admin/settings/user.tpl
+++ b/src/views/admin/settings/user.tpl
@@ -1,12 +1,12 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/user:authentication]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/user:authentication]]</div>
+	<div class="col-sm-10 col-12">
 		<form role="form">
-			<div class="form-group">
-				<label for="allowLoginWith">[[admin/settings/user:allow-login-with]]</label>
-				<select id="allowLoginWith" class="form-control" data-field="allowLoginWith">
+			<div class="mb-3">
+				<label class="form-label" for="allowLoginWith">[[admin/settings/user:allow-login-with]]</label>
+				<select id="allowLoginWith" class="form-select" data-field="allowLoginWith">
 					<option value="username-email">[[admin/settings/user:allow-login-with.username-email]]</option>
 					<option value="username">[[admin/settings/user:allow-login-with.username]]</option>
 				</select>
@@ -15,219 +15,207 @@
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/user:account-settings]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/user:account-settings]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="gdpr_enabled">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:gdpr_enabled]]</strong></span>
-				</label>
-				<p class="help-block">[[admin/settings/user:gdpr_enabled_help]]</p>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="username:disableEdit">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:disable-username-changes]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="email:disableEdit">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:disable-email-changes]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="password:disableEdit">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:disable-password-changes]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="allowAccountDelete" checked>
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:allow-account-deletion]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="hideFullname">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:hide-fullname]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="hideEmail">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:hide-email]]</strong></span>
-				</label>
-			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="showFullnameAsDisplayName">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:show-fullname-as-displayname]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="gdpr_enabled">
+				<label class="form-check-label">[[admin/settings/user:gdpr_enabled]]</label>
+				<p class="form-text">[[admin/settings/user:gdpr_enabled_help]]</p>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="username:disableEdit">
+				<label class="form-check-label">[[admin/settings/user:disable-username-changes]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="email:disableEdit">
+				<label class="form-check-label">[[admin/settings/user:disable-email-changes]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="password:disableEdit">
+				<label class="form-check-label">[[admin/settings/user:disable-password-changes]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="allowAccountDelete" checked>
+				<label class="form-check-label">[[admin/settings/user:allow-account-deletion]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="hideFullname">
+				<label class="form-check-label">[[admin/settings/user:hide-fullname]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="hideEmail">
+				<label class="form-check-label">[[admin/settings/user:hide-email]]</label>
+			</div>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="showFullnameAsDisplayName">
+				<label class="form-check-label">[[admin/settings/user:show-fullname-as-displayname]]</label>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/user:themes]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/user:themes]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="disableCustomUserSkins">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:disable-user-skins]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="disableCustomUserSkins">
+				<label class="form-check-label">[[admin/settings/user:disable-user-skins]]</label>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/user:account-protection]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/user:account-protection]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="adminReloginDuration">[[admin/settings/user:admin-relogin-duration]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="adminReloginDuration">[[admin/settings/user:admin-relogin-duration]]</label>
 				<input id="adminReloginDuration" type="text" class="form-control" data-field="adminReloginDuration" placeholder="60" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/user:admin-relogin-duration-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="loginAttempts">[[admin/settings/user:login-attempts]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="loginAttempts">[[admin/settings/user:login-attempts]]</label>
 				<input id="loginAttempts" type="text" class="form-control" data-field="loginAttempts" placeholder="5" />
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/user:login-attempts-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="lockoutDuration">[[admin/settings/user:lockout-duration]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="lockoutDuration">[[admin/settings/user:lockout-duration]]</label>
 				<input id="lockoutDuration" type="text" class="form-control" data-field="lockoutDuration" placeholder="60" />
 			</div>
-			<div class="form-group">
-				<label for="passwordExpiryDays">[[admin/settings/user:password-expiry-days]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="passwordExpiryDays">[[admin/settings/user:password-expiry-days]]</label>
 				<input id="passwordExpiryDays" type="text" class="form-control" data-field="passwordExpiryDays" placeholder="0" />
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">
 		[[admin/settings/user:session-time]]
 	</div>
-	<div class="col-sm-10 col-xs-12">
+	<div class="col-sm-10 col-12">
 		<form>
 			<div class="row">
 				<div class="col-sm-6">
-					<div class="form-group">
-						<label for="loginDays">[[admin/settings/user:session-time-days]]</label>
-						<input id="loginDays" type="text" class="form-control" data-field="loginDays" placeholder="[[admin/settings/user:session-time-days]]" />
+					<div class="form-group mb-3">
+						<label class="form-label" for="loginDays">[[admin/settings/user:session-time-days]]</label>
+						<input id="loginDays" type="number" min="0" class="form-control" data-field="loginDays" placeholder="[[admin/settings/user:session-time-days]]" />
 					</div>
 				</div>
 				<div class="col-sm-6">
-					<div class="form-group">
-						<label for="loginSeconds">[[admin/settings/user:session-time-seconds]]</label>
-						<input id="loginSeconds" type="text" class="form-control" data-field="loginSeconds" placeholder="[[admin/settings/user:session-time-seconds]]" />
+					<div class="form-group mb-3">
+						<label class="form-label" for="loginSeconds">[[admin/settings/user:session-time-seconds]]</label>
+						<input id="loginSeconds" type="number" min="0" step="60" class="form-control" data-field="loginSeconds" placeholder="[[admin/settings/user:session-time-seconds]]" />
 					</div>
 				</div>
-				<div class="col-xs-12">
-					<p class="help-block">
+			</div>
+			<div class="row">
+				<div class="col-12">
+					<p class="form-text">
 						[[admin/settings/user:session-time-help]]
 					</p>
 				</div>
 			</div>
-			<div class="form-group">
-				<label for="onlineCutoff">[[admin/settings/user:online-cutoff]]</label>
-				<input id="onlineCutoff" type="text" class="form-control" data-field="onlineCutoff">
-				<p class="help-block">[[admin/settings/user:online-cutoff-help]]</p>
+
+			<div class="form-group mb-3">
+				<label class="form-label" for="sessionDuration">[[admin/settings/user:session-duration]]</label>
+				<input id="sessionDuration" type="number" step="60" min="0" class="form-control" data-field="sessionDuration">
+				<p class="form-text">[[admin/settings/user:session-duration-help]]</p>
+			</div>
+
+			<div class="form-group mb-3">
+				<label class="form-label" for="onlineCutoff">[[admin/settings/user:online-cutoff]]</label>
+				<input id="onlineCutoff" type="number" min="0" class="form-control" data-field="onlineCutoff">
+				<p class="form-text">[[admin/settings/user:online-cutoff-help]]</p>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/user:registration]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/user:registration]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="registrationType">[[admin/settings/user:registration-type]]</label>
-				<select id="registrationType" class="form-control" data-field="registrationType">
+			<div class="mb-3">
+				<label class="form-label" for="registrationType">[[admin/settings/user:registration-type]]</label>
+				<select id="registrationType" class="form-select" data-field="registrationType">
 					<option value="normal">[[admin/settings/user:registration-type.normal]]</option>
 					<option value="invite-only">[[admin/settings/user:registration-type.invite-only]]</option>
 					<option value="admin-invite-only">[[admin/settings/user:registration-type.admin-invite-only]]</option>
 					<option value="disabled">[[admin/settings/user:registration-type.disabled]]</option>
 				</select>
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/user:registration-type.help, {config.relative_path}]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="registrationApprovalType">[[admin/settings/user:registration-approval-type]]</label>
-				<select id="registrationApprovalType" class="form-control" data-field="registrationApprovalType">
+			<div class="mb-3">
+				<label class="form-label" for="registrationApprovalType">[[admin/settings/user:registration-approval-type]]</label>
+				<select id="registrationApprovalType" class="form-select" data-field="registrationApprovalType">
 					<option value="normal">[[admin/settings/user:registration-type.normal]]</option>
 					<option value="admin-approval">[[admin/settings/user:registration-type.admin-approval]]</option>
 					<option value="admin-approval-ip">[[admin/settings/user:registration-type.admin-approval-ip]]</option>
 				</select>
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/user:registration-approval-type.help, {config.relative_path}]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="autoApproveTime">[[admin/settings/user:registration-queue-auto-approve-time]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="autoApproveTime">[[admin/settings/user:registration-queue-auto-approve-time]]</label>
 				<input id="autoApproveTime" type="number" class="form-control" data-field="autoApproveTime" placeholder="0">
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/user:registration-queue-auto-approve-time-help]]
 				</p>
 			</div>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="showAverageApprovalTime">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:registration-queue-show-average-time]]</strong></span>
-				</label>
+
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="showAverageApprovalTime">
+				<label class="form-check-label">[[admin/settings/user:registration-queue-show-average-time]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label for="requireEmailAddress" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" id="requireEmailAddress" data-field="requireEmailAddress" name="requireEmailAddress" />
-					<span class="mdl-switch__label">[[admin/settings/email:require-email-address]]</span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" id="requireEmailAddress" data-field="requireEmailAddress" name="requireEmailAddress" />
+				<label for="requireEmailAddress" class="form-check-label">[[admin/settings/email:require-email-address]]</label>
 			</div>
-			<p class="help-block">[[admin/settings/email:require-email-address-warning]]</p>
+			<p class="form-text">[[admin/settings/email:require-email-address-warning]]</p>
 
-			<div class="form-group">
-				<label for="maximumInvites">[[admin/settings/user:max-invites]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maximumInvites">[[admin/settings/user:max-invites]]</label>
 				<input id="maximumInvites" type="number" class="form-control" data-field="maximumInvites" placeholder="0">
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/user:max-invites-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="inviteExpiration">[[admin/settings/user:invite-expiration]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="inviteExpiration">[[admin/settings/user:invite-expiration]]</label>
 				<input id="inviteExpiration" type="number" class="form-control" data-field="inviteExpiration" placeholder="7">
-				<p class="help-block">
+				<p class="form-text">
 					[[admin/settings/user:invite-expiration-help]]
 				</p>
 			</div>
-			<div class="form-group">
-				<label for="minimumUsernameLength">[[admin/settings/user:min-username-length]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="minimumUsernameLength">[[admin/settings/user:min-username-length]]</label>
 				<input id="minimumUsernameLength" type="text" class="form-control" value="2" data-field="minimumUsernameLength">
 			</div>
-			<div class="form-group">
-				<label for="maximumUsernameLength">[[admin/settings/user:max-username-length]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maximumUsernameLength">[[admin/settings/user:max-username-length]]</label>
 				<input id="maximumUsernameLength" type="text" class="form-control" value="16" data-field="maximumUsernameLength">
 			</div>
-			<div class="form-group">
-				<label for="minimumPasswordLength">[[admin/settings/user:min-password-length]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="minimumPasswordLength">[[admin/settings/user:min-password-length]]</label>
 				<input id="minimumPasswordLength" type="text" class="form-control" value="6" data-field="minimumPasswordLength">
 			</div>
-			<div class="form-group">
-				<label for="minimumPasswordStrength">[[admin/settings/user:min-password-strength]]</label>
-				<select id="minimumPasswordStrength" class="form-control" data-field="minimumPasswordStrength">
+			<div class="mb-3">
+				<label class="form-label" for="minimumPasswordStrength">[[admin/settings/user:min-password-strength]]</label>
+				<select id="minimumPasswordStrength" class="form-select" data-field="minimumPasswordStrength">
 					<option value="0">0 - too guessable: risky password</option>
 					<option value="1">1 - very guessable</option>
 					<option value="2">2 - somewhat guessable</option>
@@ -235,80 +223,67 @@
 					<option value="4">4 - very unguessable</option>
 				</select>
 			</div>
-			<div class="form-group">
-				<label for="maximumAboutMeLength">[[admin/settings/user:max-about-me-length]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="maximumAboutMeLength">[[admin/settings/user:max-about-me-length]]</label>
 				<input id="maximumAboutMeLength" type="text" class="form-control" value="500" data-field="maximumAboutMeLength">
 			</div>
-			<div class="form-group">
-				<label for="termsOfUse">[[admin/settings/user:terms-of-use]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="termsOfUse">[[admin/settings/user:terms-of-use]]</label>
 				<textarea id="termsOfUse" class="form-control" data-field="termsOfUse"></textarea>
 			</div>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/user:user-search]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/user:user-search]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="form-group">
-				<label for="userSearchResultsPerPage">[[admin/settings/user:user-search-results-per-page]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="userSearchResultsPerPage">[[admin/settings/user:user-search-results-per-page]]</label>
 				<input id="userSearchResultsPerPage" type="text" class="form-control" value="24" data-field="userSearchResultsPerPage">
 			</div>
-
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/user:default-user-settings]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/user:default-user-settings]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="showemail">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:show-email]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="showemail">
+				<label class="form-check-label">[[admin/settings/user:show-email]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="showfullname">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:show-fullname]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="showfullname">
+				<label class="form-check-label">[[admin/settings/user:show-fullname]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="restrictChat">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:restrict-chat]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="restrictChat">
+				<label class="form-check-label">[[admin/settings/user:restrict-chat]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="openOutgoingLinksInNewTab">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:outgoing-new-tab]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="openOutgoingLinksInNewTab">
+				<label class="form-check-label">[[admin/settings/user:outgoing-new-tab]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="topicSearchEnabled">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:topic-search]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="topicSearchEnabled">
+				<label class="form-check-label">[[admin/settings/user:topic-search]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="updateUrlWithPostIndex">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:update-url-with-post-index]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="updateUrlWithPostIndex">
+				<label class="form-check-label">[[admin/settings/user:update-url-with-post-index]]</label>
 			</div>
 
-			<div class="form-group">
-				<label for="dailyDigestFreq">[[admin/settings/user:digest-freq]]</label>
-				<select id="dailyDigestFreq" class="form-control" data-field="dailyDigestFreq">
+			<div class="mb-3">
+				<label class="form-label" for="dailyDigestFreq">[[admin/settings/user:digest-freq]]</label>
+				<select id="dailyDigestFreq" class="form-select" data-field="dailyDigestFreq">
 					<option value="off">[[admin/settings/user:digest-freq.off]]</option>
 					<option value="day">[[admin/settings/user:digest-freq.daily]]</option>
 					<option value="week">[[admin/settings/user:digest-freq.weekly]]</option>
@@ -317,38 +292,34 @@
 				</select>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="followTopicsOnCreate">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:follow-created-topics]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="followTopicsOnCreate">
+				<label class="form-check-label">[[admin/settings/user:follow-created-topics]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="followTopicsOnReply">
-					<span class="mdl-switch__label"><strong>[[admin/settings/user:follow-replied-topics]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="followTopicsOnReply">
+				<label class="form-check-label">[[admin/settings/user:follow-replied-topics]]</label>
 			</div>
 
-			<div class="form-group">
-				<label for="categoryWatchState">[[admin/settings/user:categoryWatchState]]</label>
-				<select id="categoryWatchState" class="form-control" data-field="categoryWatchState">
+			<div class="mb-3">
+				<label class="form-label" for="categoryWatchState">[[admin/settings/user:categoryWatchState]]</label>
+				<select id="categoryWatchState" class="form-select" data-field="categoryWatchState">
 					<option value="watching">[[admin/settings/user:categoryWatchState.watching]]</option>
 					<option value="notwatching">[[admin/settings/user:categoryWatchState.notwatching]]</option>
 					<option value="ignoring">[[admin/settings/user:categoryWatchState.ignoring]]</option>
 				</select>
 			</div>
 
-			<label>[[admin/settings/user:default-notification-settings]]</label>
+			<label class="form-label">[[admin/settings/user:default-notification-settings]]</label>
 
-			<!-- BEGIN notificationSettings -->
+			{{{ each notificationSettings }}}
 			<div class="row">
-				<div class="form-group col-xs-7">
-					<label>{notificationSettings.label}</label>
+				<div class="mb-3 col-7">
+					<label class="form-label">{./label}</label>
 				</div>
-				<div class="form-group col-xs-5">
-					<select class="form-control" data-field="{notificationSettings.name}">
+				<div class="mb-3 col-5">
+					<select class="form-select" data-field="{./name}">
 						<option value="none">[[notifications:none]]</option>
 						<option value="notification">[[notifications:notification_only]]</option>
 						<option value="email">[[notifications:email_only]]</option>
@@ -356,8 +327,7 @@
 					</select>
 				</div>
 			</div>
-			<!-- END notificationSettings -->
-
+			{{{ end }}}
 		</form>
 	</div>
 </div>
diff --git a/src/views/admin/settings/web-crawler.tpl b/src/views/admin/settings/web-crawler.tpl
index bf818358e2..c4f15807ad 100644
--- a/src/views/admin/settings/web-crawler.tpl
+++ b/src/views/admin/settings/web-crawler.tpl
@@ -1,39 +1,34 @@
 <!-- IMPORT admin/partials/settings/header.tpl -->
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/web-crawler:crawlability-settings]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/web-crawler:crawlability-settings]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<strong>[[admin/settings/web-crawler:robots-txt]]</strong><br />
+			<label class="form-label">[[admin/settings/web-crawler:robots-txt]]</label>
 			<textarea class="form-control" data-field="robots:txt"></textarea>
 		</form>
 	</div>
 </div>
 
-<div class="row">
-	<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/web-crawler:sitemap-feed-settings]]</div>
-	<div class="col-sm-10 col-xs-12">
+<div class="row mb-4">
+	<div class="col-sm-2 col-12 settings-header">[[admin/settings/web-crawler:sitemap-feed-settings]]</div>
+	<div class="col-sm-10 col-12">
 		<form>
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="feeds:disableRSS">
-					<span class="mdl-switch__label"><strong>[[admin/settings/web-crawler:disable-rss-feeds]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="feeds:disableRSS">
+				<label class="form-check-label">[[admin/settings/web-crawler:disable-rss-feeds]]</label>
 			</div>
 
-			<div class="checkbox">
-				<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
-					<input class="mdl-switch__input" type="checkbox" data-field="feeds:disableSitemap">
-					<span class="mdl-switch__label"><strong>[[admin/settings/web-crawler:disable-sitemap-xml]]</strong></span>
-				</label>
+			<div class="form-check form-switch mb-3">
+				<input class="form-check-input" type="checkbox" data-field="feeds:disableSitemap">
+				<label class="form-check-label">[[admin/settings/web-crawler:disable-sitemap-xml]]</label>
 			</div>
 
-			<div class="form-group">
-				<label for="sitemapTopics">[[admin/settings/web-crawler:sitemap-topics]]</label>
+			<div class="mb-3">
+				<label class="form-label" for="sitemapTopics">[[admin/settings/web-crawler:sitemap-topics]]</label>
 				<input id="sitemapTopics" class="form-control" type="text" data-field="sitemapTopics" />
 			</div>
 
-			<br />
 			<p>
 				<button id="clear-sitemap-cache" class="btn btn-warning">[[admin/settings/web-crawler:clear-sitemap-cache]]</button>
 				<a href="{config.relative_path}/sitemap.xml" target="_blank" class="btn btn-link">[[admin/settings/web-crawler:view-sitemap]]</a>
diff --git a/src/views/confirm.tpl b/src/views/confirm.tpl
new file mode 100644
index 0000000000..8c36aeb570
--- /dev/null
+++ b/src/views/confirm.tpl
@@ -0,0 +1,7 @@
+<div class="alert alert-success">
+	<strong>[[notifications:email-confirmed]]</strong>
+	<p>[[notifications:email-confirmed-message]]</p>
+	<p>
+		<a href="{config.relative_path}/">[[notifications:back_to_home, {config.siteTitle}]]</a>
+	</p>
+</div>
diff --git a/src/views/emails/banned.tpl b/src/views/emails/banned.tpl
index 20d82ba8df..be84592268 100644
--- a/src/views/emails/banned.tpl
+++ b/src/views/emails/banned.tpl
@@ -16,7 +16,7 @@
 						<h1 style="margin: 0 0 10px 0; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 18px; line-height: 21px; color: #aaaaaa; font-weight: normal;">[[email:banned.text1, {username}, {site_title}]]</h1>
 					</td>
 				</tr>
-				<!-- IF reason -->
+				{{{ if reason }}}
 				<tr>
 					<td style="padding: 20px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
 						<p style="margin: 0;">
@@ -27,8 +27,8 @@
 						</p>
 					</td>
 				</tr>
-				<!-- ENDIF reason -->
-				<!-- IF until -->
+				{{{ end }}}
+				{{{ if until }}}
 				<tr>
 					<td style="padding: 20px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
 						<p style="margin: 0;">
@@ -36,7 +36,7 @@
 						</p>
 					</td>
 				</tr>
-				<!-- ENDIF until -->
+				{{{ end }}}
 			</table>
 		</td>
 	</tr>
diff --git a/src/views/emails/digest.tpl b/src/views/emails/digest.tpl
index cb30a3afab..b6d827187c 100644
--- a/src/views/emails/digest.tpl
+++ b/src/views/emails/digest.tpl
@@ -17,20 +17,20 @@
 						<h1 style="margin: 0 0 10px 0; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 18px; line-height: 21px; color: #aaaaaa; font-weight: normal;">[[email:digest.title.{interval}]]</h1>
 					</td>
 				</tr>
-				<!-- IF notifications.length -->
+				{{{ if notifications.length }}}
 				<tr>
 					<td style="padding: 0px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
 						<ul style="margin: 0; padding: 0;">
-							<!-- BEGIN notifications -->
+							{{{ each notifications }}}
 							<li style="text-decoration: none; list-style-type: none; padding-bottom: 0.5em;">
 								<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
 									<tr>
 										<td style="padding: 16px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; width: 32px;">
-											<!-- IF notifications.image -->
+											{{{ if notifications.image }}}
 											<img style="vertical-align: middle; width: 32px; height: 32px; border-radius: 50%" src="{notifications.image}" alt="" />
-											<!-- ELSE -->
+											{{{ else }}}
 											<div style="vertical-align: middle; width: 32px; height: 32px; line-height: 32px; font-size: 16px; background-color: {notifications.user.icon:bgColor}; color: white; text-align: center; display: inline-block; border-radius: 50%">{notifications.user.icon:text}</div>
-											<!-- ENDIF notifications.image -->
+											{{{ end }}}
 										</td>
 										<td style="padding: 16px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; line-height: 16px; color: #333333;">
 											<p style="margin: 0;"><a style="text-decoration:none !important; text-decoration:none; color: #333333;" href="{notifications.notification_url}">{notifications.bodyShort}</a></p>
@@ -38,17 +38,17 @@
 									</tr>
 								</table>
 							</li>
-							<!-- END notifications -->
+							{{{ end }}}
 						</ul>
 					</td>
 				</tr>
-				<!-- ENDIF notifications.length -->
-				<!-- IF topTopics.length -->
+				{{{ end }}}
+				{{{ if topTopics.length }}}
 				<tr>
 					<td style="padding: 0px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
 						<h1 style="margin: 16px 0 24px 0; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 18px; line-height: 21px; color: #aaaaaa; font-weight: normal;">[[email:digest.top-topics, {site_title}]]</h1>
 						<ul style="margin: 0; padding: 0;">
-							<!-- BEGIN topTopics -->
+							{{{ each topTopics }}}
 							<li style="text-decoration: none; list-style-type: none; padding-bottom: 0.5em;">
 								<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
 									<tr>
@@ -70,20 +70,20 @@
 									</tr>
 								</table>
 							</li>
-							<!-- IF !@last -->
+							{{{ if !@last }}}
 							<li style="text-decoration: none; list-style-type: none; margin: 0px 64px 16px 64px; border-bottom: 1px solid #dddddd"></li>
-							<!-- END -->
-							<!-- END -->
+							{{{ end }}}
+							{{{ end }}}
 						</ul>
 					</td>
 				</tr>
-				<!-- END -->
-				<!-- IF popularTopics.length -->
+				{{{ end }}}
+				{{{ if popularTopics.length }}}
 				<tr>
 					<td style="padding: 0px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
 						<h1 style="margin: 16px 0 24px 0; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 18px; line-height: 21px; color: #aaaaaa; font-weight: normal;">[[email:digest.popular-topics, {site_title}]]</h1>
 						<ul style="margin: 0; padding: 0;">
-							<!-- BEGIN popularTopics -->
+							{{{ each popularTopics }}}
 							<li style="text-decoration: none; list-style-type: none; padding-bottom: 0.5em;">
 								<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
 									<tr>
@@ -105,20 +105,20 @@
 									</tr>
 								</table>
 							</li>
-							<!-- IF !@last -->
+							{{{ if !@last }}}
 							<li style="text-decoration: none; list-style-type: none; margin: 0px 64px 16px 64px; border-bottom: 1px solid #dddddd"></li>
-							<!-- END -->
-							<!-- END -->
+							{{{ end }}}
+							{{{ end }}}
 						</ul>
 					</td>
 				</tr>
-				<!-- END -->
-				<!-- IF recent.length -->
+				{{{ end }}}
+				{{{ if recent.length }}}
 				<tr>
 					<td style="padding: 0px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
 						<h1 style="margin: 16px 0 24px 0; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 18px; line-height: 21px; color: #aaaaaa; font-weight: normal;">[[email:digest.latest_topics, {site_title}]]</h1>
 						<ul style="margin: 0; padding: 0;">
-							<!-- BEGIN recent -->
+							{{{ each recent }}}
 							<li style="text-decoration: none; list-style-type: none; padding-bottom: 0.5em;">
 								<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
 									<tr>
@@ -140,14 +140,14 @@
 									</tr>
 								</table>
 							</li>
-							<!-- IF !@last -->
+							{{{ if !@last }}}
 							<li style="text-decoration: none; list-style-type: none; margin: 0px 64px 16px 64px; border-bottom: 1px solid #dddddd"></li>
-							<!-- END -->
-							<!-- END -->
+							{{{ end }}}
+							{{{ end }}}
 						</ul>
 					</td>
 				</tr>
-				<!-- END -->
+				{{{ end }}}
 				<tr>
 					<td style="padding: 32px 40px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #555555;">
 						<!-- Button : BEGIN -->
diff --git a/src/views/emails/notification.tpl b/src/views/emails/notification.tpl
index f39eafc983..bcc72e5c3d 100644
--- a/src/views/emails/notification.tpl
+++ b/src/views/emails/notification.tpl
@@ -31,7 +31,7 @@
 							<tr>
 								<td style="border-radius: 3px; background: #222222; text-align: center;" class="button-td">
 									<a href="{notification_url}" style="background: #222222; border: 15px solid #222222; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 13px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 3px; font-weight: bold;" class="button-a">
-										<span style="color:#ffffff;" class="button-link">[[email:notif.cta<!-- IF notification.cta-type -->-{notification.cta-type}<!-- END -->]] &rarr;</span>
+										<span style="color:#ffffff;" class="button-link">[[email:notif.cta{{{ if notification.cta-type }}}-{notification.cta-type}{{{ end }}}]] &rarr;</span>
 									</a>
 								</td>
 							</tr>
diff --git a/src/views/emails/partials/footer.tpl b/src/views/emails/partials/footer.tpl
index 98fb2824e4..aa9dc7938f 100644
--- a/src/views/emails/partials/footer.tpl
+++ b/src/views/emails/partials/footer.tpl
@@ -3,10 +3,10 @@
 				<tr>
 					<td style="padding: 40px 10px;width: 100%;font-size: 12px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; line-height:18px; text-align: center; color: #888888;">
 						<br><br>
-						<!-- IF showUnsubscribe -->
+						{{{ if showUnsubscribe }}}
 						[[email:notif.post.unsub.info]] <a href="{url}/uid/{uid}/settings">[[email:unsub.cta]]</a>.
 						<br />[[email:notif.post.unsub.one-click]] <a href="{unsubUrl}">[[email:unsubscribe]]</a>.
-						<!-- ENDIF showUnsubscribe -->
+						{{{ end }}}
 						<br><br>
 					</td>
 				</tr>
diff --git a/src/views/emails/partials/header.tpl b/src/views/emails/partials/header.tpl
index e292b13830..a467339215 100644
--- a/src/views/emails/partials/header.tpl
+++ b/src/views/emails/partials/header.tpl
@@ -165,7 +165,7 @@
 			1. max-width for all clients except Desktop Windows Outlook, allowing the email to squish on narrow but never go wider than 600px.
 			2. MSO tags for Desktop Windows Outlook enforce a 600px width.
 		-->
-		<div style="max-width: 600px; margin: auto;<!-- IF rtl --> text-align: right; direction: rtl;<!-- END -->" class="email-container">
+		<div style="max-width: 600px; margin: auto;{{{ if rtl }}} text-align: right; direction: rtl;{{{ end }}}" class="email-container">
 			<!--[if mso]>
 			<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" align="center">
 			<tr>
@@ -176,11 +176,11 @@
 			<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center" width="100%" style="max-width: 600px;">
 				<tr>
 					<td style="padding: 20px 0; text-align: center">
-						<!-- IF logo.src -->
-						<img src="{logo.src}" height="{logo.height}" width="{logo.width}" alt="{site_title}" border="0" style="height: {logo.height}px; width: {logo.width}px; background: #f6f6f6; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #333333;">
-						<!-- ELSE -->
+						{{{ if logo.src }}}
+						<img src="{logo.src}" height="auto" width="{logo.width}" alt="{site_title}" border="0" style="height: auto; width: {logo.width}px; background: #f6f6f6; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 15px; line-height: 20px; color: #333333;">
+						{{{ else }}}
 						&nbsp;
-						<!-- ENDIF logo.src -->
+						{{{ end }}}
 					</td>
 				</tr>
 			</table>
diff --git a/src/views/install/index.tpl b/src/views/install/index.tpl
index 17657b41cd..61f9e6785c 100644
--- a/src/views/install/index.tpl
+++ b/src/views/install/index.tpl
@@ -13,123 +13,125 @@
 </head>
 
 <body>
-	<nav class="navbar navbar-default">
+	<nav class="navbar navbar-expand-lg bg-light">
 		<div class="container-fluid">
-			<div class="navbar-header">
-				<a class="navbar-brand" href="#">NodeBB</a>
+			<a class="navbar-brand" href="#">NodeBB</a>
+			<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-menu" aria-controls="navbar-menu" aria-expanded="false" aria-label="Toggle navigation">
+				<span class="navbar-toggler-icon"></span>
+			</button>
+			<div class="collapse navbar-collapse" id="navbar-menu">
+				<ul class="navbar-nav me-auto mb-2 mb-lg-0">
+					<li class="nav-item"><a class="nav-link active" href="/">Installer</a></li>
+					<li class="nav-item"><a class="nav-link" href="https://docs.nodebb.org" target="_blank">Get Help</a></li>
+					<li class="nav-item"><a class="nav-link" href="https://community.nodebb.org" target="_blank">Community</a></li>
+				</ul>
 			</div>
-
-			<ul class="nav navbar-nav">
-				<li class="active"><a href="/">Installer</a></li>
-				<li><a href="https://docs.nodebb.org" target="_blank">Get Help</a></li>
-				<li><a href="https://community.nodebb.org" target="_blank">Community</a></li>
-			</ul>
 		</div>
 	</nav>
-	<!-- IF !installing -->
-	<div class="container <!-- IF success -->hide<!-- ENDIF success -->">
+	{{{ if !installing }}}
+	<div class="container {{{ if success }}}hide{{{ end }}}">
 		<p>
 			<h1>Welcome to the NodeBB Installer</h1>
 			You are just a few steps away from launching your own NodeBB forum!
 		</p>
-		<form id="install" action="/" method="post">
-			<!-- IF !skipGeneralSetup -->
+		<form id="install" action="/" method="post" autocomplete="off">
+			{{{ if !skipGeneralSetup }}}
 			<div class="general">
 				<p>
-					<h1><small>General Instance Setup</small></h1>
+					<h2><small>General Instance Setup</small></h2>
 					<hr />
 				</p>
 
 				<div class="row input-row">
-					<div class="col-sm-7 col-xs-12 input-field">
-						<label for="install:url">Web Address (URL)</label>
-						<input id="install:url" type="text" class="form-control" name="url" value="<!-- IF url -->{url}<!-- ENDIF url -->" placeholder="http://localhost:4567" />
+					<div class="col-sm-7 col-12 input-field">
+						<label class="form-label" for="install:url">Web Address (URL)</label>
+						<input id="install:url" type="text" class="form-control" name="url" value="{{{ if url }}}{url}{{{ end }}}" placeholder="http://localhost:4567" />
 					</div>
-					<div class="col-sm-5 help-text" data-help="This is the address that resolves to your NodeBB forum. If no port is specified, <code>4567</code> will be used."></div>
+					<div class="col-sm-5 form-text" data-help="This is the address that resolves to your NodeBB forum. If no port is specified, <code>4567</code> will be used."></div>
 				</div>
 			</div>
-			<!-- END -->
+			{{{ end }}}
 			<div class="admin">
 				<p>
-					<h1><small>Create an Administrator account</small></h1>
+					<h2><small>Create an Administrator account</small></h2>
 					<hr />
 				</p>
 
 				<div class="row input-row">
-					<div class="col-sm-7 col-xs-12 input-field">
-						<label for="admin:username">Username</label>
-						<input id="admin:username" type="text" class="form-control" name="admin:username" value="<!-- IF admin:username -->{admin:username}<!-- ENDIF admin:username -->" placeholder="Username" />
+					<div class="col-sm-7 col-12 input-field">
+						<label class="form-label" for="admin:username">Username</label>
+						<input id="admin:username" type="text" class="form-control" name="admin:username" value="{{{ if admin:username }}}{admin:username}{{{ end }}}" placeholder="Username" autocomplete="off"/>
 					</div>
-					<div class="col-sm-5 help-text" data-help="Enter an <strong>alphanumeric username</strong>. Spaces between words are allowed. You can always change your username later on your profile page."></div>
+					<div class="col-sm-5 form-text" data-help="Enter an <strong>alphanumeric username</strong>. Spaces between words are allowed. You can always change your username later on your profile page."></div>
 				</div>
 				<div class="row input-row">
-					<div class="col-sm-7 col-xs-12 input-field">
-						<label for="admin:email">Email Address</label>
-						<input id="admin:email" type="text" class="form-control" name="admin:email" value="<!-- IF admin:email -->{admin:email}<!-- ENDIF admin:email -->" placeholder="Email Address" />
+					<div class="col-sm-7 col-12 input-field">
+						<label class="form-label" for="admin:email">Email Address</label>
+						<input id="admin:email" type="text" class="form-control" name="admin:email" value="{{{ if admin:email }}}{admin:email}{{{ end }}}" placeholder="Email Address" autocomplete="off" />
 					</div>
-					<div class="col-sm-5 help-text" data-help="Please enter your email address."></div>
+					<div class="col-sm-5 form-text" data-help="Please enter your email address."></div>
 				</div>
 				<div class="row input-row">
-					<div class="col-sm-7 col-xs-12 input-field">
-						<label for="admin:password">Password</label>
-						<input id="admin:password" type="password" class="form-control" name="admin:password" value="<!-- IF admin:password -->{admin:password}<!-- ENDIF admin:password -->" placeholder="Password" data-minimum-strength="{minimumPasswordStrength}" data-minimum-length="{minimumPasswordLength}" />
+					<div class="col-sm-7 col-12 input-field">
+						<label class="form-label" for="admin:password">Password</label>
+						<input id="admin:password" type="password" class="form-control" name="admin:password" value="{{{ if admin:password }}}{admin:password}{{{ end }}}" placeholder="Password" data-minimum-strength="{minimumPasswordStrength}" data-minimum-length="{minimumPasswordLength}" autocomplete="off"/>
 					</div>
-					<div class="col-sm-5 help-text" data-help="Use a combination of numbers, symbols, and different cases. You can change the strictness of password creation in the Admin Control Panel. Minimum {minimumPasswordLength} characters."></div>
+					<div class="col-sm-5 form-text" data-help="Use a combination of numbers, symbols, and different cases. You can change the strictness of password creation in the Admin Control Panel. Minimum {minimumPasswordLength} characters."></div>
 				</div>
 				<div class="row input-row">
-					<div class="col-sm-7 col-xs-12 input-field">
-						<label for="admin:passwordConfirm">Confirm Password</label>
-						<input id="admin:passwordConfirm" type="password" class="form-control" name="admin:passwordConfirm" value="<!-- IF admin:passwordConfirm -->{admin:passwordConfirm}<!-- ENDIF admin:passwordConfirm -->" placeholder="Confirm Password" />
+					<div class="col-sm-7 col-12 input-field">
+						<label class="form-label" for="admin:passwordConfirm">Confirm Password</label>
+						<input id="admin:passwordConfirm" type="password" class="form-control" name="admin:passwordConfirm" value="{{{ if admin:passwordConfirm }}}{admin:passwordConfirm}{{{ end }}}" placeholder="Confirm Password" autocomplete="off"/>
 					</div>
-					<div class="col-sm-5 help-text" data-help="Please confirm your password."></div>
+					<div class="col-sm-5 form-text" data-help="Please confirm your password."></div>
 				</div>
 			</div>
 
-			<!-- IF error -->
+			{{{ if error }}}
 			<a id="database-error"></a>
-			<!-- ENDIF error -->
+			{{{ end }}}
 
-			<!-- IF !skipDatabaseSetup -->
+			{{{ if !skipDatabaseSetup }}}
 			<div class="database">
 				<p>
-					<h1><small>Configure your database</small></h1>
+					<h2><small>Configure your database</small></h2>
 					<hr />
 				</p>
 
 				<div class="row input-row">
-					<div class="col-sm-7 col-xs-12 input-field">
-						<label for="install:database">Database Type</label>
-						<select id="install:database" class="form-control" name="database">
+					<div class="col-sm-7 col-12 input-field">
+						<label class="form-label" for="install:database">Database Type</label>
+						<select id="install:database" class="form-select" name="database">
 							<option value="mongo">MongoDB</option>
 							<option value="redis">Redis</option>
 							<option value="postgres">PostgreSQL</option>
 						</select>
 					</div>
-					<div class="col-sm-5 help-text" data-help="Leave the fields blank to use the default settings."><!-- IF error -->There was an error connecting to your database. Please try again.<!-- ENDIF error --></div>
+					<div class="col-sm-5 form-text" data-help="Leave the fields blank to use the default settings.">{{{ if error }}}There was an error connecting to your database. Please try again.{{{ end }}}</div>
 				</div>
 
 				<div id="database-config"></div>
 			</div>
-			<!-- ENDIF !skipDatabaseSetup -->
+			{{{ end }}}
 
-			<button id="submit" type="submit" class="btn btn-lg btn-success">Install NodeBB <i class="working hide"></i></button>
+			<button id="submit" type="submit" class="btn btn btn-success">Install NodeBB <i class="working hide"></i></button>
 		</form>
 	</div>
-	<!-- ENDIF !installing -->
+	{{{ end }}}
 
-	<!-- IF installing -->
+	{{{ if installing }}}
 	<div id="installing" class="container">
 		<p>
 			<h1>Hang tight! Your NodeBB is being installed.</h1>
 		</p>
 	</div>
-	<!-- ENDIF installing -->
+	{{{ end }}}
 
-	<div class="container <!-- IF !success -->hide<!-- ENDIF !success -->">
+	<div class="container {{{ if !success }}}hide{{{ end }}}">
 		<p>
 			<h1>Congratulations! Your NodeBB has been set-up.</h1>
 
-			<button id="launch" data-url="{launchUrl}" class="btn btn-lg btn-success">Launch NodeBB <i class="working hide"></i></button>
+			<button id="launch" data-url="{launchUrl}" class="btn btn btn-success">Launch NodeBB <i class="working hide"></i></button>
 		</p>
 	</div>
 
@@ -138,9 +140,9 @@
 		<div data-database="{databases.name}">
 			 {{{ each databases.questions }}}
 				<div class="row input-row">
-					<div class="col-sm-7 col-xs-12 input-field">
-						<label for="{databases.questions.name}">{databases.questions.description}</label>
-						<input id="{databases.questions.name}" type="<!-- IF hidden -->password<!-- ELSE -->text<!-- ENDIF hidden -->" class="form-control" name="{databases.questions.name}" placeholder="{databases.questions.default}" value="{databases.questions.default}" />
+					<div class="col-sm-7 col-12 input-field">
+						<label class="form-label" for="{databases.questions.name}">{databases.questions.description}</label>
+						<input id="{databases.questions.name}" type="{{{ if hidden }}}password{{{ else }}}text{{{ end }}}" class="form-control" name="{databases.questions.name}" placeholder="{databases.questions.default}" value="{databases.questions.default}" />
 					</div>
 				</div>
 			{{{ end }}}
diff --git a/src/views/ip-blacklist.tpl b/src/views/ip-blacklist.tpl
new file mode 100644
index 0000000000..104ef6e921
--- /dev/null
+++ b/src/views/ip-blacklist.tpl
@@ -0,0 +1,58 @@
+<!-- IMPORT partials/breadcrumbs.tpl -->
+
+<div class="row ip-blacklist">
+	<div class="col-lg-12">
+		<p class="lead">
+			[[ip-blacklist:lead]]
+		</p>
+		<p>
+			[[ip-blacklist:description]]
+		</p>
+
+		<div class="row">
+			<div class="col-sm-6 d-flex flex-column">
+				<div class="card mb-3 flex-grow-1">
+					<div class="card-header">[[ip-blacklist:active-rules]]</div>
+					<div class="card-body d-flex flex-column">
+						<textarea id="blacklist-rules" class="flex-grow-1 mb-3 w-100 d-block border px-2 py-1">{rules}</textarea>
+						<div>
+							<button type="button" class="btn btn-warning" data-action="test">
+								<i class="fa fa-bomb"></i> [[ip-blacklist:validate]]
+							</button>
+							<button type="button" class="btn btn-primary" data-action="apply">
+								<i class="fa fa-save"></i> [[ip-blacklist:apply]]
+							</button>
+						</div>
+					</div>
+				</div>
+				<div class="card flex-shrink-1">
+					<div class="card-header">[[ip-blacklist:hints]]</div>
+					<div class="card-body">
+						<p>
+							[[ip-blacklist:hint-1]]
+						</p>
+						<p>
+							[[ip-blacklist:hint-2]]
+						</p>
+					</div>
+				</div>
+			</div>
+			<div class="col-sm-6">
+				<div class="card mb-3">
+					<div class="card-body">
+						<div><canvas id="blacklist:hourly" height="250"></canvas></div>
+					</div>
+					<div class="card-footer"><small>[[ip-blacklist:analytics.blacklist-hourly]]</small></div>
+				</div>
+
+				<div class="card">
+					<div class="card-body">
+						<div><canvas id="blacklist:daily" height="250"></canvas></div>
+					</div>
+					<div class="card-footer"><small>[[ip-blacklist:analytics.blacklist-daily]]</small></div>
+				</div>
+			</div>
+		</div>
+	</div>
+
+</div>
\ No newline at end of file
diff --git a/src/views/modals/change-owner.tpl b/src/views/modals/change-owner.tpl
new file mode 100644
index 0000000000..08471fca26
--- /dev/null
+++ b/src/views/modals/change-owner.tpl
@@ -0,0 +1,24 @@
+<div class="card tool-modal shadow">
+	<h5 class="card-header">[[topic:thread_tools.change_owner]]</h5>
+	<div class="card-body">
+		<p>
+			[[topic:change_owner_instruction]]
+		</p>
+		<div class="mb-3">
+			<label class="form-label" for="username"><strong>[[user:username]]</strong></label>
+			<div class="input-group">
+				<input id="username" type="text" class="form-control">
+				<span class="input-group-text" type="button">
+					<i class="fa fa-search"></i>
+				</span>
+			</div>
+		</div>
+		<p>
+			<strong><span id="pids"></span></strong>
+		</p>
+	</div>
+	<div class="card-footer text-end">
+		<button class="btn btn-link btn-sm" id="change_owner_cancel">[[global:buttons.close]]</button>
+		<button class="btn btn-primary btn-sm" id="change_owner_commit" disabled>[[topic:change-owner]]</button>
+	</div>
+</div>
diff --git a/src/views/modals/change-picture.tpl b/src/views/modals/change-picture.tpl
new file mode 100644
index 0000000000..9d7b9185c9
--- /dev/null
+++ b/src/views/modals/change-picture.tpl
@@ -0,0 +1,42 @@
+<div class="row gy-2">
+	<div class="col-12 col-sm-8 col-md-6">
+		<div class="list-group">
+			{{{each pictures}}}
+			<button type="button" class="list-group-item d-flex p-3" data-type="{pictures.type}">
+				<div class="flex-shrink-0">
+					{buildAvatar(pictures, "48px", true)}
+				</div>
+				<div class="flex-grow-1 ms-3 align-self-center fs-5 text-start">
+					{pictures.username}
+				</div>
+			</button>
+			{{{end}}}
+		</div>
+	</div>
+	<div class="col-12 col-sm-4 col-md-6">
+		<div class="list-group">
+			{{{ if allowProfileImageUploads }}}
+			<button type="button" class="list-group-item" data-action="upload">
+				[[user:upload_new_picture]]
+			</button>
+			{{{ end }}}
+			<button type="button" class="list-group-item" data-action="upload-url">
+				[[user:upload_new_picture_from_url]]
+			</button>
+			{{{ if uploaded }}}
+			<button type="button" class="list-group-item" data-action="remove-uploaded">
+				[[user:remove_uploaded_picture]]
+			</button>
+			{{{ end }}}
+		</div>
+	</div>
+</div>
+
+<hr />
+
+<h4>[[user:avatar-background-colour]]</h4>
+
+<label><input type="radio" name="icon:bgColor" value="transparent" /><span></span></label>
+{{{ each iconBackgrounds }}}
+<label><input type="radio" name="icon:bgColor" value="{@value}" /><span style="background-color: {@value};"></span></label>
+{{{ end }}}
\ No newline at end of file
diff --git a/src/views/modals/crop_picture.tpl b/src/views/modals/crop_picture.tpl
index 181302d756..f78e4eed76 100644
--- a/src/views/modals/crop_picture.tpl
+++ b/src/views/modals/crop_picture.tpl
@@ -2,8 +2,8 @@
 	<div class="modal-dialog">
 		<div class="modal-content">
 			<div class="modal-header">
-				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
 				<h3 id="crop-picture">[[user:crop_picture]]</h3>
+				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
 			</div>
 			<div class="modal-body">
 				<div id="upload-progress-box" class="progress hide">
@@ -30,8 +30,8 @@
 				</div>
 			</div>
 			<div class="modal-footer">
-				<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
-				<button class="btn btn-primary upload-btn <!-- IF !allowSkippingCrop -->hidden<!-- ENDIF !allowSkippingCrop -->">[[user:upload_picture]]</button>
+				<button class="btn btn-outline-secondary" data-bs-dismiss="modal" aria-hidden="true">Close</button>
+				<button class="btn btn-primary upload-btn {{{ if !allowSkippingCrop }}}hidden{{{ end }}}">[[user:upload_picture]]</button>
 				<button class="btn btn-primary crop-btn">[[user:upload_cropped_picture]]</button>
 			</div>
 		</div>
diff --git a/src/views/modals/delete-posts.tpl b/src/views/modals/delete-posts.tpl
new file mode 100644
index 0000000000..d585d99607
--- /dev/null
+++ b/src/views/modals/delete-posts.tpl
@@ -0,0 +1,16 @@
+<div class="card tool-modal shadow">
+	<h5 class="card-header">
+		[[topic:thread_tools.delete-posts]]
+	</h5>
+	<div class="card-body">
+		<p>
+			[[topic:delete_posts_instruction]]
+		</p>
+		<p><strong><span id="pids"></span></strong></p>
+	</div>
+	<div class="card-footer text-end">
+		<button class="btn btn-link btn-sm" id="delete_posts_cancel">[[global:buttons.close]]</button>
+		<button class="btn btn-primary btn-sm" id="delete_posts_confirm" disabled>[[topic:delete]]</button>
+		<button class="btn btn-danger btn-sm" id="purge_posts_confirm" disabled>[[topic:purge]]</button>
+	</div>
+</div>
\ No newline at end of file
diff --git a/src/views/modals/flag.tpl b/src/views/modals/flag.tpl
new file mode 100644
index 0000000000..3b101138e4
--- /dev/null
+++ b/src/views/modals/flag.tpl
@@ -0,0 +1,42 @@
+<div class="modal" tabindex="-1" role="dialog" aria-labelledby="[[flags:modal-title]]" aria-hidden="true">
+	<div class="modal-dialog modal-lg">
+		<div class="modal-content">
+			<div class="modal-header">
+				<h5 class="modal-title">[[flags:modal-title]]</h5>
+				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
+			</div>
+			<div class="modal-body">
+				<p class="lead">
+					[[flags:modal-body, {type}, {id}]]
+				</p>
+				<div>
+					<div class="radio mb-2">
+						<label for="flag-reason-spam">
+							<input type="radio" name="flag-reason" id="flag-reason-spam" value="[[flags:modal-reason-spam]]">
+							[[flags:modal-reason-spam]]
+						</label>
+					</div>
+
+					<div class="radio mb-2">
+						<label for="flag-reason-offensive">
+							<input type="radio" name="flag-reason" id="flag-reason-offensive" value="[[flags:modal-reason-offensive]]">
+							[[flags:modal-reason-offensive]]
+						</label>
+					</div>
+
+					<div class="radio mb-2">
+						<label for="flag-reason-other">
+							<input type="radio" name="flag-reason" id="flag-reason-other" value="[[flags:modal-reason-other]]">
+							[[flags:modal-reason-other]]
+						</label>
+					</div>
+				</div>
+				<div class="mb-3">
+					<textarea class="form-control" id="flag-reason-custom" placeholder="[[flags:modal-reason-custom]]" disabled="disabled"></textarea>
+				</div>
+
+				<button type="button" class="btn btn-primary" id="flag-post-commit" disabled>[[flags:modal-submit]]</button>
+			</div>
+		</div>
+	</div>
+</div>
\ No newline at end of file
diff --git a/src/views/modals/fork-topic.tpl b/src/views/modals/fork-topic.tpl
new file mode 100644
index 0000000000..5fce825aa8
--- /dev/null
+++ b/src/views/modals/fork-topic.tpl
@@ -0,0 +1,19 @@
+<div class="card tool-modal shadow">
+	<h5 class="card-header">
+		[[topic:fork_topic]]
+	</h5>
+	<div class="card-body">
+		<p>
+			[[topic:fork_topic_instruction]]
+		</p>
+		<div class="mb-3">
+			<label class="form-label" for="fork-title"><strong>[[topic:title]]</strong></label>
+			<input id="fork-title" type="text" class="form-control" placeholder="[[topic:enter-new-topic-title]]">
+		</div>
+		<strong><span id="fork-pids"></span></strong>
+	</div>
+	<div class="card-footer text-end">
+		<button class="btn btn-link btn-sm" id="fork_thread_cancel">[[global:buttons.close]]</button>
+		<button class="btn btn-primary btn-sm" id="fork_thread_commit" disabled>[[topic:fork_topic]]</button>
+	</div>
+</div>
\ No newline at end of file
diff --git a/src/views/modals/invite.tpl b/src/views/modals/invite.tpl
index 8184bf8c23..5b35cba696 100644
--- a/src/views/modals/invite.tpl
+++ b/src/views/modals/invite.tpl
@@ -1,12 +1,12 @@
-<div class="form-group">
-	<label for="invite-modal-emails">[[users:prompt-email]]</label>
+<div class="mb-3">
+	<label class="form-label" for="invite-modal-emails">[[users:prompt-email]]</label>
 	<input id="invite-modal-emails" type="text" class="form-control" placeholder="friend1@example.com,friend2@example.com" />
 </div>
-<div class="form-group">
-	<label for="invite-modal-groups">[[users:groups-to-join]]</label>
+<div class="">
+	<label class="form-label" for="invite-modal-groups">[[users:groups-to-join]]</label>
 	<select id="invite-modal-groups" class="form-control" multiple size="5">
-		<!-- BEGIN groups -->
+		{{{ each groups }}}
 		<option value="{@value}">{@value}</option>
-		<!-- END groups -->
+		{{{ end }}}
 	</select>
 </div>
\ No newline at end of file
diff --git a/src/views/modals/manage-room.tpl b/src/views/modals/manage-room.tpl
new file mode 100644
index 0000000000..de9ac4f331
--- /dev/null
+++ b/src/views/modals/manage-room.tpl
@@ -0,0 +1,11 @@
+<div class="mb-3">
+	<input class="form-control" type="text" placeholder="[[global:user-search-prompt]]" />
+	<p class="text-danger"></p>
+	<p class="form-text">[[modules:chat.add-user-help]]</p>
+
+	<hr />
+
+	<ul class="list-group">
+		<li class="list-group-item"><i class="fa fa-spinner fa-spin"></i> [[modules:chat.retrieving-users]]</li>
+	</ul>
+</div>
\ No newline at end of file
diff --git a/src/views/modals/merge-topic.tpl b/src/views/modals/merge-topic.tpl
new file mode 100644
index 0000000000..6560a4da7b
--- /dev/null
+++ b/src/views/modals/merge-topic.tpl
@@ -0,0 +1,55 @@
+<div class="tool-modal d-flex">
+	<div class="position-relative">
+		<div class="quick-search-container dropdown-menu d-block p-2 hidden" style="right: 10px;">
+			<div class="text-center loading-indicator"><i class="fa fa-spinner fa-spin"></i></div>
+			<div class="quick-search-results-container"></div>
+		</div>
+	</div>
+
+	<div class="card shadow">
+		<h5 class="card-header">[[topic:thread_tools.merge_topics]]</h5>
+		<div class="card-body">
+			<p>
+				[[topic:merge_topics_instruction]]
+			</p>
+			<p>
+				<div class="input-group">
+					<input class="form-control topic-search-input" type="text">
+					<span class="input-group-text"><i class="fa fa-search"></i></span>
+				</div>
+			</p>
+
+			<p><strong>[[topic:merge-topic-list-title]]</strong></p>
+			<ul class="topics-section">
+				{{{each topics}}}
+				<li><a href="{config.relative_path}/topic/{topics.tid}"><strong>{topics.title}</strong></a></li>
+				{{{end}}}
+			</ul>
+			<p>
+				<strong>[[topic:merge-options]]</strong>
+			</p>
+			<form>
+				<p>
+					<input class="merge-main-topic-radio" type="radio" name="merge-topic-option" checked="true"> [[topic:merge-select-main-topic]]
+				</p>
+				<p>
+					<select class="form-select merge-main-topic-select">
+						{{{each topics}}}
+						<option value="{topics.tid}">{topics.title}</option>
+						{{{end}}}
+					</select>
+				</p>
+				<p>
+					<input class="merge-new-title-radio" type="radio" name="merge-topic-option"> [[topic:merge-new-title-for-topic]]
+				</p>
+				<p>
+					<input class="merge-new-title-input form-control" type="text">
+				</p>
+			</form>
+		</div>
+		<div class="card-footer text-end">
+			<button class="btn btn-link btn-sm" id="merge_topics_cancel">[[global:buttons.close]]</button>
+			<button class="btn btn-primary btn-sm" id="merge_topics_confirm" disabled>[[topic:thread_tools.merge]]</button>
+		</div>
+	</div>
+</div>
\ No newline at end of file
diff --git a/src/views/modals/move-post.tpl b/src/views/modals/move-post.tpl
index 7583157798..7880825b54 100644
--- a/src/views/modals/move-post.tpl
+++ b/src/views/modals/move-post.tpl
@@ -1,23 +1,21 @@
-<div class="panel panel-primary tool-modal">
-	<div class="panel-heading">
-		<h3 class="panel-title">[[topic:thread_tools.move-posts]]</h3>
-	</div>
-	<div class="panel-body">
+<div class="card tool-modal shadow">
+	<h5 class="card-header">
+		[[topic:thread_tools.move-posts]]
+	</h5>
+	<div class="card-body">
+		<p>
+            [[topic:move_posts_instruction]]
+        </p>
 		<div>
-			<label for="topicId">[[topic:topic-id]]</label>
+			<label class="form-label" for="topicId"><strong>[[topic:topic-id]]</strong></label>
 			<input id="topicId" type="text" class="form-control"><br/>
 		</div>
 		<p>
     		<strong><span id="pids"></span></strong>
         </p>
-        <p class="help-block">
-            [[topic:move_posts_instruction]]
-        </p>
 	</div>
-	<div class="panel-footer text-right">
-		<div class="btn-group">
-			<button class="btn btn-link btn-xs" id="move_posts_cancel">[[global:buttons.close]]</button>
-			<button class="btn btn-primary btn-xs" id="move_posts_confirm" disabled>[[topic:move]]</button>
-		</div>
+	<div class="card-footer text-end">
+		<button class="btn btn-link btn-sm" id="move_posts_cancel">[[global:buttons.close]]</button>
+		<button class="btn btn-primary btn-sm" id="move_posts_confirm" disabled>[[topic:move]]</button>
 	</div>
 </div>
\ No newline at end of file
diff --git a/src/views/modals/move-topic.tpl b/src/views/modals/move-topic.tpl
new file mode 100644
index 0000000000..06ff2b4f16
--- /dev/null
+++ b/src/views/modals/move-topic.tpl
@@ -0,0 +1,15 @@
+<div class="card tool-modal shadow">
+	<h5 class="card-header">
+		[[topic:move_topic]]
+	</h5>
+	<div class="card-body">
+		<p>
+			[[topic:move_topic_instruction]]
+		</p>
+		<!-- IMPORT partials/category/selector-dropdown-right.tpl -->
+	</div>
+	<div class="card-footer text-end">
+		<button type="button" class="btn btn-sm btn-outline-secondary" id="move_topic_cancel">[[global:buttons.close]]</button>
+		<button type="button" class="btn btn-sm btn-primary" id="move_thread_commit" disabled>[[topic:confirm_move]]</button>
+	</div>
+</div>
\ No newline at end of file
diff --git a/src/views/modals/post-history.tpl b/src/views/modals/post-history.tpl
new file mode 100644
index 0000000000..433d015e41
--- /dev/null
+++ b/src/views/modals/post-history.tpl
@@ -0,0 +1,36 @@
+<p class="number-of-diffs">
+	{{{ if numDiffs }}}
+	[[topic:diffs.description, {numDiffs}]]
+	{{{ else }}}
+	[[topic:diffs.no-revisions-description, {numDiffs}]]
+	{{{ end }}}
+</p>
+{{{ if numDiffs }}}
+<div class="mb-3">
+	<select class="form-control">
+		{{{ each diffs }}}
+		<option value="{../timestamp}">
+			{./pretty}
+			{{{ if ./username }}}[{./username}]{{{ end }}}
+			{{{ if @first }}}([[topic:diffs.current-revision]]){{{ end }}}
+			{{{ if @last }}}([[topic:diffs.original-revision]]){{{ end }}}
+		</option>
+		{{{ end }}}
+	</select>
+
+	<hr />
+
+	<ul class="posts-list diffs list-unstyled"></ul>
+
+	{{{ if editable }}}
+	<button class="btn btn-primary" data-action="restore">[[topic:diffs.restore]]</button>
+	{{{ end }}}
+	{{{ if deletable }}}
+	<button class="btn btn-danger" data-action="delete">[[topic:diffs.delete]]</button>
+	{{{ end }}}
+	{{{ if editable }}}
+	<p class="form-text">[[topic:diffs.restore-description]]</p>
+	{{{ end }}}
+
+</div>
+{{{ end }}}
diff --git a/src/views/modals/rename-room.tpl b/src/views/modals/rename-room.tpl
new file mode 100644
index 0000000000..9a77ca105c
--- /dev/null
+++ b/src/views/modals/rename-room.tpl
@@ -0,0 +1,4 @@
+<input type="text" class="form-control" id="roomName" placeholder="[[modules:chat.rename-placeholder]]" value="{name}" />
+<p class="form-text">
+	[[modules:chat.rename-help]]
+</p>
\ No newline at end of file
diff --git a/src/views/modals/set-pin-expiry.tpl b/src/views/modals/set-pin-expiry.tpl
index 5c60737a88..523723011e 100644
--- a/src/views/modals/set-pin-expiry.tpl
+++ b/src/views/modals/set-pin-expiry.tpl
@@ -1,5 +1,5 @@
 <div class="form-group">
-	<label for="expiry">[[topic:pin-modal-expiry]]</label>
+	<label class="form-label" for="expiry">[[topic:pin-modal-expiry]]</label>
 	<input id="expiry" type="date" class="form-control" />
-	<p class="help-block">[[topic:pin-modal-help]]</p>
+	<p class="form-text">[[topic:pin-modal-help]]</p>
 </div>
\ No newline at end of file
diff --git a/src/views/modals/temporary-ban.tpl b/src/views/modals/temporary-ban.tpl
new file mode 100644
index 0000000000..19b1047fed
--- /dev/null
+++ b/src/views/modals/temporary-ban.tpl
@@ -0,0 +1,33 @@
+<form class="form">
+	<div class="row">
+		<div class="col-12">
+			<div class="mb-3">
+				<p class="form-text">
+					[[admin/manage/users:temp-ban.explanation]]
+				</p>
+			</div>
+		</div>
+	</div>
+	<div class="row">
+		<div class="col-5">
+			<div class="mb-3">
+				<label class="form-label" for="length">[[admin/manage/users:temp-ban.length]]</label>
+				<input class="form-control" id="length" name="length" type="number" min="0" value="1" />
+			</div>
+			<div class="form-check form-check-inline">
+				<label class="form-check-label">[[admin/manage/users:temp-ban.hours]]</label>
+				<input class="form-check-input" type="radio" name="unit" value="0" checked />
+			</div>
+			<div class="form-check form-check-inline">
+				<label class="form-check-label">[[admin/manage/users:temp-ban.days]]</label>
+				<input class="form-check-input" type="radio" name="unit" value="1" />
+			</div>
+		</div>
+		<div class="col-7">
+			<div class="mb-3">
+				<label class="form-label" for="reason">[[admin/manage/users:temp-ban.reason]]</label>
+				<input type="text" class="form-control" id="reason" name="reason" />
+			</div>
+		</div>
+	</div>
+</form>
diff --git a/src/views/modals/temporary-mute.tpl b/src/views/modals/temporary-mute.tpl
new file mode 100644
index 0000000000..87fab1890e
--- /dev/null
+++ b/src/views/modals/temporary-mute.tpl
@@ -0,0 +1,24 @@
+<form class="form">
+	<div class="row">
+		<div class="col-5">
+			<div class="mb-3">
+				<label class="form-label" for="length">[[admin/manage/users:temp-ban.length]]</label>
+				<input class="form-control" id="length" name="length" type="number" min="0" value="1" />
+			</div>
+			<div class="form-check form-check-inline">
+				<label class="form-check-label">[[admin/manage/users:temp-ban.hours]]</label>
+				<input class="form-check-input" type="radio" name="unit" value="0" checked />
+			</div>
+			<div class="form-check form-check-inline">
+				<label class="form-check-label">[[admin/manage/users:temp-ban.days]]</label>
+				<input class="form-check-input" type="radio" name="unit" value="1" />
+			</div>
+		</div>
+		<div class="col-7">
+			<div class="">
+				<label class="form-label" for="reason">[[admin/manage/users:temp-ban.reason]]</label>
+				<input type="text" class="form-control" id="reason" name="reason" />
+			</div>
+		</div>
+	</div>
+</form>
diff --git a/src/views/modals/topic-thumbs.tpl b/src/views/modals/topic-thumbs.tpl
index 1329cf7c95..ec2366080d 100644
--- a/src/views/modals/topic-thumbs.tpl
+++ b/src/views/modals/topic-thumbs.tpl
@@ -3,18 +3,18 @@
 	<div class="alert alert-info">[[modules:thumbs.modal.no-thumbs]]</div>
 	{{{ end }}}
 	{{{ each thumbs }}}
-	<div class="media" data-id="{./id}" data-path="{./path}">
-		<div class="media-left">
-			<img class="media-object" src="{./url}" alt="" />
+	<div class="d-flex align-items-center mb-3" data-id="{./id}" data-path="{./path}">
+		<div class="flex-shrink-0 py-2">
+			<img class="rounded" width="128px" style="height: auto;" src="{./url}" alt="" />
 		</div>
-		<div class="media-body">
+		<div class="flex-grow-1 ms-3">
 			<p>
 				<code>{./name}</code>
 			</p>
-			<button class="btn btn-danger" data-action="remove"><i class="fa fa-times"></i> [[modules:thumbs.modal.remove]]</button>
+			<button class="btn btn-danger btn-sm text-nowrap" data-action="remove"><i class="fa fa-times"></i> [[modules:thumbs.modal.remove]]</button>
 		</div>
 	</div>
 	{{{ end }}}
 	<hr />
-	<p class="help-block">[[modules:thumbs.modal.resize-note, {config.thumbs.size}]]</p>
+	<p class="form-text">[[modules:thumbs.modal.resize-note, {config.thumbs.size}]]</p>
 </div>
\ No newline at end of file
diff --git a/src/views/modals/upload-file.tpl b/src/views/modals/upload-file.tpl
new file mode 100644
index 0000000000..537f6efd01
--- /dev/null
+++ b/src/views/modals/upload-file.tpl
@@ -0,0 +1,44 @@
+<div class="modal" tabindex="-1" role="dialog" aria-labelledby="upload-file" aria-hidden="true">
+	<div class="modal-dialog">
+		<div class="modal-content">
+			<div class="modal-header">
+				<h5 class="modal-title">{title}</h5>
+				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
+			</div>
+			<div class="modal-body">
+				<form id="uploadForm" action="" method="post" enctype="multipart/form-data">
+					<div class="form-group">
+						{{{ if description }}}
+						<label for="fileInput">{description}</label>
+						{{{ end }}}
+						<input type="file" id="fileInput" name="files[]" {{{ if accept }}}accept="{accept}"{{{ end }}}>
+						{{{ if showHelp }}}
+						<p class="form-text">
+							{{{ if accept }}}
+							[[global:allowed-file-types, {accept}]]
+							{{{ end }}}
+
+							{{{ if fileSize }}}<span id="file-size-block">([[uploads:maximum-file-size, {fileSize}]])</span>{{{ end }}}
+						</p>
+						{{{ end }}}
+					</div>
+					<input type="hidden" id="params" name="params" />
+				</form>
+
+				<div id="upload-progress-box" class="progress progress-striped hide">
+					<div id="upload-progress-bar" class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="0" aria-valuemin="0">
+						<span class="sr-only"> [[success:success]]</span>
+					</div>
+				</div>
+
+				<div id="alert-status" class="alert alert-info hide"></div>
+				<div id="alert-success" class="alert alert-success hide"></div>
+				<div id="alert-error" class="alert alert-danger hide"></div>
+			</div>
+			<div class="modal-footer">
+				<button class="btn btn-outline-secondary" data-bs-dismiss="modal" aria-hidden="true">[[global:close]]</button>
+				<button id="fileUploadSubmitBtn" class="btn btn-primary">{button}</button>
+			</div>
+		</div>
+	</div>
+</div>
\ No newline at end of file
diff --git a/src/views/modals/upload-picture-from-url.tpl b/src/views/modals/upload-picture-from-url.tpl
new file mode 100644
index 0000000000..0de3317aa4
--- /dev/null
+++ b/src/views/modals/upload-picture-from-url.tpl
@@ -0,0 +1,17 @@
+<div id="upload-picture-from-url-modal" class="modal" tabindex="-1" role="dialog" aria-labelledby="upload-picture-url" aria-hidden="true">
+	<div class="modal-dialog">
+		<div class="modal-content">
+			<div class="modal-header">
+				<h5 class="modal-title" id="upload-picture-url">[[user:upload_picture]]</h5>
+				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
+			</div>
+			<div class="modal-body">
+				<input id="uploadFromUrl" class="form-control" type="text"/>
+			</div>
+			<div class="modal-footer">
+				<button class="btn btn-outline-secondary" data-bs-dismiss="modal" aria-hidden="true">[[global:close]]</button>
+				<button class="btn btn-primary upload-btn">[[user:upload_picture]]</button>
+			</div>
+		</div>
+	</div>
+</div>
\ No newline at end of file
diff --git a/src/views/modals/votes.tpl b/src/views/modals/votes.tpl
new file mode 100644
index 0000000000..6c0b54e277
--- /dev/null
+++ b/src/views/modals/votes.tpl
@@ -0,0 +1,14 @@
+<div class="mb-3">
+	<h4>[[global:upvoters]] <small>({upvoteCount})</small></h4>
+	{{{ each upvoters }}}
+	<a class="text-decoration-none" href="{config.relative_path}/user/{./userslug}">{buildAvatar(@value, "24px", true)}</a>
+	{{{ end }}}
+</div>
+{{{ if showDownvotes }}}
+<div>
+	<h4>[[global:downvoters]] <small>({downvoteCount})</small></h4>
+	{{{ each downvoters }}}
+	<a class="text-decoration-none" href="{config.relative_path}/user/{./userslug}">{buildAvatar(@value, "24px", true)}</a>
+	{{{ end }}}
+</div>
+{{{ end }}}
\ No newline at end of file
diff --git a/src/views/outgoing.tpl b/src/views/outgoing.tpl
index ee68df046c..b5c4657933 100644
--- a/src/views/outgoing.tpl
+++ b/src/views/outgoing.tpl
@@ -1,11 +1,11 @@
 <div class="outgoing">
 	<!-- IMPORT partials/breadcrumbs.tpl -->
-	<div class="well">
-		<h3>
+	<div class="card card-header">
+		<h4>
 			[[notifications:outgoing_link_message, {title}]]
-		</h3>
+		</h4>
 		<p>
-			<a href="{outgoing}" rel="nofollow noopener noreferrer" class="btn btn-primary btn-lg">[[notifications:continue_to, {outgoing}]]</a>
+			<a href="{outgoing}" rel="nofollow noopener noreferrer" class="btn btn-primary btn-lg mw-100 text-truncate">[[notifications:continue_to, {outgoing}]]</a>
 			<a id="return-btn" href="#" class="btn btn-lg btn-warning" onclick="history.back(); return false;">[[notifications:return_to, {title}]]</a>
 		</p>
 	</div>
diff --git a/src/views/partials/acceptTos.tpl b/src/views/partials/acceptTos.tpl
new file mode 100644
index 0000000000..b8ac0a7150
--- /dev/null
+++ b/src/views/partials/acceptTos.tpl
@@ -0,0 +1,9 @@
+<div>
+	<label for="agree-terms">[[register:terms_of_use]]</label>
+	<div class="tos">{termsOfUse}</div>
+	<div class="checkbox">
+		<label>
+			<input type="checkbox" name="agree-terms" id="agree-terms"> [[register:agree_to_terms_of_use]]
+		</label>
+	</div>
+</div>
\ No newline at end of file
diff --git a/src/views/partials/category/filter-dropdown-left.tpl b/src/views/partials/category/filter-dropdown-left.tpl
new file mode 100644
index 0000000000..66fe0bf823
--- /dev/null
+++ b/src/views/partials/category/filter-dropdown-left.tpl
@@ -0,0 +1,3 @@
+<div component="category/dropdown" class="btn-group category-dropdown-container bottom-sheet">
+	<!-- IMPORT partials/category/filter-dropdown-content.tpl -->
+</div>
\ No newline at end of file
diff --git a/src/views/partials/category/filter-dropdown-right.tpl b/src/views/partials/category/filter-dropdown-right.tpl
new file mode 100644
index 0000000000..8be56907cc
--- /dev/null
+++ b/src/views/partials/category/filter-dropdown-right.tpl
@@ -0,0 +1,3 @@
+<div component="category/dropdown" class="btn-group dropdown-right category-dropdown-container bottom-sheet">
+	<!-- IMPORT partials/category/filter-dropdown-content.tpl -->
+ </div>
\ No newline at end of file
diff --git a/src/views/partials/category/selector-dropdown-left.tpl b/src/views/partials/category/selector-dropdown-left.tpl
new file mode 100644
index 0000000000..d046496999
--- /dev/null
+++ b/src/views/partials/category/selector-dropdown-left.tpl
@@ -0,0 +1,3 @@
+<div component="category-selector" class="btn-group category-dropdown-container bottom-sheet">
+	<!-- IMPORT partials/category/selector-dropdown-content.tpl -->
+</div>
\ No newline at end of file
diff --git a/src/views/partials/category/selector-dropdown-right.tpl b/src/views/partials/category/selector-dropdown-right.tpl
new file mode 100644
index 0000000000..55f916f6ad
--- /dev/null
+++ b/src/views/partials/category/selector-dropdown-right.tpl
@@ -0,0 +1,3 @@
+<div component="category-selector" class="btn-group dropdown-right category-dropdown-container bottom-sheet">
+	<!-- IMPORT partials/category/selector-dropdown-content.tpl -->
+</div>
\ No newline at end of file
diff --git a/src/views/partials/chats/manage-room-users.tpl b/src/views/partials/chats/manage-room-users.tpl
new file mode 100644
index 0000000000..f8808587bd
--- /dev/null
+++ b/src/views/partials/chats/manage-room-users.tpl
@@ -0,0 +1,7 @@
+{{{ each users }}}
+<li class="list-group-item">
+	{{{ if ./canKick }}}<button class="float-end btn btn-sm btn-link" data-action="kick" data-uid="{../uid}">[[modules:chat.kick]]</button>{{{ end }}}
+	{buildAvatar(users, "24px", true)}
+	<span>{../username} {{{ if ./isOwner }}}<i class="fa fa-star text-warning" title="[[modules:chat.owner]]"></i>{{{ end }}}</span>
+</li>
+{{{ end }}}
\ No newline at end of file
diff --git a/src/views/partials/email_update.tpl b/src/views/partials/email_update.tpl
index 5e2d77f183..ccadc6226b 100644
--- a/src/views/partials/email_update.tpl
+++ b/src/views/partials/email_update.tpl
@@ -1,21 +1,21 @@
-<div class="form-group">
+<div>
 	<p>[[user:emailUpdate.intro]]</p>
 	{{{ if requireEmailAddress }}}
 	<p>[[user:emailUpdate.required]]</p>
 	{{{ else }}}
 	<p>[[user:emailUpdate.optional]]</p>
 	{{{ end }}}
-	<div class="form-group">
-		<label for="email">[[global:email]]</label>
+	<div class="mb-3">
+		<label class="form-label" for="email">[[global:email]]</label>
 		<input class="form-control" type="text" id="email" name="email" placeholder="{email}" value="{email}" />
-		<p class="help-block">[[user:emailUpdate.change-instructions]]</p>
+		<p class="form-text">[[user:emailUpdate.change-instructions]]</p>
 	</div>
 
 	{{{ if issuePasswordChallenge }}}
-	<div class="form-group">
-		<label for="password">[[register:password]]</label>
+	<div class="mb-3">
+		<label class="form-label" for="password">[[register:password]]</label>
 		<input class="form-control" type="password" id="password" name="password" />
-		<p class="help-block">[[user:emailUpdate.password-challenge]]</p>
+		<p class="form-text">[[user:emailUpdate.password-challenge]]</p>
 	</div>
 	{{{ end }}}
 </div>
\ No newline at end of file
diff --git a/src/views/partials/fontawesome.tpl b/src/views/partials/fontawesome.tpl
index fd3afd7c4f..ae9fb96e95 100644
--- a/src/views/partials/fontawesome.tpl
+++ b/src/views/partials/fontawesome.tpl
@@ -1,799 +1,15 @@
 <div class="icon-container">
 	<div class="form-group">
-		<label for="fa-filter">Type to filter icons</label>
+		<label class="form-label" for="fa-filter">Type to search for icons</label>
 		<input type="text" class="form-control" id="fa-filter" data-action="filter" placeholder="e.g. umbrella" />
 	</div>
-	<div class="row fa-icons">
-		<i class="fa fa-500px"></i>
-		<i class="fa fa-address-book"></i>
-		<i class="fa fa-address-book-o"></i>
-		<i class="fa fa-address-card"></i>
-		<i class="fa fa-address-card-o"></i>
-		<i class="fa fa-adjust"></i>
-		<i class="fa fa-adn"></i>
-		<i class="fa fa-align-center"></i>
-		<i class="fa fa-align-justify"></i>
-		<i class="fa fa-align-left"></i>
-		<i class="fa fa-align-right"></i>
-		<i class="fa fa-amazon"></i>
-		<i class="fa fa-ambulance"></i>
-		<i class="fa fa-american-sign-language-interpreting"></i>
-		<i class="fa fa-anchor"></i>
-		<i class="fa fa-android"></i>
-		<i class="fa fa-angellist"></i>
-		<i class="fa fa-angle-double-down"></i>
-		<i class="fa fa-angle-double-left"></i>
-		<i class="fa fa-angle-double-right"></i>
-		<i class="fa fa-angle-double-up"></i>
-		<i class="fa fa-angle-down"></i>
-		<i class="fa fa-angle-left"></i>
-		<i class="fa fa-angle-right"></i>
-		<i class="fa fa-angle-up"></i>
-		<i class="fa fa-apple"></i>
-		<i class="fa fa-archive"></i>
-		<i class="fa fa-area-chart"></i>
-		<i class="fa fa-arrow-circle-down"></i>
-		<i class="fa fa-arrow-circle-left"></i>
-		<i class="fa fa-arrow-circle-o-down"></i>
-		<i class="fa fa-arrow-circle-o-left"></i>
-		<i class="fa fa-arrow-circle-o-right"></i>
-		<i class="fa fa-arrow-circle-o-up"></i>
-		<i class="fa fa-arrow-circle-right"></i>
-		<i class="fa fa-arrow-circle-up"></i>
-		<i class="fa fa-arrow-down"></i>
-		<i class="fa fa-arrow-left"></i>
-		<i class="fa fa-arrow-right"></i>
-		<i class="fa fa-arrow-up"></i>
-		<i class="fa fa-arrows"></i>
-		<i class="fa fa-arrows-alt"></i>
-		<i class="fa fa-arrows-h"></i>
-		<i class="fa fa-arrows-v"></i>
-		<i class="fa fa-asl-interpreting"></i>
-		<i class="fa fa-assistive-listening-systems"></i>
-		<i class="fa fa-asterisk"></i>
-		<i class="fa fa-at"></i>
-		<i class="fa fa-audio-description"></i>
-		<i class="fa fa-automobile"></i>
-		<i class="fa fa-backward"></i>
-		<i class="fa fa-balance-scale"></i>
-		<i class="fa fa-ban"></i>
-		<i class="fa fa-bandcamp"></i>
-		<i class="fa fa-bank"></i>
-		<i class="fa fa-bar-chart"></i>
-		<i class="fa fa-bar-chart-o"></i>
-		<i class="fa fa-barcode"></i>
-		<i class="fa fa-bars"></i>
-		<i class="fa fa-bath"></i>
-		<i class="fa fa-bathtub"></i>
-		<i class="fa fa-battery"></i>
-		<i class="fa fa-battery-0"></i>
-		<i class="fa fa-battery-1"></i>
-		<i class="fa fa-battery-2"></i>
-		<i class="fa fa-battery-3"></i>
-		<i class="fa fa-battery-4"></i>
-		<i class="fa fa-battery-empty"></i>
-		<i class="fa fa-battery-full"></i>
-		<i class="fa fa-battery-half"></i>
-		<i class="fa fa-battery-quarter"></i>
-		<i class="fa fa-battery-three-quarters"></i>
-		<i class="fa fa-bed"></i>
-		<i class="fa fa-beer"></i>
-		<i class="fa fa-behance"></i>
-		<i class="fa fa-behance-square"></i>
-		<i class="fa fa-bell"></i>
-		<i class="fa fa-bell-o"></i>
-		<i class="fa fa-bell-slash"></i>
-		<i class="fa fa-bell-slash-o"></i>
-		<i class="fa fa-bicycle"></i>
-		<i class="fa fa-binoculars"></i>
-		<i class="fa fa-birthday-cake"></i>
-		<i class="fa fa-bitbucket"></i>
-		<i class="fa fa-bitbucket-square"></i>
-		<i class="fa fa-bitcoin"></i>
-		<i class="fa fa-black-tie"></i>
-		<i class="fa fa-blind"></i>
-		<i class="fa fa-bluetooth"></i>
-		<i class="fa fa-bluetooth-b"></i>
-		<i class="fa fa-bold"></i>
-		<i class="fa fa-bolt"></i>
-		<i class="fa fa-bomb"></i>
-		<i class="fa fa-book"></i>
-		<i class="fa fa-bookmark"></i>
-		<i class="fa fa-bookmark-o"></i>
-		<i class="fa fa-braille"></i>
-		<i class="fa fa-briefcase"></i>
-		<i class="fa fa-btc"></i>
-		<i class="fa fa-bug"></i>
-		<i class="fa fa-building"></i>
-		<i class="fa fa-building-o"></i>
-		<i class="fa fa-bullhorn"></i>
-		<i class="fa fa-bullseye"></i>
-		<i class="fa fa-bus"></i>
-		<i class="fa fa-buysellads"></i>
-		<i class="fa fa-cab"></i>
-		<i class="fa fa-calculator"></i>
-		<i class="fa fa-calendar"></i>
-		<i class="fa fa-calendar-check-o"></i>
-		<i class="fa fa-calendar-minus-o"></i>
-		<i class="fa fa-calendar-o"></i>
-		<i class="fa fa-calendar-plus-o"></i>
-		<i class="fa fa-calendar-times-o"></i>
-		<i class="fa fa-camera"></i>
-		<i class="fa fa-camera-retro"></i>
-		<i class="fa fa-car"></i>
-		<i class="fa fa-caret-down"></i>
-		<i class="fa fa-caret-left"></i>
-		<i class="fa fa-caret-right"></i>
-		<i class="fa fa-caret-square-o-down"></i>
-		<i class="fa fa-caret-square-o-left"></i>
-		<i class="fa fa-caret-square-o-right"></i>
-		<i class="fa fa-caret-square-o-up"></i>
-		<i class="fa fa-caret-up"></i>
-		<i class="fa fa-cart-arrow-down"></i>
-		<i class="fa fa-cart-plus"></i>
-		<i class="fa fa-cc"></i>
-		<i class="fa fa-cc-amex"></i>
-		<i class="fa fa-cc-diners-club"></i>
-		<i class="fa fa-cc-discover"></i>
-		<i class="fa fa-cc-jcb"></i>
-		<i class="fa fa-cc-mastercard"></i>
-		<i class="fa fa-cc-paypal"></i>
-		<i class="fa fa-cc-stripe"></i>
-		<i class="fa fa-cc-visa"></i>
-		<i class="fa fa-certificate"></i>
-		<i class="fa fa-chain"></i>
-		<i class="fa fa-chain-broken"></i>
-		<i class="fa fa-check"></i>
-		<i class="fa fa-check-circle"></i>
-		<i class="fa fa-check-circle-o"></i>
-		<i class="fa fa-check-square"></i>
-		<i class="fa fa-check-square-o"></i>
-		<i class="fa fa-chevron-circle-down"></i>
-		<i class="fa fa-chevron-circle-left"></i>
-		<i class="fa fa-chevron-circle-right"></i>
-		<i class="fa fa-chevron-circle-up"></i>
-		<i class="fa fa-chevron-down"></i>
-		<i class="fa fa-chevron-left"></i>
-		<i class="fa fa-chevron-right"></i>
-		<i class="fa fa-chevron-up"></i>
-		<i class="fa fa-child"></i>
-		<i class="fa fa-chrome"></i>
-		<i class="fa fa-circle"></i>
-		<i class="fa fa-circle-o"></i>
-		<i class="fa fa-circle-o-notch"></i>
-		<i class="fa fa-circle-thin"></i>
-		<i class="fa fa-clipboard"></i>
-		<i class="fa fa-clock-o"></i>
-		<i class="fa fa-clone"></i>
-		<i class="fa fa-close"></i>
-		<i class="fa fa-cloud"></i>
-		<i class="fa fa-cloud-download"></i>
-		<i class="fa fa-cloud-upload"></i>
-		<i class="fa fa-cny"></i>
-		<i class="fa fa-code"></i>
-		<i class="fa fa-code-fork"></i>
-		<i class="fa fa-codepen"></i>
-		<i class="fa fa-codiepie"></i>
-		<i class="fa fa-coffee"></i>
-		<i class="fa fa-cog"></i>
-		<i class="fa fa-cogs"></i>
-		<i class="fa fa-columns"></i>
-		<i class="fa fa-comment"></i>
-		<i class="fa fa-comment-o"></i>
-		<i class="fa fa-commenting"></i>
-		<i class="fa fa-commenting-o"></i>
-		<i class="fa fa-comments"></i>
-		<i class="fa fa-comments-o"></i>
-		<i class="fa fa-compass"></i>
-		<i class="fa fa-compress"></i>
-		<i class="fa fa-connectdevelop"></i>
-		<i class="fa fa-contao"></i>
-		<i class="fa fa-copy"></i>
-		<i class="fa fa-copyright"></i>
-		<i class="fa fa-creative-commons"></i>
-		<i class="fa fa-credit-card"></i>
-		<i class="fa fa-credit-card-alt"></i>
-		<i class="fa fa-crop"></i>
-		<i class="fa fa-crosshairs"></i>
-		<i class="fa fa-css3"></i>
-		<i class="fa fa-cube"></i>
-		<i class="fa fa-cubes"></i>
-		<i class="fa fa-cut"></i>
-		<i class="fa fa-cutlery"></i>
-		<i class="fa fa-dashboard"></i>
-		<i class="fa fa-dashcube"></i>
-		<i class="fa fa-database"></i>
-		<i class="fa fa-deaf"></i>
-		<i class="fa fa-deafness"></i>
-		<i class="fa fa-dedent"></i>
-		<i class="fa fa-delicious"></i>
-		<i class="fa fa-desktop"></i>
-		<i class="fa fa-deviantart"></i>
-		<i class="fa fa-diamond"></i>
-		<i class="fa fa-digg"></i>
-		<i class="fa fa-dollar"></i>
-		<i class="fa fa-dot-circle-o"></i>
-		<i class="fa fa-download"></i>
-		<i class="fa fa-dribbble"></i>
-		<i class="fa fa-drivers-license"></i>
-		<i class="fa fa-drivers-license-o"></i>
-		<i class="fa fa-dropbox"></i>
-		<i class="fa fa-drupal"></i>
-		<i class="fa fa-edge"></i>
-		<i class="fa fa-edit"></i>
-		<i class="fa fa-eercast"></i>
-		<i class="fa fa-eject"></i>
-		<i class="fa fa-ellipsis-h"></i>
-		<i class="fa fa-ellipsis-v"></i>
-		<i class="fa fa-empire"></i>
-		<i class="fa fa-envelope"></i>
-		<i class="fa fa-envelope-o"></i>
-		<i class="fa fa-envelope-open"></i>
-		<i class="fa fa-envelope-open-o"></i>
-		<i class="fa fa-envelope-square"></i>
-		<i class="fa fa-envira"></i>
-		<i class="fa fa-eraser"></i>
-		<i class="fa fa-etsy"></i>
-		<i class="fa fa-eur"></i>
-		<i class="fa fa-euro"></i>
-		<i class="fa fa-exchange"></i>
-		<i class="fa fa-exclamation"></i>
-		<i class="fa fa-exclamation-circle"></i>
-		<i class="fa fa-exclamation-triangle"></i>
-		<i class="fa fa-expand"></i>
-		<i class="fa fa-expeditedssl"></i>
-		<i class="fa fa-external-link"></i>
-		<i class="fa fa-external-link-square"></i>
-		<i class="fa fa-eye"></i>
-		<i class="fa fa-eye-slash"></i>
-		<i class="fa fa-eyedropper"></i>
-		<i class="fa fa-fa"></i>
-		<i class="fa fa-facebook"></i>
-		<i class="fa fa-facebook-f"></i>
-		<i class="fa fa-facebook-official"></i>
-		<i class="fa fa-facebook-square"></i>
-		<i class="fa fa-fast-backward"></i>
-		<i class="fa fa-fast-forward"></i>
-		<i class="fa fa-fax"></i>
-		<i class="fa fa-feed"></i>
-		<i class="fa fa-female"></i>
-		<i class="fa fa-fighter-jet"></i>
-		<i class="fa fa-file"></i>
-		<i class="fa fa-file-archive-o"></i>
-		<i class="fa fa-file-audio-o"></i>
-		<i class="fa fa-file-code-o"></i>
-		<i class="fa fa-file-excel-o"></i>
-		<i class="fa fa-file-image-o"></i>
-		<i class="fa fa-file-movie-o"></i>
-		<i class="fa fa-file-o"></i>
-		<i class="fa fa-file-pdf-o"></i>
-		<i class="fa fa-file-photo-o"></i>
-		<i class="fa fa-file-picture-o"></i>
-		<i class="fa fa-file-powerpoint-o"></i>
-		<i class="fa fa-file-sound-o"></i>
-		<i class="fa fa-file-text"></i>
-		<i class="fa fa-file-text-o"></i>
-		<i class="fa fa-file-video-o"></i>
-		<i class="fa fa-file-word-o"></i>
-		<i class="fa fa-file-zip-o"></i>
-		<i class="fa fa-files-o"></i>
-		<i class="fa fa-film"></i>
-		<i class="fa fa-filter"></i>
-		<i class="fa fa-fire"></i>
-		<i class="fa fa-fire-extinguisher"></i>
-		<i class="fa fa-firefox"></i>
-		<i class="fa fa-first-order"></i>
-		<i class="fa fa-flag"></i>
-		<i class="fa fa-flag-checkered"></i>
-		<i class="fa fa-flag-o"></i>
-		<i class="fa fa-flash"></i>
-		<i class="fa fa-flask"></i>
-		<i class="fa fa-flickr"></i>
-		<i class="fa fa-floppy-o"></i>
-		<i class="fa fa-folder"></i>
-		<i class="fa fa-folder-o"></i>
-		<i class="fa fa-folder-open"></i>
-		<i class="fa fa-folder-open-o"></i>
-		<i class="fa fa-font"></i>
-		<i class="fa fa-font-awesome"></i>
-		<i class="fa fa-fonticons"></i>
-		<i class="fa fa-fort-awesome"></i>
-		<i class="fa fa-forumbee"></i>
-		<i class="fa fa-forward"></i>
-		<i class="fa fa-foursquare"></i>
-		<i class="fa fa-free-code-camp"></i>
-		<i class="fa fa-frown-o"></i>
-		<i class="fa fa-futbol-o"></i>
-		<i class="fa fa-gamepad"></i>
-		<i class="fa fa-gavel"></i>
-		<i class="fa fa-gbp"></i>
-		<i class="fa fa-ge"></i>
-		<i class="fa fa-gear"></i>
-		<i class="fa fa-gears"></i>
-		<i class="fa fa-genderless"></i>
-		<i class="fa fa-get-pocket"></i>
-		<i class="fa fa-gg"></i>
-		<i class="fa fa-gg-circle"></i>
-		<i class="fa fa-gift"></i>
-		<i class="fa fa-git"></i>
-		<i class="fa fa-git-square"></i>
-		<i class="fa fa-github"></i>
-		<i class="fa fa-github-alt"></i>
-		<i class="fa fa-github-square"></i>
-		<i class="fa fa-gitlab"></i>
-		<i class="fa fa-gittip"></i>
-		<i class="fa fa-glass"></i>
-		<i class="fa fa-glide"></i>
-		<i class="fa fa-glide-g"></i>
-		<i class="fa fa-globe"></i>
-		<i class="fa fa-google"></i>
-		<i class="fa fa-google-plus"></i>
-		<i class="fa fa-google-plus-circle"></i>
-		<i class="fa fa-google-plus-official"></i>
-		<i class="fa fa-google-plus-square"></i>
-		<i class="fa fa-google-wallet"></i>
-		<i class="fa fa-graduation-cap"></i>
-		<i class="fa fa-gratipay"></i>
-		<i class="fa fa-grav"></i>
-		<i class="fa fa-group"></i>
-		<i class="fa fa-h-square"></i>
-		<i class="fa fa-hacker-news"></i>
-		<i class="fa fa-hand-grab-o"></i>
-		<i class="fa fa-hand-lizard-o"></i>
-		<i class="fa fa-hand-o-down"></i>
-		<i class="fa fa-hand-o-left"></i>
-		<i class="fa fa-hand-o-right"></i>
-		<i class="fa fa-hand-o-up"></i>
-		<i class="fa fa-hand-paper-o"></i>
-		<i class="fa fa-hand-peace-o"></i>
-		<i class="fa fa-hand-pointer-o"></i>
-		<i class="fa fa-hand-rock-o"></i>
-		<i class="fa fa-hand-scissors-o"></i>
-		<i class="fa fa-hand-spock-o"></i>
-		<i class="fa fa-hand-stop-o"></i>
-		<i class="fa fa-handshake-o"></i>
-		<i class="fa fa-hard-of-hearing"></i>
-		<i class="fa fa-hashtag"></i>
-		<i class="fa fa-hdd-o"></i>
-		<i class="fa fa-header"></i>
-		<i class="fa fa-headphones"></i>
-		<i class="fa fa-heart"></i>
-		<i class="fa fa-heart-o"></i>
-		<i class="fa fa-heartbeat"></i>
-		<i class="fa fa-history"></i>
-		<i class="fa fa-home"></i>
-		<i class="fa fa-hospital-o"></i>
-		<i class="fa fa-hotel"></i>
-		<i class="fa fa-hourglass"></i>
-		<i class="fa fa-hourglass-1"></i>
-		<i class="fa fa-hourglass-2"></i>
-		<i class="fa fa-hourglass-3"></i>
-		<i class="fa fa-hourglass-end"></i>
-		<i class="fa fa-hourglass-half"></i>
-		<i class="fa fa-hourglass-o"></i>
-		<i class="fa fa-hourglass-start"></i>
-		<i class="fa fa-houzz"></i>
-		<i class="fa fa-html5"></i>
-		<i class="fa fa-i-cursor"></i>
-		<i class="fa fa-id-badge"></i>
-		<i class="fa fa-id-card"></i>
-		<i class="fa fa-id-card-o"></i>
-		<i class="fa fa-ils"></i>
-		<i class="fa fa-image"></i>
-		<i class="fa fa-imdb"></i>
-		<i class="fa fa-inbox"></i>
-		<i class="fa fa-indent"></i>
-		<i class="fa fa-industry"></i>
-		<i class="fa fa-info"></i>
-		<i class="fa fa-info-circle"></i>
-		<i class="fa fa-inr"></i>
-		<i class="fa fa-instagram"></i>
-		<i class="fa fa-institution"></i>
-		<i class="fa fa-internet-explorer"></i>
-		<i class="fa fa-intersex"></i>
-		<i class="fa fa-ioxhost"></i>
-		<i class="fa fa-italic"></i>
-		<i class="fa fa-joomla"></i>
-		<i class="fa fa-jpy"></i>
-		<i class="fa fa-jsfiddle"></i>
-		<i class="fa fa-key"></i>
-		<i class="fa fa-keyboard-o"></i>
-		<i class="fa fa-krw"></i>
-		<i class="fa fa-language"></i>
-		<i class="fa fa-laptop"></i>
-		<i class="fa fa-lastfm"></i>
-		<i class="fa fa-lastfm-square"></i>
-		<i class="fa fa-leaf"></i>
-		<i class="fa fa-leanpub"></i>
-		<i class="fa fa-legal"></i>
-		<i class="fa fa-lemon-o"></i>
-		<i class="fa fa-level-down"></i>
-		<i class="fa fa-level-up"></i>
-		<i class="fa fa-life-bouy"></i>
-		<i class="fa fa-life-buoy"></i>
-		<i class="fa fa-life-ring"></i>
-		<i class="fa fa-life-saver"></i>
-		<i class="fa fa-lightbulb-o"></i>
-		<i class="fa fa-line-chart"></i>
-		<i class="fa fa-link"></i>
-		<i class="fa fa-linkedin"></i>
-		<i class="fa fa-linkedin-square"></i>
-		<i class="fa fa-linode"></i>
-		<i class="fa fa-linux"></i>
-		<i class="fa fa-list"></i>
-		<i class="fa fa-list-alt"></i>
-		<i class="fa fa-list-ol"></i>
-		<i class="fa fa-list-ul"></i>
-		<i class="fa fa-location-arrow"></i>
-		<i class="fa fa-lock"></i>
-		<i class="fa fa-long-arrow-down"></i>
-		<i class="fa fa-long-arrow-left"></i>
-		<i class="fa fa-long-arrow-right"></i>
-		<i class="fa fa-long-arrow-up"></i>
-		<i class="fa fa-low-vision"></i>
-		<i class="fa fa-magic"></i>
-		<i class="fa fa-magnet"></i>
-		<i class="fa fa-mail-forward"></i>
-		<i class="fa fa-mail-reply"></i>
-		<i class="fa fa-mail-reply-all"></i>
-		<i class="fa fa-male"></i>
-		<i class="fa fa-map"></i>
-		<i class="fa fa-map-marker"></i>
-		<i class="fa fa-map-o"></i>
-		<i class="fa fa-map-pin"></i>
-		<i class="fa fa-map-signs"></i>
-		<i class="fa fa-mars"></i>
-		<i class="fa fa-mars-double"></i>
-		<i class="fa fa-mars-stroke"></i>
-		<i class="fa fa-mars-stroke-h"></i>
-		<i class="fa fa-mars-stroke-v"></i>
-		<i class="fa fa-maxcdn"></i>
-		<i class="fa fa-meanpath"></i>
-		<i class="fa fa-medium"></i>
-		<i class="fa fa-medkit"></i>
-		<i class="fa fa-meetup"></i>
-		<i class="fa fa-meh-o"></i>
-		<i class="fa fa-mercury"></i>
-		<i class="fa fa-microchip"></i>
-		<i class="fa fa-microphone"></i>
-		<i class="fa fa-microphone-slash"></i>
-		<i class="fa fa-minus"></i>
-		<i class="fa fa-minus-circle"></i>
-		<i class="fa fa-minus-square"></i>
-		<i class="fa fa-minus-square-o"></i>
-		<i class="fa fa-mixcloud"></i>
-		<i class="fa fa-mobile"></i>
-		<i class="fa fa-mobile-phone"></i>
-		<i class="fa fa-modx"></i>
-		<i class="fa fa-money"></i>
-		<i class="fa fa-moon-o"></i>
-		<i class="fa fa-mortar-board"></i>
-		<i class="fa fa-motorcycle"></i>
-		<i class="fa fa-mouse-pointer"></i>
-		<i class="fa fa-music"></i>
-		<i class="fa fa-navicon"></i>
-		<i class="fa fa-neuter"></i>
-		<i class="fa fa-newspaper-o"></i>
-		<i class="fa fa-object-group"></i>
-		<i class="fa fa-object-ungroup"></i>
-		<i class="fa fa-odnoklassniki"></i>
-		<i class="fa fa-odnoklassniki-square"></i>
-		<i class="fa fa-opencart"></i>
-		<i class="fa fa-openid"></i>
-		<i class="fa fa-opera"></i>
-		<i class="fa fa-optin-monster"></i>
-		<i class="fa fa-outdent"></i>
-		<i class="fa fa-pagelines"></i>
-		<i class="fa fa-paint-brush"></i>
-		<i class="fa fa-paper-plane"></i>
-		<i class="fa fa-paper-plane-o"></i>
-		<i class="fa fa-paperclip"></i>
-		<i class="fa fa-paragraph"></i>
-		<i class="fa fa-paste"></i>
-		<i class="fa fa-pause"></i>
-		<i class="fa fa-pause-circle"></i>
-		<i class="fa fa-pause-circle-o"></i>
-		<i class="fa fa-paw"></i>
-		<i class="fa fa-paypal"></i>
-		<i class="fa fa-pencil"></i>
-		<i class="fa fa-pencil-square"></i>
-		<i class="fa fa-pencil-square-o"></i>
-		<i class="fa fa-percent"></i>
-		<i class="fa fa-phone"></i>
-		<i class="fa fa-phone-square"></i>
-		<i class="fa fa-photo"></i>
-		<i class="fa fa-picture-o"></i>
-		<i class="fa fa-pie-chart"></i>
-		<i class="fa fa-pied-piper"></i>
-		<i class="fa fa-pied-piper-alt"></i>
-		<i class="fa fa-pied-piper-pp"></i>
-		<i class="fa fa-pinterest"></i>
-		<i class="fa fa-pinterest-p"></i>
-		<i class="fa fa-pinterest-square"></i>
-		<i class="fa fa-plane"></i>
-		<i class="fa fa-play"></i>
-		<i class="fa fa-play-circle"></i>
-		<i class="fa fa-play-circle-o"></i>
-		<i class="fa fa-plug"></i>
-		<i class="fa fa-plus"></i>
-		<i class="fa fa-plus-circle"></i>
-		<i class="fa fa-plus-square"></i>
-		<i class="fa fa-plus-square-o"></i>
-		<i class="fa fa-podcast"></i>
-		<i class="fa fa-power-off"></i>
-		<i class="fa fa-print"></i>
-		<i class="fa fa-product-hunt"></i>
-		<i class="fa fa-puzzle-piece"></i>
-		<i class="fa fa-qq"></i>
-		<i class="fa fa-qrcode"></i>
-		<i class="fa fa-question"></i>
-		<i class="fa fa-question-circle"></i>
-		<i class="fa fa-question-circle-o"></i>
-		<i class="fa fa-quora"></i>
-		<i class="fa fa-quote-left"></i>
-		<i class="fa fa-quote-right"></i>
-		<i class="fa fa-ra"></i>
-		<i class="fa fa-random"></i>
-		<i class="fa fa-ravelry"></i>
-		<i class="fa fa-rebel"></i>
-		<i class="fa fa-recycle"></i>
-		<i class="fa fa-reddit"></i>
-		<i class="fa fa-reddit-alien"></i>
-		<i class="fa fa-reddit-square"></i>
-		<i class="fa fa-refresh"></i>
-		<i class="fa fa-registered"></i>
-		<i class="fa fa-remove"></i>
-		<i class="fa fa-renren"></i>
-		<i class="fa fa-reorder"></i>
-		<i class="fa fa-repeat"></i>
-		<i class="fa fa-reply"></i>
-		<i class="fa fa-reply-all"></i>
-		<i class="fa fa-resistance"></i>
-		<i class="fa fa-retweet"></i>
-		<i class="fa fa-rmb"></i>
-		<i class="fa fa-road"></i>
-		<i class="fa fa-rocket"></i>
-		<i class="fa fa-rotate-left"></i>
-		<i class="fa fa-rotate-right"></i>
-		<i class="fa fa-rouble"></i>
-		<i class="fa fa-rss"></i>
-		<i class="fa fa-rss-square"></i>
-		<i class="fa fa-rub"></i>
-		<i class="fa fa-ruble"></i>
-		<i class="fa fa-rupee"></i>
-		<i class="fa fa-s15"></i>
-		<i class="fa fa-safari"></i>
-		<i class="fa fa-save"></i>
-		<i class="fa fa-scissors"></i>
-		<i class="fa fa-scribd"></i>
-		<i class="fa fa-search"></i>
-		<i class="fa fa-search-minus"></i>
-		<i class="fa fa-search-plus"></i>
-		<i class="fa fa-sellsy"></i>
-		<i class="fa fa-send"></i>
-		<i class="fa fa-send-o"></i>
-		<i class="fa fa-server"></i>
-		<i class="fa fa-share"></i>
-		<i class="fa fa-share-alt"></i>
-		<i class="fa fa-share-alt-square"></i>
-		<i class="fa fa-share-square"></i>
-		<i class="fa fa-share-square-o"></i>
-		<i class="fa fa-shekel"></i>
-		<i class="fa fa-sheqel"></i>
-		<i class="fa fa-shield"></i>
-		<i class="fa fa-ship"></i>
-		<i class="fa fa-shirtsinbulk"></i>
-		<i class="fa fa-shopping-bag"></i>
-		<i class="fa fa-shopping-basket"></i>
-		<i class="fa fa-shopping-cart"></i>
-		<i class="fa fa-shower"></i>
-		<i class="fa fa-sign-in"></i>
-		<i class="fa fa-sign-language"></i>
-		<i class="fa fa-sign-out"></i>
-		<i class="fa fa-signal"></i>
-		<i class="fa fa-signing"></i>
-		<i class="fa fa-simplybuilt"></i>
-		<i class="fa fa-sitemap"></i>
-		<i class="fa fa-skyatlas"></i>
-		<i class="fa fa-skype"></i>
-		<i class="fa fa-slack"></i>
-		<i class="fa fa-sliders"></i>
-		<i class="fa fa-slideshare"></i>
-		<i class="fa fa-smile-o"></i>
-		<i class="fa fa-snapchat"></i>
-		<i class="fa fa-snapchat-ghost"></i>
-		<i class="fa fa-snapchat-square"></i>
-		<i class="fa fa-snowflake-o"></i>
-		<i class="fa fa-soccer-ball-o"></i>
-		<i class="fa fa-sort"></i>
-		<i class="fa fa-sort-alpha-asc"></i>
-		<i class="fa fa-sort-alpha-desc"></i>
-		<i class="fa fa-sort-amount-asc"></i>
-		<i class="fa fa-sort-amount-desc"></i>
-		<i class="fa fa-sort-asc"></i>
-		<i class="fa fa-sort-desc"></i>
-		<i class="fa fa-sort-down"></i>
-		<i class="fa fa-sort-numeric-asc"></i>
-		<i class="fa fa-sort-numeric-desc"></i>
-		<i class="fa fa-sort-up"></i>
-		<i class="fa fa-soundcloud"></i>
-		<i class="fa fa-space-shuttle"></i>
-		<i class="fa fa-spinner"></i>
-		<i class="fa fa-spoon"></i>
-		<i class="fa fa-spotify"></i>
-		<i class="fa fa-square"></i>
-		<i class="fa fa-square-o"></i>
-		<i class="fa fa-stack-exchange"></i>
-		<i class="fa fa-stack-overflow"></i>
-		<i class="fa fa-star"></i>
-		<i class="fa fa-star-half"></i>
-		<i class="fa fa-star-half-empty"></i>
-		<i class="fa fa-star-half-full"></i>
-		<i class="fa fa-star-half-o"></i>
-		<i class="fa fa-star-o"></i>
-		<i class="fa fa-steam"></i>
-		<i class="fa fa-steam-square"></i>
-		<i class="fa fa-step-backward"></i>
-		<i class="fa fa-step-forward"></i>
-		<i class="fa fa-stethoscope"></i>
-		<i class="fa fa-sticky-note"></i>
-		<i class="fa fa-sticky-note-o"></i>
-		<i class="fa fa-stop"></i>
-		<i class="fa fa-stop-circle"></i>
-		<i class="fa fa-stop-circle-o"></i>
-		<i class="fa fa-street-view"></i>
-		<i class="fa fa-strikethrough"></i>
-		<i class="fa fa-stumbleupon"></i>
-		<i class="fa fa-stumbleupon-circle"></i>
-		<i class="fa fa-subscript"></i>
-		<i class="fa fa-subway"></i>
-		<i class="fa fa-suitcase"></i>
-		<i class="fa fa-sun-o"></i>
-		<i class="fa fa-superpowers"></i>
-		<i class="fa fa-superscript"></i>
-		<i class="fa fa-support"></i>
-		<i class="fa fa-table"></i>
-		<i class="fa fa-tablet"></i>
-		<i class="fa fa-tachometer"></i>
-		<i class="fa fa-tag"></i>
-		<i class="fa fa-tags"></i>
-		<i class="fa fa-tasks"></i>
-		<i class="fa fa-taxi"></i>
-		<i class="fa fa-telegram"></i>
-		<i class="fa fa-television"></i>
-		<i class="fa fa-tencent-weibo"></i>
-		<i class="fa fa-terminal"></i>
-		<i class="fa fa-text-height"></i>
-		<i class="fa fa-text-width"></i>
-		<i class="fa fa-th"></i>
-		<i class="fa fa-th-large"></i>
-		<i class="fa fa-th-list"></i>
-		<i class="fa fa-themeisle"></i>
-		<i class="fa fa-thermometer"></i>
-		<i class="fa fa-thermometer-0"></i>
-		<i class="fa fa-thermometer-1"></i>
-		<i class="fa fa-thermometer-2"></i>
-		<i class="fa fa-thermometer-3"></i>
-		<i class="fa fa-thermometer-4"></i>
-		<i class="fa fa-thermometer-empty"></i>
-		<i class="fa fa-thermometer-full"></i>
-		<i class="fa fa-thermometer-half"></i>
-		<i class="fa fa-thermometer-quarter"></i>
-		<i class="fa fa-thermometer-three-quarters"></i>
-		<i class="fa fa-thumb-tack"></i>
-		<i class="fa fa-thumbs-down"></i>
-		<i class="fa fa-thumbs-o-down"></i>
-		<i class="fa fa-thumbs-o-up"></i>
-		<i class="fa fa-thumbs-up"></i>
-		<i class="fa fa-ticket"></i>
-		<i class="fa fa-times"></i>
-		<i class="fa fa-times-circle"></i>
-		<i class="fa fa-times-circle-o"></i>
-		<i class="fa fa-times-rectangle"></i>
-		<i class="fa fa-times-rectangle-o"></i>
-		<i class="fa fa-tint"></i>
-		<i class="fa fa-toggle-down"></i>
-		<i class="fa fa-toggle-left"></i>
-		<i class="fa fa-toggle-off"></i>
-		<i class="fa fa-toggle-on"></i>
-		<i class="fa fa-toggle-right"></i>
-		<i class="fa fa-toggle-up"></i>
-		<i class="fa fa-trademark"></i>
-		<i class="fa fa-train"></i>
-		<i class="fa fa-transgender"></i>
-		<i class="fa fa-transgender-alt"></i>
-		<i class="fa fa-trash"></i>
-		<i class="fa fa-trash-o"></i>
-		<i class="fa fa-tree"></i>
-		<i class="fa fa-trello"></i>
-		<i class="fa fa-tripadvisor"></i>
-		<i class="fa fa-trophy"></i>
-		<i class="fa fa-truck"></i>
-		<i class="fa fa-try"></i>
-		<i class="fa fa-tty"></i>
-		<i class="fa fa-tumblr"></i>
-		<i class="fa fa-tumblr-square"></i>
-		<i class="fa fa-turkish-lira"></i>
-		<i class="fa fa-tv"></i>
-		<i class="fa fa-twitch"></i>
-		<i class="fa fa-twitter"></i>
-		<i class="fa fa-twitter-square"></i>
-		<i class="fa fa-umbrella"></i>
-		<i class="fa fa-underline"></i>
-		<i class="fa fa-undo"></i>
-		<i class="fa fa-universal-access"></i>
-		<i class="fa fa-university"></i>
-		<i class="fa fa-unlink"></i>
-		<i class="fa fa-unlock"></i>
-		<i class="fa fa-unlock-alt"></i>
-		<i class="fa fa-unsorted"></i>
-		<i class="fa fa-upload"></i>
-		<i class="fa fa-usb"></i>
-		<i class="fa fa-usd"></i>
-		<i class="fa fa-user"></i>
-		<i class="fa fa-user-circle"></i>
-		<i class="fa fa-user-circle-o"></i>
-		<i class="fa fa-user-md"></i>
-		<i class="fa fa-user-o"></i>
-		<i class="fa fa-user-plus"></i>
-		<i class="fa fa-user-secret"></i>
-		<i class="fa fa-user-times"></i>
-		<i class="fa fa-users"></i>
-		<i class="fa fa-vcard"></i>
-		<i class="fa fa-vcard-o"></i>
-		<i class="fa fa-venus"></i>
-		<i class="fa fa-venus-double"></i>
-		<i class="fa fa-venus-mars"></i>
-		<i class="fa fa-viacoin"></i>
-		<i class="fa fa-viadeo"></i>
-		<i class="fa fa-viadeo-square"></i>
-		<i class="fa fa-video-camera"></i>
-		<i class="fa fa-vimeo"></i>
-		<i class="fa fa-vimeo-square"></i>
-		<i class="fa fa-vine"></i>
-		<i class="fa fa-vk"></i>
-		<i class="fa fa-volume-control-phone"></i>
-		<i class="fa fa-volume-down"></i>
-		<i class="fa fa-volume-off"></i>
-		<i class="fa fa-volume-up"></i>
-		<i class="fa fa-warning"></i>
-		<i class="fa fa-wechat"></i>
-		<i class="fa fa-weibo"></i>
-		<i class="fa fa-weixin"></i>
-		<i class="fa fa-whatsapp"></i>
-		<i class="fa fa-wheelchair"></i>
-		<i class="fa fa-wheelchair-alt"></i>
-		<i class="fa fa-wifi"></i>
-		<i class="fa fa-wikipedia-w"></i>
-		<i class="fa fa-window-close"></i>
-		<i class="fa fa-window-close-o"></i>
-		<i class="fa fa-window-maximize"></i>
-		<i class="fa fa-window-minimize"></i>
-		<i class="fa fa-window-restore"></i>
-		<i class="fa fa-windows"></i>
-		<i class="fa fa-won"></i>
-		<i class="fa fa-wordpress"></i>
-		<i class="fa fa-wpbeginner"></i>
-		<i class="fa fa-wpexplorer"></i>
-		<i class="fa fa-wpforms"></i>
-		<i class="fa fa-wrench"></i>
-		<i class="fa fa-xing"></i>
-		<i class="fa fa-xing-square"></i>
-		<i class="fa fa-y-combinator"></i>
-		<i class="fa fa-y-combinator-square"></i>
-		<i class="fa fa-yahoo"></i>
-		<i class="fa fa-yc"></i>
-		<i class="fa fa-yc-square"></i>
-		<i class="fa fa-yelp"></i>
-		<i class="fa fa-yen"></i>
-		<i class="fa fa-yoast"></i>
-		<i class="fa fa-youtube"></i>
-		<i class="fa fa-youtube-play"></i>
-		<i class="fa fa-youtube-square"></i>
-
+	<div class="d-flex nbb-fa-icons flex-wrap">
+		{{{ each icons }}}
+			<i class="fa fa-xl fa-{icons.style} fa-{icons.id}"></i>
+		{{{ end }}}
 	</div>
-	<p class="help-block text-center">
+	<p class="form-text text-center">
 		For a full list of icons, please consult:
-		<a href="https://fontawesome.com/v5.15/icons/">FontAwesome</a>
+		<a href="https://fontawesome.com/v6/icons/">FontAwesome</a>
 	</p>
 </div>
\ No newline at end of file
diff --git a/src/views/partials/footer/js.tpl b/src/views/partials/footer/js.tpl
index a0b8668f4c..5e35e36830 100644
--- a/src/views/partials/footer/js.tpl
+++ b/src/views/partials/footer/js.tpl
@@ -12,9 +12,9 @@
     }
 
     function prepareFooter() {
-        <!-- IF useCustomJS -->
+        {{{ if useCustomJS }}}
         {{customJS}}
-        <!-- ENDIF useCustomJS -->
+        {{{ end }}}
 
         $(document).ready(function () {
             app.coldLoad();
diff --git a/src/views/partials/gdpr_consent.tpl b/src/views/partials/gdpr_consent.tpl
index 7ee5b7db4d..50a80f2478 100644
--- a/src/views/partials/gdpr_consent.tpl
+++ b/src/views/partials/gdpr_consent.tpl
@@ -8,13 +8,13 @@
 	</div>
 	<p>
 		[[user:consent.email_intro]]
-		<!-- IF digestEnabled -->
+		{{{ if digestEnabled }}}
 		[[user:consent.digest_frequency, {digestFrequency}]]
-		<!-- ELSE -->
+		{{{ else }}}
 		[[user:consent.digest_off]]
-		<!-- END -->
+		{{{ end }}}
 	</p>
-	
+
 	<div class="checkbox">
 		<label>
 			<input type="checkbox" name="gdpr_agree_email" id="gdpr_agree_email"> <strong>[[register:gdpr_agree_email]]</strong>
diff --git a/src/views/partials/tags/filter-dropdown-left.tpl b/src/views/partials/tags/filter-dropdown-left.tpl
new file mode 100644
index 0000000000..f794a477d6
--- /dev/null
+++ b/src/views/partials/tags/filter-dropdown-left.tpl
@@ -0,0 +1,3 @@
+<div component="tag/filter" class="dropdown bottom-sheet">
+	<!-- IMPORT partials/tags/filter-dropdown-content.tpl -->
+</div>
\ No newline at end of file
diff --git a/src/views/partials/tags/filter-dropdown-right.tpl b/src/views/partials/tags/filter-dropdown-right.tpl
new file mode 100644
index 0000000000..daed15f46c
--- /dev/null
+++ b/src/views/partials/tags/filter-dropdown-right.tpl
@@ -0,0 +1,3 @@
+<div component="tag/filter" class="dropdown dropdown-right bottom-sheet">
+	<!-- IMPORT partials/tags/filter-dropdown-content.tpl -->
+</div>
diff --git a/src/views/partials/topic/deleted-message.tpl b/src/views/partials/topic/deleted-message.tpl
new file mode 100644
index 0000000000..0f7df69439
--- /dev/null
+++ b/src/views/partials/topic/deleted-message.tpl
@@ -0,0 +1,8 @@
+<div component="topic/deleted/message" class="alert alert-warning mt-3{{{ if !deleted }}} hidden{{{ end }}} d-flex justify-content-between flex-wrap">
+    <span>[[topic:deleted_message]]</span>
+    <span>
+        {{{ if deleter }}}
+        <a class="fw-bold" href="{config.relative_path}/user/{deleter.userslug}">{deleter.username}</a> <small class="timeago" title="{deletedTimestampISO}"></small>
+        {{{ end }}}
+    </span>
+</div>
\ No newline at end of file
diff --git a/src/views/partials/topic/merged-message.tpl b/src/views/partials/topic/merged-message.tpl
new file mode 100644
index 0000000000..5b24459d91
--- /dev/null
+++ b/src/views/partials/topic/merged-message.tpl
@@ -0,0 +1,6 @@
+<div component="topic/merged/message" class="alert alert-warning mt-3 d-flex justify-content-between flex-wrap">
+	<span>[[topic:merged_message, {config.relative_path}/topic/{mergeIntoTid}, {merger.mergedIntoTitle}]]</span>
+	<span>
+		<a class="fw-bold" href="{config.relative_path}/user/{merger.userslug}">{merger.username}</strong></a> <small class="timeago" title="{mergedTimestampISO}"></small>
+	</span>
+</div>
\ No newline at end of file
diff --git a/src/views/partials/topic/post-preview.tpl b/src/views/partials/topic/post-preview.tpl
index 666313112c..696a673f19 100644
--- a/src/views/partials/topic/post-preview.tpl
+++ b/src/views/partials/topic/post-preview.tpl
@@ -1,11 +1,11 @@
-<div id="post-tooltip" class="well" style="position:absolute; z-index: 1;">
+<div id="post-tooltip" class="card card-body shadow text-bg-light" style="position:absolute; z-index: 1;">
     <div class="clearfix">
-        <div class="icon pull-left">
+        <div class="icon float-start">
             <a href="{{{ if post.user.userslug }}}{config.relative_path}/user/{post.user.userslug}{{{ else }}}#{{{ end }}}">
-                {buildAvatar(post.user, "sm", true, "", "user/picture")} {post.user.username}
+                {buildAvatar(post.user, "24px", true, "", "user/picture")} {post.user.username}
             </a>
         </div>
-        <small class="pull-right">
+        <small class="float-end">
             <span class="timeago" title="{post.timestampISO}"></span>
         </small>
     </div>
diff --git a/src/views/partials/users/filter-dropdown-left.tpl b/src/views/partials/users/filter-dropdown-left.tpl
new file mode 100644
index 0000000000..3a5afc7f03
--- /dev/null
+++ b/src/views/partials/users/filter-dropdown-left.tpl
@@ -0,0 +1,3 @@
+<div class="dropdown bottom-sheet {{{ if !users.length }}}hidden{{{ end }}}">
+	<!-- IMPORT partials/users/filter-dropdown-content.tpl -->
+</div>
\ No newline at end of file
diff --git a/src/views/partials/users/filter-dropdown-right.tpl b/src/views/partials/users/filter-dropdown-right.tpl
new file mode 100644
index 0000000000..c9ace029a9
--- /dev/null
+++ b/src/views/partials/users/filter-dropdown-right.tpl
@@ -0,0 +1,3 @@
+<div class="dropdown dropdown-right bottom-sheet {{{ if !users.length }}}hidden{{{ end }}}">
+	<!-- IMPORT partials/users/filter-dropdown-content.tpl -->
+</div>
\ No newline at end of file
diff --git a/src/views/post-queue.tpl b/src/views/post-queue.tpl
new file mode 100644
index 0000000000..e5e51d7d75
--- /dev/null
+++ b/src/views/post-queue.tpl
@@ -0,0 +1,120 @@
+<!-- IMPORT partials/breadcrumbs.tpl -->
+
+{{{ if (!singlePost && posts.length) }}}
+<div class="btn-toolbar justify-content-end">
+	<div class="me-2">
+	<!-- IMPORT partials/category/filter-dropdown-right.tpl -->
+	</div>
+	<div class="btn-group bottom-sheet" component="post-queue/bulk-actions">
+		<button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false">
+			<i class="fa fa-clone"></i> [[post-queue:bulk-actions]] <span class="caret"></span>
+		</button>
+		<ul class="dropdown-menu dropdown-menu-end">
+			{{{ if canAccept }}}
+			<li><a class="dropdown-item" href="#" data-action="accept-all">[[post-queue:accept-all]]</a></li>
+			<li><a class="dropdown-item" href="#" data-action="accept-selected">[[post-queue:accept-selected]]</a></li>
+			<li class="dropdown-divider"></li>
+			<li><a class="dropdown-item" href="#" data-action="reject-all">[[post-queue:reject-all]]</a></li>
+			<li><a class="dropdown-item" href="#" data-action="reject-selected">[[post-queue:reject-selected]]</a></li>
+			{{{ else }}}
+			<li><a class="dropdown-item" href="#" data-action="reject-all">[[post-queue:remove-all]]</a></li>
+			<li><a class="dropdown-item" href="#" data-action="reject-selected">[[post-queue:remove-selected]]</a></li>
+			{{{ end }}}
+		</ul>
+	</div>
+</div>
+
+<hr/>
+{{{ end }}}
+
+<div class="row">
+	<div class="col-12">
+		<div class="post-queue preventSlideout posts-list">
+			{{{ if (!posts.length && isAdmin) }}}
+			{{{ if !singlePost }}}
+			<div class="alert alert-info">
+				<p>[[post-queue:no-queued-posts]]</p>
+				{{{ if !enabled }}}<p>[[post-queue:enabling-help, {config.relative_path}/admin/settings/post#post-queue]]</p>{{{ end }}}
+			</div>
+			{{{ else }}}
+			<div class="alert alert-info d-flex align-items-center">
+				<p class="mb-0 me-auto">[[post-queue:no-single-post]]</p>
+				<a class="btn btn-sm btn-primary" href=".">[[post-queue:back-to-list]]</a>
+			</div>
+			{{{ end }}}
+			{{{ end }}}
+
+			{{{ each posts }}}
+			<div class="card mb-3" data-id="{posts.id}">
+				<div class="card-header">
+					{{{ if !singlePost }}}
+					<input type="checkbox" class="form-check-input" autocomplete="off" />
+					{{{ end }}}
+					<strong>{{{ if posts.data.tid }}}[[post-queue:reply]]{{{ else }}}[[post-queue:topic]]{{{ end }}}</strong>
+					<span class="timeago float-end" title={posts.data.timestampISO}></span>
+				</div>
+				<div class="card-body">
+					<div class="row">
+						<div class="col-lg-2 col-12">
+							<strong>[[post-queue:user]]</strong>
+							<div>
+								{{{ if posts.user.userslug}}}
+								<a href="{config.relative_path}/uid/{posts.user.uid}">{buildAvatar(posts.user, "24px", true, "not-responsive")} {posts.user.username}</a>
+								{{{ else }}}
+								{posts.user.username}
+								{{{ end }}}
+							</div>
+						</div>
+						<div class="col-lg-3 col-12">
+							<strong>[[post-queue:category]]{{{ if posts.data.cid}}} <i class="fa fa-fw fa-edit" data-bs-toggle="tooltip" title="[[post-queue:category-editable]]"></i>{{{ end }}}</strong>
+							<div class="topic-category" {{{if posts.data.cid}}}data-editable="editable"{{{end}}}">
+								<a href="{config.relative_path}/category/{posts.category.slug}">
+									<div class="category-item d-inline-block">
+										{buildCategoryIcon(./category, "24px", "rounded-circle")}
+										{posts.category.name}
+									</div>
+								</a>
+							</div>
+						</div>
+						<div class="col-lg-7 col-12">
+							<strong>{{{ if posts.data.tid }}}[[post-queue:topic]]{{{ else }}}[[post-queue:title]] <i class="fa fa-fw fa-edit" data-bs-toggle="tooltip" title="[[post-queue:title-editable]]"></i>{{{ end }}}</strong>
+							<div class="topic-title text-break">
+								{{{ if posts.data.tid }}}
+								<a href="{config.relative_path}/topic/{posts.data.tid}">{posts.topic.title}</a>
+								{{{ end }}}
+								<span class="title-text">{posts.data.title}</span>
+							</div>
+							{{{if !posts.data.tid}}}
+							<div class="topic-title-editable hidden">
+								<input class="form-control" type="text" value="{posts.data.title}"/>
+							</div>
+							{{{end}}}
+						</div>
+					</div>
+					<hr/>
+					<div>
+						<strong>[[post-queue:content]] <i class="fa fa-fw fa-edit" data-bs-toggle="tooltip" title="[[post-queue:content-editable]]"></i></strong>
+						<div class="post-content text-break">{posts.data.content}</div>
+						<div class="post-content-editable hidden">
+							<textarea class="form-control w-100" style="height:300px;">{posts.data.rawContent}</textarea>
+						</div>
+					</div>
+				</div>
+				<div class="card-footer text-end">
+					<div>
+						{{{ if ./canAccept }}}
+						<button class="btn btn-danger btn-sm" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:reject]]</button>
+						<button class="btn btn-info btn-sm" data-action="notify"><i class="fa fa-fw fa-bell-o"></i> [[post-queue:notify]]</button>
+						<button class="btn btn-success btn-sm" data-action="accept"><i class="fa fa-fw fa-check"></i> [[post-queue:accept]] </button>
+						{{{ else }}}
+						<button class="btn btn-danger btn-sm" data-action="reject"><i class="fa fa-fw fa-times"></i> [[post-queue:remove]]</button>
+						{{{ end }}}
+					</div>
+				</div>
+			</div>
+			{{{ end }}}
+		</div>
+
+		<!-- IMPORT partials/paginator.tpl -->
+	</div>
+</div>
\ No newline at end of file
diff --git a/src/views/registerComplete.tpl b/src/views/registerComplete.tpl
new file mode 100644
index 0000000000..0182896da1
--- /dev/null
+++ b/src/views/registerComplete.tpl
@@ -0,0 +1,45 @@
+<!-- IMPORT partials/breadcrumbs.tpl -->
+
+<div class="row">
+	<div class="col-12 col-sm-8 offset-sm-2">
+		<p class="lead text-center">
+			{{{ if register }}}[[register:interstitial.intro-new]]{{{ else }}}[[register:interstitial.intro]]{{{ end }}}
+		</p>
+
+		{{{ if errors.length }}}
+		<div class="alert alert-warning">
+			<p>
+				[[register:interstitial.errors-found]]
+			</p>
+			<ul>
+				{{{each errors}}}
+				<li>{@value}</li>
+				{{{end}}}
+			</ul>
+		</div>
+		{{{ end }}}
+	</div>
+</div>
+
+<form role="form" method="post" action="{config.relative_path}/register/complete" enctype="multipart/form-data">
+	<input type="hidden" name="csrf_token" value="{config.csrf_token}" />
+
+	{{{each sections}}}
+	<div class="row mb-3">
+		<div class="col-12 col-sm-8 offset-sm-2">
+			<div class="card">
+				<div class="card-body">
+					{@value}
+				</div>
+			</div>
+		</div>
+	</div>
+	{{{end}}}
+
+	<div class="row mt-3">
+		<div class="col-12 col-sm-8 offset-sm-2 d-grid">
+			<button class="btn btn-primary">[[topic:composer.submit]]</button>
+			<button class="btn btn-link" formaction="{config.relative_path}/register/abort">{{{ if register }}}[[register:cancel_registration]]{{{ else }}}[[modules:bootbox.cancel]]{{{ end }}}</button>
+		</div>
+	</div>
+</form>
diff --git a/src/views/reset.tpl b/src/views/reset.tpl
new file mode 100644
index 0000000000..fd35a8e72c
--- /dev/null
+++ b/src/views/reset.tpl
@@ -0,0 +1,24 @@
+<!-- IMPORT partials/breadcrumbs.tpl -->
+
+<div class="alert alert-info">
+	[[reset_password:enter_email]]
+</div>
+
+<div class="card card-body bg-light">
+	<div class="alert alert-success alert-dismissible hide" id="success">
+		<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
+		[[reset_password:password_reset_sent]]
+	</div>
+	<div class="alert alert-danger alert-dismissible hide" id="error">
+		<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
+		[[reset_password:invalid_email]]
+	</div>
+	<form onsubmit="return false;">
+		<div class="mb-3">
+			<input type="email" class="form-control form-control-lg" id="email" placeholder="[[reset_password:enter_email_address]]" autocomplete="off">
+		</div>
+		<div class="d-grid">
+			<button class="btn btn-primary btn-lg" id="reset" type="submit">[[reset_password:reset_password]]</button>
+		</div>
+	</form>
+</div>
diff --git a/src/views/reset_code.tpl b/src/views/reset_code.tpl
new file mode 100644
index 0000000000..49aca47400
--- /dev/null
+++ b/src/views/reset_code.tpl
@@ -0,0 +1,42 @@
+<!-- IMPORT partials/breadcrumbs.tpl -->
+
+{{{ if valid }}}
+<div class="card card-body bg-light">
+	{{{ if displayExpiryNotice }}}
+	<div class="alert alert-warning">
+		[[reset_password:password_expired]]
+	</div>
+	{{{ end }}}
+	<div class="alert alert-success alert-dismissible hidden" id="success">
+		<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
+		<strong>[[reset_password:password_changed.title]]</strong>
+		<p>[[reset_password:password_changed.message]]</p>
+	</div>
+	<div class="alert alert-warning hidden" id="notice">
+		<strong></strong>
+		<p></p>
+	</div>
+	<form onsubmit="return false;" id="reset-form" class="row">
+		<div class="col-sm-6">
+			<label class="form-label" for="password">[[reset_password:new_password]]</label>
+			<input class="form-control" type="password" placeholder="[[reset_password:new_password]]" id="password" /><br />
+		</div>
+		<div class="col-sm-6">
+			<label class="form-label" for="repeat">[[reset_password:repeat_password]]</label>
+			<input class="form-control" type="password" placeholder="[[reset_password:repeat_password]]" id="repeat" /><br />
+		</div>
+		<div class="col-12">
+			<button class="btn btn-primary btn-block" id="reset" type="submit">[[reset_password:reset_password]]</button>
+		</div>
+	</form>
+</div>
+{{{ else }}}
+<div class="card bg-danger">
+	<h5 class="card-header">
+		[[reset_password:wrong_reset_code.title]]
+	</h5>
+	<div class="card-body">
+		<p>[[reset_password:wrong_reset_code.message]]</p>
+	</div>
+</div>
+{{{ end }}}
\ No newline at end of file
diff --git a/src/views/tos.tpl b/src/views/tos.tpl
new file mode 100644
index 0000000000..dcf6813f82
--- /dev/null
+++ b/src/views/tos.tpl
@@ -0,0 +1,4 @@
+<h3>[[register:terms_of_use]]</h3>
+<hr/>
+
+{termsOfUse}
diff --git a/src/views/unsubscribe.tpl b/src/views/unsubscribe.tpl
new file mode 100644
index 0000000000..9dd1278449
--- /dev/null
+++ b/src/views/unsubscribe.tpl
@@ -0,0 +1,15 @@
+{{{ if !error }}}
+<div class="alert alert-success">
+	<strong>[[global:alert.success]]</strong>
+	<p>[[email:unsub.success, {payload.template}]]</p>
+{{{ else }}}
+<div class="alert alert-warning">
+	<strong>[[email:unsub.failure.title]]</strong>
+	<p>[[email:unsub.failure.message, {error}, {config.relative_path}/me/settings]]</p>
+{{{ end }}}
+	<hr />
+
+	<p>
+		<a href="{config.relative_path}/">[[notifications:back_to_home, {config.siteTitle}]]</a>
+	</p>
+</div>
\ No newline at end of file
diff --git a/src/widgets/index.js b/src/widgets/index.js
index 473a33a820..03b765740a 100644
--- a/src/widgets/index.js
+++ b/src/widgets/index.js
@@ -27,7 +27,7 @@ widgets.render = async function (uid, options) {
 	const returnData = {};
 	locations.forEach((location, i) => {
 		if (Array.isArray(widgetData[i]) && widgetData[i].length) {
-			returnData[location] = widgetData[i].filter(Boolean);
+			returnData[location] = widgetData[i].filter(widget => widget && widget.html);
 		}
 	});
 
diff --git a/test/api.js b/test/api.js
index cc13650770..e76ec8a216 100644
--- a/test/api.js
+++ b/test/api.js
@@ -24,6 +24,7 @@ const plugins = require('../src/plugins');
 const flags = require('../src/flags');
 const messaging = require('../src/messaging');
 const utils = require('../src/utils');
+const api = require('../src/api');
 
 describe('API', async () => {
 	let readApi = false;
@@ -48,9 +49,29 @@ describe('API', async () => {
 					}, nconf.get('secret')))(),
 				},
 			],
+			'/api/confirm/{code}': [
+				{
+					in: 'path',
+					name: 'code',
+					example: '', // to be defined later...
+				},
+			],
 		},
 		post: {},
-		put: {},
+		put: {
+			'/groups/{slug}/pending/{uid}': [
+				{
+					in: 'path',
+					name: 'slug',
+					example: 'private-group',
+				},
+				{
+					in: 'path',
+					name: 'uid',
+					example: '', // to be defined later...
+				},
+			],
+		},
 		delete: {
 			'/users/{uid}/tokens/{token}': [
 				{
@@ -88,6 +109,30 @@ describe('API', async () => {
 					example: '', // to be defined below...
 				},
 			],
+			'/groups/{slug}/pending/{uid}': [
+				{
+					in: 'path',
+					name: 'slug',
+					example: 'private-group',
+				},
+				{
+					in: 'path',
+					name: 'uid',
+					example: '', // to be defined later...
+				},
+			],
+			'/groups/{slug}/invites/{uid}': [
+				{
+					in: 'path',
+					name: 'slug',
+					example: 'invitations-only',
+				},
+				{
+					in: 'path',
+					name: 'uid',
+					example: '', // to be defined later...
+				},
+			],
 		},
 	};
 
@@ -109,12 +154,14 @@ describe('API', async () => {
 		}
 
 		// Create sample users
-		const adminUid = await user.create({ username: 'admin', password: '123456', email: 'test@example.org' });
-		const unprivUid = await user.create({ username: 'unpriv', password: '123456', email: 'unpriv@example.org' });
+		const adminUid = await user.create({ username: 'admin', password: '123456' });
+		const unprivUid = await user.create({ username: 'unpriv', password: '123456' });
+		const emailConfirmationUid = await user.create({ username: 'emailConf', email: 'emailConf@example.org' });
 		await user.setUserField(adminUid, 'email', 'test@example.org');
 		await user.setUserField(unprivUid, 'email', 'unpriv@example.org');
 		await user.email.confirmByUid(adminUid);
 		await user.email.confirmByUid(unprivUid);
+		mocks.get['/api/confirm/{code}'][0].example = await db.get(`confirm:byUid:${emailConfirmationUid}`);
 
 		for (let x = 0; x < 4; x++) {
 			// eslint-disable-next-line no-await-in-loop
@@ -127,6 +174,22 @@ describe('API', async () => {
 			name: 'Test Group',
 		});
 
+		// Create private groups for pending/invitations
+		const [pending1, pending2, inviteUid] = await Promise.all([
+			await user.create({ username: utils.generateUUID().slice(0, 8) }),
+			await user.create({ username: utils.generateUUID().slice(0, 8) }),
+			await user.create({ username: utils.generateUUID().slice(0, 8) }),
+		]);
+		mocks.put['/groups/{slug}/pending/{uid}'][1].example = pending1;
+		mocks.delete['/groups/{slug}/pending/{uid}'][1].example = pending2;
+		mocks.delete['/groups/{slug}/invites/{uid}'][1].example = inviteUid;
+		await Promise.all(['private-group', 'invitations-only'].map(async (name) => {
+			await groups.create({ name, private: true });
+		}));
+		await groups.requestMembership('private-group', pending1);
+		await groups.requestMembership('private-group', pending2);
+		await groups.invite('invitations-only', inviteUid);
+
 		await meta.settings.set('core.api', {
 			tokens: [{
 				token: mocks.delete['/users/{uid}/tokens/{token}'][1].example,
@@ -190,17 +253,10 @@ describe('API', async () => {
 			path: 'files/test.png',
 		});
 
-		const socketUser = require('../src/socket.io/user');
 		const socketAdmin = require('../src/socket.io/admin');
-		// export data for admin user
-		await socketUser.exportProfile({ uid: adminUid }, { uid: adminUid });
-		await wait(2000);
-		await socketUser.exportPosts({ uid: adminUid }, { uid: adminUid });
-		await wait(2000);
-		await socketUser.exportUploads({ uid: adminUid }, { uid: adminUid });
-		await wait(2000);
+		await Promise.all(['profile', 'posts', 'uploads'].map(async type => api.users.generateExport({ uid: adminUid }, { uid: adminUid, type })));
 		await socketAdmin.user.exportUsersCSV({ uid: adminUid }, {});
-		// wait for export child process to complete
+		// wait for export child processes to complete
 		await wait(5000);
 
 		// Attach a search hook so /api/search is enabled
@@ -303,7 +359,7 @@ describe('API', async () => {
 		});
 	});
 
-	// generateTests(readApi, Object.keys(readApi.paths));
+	generateTests(readApi, Object.keys(readApi.paths));
 	generateTests(writeApi, Object.keys(writeApi.paths), writeApi.servers[0].url);
 
 	function generateTests(api, paths, prefix) {
@@ -465,7 +521,7 @@ describe('API', async () => {
 				});
 
 				it('should successfully re-login if needed', async () => {
-					const reloginPaths = ['PUT /users/{uid}/password', 'DELETE /users/{uid}/sessions/{uuid}'];
+					const reloginPaths = ['GET /api/user/{userslug}/edit/email', 'PUT /users/{uid}/password', 'DELETE /users/{uid}/sessions/{uuid}'];
 					if (reloginPaths.includes(`${method.toUpperCase()} ${path}`)) {
 						({ jar } = await helpers.loginUser('admin', '123456'));
 						const sessionUUIDs = await db.getObject('uid:1:sessionUUID:sessionId');
@@ -480,18 +536,6 @@ describe('API', async () => {
 						csrfToken = config.csrf_token;
 					}
 				});
-
-				it('should back out of a registration interstitial if needed', async () => {
-					const affectedPaths = ['GET /api/user/{userslug}/edit/email'];
-					if (affectedPaths.includes(`${method.toUpperCase()} ${path}`)) {
-						await request({
-							uri: `${nconf.get('url')}/register/abort?_csrf=${csrfToken}`,
-							method: 'POST',
-							jar,
-							simple: false,
-						});
-					}
-				});
 			});
 		});
 	}
@@ -562,10 +606,10 @@ describe('API', async () => {
 
 						if (schema[prop].items) {
 							// Ensure the array items have a schema defined
-							assert(schema[prop].items.type || schema[prop].items.allOf, `"${prop}" is defined to be an array, but its items have no schema defined (path: ${method} ${path}, context: ${context})`);
+							assert(schema[prop].items.type || schema[prop].items.allOf || schema[prop].items.anyOf || schema[prop].items.oneOf, `"${prop}" is defined to be an array, but its items have no schema defined (path: ${method} ${path}, context: ${context})`);
 
 							// Compare types
-							if (schema[prop].items.type === 'object' || Array.isArray(schema[prop].items.allOf)) {
+							if (schema[prop].items.type === 'object' || Array.isArray(schema[prop].items.allOf || schema[prop].items.anyOf || schema[prop].items.oneOf)) {
 								response[prop].forEach((res) => {
 									compare(schema[prop].items, res, method, path, context ? [context, prop].join('.') : prop);
 								});
diff --git a/test/authentication.js b/test/authentication.js
index 3718271809..7bb99687ee 100644
--- a/test/authentication.js
+++ b/test/authentication.js
@@ -6,6 +6,7 @@ const url = require('url');
 const async = require('async');
 const nconf = require('nconf');
 const request = require('request');
+const requestAsync = require('request-promise-native');
 const util = require('util');
 
 const db = require('./mocks/databasemock');
@@ -170,29 +171,6 @@ describe('authentication', () => {
 		});
 	});
 
-	it('should login a user', (done) => {
-		helpers.loginUser('regular', 'regularpwd', (err, data) => {
-			assert.ifError(err);
-			assert(data.body);
-			request({
-				url: `${nconf.get('url')}/api/self`,
-				json: true,
-				jar: data.jar,
-			}, (err, response, body) => {
-				assert.ifError(err);
-				assert(body);
-				assert.equal(body.username, 'regular');
-				assert.equal(body.email, 'regular@nodebb.org');
-				db.getObject(`uid:${regularUid}:sessionUUID:sessionId`, (err, sessions) => {
-					assert.ifError(err);
-					assert(sessions);
-					assert(Object.keys(sessions).length > 0);
-					done();
-				});
-			});
-		});
-	});
-
 	it('should regenerate the session identifier on successful login', async () => {
 		const matchRegexp = /express\.sid=s%3A(.+?);/;
 		const { hostname, path } = url.parse(nconf.get('url'));
@@ -221,6 +199,114 @@ describe('authentication', () => {
 		});
 	});
 
+	describe('login', () => {
+		let username;
+		let password;
+		let uid;
+
+		function getCookieExpiry(res) {
+			assert(res.headers['set-cookie']);
+			assert.strictEqual(res.headers['set-cookie'][0].includes('Expires'), true);
+
+			const values = res.headers['set-cookie'][0].split(';');
+			return values.reduce((memo, cur) => {
+				if (!memo) {
+					const [name, value] = cur.split('=');
+					if (name === ' Expires') {
+						memo = new Date(value);
+					}
+				}
+
+				return memo;
+			}, undefined);
+		}
+
+		beforeEach(async () => {
+			([username, password] = [utils.generateUUID().slice(0, 10), utils.generateUUID()]);
+			uid = await user.create({ username, password });
+		});
+
+		it('should login a user', async () => {
+			const { jar, body: loginBody } = await helpers.loginUser(username, password);
+			assert(loginBody);
+			const body = await requestAsync({
+				url: `${nconf.get('url')}/api/self`,
+				json: true,
+				jar,
+			});
+			assert(body);
+			assert.equal(body.username, username);
+			const sessions = await db.getObject(`uid:${uid}:sessionUUID:sessionId`);
+			assert(sessions);
+			assert(Object.keys(sessions).length > 0);
+		});
+
+		it('should set a cookie that only lasts for the life of the browser session', async () => {
+			const { res } = await helpers.loginUser(username, password);
+
+			assert(res.headers);
+			assert(res.headers['set-cookie']);
+			assert.strictEqual(res.headers['set-cookie'][0].includes('Expires'), false);
+		});
+
+		it('should set a different expiry if sessionDuration is set', async () => {
+			const _sessionDuration = meta.config.sessionDuration;
+			const days = 1;
+			meta.config.sessionDuration = days * 24 * 60 * 60;
+
+			const { res } = await helpers.loginUser(username, password);
+
+			const expiry = getCookieExpiry(res);
+			const expected = new Date();
+			expected.setUTCDate(expected.getUTCDate() + days);
+
+			assert.strictEqual(expiry.getUTCDate(), expected.getUTCDate());
+
+			meta.config.sessionDuration = _sessionDuration;
+		});
+
+		it('should set a cookie that lasts for x days where x is loginDays setting, if asked to remember', async () => {
+			const { res } = await helpers.loginUser(username, password, { remember: 'on' });
+
+			const expiry = getCookieExpiry(res);
+			const expected = new Date();
+			expected.setUTCDate(expected.getUTCDate() + meta.config.loginDays);
+
+			assert.strictEqual(expiry.getUTCDate(), expected.getUTCDate());
+		});
+
+		it('should set the cookie expiry properly if loginDays setting is changed', async () => {
+			const _loginDays = meta.config.loginDays;
+			meta.config.loginDays = 5;
+
+			const { res } = await helpers.loginUser(username, password, { remember: 'on' });
+
+			const expiry = getCookieExpiry(res);
+			const expected = new Date();
+			expected.setUTCDate(expected.getUTCDate() + meta.config.loginDays);
+
+			assert.strictEqual(expiry.getUTCDate(), expected.getUTCDate());
+
+			meta.config.loginDays = _loginDays;
+		});
+
+		it('should ignore loginDays if loginSeconds is truthy', async () => {
+			const _loginSeconds = meta.config.loginSeconds;
+			meta.config.loginSeconds = 60;
+
+			const { res } = await helpers.loginUser(username, password, { remember: 'on' });
+
+			const expiry = getCookieExpiry(res);
+			const expected = new Date();
+			expected.setUTCSeconds(expected.getUTCSeconds() + meta.config.loginSeconds);
+
+			assert.strictEqual(expiry.getUTCDate(), expected.getUTCDate());
+			assert.strictEqual(expiry.getUTCMinutes(), expected.getUTCMinutes());
+
+			meta.config.loginSeconds = _loginSeconds;
+		});
+	});
+
 	it('should fail to login if ip address is invalid', (done) => {
 		const jar = request.jar();
 		request({
@@ -251,77 +337,53 @@ describe('authentication', () => {
 		});
 	});
 
-	it('should fail to login if user does not exist', (done) => {
-		helpers.loginUser('doesnotexist', 'nopassword', (err, data) => {
-			assert.ifError(err);
-			assert.equal(data.res.statusCode, 403);
-			assert.equal(data.body, '[[error:invalid-login-credentials]]');
-			done();
-		});
+	it('should fail to login if user does not exist', async () => {
+		const { res, body } = await helpers.loginUser('doesnotexist', 'nopassword');
+		assert.equal(res.statusCode, 403);
+		assert.equal(body, '[[error:invalid-login-credentials]]');
 	});
 
-	it('should fail to login if username is empty', (done) => {
-		helpers.loginUser('', 'some password', (err, data) => {
-			assert.ifError(err);
-			assert.equal(data.res.statusCode, 403);
-			assert.equal(data.body, '[[error:invalid-username-or-password]]');
-			done();
-		});
+	it('should fail to login if username is empty', async () => {
+		const { res, body } = await helpers.loginUser('', 'some password');
+		assert.equal(res.statusCode, 403);
+		assert.equal(body, '[[error:invalid-username-or-password]]');
 	});
 
-	it('should fail to login if password is empty', (done) => {
-		helpers.loginUser('someuser', '', (err, data) => {
-			assert.ifError(err);
-			assert.equal(data.res.statusCode, 403);
-			assert.equal(data.body, '[[error:invalid-username-or-password]]');
-			done();
-		});
+	it('should fail to login if password is empty', async () => {
+		const { res, body } = await helpers.loginUser('someuser', '');
+		assert.equal(res.statusCode, 403);
+		assert.equal(body, '[[error:invalid-username-or-password]]');
 	});
 
-	it('should fail to login if username and password are empty', (done) => {
-		helpers.loginUser('', '', (err, data) => {
-			assert.ifError(err);
-			assert.equal(data.res.statusCode, 403);
-			assert.equal(data.body, '[[error:invalid-username-or-password]]');
-			done();
-		});
+	it('should fail to login if username and password are empty', async () => {
+		const { res, body } = await helpers.loginUser('', '');
+		assert.equal(res.statusCode, 403);
+		assert.equal(body, '[[error:invalid-username-or-password]]');
 	});
 
-	it('should fail to login if user does not have password field in db', (done) => {
-		user.create({ username: 'hasnopassword', email: 'no@pass.org' }, (err, uid) => {
-			assert.ifError(err);
-			helpers.loginUser('hasnopassword', 'doesntmatter', (err, data) => {
-				assert.ifError(err);
-				assert.equal(data.res.statusCode, 403);
-				assert.equal(data.body, '[[error:invalid-login-credentials]]');
-				done();
-			});
-		});
+	it('should fail to login if user does not have password field in db', async () => {
+		await user.create({ username: 'hasnopassword', email: 'no@pass.org' });
+		const { res, body } = await helpers.loginUser('hasnopassword', 'doesntmatter');
+		assert.equal(res.statusCode, 403);
+		assert.equal(body, '[[error:invalid-login-credentials]]');
 	});
 
-	it('should fail to login if password is longer than 4096', (done) => {
+	it('should fail to login if password is longer than 4096', async () => {
 		let longPassword;
 		for (let i = 0; i < 5000; i++) {
 			longPassword += 'a';
 		}
-		helpers.loginUser('someuser', longPassword, (err, data) => {
-			assert.ifError(err);
-			assert.equal(data.res.statusCode, 403);
-			assert.equal(data.body, '[[error:password-too-long]]');
-			done();
-		});
+		const { res, body } = await helpers.loginUser('someuser', longPassword);
+		assert.equal(res.statusCode, 403);
+		assert.equal(body, '[[error:password-too-long]]');
 	});
 
-	it('should fail to login if local login is disabled', (done) => {
-		privileges.global.rescind(['groups:local:login'], 'registered-users', (err) => {
-			assert.ifError(err);
-			helpers.loginUser('regular', 'regularpwd', (err, data) => {
-				assert.ifError(err);
-				assert.equal(data.res.statusCode, 403);
-				assert.equal(data.body, '[[error:local-login-disabled]]');
-				privileges.global.give(['groups:local:login'], 'registered-users', done);
-			});
-		});
+	it('should fail to login if local login is disabled', async () => {
+		await privileges.global.rescind(['groups:local:login'], 'registered-users');
+		const { res, body } = await helpers.loginUser('regular', 'regularpwd');
+		assert.equal(res.statusCode, 403);
+		assert.equal(body, '[[error:local-login-disabled]]');
+		await privileges.global.give(['groups:local:login'], 'registered-users');
 	});
 
 	it('should fail to register if registraton is disabled', (done) => {
@@ -409,15 +471,12 @@ describe('authentication', () => {
 		assert.equal(res.statusCode, 200);
 	});
 
-	it('should fail to login if login type is username and an email is sent', (done) => {
+	it('should fail to login if login type is username and an email is sent', async () => {
 		meta.config.allowLoginWith = 'username';
-		helpers.loginUser('ginger@nodebb.org', '123456', (err, data) => {
-			meta.config.allowLoginWith = 'username-email';
-			assert.ifError(err);
-			assert.equal(data.res.statusCode, 400);
-			assert.equal(data.body, '[[error:wrong-login-type-username]]');
-			done();
-		});
+		const { res, body } = await helpers.loginUser('ginger@nodebb.org', '123456');
+		meta.config.allowLoginWith = 'username-email';
+		assert.equal(res.statusCode, 400);
+		assert.equal(body, '[[error:wrong-login-type-username]]');
 	});
 
 	it('should send 200 if not logged in', (done) => {
@@ -456,37 +515,26 @@ describe('authentication', () => {
 			bannedUser.uid = await user.create({ username: 'banme', password: '123456', email: 'ban@me.com' });
 		});
 
-		it('should prevent banned user from logging in', (done) => {
-			user.bans.ban(bannedUser.uid, 0, 'spammer', (err) => {
-				assert.ifError(err);
-				helpers.loginUser(bannedUser.username, bannedUser.pw, (err, data) => {
-					assert.ifError(err);
-					assert.equal(data.res.statusCode, 403);
-					delete data.body.timestamp;
-					assert.deepStrictEqual(data.body, {
-						banned_until: 0,
-						banned_until_readable: '',
-						expiry: 0,
-						expiry_readable: '',
-						reason: 'spammer',
-						uid: bannedUser.uid,
-					});
-					user.bans.unban(bannedUser.uid, (err) => {
-						assert.ifError(err);
-						const expiry = Date.now() + 10000;
-						user.bans.ban(bannedUser.uid, expiry, '', (err) => {
-							assert.ifError(err);
-							helpers.loginUser(bannedUser.username, bannedUser.pw, (err, data) => {
-								assert.ifError(err);
-								assert.equal(data.res.statusCode, 403);
-								assert(data.body.banned_until);
-								assert(data.body.reason, '[[user:info.banned-no-reason]]');
-								done();
-							});
-						});
-					});
-				});
+		it('should prevent banned user from logging in', async () => {
+			await user.bans.ban(bannedUser.uid, 0, 'spammer');
+			const { res: res1, body: body1 } = await helpers.loginUser(bannedUser.username, bannedUser.pw);
+			assert.equal(res1.statusCode, 403);
+			delete body1.timestamp;
+			assert.deepStrictEqual(body1, {
+				banned_until: 0,
+				banned_until_readable: '',
+				expiry: 0,
+				expiry_readable: '',
+				reason: 'spammer',
+				uid: bannedUser.uid,
 			});
+			await user.bans.unban(bannedUser.uid);
+			const expiry = Date.now() + 10000;
+			await user.bans.ban(bannedUser.uid, expiry, '');
+			const { res: res2, body: body2 } = await helpers.loginUser(bannedUser.username, bannedUser.pw);
+			assert.equal(res2.statusCode, 403);
+			assert(body2.banned_until);
+			assert(body2.reason, '[[user:info.banned-no-reason]]');
 		});
 
 		it('should allow banned user to log in if the "banned-users" group has "local-login" privilege', async () => {
@@ -510,24 +558,18 @@ describe('authentication', () => {
 			function (next) {
 				user.create({ username: 'lockme', password: '123456' }, next);
 			},
-			function (_uid, next) {
+			async (_uid) => {
 				uid = _uid;
-				helpers.loginUser('lockme', 'abcdef', next);
-			},
-			function (data, next) {
-				helpers.loginUser('lockme', 'abcdef', next);
+				return helpers.loginUser('lockme', 'abcdef');
 			},
-			function (data, next) {
-				helpers.loginUser('lockme', 'abcdef', next);
-			},
-			function (data, next) {
-				helpers.loginUser('lockme', 'abcdef', next);
-			},
-			function (data, next) {
+			async data => helpers.loginUser('lockme', 'abcdef'),
+			async data => helpers.loginUser('lockme', 'abcdef'),
+			async data => helpers.loginUser('lockme', 'abcdef'),
+			async (data) => {
 				meta.config.loginAttempts = 5;
 				assert.equal(data.res.statusCode, 403);
 				assert.equal(data.body, '[[error:account-locked]]');
-				helpers.loginUser('lockme', 'abcdef', next);
+				return helpers.loginUser('lockme', 'abcdef');
 			},
 			function (data, next) {
 				assert.equal(data.res.statusCode, 403);
diff --git a/test/build.js b/test/build.js
index 52e828f856..100f232136 100644
--- a/test/build.js
+++ b/test/build.js
@@ -3,9 +3,7 @@
 const path = require('path');
 const fs = require('fs');
 const assert = require('assert');
-const mkdirp = require('mkdirp');
-const rimraf = require('rimraf');
-const async = require('async');
+const { mkdirp } = require('mkdirp');
 
 const db = require('./mocks/databasemock');
 const file = require('../src/file');
@@ -39,7 +37,7 @@ describe('minifier', () => {
 			files: scripts,
 			destPath: destPath,
 			filename: 'concatenated.js',
-		}, false, false, (err) => {
+		}, false, (err) => {
 			assert.ifError(err);
 
 			assert(file.existsSync(destPath));
@@ -60,65 +58,26 @@ describe('minifier', () => {
 			done();
 		});
 	});
-	it('.js.bundle() should minify scripts', (done) => {
-		const destPath = path.resolve(__dirname, '../test/build/minified.js');
-
-		minifier.js.bundle({
-			files: scripts,
-			destPath: destPath,
-			filename: 'minified.js',
-		}, true, false, (err) => {
-			assert.ifError(err);
-
-			assert(file.existsSync(destPath));
-
-			assert.strictEqual(
-				fs.readFileSync(destPath).toString(),
-				'(function(n,o){n.doStuff=function(){o.body.innerHTML="Stuff has been done"}})(window,document);function foo(n,o){return\'The person known as "\'+n+\'" is \'+o+" years old"}' +
-				'\n//# sourceMappingURL=minified.js.map'
-			);
-			done();
-		});
-	});
-
-	it('.js.minifyBatch() should minify each script', (done) => {
-		minifier.js.minifyBatch(scripts, false, (err) => {
-			assert.ifError(err);
-
-			assert(file.existsSync(scripts[0].destPath));
-			assert(file.existsSync(scripts[1].destPath));
-
-			fs.readFile(scripts[0].destPath, (err, buffer) => {
-				assert.ifError(err);
-				assert.strictEqual(
-					buffer.toString(),
-					'(function(n,o){n.doStuff=function(){o.body.innerHTML="Stuff has been done"}})(window,document);' +
-					'\n//# sourceMappingURL=1.js.map'
-				);
-				done();
-			});
-		});
-	});
 
 	const styles = [
-		'@import (inline) "./1.css";',
-		'@import "./2.less";',
+		'@import "./1";',
+		'@import "./2.scss";',
 	].join('\n');
 	const paths = [
 		path.resolve(__dirname, './files'),
 	];
 	it('.css.bundle() should concat styles', (done) => {
-		minifier.css.bundle(styles, paths, false, false, (err, bundle) => {
+		minifier.css.bundle(styles, paths, false, false, 'ltr', (err, bundle) => {
 			assert.ifError(err);
-			assert.strictEqual(bundle.code, '.help { margin: 10px; } .yellow { background: yellow; }\n.help {\n  display: block;\n}\n.help .blue {\n  background: blue;\n}\n');
+			assert.strictEqual(bundle.ltr.code, '.help {\n  margin: 10px;\n}\n\n.yellow {\n  background: yellow;\n}\n\n.help {\n  display: block;\n}\n.help .blue {\n  background: blue;\n}');
 			done();
 		});
 	});
 
 	it('.css.bundle() should minify styles', (done) => {
-		minifier.css.bundle(styles, paths, true, false, (err, bundle) => {
+		minifier.css.bundle(styles, paths, true, false, 'ltr', (err, bundle) => {
 			assert.ifError(err);
-			assert.strictEqual(bundle.code, '.help{margin:10px}.yellow{background:#ff0}.help{display:block}.help .blue{background:#00f}');
+			assert.strictEqual(bundle.ltr.code, '.help{margin:10px}.yellow{background:#ff0}.help{display:block}.help .blue{background:#00f}');
 			done();
 		});
 	});
@@ -127,11 +86,9 @@ describe('minifier', () => {
 describe('Build', () => {
 	const build = require('../src/meta/build');
 
-	before((done) => {
-		async.parallel([
-			async.apply(rimraf, path.join(__dirname, '../build/public')),
-			async.apply(db.sortedSetAdd, 'plugins:active', Date.now(), 'nodebb-plugin-markdown'),
-		], done);
+	before(async () => {
+		await fs.promises.rm(path.join(__dirname, '../build/public'), { recursive: true, force: true });
+		await db.sortedSetAdd('plugins:active', Date.now(), 'nodebb-plugin-markdown');
 	});
 
 	it('should build plugin static dirs', (done) => {
@@ -175,7 +132,6 @@ describe('Build', () => {
 			assert.ifError(err);
 			const filename = path.join(__dirname, '../build/public/client.css');
 			assert(file.existsSync(filename));
-			assert(fs.readFileSync(filename).toString().startsWith('/*! normalize.css'));
 			done();
 		});
 	});
@@ -185,12 +141,6 @@ describe('Build', () => {
 			assert.ifError(err);
 			const filename = path.join(__dirname, '../build/public/admin.css');
 			assert(file.existsSync(filename));
-			const adminCSS = fs.readFileSync(filename).toString();
-			if (global.env === 'production') {
-				assert(adminCSS.startsWith('@charset "UTF-8";') || adminCSS.startsWith('@import url'));
-			} else {
-				assert(adminCSS.startsWith('.recent-replies'));
-			}
 			done();
 		});
 	});
diff --git a/test/categories.js b/test/categories.js
index 4a92929864..bbff6f2466 100644
--- a/test/categories.js
+++ b/test/categories.js
@@ -371,9 +371,11 @@ describe('Categories', () => {
 		});
 
 		it('should error if you try to set parent as self', async () => {
-			const updateData = {};
-			updateData[cid] = {
-				parentCid: cid,
+			const updateData = {
+				cid,
+				values: {
+					parentCid: cid,
+				},
 			};
 			let err;
 			try {
@@ -389,9 +391,11 @@ describe('Categories', () => {
 			const parentCid = parentCategory.cid;
 			const childCategory = await Categories.create({ name: 'child1', description: 'wanna be parent', parentCid: parentCid });
 			const child1Cid = childCategory.cid;
-			const updateData = {};
-			updateData[parentCid] = {
-				parentCid: child1Cid,
+			const updateData = {
+				cid: parentCid,
+				values: {
+					parentCid: child1Cid,
+				},
 			};
 			let err;
 			try {
@@ -403,22 +407,24 @@ describe('Categories', () => {
 		});
 
 		it('should update category data', async () => {
-			const updateData = {};
-			updateData[cid] = {
-				name: 'new name',
-				description: 'new description',
-				parentCid: 0,
-				order: 3,
-				icon: 'fa-hammer',
+			const updateData = {
+				cid,
+				values: {
+					name: 'new name',
+					description: 'new description',
+					parentCid: 0,
+					order: 3,
+					icon: 'fa-hammer',
+				},
 			};
 			await apiCategories.update({ uid: adminUid }, updateData);
 
 			const data = await Categories.getCategoryData(cid);
-			assert.equal(data.name, updateData[cid].name);
-			assert.equal(data.description, updateData[cid].description);
-			assert.equal(data.parentCid, updateData[cid].parentCid);
-			assert.equal(data.order, updateData[cid].order);
-			assert.equal(data.icon, updateData[cid].icon);
+			assert.equal(data.name, updateData.values.name);
+			assert.equal(data.description, updateData.values.description);
+			assert.equal(data.parentCid, updateData.values.parentCid);
+			assert.equal(data.order, updateData.values.order);
+			assert.equal(data.icon, updateData.values.icon);
 		});
 
 		it('should properly order categories', async () => {
@@ -427,12 +433,12 @@ describe('Categories', () => {
 			const c2 = await Categories.create({ name: 'c2', description: 'd2', parentCid: p1.cid, order: 2 });
 			const c3 = await Categories.create({ name: 'c3', description: 'd3', parentCid: p1.cid, order: 3 });
 			// move c1 to second place
-			await apiCategories.update({ uid: adminUid }, { [c1.cid]: { order: 2 } });
+			await apiCategories.update({ uid: adminUid }, { cid: c1.cid, values: { order: 2 } });
 			let cids = await db.getSortedSetRange(`cid:${p1.cid}:children`, 0, -1);
 			assert.deepStrictEqual(cids.map(Number), [c2.cid, c1.cid, c3.cid]);
 
 			// move c3 to front
-			await apiCategories.update({ uid: adminUid }, { [c3.cid]: { order: 1 } });
+			await apiCategories.update({ uid: adminUid }, { cid: c3.cid, values: { order: 1 } });
 			cids = await db.getSortedSetRange(`cid:${p1.cid}:children`, 0, -1);
 			assert.deepStrictEqual(cids.map(Number), [c3.cid, c2.cid, c1.cid]);
 		});
diff --git a/test/controllers-admin.js b/test/controllers-admin.js
index c53f3ce3e3..73fc73089b 100644
--- a/test/controllers-admin.js
+++ b/test/controllers-admin.js
@@ -4,6 +4,7 @@ const async = require('async');
 const assert = require('assert');
 const nconf = require('nconf');
 const request = require('request');
+const requestAsync = require('request-promise-native');
 
 const db = require('./mocks/databasemock');
 const categories = require('../src/categories');
@@ -65,17 +66,16 @@ describe('Admin Controllers', () => {
 		});
 	});
 
-	it('should 403 if user is not admin', (done) => {
-		helpers.loginUser('admin', 'barbar', (err, data) => {
-			assert.ifError(err);
-			jar = data.jar;
-			request(`${nconf.get('url')}/admin`, { jar: jar }, (err, res, body) => {
-				assert.ifError(err);
-				assert.equal(res.statusCode, 403);
-				assert(body);
-				done();
-			});
+	it('should 403 if user is not admin', async () => {
+		({ jar } = await helpers.loginUser('admin', 'barbar'));
+		const { statusCode, body } = await requestAsync(`${nconf.get('url')}/admin`, {
+			jar: jar,
+			simple: false,
+			resolveWithFullResponse: true,
 		});
+
+		assert.equal(statusCode, 403);
+		assert(body);
 	});
 
 	it('should load admin dashboard', (done) => {
diff --git a/test/controllers.js b/test/controllers.js
index cf557a30d2..b8aefc028b 100644
--- a/test/controllers.js
+++ b/test/controllers.js
@@ -7,8 +7,10 @@ const request = require('request');
 const requestAsync = require('request-promise-native');
 const fs = require('fs');
 const path = require('path');
+const util = require('util');
 
 const db = require('./mocks/databasemock');
+const api = require('../src/api');
 const categories = require('../src/categories');
 const topics = require('../src/topics');
 const posts = require('../src/posts');
@@ -21,6 +23,8 @@ const plugins = require('../src/plugins');
 const utils = require('../src/utils');
 const helpers = require('./helpers');
 
+const sleep = util.promisify(setTimeout);
+
 describe('Controllers', () => {
 	let tid;
 	let cid;
@@ -596,6 +600,74 @@ describe('Controllers', () => {
 				assert.strictEqual(res.headers.location, `${nconf.get('relative_path')}/`);
 			});
 		});
+
+		describe('abort behaviour', () => {
+			let jar;
+			let token;
+
+			beforeEach(async () => {
+				jar = await helpers.registerUser({
+					username: utils.generateUUID().slice(0, 10),
+					password: utils.generateUUID(),
+				});
+				token = await helpers.getCsrfToken(jar);
+			});
+
+			it('should terminate the session and send user back to index if interstitials remain', async () => {
+				const res = await requestAsync(`${nconf.get('url')}/register/abort`, {
+					method: 'post',
+					jar,
+					json: true,
+					followRedirect: false,
+					simple: false,
+					resolveWithFullResponse: true,
+					headers: {
+						'x-csrf-token': token,
+					},
+				});
+
+				assert.strictEqual(res.statusCode, 302);
+				assert.strictEqual(res.headers['set-cookie'][0], `express.sid=; Path=${nconf.get('relative_path') || '/'}; Expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Lax`);
+				assert.strictEqual(res.headers.location, `${nconf.get('relative_path')}/`);
+			});
+
+			it('should preserve the session and send user back to user profile if no interstitials remain (e.g. GDPR OK + email change cancellation)', async () => {
+				// Submit GDPR consent
+				await requestAsync(`${nconf.get('url')}/register/complete`, {
+					method: 'post',
+					jar,
+					json: true,
+					followRedirect: false,
+					simple: false,
+					resolveWithFullResponse: true,
+					headers: {
+						'x-csrf-token': token,
+					},
+					form: {
+						gdpr_agree_data: 'on',
+						gdpr_agree_email: 'on',
+					},
+				});
+
+				// Start email change flow
+				await requestAsync(`${nconf.get('url')}/me/edit/email`, { jar });
+
+				const res = await requestAsync(`${nconf.get('url')}/register/abort`, {
+					method: 'post',
+					jar,
+					json: true,
+					followRedirect: false,
+					simple: false,
+					resolveWithFullResponse: true,
+					headers: {
+						'x-csrf-token': token,
+					},
+				});
+
+				assert.strictEqual(res.statusCode, 302);
+				assert(res.headers.location.match(/\/uid\/\d+$/));
+			});
+		});
 	});
 
 	it('should load /robots.txt', (done) => {
@@ -1490,30 +1562,41 @@ describe('Controllers', () => {
 			});
 		});
 
-		it('should export users posts', (done) => {
-			request(`${nconf.get('url')}/api/user/foo/export/posts`, { jar: jar }, (err, res, body) => {
-				assert.ifError(err);
-				assert.equal(res.statusCode, 200);
-				assert(body);
-				done();
+		describe('user data export routes', () => {
+			before(async () => {
+				const types = ['profile', 'uploads', 'posts'];
+				await Promise.all(types.map(async (type) => {
+					await api.users.generateExport({ uid: fooUid, ip: '127.0.0.1' }, { uid: fooUid, type });
+				}));
+				await sleep(5000);
 			});
-		});
 
-		it('should export users uploads', (done) => {
-			request(`${nconf.get('url')}/api/user/foo/export/uploads`, { jar: jar }, (err, res, body) => {
-				assert.ifError(err);
-				assert.equal(res.statusCode, 200);
-				assert(body);
-				done();
+			it('should export users posts', (done) => {
+				console.log(`${nconf.get('url')}/api/v3/users/${fooUid}/exports/posts`);
+				request(`${nconf.get('url')}/api/v3/users/${fooUid}/exports/posts`, { jar: jar }, (err, res, body) => {
+					assert.ifError(err);
+					assert.equal(res.statusCode, 200);
+					assert(body);
+					done();
+				});
 			});
-		});
 
-		it('should export users profile', (done) => {
-			request(`${nconf.get('url')}/api/user/foo/export/profile`, { jar: jar }, (err, res, body) => {
-				assert.ifError(err);
-				assert.equal(res.statusCode, 200);
-				assert(body);
-				done();
+			it('should export users uploads', (done) => {
+				request(`${nconf.get('url')}/api/v3/users/${fooUid}/exports/uploads`, { jar: jar }, (err, res, body) => {
+					assert.ifError(err);
+					assert.equal(res.statusCode, 200);
+					assert(body);
+					done();
+				});
+			});
+
+			it('should export users profile', (done) => {
+				request(`${nconf.get('url')}/api/v3/users/${fooUid}/exports/profile`, { jar: jar }, (err, res, body) => {
+					assert.ifError(err);
+					assert.equal(res.statusCode, 200);
+					assert(body);
+					done();
+				});
 			});
 		});
 
@@ -1621,23 +1704,13 @@ describe('Controllers', () => {
 			});
 		});
 
-		it('should return false if user can not edit user', (done) => {
-			user.create({ username: 'regularJoe', password: 'barbar' }, (err) => {
-				assert.ifError(err);
-				helpers.loginUser('regularJoe', 'barbar', (err, data) => {
-					assert.ifError(err);
-					const { jar } = data;
-					request(`${nconf.get('url')}/api/user/foo/info`, { jar: jar, json: true }, (err, res) => {
-						assert.ifError(err);
-						assert.equal(res.statusCode, 403);
-						request(`${nconf.get('url')}/api/user/foo/edit`, { jar: jar, json: true }, (err, res) => {
-							assert.ifError(err);
-							assert.equal(res.statusCode, 403);
-							done();
-						});
-					});
-				});
-			});
+		it('should return false if user can not edit user', async () => {
+			await user.create({ username: 'regularJoe', password: 'barbar' });
+			const { jar } = await helpers.loginUser('regularJoe', 'barbar');
+			let { statusCode } = await requestAsync(`${nconf.get('url')}/api/user/foo/info`, { jar: jar, json: true, simple: false, resolveWithFullResponse: true });
+			assert.equal(statusCode, 403);
+			({ statusCode } = await requestAsync(`${nconf.get('url')}/api/user/foo/edit`, { jar: jar, json: true, simple: false, resolveWithFullResponse: true }));
+			assert.equal(statusCode, 403);
 		});
 
 		it('should load correct user', (done) => {
@@ -1693,22 +1766,18 @@ describe('Controllers', () => {
 			});
 		});
 
-		it('should increase profile view', (done) => {
-			helpers.loginUser('regularJoe', 'barbar', (err, data) => {
-				assert.ifError(err);
-				const { jar } = data;
-				request(`${nconf.get('url')}/api/user/foo`, { jar: jar }, (err, res) => {
-					assert.ifError(err);
-					assert.equal(res.statusCode, 200);
-					setTimeout(() => {
-						user.getUserField(fooUid, 'profileviews', (err, viewcount) => {
-							assert.ifError(err);
-							assert(viewcount > 0);
-							done();
-						});
-					}, 500);
-				});
+		it('should increase profile view', async () => {
+			const { jar } = await helpers.loginUser('regularJoe', 'barbar');
+			const { statusCode } = await requestAsync(`${nconf.get('url')}/api/user/foo`, {
+				jar: jar,
+				simple: false,
+				resolveWithFullResponse: true,
 			});
+			assert.equal(statusCode, 200);
+
+			await sleep(500);
+			const viewcount = await user.getUserField(fooUid, 'profileviews');
+			assert(viewcount > 0);
 		});
 
 		it('should parse about me', (done) => {
@@ -1816,10 +1885,13 @@ describe('Controllers', () => {
 			assert.strictEqual(res.body, '/register/complete');
 
 			await requestAsync({
-				uri: `${nconf.get('url')}/register/abort?_csrf=${csrf_token}`,
+				uri: `${nconf.get('url')}/register/abort`,
 				method: 'post',
 				jar,
 				simple: false,
+				headers: {
+					'x-csrf-token': csrf_token,
+				},
 			});
 		});
 
diff --git a/test/database/sorted.js b/test/database/sorted.js
index a5262a5394..7b99edd19d 100644
--- a/test/database/sorted.js
+++ b/test/database/sorted.js
@@ -452,6 +452,12 @@ describe('Sorted Set methods', () => {
 				});
 			});
 		});
+
+		it('should return elements if min/max are numeric strings', async () => {
+			await db.sortedSetAdd('zsetstringminmax', [1, 2, 3, 4, 5], ['value1', 'value2', 'value3', 'value4', 'value5']);
+			const results = await db.getSortedSetRevRangeByScore('zsetstringminmax', 0, -1, '3', '3');
+			assert.deepStrictEqual(results, ['value3']);
+		});
 	});
 
 	describe('getSortedSetRevRangeByScore()', () => {
diff --git a/test/files/2.less b/test/files/2.scss
similarity index 100%
rename from test/files/2.less
rename to test/files/2.scss
diff --git a/test/flags.js b/test/flags.js
index b15be6c3c9..50f9c5543c 100644
--- a/test/flags.js
+++ b/test/flags.js
@@ -189,20 +189,6 @@ describe('Flags', () => {
 
 			await Groups.leave('Global Moderators', moderatorUid);
 		});
-
-		it('should NOT show user history for regular moderators', async () => {
-			const flagData = await request({
-				uri: `${nconf.get('url')}/api/flags/1`,
-				jar,
-				headers: {
-					'x-csrf-token': csrfToken,
-				},
-				json: true,
-			});
-
-			assert(flagData.hasOwnProperty('history'));
-			assert(flagData.history === null);
-		});
 	});
 
 	describe('.list()', () => {
diff --git a/test/groups.js b/test/groups.js
index f79b94b0c8..107f81cf5b 100644
--- a/test/groups.js
+++ b/test/groups.js
@@ -10,6 +10,7 @@ const db = require('./mocks/databasemock');
 const helpers = require('./helpers');
 const Groups = require('../src/groups');
 const User = require('../src/user');
+const utils = require('../src/utils');
 const socketGroups = require('../src/socket.io/groups');
 const apiGroups = require('../src/api/groups');
 const meta = require('../src/meta');
@@ -732,6 +733,13 @@ describe('Groups', () => {
 			meta.config.allowPrivateGroups = oldValue;
 		});
 
+		it('should fail to add user to group if calling uid is non-self and non-admin', async () => {
+			const uid1 = await User.create({ username: utils.generateUUID().slice(0, 8) });
+			const uid2 = await User.create({ username: utils.generateUUID().slice(0, 8) });
+
+			assert.rejects(apiGroups.join({ uid: uid1 }, { slug: 'test', uid: uid2 }, '[[error:not-allowed]]'));
+		});
+
 		it('should allow admins to join private groups', async () => {
 			await apiGroups.join({ uid: adminUid }, { uid: adminUid, slug: 'global-moderators' });
 			assert(await Groups.isMember(adminUid, 'Global Moderators'));
@@ -908,141 +916,57 @@ describe('Groups', () => {
 			assert(isPending);
 		});
 
-		it('should reject membership of user', (done) => {
-			socketGroups.reject({ uid: adminUid }, { groupName: 'PrivateCanJoin', toUid: testUid }, (err) => {
-				assert.ifError(err);
-				Groups.isInvited(testUid, 'PrivateCanJoin', (err, invited) => {
-					assert.ifError(err);
-					assert.equal(invited, false);
-					done();
-				});
-			});
+		it('should reject membership of user', async () => {
+			await apiGroups.reject({ uid: adminUid }, { slug: 'privatecanjoin', uid: testUid });
+			const invited = await Groups.isInvited(testUid, 'PrivateCanJoin');
+			assert.equal(invited, false);
 		});
 
-		it('should error if not owner or admin', (done) => {
-			socketGroups.accept({ uid: 0 }, { groupName: 'PrivateCanJoin', toUid: testUid }, (err) => {
-				assert.equal(err.message, '[[error:no-privileges]]');
-				done();
-			});
+		it('should error if not owner or admin', async () => {
+			assert.rejects(apiGroups.accept({ uid: 0 }, { slug: 'privatecanjoin', uid: testUid }), '[[error:no-privileges]]');
 		});
 
 		it('should accept membership of user', async () => {
 			await apiGroups.join({ uid: testUid }, { slug: 'privatecanjoin', uid: testUid });
-			await socketGroups.accept({ uid: adminUid }, { groupName: 'PrivateCanJoin', toUid: testUid });
+			await apiGroups.accept({ uid: adminUid }, { slug: 'privatecanjoin', uid: testUid });
 			const isMember = await Groups.isMember(testUid, 'PrivateCanJoin');
 			assert(isMember);
 		});
 
-		it('should reject/accept all memberships requests', async () => {
-			async function requestMembership(uid1, uid2) {
-				await apiGroups.join({ uid: uid1 }, { slug: 'privatecanjoin', uid: uid1 });
-				await apiGroups.join({ uid: uid2 }, { slug: 'privatecanjoin', uid: uid2 });
-			}
-			const [uid1, uid2] = await Promise.all([
-				User.create({ username: 'groupuser1' }),
-				User.create({ username: 'groupuser2' }),
-			]);
-			await requestMembership(uid1, uid2);
-			await socketGroups.rejectAll({ uid: adminUid }, { groupName: 'PrivateCanJoin' });
-			const pending = await Groups.getPending('PrivateCanJoin');
-			assert.equal(pending.length, 0);
-			await requestMembership(uid1, uid2);
-			await socketGroups.acceptAll({ uid: adminUid }, { groupName: 'PrivateCanJoin' });
-			const isMembers = await Groups.isMembers([uid1, uid2], 'PrivateCanJoin');
-			assert.deepStrictEqual(isMembers, [true, true]);
-		});
-
-		it('should issue invite to user', (done) => {
-			User.create({ username: 'invite1' }, (err, uid) => {
-				assert.ifError(err);
-				socketGroups.issueInvite({ uid: adminUid }, { groupName: 'PrivateCanJoin', toUid: uid }, (err) => {
-					assert.ifError(err);
-					Groups.isInvited(uid, 'PrivateCanJoin', (err, isInvited) => {
-						assert.ifError(err);
-						assert(isInvited);
-						done();
-					});
-				});
-			});
-		});
-
-		it('should fail with invalid data', (done) => {
-			socketGroups.issueMassInvite({ uid: adminUid }, { groupName: 'PrivateCanJoin', usernames: null }, (err) => {
-				assert.equal(err.message, '[[error:invalid-data]]');
-				done();
-			});
+		it('should issue invite to user', async () => {
+			const uid = await User.create({ username: 'invite1' });
+			await apiGroups.issueInvite({ uid: adminUid }, { slug: 'privatecanjoin', uid });
+			const isInvited = await Groups.isInvited(uid, 'PrivateCanJoin');
+			assert(isInvited);
 		});
 
-		it('should issue mass invite to users', (done) => {
-			User.create({ username: 'invite2' }, (err, uid) => {
-				assert.ifError(err);
-				socketGroups.issueMassInvite({ uid: adminUid }, { groupName: 'PrivateCanJoin', usernames: 'invite1, invite2' }, (err) => {
-					assert.ifError(err);
-					Groups.isInvited([adminUid, uid], 'PrivateCanJoin', (err, isInvited) => {
-						assert.ifError(err);
-						assert.deepStrictEqual(isInvited, [false, true]);
-						done();
-					});
-				});
-			});
-		});
+		it('should rescind invite', async () => {
+			const uid = await User.create({ username: 'invite3' });
+			await apiGroups.issueInvite({ uid: adminUid }, { slug: 'privatecanjoin', uid });
+			await apiGroups.rejectInvite({ uid: adminUid }, { slug: 'privatecanjoin', uid });
 
-		it('should rescind invite', (done) => {
-			User.create({ username: 'invite3' }, (err, uid) => {
-				assert.ifError(err);
-				socketGroups.issueInvite({ uid: adminUid }, { groupName: 'PrivateCanJoin', toUid: uid }, (err) => {
-					assert.ifError(err);
-					socketGroups.rescindInvite({ uid: adminUid }, { groupName: 'PrivateCanJoin', toUid: uid }, (err) => {
-						assert.ifError(err);
-						Groups.isInvited(uid, 'PrivateCanJoin', (err, isInvited) => {
-							assert.ifError(err);
-							assert(!isInvited);
-							done();
-						});
-					});
-				});
-			});
+			const isInvited = await Groups.isInvited(uid, 'PrivateCanJoin');
+			assert(!isInvited);
 		});
 
-		it('should error if user is not invited', (done) => {
-			socketGroups.acceptInvite({ uid: adminUid }, { groupName: 'PrivateCanJoin' }, (err) => {
-				assert.equal(err.message, '[[error:not-invited]]');
-				done();
-			});
+		it('should error if user is not invited', async () => {
+			assert.rejects(apiGroups.acceptInvite({ uid: adminUid }, { slug: 'privatecanjoin' }), '[[error:not-invited]]');
 		});
 
-		it('should accept invite', (done) => {
-			User.create({ username: 'invite4' }, (err, uid) => {
-				assert.ifError(err);
-				socketGroups.issueInvite({ uid: adminUid }, { groupName: 'PrivateCanJoin', toUid: uid }, (err) => {
-					assert.ifError(err);
-					socketGroups.acceptInvite({ uid: uid }, { groupName: 'PrivateCanJoin' }, (err) => {
-						assert.ifError(err);
-						Groups.isMember(uid, 'PrivateCanJoin', (err, isMember) => {
-							assert.ifError(err);
-							assert(isMember);
-							done();
-						});
-					});
-				});
-			});
+		it('should accept invite', async () => {
+			const uid = await User.create({ username: 'invite4' });
+			await apiGroups.issueInvite({ uid: adminUid }, { slug: 'privatecanjoin', uid });
+			await apiGroups.acceptInvite({ uid }, { slug: 'privatecanjoin', uid });
+			const isMember = await Groups.isMember(uid, 'PrivateCanJoin');
+			assert(isMember);
 		});
 
-		it('should reject invite', (done) => {
-			User.create({ username: 'invite5' }, (err, uid) => {
-				assert.ifError(err);
-				socketGroups.issueInvite({ uid: adminUid }, { groupName: 'PrivateCanJoin', toUid: uid }, (err) => {
-					assert.ifError(err);
-					socketGroups.rejectInvite({ uid: uid }, { groupName: 'PrivateCanJoin' }, (err) => {
-						assert.ifError(err);
-						Groups.isInvited(uid, 'PrivateCanJoin', (err, isInvited) => {
-							assert.ifError(err);
-							assert(!isInvited);
-							done();
-						});
-					});
-				});
-			});
+		it('should reject invite', async () => {
+			const uid = await User.create({ username: 'invite5' });
+			await apiGroups.issueInvite({ uid: adminUid }, { slug: 'privatecanjoin', uid });
+			await apiGroups.rejectInvite({ uid }, { slug: 'privatecanjoin', uid });
+			const isInvited = await Groups.isInvited(uid, 'PrivateCanJoin');
+			assert(!isInvited);
 		});
 
 		it('should grant ownership to user', async () => {
@@ -1057,22 +981,14 @@ describe('Groups', () => {
 			assert(!isOwner);
 		});
 
-		it('should fail to kick user with invalid data', (done) => {
-			socketGroups.kick({ uid: adminUid }, { groupName: 'PrivateCanJoin', uid: adminUid }, (err) => {
-				assert.equal(err.message, '[[error:cant-kick-self]]');
-				done();
-			});
+		it('should fail to kick user with invalid data', async () => {
+			assert.rejects(apiGroups.leave({ uid: adminUid }, { slug: 'privatecanjoin', uid: 8721632 }), '[[error:group-not-member]]');
 		});
 
-		it('should kick user from group', (done) => {
-			socketGroups.kick({ uid: adminUid }, { groupName: 'PrivateCanJoin', uid: testUid }, (err) => {
-				assert.ifError(err);
-				Groups.isMember(testUid, 'PrivateCanJoin', (err, isMember) => {
-					assert.ifError(err);
-					assert(!isMember);
-					done();
-				});
-			});
+		it('should kick user from group', async () => {
+			await apiGroups.leave({ uid: adminUid }, { slug: 'privatecanjoin', uid: testUid });
+			const isMember = await Groups.isMember(testUid, 'PrivateCanJoin');
+			assert(!isMember);
 		});
 
 		it('should fail to create group with invalid data', async () => {
@@ -1281,8 +1197,8 @@ describe('Groups', () => {
 			assert.strictEqual(err.message, '[[error:cant-remove-self-as-admin]]');
 		});
 
-		it('should not error if user is not member', async () => {
-			await apiGroups.leave({ uid: adminUid }, { uid: 3, slug: 'newgroup' });
+		it('should error if user is not member', async () => {
+			assert.rejects(apiGroups.leave({ uid: adminUid }, { uid: 3, slug: 'newgroup' }), '[[error:group-not-member]]');
 		});
 
 		it('should fail if trying to remove someone else from group', async () => {
diff --git a/test/helpers/index.js b/test/helpers/index.js
index dd52e35f80..b79bf66e2d 100644
--- a/test/helpers/index.js
+++ b/test/helpers/index.js
@@ -40,37 +40,38 @@ helpers.request = async function (method, uri, options) {
 	});
 };
 
-helpers.loginUser = function (username, password, callback) {
+helpers.loginUser = async (username, password, payload = {}) => {
 	const jar = request.jar();
+	const form = { username, password, ...payload };
 
-	request({
+	const { statusCode, body: configBody } = await requestAsync({
 		url: `${nconf.get('url')}/api/config`,
 		json: true,
 		jar: jar,
-	}, (err, res, body) => {
-		if (err || res.statusCode !== 200) {
-			return callback(err || new Error('[[error:invalid-response]]'));
-		}
-		const { csrf_token } = body;
-		request.post(`${nconf.get('url')}/login`, {
-			form: {
-				username: username,
-				password: password,
-			},
-			json: true,
-			jar: jar,
-			headers: {
-				'x-csrf-token': csrf_token,
-			},
-		}, (err, res, body) => {
-			if (err) {
-				return callback(err || new Error('[[error:invalid-response]]'));
-			}
-			callback(null, { jar, res, body, csrf_token: csrf_token });
-		});
+		followRedirect: false,
+		simple: false,
+		resolveWithFullResponse: true,
 	});
-};
 
+	if (statusCode !== 200) {
+		throw new Error('[[error:invalid-response]]');
+	}
+
+	const { csrf_token } = configBody;
+	const res = await requestAsync.post(`${nconf.get('url')}/login`, {
+		form,
+		json: true,
+		jar: jar,
+		followRedirect: false,
+		simple: false,
+		resolveWithFullResponse: true,
+		headers: {
+			'x-csrf-token': csrf_token,
+		},
+	});
+
+	return { jar, res, body: res.body, csrf_token: csrf_token };
+};
 
 helpers.logoutUser = function (jar, callback) {
 	request({
@@ -197,6 +198,7 @@ helpers.copyFile = function (source, target, callback) {
 };
 
 helpers.invite = async function (body, uid, jar, csrf_token) {
+	console.log('making call');
 	const res = await requestAsync.post(`${nconf.get('url')}/api/v3/users/${uid}/invites`, {
 		jar: jar,
 		// using "form" since client "api" module make requests with "application/x-www-form-urlencoded" content-type
@@ -207,6 +209,7 @@ helpers.invite = async function (body, uid, jar, csrf_token) {
 		simple: false,
 		resolveWithFullResponse: true,
 	});
+	console.log(res.statusCode, res.body);
 
 	res.body = JSON.parse(res.body);
 	return { res, body };
diff --git a/test/i18n.js b/test/i18n.js
index 35ee1397f5..1dda34f68f 100644
--- a/test/i18n.js
+++ b/test/i18n.js
@@ -14,7 +14,7 @@ describe('i18n', () => {
 	let folders;
 
 	before(async function () {
-		if (process.env.GITHUB_EVENT_NAME === 'pull_request') {
+		if ((process.env.GITHUB_REF && process.env.GITHUB_REF !== 'develop') || process.env.GITHUB_EVENT_NAME === 'pull_request') {
 			this.skip();
 		}
 
diff --git a/test/messaging.js b/test/messaging.js
index 6c201a3fa9..468900834b 100644
--- a/test/messaging.js
+++ b/test/messaging.js
@@ -13,6 +13,7 @@ const meta = require('../src/meta');
 const User = require('../src/user');
 const Groups = require('../src/groups');
 const Messaging = require('../src/messaging');
+const api = require('../src/api');
 const helpers = require('./helpers');
 const socketModules = require('../src/socket.io/modules');
 const utils = require('../src/utils');
@@ -67,10 +68,10 @@ describe('Messaging Library', () => {
 		await Groups.join('administrators', mocks.users.foo.uid);
 		await User.setSetting(mocks.users.baz.uid, 'restrictChat', '1');
 
-		({ jar: mocks.users.foo.jar, csrf_token: mocks.users.foo.csrf } = await util.promisify(helpers.loginUser)('foo', 'barbar'));
-		({ jar: mocks.users.bar.jar, csrf_token: mocks.users.bar.csrf } = await util.promisify(helpers.loginUser)('bar', 'bazbaz'));
-		({ jar: mocks.users.baz.jar, csrf_token: mocks.users.baz.csrf } = await util.promisify(helpers.loginUser)('baz', 'quuxquux'));
-		({ jar: mocks.users.herp.jar, csrf_token: mocks.users.herp.csrf } = await util.promisify(helpers.loginUser)('herp', 'derpderp'));
+		({ jar: mocks.users.foo.jar, csrf_token: mocks.users.foo.csrf } = await helpers.loginUser('foo', 'barbar'));
+		({ jar: mocks.users.bar.jar, csrf_token: mocks.users.bar.csrf } = await helpers.loginUser('bar', 'bazbaz'));
+		({ jar: mocks.users.baz.jar, csrf_token: mocks.users.baz.csrf } = await helpers.loginUser('baz', 'quuxquux'));
+		({ jar: mocks.users.herp.jar, csrf_token: mocks.users.herp.csrf } = await helpers.loginUser('herp', 'derpderp'));
 
 		chatMessageDelay = meta.config.chatMessageDelay;
 		meta.config.chatMessageDelay = 0;
@@ -147,8 +148,6 @@ describe('Messaging Library', () => {
 
 			roomId = body.response.roomId;
 			assert(roomId);
-
-			await util.promisify(socketModules.chats.canMessage)({ uid: mocks.users.foo.uid }, roomId);
 		});
 
 		it('should send a user-join system message when a chat room is created', async () => {
@@ -231,27 +230,19 @@ describe('Messaging Library', () => {
 			assert.equal(data.owner, mocks.users.foo.uid);
 		});
 
-		it('should send a user-leave system message when a user leaves the chat room', (done) => {
-			socketModules.chats.getMessages(
-				{ uid: mocks.users.foo.uid },
-				{ uid: mocks.users.foo.uid, roomId: roomId, start: 0 },
-				(err, messages) => {
-					assert.ifError(err);
-					assert.equal(messages.length, 4);
-					const message = messages.pop();
-					assert.strictEqual(message.system, true);
-					assert.strictEqual(message.content, 'user-leave');
-					done();
-				}
-			);
+		it('should send a user-leave system message when a user leaves the chat room', async () => {
+			const { body } = await callv3API('get', `/chats/${roomId}`, {}, 'foo');
+			const { messages } = body.response;
+			const message = messages.pop();
+			assert.strictEqual(message.system, true);
+			assert.strictEqual(message.content, 'user-leave');
 		});
 
 		it('should not send a user-leave system message when a user tries to leave a room they are not in', async () => {
 			await callv3API('delete', `/chats/${roomId}/users/${mocks.users.baz.uid}`, {}, 'baz');
-			const messages = await socketModules.chats.getMessages(
-				{ uid: mocks.users.foo.uid },
-				{ uid: mocks.users.foo.uid, roomId: roomId, start: 0 }
-			);
+			const { body } = await callv3API('get', `/chats/${roomId}`, {}, 'foo');
+			const { messages } = body.response;
+
 			assert.equal(messages.length, 4);
 			let message = messages.pop();
 			assert.strictEqual(message.system, true);
@@ -269,7 +260,8 @@ describe('Messaging Library', () => {
 			}, 'herp');
 
 			await callv3API('post', `/chats/${body.response.roomId}/users`, { uids: [mocks.users.baz.uid] }, 'herp');
-			await util.promisify(socketModules.chats.leave)({ uid: mocks.users.herp.uid }, body.response.roomId);
+
+			await callv3API('delete', `/chats/${body.response.roomId}/users/${mocks.users.herp.uid}`, {}, 'herp');
 
 			const data = await Messaging.getRoomData(body.response.roomId);
 			assert.equal(data.owner, mocks.users.foo.uid);
@@ -277,7 +269,7 @@ describe('Messaging Library', () => {
 
 		it('should change owner if owner is deleted', async () => {
 			const sender = await User.create({ username: 'deleted_chat_user', password: 'barbar' });
-			const { jar: senderJar, csrf_token: senderCsrf } = await util.promisify(helpers.loginUser)('deleted_chat_user', 'barbar');
+			const { jar: senderJar, csrf_token: senderCsrf } = await helpers.loginUser('deleted_chat_user', 'barbar');
 
 			const receiver = await User.create({ username: 'receiver' });
 			const { response } = await request(`${nconf.get('url')}/api/v3/chats`, {
@@ -419,61 +411,40 @@ describe('Messaging Library', () => {
 			assert.strictEqual(notification.path, `${nconf.get('relative_path')}/chats/${roomId}`);
 		});
 
-		it('should fail to get messages from room with invalid data', (done) => {
-			socketModules.chats.getMessages({ uid: null }, null, (err) => {
-				assert.equal(err.message, '[[error:invalid-data]]');
-				socketModules.chats.getMessages({ uid: mocks.users.foo.uid }, null, (err) => {
-					assert.equal(err.message, '[[error:invalid-data]]');
-					socketModules.chats.getMessages({ uid: mocks.users.foo.uid }, { uid: null }, (err) => {
-						assert.equal(err.message, '[[error:invalid-data]]');
-						socketModules.chats.getMessages({ uid: mocks.users.foo.uid }, { uid: 1, roomId: null }, (err) => {
-							assert.equal(err.message, '[[error:invalid-data]]');
-							done();
-						});
-					});
-				});
-			});
-		});
-
-		it('should get messages from room', (done) => {
-			socketModules.chats.getMessages({ uid: mocks.users.foo.uid }, {
-				uid: mocks.users.foo.uid,
-				roomId: roomId,
-				start: 0,
-			}, (err, messages) => {
-				assert.ifError(err);
-				assert(Array.isArray(messages));
+		it('should get messages from room', async () => {
+			const { body } = await callv3API('get', `/chats/${roomId}`, {}, 'foo');
+			const { messages } = body.response;
+			assert(Array.isArray(messages));
 
-				// Filter out system messages
-				messages = messages.filter(message => !message.system);
-				assert.equal(messages[0].roomId, roomId);
-				assert.equal(messages[0].fromuid, mocks.users.foo.uid);
-				done();
-			});
+			// Filter out system messages
+			const normalMessages = messages.filter(message => !message.system);
+			assert.equal(normalMessages[0].roomId, roomId);
+			assert.equal(normalMessages[0].fromuid, mocks.users.foo.uid);
 		});
 
-		it('should fail to mark read with invalid data', (done) => {
-			socketModules.chats.markRead({ uid: null }, roomId, (err) => {
-				assert.equal(err.message, '[[error:invalid-data]]');
-				socketModules.chats.markRead({ uid: mocks.users.foo.uid }, null, (err) => {
-					assert.equal(err.message, '[[error:invalid-data]]');
-					done();
-				});
-			});
+		it('should fail to mark read with invalid data', async () => {
+			let _err;
+			try {
+				await api.chats.mark({ uid: null }, { state: 0, roomId });
+			} catch (err) {
+				_err = err;
+			}
+			assert.strictEqual(_err.message, '[[error:invalid-data]]');
+
+			try {
+				await api.chats.mark({ uid: mocks.users.foo.uid }, null);
+			} catch (err) {
+				_err = err;
+			}
+			assert.strictEqual(_err.message, '[[error:invalid-data]]');
 		});
 
-		it('should not error if user is not in room', (done) => {
-			socketModules.chats.markRead({ uid: mocks.users.herp.uid }, 10, (err) => {
-				assert.ifError(err);
-				done();
-			});
+		it('should not error if user is not in room', async () => {
+			await api.chats.mark({ uid: mocks.users.herp.uid }, { state: 0, roomId: 10 });
 		});
 
-		it('should mark room read', (done) => {
-			socketModules.chats.markRead({ uid: mocks.users.foo.uid }, roomId, (err) => {
-				assert.ifError(err);
-				done();
-			});
+		it('should mark room read', async () => {
+			await api.chats.mark({ uid: mocks.users.foo.uid }, { state: 0, roomId: roomId });
 		});
 
 		it('should mark all rooms read', (done) => {
@@ -496,18 +467,13 @@ describe('Messaging Library', () => {
 			assert.strictEqual(statusCode, 200);
 		});
 
-		it('should send a room-rename system message when a room is renamed', (done) => {
-			socketModules.chats.getMessages(
-				{ uid: mocks.users.foo.uid },
-				{ uid: mocks.users.foo.uid, roomId: roomId, start: 0 },
-				(err, messages) => {
-					assert.ifError(err);
-					const message = messages.pop();
-					assert.strictEqual(message.system, true);
-					assert.strictEqual(message.content, 'room-rename, new room name');
-					done();
-				}
-			);
+		it('should send a room-rename system message when a room is renamed', async () => {
+			const { body } = await callv3API('get', `/chats/${roomId}`, {}, 'foo');
+			const { messages } = body.response;
+
+			const message = messages.pop();
+			assert.strictEqual(message.system, true);
+			assert.strictEqual(message.content, 'room-rename, new room name');
 		});
 
 		it('should fail to load room with invalid-data', async () => {
@@ -644,94 +610,56 @@ describe('Messaging Library', () => {
 			assert.strictEqual(body.response.content, 'message edited');
 		});
 
-		it('should fail to delete message with invalid data', (done) => {
-			socketModules.chats.delete({ uid: mocks.users.foo.uid }, null, (err) => {
-				assert.equal(err.message, '[[error:invalid-data]]');
-				socketModules.chats.delete({ uid: mocks.users.foo.uid }, { roomId: null }, (err) => {
-					assert.equal(err.message, '[[error:invalid-data]]');
-					socketModules.chats.delete({ uid: mocks.users.foo.uid }, { roomId: 1, messageId: null }, (err) => {
-						assert.equal(err.message, '[[error:invalid-data]]');
-						done();
-					});
-				});
-			});
-		});
-
-		it('should fail to delete message if not owner', (done) => {
-			socketModules.chats.delete({ uid: mocks.users.herp.uid }, { messageId: mid, roomId: roomId }, (err) => {
-				assert.equal(err.message, '[[error:cant-delete-chat-message]]');
-				done();
-			});
+		it('should fail to delete message if not owner', async () => {
+			const { statusCode, body } = await callv3API('delete', `/chats/${roomId}/messages/${mid}`, {}, 'herp');
+			assert.strictEqual(statusCode, 400);
+			assert.strictEqual(body.status.message, 'You are not allowed to delete this message');
 		});
 
-		it('should mark the message as deleted', (done) => {
-			socketModules.chats.delete({ uid: mocks.users.foo.uid }, { messageId: mid, roomId: roomId }, (err) => {
-				assert.ifError(err);
-				db.getObjectField(`message:${mid}`, 'deleted', (err, value) => {
-					assert.ifError(err);
-					assert.strictEqual(1, parseInt(value, 10));
-					done();
-				});
-			});
+		it('should mark the message as deleted', async () => {
+			await callv3API('delete', `/chats/${roomId}/messages/${mid}`, {}, 'foo');
+			const value = await db.getObjectField(`message:${mid}`, 'deleted');
+			assert.strictEqual(1, parseInt(value, 10));
 		});
 
-		it('should show deleted message to original users', (done) => {
-			socketModules.chats.getMessages(
-				{ uid: mocks.users.foo.uid },
-				{ uid: mocks.users.foo.uid, roomId: roomId, start: 0 },
-				(err, messages) => {
-					assert.ifError(err);
+		it('should show deleted message to original users', async () => {
+			const { body } = await callv3API('get', `/chats/${roomId}`, {}, 'foo');
+			const { messages } = body.response;
 
-					// Reduce messages to their mids
-					const mids = messages.reduce((mids, cur) => {
-						mids.push(cur.messageId);
-						return mids;
-					}, []);
+			// Reduce messages to their mids
+			const mids = messages.reduce((mids, cur) => {
+				mids.push(cur.messageId);
+				return mids;
+			}, []);
 
-					assert(mids.includes(mid));
-					done();
-				}
-			);
+			assert(mids.includes(mid));
 		});
 
-		it('should not show deleted message to other users', (done) => {
-			socketModules.chats.getMessages(
-				{ uid: mocks.users.herp.uid },
-				{ uid: mocks.users.herp.uid, roomId: roomId, start: 0 },
-				(err, messages) => {
-					assert.ifError(err);
-					messages.forEach((msg) => {
-						assert(!msg.deleted || msg.content === '[[modules:chat.message-deleted]]', msg.content);
-						assert(!msg.deleted || msg.cleanedContent, '[[modules:chat.message-deleted]]', msg.content);
-					});
-					done();
-				}
-			);
+		it('should not show deleted message to other users', async () => {
+			const { body } = await callv3API('get', `/chats/${roomId}`, {}, 'herp');
+			const { messages } = body.response;
+			messages.forEach((msg) => {
+				assert(!msg.deleted || msg.content === '[[modules:chat.message-deleted]]', msg.content);
+				assert(!msg.deleted || msg.cleanedContent, '[[modules:chat.message-deleted]]', msg.content);
+			});
 		});
 
-		it('should error out if a message is deleted again', (done) => {
-			socketModules.chats.delete({ uid: mocks.users.foo.uid }, { messageId: mid, roomId: roomId }, (err) => {
-				assert.strictEqual('[[error:chat-deleted-already]]', err.message);
-				done();
-			});
+		it('should error out if a message is deleted again', async () => {
+			const { statusCode, body } = await callv3API('delete', `/chats/${roomId}/messages/${mid}`, {}, 'foo');
+			assert.strictEqual(statusCode, 400);
+			assert.strictEqual(body.status.message, 'This chat message has already been deleted.');
 		});
 
-		it('should restore the message', (done) => {
-			socketModules.chats.restore({ uid: mocks.users.foo.uid }, { messageId: mid, roomId: roomId }, (err) => {
-				assert.ifError(err);
-				db.getObjectField(`message:${mid}`, 'deleted', (err, value) => {
-					assert.ifError(err);
-					assert.strictEqual(0, parseInt(value, 10));
-					done();
-				});
-			});
+		it('should restore the message', async () => {
+			await callv3API('post', `/chats/${roomId}/messages/${mid}`, {}, 'foo');
+			const value = await db.getObjectField(`message:${mid}`, 'deleted');
+			assert.strictEqual(0, parseInt(value, 10));
 		});
 
-		it('should error out if a message is restored again', (done) => {
-			socketModules.chats.restore({ uid: mocks.users.foo.uid }, { messageId: mid, roomId: roomId }, (err) => {
-				assert.strictEqual('[[error:chat-restored-already]]', err.message);
-				done();
-			});
+		it('should error out if a message is restored again', async () => {
+			const { statusCode, body } = await callv3API('post', `/chats/${roomId}/messages/${mid}`, {}, 'foo');
+			assert.strictEqual(statusCode, 400);
+			assert.strictEqual(body.status.message, 'This chat message has already been restored.');
 		});
 
 		describe('disabled via ACP', () => {
@@ -744,23 +672,21 @@ describe('Messaging Library', () => {
 			});
 
 			it('should error out for regular users', async () => {
-				try {
-					await socketModules.chats.delete({ uid: mocks.users.baz.uid }, { messageId: mid2, roomId: roomId });
-				} catch (err) {
-					assert.strictEqual('[[error:chat-message-editing-disabled]]', err.message);
-				}
+				const { statusCode, body } = await callv3API('delete', `/chats/${roomId}/messages/${mid2}`, {}, 'baz');
+				assert.strictEqual(statusCode, 400);
+				assert.strictEqual(body.status.message, 'chat-message-editing-disabled');
 			});
 
 			it('should succeed for administrators', async () => {
-				await socketModules.chats.delete({ uid: mocks.users.foo.uid }, { messageId: mid2, roomId: roomId });
-				await socketModules.chats.restore({ uid: mocks.users.foo.uid }, { messageId: mid2, roomId: roomId });
+				await callv3API('delete', `/chats/${roomId}/messages/${mid2}`, {}, 'foo');
+				await callv3API('post', `/chats/${roomId}/messages/${mid2}`, {}, 'foo');
 			});
 
 			it('should succeed for global moderators', async () => {
 				await Groups.join(['Global Moderators'], mocks.users.baz.uid);
 
-				await socketModules.chats.delete({ uid: mocks.users.foo.uid }, { messageId: mid2, roomId: roomId });
-				await socketModules.chats.restore({ uid: mocks.users.foo.uid }, { messageId: mid2, roomId: roomId });
+				await callv3API('delete', `/chats/${roomId}/messages/${mid2}`, {}, 'baz');
+				await callv3API('post', `/chats/${roomId}/messages/${mid2}`, {}, 'baz');
 
 				await Groups.leave(['Global Moderators'], mocks.users.baz.uid);
 			});
@@ -851,7 +777,7 @@ describe('Messaging Library', () => {
 		});
 
 		it('should return 404 if user is not in room', async () => {
-			const data = await util.promisify(helpers.loginUser)('baz', 'quuxquux');
+			const data = await helpers.loginUser('baz', 'quuxquux');
 			const response = await request(`${nconf.get('url')}/api/user/baz/chats/${roomId}`, {
 				resolveWithFullResponse: true,
 				simple: false,
diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js
index d22e4c01b0..5cb8af1d34 100644
--- a/test/mocks/databasemock.js
+++ b/test/mocks/databasemock.js
@@ -206,10 +206,11 @@ async function setupMockDefaults() {
 		id: 'nodebb-theme-persona',
 	});
 
-	const rimraf = util.promisify(require('rimraf'));
-	await rimraf('test/uploads');
+	const fs = require('fs');
+	await fs.promises.rm('test/uploads', { recursive: true, force: true });
+
 
-	const mkdirp = require('mkdirp');
+	const { mkdirp } = require('mkdirp');
 
 	const folders = [
 		'test/uploads',
diff --git a/test/posts.js b/test/posts.js
index f40af0c0d8..2fcdfde847 100644
--- a/test/posts.js
+++ b/test/posts.js
@@ -3,7 +3,7 @@
 
 const assert = require('assert');
 const async = require('async');
-const request = require('request');
+const request = require('request-promise-native');
 const nconf = require('nconf');
 const path = require('path');
 const util = require('util');
@@ -77,13 +77,7 @@ describe('Post\'s', () => {
 	});
 
 	it('should update category teaser properly', async () => {
-		const util = require('util');
-		const getCategoriesAsync = util.promisify(async (callback) => {
-			request(`${nconf.get('url')}/api/categories`, { json: true }, (err, res, body) => {
-				callback(err, body);
-			});
-		});
-
+		const getCategoriesAsync = async () => await request(`${nconf.get('url')}/api/categories`, { json: true });
 		const postResult = await topics.post({ uid: globalModUid, cid: cid, title: 'topic title', content: '123456789' });
 
 		let data = await getCategoriesAsync();
@@ -378,15 +372,11 @@ describe('Post\'s', () => {
 				function (next) {
 					privileges.categories.rescind(['groups:posts:view_deleted'], cid, 'Global Moderators', next);
 				},
-				function (next) {
-					helpers.loginUser('global mod', '123456', (err, data) => {
-						assert.ifError(err);
-						request(`${nconf.get('url')}/api/topic/${tid}`, { jar: data.jar, json: true }, (err, res, body) => {
-							assert.ifError(err);
-							assert.equal(body.posts[1].content, '[[topic:post_is_deleted]]');
-							privileges.categories.give(['groups:posts:view_deleted'], cid, 'Global Moderators', next);
-						});
-					});
+				async () => {
+					const { jar } = await helpers.loginUser('global mod', '123456');
+					const { posts } = await request(`${nconf.get('url')}/api/topic/${tid}`, { jar, json: true });
+					assert.equal(posts[1].content, '[[topic:post_is_deleted]]');
+					await privileges.categories.give(['groups:posts:view_deleted'], cid, 'Global Moderators');
 				},
 			], done);
 		});
@@ -996,19 +986,13 @@ describe('Post\'s', () => {
 			queueId = result.id;
 		});
 
-		it('should load queued posts', (done) => {
-			helpers.loginUser('globalmod', 'globalmodpwd', (err, data) => {
-				jar = data.jar;
-				assert.ifError(err);
-				request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true }, (err, res, body) => {
-					assert.ifError(err);
-					assert.equal(body.posts[0].type, 'topic');
-					assert.equal(body.posts[0].data.content, 'queued topic content');
-					assert.equal(body.posts[1].type, 'reply');
-					assert.equal(body.posts[1].data.content, 'this is a queued reply');
-					done();
-				});
-			});
+		it('should load queued posts', async () => {
+			({ jar } = await helpers.loginUser('globalmod', 'globalmodpwd'));
+			const { posts } = await request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true });
+			assert.equal(posts[0].type, 'topic');
+			assert.equal(posts[0].data.content, 'queued topic content');
+			assert.equal(posts[1].type, 'reply');
+			assert.equal(posts[1].data.content, 'this is a queued reply');
 		});
 
 		it('should error if data is invalid', (done) => {
@@ -1018,43 +1002,26 @@ describe('Post\'s', () => {
 			});
 		});
 
-		it('should edit post in queue', (done) => {
-			socketPosts.editQueuedContent({ uid: globalModUid }, { id: queueId, content: 'newContent' }, (err) => {
-				assert.ifError(err);
-				request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true }, (err, res, body) => {
-					assert.ifError(err);
-					assert.equal(body.posts[1].type, 'reply');
-					assert.equal(body.posts[1].data.content, 'newContent');
-					done();
-				});
-			});
+		it('should edit post in queue', async () => {
+			await socketPosts.editQueuedContent({ uid: globalModUid }, { id: queueId, content: 'newContent' });
+			const { posts } = await request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true });
+			assert.equal(posts[1].type, 'reply');
+			assert.equal(posts[1].data.content, 'newContent');
 		});
 
-		it('should edit topic title in queue', (done) => {
-			socketPosts.editQueuedContent({ uid: globalModUid }, { id: topicQueueId, title: 'new topic title' }, (err) => {
-				assert.ifError(err);
-				request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true }, (err, res, body) => {
-					assert.ifError(err);
-					assert.equal(body.posts[0].type, 'topic');
-					assert.equal(body.posts[0].data.title, 'new topic title');
-					done();
-				});
-			});
+		it('should edit topic title in queue', async () => {
+			await socketPosts.editQueuedContent({ uid: globalModUid }, { id: topicQueueId, title: 'new topic title' });
+			const { posts } = await request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true });
+			assert.equal(posts[0].type, 'topic');
+			assert.equal(posts[0].data.title, 'new topic title');
 		});
 
-		it('should edit topic category in queue', (done) => {
-			socketPosts.editQueuedContent({ uid: globalModUid }, { id: topicQueueId, cid: 2 }, (err) => {
-				assert.ifError(err);
-				request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true }, (err, res, body) => {
-					assert.ifError(err);
-					assert.equal(body.posts[0].type, 'topic');
-					assert.equal(body.posts[0].data.cid, 2);
-					socketPosts.editQueuedContent({ uid: globalModUid }, { id: topicQueueId, cid: cid }, (err) => {
-						assert.ifError(err);
-						done();
-					});
-				});
-			});
+		it('should edit topic category in queue', async () => {
+			await socketPosts.editQueuedContent({ uid: globalModUid }, { id: topicQueueId, cid: 2 });
+			const { posts } = await request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true });
+			assert.equal(posts[0].type, 'topic');
+			assert.equal(posts[0].data.cid, 2);
+			await socketPosts.editQueuedContent({ uid: globalModUid }, { id: topicQueueId, cid: cid });
 		});
 
 		it('should prevent regular users from approving posts', (done) => {
@@ -1066,7 +1033,7 @@ describe('Post\'s', () => {
 
 		it('should prevent regular users from approving non existing posts', (done) => {
 			socketPosts.accept({ uid: uid }, { id: 123123 }, (err) => {
-				assert.equal(err.message, '[[error:no-privileges]]');
+				assert.equal(err.message, '[[error:no-post]]');
 				done();
 			});
 		});
@@ -1089,7 +1056,7 @@ describe('Post\'s', () => {
 
 		it('should not crash if id does not exist', (done) => {
 			socketPosts.reject({ uid: globalModUid }, { id: '123123123' }, (err) => {
-				assert.equal(err.message, '[[error:no-privileges]]');
+				assert.equal(err.message, '[[error:no-post]]');
 				done();
 			});
 		});
diff --git a/test/socket.io.js b/test/socket.io.js
index 3628e3b0d0..726f6f71ad 100644
--- a/test/socket.io.js
+++ b/test/socket.io.js
@@ -116,13 +116,13 @@ describe('socket.io', () => {
 	});
 
 	it('should get installed themes', (done) => {
-		const themes = ['nodebb-theme-lavender', 'nodebb-theme-persona', 'nodebb-theme-vanilla'];
+		const themes = ['nodebb-theme-persona'];
 		io.emit('admin.themes.getInstalled', (err, data) => {
 			assert.ifError(err);
 			assert(data);
 			const installed = data.map(theme => theme.id);
 			themes.forEach((theme) => {
-				assert.notEqual(installed.indexOf(theme), -1);
+				assert(installed.includes(theme));
 			});
 			done();
 		});
@@ -741,7 +741,7 @@ describe('socket.io', () => {
 
 		it('should not generate code if rate limited', (done) => {
 			socketUser.reset.send({ uid: 0 }, 'regular@test.com', (err) => {
-				assert.ifError(err);
+				assert(err);
 
 				async.parallel({
 					count: async.apply(db.sortedSetCount.bind(db), 'reset:issueDate', 0, Date.now()),
diff --git a/test/template-helpers.js b/test/template-helpers.js
index b89b726fd2..25829587f7 100644
--- a/test/template-helpers.js
+++ b/test/template-helpers.js
@@ -77,7 +77,7 @@ describe('helpers', () => {
 			imageClass: 'auto',
 		};
 		const bg = helpers.generateCategoryBackground(category);
-		assert.equal(bg, 'background-color: #ff0000; color: #00ff00; background-image: url(/assets/uploads/image.png); background-size: auto;');
+		assert.equal(bg, 'background-color: #ff0000; border-color: #ff0000!important; color: #00ff00; background-image: url(/assets/uploads/image.png); background-size: auto;');
 		done();
 	});
 
@@ -102,7 +102,7 @@ describe('helpers', () => {
 			],
 		};
 		const html = helpers.generateChildrenCategories(category);
-		assert.equal(html, `<span class="category-children"><span class="category-children-item pull-left"><div role="presentation" class="icon pull-left" style="background-color: #ff0000; color: #00ff00;"><i class="fa fa-fw undefined"></i></div><a href="${nconf.get('relative_path')}/category/undefined"><small>children</small></a></span></span>`);
+		assert.equal(html, `<span class="category-children"><span class="category-children-item float-start"><div role="presentation" class="icon float-start" style="background-color: #ff0000; border-color: #ff0000!important; color: #00ff00;"><i class="fa fa-fw undefined"></i></div><a href="${nconf.get('relative_path')}/category/undefined"><small>children</small></a></span></span>`);
 		done();
 	});
 
@@ -114,13 +114,13 @@ describe('helpers', () => {
 
 	it('should show leave button if isMember and group is not administrators', (done) => {
 		const btn = helpers.membershipBtn({ displayName: 'some group', name: 'some group', isMember: true });
-		assert.equal(btn, '<button class="btn btn-danger" data-action="leave" data-group="some group"><i class="fa fa-times"></i> [[groups:membership.leave-group]]</button>');
+		assert.equal(btn, '<button class="btn btn-danger " data-action="leave" data-group="some group" ><i class="fa fa-times"></i> [[groups:membership.leave-group]]</button>');
 		done();
 	});
 
 	it('should show pending button if isPending and group is not administrators', (done) => {
 		const btn = helpers.membershipBtn({ displayName: 'some group', name: 'some group', isPending: true });
-		assert.equal(btn, '<button class="btn btn-warning disabled"><i class="fa fa-clock-o"></i> [[groups:membership.invitation-pending]]</button>');
+		assert.equal(btn, '<button class="btn btn-warning disabled "><i class="fa fa-clock-o"></i> [[groups:membership.invitation-pending]]</button>');
 		done();
 	});
 
@@ -148,7 +148,19 @@ describe('helpers', () => {
 			read: true,
 		};
 		const html = helpers.spawnPrivilegeStates('guests', privs);
-		assert.equal(html, '<td class="text-center" data-privilege="find" data-value="true"><input autocomplete="off" type="checkbox" checked /></td><td class="text-center" data-privilege="read" data-value="true"><input autocomplete="off" type="checkbox" checked /></td>');
+		assert.equal(html, `
+				<td data-privilege="find" data-value="true">
+					<div class="form-check text-center">
+						<input class="form-check-input float-none" autocomplete="off" type="checkbox" checked />
+					</div>
+				</td>
+\t\t\t
+				<td data-privilege="read" data-value="true">
+					<div class="form-check text-center">
+						<input class="form-check-input float-none" autocomplete="off" type="checkbox" checked />
+					</div>
+				</td>
+			`);
 		done();
 	});
 
diff --git a/test/translator.js b/test/translator.js
index 793a3f2d26..417a3fc6be 100644
--- a/test/translator.js
+++ b/test/translator.js
@@ -129,7 +129,7 @@ describe('new Translator(language)', () => {
 
 			const key = '[[global:403.login, <strong>test</strong>]]';
 			return translator.translate(key).then((translated) => {
-				assert.strictEqual(translated, 'Perhaps you should <a href=\'&lt;strong&gt;test&lt;/strong&gt;/login\'>try logging in</a>?');
+				assert.strictEqual(translated, 'Perhaps you should <a class="alert-link" href=\'&lt;strong&gt;test&lt;/strong&gt;/login\'>try logging in</a>?');
 			});
 		});
 
diff --git a/test/user.js b/test/user.js
index 990122796a..dc76f45fa8 100644
--- a/test/user.js
+++ b/test/user.js
@@ -15,7 +15,6 @@ const User = require('../src/user');
 const Topics = require('../src/topics');
 const Categories = require('../src/categories');
 const Posts = require('../src/posts');
-const Password = require('../src/password');
 const groups = require('../src/groups');
 const messaging = require('../src/messaging');
 const helpers = require('./helpers');
@@ -89,7 +88,7 @@ describe('User', () => {
 			const validationPending = await User.email.isValidationPending(uid, email);
 			assert.strictEqual(validationPending, true);
 
-			assert.equal(data.email, '&lt;h1&gt;test&lt;&#x2F;h1&gt;@gmail.com');
+			assert.equal(data.email, '');
 			assert.strictEqual(data.profileviews, 0);
 			assert.strictEqual(data.reputation, 0);
 			assert.strictEqual(data.postcount, 0);
@@ -587,106 +586,6 @@ describe('User', () => {
 		});
 	});
 
-	describe('passwordReset', () => {
-		let uid;
-		let code;
-		before(async () => {
-			uid = await User.create({ username: 'resetuser', password: '123456' });
-			await User.setUserField(uid, 'email', 'reset@me.com');
-			await User.email.confirmByUid(uid);
-		});
-
-		it('.generate() should generate a new reset code', (done) => {
-			User.reset.generate(uid, (err, _code) => {
-				assert.ifError(err);
-				assert(_code);
-
-				code = _code;
-				done();
-			});
-		});
-
-		it('.generate() should invalidate a previous generated reset code', async () => {
-			const _code = await User.reset.generate(uid);
-			const valid = await User.reset.validate(code);
-			assert.strictEqual(valid, false);
-
-			code = _code;
-		});
-
-		it('.validate() should ensure that this new code is valid', (done) => {
-			User.reset.validate(code, (err, valid) => {
-				assert.ifError(err);
-				assert.strictEqual(valid, true);
-				done();
-			});
-		});
-
-		it('.validate() should correctly identify an invalid code', (done) => {
-			User.reset.validate(`${code}abcdef`, (err, valid) => {
-				assert.ifError(err);
-				assert.strictEqual(valid, false);
-				done();
-			});
-		});
-
-		it('.send() should create a new reset code and reset password', async () => {
-			code = await User.reset.send('reset@me.com');
-		});
-
-		it('.commit() should update the user\'s password and confirm their email', (done) => {
-			User.reset.commit(code, 'newpassword', (err) => {
-				assert.ifError(err);
-
-				async.parallel({
-					userData: function (next) {
-						User.getUserData(uid, next);
-					},
-					password: function (next) {
-						db.getObjectField(`user:${uid}`, 'password', next);
-					},
-				}, (err, results) => {
-					assert.ifError(err);
-					Password.compare('newpassword', results.password, true, (err, match) => {
-						assert.ifError(err);
-						assert(match);
-						assert.strictEqual(results.userData['email:confirmed'], 1);
-						done();
-					});
-				});
-			});
-		});
-
-		it('.should error if same password is used for reset', async () => {
-			const uid = await User.create({ username: 'badmemory', email: 'bad@memory.com', password: '123456' });
-			const code = await User.reset.generate(uid);
-			let err;
-			try {
-				await User.reset.commit(code, '123456');
-			} catch (_err) {
-				err = _err;
-			}
-			assert.strictEqual(err.message, '[[error:reset-same-password]]');
-		});
-
-		it('should not validate email if password reset is due to expiry', async () => {
-			const uid = await User.create({ username: 'resetexpiry', email: 'reset@expiry.com', password: '123456' });
-			let confirmed = await User.getUserField(uid, 'email:confirmed');
-			let [verified, unverified] = await groups.isMemberOfGroups(uid, ['verified-users', 'unverified-users']);
-			assert.strictEqual(confirmed, 0);
-			assert.strictEqual(verified, false);
-			assert.strictEqual(unverified, true);
-			await User.setUserField(uid, 'passwordExpiry', Date.now());
-			const code = await User.reset.generate(uid);
-			await User.reset.commit(code, '654321');
-			confirmed = await User.getUserField(uid, 'email:confirmed');
-			[verified, unverified] = await groups.isMemberOfGroups(uid, ['verified-users', 'unverified-users']);
-			assert.strictEqual(confirmed, 0);
-			assert.strictEqual(verified, false);
-			assert.strictEqual(unverified, true);
-		});
-	});
-
 	describe('hash methods', () => {
 		it('should return uid from email', (done) => {
 			User.getUidByEmail('john@example.com', (err, uid) => {
@@ -1226,8 +1125,10 @@ describe('User', () => {
 					assert.ifError(err);
 					assert(data);
 					assert(Array.isArray(data));
-					assert.equal(data[0].type, 'uploaded');
-					assert.equal(data[0].text, '[[user:uploaded_picture]]');
+					assert.equal(data[0].type, 'default');
+					assert.equal(data[0].username, '[[user:default_picture]]');
+					assert.equal(data[1].type, 'uploaded');
+					assert.equal(data[1].username, '[[user:uploaded_picture]]');
 					done();
 				});
 			});
@@ -1311,10 +1212,13 @@ describe('User', () => {
 
 			// Accessing this page will mark the user's account as needing an updated email, below code undo's.
 			await requestAsync({
-				uri: `${nconf.get('url')}/register/abort?_csrf=${csrf_token}`,
+				uri: `${nconf.get('url')}/register/abort`,
 				jar,
 				method: 'POST',
 				simple: false,
+				headers: {
+					'x-csrf-token': csrf_token,
+				},
 			});
 		});
 
@@ -2026,25 +1930,18 @@ describe('User', () => {
 			done();
 		});
 
-		it('should add user to approval queue', (done) => {
-			helpers.registerUser({
+		it('should add user to approval queue', async () => {
+			await helpers.registerUser({
 				username: 'rejectme',
 				password: '123456',
 				'password-confirm': '123456',
 				email: '<script>alert("ok")<script>reject@me.com',
 				gdpr_consent: true,
-			}, (err) => {
-				assert.ifError(err);
-				helpers.loginUser('admin', '123456', (err, data) => {
-					assert.ifError(err);
-					request(`${nconf.get('url')}/api/admin/manage/registration`, { jar: data.jar, json: true }, (err, res, body) => {
-						assert.ifError(err);
-						assert.equal(body.users[0].username, 'rejectme');
-						assert.equal(body.users[0].email, '&lt;script&gt;alert(&quot;ok&quot;)&lt;script&gt;reject@me.com');
-						done();
-					});
-				});
 			});
+			const { jar } = await helpers.loginUser('admin', '123456');
+			const { users } = await requestAsync(`${nconf.get('url')}/api/admin/manage/registration`, { jar, json: true });
+			assert.equal(users[0].username, 'rejectme');
+			assert.equal(users[0].email, '&lt;script&gt;alert(&quot;ok&quot;)&lt;script&gt;reject@me.com');
 		});
 
 		it('should fail to add user to queue if username is taken', (done) => {
@@ -2167,21 +2064,8 @@ describe('User', () => {
 			let csrf_token;
 			let jar;
 
-			before((done) => {
-				helpers.loginUser('notAnInviter', COMMON_PW, (err, data) => {
-					assert.ifError(err);
-					jar = data.jar;
-
-					request({
-						url: `${nconf.get('url')}/api/config`,
-						json: true,
-						jar: jar,
-					}, (err, response, body) => {
-						assert.ifError(err);
-						csrf_token = body.csrf_token;
-						done();
-					});
-				});
+			before(async () => {
+				({ jar, csrf_token } = await helpers.loginUser('notAnInviter', COMMON_PW));
 			});
 
 			it('should error if user does not have invite privilege', async () => {
@@ -2203,21 +2087,8 @@ describe('User', () => {
 			let csrf_token;
 			let jar;
 
-			before((done) => {
-				helpers.loginUser('inviter', COMMON_PW, (err, data) => {
-					assert.ifError(err);
-					jar = data.jar;
-
-					request({
-						url: `${nconf.get('url')}/api/config`,
-						json: true,
-						jar: jar,
-					}, (err, response, body) => {
-						assert.ifError(err);
-						csrf_token = body.csrf_token;
-						done();
-					});
-				});
+			before(async () => {
+				({ jar, csrf_token } = await helpers.loginUser('inviter', COMMON_PW));
 			});
 
 			it('should error with invalid data', async () => {
@@ -2271,7 +2142,7 @@ describe('User', () => {
 				assert.strictEqual(res.statusCode, 403);
 			});
 
-			it('should error if ouf of invitations', async () => {
+			it('should error if out of invitations', async () => {
 				meta.config.maximumInvites = 1;
 				const { res } = await helpers.invite({ emails: 'invite6@test.com', groupsToJoin: [] }, inviterUid, jar, csrf_token);
 				assert.strictEqual(res.statusCode, 403);
@@ -2305,21 +2176,8 @@ describe('User', () => {
 			let csrf_token;
 			let jar;
 
-			before((done) => {
-				helpers.loginUser('adminInvite', COMMON_PW, (err, data) => {
-					assert.ifError(err);
-					jar = data.jar;
-
-					request({
-						url: `${nconf.get('url')}/api/config`,
-						json: true,
-						jar: jar,
-					}, (err, response, body) => {
-						assert.ifError(err);
-						csrf_token = body.csrf_token;
-						done();
-					});
-				});
+			before(async () => {
+				({ jar, csrf_token } = await helpers.loginUser('adminInvite', COMMON_PW));
 			});
 
 			it('should escape email', async () => {
@@ -2456,21 +2314,8 @@ describe('User', () => {
 			let csrf_token;
 			let jar;
 
-			before((done) => {
-				helpers.loginUser('inviter', COMMON_PW, (err, data) => {
-					assert.ifError(err);
-					jar = data.jar;
-
-					request({
-						url: `${nconf.get('url')}/api/config`,
-						json: true,
-						jar: jar,
-					}, (err, response, body) => {
-						assert.ifError(err);
-						csrf_token = body.csrf_token;
-						done();
-					});
-				});
+			before(async () => {
+				({ jar, csrf_token } = await helpers.loginUser('inviter', COMMON_PW));
 			});
 
 			it('should show a list of groups for adding to an invite', async () => {
@@ -2494,14 +2339,7 @@ describe('User', () => {
 					resolveWithFullResponse: true,
 				});
 
-				assert.strictEqual(res.statusCode, 401);
-				assert.deepStrictEqual(res.body, {
-					status: {
-						code: 'not-authorised',
-						message: 'A valid login session was not found. Please log in and try again.',
-					},
-					response: {},
-				});
+				assert.strictEqual(res.statusCode, 403);
 			});
 		});
 	});
@@ -2659,6 +2497,7 @@ describe('User', () => {
 			await assertPrivacy({ v3Api: false, jar: regularUserJar, emailOnly: true });
 
 			// Let's confirm for afterwards
+			await User.setUserField(hidingUser.uid, 'email', 'should@be.hidden');
 			await User.email.confirmByUid(hidingUser.uid);
 		});
 
@@ -3049,17 +2888,12 @@ describe('User', () => {
 		});
 	});
 
-	it('should allow user to login even if password is weak', (done) => {
-		User.create({ username: 'weakpwd', password: '123456' }, (err) => {
-			assert.ifError(err);
-			const oldValue = meta.config.minimumPasswordStrength;
-			meta.config.minimumPasswordStrength = 3;
-			helpers.loginUser('weakpwd', '123456', (err) => {
-				assert.ifError(err);
-				meta.config.minimumPasswordStrength = oldValue;
-				done();
-			});
-		});
+	it('should allow user to login even if password is weak', async () => {
+		await User.create({ username: 'weakpwd', password: '123456' });
+		const oldValue = meta.config.minimumPasswordStrength;
+		meta.config.minimumPasswordStrength = 3;
+		await helpers.loginUser('weakpwd', '123456');
+		meta.config.minimumPasswordStrength = oldValue;
 	});
 
 	describe('User\'s', async () => {
diff --git a/test/user/emails.js b/test/user/emails.js
index 47d3fcb6d0..e378fb6780 100644
--- a/test/user/emails.js
+++ b/test/user/emails.js
@@ -150,7 +150,6 @@ describe('email confirmation (v3 api)', () => {
 			resolve({ jar, response, body });
 		});
 	});
-	const login = util.promisify(helpers.loginUser);
 
 	before(async () => {
 		// If you're running this file directly, uncomment these lines
@@ -219,7 +218,7 @@ describe('email confirmation (v3 api)', () => {
 	it('should still confirm the email (as email is set in user hash)', async () => {
 		await user.email.remove(userObj.uid);
 		await user.setUserField(userObj.uid, 'email', 'test@example.org');
-		({ jar } = await login('email-test', 'abcdef')); // email removal logs out everybody
+		({ jar } = await helpers.loginUser('email-test', 'abcdef')); // email removal logs out everybody
 		await groups.join('administrators', userObj.uid);
 
 		const { res, body } = await helpers.request('post', `/api/v3/users/${userObj.uid}/emails/${encodeURIComponent('test@example.org')}/confirm`, {
diff --git a/test/user/reset.js b/test/user/reset.js
new file mode 100644
index 0000000000..36f80b2dda
--- /dev/null
+++ b/test/user/reset.js
@@ -0,0 +1,163 @@
+'use strict';
+
+const assert = require('assert');
+const async = require('async');
+
+const db = require('../mocks/databasemock');
+
+const user = require('../../src/user');
+const groups = require('../../src/groups');
+const password = require('../../src/password');
+const utils = require('../../src/utils');
+
+const socketUser = require('../../src/socket.io/user');
+
+describe('Password reset (library methods)', () => {
+	let uid;
+	let code;
+	before(async () => {
+		uid = await user.create({ username: 'resetuser', password: '123456' });
+		await user.setUserField(uid, 'email', 'reset@me.com');
+		await user.email.confirmByUid(uid);
+	});
+
+	it('.generate() should generate a new reset code', (done) => {
+		user.reset.generate(uid, (err, _code) => {
+			assert.ifError(err);
+			assert(_code);
+
+			code = _code;
+			done();
+		});
+	});
+
+	it('.generate() should invalidate a previous generated reset code', async () => {
+		const _code = await user.reset.generate(uid);
+		const valid = await user.reset.validate(code);
+		assert.strictEqual(valid, false);
+
+		code = _code;
+	});
+
+	it('.validate() should ensure that this new code is valid', (done) => {
+		user.reset.validate(code, (err, valid) => {
+			assert.ifError(err);
+			assert.strictEqual(valid, true);
+			done();
+		});
+	});
+
+	it('.validate() should correctly identify an invalid code', (done) => {
+		user.reset.validate(`${code}abcdef`, (err, valid) => {
+			assert.ifError(err);
+			assert.strictEqual(valid, false);
+			done();
+		});
+	});
+
+	it('.send() should create a new reset code and reset password', async () => {
+		code = await user.reset.send('reset@me.com');
+	});
+
+	it('.commit() should update the user\'s password and confirm their email', (done) => {
+		user.reset.commit(code, 'newpassword', (err) => {
+			assert.ifError(err);
+
+			async.parallel({
+				userData: function (next) {
+					user.getUserData(uid, next);
+				},
+				password: function (next) {
+					db.getObjectField(`user:${uid}`, 'password', next);
+				},
+			}, (err, results) => {
+				assert.ifError(err);
+				password.compare('newpassword', results.password, true, (err, match) => {
+					assert.ifError(err);
+					assert(match);
+					assert.strictEqual(results.userData['email:confirmed'], 1);
+					done();
+				});
+			});
+		});
+	});
+
+	it('.should error if same password is used for reset', async () => {
+		const uid = await user.create({ username: 'badmemory', email: 'bad@memory.com', password: '123456' });
+		const code = await user.reset.generate(uid);
+		let err;
+		try {
+			await user.reset.commit(code, '123456');
+		} catch (_err) {
+			err = _err;
+		}
+		assert.strictEqual(err.message, '[[error:reset-same-password]]');
+	});
+
+	it('should not validate email if password reset is due to expiry', async () => {
+		const uid = await user.create({ username: 'resetexpiry', email: 'reset@expiry.com', password: '123456' });
+		let confirmed = await user.getUserField(uid, 'email:confirmed');
+		let [verified, unverified] = await groups.isMemberOfGroups(uid, ['verified-users', 'unverified-users']);
+		assert.strictEqual(confirmed, 0);
+		assert.strictEqual(verified, false);
+		assert.strictEqual(unverified, true);
+		await user.setUserField(uid, 'passwordExpiry', Date.now());
+		const code = await user.reset.generate(uid);
+		await user.reset.commit(code, '654321');
+		confirmed = await user.getUserField(uid, 'email:confirmed');
+		[verified, unverified] = await groups.isMemberOfGroups(uid, ['verified-users', 'unverified-users']);
+		assert.strictEqual(confirmed, 0);
+		assert.strictEqual(verified, false);
+		assert.strictEqual(unverified, true);
+	});
+});
+
+describe.only('locks', () => {
+	let uid;
+	let email;
+	beforeEach(async () => {
+		const [username, password] = [utils.generateUUID().slice(0, 10), utils.generateUUID()];
+		uid = await user.create({ username, password });
+		email = `${username}@nodebb.org`;
+		await user.setUserField(uid, 'email', email);
+		await user.email.confirmByUid(uid);
+	});
+
+	it('should disallow reset request if one was made within the minute', async () => {
+		await user.reset.send(email);
+		await assert.rejects(user.reset.send(email), {
+			message: '[[error:reset-rate-limited]]',
+		});
+	});
+
+	it('should not allow multiple calls to the reset method at the same time', async () => {
+		await assert.rejects(Promise.all([
+			user.reset.send(email),
+			user.reset.send(email),
+		]), {
+			message: '[[error:reset-rate-limited]]',
+		});
+	});
+
+	it('should not allow multiple socket calls to the reset method either', async () => {
+		await assert.rejects(Promise.all([
+			socketUser.reset.send({ uid: 0 }, email),
+			socketUser.reset.send({ uid: 0 }, email),
+		]), {
+			message: '[[error:reset-rate-limited]]',
+		});
+	});
+
+	it('should properly unlock user reset', async () => {
+		await user.reset.send(email);
+		await assert.rejects(user.reset.send(email), {
+			message: '[[error:reset-rate-limited]]',
+		});
+		user.reset.minSecondsBetweenEmails = 3;
+		const util = require('util');
+		const sleep = util.promisify(setTimeout);
+		await sleep(4 * 1000); // wait 4 seconds
+		await user.reset.send(email);
+		user.reset.minSecondsBetweenEmails = 60;
+	});
+});
diff --git a/test/utils.js b/test/utils.js
index ca8b22464a..eede4718b3 100644
--- a/test/utils.js
+++ b/test/utils.js
@@ -2,6 +2,7 @@
 
 
 const assert = require('assert');
+const validator = require('validator');
 const { JSDOM } = require('jsdom');
 const slugify = require('../src/slugify');
 const db = require('./mocks/databasemock');
@@ -34,6 +35,7 @@ describe('Utility Methods', () => {
 		);
 		done();
 	});
+
 	it('should strip HTML tags', (done) => {
 		assert.strictEqual(utils.stripHTMLTags('<p>just <b>some</b> text</p>'), 'just some text');
 		assert.strictEqual(utils.stripHTMLTags('<p>just <b>some</b> text</p>', ['p']), 'just <b>some</b> text');
@@ -133,6 +135,15 @@ describe('Utility Methods', () => {
 		done();
 	});
 
+	it('should get language key', () => {
+		assert.strictEqual(utils.getLanguage(), 'en-GB');
+		global.window.utils = {};
+		global.window.config = { userLang: 'tr' };
+		assert.strictEqual(utils.getLanguage(), 'tr');
+		global.window.config = { defaultLang: 'de' };
+		assert.strictEqual(utils.getLanguage(), 'de');
+	});
+
 	it('should return true if string has language key', (done) => {
 		assert.equal(utils.hasLanguageKey('some text [[topic:title]] and [[user:reputaiton]]'), true);
 		done();
@@ -143,6 +154,43 @@ describe('Utility Methods', () => {
 		done();
 	});
 
+	it('should return bootstrap env', () => {
+		assert.strictEqual(utils.findBootstrapEnvironment(), 'xs');
+	});
+
+	it('should check if mobile', () => {
+		assert.strictEqual(utils.isMobile(), true);
+	});
+
+	it('should check password validity', () => {
+		global.ajaxify = {
+			data: {
+				minimumPasswordStrength: 1,
+				minimumPasswordLength: 6,
+			},
+		};
+		const zxcvbn = require('zxcvbn');
+
+		function check(pwd, expectedError) {
+			try {
+				utils.assertPasswordValidity(pwd, zxcvbn);
+				assert(false);
+			} catch (err) {
+				assert.strictEqual(err.message, expectedError);
+			}
+		}
+		check('123456', '[[user:weak_password]]');
+		check('', '[[user:change_password_error]]');
+		check('asd', '[[reset_password:password_too_short]]');
+		check(new Array(513).fill('a').join(''), '[[error:password-too-long]]');
+		utils.assertPasswordValidity('Yzsh31j!a', zxcvbn);
+	});
+
+	// it('should generate UUID', () => {
+	// TODO: add back when nodejs 18 is minimum
+	// assert(validator.isUUID(utils.generateUUID()));
+	// });
+
 	it('should shallow merge two objects', (done) => {
 		const a = { foo: 1, cat1: 'ginger' };
 		const b = { baz: 2, cat2: 'phoebe' };
diff --git a/webpack.common.js b/webpack.common.js
index 7929a196d5..dc4022bda6 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -34,10 +34,17 @@ module.exports = {
 			},
 		},
 	},
+	snapshot: {
+		managedPaths: [new RegExp(`^(.+?[\\\\/]node_modules)[\\\\/](?!${activePlugins.join('|')})`)],
+	},
 	watchOptions: {
 		poll: 500,
 		aggregateTimeout: 250,
 	},
+	performance: {
+		maxEntrypointSize: 512000,
+		maxAssetSize: 1024000,
+	},
 	resolve: {
 		symlinks: false,
 		modules: [
diff --git a/webpack.dev.js b/webpack.dev.js
index 360e05c064..9d29a03157 100644
--- a/webpack.dev.js
+++ b/webpack.dev.js
@@ -5,5 +5,5 @@ const common = require('./webpack.common');
 
 module.exports = merge(common, {
 	mode: 'development',
-	// devtool: 'inline-source-map',
+	// devtool: 'eval-source-map',
 });