Index: frontend/node_modules/style-loader/CHANGELOG.md
===================================================================
--- frontend/node_modules/style-loader/CHANGELOG.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/CHANGELOG.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,453 @@
+# Changelog
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+### [3.3.4](https://github.com/webpack-contrib/style-loader/compare/v3.3.3...v3.3.4) (2024-01-09)
+
+
+### Bug Fixes
+
+* css experiments logic ([c12e70b](https://github.com/webpack-contrib/style-loader/commit/c12e70bc8592d891adb5c0f5ae0ec19fb2698dbb))
+
+### [3.3.3](https://github.com/webpack-contrib/style-loader/compare/v3.3.2...v3.3.3) (2023-05-19)
+
+
+### Bug Fixes
+
+* compatibility with built-in CSS support ([#605](https://github.com/webpack-contrib/style-loader/issues/605)) ([9636f58](https://github.com/webpack-contrib/style-loader/commit/9636f5805407734f587a87e69dd048e5cc7f1021))
+
+### [3.3.2](https://github.com/webpack-contrib/style-loader/compare/v3.3.1...v3.3.2) (2023-03-13)
+
+
+### Bug Fixes
+
+* noop in environment without DOM API ([#597](https://github.com/webpack-contrib/style-loader/issues/597)) ([03d3df3](https://github.com/webpack-contrib/style-loader/commit/03d3df3c363484c18a1e9a5e468a7600ea1322f3))
+
+### [3.3.1](https://github.com/webpack-contrib/style-loader/compare/v3.3.0...v3.3.1) (2021-10-21)
+
+
+### Bug Fixes
+
+* small perf improvement ([#544](https://github.com/webpack-contrib/style-loader/issues/544)) ([610524e](https://github.com/webpack-contrib/style-loader/commit/610524ef6266c27e147d3c0003e7825b08f17454))
+
+## [3.3.0](https://github.com/webpack-contrib/style-loader/compare/v3.2.1...v3.3.0) (2021-09-21)
+
+
+### Features
+
+* added support for `supports()`, `layer()` and `media` from `@import` at-rules ([b9a600c](https://github.com/webpack-contrib/style-loader/commit/b9a600c87aa3f68caabcaa80f0a1c340e739e30e))
+* allow to pass options to `insert` function through `style.use()` ([#535](https://github.com/webpack-contrib/style-loader/issues/535)) ([f8ef63b](https://github.com/webpack-contrib/style-loader/commit/f8ef63b86a603232395f7708c508d6c3b639e92d))
+
+### [3.2.1](https://github.com/webpack-contrib/style-loader/compare/v3.2.0...v3.2.1) (2021-07-20)
+
+
+### Bug Fixes
+
+* added the `styletagtransform` option when it is a module to `addBuildDependency` ([#528](https://github.com/webpack-contrib/style-loader/issues/528)) ([270513f](https://github.com/webpack-contrib/style-loader/commit/270513fa76e13c96a36c2ae11e4dd526dfb9d72f))
+
+## [3.2.0](https://github.com/webpack-contrib/style-loader/compare/v3.1.0...v3.2.0) (2021-07-20)
+
+
+### Features
+
+* add link field in schema ([#525](https://github.com/webpack-contrib/style-loader/issues/525)) ([7ed3456](https://github.com/webpack-contrib/style-loader/commit/7ed345678cc1d01e3a93bf18ca2014d7b5419481))
+
+
+### Bug Fixes
+
+* added the `insert` option when it is a module to `addBuildDependency` ([#527](https://github.com/webpack-contrib/style-loader/issues/527)) ([3963c0b](https://github.com/webpack-contrib/style-loader/commit/3963c0bae298112754d8cc3fd1536499cefa65a6))
+
+## [3.1.0](https://github.com/webpack-contrib/style-loader/compare/v3.0.0...v3.1.0) (2021-07-12)
+
+
+### Features
+
+* allow to specify the `insert` option from file, we strongly recommend do it, using the `insert` option from file will reduce your bundle size, [example](https://github.com/webpack-contrib/style-loader#absolute-path-to-function) ([#521](https://github.com/webpack-contrib/style-loader/issues/521)) ([56fc8f0](https://github.com/webpack-contrib/style-loader/commit/56fc8f021c69407e4ad03a5d345c614b04789389))
+* allow to specify the `styleTagTransform` option from file, we strongly recommend do it, using the `styleTagTransform` option from file will reduce your bundle size, [example](https://github.com/webpack-contrib/style-loader#string-1)
+
+
+### Bug Fixes
+
+* reduce runtime ([#519](https://github.com/webpack-contrib/style-loader/issues/519)) ([8a26186](https://github.com/webpack-contrib/style-loader/commit/8a26186c364b45028fb6baeb4a05365c4d3526e2))
+* reduce runtime when you use custom options ([#520](https://github.com/webpack-contrib/style-loader/issues/520)) ([21c80c8](https://github.com/webpack-contrib/style-loader/commit/21c80c8c2f2ca751124f26f5984195e20f2ac665))
+
+## [3.0.0](https://github.com/webpack-contrib/style-loader/compare/v2.0.0...v3.0.0) (2021-06-24)
+
+### ⚠ BREAKING CHANGES
+
+* minimum supported `Node.js` version is `12.13.0`
+* minimum supported `webpack` version is `5.0.0`
+* the `modules.namedExport` option was removed, you don't need it anymore, because we respect the `modules.namedExport` option from `css-loader` (we just reexport all from `css-loader`), just remove it
+* the `styleTag` value of the `injectType` (default value) option earlier uses singleton style tag by default for IE8-IE9 due limitations ([more information](https://www.telerik.com/blogs/internet-explorer-css-limits)), in this release we have disabled this behavior, because these versions of IE are outdated, if you don't support these browsers this change does not affect you, if you require to support IE8-IE9, you can return old behaviour by setting `autoStyleTag` value for the `injectType` option (do the same for `lazyStyleTag`, i.e. change it to `lazyAutoStyleTag`)
+
+### Features
+
+* added `autoStyleTag` and `lazyAutoStyleTag` values for the `injectType` option for compatibility of work modern and IE8-IE9 browsers
+* added `styleTagTransform` option for custom processing style tags (useful if you need ponyfill CSS custom properties for IE8-IE10)
+* reduce size of generated code
+* reduce deps
+
+## [2.0.0](https://github.com/webpack-contrib/style-loader/compare/v1.3.0...v2.0.0) (2020-10-09)
+
+
+### ⚠ BREAKING CHANGES
+
+* minimum supported `Node.js` version is `10.13.0`
+* the `esModule` option is `true` by default, you need to change `const locals = require('./styles.css')`/`require('./styles.css')` on `import locals from './styles.css'`/`import './styles.css''` ([#489](https://github.com/webpack-contrib/style-loader/issues/489)) ([727a24d](https://github.com/webpack-contrib/style-loader/commit/727a24d173a4d71a4100ffc2a37ab6c6684a6301))
+* removed support for loaders returning `String` instead of `Array` ([#491](https://github.com/webpack-contrib/style-loader/issues/491)) ([7a0ce4c](https://github.com/webpack-contrib/style-loader/commit/7a0ce4cfd19a2be6ad8ffe274d38618a77b22199))
+
+### ⚠ NOTICE
+
+To avoid problems between `style-loader` and `mini-css-extract-plugin` because of changing the `esModule` option to `true` by default we strongly recommend upgrading `mini-css-extract-plugin` to `1.0.0` version.
+
+## [1.3.0](https://github.com/webpack-contrib/style-loader/compare/v1.2.1...v1.3.0) (2020-10-03)
+
+### Features
+
+* added `modules.namedExport` ([#485](https://github.com/webpack-contrib/style-loader/issues/485)) ([15889db](https://github.com/webpack-contrib/style-loader/commit/15889db9a2d5d51712fc12e03b12a60c22fc33f4))
+
+
+### Bug Fixes
+
+* check if `btoa` exists for old IE versions ([#479](https://github.com/webpack-contrib/style-loader/issues/479)) ([732ef8b](https://github.com/webpack-contrib/style-loader/commit/732ef8bcb60ae72c3a84d3fa639f1eae6f26bbdc))
+* esModule option issue ([#476](https://github.com/webpack-contrib/style-loader/issues/476)) ([c623f27](https://github.com/webpack-contrib/style-loader/commit/c623f2750b0358492c7bf2dde0326a1c71c46f4f))
+
+### [1.2.1](https://github.com/webpack-contrib/style-loader/compare/v1.2.0...v1.2.1) (2020-04-28)
+
+
+### Bug Fixes
+
+* hot module replacement logic for lazy type ([#468](https://github.com/webpack-contrib/style-loader/issues/468)) ([88a5c2b](https://github.com/webpack-contrib/style-loader/commit/88a5c2bdb3405aa5cb889726f3908747106a6c01))
+
+## [1.2.0](https://github.com/webpack-contrib/style-loader/compare/v1.1.4...v1.2.0) (2020-04-24)
+
+
+### Features
+
+* hot module replacement for css modules ([6d14e0a](https://github.com/webpack-contrib/style-loader/commit/6d14e0aa7bac1d8ba8e60b4d12f7cd33078763b7))
+
+### [1.1.4](https://github.com/webpack-contrib/style-loader/compare/v1.1.3...v1.1.4) (2020-04-15)
+
+
+# Chore
+
+* update deps
+
+
+### [1.1.3](https://github.com/webpack-contrib/style-loader/compare/v1.1.2...v1.1.3) (2020-01-17)
+
+
+### Bug Fixes
+
+* injection algorithm ([#456](https://github.com/webpack-contrib/style-loader/issues/456)) ([236b243](https://github.com/webpack-contrib/style-loader/commit/236b2436fb0003eeba5f0aa33e7caf9f35d4fc7a))
+
+### [1.1.2](https://github.com/webpack-contrib/style-loader/compare/v1.1.1...v1.1.2) (2019-12-25)
+
+
+### Bug Fixes
+
+* algorithm for importing modules ([#449](https://github.com/webpack-contrib/style-loader/issues/449)) ([91ceaf2](https://github.com/webpack-contrib/style-loader/commit/91ceaf2b7e03f065d2a8cace1b733777848d4e86))
+* checking that the list of modules is an array ([#448](https://github.com/webpack-contrib/style-loader/issues/448)) ([1138ed7](https://github.com/webpack-contrib/style-loader/commit/1138ed7e04848b570a70e493b410902cfc4a9076))
+
+### [1.1.1](https://github.com/webpack-contrib/style-loader/compare/v1.1.0...v1.1.1) (2019-12-20)
+
+
+### Bug Fixes
+
+* add empty default export for `linkTag` value ([7ee8b04](https://github.com/webpack-contrib/style-loader/commit/7ee8b04fd519847cef93052c31efa0d0012ed54e))
+
+## [1.1.0](https://github.com/webpack-contrib/style-loader/compare/v1.0.2...v1.1.0) (2019-12-20)
+
+
+### Features
+
+* `esModule` option ([#441](https://github.com/webpack-contrib/style-loader/issues/441)) ([3415266](https://github.com/webpack-contrib/style-loader/commit/3415266f58f2be00bec1d66ae9e658437e0d0a6c))
+
+
+### Bug Fixes
+
+* order of imported styles ([#443](https://github.com/webpack-contrib/style-loader/issues/443)) ([c7d6e3a](https://github.com/webpack-contrib/style-loader/commit/c7d6e3a3fba63a76e8f342d84e00b69af92c7ebc))
+
+### [1.0.2](https://github.com/webpack-contrib/style-loader/compare/v1.0.1...v1.0.2) (2019-12-17)
+
+
+### Bug Fixes
+
+* support ES module syntax ([#435](https://github.com/webpack-contrib/style-loader/issues/435)) ([dcbfadb](https://github.com/webpack-contrib/style-loader/commit/dcbfadb4245e7f0ce888aafc138cbac27d053915))
+
+### [1.0.1](https://github.com/webpack-contrib/style-loader/compare/v1.0.0...v1.0.1) (2019-11-28)
+
+
+### Bug Fixes
+
+* compatibility `linkTag` with ES module syntax ([#429](https://github.com/webpack-contrib/style-loader/issues/429)) ([2cdb9c3](https://github.com/webpack-contrib/style-loader/commit/2cdb9c3f51edebec69e8b22ff43b520a5e1c679b))
+
+## [1.0.0](https://github.com/webpack-contrib/style-loader/compare/v0.23.1...v1.0.0) (2019-08-06)
+
+
+### Bug Fixes
+
+* es3 compatibility ([#390](https://github.com/webpack-contrib/style-loader/issues/390)) ([ae24ec2](https://github.com/webpack-contrib/style-loader/commit/ae24ec2))
+* restore original hot reloading behaviour for locals ([#419](https://github.com/webpack-contrib/style-loader/issues/419)) ([f026429](https://github.com/webpack-contrib/style-loader/commit/f026429))
+* better handle source maps ([#383](https://github.com/webpack-contrib/style-loader/issues/383)) ([84ec8e5](https://github.com/webpack-contrib/style-loader/commit/84ec8e5))
+
+
+### Features
+
+* new `injectType` option ([e2664e9](https://github.com/webpack-contrib/style-loader/commit/e2664e9))
+* remove type `text/css` from style and link element ([#399](https://github.com/webpack-contrib/style-loader/issues/399)) ([b0187d6](https://github.com/webpack-contrib/style-loader/commit/b0187d6))
+
+
+### BREAKING CHANGES
+
+* minimum required Node.js version is `8.9.0`
+* minimum required `wepback` version is `4.0.0`
+* the `convertToAbsoluteUrls` option was removed, you don't need this anymore
+* the `attrs` option was renamed to the `attributes` option
+* the `transform` option was removed without replacement
+* the `hmr` option was removed, `webpack` automatically inject HMR code when it is required (when the `HotModuleReplacementPlugin` plugin was used)
+* the `sourceMap` option was removed. The loader automatically inject source maps if the previous loader emit them
+* the `ref`/`unref` api methods were removed for `useable` loader, please use the `use`/`unuse` api methods
+* the `style-loader/url` loader was removed in favor `injectType` option (look the documentation about the `injectType` option)
+* the `style-loader/useable` loader was removed in favor `injectType` option (look the documentation about the `injectType` option)
+* the `singleton` option was removed (look documentation about the `injectType` option)
+* the `insertAt` option was removed in favor the `insert` option (look the documentation about the `insert` option and examples)
+* the `insertInto` options was removed in favor the `insert` option (look the documentation about the `insert` option and examples)
+
+
+<a name="0.23.1"></a>
+## [0.23.1](https://github.com/webpack-contrib/style-loader/compare/v0.23.0...v0.23.1) (2018-10-08)
+
+
+### Bug Fixes
+
+* **addStyles:** support exports of transpiled transforms (`options.transform`) ([#333](https://github.com/webpack-contrib/style-loader/issues/333)) ([33aebed](https://github.com/webpack-contrib/style-loader/commit/33aebed))
+
+
+
+<a name="0.23.0"></a>
+# [0.23.0](https://github.com/webpack-contrib/style-loader/compare/v0.22.1...v0.23.0) (2018-08-27)
+
+
+### Features
+
+* **useable:** add `insertInto` support (`options.insertInto`) ([#341](https://github.com/webpack-contrib/style-loader/issues/341)) ([2588aca](https://github.com/webpack-contrib/style-loader/commit/2588aca))
+
+
+
+<a name="0.22.1"></a>
+## [0.22.1](https://github.com/webpack-contrib/style-loader/compare/v0.22.0...v0.22.1) (2018-08-08)
+
+
+### Bug Fixes
+
+* **addStyles:** use `var` instead of `const` (IE fix) ([#338](https://github.com/webpack-contrib/style-loader/issues/338)) ([1ca12ab](https://github.com/webpack-contrib/style-loader/commit/1ca12ab))
+
+
+
+<a name="0.22.0"></a>
+# [0.22.0](https://github.com/webpack-contrib/style-loader/compare/v0.21.0...v0.22.0) (2018-08-07)
+
+
+### Bug Fixes
+
+* insertInto and insertAt collaboration ([#325](https://github.com/webpack-contrib/style-loader/issues/325)) ([c7d8fec](https://github.com/webpack-contrib/style-loader/commit/c7d8fec))
+
+
+### Features
+
+* add support for __webpack_nonce__ ([#319](https://github.com/webpack-contrib/style-loader/issues/319)) ([fc24512](https://github.com/webpack-contrib/style-loader/commit/fc24512))
+
+
+
+<a name="0.21.0"></a>
+# [0.21.0](https://github.com/webpack-contrib/style-loader/compare/v0.20.3...v0.21.0) (2018-04-18)
+
+
+### Features
+
+* enable tag type configuration ([#316](https://github.com/webpack-contrib/style-loader/issues/316)) ([892cba5](https://github.com/webpack-contrib/style-loader/commit/892cba5))
+
+
+
+<a name="0.20.3"></a>
+## [0.20.3](https://github.com/webpack-contrib/style-loader/compare/v0.20.2...v0.20.3) (2018-03-09)
+
+
+### Bug Fixes
+
+* **package:** update `schema-utils` v0.4.3...0.4.5 (`dependencies`) ([#308](https://github.com/webpack-contrib/style-loader/issues/308)) ([9455888](https://github.com/webpack-contrib/style-loader/commit/9455888))
+
+
+
+<a name="0.20.2"></a>
+## [0.20.2](https://github.com/webpack-contrib/style-loader/compare/v0.20.1...v0.20.2) (2018-02-15)
+
+
+### Bug Fixes
+
+* **urls:** skip empty `url()` handling ([#304](https://github.com/webpack-contrib/style-loader/issues/304)) ([64f12dc](https://github.com/webpack-contrib/style-loader/commit/64f12dc))
+
+
+
+<a name="0.20.1"></a>
+## [0.20.1](https://github.com/webpack-contrib/style-loader/compare/v0.20.0...v0.20.1) (2018-01-26)
+
+
+### Bug Fixes
+
+* **index:** source code indentation ([#299](https://github.com/webpack-contrib/style-loader/issues/299)) ([b4642e7](https://github.com/webpack-contrib/style-loader/commit/b4642e7))
+
+
+
+<a name="0.20.0"></a>
+# [0.20.0](https://github.com/webpack-contrib/style-loader/compare/v0.19.1...v0.20.0) (2018-01-26)
+
+
+### Bug Fixes
+
+* **addStyles:** check if `HTMLIFrameElement` exist ([#296](https://github.com/webpack-contrib/style-loader/issues/296)) ([9b46128](https://github.com/webpack-contrib/style-loader/commit/9b46128))
+* **index:** enable HMR in case `locals` (`css-modules`) are unchanged ([#298](https://github.com/webpack-contrib/style-loader/issues/298)) ([3a4cb53](https://github.com/webpack-contrib/style-loader/commit/3a4cb53))
+* **options:** add `transform` option validation (`{String}`) ([23c3567](https://github.com/webpack-contrib/style-loader/commit/23c3567))
+* **options:** support passing a `{Function}` (`options.insertInto`) ([e0c4b19](https://github.com/webpack-contrib/style-loader/commit/e0c4b19))
+
+
+### Features
+
+* support passing a `{Function}` (`options.insertInto`) ([#279](https://github.com/webpack-contrib/style-loader/issues/279)) ([0eb8fe7](https://github.com/webpack-contrib/style-loader/commit/0eb8fe7))
+
+
+
+<a name="0.19.1"></a>
+## [0.19.1](https://github.com/webpack/style-loader/compare/v0.19.0...v0.19.1) (2017-12-14)
+
+
+### Bug Fixes
+
+* **addStyles:** correctly check `singleton` behavior when `{Boolean}` (`options.singleton`) ([#285](https://github.com/webpack/style-loader/issues/285)) ([2bfc93e](https://github.com/webpack/style-loader/commit/2bfc93e))
+
+
+
+<a name="0.19.0"></a>
+# [0.19.0](https://github.com/webpack/style-loader/compare/v0.18.2...v0.19.0) (2017-10-03)
+
+
+### Features
+
+* add option to enable/disable HMR (`options.hmr`) ([#264](https://github.com/webpack/style-loader/issues/264)) ([378e906](https://github.com/webpack/style-loader/commit/378e906))
+* add support for iframes (`options.insertInto`) ([#248](https://github.com/webpack/style-loader/issues/248)) ([25e8e89](https://github.com/webpack/style-loader/commit/25e8e89))
+* support 'before' insertions (`options.insertAt`) ([#253](https://github.com/webpack/style-loader/issues/253)) ([67120f8](https://github.com/webpack/style-loader/commit/67120f8))
+
+
+
+<a name="0.18.2"></a>
+## [0.18.2](https://github.com/webpack/style-loader/compare/v0.18.1...v0.18.2) (2017-06-05)
+
+
+### Bug Fixes
+
+* **url:** use `loaderUtils.stringifyRequest` to avoid invalidating hashes due to absolute paths ([#242](https://github.com/webpack/style-loader/issues/242)) ([97508ec](https://github.com/webpack/style-loader/commit/97508ec))
+* Add `null` check to `removeStyleElement` ([#245](https://github.com/webpack/style-loader/issues/245)) ([0a4845c](https://github.com/webpack/style-loader/commit/0a4845c))
+
+
+
+<a name="0.18.1"></a>
+## [0.18.1](https://github.com/webpack/style-loader/compare/v0.18.0...v0.18.1) (2017-05-23)
+
+
+### Bug Fixes
+
+* **addStyles:** revert merged loops ([#236](https://github.com/webpack/style-loader/issues/236)) ([fbd04b1](https://github.com/webpack/style-loader/commit/fbd04b1))
+
+
+
+<a name="0.18.0"></a>
+# [0.18.0](https://github.com/webpack/style-loader/compare/v0.17.0...v0.18.0) (2017-05-22)
+
+
+### Bug Fixes
+
+* stringify the options.transform request ([#230](https://github.com/webpack/style-loader/issues/230)) ([5888095](https://github.com/webpack/style-loader/commit/5888095))
+
+
+### Features
+
+* add options validation ([#224](https://github.com/webpack/style-loader/issues/224)) ([4b6b70d](https://github.com/webpack/style-loader/commit/4b6b70d))
+
+
+
+<a name="0.17.0"></a>
+# [0.17.0](https://github.com/webpack/style-loader/compare/v0.16.1...v0.17.0) (2017-05-01)
+
+
+### Features
+
+* add option.base ([#164](https://github.com/webpack/style-loader/issues/164)) ([e4ac886](https://github.com/webpack/style-loader/commit/e4ac886))
+* add option.transform ([#146](https://github.com/webpack/style-loader/issues/146)) ([1c3943f](https://github.com/webpack/style-loader/commit/1c3943f))
+
+
+
+<a name="0.16.1"></a>
+## [0.16.1](https://github.com/webpack/style-loader/compare/v0.16.0...v0.16.1) (2017-03-28)
+
+
+### Bug Fixes
+
+* negative refs ([#122](https://github.com/webpack/style-loader/issues/122)) ([f6f577a](https://github.com/webpack/style-loader/commit/f6f577a))
+
+
+
+<a name="0.16.0"></a>
+# [0.16.0](https://github.com/webpack/style-loader/compare/v0.15.0...v0.16.0) (2017-03-22)
+
+
+### Bug Fixes
+
+* **addStyles:** update for test for old IE versions ([#196](https://github.com/webpack/style-loader/issues/196)) ([1f68495](https://github.com/webpack/style-loader/commit/1f68495))
+
+
+### Features
+
+* Set custom attributes for tag in url mode ([#198](https://github.com/webpack/style-loader/issues/198)) ([2c4f427](https://github.com/webpack/style-loader/commit/2c4f427))
+
+
+
+<a name="0.15.0"></a>
+# [0.15.0](https://github.com/webpack/style-loader/compare/v0.14.1...v0.15.0) (2017-03-21)
+
+
+### Bug Fixes
+
+* match parens recursively on URLs to not fix embeded calls ([#192](https://github.com/webpack/style-loader/issues/192)) ([71e0908](https://github.com/webpack/style-loader/commit/71e0908))
+
+
+### Features
+
+* add insertInto option ([#135](https://github.com/webpack/style-loader/issues/135)) ([6636868](https://github.com/webpack/style-loader/commit/6636868))
+
+
+
+<a name="0.14.1"></a>
+## [0.14.1](https://github.com/webpack/style-loader/compare/v0.14.0...v0.14.1) (2017-03-15)
+
+
+### Bug Fixes
+
+* syntax error in IE10 and below because of `const` keyword ([#190](https://github.com/webpack/style-loader/issues/190)) ([01080cf](https://github.com/webpack/style-loader/commit/01080cf))
+
+
+
+<a name="0.14.0"></a>
+# [0.14.0](https://github.com/webpack/style-loader/compare/v0.13.1...v0.14.0) (2017-03-15)
+
+
+### Bug Fixes
+
+* Adds type attr. to the generated link element ([2a2f261](https://github.com/webpack/style-loader/commit/2a2f261))
+* **fixUrls:** add param to fix relative urls ([#186](https://github.com/webpack/style-loader/issues/186)) ([19959ee](https://github.com/webpack/style-loader/commit/19959ee))
+* **usable:** Export locals if available([#128](https://github.com/webpack/style-loader/issues/128)) ([e280cb6](https://github.com/webpack/style-loader/commit/e280cb6))
+
+
+### Features
+
+* **tag-attribute:** Add support for custom tag attribute ([995f3de](https://github.com/webpack/style-loader/commit/995f3de))
Index: frontend/node_modules/style-loader/LICENSE
===================================================================
--- frontend/node_modules/style-loader/LICENSE	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/LICENSE	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: frontend/node_modules/style-loader/README.md
===================================================================
--- frontend/node_modules/style-loader/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1265 @@
+<div align="center">
+  <a href="https://github.com/webpack/webpack">
+    <img width="200" height="200"
+      src="https://webpack.js.org/assets/icon-square-big.svg">
+  </a>
+  <h1>Style Loader</h1>
+</div>
+
+[![npm][npm]][npm-url]
+[![node][node]][node-url]
+[![tests][tests]][tests-url]
+[![coverage][cover]][cover-url]
+[![discussion][discussion]][discussion-url]
+[![size][size]][size-url]
+
+# style-loader
+
+Inject CSS into the DOM.
+
+## Getting Started
+
+To begin, you'll need to install `style-loader`:
+
+```console
+npm install --save-dev style-loader
+```
+
+or
+
+```console
+yarn add -D style-loader
+```
+
+or
+
+```console
+pnpm add -D style-loader
+```
+
+It's recommended to combine `style-loader` with the [`css-loader`](https://github.com/webpack-contrib/css-loader)
+
+Then add the loader to your `webpack` config. For example:
+
+**style.css**
+
+```css
+body {
+  background: green;
+}
+```
+
+**component.js**
+
+```js
+import "./style.css";
+```
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: ["style-loader", "css-loader"],
+      },
+    ],
+  },
+};
+```
+
+## Security Warning
+
+This loader is primarily meant for development. The default settings are not safe for production environments. See the [recommended example configuration](#recommended) and the section on [nonces](#nonce) for details.
+
+## Options
+
+- [**`injectType`**](#injecttype)
+- [**`attributes`**](#attributes)
+- [**`insert`**](#insert)
+- [**`styleTagTransform`**](#styleTagTransform)
+- [**`base`**](#base)
+- [**`esModule`**](#esmodule)
+
+### `injectType`
+
+Type:
+
+```ts
+type injectType =
+  | "styleTag"
+  | "singletonStyleTag"
+  | "autoStyleTag"
+  | "lazyStyleTag"
+  | "lazySingletonStyleTag"
+  | "lazyAutoStyleTag"
+  | "linkTag";
+```
+
+Default: `styleTag`
+
+Allows to setup how styles will be injected into the DOM.
+
+Possible values:
+
+#### `styleTag`
+
+Automatically injects styles into the DOM using multiple `<style></style>`. It is **default** behaviour.
+
+**component.js**
+
+```js
+import "./styles.css";
+```
+
+Example with Locals (CSS Modules):
+
+**component-with-css-modules.js**
+
+```js
+import styles from "./styles.css";
+
+const divElement = document.createElement("div");
+divElement.className = styles["my-class"];
+```
+
+All locals (class names) stored in imported object.
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          // The `injectType`  option can be avoided because it is default behaviour
+          { loader: "style-loader", options: { injectType: "styleTag" } },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+The loader inject styles like:
+
+```html
+<style>
+  .foo {
+    color: red;
+  }
+</style>
+<style>
+  .bar {
+    color: blue;
+  }
+</style>
+```
+
+#### `singletonStyleTag`
+
+Automatically injects styles into the DOM using one `<style></style>`.
+
+> **Warning**
+>
+> Source maps do not work.
+
+**component.js**
+
+```js
+import "./styles.css";
+```
+
+**component-with-css-modules.js**
+
+```js
+import styles from "./styles.css";
+
+const divElement = document.createElement("div");
+divElement.className = styles["my-class"];
+```
+
+All locals (class names) stored in imported object.
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: { injectType: "singletonStyleTag" },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+The loader inject styles like:
+
+```html
+<style>
+  .foo {
+    color: red;
+  }
+  .bar {
+    color: blue;
+  }
+</style>
+```
+
+#### `autoStyleTag`
+
+Works the same as a [`styleTag`](#styleTag), but if the code is executed in IE6-9, turns on the [`singletonStyleTag`](#singletonStyleTag) mode.
+
+#### `lazyStyleTag`
+
+Injects styles into the DOM using multiple `<style></style>` on demand.
+We recommend following `.lazy.css` naming convention for lazy styles and the `.css` for basic `style-loader` usage (similar to other file types, i.e. `.lazy.less` and `.less`).
+When you `lazyStyleTag` value the `style-loader` injects the styles lazily making them useable on-demand via `style.use()` / `style.unuse()`.
+
+> ⚠️ Behavior is undefined when `unuse` is called more often than `use`. Don't do that.
+
+**component.js**
+
+```js
+import styles from "./styles.lazy.css";
+
+styles.use();
+// For removing styles you can use
+// styles.unuse();
+```
+
+**component-with-css-modules.js**
+
+```js
+import styles from "./styles.lazy.css";
+
+styles.use();
+
+const divElement = document.createElement("div");
+divElement.className = styles.locals["my-class"];
+```
+
+All locals (class names) stored in `locals` property of imported object.
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        exclude: /\.lazy\.css$/i,
+        use: ["style-loader", "css-loader"],
+      },
+      {
+        test: /\.lazy\.css$/i,
+        use: [
+          { loader: "style-loader", options: { injectType: "lazyStyleTag" } },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+The loader inject styles like:
+
+```html
+<style>
+  .foo {
+    color: red;
+  }
+</style>
+<style>
+  .bar {
+    color: blue;
+  }
+</style>
+```
+
+#### `lazySingletonStyleTag`
+
+Injects styles into the DOM using one `<style></style>` on demand.
+We recommend following `.lazy.css` naming convention for lazy styles and the `.css` for basic `style-loader` usage (similar to other file types, i.e. `.lazy.less` and `.less`).
+When you `lazySingletonStyleTag` value the `style-loader` injects the styles lazily making them useable on-demand via `style.use()` / `style.unuse()`.
+
+> ⚠️ Source maps do not work.
+
+> ⚠️ Behavior is undefined when `unuse` is called more often than `use`. Don't do that.
+
+**component.js**
+
+```js
+import styles from "./styles.css";
+
+styles.use();
+// For removing styles you can use
+// styles.unuse();
+```
+
+**component-with-css-modules.js**
+
+```js
+import styles from "./styles.lazy.css";
+
+styles.use();
+
+const divElement = document.createElement("div");
+divElement.className = styles.locals["my-class"];
+```
+
+All locals (class names) stored in `locals` property of imported object.
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        exclude: /\.lazy\.css$/i,
+        use: ["style-loader", "css-loader"],
+      },
+      {
+        test: /\.lazy\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: { injectType: "lazySingletonStyleTag" },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+The loader generate this:
+
+```html
+<style>
+  .foo {
+    color: red;
+  }
+  .bar {
+    color: blue;
+  }
+</style>
+```
+
+#### `lazyAutoStyleTag`
+
+Works the same as a [`lazyStyleTag`](#lazyStyleTag), but if the code is executed in IE6-9, turns on the [`lazySingletonStyleTag`](#lazySingletonStyleTag) mode.
+
+#### `linkTag`
+
+Injects styles into the DOM using multiple `<link rel="stylesheet" href="path/to/file.css">` .
+
+> ℹ️ The loader will dynamically insert the `<link href="path/to/file.css" rel="stylesheet">` tag at runtime via JavaScript. You should use [MiniCssExtractPlugin](https://webpack.js.org/plugins/mini-css-extract-plugin/) if you want to include a static `<link href="path/to/file.css" rel="stylesheet">`.
+
+```js
+import "./styles.css";
+import "./other-styles.css";
+```
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.link\.css$/i,
+        use: [
+          { loader: "style-loader", options: { injectType: "linkTag" } },
+          { loader: "file-loader" },
+        ],
+      },
+    ],
+  },
+};
+```
+
+The loader generate this:
+
+```html
+<link rel="stylesheet" href="path/to/style.css" />
+<link rel="stylesheet" href="path/to/other-styles.css" />
+```
+
+### `attributes`
+
+Type:
+
+```ts
+type attributes = HTMLAttributes;
+```
+
+Default: `{}`
+
+If defined, the `style-loader` will attach given attributes with their values on `<style>` / `<link>` element.
+
+**component.js**
+
+```js
+import style from "./file.css";
+```
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          { loader: "style-loader", options: { attributes: { id: "id" } } },
+          { loader: "css-loader" },
+        ],
+      },
+    ],
+  },
+};
+```
+
+```html
+<style id="id"></style>
+```
+
+### `insert`
+
+Type:
+
+```ts
+type insert =
+  | string
+  | ((htmlElement: HTMLElement, options: Record<string, any>) => void);
+```
+
+Default: `head`
+
+By default, the `style-loader` appends `<style>`/`<link>` elements to the end of the style target, which is the `<head>` tag of the page unless specified by `insert`.
+This will cause CSS created by the loader to take priority over CSS already present in the target.
+You can use other values if the standard behavior is not suitable for you, but we do not recommend doing this.
+If you target an [iframe](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement) make sure you have sufficient access rights, the styles will be injected into the content document head.
+
+#### `string`
+
+##### `Selector`
+
+Allows to setup custom [query selector](https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector) where styles inject into the DOM.
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: {
+              insert: "body",
+            },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+##### `Absolute path to function`
+
+Allows to setup absolute path to custom function that allows to override default behavior and insert styles at any position.
+
+> **Warning**
+>
+> Do not forget that this code will be used in the browser and not all browsers support latest ECMA features like `let`, `const`, `arrow function expression` and etc. We recommend using [`babel-loader`](https://webpack.js.org/loaders/babel-loader/) for support latest ECMA features.
+
+> **Warning**
+>
+> Do not forget that some DOM methods may not be available in older browsers, we recommended use only [DOM core level 2 properties](https://caniuse.com/#search=DOM%20Core), but it is depends what browsers you want to support
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: {
+              insert: require.resolve("modulePath"),
+            },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+A new `<style>`/`<link>` elements will be inserted into at bottom of `body` tag.
+
+#### `function`
+
+Allows to override default behavior and insert styles at any position.
+
+> **Warning**
+>
+> Do not forget that this code will be used in the browser and not all browsers support latest ECMA features like `let`, `const`, `arrow function expression` and etc, we recommend use only ECMA 5 features, but it is depends what browsers you want to support
+
+> **Warning**
+>
+> Do not forget that some DOM methods may not be available in older browsers, we recommended use only [DOM core level 2 properties](https://caniuse.com/#search=DOM%20Core), but it is depends what browsers you want to support
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: {
+              insert: function insertAtTop(element) {
+                var parent = document.querySelector("head");
+                // eslint-disable-next-line no-underscore-dangle
+                var lastInsertedElement =
+                  window._lastElementInsertedByStyleLoader;
+
+                if (!lastInsertedElement) {
+                  parent.insertBefore(element, parent.firstChild);
+                } else if (lastInsertedElement.nextSibling) {
+                  parent.insertBefore(element, lastInsertedElement.nextSibling);
+                } else {
+                  parent.appendChild(element);
+                }
+
+                // eslint-disable-next-line no-underscore-dangle
+                window._lastElementInsertedByStyleLoader = element;
+              },
+            },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+Insert styles at top of `head` tag.
+
+You can pass any parameters to `style.use(options)` and this value will be passed to `insert` and `styleTagTransform` functions.
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: {
+              injectType: "lazyStyleTag",
+              // Do not forget that this code will be used in the browser and
+              // not all browsers support latest ECMA features like `let`, `const`, `arrow function expression` and etc,
+              // we recommend use only ECMA 5 features,
+              // but it is depends what browsers you want to support
+              insert: function insertIntoTarget(element, options) {
+                var parent = options.target || document.head;
+
+                parent.appendChild(element);
+              },
+            },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+Insert styles to the provided element or to the `head` tag if target isn't provided. Now you can inject styles into Shadow DOM (or any other element).
+
+**custom-square.css**
+
+```css
+div {
+  width: 50px;
+  height: 50px;
+  background-color: red;
+}
+```
+
+**custom-square.js**
+
+```js
+import customSquareStyles from "./custom-square.css";
+
+class CustomSquare extends HTMLElement {
+  constructor() {
+    super();
+
+    this.attachShadow({ mode: "open" });
+
+    const divElement = document.createElement("div");
+
+    divElement.textContent = "Text content.";
+
+    this.shadowRoot.appendChild(divElement);
+
+    customSquareStyles.use({ target: this.shadowRoot });
+
+    // You can override injected styles
+    const bgPurple = new CSSStyleSheet();
+    const width = this.getAttribute("w");
+    const height = this.getAttribute("h");
+
+    bgPurple.replace(`div { width: ${width}px; height: ${height}px; }`);
+
+    this.shadowRoot.adoptedStyleSheets = [bgPurple];
+
+    // `divElement` will have `100px` width, `100px` height and `red` background color
+  }
+}
+
+customElements.define("custom-square", CustomSquare);
+
+export default CustomSquare;
+```
+
+### `styleTagTransform`
+
+Type:
+
+```ts
+type styleTagTransform =
+  | string
+  | ((
+      css: string,
+      styleElement: HTMLStyleElement,
+      options: Record<string, any>
+    ) => void);
+```
+
+Default: `undefined`
+
+#### `string`
+
+Allows to setup absolute path to custom function that allows to override default behavior styleTagTransform.
+
+> **Warning**
+>
+> Do not forget that this code will be used in the browser and not all browsers support latest ECMA features like `let`, `const`, `arrow function expression` and etc, we recommend use only ECMA 5 features, but it is depends what browsers you want to support
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: {
+              injectType: "styleTag",
+              styleTagTransform: require.resolve("module-path"),
+            },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+#### `function`
+
+Transform tag and css when insert 'style' tag into the DOM.
+
+> **Warning**
+>
+> Do not forget that this code will be used in the browser and not all browsers support latest ECMA features like `let`, `const`, `arrow function expression` and etc, we recommend use only ECMA 5 features, but it is depends what browsers you want to support
+
+> **Warning**
+>
+> Do not forget that some DOM methods may not be available in older browsers, we recommended use only [DOM core level 2 properties](https://caniuse.com/#search=DOM%20Core), but it is depends what browsers you want to support
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: {
+              injectType: "styleTag",
+              styleTagTransform: function (css, style) {
+                // Do something ...
+                style.innerHTML = `${css}.modify{}\n`;
+
+                document.head.appendChild(style);
+              },
+            },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+### `base`
+
+```ts
+type base = number;
+```
+
+This setting is primarily used as a workaround for [css clashes](https://github.com/webpack-contrib/style-loader/issues/163) when using one or more [DllPlugin](https://robertknight.me.uk/posts/webpack-dll-plugins/)'s. `base` allows you to prevent either the _app_'s css (or _DllPlugin2_'s css) from overwriting _DllPlugin1_'s css by specifying a css module id base which is greater than the range used by _DllPlugin1_ e.g.:
+
+**webpack.dll1.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: ["style-loader", "css-loader"],
+      },
+    ],
+  },
+};
+```
+
+**webpack.dll2.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          { loader: "style-loader", options: { base: 1000 } },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+**webpack.app.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          { loader: "style-loader", options: { base: 2000 } },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+### `esModule`
+
+Type:
+
+```ts
+type esModule = boolean;
+```
+
+Default: `true`
+
+By default, `style-loader` generates JS modules that use the ES modules syntax.
+There are some cases in which using ES modules is beneficial, like in the case of [module concatenation](https://webpack.js.org/plugins/module-concatenation-plugin/) and [tree shaking](https://webpack.js.org/guides/tree-shaking/).
+
+You can enable a CommonJS modules syntax using:
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        loader: "style-loader",
+        options: {
+          esModule: false,
+        },
+      },
+    ],
+  },
+};
+```
+
+## Examples
+
+### Recommend
+
+For `production` builds it's recommended to extract the CSS from your bundle being able to use parallel loading of CSS/JS resources later on.
+This can be achieved by using the [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin), because it creates separate css files.
+For `development` mode (including `webpack-dev-server`) you can use `style-loader`, because it injects CSS into the DOM using multiple `<style></style>` and works faster.
+
+> **Warning**
+>
+> Do not use together `style-loader` and `mini-css-extract-plugin`.
+
+**webpack.config.js**
+
+```js
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
+const devMode = process.env.NODE_ENV !== "production";
+
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.(sa|sc|c)ss$/,
+        use: [
+          devMode ? "style-loader" : MiniCssExtractPlugin.loader,
+          "css-loader",
+          "postcss-loader",
+          "sass-loader",
+        ],
+      },
+    ],
+  },
+  plugins: [].concat(devMode ? [] : [new MiniCssExtractPlugin()]),
+};
+```
+
+### Named export for CSS Modules
+
+> **Warning**
+>
+> Names of locals are converted to `camelCase`.
+
+> **Warning**
+>
+> It is not allowed to use JavaScript reserved words in css class names.
+
+> **Warning**
+>
+> Options `esModule` and `modules.namedExport` in `css-loader` should be enabled.
+
+**styles.css**
+
+```css
+.foo-baz {
+  color: red;
+}
+.bar {
+  color: blue;
+}
+```
+
+**index.js**
+
+```js
+import { fooBaz, bar } from "./styles.css";
+
+console.log(fooBaz, bar);
+```
+
+You can enable a ES module named export using:
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/,
+        use: [
+          {
+            loader: "style-loader",
+          },
+          {
+            loader: "css-loader",
+            options: {
+              modules: {
+                namedExport: true,
+              },
+            },
+          },
+        ],
+      },
+    ],
+  },
+};
+```
+
+### Source maps
+
+The loader automatically inject source maps when previous loader emit them.
+Therefore, to generate source maps, set the `sourceMap` option to `true` for the previous loader.
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          "style-loader",
+          { loader: "css-loader", options: { sourceMap: true } },
+        ],
+      },
+    ],
+  },
+};
+```
+
+### Nonce
+
+If you are using a [Content Security Policy](https://www.w3.org/TR/CSP3/) (CSP), the injected code will usually be blocked. A workaround is to use a nonce. Note, however, that using a nonce significantly reduces the protection provided by the CSP. You can read more about the security impact in [the specification](https://www.w3.org/TR/CSP3/#security-considerations). The better solution is not to use this loader in production.
+
+There are two ways to work with `nonce`:
+
+- using the `attributes` option
+- using the `__webpack_nonce__` variable
+
+> **Warning**
+>
+> the `attributes` option takes precedence over the `__webpack_nonce__` variable
+
+#### `attributes`
+
+**component.js**
+
+```js
+import "./style.css";
+```
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: {
+              attributes: {
+                nonce: "12345678",
+              },
+            },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+The loader generate:
+
+```html
+<style nonce="12345678">
+  .foo {
+    color: red;
+  }
+</style>
+```
+
+#### `__webpack_nonce__`
+
+**create-nonce.js**
+
+```js
+__webpack_nonce__ = "12345678";
+```
+
+**component.js**
+
+```js
+import "./create-nonce.js";
+import "./style.css";
+```
+
+Alternative example for `require`:
+
+**component.js**
+
+```js
+__webpack_nonce__ = "12345678";
+
+require("./style.css");
+```
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: ["style-loader", "css-loader"],
+      },
+    ],
+  },
+};
+```
+
+The loader generate:
+
+```html
+<style nonce="12345678">
+  .foo {
+    color: red;
+  }
+</style>
+```
+
+#### Insert styles at top
+
+Inserts styles at top of `head` tag.
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: {
+              insert: function insertAtTop(element) {
+                var parent = document.querySelector("head");
+                var lastInsertedElement =
+                  window._lastElementInsertedByStyleLoader;
+
+                if (!lastInsertedElement) {
+                  parent.insertBefore(element, parent.firstChild);
+                } else if (lastInsertedElement.nextSibling) {
+                  parent.insertBefore(element, lastInsertedElement.nextSibling);
+                } else {
+                  parent.appendChild(element);
+                }
+
+                window._lastElementInsertedByStyleLoader = element;
+              },
+            },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+#### Insert styles before target element
+
+Inserts styles before `#id` element.
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: {
+              insert: function insertBeforeAt(element) {
+                const parent = document.querySelector("head");
+                const target = document.querySelector("#id");
+
+                const lastInsertedElement =
+                  window._lastElementInsertedByStyleLoader;
+
+                if (!lastInsertedElement) {
+                  parent.insertBefore(element, target);
+                } else if (lastInsertedElement.nextSibling) {
+                  parent.insertBefore(element, lastInsertedElement.nextSibling);
+                } else {
+                  parent.appendChild(element);
+                }
+
+                window._lastElementInsertedByStyleLoader = element;
+              },
+            },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+#### Custom Elements (Shadow DOM)
+
+You can define custom target for your styles for the `lazyStyleTag` type.
+
+**webpack.config.js**
+
+```js
+module.exports = {
+  module: {
+    rules: [
+      {
+        test: /\.css$/i,
+        use: [
+          {
+            loader: "style-loader",
+            options: {
+              injectType: "lazyStyleTag",
+              // Do not forget that this code will be used in the browser and
+              // not all browsers support latest ECMA features like `let`, `const`, `arrow function expression` and etc,
+              // we recommend use only ECMA 5 features,
+              // but it is depends what browsers you want to support
+              insert: function insertIntoTarget(element, options) {
+                var parent = options.target || document.head;
+
+                parent.appendChild(element);
+              },
+            },
+          },
+          "css-loader",
+        ],
+      },
+    ],
+  },
+};
+```
+
+Insert styles to the provided element or to the `head` tag if target isn't provided.
+
+**custom-square.css**
+
+```css
+div {
+  width: 50px;
+  height: 50px;
+  background-color: red;
+}
+```
+
+**custom-square.js**
+
+```js
+import customSquareStyles from "./custom-square.css";
+
+class CustomSquare extends HTMLElement {
+  constructor() {
+    super();
+
+    this.attachShadow({ mode: "open" });
+
+    const divElement = document.createElement("div");
+
+    divElement.textContent = "Text content.";
+
+    this.shadowRoot.appendChild(divElement);
+
+    customSquareStyles.use({ target: this.shadowRoot });
+
+    // You can override injected styles
+    const bgPurple = new CSSStyleSheet();
+    const width = this.getAttribute("w");
+    const height = this.getAttribute("h");
+
+    bgPurple.replace(`div { width: ${width}px; height: ${height}px; }`);
+
+    this.shadowRoot.adoptedStyleSheets = [bgPurple];
+
+    // `divElement` will have `100px` width, `100px` height and `red` background color
+  }
+}
+
+customElements.define("custom-square", CustomSquare);
+
+export default CustomSquare;
+```
+
+## Contributing
+
+Please take a moment to read our contributing guidelines if you haven't yet done so.
+
+[CONTRIBUTING](./.github/CONTRIBUTING.md)
+
+## License
+
+[MIT](./LICENSE)
+
+[npm]: https://img.shields.io/npm/v/style-loader.svg
+[npm-url]: https://npmjs.com/package/style-loader
+[node]: https://img.shields.io/node/v/style-loader.svg
+[node-url]: https://nodejs.org
+[tests]: https://github.com/webpack-contrib/style-loader/workflows/style-loader/badge.svg
+[tests-url]: https://github.com/webpack-contrib/style-loader/actions
+[cover]: https://codecov.io/gh/webpack-contrib/style-loader/branch/master/graph/badge.svg
+[cover-url]: https://codecov.io/gh/webpack-contrib/style-loader
+[discussion]: https://img.shields.io/github/discussions/webpack/webpack
+[discussion-url]: https://github.com/webpack/webpack/discussions
+[size]: https://packagephobia.now.sh/badge?p=style-loader
+[size-url]: https://packagephobia.now.sh/result?p=style-loader
Index: frontend/node_modules/style-loader/dist/cjs.js
===================================================================
--- frontend/node_modules/style-loader/dist/cjs.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/cjs.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,4 @@
+"use strict";
+
+const loader = require("./index");
+module.exports = loader.default;
Index: frontend/node_modules/style-loader/dist/index.js
===================================================================
--- frontend/node_modules/style-loader/dist/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,152 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+var _path = _interopRequireDefault(require("path"));
+var _utils = require("./utils");
+var _options = _interopRequireDefault(require("./options.json"));
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+// eslint-disable-next-line consistent-return
+const loader = function loader(content) {
+  if (this._compiler && this._compiler.options && this._compiler.options.experiments && this._compiler.options.experiments.css && this._module && (this._module.type === "css" || this._module.type === "css/global" || this._module.type === "css/module" || this._module.type === "css/auto")) {
+    return content;
+  }
+};
+loader.pitch = function pitch(request) {
+  if (this._compiler && this._compiler.options && this._compiler.options.experiments && this._compiler.options.experiments.css && this._module && (this._module.type === "css" || this._module.type === "css/global" || this._module.type === "css/module" || this._module.type === "css/auto")) {
+    this.emitWarning(new Error('You can\'t use `experiments.css` (`experiments.futureDefaults` enable built-in CSS support by default) and `style-loader` together, please set `experiments.css` to `false` or set `{ type: "javascript/auto" }` for rules with `style-loader` in your webpack config (now `style-loader` does nothing).'));
+    return;
+  }
+  const options = this.getOptions(_options.default);
+  const injectType = options.injectType || "styleTag";
+  const esModule = typeof options.esModule !== "undefined" ? options.esModule : true;
+  const runtimeOptions = {};
+  if (options.attributes) {
+    runtimeOptions.attributes = options.attributes;
+  }
+  if (options.base) {
+    runtimeOptions.base = options.base;
+  }
+  const insertType = typeof options.insert === "function" ? "function" : options.insert && _path.default.isAbsolute(options.insert) ? "module-path" : "selector";
+  const styleTagTransformType = typeof options.styleTagTransform === "function" ? "function" : options.styleTagTransform && _path.default.isAbsolute(options.styleTagTransform) ? "module-path" : "default";
+  switch (injectType) {
+    case "linkTag":
+      {
+        const hmrCode = this.hot ? (0, _utils.getLinkHmrCode)(esModule, this, request) : "";
+
+        // eslint-disable-next-line consistent-return
+        return `
+      ${(0, _utils.getImportLinkAPICode)(esModule, this)}
+      ${(0, _utils.getImportInsertBySelectorCode)(esModule, this, insertType, options)}
+      ${(0, _utils.getImportLinkContentCode)(esModule, this, request)}
+      ${esModule ? "" : `content = content.__esModule ? content.default : content;`}
+
+var options = ${JSON.stringify(runtimeOptions)};
+
+${(0, _utils.getInsertOptionCode)(insertType, options)}
+
+var update = API(content, options);
+
+${hmrCode}
+
+${esModule ? "export default {}" : ""}`;
+      }
+    case "lazyStyleTag":
+    case "lazyAutoStyleTag":
+    case "lazySingletonStyleTag":
+      {
+        const isSingleton = injectType === "lazySingletonStyleTag";
+        const isAuto = injectType === "lazyAutoStyleTag";
+        const hmrCode = this.hot ? (0, _utils.getStyleHmrCode)(esModule, this, request, true) : "";
+
+        // eslint-disable-next-line consistent-return
+        return `
+      var exported = {};
+
+      ${(0, _utils.getImportStyleAPICode)(esModule, this)}
+      ${(0, _utils.getImportStyleDomAPICode)(esModule, this, isSingleton, isAuto)}
+      ${(0, _utils.getImportInsertBySelectorCode)(esModule, this, insertType, options)}
+      ${(0, _utils.getSetAttributesCode)(esModule, this, options)}
+      ${(0, _utils.getImportInsertStyleElementCode)(esModule, this)}
+      ${(0, _utils.getStyleTagTransformFnCode)(esModule, this, options, isSingleton, styleTagTransformType)}
+      ${(0, _utils.getImportStyleContentCode)(esModule, this, request)}
+      ${isAuto ? (0, _utils.getImportIsOldIECode)(esModule, this) : ""}
+      ${esModule ? `if (content && content.locals) {
+              exported.locals = content.locals;
+            }
+            ` : `content = content.__esModule ? content.default : content;
+
+            exported.locals = content.locals || {};`}
+
+var refs = 0;
+var update;
+var options = ${JSON.stringify(runtimeOptions)};
+
+${(0, _utils.getStyleTagTransformFn)(options, isSingleton)};
+options.setAttributes = setAttributes;
+${(0, _utils.getInsertOptionCode)(insertType, options)}
+options.domAPI = ${(0, _utils.getdomAPI)(isAuto)};
+options.insertStyleElement = insertStyleElement;
+
+exported.use = function(insertOptions) {
+  options.options = insertOptions || {};
+
+  if (!(refs++)) {
+    update = API(content, options);
+  }
+
+  return exported;
+};
+exported.unuse = function() {
+  if (refs > 0 && !--refs) {
+    update();
+    update = null;
+  }
+};
+
+${hmrCode}
+
+${(0, _utils.getExportLazyStyleCode)(esModule, this, request)}
+`;
+      }
+    case "styleTag":
+    case "autoStyleTag":
+    case "singletonStyleTag":
+    default:
+      {
+        const isSingleton = injectType === "singletonStyleTag";
+        const isAuto = injectType === "autoStyleTag";
+        const hmrCode = this.hot ? (0, _utils.getStyleHmrCode)(esModule, this, request, false) : "";
+
+        // eslint-disable-next-line consistent-return
+        return `
+      ${(0, _utils.getImportStyleAPICode)(esModule, this)}
+      ${(0, _utils.getImportStyleDomAPICode)(esModule, this, isSingleton, isAuto)}
+      ${(0, _utils.getImportInsertBySelectorCode)(esModule, this, insertType, options)}
+      ${(0, _utils.getSetAttributesCode)(esModule, this, options)}
+      ${(0, _utils.getImportInsertStyleElementCode)(esModule, this)}
+      ${(0, _utils.getStyleTagTransformFnCode)(esModule, this, options, isSingleton, styleTagTransformType)}
+      ${(0, _utils.getImportStyleContentCode)(esModule, this, request)}
+      ${isAuto ? (0, _utils.getImportIsOldIECode)(esModule, this) : ""}
+      ${esModule ? "" : `content = content.__esModule ? content.default : content;`}
+
+var options = ${JSON.stringify(runtimeOptions)};
+
+${(0, _utils.getStyleTagTransformFn)(options, isSingleton)};
+options.setAttributes = setAttributes;
+${(0, _utils.getInsertOptionCode)(insertType, options)}
+options.domAPI = ${(0, _utils.getdomAPI)(isAuto)};
+options.insertStyleElement = insertStyleElement;
+
+var update = API(content, options);
+
+${hmrCode}
+
+${(0, _utils.getExportStyleCode)(esModule, this, request)}
+`;
+      }
+  }
+};
+var _default = exports.default = loader;
Index: frontend/node_modules/style-loader/dist/options.json
===================================================================
--- frontend/node_modules/style-loader/dist/options.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/options.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,59 @@
+{
+  "title": "Style Loader options",
+  "type": "object",
+  "properties": {
+    "injectType": {
+      "description": "Allows to setup how styles will be injected into DOM.",
+      "link": "https://github.com/webpack-contrib/style-loader#injecttype",
+      "enum": [
+        "styleTag",
+        "singletonStyleTag",
+        "autoStyleTag",
+        "lazyStyleTag",
+        "lazySingletonStyleTag",
+        "lazyAutoStyleTag",
+        "linkTag"
+      ]
+    },
+    "attributes": {
+      "description": "Adds custom attributes to tag.",
+      "link": "https://github.com/webpack-contrib/style-loader#attributes",
+      "type": "object"
+    },
+    "insert": {
+      "description": "Inserts `<style>`/`<link>` at the given position.",
+      "link": "https://github.com/webpack-contrib/style-loader#insert",
+      "anyOf": [
+        {
+          "type": "string"
+        },
+        {
+          "instanceof": "Function"
+        }
+      ]
+    },
+    "base": {
+      "description": "Sets module ID base for DLLPlugin.",
+      "link": "https://github.com/webpack-contrib/style-loader#base",
+      "type": "number"
+    },
+    "esModule": {
+      "description": "Use the ES modules syntax.",
+      "link": "https://github.com/webpack-contrib/css-loader#esmodule",
+      "type": "boolean"
+    },
+    "styleTagTransform": {
+      "description": "Transform tag and css when insert 'style' tag into the DOM",
+      "link": "https://github.com/webpack-contrib/style-loader#styleTagTransform",
+      "anyOf": [
+        {
+          "type": "string"
+        },
+        {
+          "instanceof": "Function"
+        }
+      ]
+    }
+  },
+  "additionalProperties": false
+}
Index: frontend/node_modules/style-loader/dist/runtime/injectStylesIntoLinkTag.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/injectStylesIntoLinkTag.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/injectStylesIntoLinkTag.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,29 @@
+"use strict";
+
+module.exports = function (url, options) {
+  if (typeof document === "undefined") {
+    return function () {};
+  }
+  options = options || {};
+  options.attributes = typeof options.attributes === "object" ? options.attributes : {};
+  if (typeof options.attributes.nonce === "undefined") {
+    var nonce = typeof __webpack_nonce__ !== "undefined" ? __webpack_nonce__ : null;
+    if (nonce) {
+      options.attributes.nonce = nonce;
+    }
+  }
+  var linkElement = document.createElement("link");
+  linkElement.rel = "stylesheet";
+  linkElement.href = url;
+  Object.keys(options.attributes).forEach(function (key) {
+    linkElement.setAttribute(key, options.attributes[key]);
+  });
+  options.insert(linkElement);
+  return function (newUrl) {
+    if (typeof newUrl === "string") {
+      linkElement.href = newUrl;
+    } else {
+      linkElement.parentNode.removeChild(linkElement);
+    }
+  };
+};
Index: frontend/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,84 @@
+"use strict";
+
+var stylesInDOM = [];
+function getIndexByIdentifier(identifier) {
+  var result = -1;
+  for (var i = 0; i < stylesInDOM.length; i++) {
+    if (stylesInDOM[i].identifier === identifier) {
+      result = i;
+      break;
+    }
+  }
+  return result;
+}
+function modulesToDom(list, options) {
+  var idCountMap = {};
+  var identifiers = [];
+  for (var i = 0; i < list.length; i++) {
+    var item = list[i];
+    var id = options.base ? item[0] + options.base : item[0];
+    var count = idCountMap[id] || 0;
+    var identifier = "".concat(id, " ").concat(count);
+    idCountMap[id] = count + 1;
+    var indexByIdentifier = getIndexByIdentifier(identifier);
+    var obj = {
+      css: item[1],
+      media: item[2],
+      sourceMap: item[3],
+      supports: item[4],
+      layer: item[5]
+    };
+    if (indexByIdentifier !== -1) {
+      stylesInDOM[indexByIdentifier].references++;
+      stylesInDOM[indexByIdentifier].updater(obj);
+    } else {
+      var updater = addElementStyle(obj, options);
+      options.byIndex = i;
+      stylesInDOM.splice(i, 0, {
+        identifier: identifier,
+        updater: updater,
+        references: 1
+      });
+    }
+    identifiers.push(identifier);
+  }
+  return identifiers;
+}
+function addElementStyle(obj, options) {
+  var api = options.domAPI(options);
+  api.update(obj);
+  var updater = function updater(newObj) {
+    if (newObj) {
+      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
+        return;
+      }
+      api.update(obj = newObj);
+    } else {
+      api.remove();
+    }
+  };
+  return updater;
+}
+module.exports = function (list, options) {
+  options = options || {};
+  list = list || [];
+  var lastIdentifiers = modulesToDom(list, options);
+  return function update(newList) {
+    newList = newList || [];
+    for (var i = 0; i < lastIdentifiers.length; i++) {
+      var identifier = lastIdentifiers[i];
+      var index = getIndexByIdentifier(identifier);
+      stylesInDOM[index].references--;
+    }
+    var newLastIdentifiers = modulesToDom(newList, options);
+    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
+      var _identifier = lastIdentifiers[_i];
+      var _index = getIndexByIdentifier(_identifier);
+      if (stylesInDOM[_index].references === 0) {
+        stylesInDOM[_index].updater();
+        stylesInDOM.splice(_index, 1);
+      }
+    }
+    lastIdentifiers = newLastIdentifiers;
+  };
+};
Index: frontend/node_modules/style-loader/dist/runtime/insertBySelector.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/insertBySelector.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/insertBySelector.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,34 @@
+"use strict";
+
+var memo = {};
+
+/* istanbul ignore next  */
+function getTarget(target) {
+  if (typeof memo[target] === "undefined") {
+    var styleTarget = document.querySelector(target);
+
+    // Special case to return head of iframe instead of iframe itself
+    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
+      try {
+        // This will throw an exception if access to iframe is blocked
+        // due to cross-origin restrictions
+        styleTarget = styleTarget.contentDocument.head;
+      } catch (e) {
+        // istanbul ignore next
+        styleTarget = null;
+      }
+    }
+    memo[target] = styleTarget;
+  }
+  return memo[target];
+}
+
+/* istanbul ignore next  */
+function insertBySelector(insert, style) {
+  var target = getTarget(insert);
+  if (!target) {
+    throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
+  }
+  target.appendChild(style);
+}
+module.exports = insertBySelector;
Index: frontend/node_modules/style-loader/dist/runtime/insertStyleElement.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/insertStyleElement.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/insertStyleElement.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,10 @@
+"use strict";
+
+/* istanbul ignore next  */
+function insertStyleElement(options) {
+  var element = document.createElement("style");
+  options.setAttributes(element, options.attributes);
+  options.insert(element, options.options);
+  return element;
+}
+module.exports = insertStyleElement;
Index: frontend/node_modules/style-loader/dist/runtime/isEqualLocals.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/isEqualLocals.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/isEqualLocals.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,28 @@
+"use strict";
+
+function isEqualLocals(a, b, isNamedExport) {
+  if (!a && b || a && !b) {
+    return false;
+  }
+  var p;
+  for (p in a) {
+    if (isNamedExport && p === "default") {
+      // eslint-disable-next-line no-continue
+      continue;
+    }
+    if (a[p] !== b[p]) {
+      return false;
+    }
+  }
+  for (p in b) {
+    if (isNamedExport && p === "default") {
+      // eslint-disable-next-line no-continue
+      continue;
+    }
+    if (!a[p]) {
+      return false;
+    }
+  }
+  return true;
+}
+module.exports = isEqualLocals;
Index: frontend/node_modules/style-loader/dist/runtime/isOldIE.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/isOldIE.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/isOldIE.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,17 @@
+"use strict";
+
+var memo;
+
+/* istanbul ignore next  */
+function isOldIE() {
+  if (typeof memo === "undefined") {
+    // Test for IE <= 9 as proposed by Browserhacks
+    // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
+    // Tests for existence of standard globals is to allow style-loader
+    // to operate correctly into non-standard environments
+    // @see https://github.com/webpack-contrib/style-loader/issues/177
+    memo = Boolean(typeof window !== "undefined" && typeof document !== "undefined" && document.all && !window.atob);
+  }
+  return memo;
+}
+module.exports = isOldIE;
Index: frontend/node_modules/style-loader/dist/runtime/setAttributesWithAttributes.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/setAttributesWithAttributes.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/setAttributesWithAttributes.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,13 @@
+"use strict";
+
+/* istanbul ignore next  */
+function setAttributesWithoutAttributes(styleElement, attributes) {
+  var nonce = typeof __webpack_nonce__ !== "undefined" ? __webpack_nonce__ : null;
+  if (nonce) {
+    attributes.nonce = nonce;
+  }
+  Object.keys(attributes).forEach(function (key) {
+    styleElement.setAttribute(key, attributes[key]);
+  });
+}
+module.exports = setAttributesWithoutAttributes;
Index: frontend/node_modules/style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,9 @@
+"use strict";
+
+/* istanbul ignore next  */
+function setAttributesWithoutAttributes(styleElement, attributes) {
+  Object.keys(attributes).forEach(function (key) {
+    styleElement.setAttribute(key, attributes[key]);
+  });
+}
+module.exports = setAttributesWithoutAttributes;
Index: frontend/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,10 @@
+"use strict";
+
+/* istanbul ignore next  */
+function setAttributesWithoutAttributes(styleElement) {
+  var nonce = typeof __webpack_nonce__ !== "undefined" ? __webpack_nonce__ : null;
+  if (nonce) {
+    styleElement.setAttribute("nonce", nonce);
+  }
+}
+module.exports = setAttributesWithoutAttributes;
Index: frontend/node_modules/style-loader/dist/runtime/singletonStyleDomAPI.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/singletonStyleDomAPI.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/singletonStyleDomAPI.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,86 @@
+"use strict";
+
+/* istanbul ignore next  */
+var replaceText = function replaceText() {
+  var textStore = [];
+  return function replace(index, replacement) {
+    textStore[index] = replacement;
+    return textStore.filter(Boolean).join("\n");
+  };
+}();
+
+/* istanbul ignore next  */
+function apply(styleElement, index, remove, obj) {
+  var css;
+  if (remove) {
+    css = "";
+  } else {
+    css = "";
+    if (obj.supports) {
+      css += "@supports (".concat(obj.supports, ") {");
+    }
+    if (obj.media) {
+      css += "@media ".concat(obj.media, " {");
+    }
+    var needLayer = typeof obj.layer !== "undefined";
+    if (needLayer) {
+      css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
+    }
+    css += obj.css;
+    if (needLayer) {
+      css += "}";
+    }
+    if (obj.media) {
+      css += "}";
+    }
+    if (obj.supports) {
+      css += "}";
+    }
+  }
+
+  // For old IE
+  /* istanbul ignore if  */
+  if (styleElement.styleSheet) {
+    styleElement.styleSheet.cssText = replaceText(index, css);
+  } else {
+    var cssNode = document.createTextNode(css);
+    var childNodes = styleElement.childNodes;
+    if (childNodes[index]) {
+      styleElement.removeChild(childNodes[index]);
+    }
+    if (childNodes.length) {
+      styleElement.insertBefore(cssNode, childNodes[index]);
+    } else {
+      styleElement.appendChild(cssNode);
+    }
+  }
+}
+var singletonData = {
+  singleton: null,
+  singletonCounter: 0
+};
+
+/* istanbul ignore next  */
+function domAPI(options) {
+  if (typeof document === "undefined") return {
+    update: function update() {},
+    remove: function remove() {}
+  };
+
+  // eslint-disable-next-line no-undef,no-use-before-define
+  var styleIndex = singletonData.singletonCounter++;
+  var styleElement =
+  // eslint-disable-next-line no-undef,no-use-before-define
+  singletonData.singleton || (
+  // eslint-disable-next-line no-undef,no-use-before-define
+  singletonData.singleton = options.insertStyleElement(options));
+  return {
+    update: function update(obj) {
+      apply(styleElement, styleIndex, false, obj);
+    },
+    remove: function remove(obj) {
+      apply(styleElement, styleIndex, true, obj);
+    }
+  };
+}
+module.exports = domAPI;
Index: frontend/node_modules/style-loader/dist/runtime/styleDomAPI.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/styleDomAPI.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/styleDomAPI.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,61 @@
+"use strict";
+
+/* istanbul ignore next  */
+function apply(styleElement, options, obj) {
+  var css = "";
+  if (obj.supports) {
+    css += "@supports (".concat(obj.supports, ") {");
+  }
+  if (obj.media) {
+    css += "@media ".concat(obj.media, " {");
+  }
+  var needLayer = typeof obj.layer !== "undefined";
+  if (needLayer) {
+    css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
+  }
+  css += obj.css;
+  if (needLayer) {
+    css += "}";
+  }
+  if (obj.media) {
+    css += "}";
+  }
+  if (obj.supports) {
+    css += "}";
+  }
+  var sourceMap = obj.sourceMap;
+  if (sourceMap && typeof btoa !== "undefined") {
+    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
+  }
+
+  // For old IE
+  /* istanbul ignore if  */
+  options.styleTagTransform(css, styleElement, options.options);
+}
+function removeStyleElement(styleElement) {
+  // istanbul ignore if
+  if (styleElement.parentNode === null) {
+    return false;
+  }
+  styleElement.parentNode.removeChild(styleElement);
+}
+
+/* istanbul ignore next  */
+function domAPI(options) {
+  if (typeof document === "undefined") {
+    return {
+      update: function update() {},
+      remove: function remove() {}
+    };
+  }
+  var styleElement = options.insertStyleElement(options);
+  return {
+    update: function update(obj) {
+      apply(styleElement, options, obj);
+    },
+    remove: function remove() {
+      removeStyleElement(styleElement);
+    }
+  };
+}
+module.exports = domAPI;
Index: frontend/node_modules/style-loader/dist/runtime/styleTagTransform.js
===================================================================
--- frontend/node_modules/style-loader/dist/runtime/styleTagTransform.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/runtime/styleTagTransform.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,14 @@
+"use strict";
+
+/* istanbul ignore next  */
+function styleTagTransform(css, styleElement) {
+  if (styleElement.styleSheet) {
+    styleElement.styleSheet.cssText = css;
+  } else {
+    while (styleElement.firstChild) {
+      styleElement.removeChild(styleElement.firstChild);
+    }
+    styleElement.appendChild(document.createTextNode(css));
+  }
+}
+module.exports = styleTagTransform;
Index: frontend/node_modules/style-loader/dist/utils.js
===================================================================
--- frontend/node_modules/style-loader/dist/utils.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/dist/utils.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,240 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.getExportLazyStyleCode = getExportLazyStyleCode;
+exports.getExportStyleCode = getExportStyleCode;
+exports.getImportInsertBySelectorCode = getImportInsertBySelectorCode;
+exports.getImportInsertStyleElementCode = getImportInsertStyleElementCode;
+exports.getImportIsOldIECode = getImportIsOldIECode;
+exports.getImportLinkAPICode = getImportLinkAPICode;
+exports.getImportLinkContentCode = getImportLinkContentCode;
+exports.getImportStyleAPICode = getImportStyleAPICode;
+exports.getImportStyleContentCode = getImportStyleContentCode;
+exports.getImportStyleDomAPICode = getImportStyleDomAPICode;
+exports.getInsertOptionCode = getInsertOptionCode;
+exports.getLinkHmrCode = getLinkHmrCode;
+exports.getSetAttributesCode = getSetAttributesCode;
+exports.getStyleHmrCode = getStyleHmrCode;
+exports.getStyleTagTransformFn = getStyleTagTransformFn;
+exports.getStyleTagTransformFnCode = getStyleTagTransformFnCode;
+exports.getdomAPI = getdomAPI;
+exports.stringifyRequest = stringifyRequest;
+var _path = _interopRequireDefault(require("path"));
+var _isEqualLocals = _interopRequireDefault(require("./runtime/isEqualLocals"));
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+const matchRelativePath = /^\.\.?[/\\]/;
+function isAbsolutePath(str) {
+  return _path.default.posix.isAbsolute(str) || _path.default.win32.isAbsolute(str);
+}
+function isRelativePath(str) {
+  return matchRelativePath.test(str);
+}
+
+// TODO simplify for the next major release
+function stringifyRequest(loaderContext, request) {
+  if (typeof loaderContext.utils !== "undefined" && typeof loaderContext.utils.contextify === "function") {
+    return JSON.stringify(loaderContext.utils.contextify(loaderContext.context, request));
+  }
+  const splitted = request.split("!");
+  const {
+    context
+  } = loaderContext;
+  return JSON.stringify(splitted.map(part => {
+    // First, separate singlePath from query, because the query might contain paths again
+    const splittedPart = part.match(/^(.*?)(\?.*)/);
+    const query = splittedPart ? splittedPart[2] : "";
+    let singlePath = splittedPart ? splittedPart[1] : part;
+    if (isAbsolutePath(singlePath) && context) {
+      singlePath = _path.default.relative(context, singlePath);
+      if (isAbsolutePath(singlePath)) {
+        // If singlePath still matches an absolute path, singlePath was on a different drive than context.
+        // In this case, we leave the path platform-specific without replacing any separators.
+        // @see https://github.com/webpack/loader-utils/pull/14
+        return singlePath + query;
+      }
+      if (isRelativePath(singlePath) === false) {
+        // Ensure that the relative path starts at least with ./ otherwise it would be a request into the modules directory (like node_modules).
+        singlePath = `./${singlePath}`;
+      }
+    }
+    return singlePath.replace(/\\/g, "/") + query;
+  }).join("!"));
+}
+function getImportLinkAPICode(esModule, loaderContext) {
+  const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/injectStylesIntoLinkTag.js")}`);
+  return esModule ? `import API from ${modulePath};` : `var API = require(${modulePath});`;
+}
+function getImportLinkContentCode(esModule, loaderContext, request) {
+  const modulePath = stringifyRequest(loaderContext, `!!${request}`);
+  return esModule ? `import content from ${modulePath};` : `var content = require(${modulePath});`;
+}
+function getImportStyleAPICode(esModule, loaderContext) {
+  const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/injectStylesIntoStyleTag.js")}`);
+  return esModule ? `import API from ${modulePath};` : `var API = require(${modulePath});`;
+}
+function getImportStyleDomAPICode(esModule, loaderContext, isSingleton, isAuto) {
+  const styleAPI = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/styleDomAPI.js")}`);
+  const singletonAPI = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/singletonStyleDomAPI.js")}`);
+  if (isAuto) {
+    return esModule ? `import domAPI from ${styleAPI};
+        import domAPISingleton from ${singletonAPI};` : `var domAPI = require(${styleAPI});
+        var domAPISingleton = require(${singletonAPI});`;
+  }
+  return esModule ? `import domAPI from ${isSingleton ? singletonAPI : styleAPI};` : `var domAPI = require(${isSingleton ? singletonAPI : styleAPI});`;
+}
+function getImportStyleContentCode(esModule, loaderContext, request) {
+  const modulePath = stringifyRequest(loaderContext, `!!${request}`);
+  return esModule ? `import content, * as namedExport from ${modulePath};` : `var content = require(${modulePath});`;
+}
+function getImportInsertBySelectorCode(esModule, loaderContext, insertType, options) {
+  if (insertType === "selector") {
+    const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/insertBySelector.js")}`);
+    return esModule ? `import insertFn from ${modulePath};` : `var insertFn = require(${modulePath});`;
+  }
+  if (insertType === "module-path") {
+    const modulePath = stringifyRequest(loaderContext, `${options.insert}`);
+    loaderContext.addBuildDependency(options.insert);
+    return esModule ? `import insertFn from ${modulePath};` : `var insertFn = require(${modulePath});`;
+  }
+  return "";
+}
+function getInsertOptionCode(insertType, options) {
+  if (insertType === "selector") {
+    const insert = options.insert ? JSON.stringify(options.insert) : '"head"';
+    return `
+      options.insert = insertFn.bind(null, ${insert});
+    `;
+  }
+  if (insertType === "module-path") {
+    return `options.insert = insertFn;`;
+  }
+
+  // Todo remove "function" type for insert option in next major release, because code duplication occurs. Leave require.resolve()
+  return `options.insert = ${options.insert.toString()};`;
+}
+function getImportInsertStyleElementCode(esModule, loaderContext) {
+  const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/insertStyleElement.js")}`);
+  return esModule ? `import insertStyleElement from ${modulePath};` : `var insertStyleElement = require(${modulePath});`;
+}
+function getStyleHmrCode(esModule, loaderContext, request, lazy) {
+  const modulePath = stringifyRequest(loaderContext, `!!${request}`);
+  return `
+if (module.hot) {
+  if (!content.locals || module.hot.invalidate) {
+    var isEqualLocals = ${_isEqualLocals.default.toString()};
+    var isNamedExport = ${esModule ? "!content.locals" : false};
+    var oldLocals = isNamedExport ? namedExport : content.locals;
+
+    module.hot.accept(
+      ${modulePath},
+      function () {
+        ${esModule ? `if (!isEqualLocals(oldLocals, isNamedExport ? namedExport : content.locals, isNamedExport)) {
+                module.hot.invalidate();
+
+                return;
+              }
+
+              oldLocals = isNamedExport ? namedExport : content.locals;
+
+              ${lazy ? `if (update && refs > 0) {
+                      update(content);
+                    }` : `update(content);`}` : `content = require(${modulePath});
+
+              content = content.__esModule ? content.default : content;
+
+              ${lazy ? "" : `if (typeof content === 'string') {
+                      content = [[module.id, content, '']];
+                    }`}
+
+              if (!isEqualLocals(oldLocals, content.locals)) {
+                module.hot.invalidate();
+
+                return;
+              }
+
+              oldLocals = content.locals;
+
+              ${lazy ? `if (update && refs > 0) {
+                        update(content);
+                      }` : `update(content);`}`}
+      }
+    )
+  }
+
+  module.hot.dispose(function() {
+    ${lazy ? `if (update) {
+            update();
+          }` : `update();`}
+  });
+}
+`;
+}
+function getLinkHmrCode(esModule, loaderContext, request) {
+  const modulePath = stringifyRequest(loaderContext, `!!${request}`);
+  return `
+if (module.hot) {
+  module.hot.accept(
+    ${modulePath},
+    function() {
+     ${esModule ? "update(content);" : `content = require(${modulePath});
+
+           content = content.__esModule ? content.default : content;
+
+           update(content);`}
+    }
+  );
+
+  module.hot.dispose(function() {
+    update();
+  });
+}`;
+}
+function getdomAPI(isAuto) {
+  return isAuto ? "isOldIE() ? domAPISingleton : domAPI" : "domAPI";
+}
+function getImportIsOldIECode(esModule, loaderContext) {
+  const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/isOldIE.js")}`);
+  return esModule ? `import isOldIE from ${modulePath};` : `var isOldIE = require(${modulePath});`;
+}
+function getStyleTagTransformFnCode(esModule, loaderContext, options, isSingleton, styleTagTransformType) {
+  if (isSingleton) {
+    return "";
+  }
+  if (styleTagTransformType === "default") {
+    const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/styleTagTransform.js")}`);
+    return esModule ? `import styleTagTransformFn from ${modulePath};` : `var styleTagTransformFn = require(${modulePath});`;
+  }
+  if (styleTagTransformType === "module-path") {
+    const modulePath = stringifyRequest(loaderContext, `${options.styleTagTransform}`);
+    loaderContext.addBuildDependency(options.styleTagTransform);
+    return esModule ? `import styleTagTransformFn from ${modulePath};` : `var styleTagTransformFn = require(${modulePath});`;
+  }
+  return "";
+}
+function getStyleTagTransformFn(options, isSingleton) {
+  // Todo remove "function" type for styleTagTransform option in next major release, because code duplication occurs. Leave require.resolve()
+  return isSingleton ? "" : typeof options.styleTagTransform === "function" ? `options.styleTagTransform = ${options.styleTagTransform.toString()}` : `options.styleTagTransform = styleTagTransformFn`;
+}
+function getExportStyleCode(esModule, loaderContext, request) {
+  const modulePath = stringifyRequest(loaderContext, `!!${request}`);
+  return esModule ? `export * from ${modulePath};
+       export default content && content.locals ? content.locals : undefined;` : "module.exports = content && content.locals || {};";
+}
+function getExportLazyStyleCode(esModule, loaderContext, request) {
+  const modulePath = stringifyRequest(loaderContext, `!!${request}`);
+  return esModule ? `export * from ${modulePath};
+       export default exported;` : "module.exports = exported;";
+}
+function getSetAttributesCode(esModule, loaderContext, options) {
+  let modulePath;
+  if (typeof options.attributes !== "undefined") {
+    modulePath = options.attributes.nonce !== "undefined" ? stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/setAttributesWithAttributesAndNonce.js")}`) : stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/setAttributesWithAttributes.js")}`);
+  } else {
+    modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, "runtime/setAttributesWithoutAttributes.js")}`);
+  }
+  return esModule ? `import setAttributes from ${modulePath};` : `var setAttributes = require(${modulePath});`;
+}
+
+// eslint-disable-next-line import/prefer-default-export
Index: frontend/node_modules/style-loader/package.json
===================================================================
--- frontend/node_modules/style-loader/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/style-loader/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,86 @@
+{
+  "name": "style-loader",
+  "version": "3.3.4",
+  "description": "style loader module for webpack",
+  "license": "MIT",
+  "repository": "webpack-contrib/style-loader",
+  "author": "Tobias Koppers @sokra",
+  "homepage": "https://github.com/webpack-contrib/style-loader",
+  "bugs": "https://github.com/webpack-contrib/style-loader/issues",
+  "funding": {
+    "type": "opencollective",
+    "url": "https://opencollective.com/webpack"
+  },
+  "main": "dist/cjs.js",
+  "engines": {
+    "node": ">= 12.13.0"
+  },
+  "scripts": {
+    "start": "npm run build -- -w",
+    "clean": "del-cli dist",
+    "validate:runtime": "es-check es3 \"dist/runtime/**/*.js\"",
+    "prebuild": "npm run clean",
+    "build": "cross-env NODE_ENV=production babel src -d dist --copy-files",
+    "postbuild": "npm run validate:runtime",
+    "commitlint": "commitlint --from=master",
+    "security": "npm audit --production",
+    "lint:prettier": "prettier --list-different .",
+    "lint:js": "eslint --cache .",
+    "lint:spelling": "cspell \"**/*.*\"",
+    "lint": "npm-run-all -l -p \"lint:**\"",
+    "fix:js": "npm run lint:js -- --fix",
+    "fix:prettier": "npm run lint:prettier -- --write",
+    "fix": "npm-run-all -l fix:js fix:prettier",
+    "test:only": "cross-env NODE_ENV=test jest",
+    "test:watch": "npm run test:only -- --watch",
+    "test:coverage": "npm run test:only -- --collectCoverageFrom=\"src/**/*.js\" --coverage",
+    "test:manual": "npm run build && webpack serve ./test/manual/src/index.js --open --config test/manual/webpack.config.js",
+    "pretest": "npm run lint",
+    "test": "npm run test:coverage",
+    "prepare": "husky install && npm run build",
+    "release": "standard-version"
+  },
+  "files": [
+    "dist"
+  ],
+  "peerDependencies": {
+    "webpack": "^5.0.0"
+  },
+  "devDependencies": {
+    "@babel/cli": "^7.21.5",
+    "@babel/core": "^7.22.1",
+    "@babel/preset-env": "^7.22.4",
+    "@commitlint/cli": "^16.3.0",
+    "@commitlint/config-conventional": "^16.2.4",
+    "@webpack-contrib/eslint-config-webpack": "^3.0.0",
+    "babel-jest": "^28.1.3",
+    "cross-env": "^7.0.3",
+    "cspell": "^6.31.1",
+    "css-loader": "^6.8.1",
+    "del": "^6.1.1",
+    "del-cli": "^4.0.1",
+    "es-check": "^7.1.1",
+    "eslint": "^8.41.0",
+    "eslint-config-prettier": "^8.8.0",
+    "eslint-plugin-import": "^2.27.5",
+    "file-loader": "^6.2.0",
+    "husky": "^7.0.1",
+    "jest": "^28.1.3",
+    "jest-environment-jsdom": "^28.1.3",
+    "jsdom": "^18.1.1",
+    "lint-staged": "^12.5.0",
+    "memfs": "^3.5.1",
+    "npm-run-all": "^4.1.5",
+    "prettier": "^2.8.8",
+    "sass": "^1.62.1",
+    "sass-loader": "^12.4.0",
+    "semver": "^7.5.1",
+    "standard-version": "^9.5.0",
+    "webpack": "^5.85.0",
+    "webpack-cli": "^4.10.0",
+    "webpack-dev-server": "^4.15.0"
+  },
+  "keywords": [
+    "webpack"
+  ]
+}
