Index: frontend/node_modules/postcss-normalize-url/LICENSE-MIT
===================================================================
--- frontend/node_modules/postcss-normalize-url/LICENSE-MIT	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-normalize-url/LICENSE-MIT	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,22 @@
+Copyright (c) Ben Briggs <beneb.info@gmail.com> (http://beneb.info)
+
+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.
Index: frontend/node_modules/postcss-normalize-url/README.md
===================================================================
--- frontend/node_modules/postcss-normalize-url/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-normalize-url/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,55 @@
+# [postcss][postcss]-normalize-url
+
+> [Normalize URLs](https://github.com/sindresorhus/normalize-url) with PostCSS.
+
+## Install
+
+With [npm](https://npmjs.org/package/postcss-normalize-url) do:
+
+```
+npm install postcss-normalize-url --save
+```
+
+## Example
+
+### Input
+
+```css
+h1 {
+    background: url("http://site.com:80/image.jpg")
+}
+```
+
+### Output
+
+```css
+h1 {
+    background: url(http://site.com/image.jpg)
+}
+```
+
+Note that this module will also try to normalize relative URLs, and is capable
+of stripping unnecessary quotes. For more examples, see the [tests](test.js).
+
+## Usage
+
+See the [PostCSS documentation](https://github.com/postcss/postcss#usage) for
+examples for your environment.
+
+## API
+
+### normalize([options])
+
+Please see the [normalize-url documentation][docs]. By default,
+`normalizeProtocol`, `stripHash` & `stripWWW` are set to `false`.
+
+## Contributors
+
+See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).
+
+## License
+
+MIT © [Ben Briggs](http://beneb.info)
+
+[docs]: https://github.com/sindresorhus/normalize-url#options
+[postcss]: https://github.com/postcss/postcss
Index: frontend/node_modules/postcss-normalize-url/package.json
===================================================================
--- frontend/node_modules/postcss-normalize-url/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-normalize-url/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,46 @@
+{
+  "name": "postcss-normalize-url",
+  "version": "5.1.0",
+  "description": "Normalize URLs with PostCSS",
+  "main": "src/index.js",
+  "types": "types/index.d.ts",
+  "files": [
+    "src",
+    "LICENSE-MIT",
+    "types"
+  ],
+  "keywords": [
+    "css",
+    "normalize",
+    "optimise",
+    "optimisation",
+    "postcss",
+    "postcss-plugin",
+    "url"
+  ],
+  "license": "MIT",
+  "dependencies": {
+    "normalize-url": "^6.0.1",
+    "postcss-value-parser": "^4.2.0"
+  },
+  "homepage": "https://github.com/cssnano/cssnano",
+  "author": {
+    "name": "Ben Briggs",
+    "email": "beneb.info@gmail.com",
+    "url": "http://beneb.info"
+  },
+  "repository": "cssnano/cssnano",
+  "bugs": {
+    "url": "https://github.com/cssnano/cssnano/issues"
+  },
+  "engines": {
+    "node": "^10 || ^12 || >=14.0"
+  },
+  "devDependencies": {
+    "postcss": "^8.2.15"
+  },
+  "peerDependencies": {
+    "postcss": "^8.2.15"
+  },
+  "readme": "# [postcss][postcss]-normalize-url\n\n> [Normalize URLs](https://github.com/sindresorhus/normalize-url) with PostCSS.\n\n## Install\n\nWith [npm](https://npmjs.org/package/postcss-normalize-url) do:\n\n```\nnpm install postcss-normalize-url --save\n```\n\n## Example\n\n### Input\n\n```css\nh1 {\n    background: url(\"http://site.com:80/image.jpg\")\n}\n```\n\n### Output\n\n```css\nh1 {\n    background: url(http://site.com/image.jpg)\n}\n```\n\nNote that this module will also try to normalize relative URLs, and is capable\nof stripping unnecessary quotes. For more examples, see the [tests](test.js).\n\n## Usage\n\nSee the [PostCSS documentation](https://github.com/postcss/postcss#usage) for\nexamples for your environment.\n\n## API\n\n### normalize([options])\n\nPlease see the [normalize-url documentation][docs]. By default,\n`normalizeProtocol`, `stripHash` & `stripWWW` are set to `false`.\n\n## Contributors\n\nSee [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).\n\n## License\n\nMIT © [Ben Briggs](http://beneb.info)\n\n[docs]: https://github.com/sindresorhus/normalize-url#options\n[postcss]: https://github.com/postcss/postcss\n"
+}
Index: frontend/node_modules/postcss-normalize-url/src/index.js
===================================================================
--- frontend/node_modules/postcss-normalize-url/src/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-normalize-url/src/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,167 @@
+'use strict';
+const path = require('path');
+const valueParser = require('postcss-value-parser');
+const normalize = require('normalize-url');
+
+const multiline = /\\[\r\n]/;
+// eslint-disable-next-line no-useless-escape
+const escapeChars = /([\s\(\)"'])/g;
+
+// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1
+// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3
+const ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
+// Windows paths like `c:\`
+const WINDOWS_PATH_REGEX = /^[a-zA-Z]:\\/;
+
+/**
+ * Originally in sindresorhus/is-absolute-url
+ *
+ * @param {string} url
+ */
+function isAbsolute(url) {
+  if (WINDOWS_PATH_REGEX.test(url)) {
+    return false;
+  }
+  return ABSOLUTE_URL_REGEX.test(url);
+}
+
+/**
+ * @param {string} url
+ * @param {normalize.Options} options
+ * @return {string}
+ */
+function convert(url, options) {
+  if (isAbsolute(url) || url.startsWith('//')) {
+    let normalizedURL;
+
+    try {
+      normalizedURL = normalize(url, options);
+    } catch (e) {
+      normalizedURL = url;
+    }
+
+    return normalizedURL;
+  }
+
+  // `path.normalize` always returns backslashes on Windows, need replace in `/`
+  return path.normalize(url).replace(new RegExp('\\' + path.sep, 'g'), '/');
+}
+
+/**
+ * @param {import('postcss').AtRule} rule
+ * @return {void}
+ */
+function transformNamespace(rule) {
+  rule.params = valueParser(rule.params)
+    .walk((node) => {
+      if (
+        node.type === 'function' &&
+        node.value.toLowerCase() === 'url' &&
+        node.nodes.length
+      ) {
+        /** @type {valueParser.Node} */ (node).type = 'string';
+        /** @type {any} */ (node).quote =
+          node.nodes[0].type === 'string' ? node.nodes[0].quote : '"';
+        node.value = node.nodes[0].value;
+      }
+      if (node.type === 'string') {
+        node.value = node.value.trim();
+      }
+      return false;
+    })
+    .toString();
+}
+
+/**
+ * @param {import('postcss').Declaration} decl
+ * @param {normalize.Options} opts
+ * @return {void}
+ */
+function transformDecl(decl, opts) {
+  decl.value = valueParser(decl.value)
+    .walk((node) => {
+      if (node.type !== 'function' || node.value.toLowerCase() !== 'url') {
+        return false;
+      }
+
+      node.before = node.after = '';
+
+      if (!node.nodes.length) {
+        return false;
+      }
+      let url = node.nodes[0];
+      let escaped;
+
+      url.value = url.value.trim().replace(multiline, '');
+
+      // Skip empty URLs
+      // Empty URL function equals request to current stylesheet where it is declared
+      if (url.value.length === 0) {
+        /** @type {any} */ (url).quote = '';
+
+        return false;
+      }
+
+      if (/^data:(.*)?,/i.test(url.value)) {
+        return false;
+      }
+
+      if (!/^.+-extension:\//i.test(url.value)) {
+        url.value = convert(url.value, opts);
+      }
+
+      if (escapeChars.test(url.value) && url.type === 'string') {
+        escaped = url.value.replace(escapeChars, '\\$1');
+
+        if (escaped.length < url.value.length + 2) {
+          url.value = escaped;
+          /** @type {valueParser.Node} */ (url).type = 'word';
+        }
+      } else {
+        url.type = 'word';
+      }
+
+      return false;
+    })
+    .toString();
+}
+
+/** @typedef {normalize.Options} Options */
+/**
+ * @type {import('postcss').PluginCreator<Options>}
+ * @param {Options} opts
+ * @return {import('postcss').Plugin}
+ */
+function pluginCreator(opts) {
+  opts = Object.assign(
+    {},
+    {
+      normalizeProtocol: false,
+      sortQueryParameters: false,
+      stripHash: false,
+      stripWWW: false,
+      stripTextFragment: false,
+    },
+    opts
+  );
+
+  return {
+    postcssPlugin: 'postcss-normalize-url',
+
+    OnceExit(css) {
+      css.walk((node) => {
+        if (node.type === 'decl') {
+          return transformDecl(node, opts);
+        } else if (
+          node.type === 'atrule' &&
+          node.name.toLowerCase() === 'namespace'
+        ) {
+          return transformNamespace(node);
+        }
+      });
+    },
+  };
+}
+
+pluginCreator.postcss = true;
+module.exports = pluginCreator;
Index: frontend/node_modules/postcss-normalize-url/types/index.d.ts
===================================================================
--- frontend/node_modules/postcss-normalize-url/types/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-normalize-url/types/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,14 @@
+export = pluginCreator;
+/** @typedef {normalize.Options} Options */
+/**
+ * @type {import('postcss').PluginCreator<Options>}
+ * @param {Options} opts
+ * @return {import('postcss').Plugin}
+ */
+declare function pluginCreator(opts: Options): import('postcss').Plugin;
+declare namespace pluginCreator {
+    export { postcss, Options };
+}
+type Options = normalize.Options;
+declare var postcss: true;
+import normalize = require("normalize-url");
