From 51ce615f1d17ca06982efa0a0556951a44baad28 Mon Sep 17 00:00:00 2001 From: MarcWieland Date: Fri, 25 Jul 2025 01:24:32 +0200 Subject: [PATCH] First commit --- .DS_Store | Bin 0 -> 8196 bytes backend/.DS_Store | Bin 0 -> 6148 bytes backend/Dockerfile | 8 + backend/c_condensed.json | 5634 ++++++++++ backend/d_condensed.json | 6529 ++++++++++++ backend/package.json | 18 + backend/server.js | 32 + docker-compose.yml | 20 + frontend/.gitignore | 24 + frontend/Dockerfile | 12 + frontend/README.md | 12 + frontend/eslint.config.js | 29 + frontend/index.html | 13 + frontend/nginx.conf | 17 + frontend/package-lock.json | 3440 ++++++ frontend/package.json | 31 + frontend/public/vite.svg | 1 + frontend/src/App.css | 42 + frontend/src/App.jsx | 27 + frontend/src/assets/react.svg | 1 + frontend/src/components/QuestionCard.jsx | 86 + frontend/src/index.css | 5 + frontend/src/main.jsx | 10 + frontend/src/pages/LoginPage.jsx | 47 + frontend/src/pages/ModeSelectPage.jsx | 24 + frontend/src/pages/QuizPage.jsx | 163 + frontend/src/pages/ResultPage.jsx | 68 + frontend/tailwind.config.js | 10 + frontend/vite.config.js | 8 + node_modules/.package-lock.json | 858 ++ node_modules/accepts/HISTORY.md | 250 + node_modules/accepts/LICENSE | 23 + node_modules/accepts/README.md | 140 + node_modules/accepts/index.js | 238 + node_modules/accepts/package.json | 47 + node_modules/body-parser/HISTORY.md | 731 ++ node_modules/body-parser/LICENSE | 23 + node_modules/body-parser/README.md | 491 + node_modules/body-parser/index.js | 80 + node_modules/body-parser/lib/read.js | 210 + node_modules/body-parser/lib/types/json.js | 206 + node_modules/body-parser/lib/types/raw.js | 75 + node_modules/body-parser/lib/types/text.js | 80 + .../body-parser/lib/types/urlencoded.js | 177 + node_modules/body-parser/lib/utils.js | 83 + node_modules/body-parser/package.json | 49 + node_modules/bytes/History.md | 97 + node_modules/bytes/LICENSE | 23 + node_modules/bytes/Readme.md | 152 + node_modules/bytes/index.js | 170 + node_modules/bytes/package.json | 42 + .../call-bind-apply-helpers/.eslintrc | 17 + .../.github/FUNDING.yml | 12 + node_modules/call-bind-apply-helpers/.nycrc | 9 + .../call-bind-apply-helpers/CHANGELOG.md | 30 + node_modules/call-bind-apply-helpers/LICENSE | 21 + .../call-bind-apply-helpers/README.md | 62 + .../call-bind-apply-helpers/actualApply.d.ts | 1 + .../call-bind-apply-helpers/actualApply.js | 10 + .../call-bind-apply-helpers/applyBind.d.ts | 19 + .../call-bind-apply-helpers/applyBind.js | 10 + .../functionApply.d.ts | 1 + .../call-bind-apply-helpers/functionApply.js | 4 + .../call-bind-apply-helpers/functionCall.d.ts | 1 + .../call-bind-apply-helpers/functionCall.js | 4 + .../call-bind-apply-helpers/index.d.ts | 64 + node_modules/call-bind-apply-helpers/index.js | 15 + .../call-bind-apply-helpers/package.json | 85 + .../call-bind-apply-helpers/reflectApply.d.ts | 3 + .../call-bind-apply-helpers/reflectApply.js | 4 + .../call-bind-apply-helpers/test/index.js | 63 + .../call-bind-apply-helpers/tsconfig.json | 9 + node_modules/call-bound/.eslintrc | 13 + node_modules/call-bound/.github/FUNDING.yml | 12 + node_modules/call-bound/.nycrc | 9 + node_modules/call-bound/CHANGELOG.md | 42 + node_modules/call-bound/LICENSE | 21 + node_modules/call-bound/README.md | 53 + node_modules/call-bound/index.d.ts | 94 + node_modules/call-bound/index.js | 19 + node_modules/call-bound/package.json | 99 + node_modules/call-bound/test/index.js | 61 + node_modules/call-bound/tsconfig.json | 10 + node_modules/content-disposition/HISTORY.md | 66 + node_modules/content-disposition/LICENSE | 22 + node_modules/content-disposition/README.md | 142 + node_modules/content-disposition/index.js | 459 + node_modules/content-disposition/package.json | 44 + node_modules/content-type/HISTORY.md | 29 + node_modules/content-type/LICENSE | 22 + node_modules/content-type/README.md | 94 + node_modules/content-type/index.js | 225 + node_modules/content-type/package.json | 42 + node_modules/cookie-parser/HISTORY.md | 124 + node_modules/cookie-parser/LICENSE | 23 + node_modules/cookie-parser/README.md | 119 + node_modules/cookie-parser/index.js | 182 + node_modules/cookie-parser/package.json | 45 + node_modules/cookie-signature/.npmignore | 4 + node_modules/cookie-signature/History.md | 38 + node_modules/cookie-signature/Readme.md | 42 + node_modules/cookie-signature/index.js | 51 + node_modules/cookie-signature/package.json | 18 + node_modules/cookie/LICENSE | 24 + node_modules/cookie/README.md | 317 + node_modules/cookie/SECURITY.md | 25 + node_modules/cookie/index.js | 335 + node_modules/cookie/package.json | 44 + node_modules/cors/CONTRIBUTING.md | 33 + node_modules/cors/HISTORY.md | 58 + node_modules/cors/LICENSE | 22 + node_modules/cors/README.md | 243 + node_modules/cors/lib/index.js | 238 + node_modules/cors/package.json | 41 + node_modules/debug/LICENSE | 20 + node_modules/debug/README.md | 481 + node_modules/debug/package.json | 64 + node_modules/debug/src/browser.js | 272 + node_modules/debug/src/common.js | 292 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/node.js | 263 + node_modules/depd/History.md | 103 + node_modules/depd/LICENSE | 22 + node_modules/depd/Readme.md | 280 + node_modules/depd/index.js | 538 + node_modules/depd/lib/browser/index.js | 77 + node_modules/depd/package.json | 45 + node_modules/dunder-proto/.eslintrc | 5 + node_modules/dunder-proto/.github/FUNDING.yml | 12 + node_modules/dunder-proto/.nycrc | 13 + node_modules/dunder-proto/CHANGELOG.md | 24 + node_modules/dunder-proto/LICENSE | 21 + node_modules/dunder-proto/README.md | 54 + node_modules/dunder-proto/get.d.ts | 5 + node_modules/dunder-proto/get.js | 30 + node_modules/dunder-proto/package.json | 76 + node_modules/dunder-proto/set.d.ts | 5 + node_modules/dunder-proto/set.js | 35 + node_modules/dunder-proto/test/get.js | 34 + node_modules/dunder-proto/test/index.js | 4 + node_modules/dunder-proto/test/set.js | 50 + node_modules/dunder-proto/tsconfig.json | 9 + node_modules/ee-first/LICENSE | 22 + node_modules/ee-first/README.md | 80 + node_modules/ee-first/index.js | 95 + node_modules/ee-first/package.json | 29 + node_modules/encodeurl/LICENSE | 22 + node_modules/encodeurl/README.md | 109 + node_modules/encodeurl/index.js | 60 + node_modules/encodeurl/package.json | 40 + node_modules/es-define-property/.eslintrc | 13 + .../es-define-property/.github/FUNDING.yml | 12 + node_modules/es-define-property/.nycrc | 9 + node_modules/es-define-property/CHANGELOG.md | 29 + node_modules/es-define-property/LICENSE | 21 + node_modules/es-define-property/README.md | 49 + node_modules/es-define-property/index.d.ts | 3 + node_modules/es-define-property/index.js | 14 + node_modules/es-define-property/package.json | 81 + node_modules/es-define-property/test/index.js | 56 + node_modules/es-define-property/tsconfig.json | 10 + node_modules/es-errors/.eslintrc | 5 + node_modules/es-errors/.github/FUNDING.yml | 12 + node_modules/es-errors/CHANGELOG.md | 40 + node_modules/es-errors/LICENSE | 21 + node_modules/es-errors/README.md | 55 + node_modules/es-errors/eval.d.ts | 3 + node_modules/es-errors/eval.js | 4 + node_modules/es-errors/index.d.ts | 3 + node_modules/es-errors/index.js | 4 + node_modules/es-errors/package.json | 80 + node_modules/es-errors/range.d.ts | 3 + node_modules/es-errors/range.js | 4 + node_modules/es-errors/ref.d.ts | 3 + node_modules/es-errors/ref.js | 4 + node_modules/es-errors/syntax.d.ts | 3 + node_modules/es-errors/syntax.js | 4 + node_modules/es-errors/test/index.js | 19 + node_modules/es-errors/tsconfig.json | 49 + node_modules/es-errors/type.d.ts | 3 + node_modules/es-errors/type.js | 4 + node_modules/es-errors/uri.d.ts | 3 + node_modules/es-errors/uri.js | 4 + node_modules/es-object-atoms/.eslintrc | 16 + .../es-object-atoms/.github/FUNDING.yml | 12 + node_modules/es-object-atoms/CHANGELOG.md | 37 + node_modules/es-object-atoms/LICENSE | 21 + node_modules/es-object-atoms/README.md | 63 + .../RequireObjectCoercible.d.ts | 3 + .../es-object-atoms/RequireObjectCoercible.js | 11 + node_modules/es-object-atoms/ToObject.d.ts | 7 + node_modules/es-object-atoms/ToObject.js | 10 + node_modules/es-object-atoms/index.d.ts | 3 + node_modules/es-object-atoms/index.js | 4 + node_modules/es-object-atoms/isObject.d.ts | 3 + node_modules/es-object-atoms/isObject.js | 6 + node_modules/es-object-atoms/package.json | 80 + node_modules/es-object-atoms/test/index.js | 38 + node_modules/es-object-atoms/tsconfig.json | 6 + node_modules/escape-html/LICENSE | 24 + node_modules/escape-html/Readme.md | 43 + node_modules/escape-html/index.js | 78 + node_modules/escape-html/package.json | 24 + node_modules/etag/HISTORY.md | 83 + node_modules/etag/LICENSE | 22 + node_modules/etag/README.md | 159 + node_modules/etag/index.js | 131 + node_modules/etag/package.json | 47 + node_modules/express/History.md | 3858 +++++++ node_modules/express/LICENSE | 24 + node_modules/express/Readme.md | 266 + node_modules/express/index.js | 11 + node_modules/express/lib/application.js | 631 ++ node_modules/express/lib/express.js | 81 + node_modules/express/lib/request.js | 515 + node_modules/express/lib/response.js | 1039 ++ node_modules/express/lib/utils.js | 269 + node_modules/express/lib/view.js | 205 + .../node_modules/cookie-signature/History.md | 70 + .../node_modules/cookie-signature/LICENSE | 22 + .../node_modules/cookie-signature/Readme.md | 23 + .../node_modules/cookie-signature/index.js | 47 + .../cookie-signature/package.json | 24 + node_modules/express/package.json | 98 + node_modules/finalhandler/HISTORY.md | 233 + node_modules/finalhandler/LICENSE | 22 + node_modules/finalhandler/README.md | 147 + node_modules/finalhandler/index.js | 293 + node_modules/finalhandler/package.json | 43 + node_modules/forwarded/HISTORY.md | 21 + node_modules/forwarded/LICENSE | 22 + node_modules/forwarded/README.md | 57 + node_modules/forwarded/index.js | 90 + node_modules/forwarded/package.json | 45 + node_modules/fresh/HISTORY.md | 80 + node_modules/fresh/LICENSE | 23 + node_modules/fresh/README.md | 117 + node_modules/fresh/index.js | 136 + node_modules/fresh/package.json | 46 + node_modules/function-bind/.eslintrc | 21 + .../function-bind/.github/FUNDING.yml | 12 + .../function-bind/.github/SECURITY.md | 3 + node_modules/function-bind/.nycrc | 13 + node_modules/function-bind/CHANGELOG.md | 136 + node_modules/function-bind/LICENSE | 20 + node_modules/function-bind/README.md | 46 + node_modules/function-bind/implementation.js | 84 + node_modules/function-bind/index.js | 5 + node_modules/function-bind/package.json | 87 + node_modules/function-bind/test/.eslintrc | 9 + node_modules/function-bind/test/index.js | 252 + node_modules/get-intrinsic/.eslintrc | 42 + .../get-intrinsic/.github/FUNDING.yml | 12 + node_modules/get-intrinsic/.nycrc | 9 + node_modules/get-intrinsic/CHANGELOG.md | 186 + node_modules/get-intrinsic/LICENSE | 21 + node_modules/get-intrinsic/README.md | 71 + node_modules/get-intrinsic/index.js | 378 + node_modules/get-intrinsic/package.json | 97 + .../get-intrinsic/test/GetIntrinsic.js | 274 + node_modules/get-proto/.eslintrc | 10 + node_modules/get-proto/.github/FUNDING.yml | 12 + node_modules/get-proto/.nycrc | 9 + node_modules/get-proto/CHANGELOG.md | 21 + node_modules/get-proto/LICENSE | 21 + .../get-proto/Object.getPrototypeOf.d.ts | 5 + .../get-proto/Object.getPrototypeOf.js | 6 + node_modules/get-proto/README.md | 50 + .../get-proto/Reflect.getPrototypeOf.d.ts | 3 + .../get-proto/Reflect.getPrototypeOf.js | 4 + node_modules/get-proto/index.d.ts | 5 + node_modules/get-proto/index.js | 27 + node_modules/get-proto/package.json | 81 + node_modules/get-proto/test/index.js | 68 + node_modules/get-proto/tsconfig.json | 9 + node_modules/gopd/.eslintrc | 16 + node_modules/gopd/.github/FUNDING.yml | 12 + node_modules/gopd/CHANGELOG.md | 45 + node_modules/gopd/LICENSE | 21 + node_modules/gopd/README.md | 40 + node_modules/gopd/gOPD.d.ts | 1 + node_modules/gopd/gOPD.js | 4 + node_modules/gopd/index.d.ts | 5 + node_modules/gopd/index.js | 15 + node_modules/gopd/package.json | 77 + node_modules/gopd/test/index.js | 36 + node_modules/gopd/tsconfig.json | 9 + node_modules/has-symbols/.eslintrc | 11 + node_modules/has-symbols/.github/FUNDING.yml | 12 + node_modules/has-symbols/.nycrc | 9 + node_modules/has-symbols/CHANGELOG.md | 91 + node_modules/has-symbols/LICENSE | 21 + node_modules/has-symbols/README.md | 46 + node_modules/has-symbols/index.d.ts | 3 + node_modules/has-symbols/index.js | 14 + node_modules/has-symbols/package.json | 111 + node_modules/has-symbols/shams.d.ts | 3 + node_modules/has-symbols/shams.js | 45 + node_modules/has-symbols/test/index.js | 22 + .../has-symbols/test/shams/core-js.js | 29 + .../test/shams/get-own-property-symbols.js | 29 + node_modules/has-symbols/test/tests.js | 58 + node_modules/has-symbols/tsconfig.json | 10 + node_modules/hasown/.eslintrc | 5 + node_modules/hasown/.github/FUNDING.yml | 12 + node_modules/hasown/.nycrc | 13 + node_modules/hasown/CHANGELOG.md | 40 + node_modules/hasown/LICENSE | 21 + node_modules/hasown/README.md | 40 + node_modules/hasown/index.d.ts | 3 + node_modules/hasown/index.js | 8 + node_modules/hasown/package.json | 92 + node_modules/hasown/tsconfig.json | 6 + node_modules/http-errors/HISTORY.md | 180 + node_modules/http-errors/LICENSE | 23 + node_modules/http-errors/README.md | 169 + node_modules/http-errors/index.js | 289 + .../node_modules/statuses/HISTORY.md | 82 + .../http-errors/node_modules/statuses/LICENSE | 23 + .../node_modules/statuses/README.md | 136 + .../node_modules/statuses/codes.json | 65 + .../node_modules/statuses/index.js | 146 + .../node_modules/statuses/package.json | 49 + node_modules/http-errors/package.json | 50 + .../iconv-lite/.github/dependabot.yml | 11 + .../iconv-lite/.idea/codeStyles/Project.xml | 47 + .../.idea/codeStyles/codeStyleConfig.xml | 5 + node_modules/iconv-lite/.idea/iconv-lite.iml | 12 + .../inspectionProfiles/Project_Default.xml | 6 + node_modules/iconv-lite/.idea/modules.xml | 8 + node_modules/iconv-lite/.idea/vcs.xml | 6 + node_modules/iconv-lite/Changelog.md | 212 + node_modules/iconv-lite/LICENSE | 21 + node_modules/iconv-lite/README.md | 130 + .../iconv-lite/encodings/dbcs-codec.js | 597 ++ .../iconv-lite/encodings/dbcs-data.js | 188 + node_modules/iconv-lite/encodings/index.js | 23 + node_modules/iconv-lite/encodings/internal.js | 198 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 179 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 56 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + node_modules/iconv-lite/encodings/utf16.js | 197 + node_modules/iconv-lite/encodings/utf32.js | 319 + node_modules/iconv-lite/encodings/utf7.js | 290 + node_modules/iconv-lite/lib/bom-handling.js | 52 + node_modules/iconv-lite/lib/index.d.ts | 41 + node_modules/iconv-lite/lib/index.js | 180 + node_modules/iconv-lite/lib/streams.js | 109 + node_modules/iconv-lite/package.json | 44 + node_modules/inherits/LICENSE | 16 + node_modules/inherits/README.md | 42 + node_modules/inherits/inherits.js | 9 + node_modules/inherits/inherits_browser.js | 27 + node_modules/inherits/package.json | 29 + node_modules/ipaddr.js/LICENSE | 19 + node_modules/ipaddr.js/README.md | 233 + node_modules/ipaddr.js/ipaddr.min.js | 1 + node_modules/ipaddr.js/lib/ipaddr.js | 673 ++ node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 + node_modules/ipaddr.js/package.json | 35 + node_modules/is-promise/LICENSE | 19 + node_modules/is-promise/index.d.ts | 2 + node_modules/is-promise/index.js | 6 + node_modules/is-promise/index.mjs | 3 + node_modules/is-promise/package.json | 30 + node_modules/is-promise/readme.md | 33 + node_modules/math-intrinsics/.eslintrc | 16 + .../math-intrinsics/.github/FUNDING.yml | 12 + node_modules/math-intrinsics/CHANGELOG.md | 24 + node_modules/math-intrinsics/LICENSE | 21 + node_modules/math-intrinsics/README.md | 50 + node_modules/math-intrinsics/abs.d.ts | 1 + node_modules/math-intrinsics/abs.js | 4 + .../constants/maxArrayLength.d.ts | 3 + .../constants/maxArrayLength.js | 4 + .../constants/maxSafeInteger.d.ts | 3 + .../constants/maxSafeInteger.js | 5 + .../math-intrinsics/constants/maxValue.d.ts | 3 + .../math-intrinsics/constants/maxValue.js | 5 + node_modules/math-intrinsics/floor.d.ts | 1 + node_modules/math-intrinsics/floor.js | 4 + node_modules/math-intrinsics/isFinite.d.ts | 3 + node_modules/math-intrinsics/isFinite.js | 12 + node_modules/math-intrinsics/isInteger.d.ts | 3 + node_modules/math-intrinsics/isInteger.js | 16 + node_modules/math-intrinsics/isNaN.d.ts | 1 + node_modules/math-intrinsics/isNaN.js | 6 + .../math-intrinsics/isNegativeZero.d.ts | 3 + .../math-intrinsics/isNegativeZero.js | 6 + node_modules/math-intrinsics/max.d.ts | 1 + node_modules/math-intrinsics/max.js | 4 + node_modules/math-intrinsics/min.d.ts | 1 + node_modules/math-intrinsics/min.js | 4 + node_modules/math-intrinsics/mod.d.ts | 3 + node_modules/math-intrinsics/mod.js | 9 + node_modules/math-intrinsics/package.json | 86 + node_modules/math-intrinsics/pow.d.ts | 1 + node_modules/math-intrinsics/pow.js | 4 + node_modules/math-intrinsics/round.d.ts | 1 + node_modules/math-intrinsics/round.js | 4 + node_modules/math-intrinsics/sign.d.ts | 3 + node_modules/math-intrinsics/sign.js | 11 + node_modules/math-intrinsics/test/index.js | 192 + node_modules/math-intrinsics/tsconfig.json | 3 + node_modules/media-typer/HISTORY.md | 50 + node_modules/media-typer/LICENSE | 22 + node_modules/media-typer/README.md | 93 + node_modules/media-typer/index.js | 143 + node_modules/media-typer/package.json | 33 + node_modules/merge-descriptors/index.d.ts | 11 + node_modules/merge-descriptors/index.js | 26 + node_modules/merge-descriptors/license | 11 + node_modules/merge-descriptors/package.json | 50 + node_modules/merge-descriptors/readme.md | 55 + node_modules/mime-db/HISTORY.md | 541 + node_modules/mime-db/LICENSE | 23 + node_modules/mime-db/README.md | 109 + node_modules/mime-db/db.json | 9342 +++++++++++++++++ node_modules/mime-db/index.js | 12 + node_modules/mime-db/package.json | 56 + node_modules/mime-types/HISTORY.md | 421 + node_modules/mime-types/LICENSE | 23 + node_modules/mime-types/README.md | 126 + node_modules/mime-types/index.js | 211 + node_modules/mime-types/mimeScore.js | 52 + node_modules/mime-types/package.json | 45 + node_modules/ms/index.js | 162 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 38 + node_modules/ms/readme.md | 59 + node_modules/negotiator/HISTORY.md | 114 + node_modules/negotiator/LICENSE | 24 + node_modules/negotiator/README.md | 212 + node_modules/negotiator/index.js | 83 + node_modules/negotiator/lib/charset.js | 169 + node_modules/negotiator/lib/encoding.js | 205 + node_modules/negotiator/lib/language.js | 179 + node_modules/negotiator/lib/mediaType.js | 294 + node_modules/negotiator/package.json | 43 + node_modules/object-assign/index.js | 90 + node_modules/object-assign/license | 21 + node_modules/object-assign/package.json | 42 + node_modules/object-assign/readme.md | 61 + node_modules/object-inspect/.eslintrc | 53 + .../object-inspect/.github/FUNDING.yml | 12 + node_modules/object-inspect/.nycrc | 13 + node_modules/object-inspect/CHANGELOG.md | 424 + node_modules/object-inspect/LICENSE | 21 + node_modules/object-inspect/example/all.js | 23 + .../object-inspect/example/circular.js | 6 + node_modules/object-inspect/example/fn.js | 5 + .../object-inspect/example/inspect.js | 10 + node_modules/object-inspect/index.js | 544 + .../object-inspect/package-support.json | 20 + node_modules/object-inspect/package.json | 105 + node_modules/object-inspect/readme.markdown | 84 + node_modules/object-inspect/test-core-js.js | 26 + node_modules/object-inspect/test/bigint.js | 58 + .../object-inspect/test/browser/dom.js | 15 + node_modules/object-inspect/test/circular.js | 16 + node_modules/object-inspect/test/deep.js | 12 + node_modules/object-inspect/test/element.js | 53 + node_modules/object-inspect/test/err.js | 48 + node_modules/object-inspect/test/fakes.js | 29 + node_modules/object-inspect/test/fn.js | 76 + node_modules/object-inspect/test/global.js | 17 + node_modules/object-inspect/test/has.js | 15 + node_modules/object-inspect/test/holes.js | 15 + .../object-inspect/test/indent-option.js | 271 + node_modules/object-inspect/test/inspect.js | 139 + node_modules/object-inspect/test/lowbyte.js | 12 + node_modules/object-inspect/test/number.js | 58 + .../object-inspect/test/quoteStyle.js | 26 + .../object-inspect/test/toStringTag.js | 40 + node_modules/object-inspect/test/undef.js | 12 + node_modules/object-inspect/test/values.js | 261 + node_modules/object-inspect/util.inspect.js | 1 + node_modules/on-finished/HISTORY.md | 98 + node_modules/on-finished/LICENSE | 23 + node_modules/on-finished/README.md | 162 + node_modules/on-finished/index.js | 234 + node_modules/on-finished/package.json | 39 + node_modules/once/LICENSE | 15 + node_modules/once/README.md | 79 + node_modules/once/once.js | 42 + node_modules/once/package.json | 33 + node_modules/parseurl/HISTORY.md | 58 + node_modules/parseurl/LICENSE | 24 + node_modules/parseurl/README.md | 133 + node_modules/parseurl/index.js | 158 + node_modules/parseurl/package.json | 40 + node_modules/path-to-regexp/LICENSE | 21 + node_modules/path-to-regexp/Readme.md | 216 + node_modules/path-to-regexp/dist/index.d.ts | 136 + node_modules/path-to-regexp/dist/index.js | 403 + node_modules/path-to-regexp/dist/index.js.map | 1 + node_modules/path-to-regexp/package.json | 62 + node_modules/proxy-addr/HISTORY.md | 161 + node_modules/proxy-addr/LICENSE | 22 + node_modules/proxy-addr/README.md | 139 + node_modules/proxy-addr/index.js | 327 + node_modules/proxy-addr/package.json | 47 + node_modules/qs/.editorconfig | 46 + node_modules/qs/.eslintrc | 39 + node_modules/qs/.github/FUNDING.yml | 12 + node_modules/qs/.nycrc | 13 + node_modules/qs/CHANGELOG.md | 622 ++ node_modules/qs/LICENSE.md | 29 + node_modules/qs/README.md | 733 ++ node_modules/qs/dist/qs.js | 141 + node_modules/qs/lib/formats.js | 23 + node_modules/qs/lib/index.js | 11 + node_modules/qs/lib/parse.js | 328 + node_modules/qs/lib/stringify.js | 356 + node_modules/qs/lib/utils.js | 268 + node_modules/qs/package.json | 93 + node_modules/qs/test/empty-keys-cases.js | 267 + node_modules/qs/test/parse.js | 1276 +++ node_modules/qs/test/stringify.js | 1306 +++ node_modules/qs/test/utils.js | 262 + node_modules/range-parser/HISTORY.md | 56 + node_modules/range-parser/LICENSE | 23 + node_modules/range-parser/README.md | 84 + node_modules/range-parser/index.js | 162 + node_modules/range-parser/package.json | 44 + node_modules/raw-body/HISTORY.md | 325 + node_modules/raw-body/LICENSE | 22 + node_modules/raw-body/README.md | 223 + node_modules/raw-body/SECURITY.md | 24 + node_modules/raw-body/index.d.ts | 85 + node_modules/raw-body/index.js | 336 + node_modules/raw-body/package.json | 50 + node_modules/router/HISTORY.md | 228 + node_modules/router/LICENSE | 23 + node_modules/router/README.md | 416 + node_modules/router/index.js | 748 ++ node_modules/router/lib/layer.js | 247 + node_modules/router/lib/route.js | 242 + node_modules/router/package.json | 44 + node_modules/safe-buffer/LICENSE | 21 + node_modules/safe-buffer/README.md | 584 ++ node_modules/safe-buffer/index.d.ts | 187 + node_modules/safe-buffer/index.js | 65 + node_modules/safe-buffer/package.json | 51 + node_modules/safer-buffer/LICENSE | 21 + node_modules/safer-buffer/Porting-Buffer.md | 268 + node_modules/safer-buffer/Readme.md | 156 + node_modules/safer-buffer/dangerous.js | 58 + node_modules/safer-buffer/package.json | 34 + node_modules/safer-buffer/safer.js | 77 + node_modules/safer-buffer/tests.js | 406 + node_modules/send/HISTORY.md | 580 + node_modules/send/LICENSE | 23 + node_modules/send/README.md | 317 + node_modules/send/index.js | 997 ++ node_modules/send/package.json | 60 + node_modules/serve-static/HISTORY.md | 516 + node_modules/serve-static/LICENSE | 25 + node_modules/serve-static/README.md | 253 + node_modules/serve-static/index.js | 208 + node_modules/serve-static/package.json | 41 + node_modules/setprototypeof/LICENSE | 13 + node_modules/setprototypeof/README.md | 31 + node_modules/setprototypeof/index.d.ts | 2 + node_modules/setprototypeof/index.js | 17 + node_modules/setprototypeof/package.json | 38 + node_modules/setprototypeof/test/index.js | 24 + node_modules/side-channel-list/.editorconfig | 9 + node_modules/side-channel-list/.eslintrc | 11 + .../side-channel-list/.github/FUNDING.yml | 12 + node_modules/side-channel-list/.nycrc | 13 + node_modules/side-channel-list/CHANGELOG.md | 15 + node_modules/side-channel-list/LICENSE | 21 + node_modules/side-channel-list/README.md | 62 + node_modules/side-channel-list/index.d.ts | 13 + node_modules/side-channel-list/index.js | 113 + node_modules/side-channel-list/list.d.ts | 14 + node_modules/side-channel-list/package.json | 77 + node_modules/side-channel-list/test/index.js | 104 + node_modules/side-channel-list/tsconfig.json | 9 + node_modules/side-channel-map/.editorconfig | 9 + node_modules/side-channel-map/.eslintrc | 11 + .../side-channel-map/.github/FUNDING.yml | 12 + node_modules/side-channel-map/.nycrc | 13 + node_modules/side-channel-map/CHANGELOG.md | 22 + node_modules/side-channel-map/LICENSE | 21 + node_modules/side-channel-map/README.md | 62 + node_modules/side-channel-map/index.d.ts | 15 + node_modules/side-channel-map/index.js | 68 + node_modules/side-channel-map/package.json | 80 + node_modules/side-channel-map/test/index.js | 114 + node_modules/side-channel-map/tsconfig.json | 9 + .../side-channel-weakmap/.editorconfig | 9 + node_modules/side-channel-weakmap/.eslintrc | 12 + .../side-channel-weakmap/.github/FUNDING.yml | 12 + node_modules/side-channel-weakmap/.nycrc | 13 + .../side-channel-weakmap/CHANGELOG.md | 28 + node_modules/side-channel-weakmap/LICENSE | 21 + node_modules/side-channel-weakmap/README.md | 62 + node_modules/side-channel-weakmap/index.d.ts | 15 + node_modules/side-channel-weakmap/index.js | 84 + .../side-channel-weakmap/package.json | 87 + .../side-channel-weakmap/test/index.js | 114 + .../side-channel-weakmap/tsconfig.json | 9 + node_modules/side-channel/.editorconfig | 9 + node_modules/side-channel/.eslintrc | 12 + node_modules/side-channel/.github/FUNDING.yml | 12 + node_modules/side-channel/.nycrc | 13 + node_modules/side-channel/CHANGELOG.md | 110 + node_modules/side-channel/LICENSE | 21 + node_modules/side-channel/README.md | 61 + node_modules/side-channel/index.d.ts | 14 + node_modules/side-channel/index.js | 43 + node_modules/side-channel/package.json | 85 + node_modules/side-channel/test/index.js | 104 + node_modules/side-channel/tsconfig.json | 9 + node_modules/statuses/HISTORY.md | 87 + node_modules/statuses/LICENSE | 23 + node_modules/statuses/README.md | 139 + node_modules/statuses/codes.json | 65 + node_modules/statuses/index.js | 146 + node_modules/statuses/package.json | 49 + node_modules/toidentifier/HISTORY.md | 9 + node_modules/toidentifier/LICENSE | 21 + node_modules/toidentifier/README.md | 61 + node_modules/toidentifier/index.js | 32 + node_modules/toidentifier/package.json | 38 + node_modules/type-is/HISTORY.md | 292 + node_modules/type-is/LICENSE | 23 + node_modules/type-is/README.md | 198 + node_modules/type-is/index.js | 250 + node_modules/type-is/package.json | 47 + node_modules/unpipe/HISTORY.md | 4 + node_modules/unpipe/LICENSE | 22 + node_modules/unpipe/README.md | 43 + node_modules/unpipe/index.js | 69 + node_modules/unpipe/package.json | 27 + node_modules/vary/HISTORY.md | 39 + node_modules/vary/LICENSE | 22 + node_modules/vary/README.md | 101 + node_modules/vary/index.js | 149 + node_modules/vary/package.json | 43 + node_modules/wrappy/LICENSE | 15 + node_modules/wrappy/README.md | 36 + node_modules/wrappy/package.json | 29 + node_modules/wrappy/wrappy.js | 33 + package-lock.json | 868 ++ 655 files changed, 86346 insertions(+) create mode 100644 .DS_Store create mode 100644 backend/.DS_Store create mode 100644 backend/Dockerfile create mode 100644 backend/c_condensed.json create mode 100755 backend/d_condensed.json create mode 100644 backend/package.json create mode 100644 backend/server.js create mode 100644 docker-compose.yml create mode 100644 frontend/.gitignore create mode 100644 frontend/Dockerfile create mode 100644 frontend/README.md create mode 100644 frontend/eslint.config.js create mode 100644 frontend/index.html create mode 100644 frontend/nginx.conf create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/vite.svg create mode 100644 frontend/src/App.css create mode 100644 frontend/src/App.jsx create mode 100644 frontend/src/assets/react.svg create mode 100644 frontend/src/components/QuestionCard.jsx create mode 100644 frontend/src/index.css create mode 100644 frontend/src/main.jsx create mode 100644 frontend/src/pages/LoginPage.jsx create mode 100644 frontend/src/pages/ModeSelectPage.jsx create mode 100644 frontend/src/pages/QuizPage.jsx create mode 100644 frontend/src/pages/ResultPage.jsx create mode 100644 frontend/tailwind.config.js create mode 100644 frontend/vite.config.js create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/accepts/HISTORY.md create mode 100644 node_modules/accepts/LICENSE create mode 100644 node_modules/accepts/README.md create mode 100644 node_modules/accepts/index.js create mode 100644 node_modules/accepts/package.json create mode 100644 node_modules/body-parser/HISTORY.md create mode 100644 node_modules/body-parser/LICENSE create mode 100644 node_modules/body-parser/README.md create mode 100644 node_modules/body-parser/index.js create mode 100644 node_modules/body-parser/lib/read.js create mode 100644 node_modules/body-parser/lib/types/json.js create mode 100644 node_modules/body-parser/lib/types/raw.js create mode 100644 node_modules/body-parser/lib/types/text.js create mode 100644 node_modules/body-parser/lib/types/urlencoded.js create mode 100644 node_modules/body-parser/lib/utils.js create mode 100644 node_modules/body-parser/package.json create mode 100644 node_modules/bytes/History.md create mode 100644 node_modules/bytes/LICENSE create mode 100644 node_modules/bytes/Readme.md create mode 100644 node_modules/bytes/index.js create mode 100644 node_modules/bytes/package.json create mode 100644 node_modules/call-bind-apply-helpers/.eslintrc create mode 100644 node_modules/call-bind-apply-helpers/.github/FUNDING.yml create mode 100644 node_modules/call-bind-apply-helpers/.nycrc create mode 100644 node_modules/call-bind-apply-helpers/CHANGELOG.md create mode 100644 node_modules/call-bind-apply-helpers/LICENSE create mode 100644 node_modules/call-bind-apply-helpers/README.md create mode 100644 node_modules/call-bind-apply-helpers/actualApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/actualApply.js create mode 100644 node_modules/call-bind-apply-helpers/applyBind.d.ts create mode 100644 node_modules/call-bind-apply-helpers/applyBind.js create mode 100644 node_modules/call-bind-apply-helpers/functionApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/functionApply.js create mode 100644 node_modules/call-bind-apply-helpers/functionCall.d.ts create mode 100644 node_modules/call-bind-apply-helpers/functionCall.js create mode 100644 node_modules/call-bind-apply-helpers/index.d.ts create mode 100644 node_modules/call-bind-apply-helpers/index.js create mode 100644 node_modules/call-bind-apply-helpers/package.json create mode 100644 node_modules/call-bind-apply-helpers/reflectApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/reflectApply.js create mode 100644 node_modules/call-bind-apply-helpers/test/index.js create mode 100644 node_modules/call-bind-apply-helpers/tsconfig.json create mode 100644 node_modules/call-bound/.eslintrc create mode 100644 node_modules/call-bound/.github/FUNDING.yml create mode 100644 node_modules/call-bound/.nycrc create mode 100644 node_modules/call-bound/CHANGELOG.md create mode 100644 node_modules/call-bound/LICENSE create mode 100644 node_modules/call-bound/README.md create mode 100644 node_modules/call-bound/index.d.ts create mode 100644 node_modules/call-bound/index.js create mode 100644 node_modules/call-bound/package.json create mode 100644 node_modules/call-bound/test/index.js create mode 100644 node_modules/call-bound/tsconfig.json create mode 100644 node_modules/content-disposition/HISTORY.md create mode 100644 node_modules/content-disposition/LICENSE create mode 100644 node_modules/content-disposition/README.md create mode 100644 node_modules/content-disposition/index.js create mode 100644 node_modules/content-disposition/package.json create mode 100644 node_modules/content-type/HISTORY.md create mode 100644 node_modules/content-type/LICENSE create mode 100644 node_modules/content-type/README.md create mode 100644 node_modules/content-type/index.js create mode 100644 node_modules/content-type/package.json create mode 100644 node_modules/cookie-parser/HISTORY.md create mode 100644 node_modules/cookie-parser/LICENSE create mode 100644 node_modules/cookie-parser/README.md create mode 100644 node_modules/cookie-parser/index.js create mode 100644 node_modules/cookie-parser/package.json create mode 100644 node_modules/cookie-signature/.npmignore create mode 100644 node_modules/cookie-signature/History.md create mode 100644 node_modules/cookie-signature/Readme.md create mode 100644 node_modules/cookie-signature/index.js create mode 100644 node_modules/cookie-signature/package.json create mode 100644 node_modules/cookie/LICENSE create mode 100644 node_modules/cookie/README.md create mode 100644 node_modules/cookie/SECURITY.md create mode 100644 node_modules/cookie/index.js create mode 100644 node_modules/cookie/package.json create mode 100644 node_modules/cors/CONTRIBUTING.md create mode 100644 node_modules/cors/HISTORY.md create mode 100644 node_modules/cors/LICENSE create mode 100644 node_modules/cors/README.md create mode 100644 node_modules/cors/lib/index.js create mode 100644 node_modules/cors/package.json create mode 100644 node_modules/debug/LICENSE create mode 100644 node_modules/debug/README.md create mode 100644 node_modules/debug/package.json create mode 100644 node_modules/debug/src/browser.js create mode 100644 node_modules/debug/src/common.js create mode 100644 node_modules/debug/src/index.js create mode 100644 node_modules/debug/src/node.js create mode 100644 node_modules/depd/History.md create mode 100644 node_modules/depd/LICENSE create mode 100644 node_modules/depd/Readme.md create mode 100644 node_modules/depd/index.js create mode 100644 node_modules/depd/lib/browser/index.js create mode 100644 node_modules/depd/package.json create mode 100644 node_modules/dunder-proto/.eslintrc create mode 100644 node_modules/dunder-proto/.github/FUNDING.yml create mode 100644 node_modules/dunder-proto/.nycrc create mode 100644 node_modules/dunder-proto/CHANGELOG.md create mode 100644 node_modules/dunder-proto/LICENSE create mode 100644 node_modules/dunder-proto/README.md create mode 100644 node_modules/dunder-proto/get.d.ts create mode 100644 node_modules/dunder-proto/get.js create mode 100644 node_modules/dunder-proto/package.json create mode 100644 node_modules/dunder-proto/set.d.ts create mode 100644 node_modules/dunder-proto/set.js create mode 100644 node_modules/dunder-proto/test/get.js create mode 100644 node_modules/dunder-proto/test/index.js create mode 100644 node_modules/dunder-proto/test/set.js create mode 100644 node_modules/dunder-proto/tsconfig.json create mode 100644 node_modules/ee-first/LICENSE create mode 100644 node_modules/ee-first/README.md create mode 100644 node_modules/ee-first/index.js create mode 100644 node_modules/ee-first/package.json create mode 100644 node_modules/encodeurl/LICENSE create mode 100644 node_modules/encodeurl/README.md create mode 100644 node_modules/encodeurl/index.js create mode 100644 node_modules/encodeurl/package.json create mode 100644 node_modules/es-define-property/.eslintrc create mode 100644 node_modules/es-define-property/.github/FUNDING.yml create mode 100644 node_modules/es-define-property/.nycrc create mode 100644 node_modules/es-define-property/CHANGELOG.md create mode 100644 node_modules/es-define-property/LICENSE create mode 100644 node_modules/es-define-property/README.md create mode 100644 node_modules/es-define-property/index.d.ts create mode 100644 node_modules/es-define-property/index.js create mode 100644 node_modules/es-define-property/package.json create mode 100644 node_modules/es-define-property/test/index.js create mode 100644 node_modules/es-define-property/tsconfig.json create mode 100644 node_modules/es-errors/.eslintrc create mode 100644 node_modules/es-errors/.github/FUNDING.yml create mode 100644 node_modules/es-errors/CHANGELOG.md create mode 100644 node_modules/es-errors/LICENSE create mode 100644 node_modules/es-errors/README.md create mode 100644 node_modules/es-errors/eval.d.ts create mode 100644 node_modules/es-errors/eval.js create mode 100644 node_modules/es-errors/index.d.ts create mode 100644 node_modules/es-errors/index.js create mode 100644 node_modules/es-errors/package.json create mode 100644 node_modules/es-errors/range.d.ts create mode 100644 node_modules/es-errors/range.js create mode 100644 node_modules/es-errors/ref.d.ts create mode 100644 node_modules/es-errors/ref.js create mode 100644 node_modules/es-errors/syntax.d.ts create mode 100644 node_modules/es-errors/syntax.js create mode 100644 node_modules/es-errors/test/index.js create mode 100644 node_modules/es-errors/tsconfig.json create mode 100644 node_modules/es-errors/type.d.ts create mode 100644 node_modules/es-errors/type.js create mode 100644 node_modules/es-errors/uri.d.ts create mode 100644 node_modules/es-errors/uri.js create mode 100644 node_modules/es-object-atoms/.eslintrc create mode 100644 node_modules/es-object-atoms/.github/FUNDING.yml create mode 100644 node_modules/es-object-atoms/CHANGELOG.md create mode 100644 node_modules/es-object-atoms/LICENSE create mode 100644 node_modules/es-object-atoms/README.md create mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.d.ts create mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.js create mode 100644 node_modules/es-object-atoms/ToObject.d.ts create mode 100644 node_modules/es-object-atoms/ToObject.js create mode 100644 node_modules/es-object-atoms/index.d.ts create mode 100644 node_modules/es-object-atoms/index.js create mode 100644 node_modules/es-object-atoms/isObject.d.ts create mode 100644 node_modules/es-object-atoms/isObject.js create mode 100644 node_modules/es-object-atoms/package.json create mode 100644 node_modules/es-object-atoms/test/index.js create mode 100644 node_modules/es-object-atoms/tsconfig.json create mode 100644 node_modules/escape-html/LICENSE create mode 100644 node_modules/escape-html/Readme.md create mode 100644 node_modules/escape-html/index.js create mode 100644 node_modules/escape-html/package.json create mode 100644 node_modules/etag/HISTORY.md create mode 100644 node_modules/etag/LICENSE create mode 100644 node_modules/etag/README.md create mode 100644 node_modules/etag/index.js create mode 100644 node_modules/etag/package.json create mode 100644 node_modules/express/History.md create mode 100644 node_modules/express/LICENSE create mode 100644 node_modules/express/Readme.md create mode 100644 node_modules/express/index.js create mode 100644 node_modules/express/lib/application.js create mode 100644 node_modules/express/lib/express.js create mode 100644 node_modules/express/lib/request.js create mode 100644 node_modules/express/lib/response.js create mode 100644 node_modules/express/lib/utils.js create mode 100644 node_modules/express/lib/view.js create mode 100644 node_modules/express/node_modules/cookie-signature/History.md create mode 100644 node_modules/express/node_modules/cookie-signature/LICENSE create mode 100644 node_modules/express/node_modules/cookie-signature/Readme.md create mode 100644 node_modules/express/node_modules/cookie-signature/index.js create mode 100644 node_modules/express/node_modules/cookie-signature/package.json create mode 100644 node_modules/express/package.json create mode 100644 node_modules/finalhandler/HISTORY.md create mode 100644 node_modules/finalhandler/LICENSE create mode 100644 node_modules/finalhandler/README.md create mode 100644 node_modules/finalhandler/index.js create mode 100644 node_modules/finalhandler/package.json create mode 100644 node_modules/forwarded/HISTORY.md create mode 100644 node_modules/forwarded/LICENSE create mode 100644 node_modules/forwarded/README.md create mode 100644 node_modules/forwarded/index.js create mode 100644 node_modules/forwarded/package.json create mode 100644 node_modules/fresh/HISTORY.md create mode 100644 node_modules/fresh/LICENSE create mode 100644 node_modules/fresh/README.md create mode 100644 node_modules/fresh/index.js create mode 100644 node_modules/fresh/package.json create mode 100644 node_modules/function-bind/.eslintrc create mode 100644 node_modules/function-bind/.github/FUNDING.yml create mode 100644 node_modules/function-bind/.github/SECURITY.md create mode 100644 node_modules/function-bind/.nycrc create mode 100644 node_modules/function-bind/CHANGELOG.md create mode 100644 node_modules/function-bind/LICENSE create mode 100644 node_modules/function-bind/README.md create mode 100644 node_modules/function-bind/implementation.js create mode 100644 node_modules/function-bind/index.js create mode 100644 node_modules/function-bind/package.json create mode 100644 node_modules/function-bind/test/.eslintrc create mode 100644 node_modules/function-bind/test/index.js create mode 100644 node_modules/get-intrinsic/.eslintrc create mode 100644 node_modules/get-intrinsic/.github/FUNDING.yml create mode 100644 node_modules/get-intrinsic/.nycrc create mode 100644 node_modules/get-intrinsic/CHANGELOG.md create mode 100644 node_modules/get-intrinsic/LICENSE create mode 100644 node_modules/get-intrinsic/README.md create mode 100644 node_modules/get-intrinsic/index.js create mode 100644 node_modules/get-intrinsic/package.json create mode 100644 node_modules/get-intrinsic/test/GetIntrinsic.js create mode 100644 node_modules/get-proto/.eslintrc create mode 100644 node_modules/get-proto/.github/FUNDING.yml create mode 100644 node_modules/get-proto/.nycrc create mode 100644 node_modules/get-proto/CHANGELOG.md create mode 100644 node_modules/get-proto/LICENSE create mode 100644 node_modules/get-proto/Object.getPrototypeOf.d.ts create mode 100644 node_modules/get-proto/Object.getPrototypeOf.js create mode 100644 node_modules/get-proto/README.md create mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.d.ts create mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.js create mode 100644 node_modules/get-proto/index.d.ts create mode 100644 node_modules/get-proto/index.js create mode 100644 node_modules/get-proto/package.json create mode 100644 node_modules/get-proto/test/index.js create mode 100644 node_modules/get-proto/tsconfig.json create mode 100644 node_modules/gopd/.eslintrc create mode 100644 node_modules/gopd/.github/FUNDING.yml create mode 100644 node_modules/gopd/CHANGELOG.md create mode 100644 node_modules/gopd/LICENSE create mode 100644 node_modules/gopd/README.md create mode 100644 node_modules/gopd/gOPD.d.ts create mode 100644 node_modules/gopd/gOPD.js create mode 100644 node_modules/gopd/index.d.ts create mode 100644 node_modules/gopd/index.js create mode 100644 node_modules/gopd/package.json create mode 100644 node_modules/gopd/test/index.js create mode 100644 node_modules/gopd/tsconfig.json create mode 100644 node_modules/has-symbols/.eslintrc create mode 100644 node_modules/has-symbols/.github/FUNDING.yml create mode 100644 node_modules/has-symbols/.nycrc create mode 100644 node_modules/has-symbols/CHANGELOG.md create mode 100644 node_modules/has-symbols/LICENSE create mode 100644 node_modules/has-symbols/README.md create mode 100644 node_modules/has-symbols/index.d.ts create mode 100644 node_modules/has-symbols/index.js create mode 100644 node_modules/has-symbols/package.json create mode 100644 node_modules/has-symbols/shams.d.ts create mode 100644 node_modules/has-symbols/shams.js create mode 100644 node_modules/has-symbols/test/index.js create mode 100644 node_modules/has-symbols/test/shams/core-js.js create mode 100644 node_modules/has-symbols/test/shams/get-own-property-symbols.js create mode 100644 node_modules/has-symbols/test/tests.js create mode 100644 node_modules/has-symbols/tsconfig.json create mode 100644 node_modules/hasown/.eslintrc create mode 100644 node_modules/hasown/.github/FUNDING.yml create mode 100644 node_modules/hasown/.nycrc create mode 100644 node_modules/hasown/CHANGELOG.md create mode 100644 node_modules/hasown/LICENSE create mode 100644 node_modules/hasown/README.md create mode 100644 node_modules/hasown/index.d.ts create mode 100644 node_modules/hasown/index.js create mode 100644 node_modules/hasown/package.json create mode 100644 node_modules/hasown/tsconfig.json create mode 100644 node_modules/http-errors/HISTORY.md create mode 100644 node_modules/http-errors/LICENSE create mode 100644 node_modules/http-errors/README.md create mode 100644 node_modules/http-errors/index.js create mode 100644 node_modules/http-errors/node_modules/statuses/HISTORY.md create mode 100644 node_modules/http-errors/node_modules/statuses/LICENSE create mode 100644 node_modules/http-errors/node_modules/statuses/README.md create mode 100644 node_modules/http-errors/node_modules/statuses/codes.json create mode 100644 node_modules/http-errors/node_modules/statuses/index.js create mode 100644 node_modules/http-errors/node_modules/statuses/package.json create mode 100644 node_modules/http-errors/package.json create mode 100644 node_modules/iconv-lite/.github/dependabot.yml create mode 100644 node_modules/iconv-lite/.idea/codeStyles/Project.xml create mode 100644 node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml create mode 100644 node_modules/iconv-lite/.idea/iconv-lite.iml create mode 100644 node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml create mode 100644 node_modules/iconv-lite/.idea/modules.xml create mode 100644 node_modules/iconv-lite/.idea/vcs.xml create mode 100644 node_modules/iconv-lite/Changelog.md create mode 100644 node_modules/iconv-lite/LICENSE create mode 100644 node_modules/iconv-lite/README.md create mode 100644 node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/index.js create mode 100644 node_modules/iconv-lite/encodings/internal.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 node_modules/iconv-lite/encodings/utf16.js create mode 100644 node_modules/iconv-lite/encodings/utf32.js create mode 100644 node_modules/iconv-lite/encodings/utf7.js create mode 100644 node_modules/iconv-lite/lib/bom-handling.js create mode 100644 node_modules/iconv-lite/lib/index.d.ts create mode 100644 node_modules/iconv-lite/lib/index.js create mode 100644 node_modules/iconv-lite/lib/streams.js create mode 100644 node_modules/iconv-lite/package.json create mode 100644 node_modules/inherits/LICENSE create mode 100644 node_modules/inherits/README.md create mode 100644 node_modules/inherits/inherits.js create mode 100644 node_modules/inherits/inherits_browser.js create mode 100644 node_modules/inherits/package.json create mode 100644 node_modules/ipaddr.js/LICENSE create mode 100644 node_modules/ipaddr.js/README.md create mode 100644 node_modules/ipaddr.js/ipaddr.min.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js.d.ts create mode 100644 node_modules/ipaddr.js/package.json create mode 100644 node_modules/is-promise/LICENSE create mode 100644 node_modules/is-promise/index.d.ts create mode 100644 node_modules/is-promise/index.js create mode 100644 node_modules/is-promise/index.mjs create mode 100644 node_modules/is-promise/package.json create mode 100644 node_modules/is-promise/readme.md create mode 100644 node_modules/math-intrinsics/.eslintrc create mode 100644 node_modules/math-intrinsics/.github/FUNDING.yml create mode 100644 node_modules/math-intrinsics/CHANGELOG.md create mode 100644 node_modules/math-intrinsics/LICENSE create mode 100644 node_modules/math-intrinsics/README.md create mode 100644 node_modules/math-intrinsics/abs.d.ts create mode 100644 node_modules/math-intrinsics/abs.js create mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.js create mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.js create mode 100644 node_modules/math-intrinsics/constants/maxValue.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxValue.js create mode 100644 node_modules/math-intrinsics/floor.d.ts create mode 100644 node_modules/math-intrinsics/floor.js create mode 100644 node_modules/math-intrinsics/isFinite.d.ts create mode 100644 node_modules/math-intrinsics/isFinite.js create mode 100644 node_modules/math-intrinsics/isInteger.d.ts create mode 100644 node_modules/math-intrinsics/isInteger.js create mode 100644 node_modules/math-intrinsics/isNaN.d.ts create mode 100644 node_modules/math-intrinsics/isNaN.js create mode 100644 node_modules/math-intrinsics/isNegativeZero.d.ts create mode 100644 node_modules/math-intrinsics/isNegativeZero.js create mode 100644 node_modules/math-intrinsics/max.d.ts create mode 100644 node_modules/math-intrinsics/max.js create mode 100644 node_modules/math-intrinsics/min.d.ts create mode 100644 node_modules/math-intrinsics/min.js create mode 100644 node_modules/math-intrinsics/mod.d.ts create mode 100644 node_modules/math-intrinsics/mod.js create mode 100644 node_modules/math-intrinsics/package.json create mode 100644 node_modules/math-intrinsics/pow.d.ts create mode 100644 node_modules/math-intrinsics/pow.js create mode 100644 node_modules/math-intrinsics/round.d.ts create mode 100644 node_modules/math-intrinsics/round.js create mode 100644 node_modules/math-intrinsics/sign.d.ts create mode 100644 node_modules/math-intrinsics/sign.js create mode 100644 node_modules/math-intrinsics/test/index.js create mode 100644 node_modules/math-intrinsics/tsconfig.json create mode 100644 node_modules/media-typer/HISTORY.md create mode 100644 node_modules/media-typer/LICENSE create mode 100644 node_modules/media-typer/README.md create mode 100644 node_modules/media-typer/index.js create mode 100644 node_modules/media-typer/package.json create mode 100644 node_modules/merge-descriptors/index.d.ts create mode 100644 node_modules/merge-descriptors/index.js create mode 100644 node_modules/merge-descriptors/license create mode 100644 node_modules/merge-descriptors/package.json create mode 100644 node_modules/merge-descriptors/readme.md create mode 100644 node_modules/mime-db/HISTORY.md create mode 100644 node_modules/mime-db/LICENSE create mode 100644 node_modules/mime-db/README.md create mode 100644 node_modules/mime-db/db.json create mode 100644 node_modules/mime-db/index.js create mode 100644 node_modules/mime-db/package.json create mode 100644 node_modules/mime-types/HISTORY.md create mode 100644 node_modules/mime-types/LICENSE create mode 100644 node_modules/mime-types/README.md create mode 100644 node_modules/mime-types/index.js create mode 100644 node_modules/mime-types/mimeScore.js create mode 100644 node_modules/mime-types/package.json create mode 100644 node_modules/ms/index.js create mode 100644 node_modules/ms/license.md create mode 100644 node_modules/ms/package.json create mode 100644 node_modules/ms/readme.md create mode 100644 node_modules/negotiator/HISTORY.md create mode 100644 node_modules/negotiator/LICENSE create mode 100644 node_modules/negotiator/README.md create mode 100644 node_modules/negotiator/index.js create mode 100644 node_modules/negotiator/lib/charset.js create mode 100644 node_modules/negotiator/lib/encoding.js create mode 100644 node_modules/negotiator/lib/language.js create mode 100644 node_modules/negotiator/lib/mediaType.js create mode 100644 node_modules/negotiator/package.json create mode 100644 node_modules/object-assign/index.js create mode 100644 node_modules/object-assign/license create mode 100644 node_modules/object-assign/package.json create mode 100644 node_modules/object-assign/readme.md create mode 100644 node_modules/object-inspect/.eslintrc create mode 100644 node_modules/object-inspect/.github/FUNDING.yml create mode 100644 node_modules/object-inspect/.nycrc create mode 100644 node_modules/object-inspect/CHANGELOG.md create mode 100644 node_modules/object-inspect/LICENSE create mode 100644 node_modules/object-inspect/example/all.js create mode 100644 node_modules/object-inspect/example/circular.js create mode 100644 node_modules/object-inspect/example/fn.js create mode 100644 node_modules/object-inspect/example/inspect.js create mode 100644 node_modules/object-inspect/index.js create mode 100644 node_modules/object-inspect/package-support.json create mode 100644 node_modules/object-inspect/package.json create mode 100644 node_modules/object-inspect/readme.markdown create mode 100644 node_modules/object-inspect/test-core-js.js create mode 100644 node_modules/object-inspect/test/bigint.js create mode 100644 node_modules/object-inspect/test/browser/dom.js create mode 100644 node_modules/object-inspect/test/circular.js create mode 100644 node_modules/object-inspect/test/deep.js create mode 100644 node_modules/object-inspect/test/element.js create mode 100644 node_modules/object-inspect/test/err.js create mode 100644 node_modules/object-inspect/test/fakes.js create mode 100644 node_modules/object-inspect/test/fn.js create mode 100644 node_modules/object-inspect/test/global.js create mode 100644 node_modules/object-inspect/test/has.js create mode 100644 node_modules/object-inspect/test/holes.js create mode 100644 node_modules/object-inspect/test/indent-option.js create mode 100644 node_modules/object-inspect/test/inspect.js create mode 100644 node_modules/object-inspect/test/lowbyte.js create mode 100644 node_modules/object-inspect/test/number.js create mode 100644 node_modules/object-inspect/test/quoteStyle.js create mode 100644 node_modules/object-inspect/test/toStringTag.js create mode 100644 node_modules/object-inspect/test/undef.js create mode 100644 node_modules/object-inspect/test/values.js create mode 100644 node_modules/object-inspect/util.inspect.js create mode 100644 node_modules/on-finished/HISTORY.md create mode 100644 node_modules/on-finished/LICENSE create mode 100644 node_modules/on-finished/README.md create mode 100644 node_modules/on-finished/index.js create mode 100644 node_modules/on-finished/package.json create mode 100644 node_modules/once/LICENSE create mode 100644 node_modules/once/README.md create mode 100644 node_modules/once/once.js create mode 100644 node_modules/once/package.json create mode 100644 node_modules/parseurl/HISTORY.md create mode 100644 node_modules/parseurl/LICENSE create mode 100644 node_modules/parseurl/README.md create mode 100644 node_modules/parseurl/index.js create mode 100644 node_modules/parseurl/package.json create mode 100644 node_modules/path-to-regexp/LICENSE create mode 100644 node_modules/path-to-regexp/Readme.md create mode 100644 node_modules/path-to-regexp/dist/index.d.ts create mode 100644 node_modules/path-to-regexp/dist/index.js create mode 100644 node_modules/path-to-regexp/dist/index.js.map create mode 100644 node_modules/path-to-regexp/package.json create mode 100644 node_modules/proxy-addr/HISTORY.md create mode 100644 node_modules/proxy-addr/LICENSE create mode 100644 node_modules/proxy-addr/README.md create mode 100644 node_modules/proxy-addr/index.js create mode 100644 node_modules/proxy-addr/package.json create mode 100644 node_modules/qs/.editorconfig create mode 100644 node_modules/qs/.eslintrc create mode 100644 node_modules/qs/.github/FUNDING.yml create mode 100644 node_modules/qs/.nycrc create mode 100644 node_modules/qs/CHANGELOG.md create mode 100644 node_modules/qs/LICENSE.md create mode 100644 node_modules/qs/README.md create mode 100644 node_modules/qs/dist/qs.js create mode 100644 node_modules/qs/lib/formats.js create mode 100644 node_modules/qs/lib/index.js create mode 100644 node_modules/qs/lib/parse.js create mode 100644 node_modules/qs/lib/stringify.js create mode 100644 node_modules/qs/lib/utils.js create mode 100644 node_modules/qs/package.json create mode 100644 node_modules/qs/test/empty-keys-cases.js create mode 100644 node_modules/qs/test/parse.js create mode 100644 node_modules/qs/test/stringify.js create mode 100644 node_modules/qs/test/utils.js create mode 100644 node_modules/range-parser/HISTORY.md create mode 100644 node_modules/range-parser/LICENSE create mode 100644 node_modules/range-parser/README.md create mode 100644 node_modules/range-parser/index.js create mode 100644 node_modules/range-parser/package.json create mode 100644 node_modules/raw-body/HISTORY.md create mode 100644 node_modules/raw-body/LICENSE create mode 100644 node_modules/raw-body/README.md create mode 100644 node_modules/raw-body/SECURITY.md create mode 100644 node_modules/raw-body/index.d.ts create mode 100644 node_modules/raw-body/index.js create mode 100644 node_modules/raw-body/package.json create mode 100644 node_modules/router/HISTORY.md create mode 100644 node_modules/router/LICENSE create mode 100644 node_modules/router/README.md create mode 100644 node_modules/router/index.js create mode 100644 node_modules/router/lib/layer.js create mode 100644 node_modules/router/lib/route.js create mode 100644 node_modules/router/package.json create mode 100644 node_modules/safe-buffer/LICENSE create mode 100644 node_modules/safe-buffer/README.md create mode 100644 node_modules/safe-buffer/index.d.ts create mode 100644 node_modules/safe-buffer/index.js create mode 100644 node_modules/safe-buffer/package.json create mode 100644 node_modules/safer-buffer/LICENSE create mode 100644 node_modules/safer-buffer/Porting-Buffer.md create mode 100644 node_modules/safer-buffer/Readme.md create mode 100644 node_modules/safer-buffer/dangerous.js create mode 100644 node_modules/safer-buffer/package.json create mode 100644 node_modules/safer-buffer/safer.js create mode 100644 node_modules/safer-buffer/tests.js create mode 100644 node_modules/send/HISTORY.md create mode 100644 node_modules/send/LICENSE create mode 100644 node_modules/send/README.md create mode 100644 node_modules/send/index.js create mode 100644 node_modules/send/package.json create mode 100644 node_modules/serve-static/HISTORY.md create mode 100644 node_modules/serve-static/LICENSE create mode 100644 node_modules/serve-static/README.md create mode 100644 node_modules/serve-static/index.js create mode 100644 node_modules/serve-static/package.json create mode 100644 node_modules/setprototypeof/LICENSE create mode 100644 node_modules/setprototypeof/README.md create mode 100644 node_modules/setprototypeof/index.d.ts create mode 100644 node_modules/setprototypeof/index.js create mode 100644 node_modules/setprototypeof/package.json create mode 100644 node_modules/setprototypeof/test/index.js create mode 100644 node_modules/side-channel-list/.editorconfig create mode 100644 node_modules/side-channel-list/.eslintrc create mode 100644 node_modules/side-channel-list/.github/FUNDING.yml create mode 100644 node_modules/side-channel-list/.nycrc create mode 100644 node_modules/side-channel-list/CHANGELOG.md create mode 100644 node_modules/side-channel-list/LICENSE create mode 100644 node_modules/side-channel-list/README.md create mode 100644 node_modules/side-channel-list/index.d.ts create mode 100644 node_modules/side-channel-list/index.js create mode 100644 node_modules/side-channel-list/list.d.ts create mode 100644 node_modules/side-channel-list/package.json create mode 100644 node_modules/side-channel-list/test/index.js create mode 100644 node_modules/side-channel-list/tsconfig.json create mode 100644 node_modules/side-channel-map/.editorconfig create mode 100644 node_modules/side-channel-map/.eslintrc create mode 100644 node_modules/side-channel-map/.github/FUNDING.yml create mode 100644 node_modules/side-channel-map/.nycrc create mode 100644 node_modules/side-channel-map/CHANGELOG.md create mode 100644 node_modules/side-channel-map/LICENSE create mode 100644 node_modules/side-channel-map/README.md create mode 100644 node_modules/side-channel-map/index.d.ts create mode 100644 node_modules/side-channel-map/index.js create mode 100644 node_modules/side-channel-map/package.json create mode 100644 node_modules/side-channel-map/test/index.js create mode 100644 node_modules/side-channel-map/tsconfig.json create mode 100644 node_modules/side-channel-weakmap/.editorconfig create mode 100644 node_modules/side-channel-weakmap/.eslintrc create mode 100644 node_modules/side-channel-weakmap/.github/FUNDING.yml create mode 100644 node_modules/side-channel-weakmap/.nycrc create mode 100644 node_modules/side-channel-weakmap/CHANGELOG.md create mode 100644 node_modules/side-channel-weakmap/LICENSE create mode 100644 node_modules/side-channel-weakmap/README.md create mode 100644 node_modules/side-channel-weakmap/index.d.ts create mode 100644 node_modules/side-channel-weakmap/index.js create mode 100644 node_modules/side-channel-weakmap/package.json create mode 100644 node_modules/side-channel-weakmap/test/index.js create mode 100644 node_modules/side-channel-weakmap/tsconfig.json create mode 100644 node_modules/side-channel/.editorconfig create mode 100644 node_modules/side-channel/.eslintrc create mode 100644 node_modules/side-channel/.github/FUNDING.yml create mode 100644 node_modules/side-channel/.nycrc create mode 100644 node_modules/side-channel/CHANGELOG.md create mode 100644 node_modules/side-channel/LICENSE create mode 100644 node_modules/side-channel/README.md create mode 100644 node_modules/side-channel/index.d.ts create mode 100644 node_modules/side-channel/index.js create mode 100644 node_modules/side-channel/package.json create mode 100644 node_modules/side-channel/test/index.js create mode 100644 node_modules/side-channel/tsconfig.json create mode 100644 node_modules/statuses/HISTORY.md create mode 100644 node_modules/statuses/LICENSE create mode 100644 node_modules/statuses/README.md create mode 100644 node_modules/statuses/codes.json create mode 100644 node_modules/statuses/index.js create mode 100644 node_modules/statuses/package.json create mode 100644 node_modules/toidentifier/HISTORY.md create mode 100644 node_modules/toidentifier/LICENSE create mode 100644 node_modules/toidentifier/README.md create mode 100644 node_modules/toidentifier/index.js create mode 100644 node_modules/toidentifier/package.json create mode 100644 node_modules/type-is/HISTORY.md create mode 100644 node_modules/type-is/LICENSE create mode 100644 node_modules/type-is/README.md create mode 100644 node_modules/type-is/index.js create mode 100644 node_modules/type-is/package.json create mode 100644 node_modules/unpipe/HISTORY.md create mode 100644 node_modules/unpipe/LICENSE create mode 100644 node_modules/unpipe/README.md create mode 100644 node_modules/unpipe/index.js create mode 100644 node_modules/unpipe/package.json create mode 100644 node_modules/vary/HISTORY.md create mode 100644 node_modules/vary/LICENSE create mode 100644 node_modules/vary/README.md create mode 100644 node_modules/vary/index.js create mode 100644 node_modules/vary/package.json create mode 100644 node_modules/wrappy/LICENSE create mode 100644 node_modules/wrappy/README.md create mode 100644 node_modules/wrappy/package.json create mode 100644 node_modules/wrappy/wrappy.js create mode 100644 package-lock.json diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..63eebc7afe046e4722ff03d8df78383f03c48252 GIT binary patch literal 8196 zcmeHMy>HV%6o1zi>QD-9X`p;b7Fm!ef~r)dV!#bWP%*TstJ0`}U?)y$>fEKa(*jkc z`~ff{W<~~fCYYFDWMyDSEX?rkBQ#3F$HIriJ?ZXux%b|^dq2m%JO=pXe(?;6t1|YtR9GRC91?A z(jD~{H%GJ;HY7@SAkrO(icD06LPT`*vxGSiTcYkY1Db(O26*k>4<5Ksg!R_?oq4Fi zo2e&2^u7oY?rqlIR$TK!Vg16Zg+ZL0KmU&O^!Dx9+i&z61I8_9jcqxJo7Cg18?EwB zON@nHbL@J{fxlHSN3JlMxB>Me;SiL3G|Ar#Xo+oQS)G<*;p<3+kup*R^Vs(G*^5)t zW7hb^3zIuz*7o%D)R;9jF|o6gGSZoImlg}_VU@CnV&_2A!vlEMt?~#zwB;2PH&tHb zO*60errFFawQpem;DLkY(D0$5k)d=tefY@e@Ui133g#itEv{E0zT+z_WKlM(`vvo0 zjCs!$8C{6{P0V*C@$V&0@BmfAZ4Qfm>Gtl_()}9RjO`3~l5Too_-QHJWey_|8R0r{)#|TFG4gB>7Bb?9*~&LZ(TvG1430GDEO21%LTl-nGO(&uu zqZN$6voN3x5ioqUmUO*AKcY>p2gWPcFnN!!CBaIsVA5Jxffaf&0XS zOV literal 0 HcmV?d00001 diff --git a/backend/.DS_Store b/backend/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..02079de2a59fa36216008abda3e4b5b8057e44bc GIT binary patch literal 6148 zcmeHLyG{c^3>-s>NHkYc?iWPj4^~kqsQCa;ax^H)6^Q=6DL)7^_5wP%CQYOuTUw9T zYwu&E+s6U0^?QE@bO4qtLX$Bga?dthwP2xn9|!b!!2xg7mm!*ahaH|+2G0Cv{ykQB zR3c@vmA8At|_ zfo}%1KNJ>WZ8!${)nRCz(|Mr z$n2+${PlP-AD#Z<;jkK*IvGd?rVLz1wbS{3&rfFdkv~nzS~8Ff{4)k@v3cC+r&K#z z|13{uZDDz4ktlAIL7_dl1hArg8gDIJ literal 0 HcmV?d00001 diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..d2e8a2a --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,8 @@ +FROM node:18 + +WORKDIR /app +COPY . . +RUN npm install + +EXPOSE 3000 +CMD ["node", "server.js"] diff --git a/backend/c_condensed.json b/backend/c_condensed.json new file mode 100644 index 0000000..4ffe4d0 --- /dev/null +++ b/backend/c_condensed.json @@ -0,0 +1,5634 @@ +[ + { + "frage": "Der Ball fliegt nach einer missglückten Annahme von Mannschaft B außerhalb der Antenne in Richtung der gegnerischen Freizone. Ein anderer Spieler der Mannschaft B läuft dem Ball hinterher und spielt ihn zurück in seine eigene Spielfeldhälfte. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die gegnerische Mannschaft A darf diese Spielaktion nicht behindern.", + "korrekt": true + }, + { + "text": "Der dem Ball hinterherlaufende Spieler darf das gegnerische Spielfeld nicht berühren.", + "korrekt": true + }, + { + "text": "Wenn der zurückgespielte Ball über die Verlängerung der Antenne fliegt, ist das ein Fehler der Mannschaft B.", + "korrekt": false + }, + { + "text": "Der hinterherlaufende Spieler darf den Ball auch dann zurückspielen, wenn sich der Ball außerhalb der gegnerischen Freizone befindet.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Ball fliegt nach einer missglückten Annahme unterhalb der Netzunterkante Richtung gegnerisches Feld. Kurz bevor der Ball die senkrechte Netzebene vollständig durchquert hat, spielt ihn der Zuspieler ins eigene Feld zurück. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dies ist nur erlaubt, wenn die Ballberührung im eigenen Raum stattfindet.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler. Im gegnerischen Raum darf der Ball nicht gespielt werden.", + "korrekt": false + }, + { + "text": "Der Ball ist sofort fehlerhaft, sobald er bereits mit Teilen seines Umfangs die Netzebene unterhalbt des Netzes durchquert.", + "korrekt": false + }, + { + "text": "Dies ist kein Fehler.", + "korrekt": true + } + ] + }, + { + "frage": "In welchem/welchen Fall/Fällen gewinnt die annehmende Mannschaft den Spielzug?", + "antworten": [ + { + "text": "Der Aufschlagspieler führt den Aufschlag mit zwei Händen durch, die annehmende Mannschaft begeht einen Positionsfehler.", + "korrekt": true + }, + { + "text": "Der Aufschlagspieler spielt den Ball ins Netz (der Ball überquert das Netz nicht), die annehmende Mannschaft begeht einen Positionsfehler.", + "korrekt": false + }, + { + "text": "Die aufschlagende Mannschaft begeht einen Rotationsfehler, die annehmende Mannschaft einen Positionsfehler.", + "korrekt": true + }, + { + "text": "Ein Spieler (nicht der Aufschlagspieler) der aufschlagenden Mannschaft befindet sich während des Aufschlages nicht komplett in seinem Spielfeld, die annehmende Mannschaft begeht einen Positionsfehler.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einem Pfiff des 2. Schiedsrichters (fehlerhafte Netzberührung) ...", + "antworten": [ + { + "text": "… zeigt er mit der flachen Hand auf das Netz, deutet auf den verursachenden Spieler und bestimmt direkt danach die Seite für den nächsten Aufschlag.", + "korrekt": false + }, + { + "text": "… zeigt er lediglich mit der flachen Hand auf das Netz und deutet danach auf den verursachenden Spieler.", + "korrekt": false + }, + { + "text": "… zeigt er mit der flachen Hand auf das Netz, deutet (wenn notwendig) auf den verursachenden Spieler und zeigt (nach dem 1. Schiedsrichter) auf die Seite für den nächsten Aufschlag.", + "korrekt": true + } + ] + }, + { + "frage": "In welchen Fällen/in welchem Fall muss der 1. Schiedsrichter auf Fehler wegen „Über das Netz reichen” (Übergegriffen) entscheiden?", + "antworten": [ + { + "text": "Ein Zuspieler Mannschaft A will einen Ball parallel zum Netz auf seinen Mitspieler stellen. Der gegnerische Spieler springt hoch und berührt den Ball auf der Seite Mannschaft A.", + "korrekt": true + }, + { + "text": "Nach einer verunglückten Ballannahme von Mannschaft B fliegt der Ball oberhalb der Netzoberkante in Richtung Mannschaft A. Der Mittelblocker von Mannschaft A blockt den Ball in der gegnerischen Seite, kein Spieler von Mannschaft B befindet sich in Nähe des Balles.", + "korrekt": false + }, + { + "text": "Ein Spieler der Mannschaft A blockt den Ball, der sich vollständig auf der gegnerischen Seite befindet, bevor der Angreifer von Mannschaft B den Ball spielt.", + "korrekt": true + }, + { + "text": "Ein Spieler blockt den Ball in seiner Spielhälfte. Gleichzeitig berührt der gegnerische Zuspieler (kein Hinterspieler) den Ball (vollständig oberhalb der Netzoberkante) in seiner Spielfeldhälfte.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A spielt in der falschen Aufschlagreihenfolge (Rotation). Der 2. Schiedsrichter pfeift deshalb den Spielzug ab. Beide Mannschaften haben Punkte erzielt. Wie ist zu verfahren, wenn festgestellt werden kann, wann der Fehler entstand?", + "antworten": [ + { + "text": "Mannschaft B erhält einem Punkt und den nächsten Aufschlag. Die in der falschen Aufstellung erzielten Punkte der Mannschaft A werden annulliert. Die Punkte von Mannschaft B bleiben gültig.", + "korrekt": true + }, + { + "text": "Mannschaft A wird mit einem Punkt und Aufschlag für den Gegner bestraft, die Punkte beider Mannschaften bleiben gültig.", + "korrekt": false + }, + { + "text": "Die Punkte beider Mannschaften bleiben gültig, der letzte Aufschlag wird wiederholt.", + "korrekt": false + }, + { + "text": "Beiden Mannschaften werden die erzielten Punkte abgezogen. Das Spiel wird mit dem Spielstand wieder aufgenommen, an dem Mannschaft A zuletzt in der richtigen Aufstellung spielte.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler berührt das Netz. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dies ist als fehlerhaft zu werten, wenn der Zuspieler die Netzoberkante berührt, während er den Ball spielt.", + "korrekt": true + }, + { + "text": "Dies ist erlaubt, wenn der Ball das Netz an den Spieler drückt.", + "korrekt": true + }, + { + "text": "Dies ist erlaubt, wenn der Ball die Netzoberkante an die Arme des Blockspielers drückt.", + "korrekt": true + }, + { + "text": "Dies ist als fehlerhaft zu werten, wenn beim Hochspringen ein Blockspieler den unteren Teil des Netzes berührt.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Mannschaftsbänke befinden sich innerhalb der Freizone.", + "korrekt": false + }, + { + "text": "Der Überquerungssektor wird begrenzt durch die Netzoberkante, die Antennen und ihre gedachte Verlängerung sowie durch die Hallendecke.", + "korrekt": true + }, + { + "text": "Die Spielfeldhälfte einer Mannschaft ist 9,00 m lang und 9,00 m breit.", + "korrekt": false + }, + { + "text": "Das Spielfeld ist 18,00 m lang und 9,00 m breit.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die nicht im Spiel befindlichen Spieler sitzen auf der Mannschaftsbank oder stehen unmittelbar davor.", + "korrekt": false + }, + { + "text": "Während der Satzpausen dürfen sich Spieler mit dem Ball in der Freizone hinter dem Spielfeld aufwärmen.", + "korrekt": true + }, + { + "text": "Während der Auszeiten dürfen sich Spieler mit dem Ball in der Freizone hinter dem Spielfeld aufwärmen.", + "korrekt": false + }, + { + "text": "Der Mannschaftskapitän muss im Spielberichtsbogen kenntlich gemacht werden.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) beschreibt/beschreiben regelgerechtes Vorgehen?", + "antworten": [ + { + "text": "Ein disqualifizierter Spieler muss sich für den Rest des Spieles in der Umkleidekabine der Mannschaft aufhalten.", + "korrekt": true + }, + { + "text": "Ein hinausgestellter Trainer darf seine Mannschaft coachen.", + "korrekt": false + }, + { + "text": "Ein hinausgestellter Spieler ist durch einen normalen oder einen ausnahmsweisen Wechsel zu wechseln.", + "korrekt": true + }, + { + "text": "Ein disqualifizierter aktiver Libero darf durch den zweiten Libero (sofern vorhanden) ersetzt werden.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind in Zusammenhang mit einer Blockaktion regelgerecht?", + "antworten": [ + { + "text": "Nur Vorderspieler dürfen einen Block ausführen.", + "korrekt": true + }, + { + "text": "Die Aktion wird von einem in der Nähe des Netzes befindlichen und über die Netzoberkante greifenden Spielers ausgeführt.", + "korrekt": true + }, + { + "text": "Die Spieler müssen weit vom Netz entfernt sein.", + "korrekt": false + }, + { + "text": "Der/die Spieler müssen mit einem Körperteil oberhalb der Netzoberkante reichen.", + "korrekt": true + } + ] + }, + { + "frage": "Nach einer schlechten Annahme von Mannschaft A fliegt der Ball außerhalb des Überquerungssektors in die Freizone von Mannschaft B. Ein Spieler von Mannschaft A läuft dem Ball nach und spielt ihn ins eigene Feld zurück. Welche Aussage(n) beschreibt/beschreiben einen regelgerechten Sachverhalt?", + "antworten": [ + { + "text": "Der Ball fliegt direkt über die Antenne (auf derselben Seite).", + "korrekt": true + }, + { + "text": "Der Ball fliegt zwischen Netz und Pfosten (auf derselben Seite, ohne Spannseile zu berühren).", + "korrekt": true + }, + { + "text": "Der Ball fliegt unterhalb des Netzes zwischen der Verlängerung der Antenne und Pfosten (auf derselben Seite).", + "korrekt": false + } + ] + }, + { + "frage": "Welche Entscheidung(en) der Schiedsrichter ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Trainer beantragt die dritte Auszeit in einem Satz. Der Antrag wird sofort zurückgewiesen. Obwohl keine Verzögerung entstand, lässt der 2. Schiedsrichter den unberechtigten Antrag im Sanktionsfeld des Spielberichtsbogens eintragen.", + "korrekt": true + }, + { + "text": "Ein Spieler stellt einen Pass hinter die Angriffslinie. Während des nachfolgenden Angriffsschlages berührt er leicht das Netz ohne den Gegner zu behindern. Die Schiedsrichter pfeifen nicht.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter pfeift die Berührung der Netzunterkante durch den Blockspieler ab, obwohl die eigentliche Blockaktion beendet war und die Berührung unabsichtlich beim Umdrehen und in Vorbereitung auf die nächste Spielaktion erfolgte.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter bemerkt sicher, dass der 1. Schiedsrichter die Bodenberührung des Balles nicht sehen kann und zeigt den Fehler an, pfeift aber nicht.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Trainer ist auch als Spieler in der Mannschaftsliste seiner Mannschaft eingetragen (Spielertrainer). Er ist nicht Mannschaftskapitän. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Er darf seine Mannschaft vor der Mannschaftsbank stehend coachen.", + "korrekt": true + }, + { + "text": "Er darf einen Wechsel beantragen (die Wechselzone betreten), um sich selbst einzuwechseln.", + "korrekt": true + }, + { + "text": "Der Spielkapitän kann Auszeiten beantragen, wenn der Spielertrainer nicht auf dem Feld ist.", + "korrekt": false + }, + { + "text": "Auch wenn er kein Spielkapitän ist, darf er einen normalen Wechsel beantragen, um sich selbst auszuwechseln.", + "korrekt": false + } + ] + }, + { + "frage": "Nach dem Pfiff des 1. Schiedsrichters schlägt der Aufschlagspieler von Mannschaft A den Ball regelgerecht. Während der Ball bereits fliegt, pfeift der 2. Schiedsrichter zur Auszeit von Mannschaft B. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter entscheidet auf „Doppelfehler“, weist den Antrag zurück und spricht eine Sanktion wegen Verzögerung gegen Mannschaft B aus. Eine Liberoaustauschaktion darf erfolgen. Der 1. Schiedsrichter pfeift danach den Spielzug erneut an.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter entscheidet auf „Doppelfehler“, weist den Antrag zurück und spricht eine Sanktion wegen Verzögerung gegen Mannschaft B aus. Eine Liberoaustauschaktion darf nicht erfolgen. Der 1. Schiedsrichter pfeift den Spielzug erneut an.", + "korrekt": true + }, + { + "text": "Wenn keine der beiden Mannschaften den Pfiff zur Auszeit gehört hat, greift das Schiedsgericht nicht erneut ein und lässt das Spiel einfach weiterlaufen.", + "korrekt": false + }, + { + "text": "Die Auszeit wird genehmigt. Die Mannschaften verlassen das Feld Richtung eigener Mannschaftsbank.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einer Auszeit beantragt der Trainer sofort eine weitere Auszeit. Welche Aussage(n) beschreibt/beschreiben eine regelgerechte Vorgehensweise?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter pfeift und genehmigt auch die 2. Auszeit.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter genehmigt die 2. Auszeit nicht, weil zwischen den beiden Auszeiten ein Spielzug gespielt werden muss. Die Mannschaft wird wegen Verzögerung verwarnt.", + "korrekt": false + }, + { + "text": "Nach der 2. Auszeit von Mannschaft A vergisst der 2. Schiedsrichter, die entsprechende Information an den Trainer von Mannschaft A zu übermitteln. Dieser beantragt später in dem Satz eine weitere Auszeit. Diese wird wegen der unterlassenen Mitteilung ohne weitere Sanktion zurückgewiesen.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter genehmigt die 2. Auszeit nicht, weil zwischen den beiden Auszeiten ein Spielzug gespielt werden muss. Da es der erste unberechtigte Antrag dieser Mannschaft ist, wird das entsprechende Kästchen im Spielberichtsbogen angekreuzt.", + "korrekt": false + } + ] + }, + { + "frage": "Im Entscheidungssatz wird bei Mannschaft B beim Spielstand von 16:16 ein Rotationsfehler festgestellt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Mannschaft A erhält das Aufschlagrecht und einen Punkt. Mannschaft B nimmt die richtige Rotationsfolge ein und das Spiel wird fortgesetzt.", + "korrekt": true + }, + { + "text": "Mannschaft A gewinnt den Satz mit 17:16.", + "korrekt": false + }, + { + "text": "Der Spielzug ist nach Berichtigung der Rotationsfolge zu wiederholen.", + "korrekt": false + }, + { + "text": "Wird der Rotationsfehler zum Zeitpunkt festgestellt wenn der Ball aus dem Spiel ist und die Mannschaft B hat den letzten Spielzug verloren, so ist die richtige Aufstellung von Mannschaft B einzunehmen. Es gibt nur einen Punkt wegen des verlorenen Spielzuges.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Libero und sein Tauschspieler dürfen das Spielfeld nur durch die Libero-Austauschzone betreten oder verlassen.", + "korrekt": true + }, + { + "text": "Das Eintragen des Liberos auf dem Aufstellungsblatt des ersten Satzes ist nicht erforderlich.", + "korrekt": true + }, + { + "text": "Der Libero darf einen Blockversuch durchführen.", + "korrekt": false + }, + { + "text": "Tauschaktionen mit dem Libero sind in ihrer Anzahl unbeschränkt.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aktion(en) ist/sind erlaubt?", + "antworten": [ + { + "text": "Ein Spieler darf in die gegnerische Freizone eindringen, wenn dabei das Spiel des Gegners nicht beeinflusst wird.", + "korrekt": true + }, + { + "text": "Nach dem Angriffsschlag darf ein Spieler seine Hand über das Netz führen, wenn die Ballberührung im eigenen Spielraum stattgefunden hat.", + "korrekt": true + }, + { + "text": "Ein Libero führt einen Angriffsschlag hinter der Vorderzone aus. Dabei befindet sich der Ball vollständig oberhalb der Netzoberkante.", + "korrekt": false + }, + { + "text": "Ein Spieler berührt die Antenne oberhalb des Netzes während einer Aktion, in der er den Ball spielt.", + "korrekt": false + } + ] + }, + { + "frage": "In welchem Fall/welchen Fällen muss eine Sanktion wegen Verzögerung ausgesprochen werden?", + "antworten": [ + { + "text": "Ein Aufschlagspieler führt den Aufschlag nicht innerhalb von 8 Sekunden aus.", + "korrekt": false + }, + { + "text": "Ein Trainer beantragt erstmals eine dritte Auszeit.", + "korrekt": false + }, + { + "text": "Eine Mannschaft begibt sich nach einer Auszeit, trotz Aufforderung, nicht zügig auf das Spielfeld.", + "korrekt": true + }, + { + "text": "Ein Spieler betritt nicht in Wettkampfkleidung (z. B. noch im Trainingsanzug) die Wechselzone.", + "korrekt": true + } + ] + }, + { + "frage": "Der Ball ...", + "antworten": [ + { + "text": "… darf nur bunt sein.", + "korrekt": false + }, + { + "text": "… muss einen Innendruck von 0,30 bis 0,325 kg/cm2 haben.", + "korrekt": true + }, + { + "text": "… darf nur weiß sein.", + "korrekt": false + }, + { + "text": "… kann laut Regelwerk einfarbig oder bunt sein.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Ball darf beim Aufschlag nicht direkt aus der Hand geschlagen werden.", + "korrekt": true + }, + { + "text": "Nach der Genehmigung des Aufschlages dürfen sowohl die Spieler der annehmenden als auch die der aufschlagenden Mannschaft ihre Positionen auf dem Spielfeld frei wählen.", + "korrekt": false + }, + { + "text": "Im Moment der Ausführung des Aufschlages dürfen sich beide Füße des Aufschlagspielers nicht im Spielfeld oder nach einem Sprung in der Luft über dem Spielfeld befinden.", + "korrekt": false + }, + { + "text": "Die Stellung der Füße entscheidet über die richtige Position der Spieler auf dem Spielfeld im Moment der Ausführung des Aufschlages.", + "korrekt": true + } + ] + }, + { + "frage": "Mannschaft A beantragt eine Auszeit. Das ist die erste normale Spielunterbrechung im Satz. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Mannschaft A kann die Auszeit vorzeitig beenden, wenn sie keine weitere Zeit mehr benötigt.", + "korrekt": false + }, + { + "text": "Die Mannschaften müssen in der Auszeit das Spielfeld verlassen.", + "korrekt": true + }, + { + "text": "Direkt nach Beendigung der Auszeit darf der Trainer der Mannschaft A noch eine weitere Auszeit beantragen.", + "korrekt": true + }, + { + "text": "Direkt nach Beendigung der Auszeit darf der Trainer der Mannschaft B ebenfalls eine Auszeit beantragen.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Ball fliegt nach einer missglückten Annahme unterhalb der Netzunterkante Richtung gegnerisches Feld. Kurz bevor der Ball die senkrechte Netzebene vollständig durchquert hat, spielt ihn der Zuspieler ins eigene Feld zurück. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dies ist nur erlaubt, wenn die Ballberührung im eigenen Raum stattfindet.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler. Im gegnerischen Raum darf der Ball nicht gespielt werden.", + "korrekt": false + }, + { + "text": "Dies ist kein Fehler.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) in Bezug auf das Netz ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Seitenbänder gehören zu den Antennen.", + "korrekt": false + }, + { + "text": "Das Netz ist 1,00 m breit und 9,50 bis 10,00 m lang.", + "korrekt": true + }, + { + "text": "Das obere weiße Band ist 7 cm, das untere weiße Band 5 cm breit.", + "korrekt": true + }, + { + "text": "Die Seitenbänder gehören zum Netz.", + "korrekt": true + } + ] + }, + { + "frage": "Der Ball ist „aus“, wenn er ...", + "antworten": [ + { + "text": "… das locker herunterhängende Ende des Spannseils berührt.", + "korrekt": true + }, + { + "text": "… zwischen Hallendecke und einem Deckenbalken hindurchfliegt, ohne eins von beiden zu berühren.", + "korrekt": false + }, + { + "text": "… in der Freizone zu Boden fällt. Dabei berührt er die Spielfeldlinie nicht, befindet sich aber mit einem Teil seines Umfangs noch über ihr.", + "korrekt": true + }, + { + "text": "… das Netz außerhalb der Antenne berührt.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Aufschlag wird vom Gegner (kein Libero) direkt zurückgespielt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dies ist immer erlaubt, wenn sich der Ball im Moment des Zurückpielens im Raum über der Hinterzone befindet.", + "korrekt": true + }, + { + "text": "Befindet sich der Ball im Moment des Zurückspielens vollständig oberhalb der Netzoberkante, ist das immer ein Fehler.", + "korrekt": false + }, + { + "text": "Grundsätzlich dürfen nur Hinterspieler diesen Ball direkt zurückspielen.", + "korrekt": false + }, + { + "text": "Es ist erlaubt, wenn sich der Ball im Raum über der Vorderzone und nicht vollständig oberhalb der Netzoberkante befindet.", + "korrekt": true + } + ] + }, + { + "frage": "Angriffsschlag eines Hinterspielers oberhalb der Netzoberkante nach Absprung in der Vorderzone. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Ball ist als fehlerhaft zu werten, wenn er vom Block berührt wird.", + "korrekt": true + }, + { + "text": "Wenn der Libero in der eigenen Vorderzone den Ball im oberen Fingerzuspiel gestellt hat, entscheidet der 1. Schiedsrichter auf Doppelfehler, da zwei Fehler gleichzeitig geschehen sind.", + "korrekt": false + }, + { + "text": "Der Ball ist als fehlerhaft zu werten, wenn er vom Hinterspieler berührt wird.", + "korrekt": false + }, + { + "text": "Der Ball ist als fehlerhaft zu werten, wenn er die senkrechte Ebene des Netzes durchquert.", + "korrekt": true + } + ] + }, + { + "frage": "Mannschaft A spielt mit 12 Spielern (ohne Libero). Ein Spieler dieser Mannschaft wird im ersten Satz beim Stand von 22:7 für Mannschaft B disqualifiziert. Bislang hat es in diesem Satz noch keine Wechsel gegeben. Welche Auswirkung(en) hat die vollständige Anwendung dieser Sanktion auf die Anzahl der verbleibenden Wechsel von Mannschaft A?", + "antworten": [ + { + "text": "Die Anzahl bleibt unverändert.", + "korrekt": false + }, + { + "text": "Die Anzahl wird immer um eins reduziert.", + "korrekt": false + }, + { + "text": "Die Anzahl wird nur um eins reduziert, sofern sich der Spieler zum Zeitpunkt der Sanktion auf dem Spielfeld befindet.", + "korrekt": true + }, + { + "text": "Die Anzahl wird nur um eins reduziert, sofern sich der Spieler zum Zeitpunkt der Sanktion nicht auf dem Spielfeld befindet.", + "korrekt": false + } + ] + }, + { + "frage": "In welchem Fall/welchen Fällen liegt ein Fehler vor?", + "antworten": [ + { + "text": "Ein Spieler versucht den Ball zu blocken. Er befindet sich dabei nicht in der Nähe des Netzes und berührt den Ball oberhalb der Netzoberkante. Danach spielt die Mannschaft weitere drei Mal.", + "korrekt": true + }, + { + "text": "Zwei Spieler einer Mannschaft springen gemeinsam zum Block, beide berühren den Ball. Danach wird der Ball weitere drei Mal gespielt.", + "korrekt": false + }, + { + "text": "Das Zuspiel eines Hinterspielers (zweite Ballberührung), welches das Netz nicht überqueren würde, wird geblockt.", + "korrekt": true + }, + { + "text": "Ein Blockspieler berührt beim Blocken das Netz.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Zuspieler (Hinterspieler) der Mannschaft A spielt den Ball im Sprung (Ball vollständig oberhalb der Netzoberkante, Absprung in der Vorderzone, 2,50 m vom Netz entfernt) zu seinem Mittelangreifer, der den Ball verpasst. Der Ball geht in Richtung gegnerische Spielfeldhälfte und wird vom Blocker der Mannschaft B geblockt. Welche Aussage(n) beschreibt/beschreiben regelgerechte Konsequenzen?", + "antworten": [ + { + "text": "Dies ist ein Fehler von Mannschaft B.", + "korrekt": false + }, + { + "text": "Dies ist eine Doppelfehler. Der Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Dies ist kein Fehler, das Spiel läuft weiter.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler von Mannschaft A.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Spieler darf ein Schmuckstück tragen, das in geeigneter Form abgeklebt ist, so dass es keine Gefahr darstellt.", + "korrekt": true + }, + { + "text": "Ein Spieler, der nicht im Spielberichtsbogen eingetragen ist, aber nach Spielbeginn seine Spielerlizenz vorlegt, darf an dem Spiel teilnehmen.", + "korrekt": false + }, + { + "text": "Die Spieler dürfen sich jederzeit mit einem Ball spielbereit halten.", + "korrekt": false + }, + { + "text": "Die Spieler dürfen sich während der Auszeit hinter dem Spielfeld warmlaufen.", + "korrekt": true + } + ] + }, + { + "frage": "Vor dem Spiel findet die Auslosung statt. Der Gewinner wählt die Spielfeldseite. Welche Möglichkeiten bleiben dem Verlierer?", + "antworten": [ + { + "text": "Er muss den ersten Aufschlag ausführen.", + "korrekt": false + }, + { + "text": "Er kann den ersten Aufschlag ausführen.", + "korrekt": true + }, + { + "text": "Er muss den ersten Aufschlag annehmen.", + "korrekt": false + }, + { + "text": "Er kann den ersten Aufschlag annehmen.", + "korrekt": true + } + ] + }, + { + "frage": "Während eines Spielzuges im ersten Satz verletzt sich ein Spieler von Mannschaft A ernsthaft. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein ausnahmsweise gewechselter Spieler darf nicht mehr am Spiel teilnehmen.", + "korrekt": true + }, + { + "text": "Die medizinische Versorgung innerhalb der Spielfläche muss spätestens nach 3 Minuten beendet sein. Danach wird die Behandlung außerhalb der Spielfläche fortgesetzt.", + "korrekt": false + }, + { + "text": "Ein verletzter Spieler muss nach der Erstversorgung sofort ausnahmsweise gewechselt werden. Sofern dies der erste Wechsel von Mannschaft A ist, stehen der Mannschaft weitere sechs Wechsel zur Verfügung.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter unterbricht das Spiel und entscheidet auf Spielzugwiederholung.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53626)", + "antworten": [] + }, + { + "frage": "Welche Aussage(n) beschreibt/beschreiben regelgerechtes Vorgehen des Schiedsgerichts?", + "antworten": [ + { + "text": "Ein Blockspieler berührt das Netz außerhalb der Antennen, ohne das Spiel zu beeinflussen. Der 2. Schiedsrichter unterbricht das Spiel und entscheidet auf «fehlerhafte Netzberührung».", + "korrekt": false + }, + { + "text": "Ein Aufschlagspieler führt erstmalig den Aufschlag aus, bevor der 1. Schiedsrichter diesen genehmigt hat. Der Aufschlag wird annulliert und darf nach erfolgter Genehmigung erneut ausgeführt werden.", + "korrekt": true + }, + { + "text": "Nachdem Mannschaft A einen Wechsel durchgeführt hat, beantragt Mannschaft B ebenfalls einen Wechsel, ohne dass ein Spielzug stattgefunden hat. Der 2. Schiedsrichter genehmigt den Antrag.", + "korrekt": true + }, + { + "text": "Ein vom Block abprallender Ball wird in der Technik des oberen Zuspiels (pritschen) gespielt. Dabei kommt es zu einer deutlichen Doppelberührung. Der 1. Schiedsrichter lässt weiterspielen.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) trifft/treffen in Bezug auf die Positionen der Spieler auf dem Spielfeld zu?", + "antworten": [ + { + "text": "Positionsfehler und Rotationsfehler beschreiben den gleichen Sachverhalt.", + "korrekt": false + }, + { + "text": "Es handelt sich um einen Rotationsfehler, wenn der Aufschlag nicht entsprechend der im Spielberichtsbogen hinterlegten Rotationsfolge ausgeführt wird.", + "korrekt": true + }, + { + "text": "Mit Ausnahme des Aufschlagspielers muss sich im Moment der Ausführung des Aufschlages jeder auf dem Spielfeld befindliche Spieler der beiden Mannschaften innerhalb seiner Spielfeldhälfte befinden.", + "korrekt": true + }, + { + "text": "Ein Hinterspieler darf im Moment der Ausführung des Aufschlages mit keinem Teil seiner Füße die Vorderzone berühren.", + "korrekt": false + } + ] + }, + { + "frage": "Spieler A, ein Zuspieler, reicht über die Netzoberkante in die gegnerische Spielfeldhälfte, um den Ball einem Mitspieler zum Angriff zuzuspielen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Das Spielen des Balles ist regelkonform, da kein Kontakt mit der gegnerischen Mannschaft stattfindet.", + "korrekt": false + }, + { + "text": "Dies ist nur dann ein Fehler, wenn der Zuspieler ein Hinterspieler ist.", + "korrekt": false + }, + { + "text": "Grundsätzlich ist es Spielern nicht erlaubt, in den gegnerischen Spielraum zu reichen.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler, denn oberhalb der Netzoberkante muss ein Spieler den Ball auf seiner eigenen Seite berühren (außer beim Blocken).", + "korrekt": true + } + ] + }, + { + "frage": "Der Ball befindet sich mit vollem Umfang oberhalb der Netzoberkante teilweise im gegnerischen Raum. In welchem Fall/welchen Fällen muss der 1. Schiedsrichter pfeifen?", + "antworten": [ + { + "text": "Beide Gegenspieler schlagen gleichzeitig auf den Ball der danach die Antenne berührt.", + "korrekt": true + }, + { + "text": "Zwei Gegner spielen den Ball gleichzeitig jeweils auf ihrer Seite, dabei kommt der Ball zur Ruhe.", + "korrekt": false + }, + { + "text": "Der Zuspieler greift mit einer Hand über das Netz und spielt den Ball von der gegnerischen Seite zurück zu seinem Angreifer.", + "korrekt": true + }, + { + "text": "Der zuspielende Hinterspieler (Läufer) spielt den Ball in seinem Spielraum. Danach durchquert der Ball die Netzebene vollständig.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler von Mannschaft B führt einen Angriffsschlag aus. Der Ball geht sehr knapp am Block vorbei ins AUS. Der Angreifer reklamiert eine Blockberührung. Welche Aussage(n) beschreibt/beschreiben eine regelgerechte Vorgehensweise?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter entscheidet auf Doppelfehler.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter entscheidet ohne Nachfrage auf Ball \"Aus\".", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter fragt den Angreifer, wer den Ball berührt hat.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter fragt die Blockspieler, ob jemand von ihnen den Ball berührt hat.", + "korrekt": false + } + ] + }, + { + "frage": "Was darf ein Libero?", + "antworten": [ + { + "text": "Er darf Spielkapitän werden, wenn er gegen den Mannschaftskapitän getauscht wird.", + "korrekt": true + }, + { + "text": "Er darf zu Beginn eines Satzes erst dann das Spielfeld betreten, wenn der 2. Schiedsrichter dies genehmigt hat.", + "korrekt": true + }, + { + "text": "Er darf einen Ball, der sich vollständig oberhalb der Netzoberkante und in der Hinterzone befindet, zum Gegner spielen.", + "korrekt": false + }, + { + "text": "Er darf für spielunfähig erklärt werden, wenn er der einzige Libero der Mannschaft ist und hinausgestellt oder disqualifiziert wird. Es darf ein neuer Libero benannt werden.", + "korrekt": true + } + ] + }, + { + "frage": "Nach zwei missglückten Annahmen ordert der Trainer den Libero auf Position VI vom Spielfeld und schickt ihn sofort wieder auf Position V, ohne dass ein vollständig abgeschlossener Spielzug zwischen den beiden Tauschaktionen durchgeführt wurde. Der 2. Schiedsrichter bemerkt dies im Gegensatz zum 1. Schiedsrichter nicht. Der 1. Schiedsrichter genehmigt den nächsten Aufschlag und pfeift nach der Durchführung des Aufschlages einen Positionsfehler der annehmenden Mannschaft. Ist diese Vorgehensweise korrekt?", + "antworten": [ + { + "text": "Ja, der 1. Schiedsrichter agierte korrekt.", + "korrekt": false + }, + { + "text": "Nein, der 1. Schiedsrichter darf keine Positionsfehler der annehmenden Mannschaft pfeifen.", + "korrekt": false + }, + { + "text": "Nein, da der 2. Schiedsrichter diese nicht reguläre Libero-Austauschaktion nicht erkannt hat, muss der 1. Schiedsrichter dem 2. Schiedsrichter helfen, indem er pfeift und den Tausch zurückweist. Gegebenenfalls muss er eine Sanktion wegen Verzögerung aussprechen.", + "korrekt": true + } + ] + }, + { + "frage": "Auf Doppelfehler und Spielzugwiederholung ist zu entscheiden, wenn ...", + "antworten": [ + { + "text": "... während eines Spielzuges das Licht ausfällt.", + "korrekt": true + }, + { + "text": "... ein Hinterspieler in der Vorderzone abspringt und den Ball vollständig oberhalb der Netzoberkante in Richtung gegnerische Mannschaft schlägt. Bevor der Ball die senkrechte Ebene des Netzes vollständig durchquert hat, blockt ein gegnerischer Hinterspieler den Ball.", + "korrekt": true + }, + { + "text": "... Mannschaft B einen Positionsfehler begeht und bei Mannschaft A ein falscher Spieler den Aufschlag ausführt (Rotationsfehler).", + "korrekt": false + }, + { + "text": "... der 1. Schiedsrichter den Aufschlag genehmigt hat, obwohl sich bei der annehmenden Mannschaft zu dem Zeitpunkt nur fünf Spieler auf dem Spielfeld befanden.", + "korrekt": true + } + ] + }, + { + "frage": "Welche der folgenden Angriffsaktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Spieler führt einen Angriffsschlag direkt nach dem Aufschlag des Gegners aus, wobei sich der Ball vollständig in der Hinterzone und vollständig oberhalb der Netzoberkante befindet.", + "korrekt": true + }, + { + "text": "Der Libero führt einen Angriffsschlag in der Vorderzone aus, wobei sich der Ball teilweise unterhalb der Netzoberkante befindet.", + "korrekt": true + }, + { + "text": "Ein Hinterspieler führt einen Angriffsschlag nach Absprung in der Vorderzone aus, wobei sich der Ball vollständig oberhalb der Netzoberkante befindet.", + "korrekt": false + } + ] + }, + { + "frage": "Spieler A ist der falsche Aufschlagspieler und führt den Aufschlag aus. Was ist eine/sind regelgerechte Vorgehensweise(n) des Schiedsgerichts?", + "antworten": [ + { + "text": "Der Schreiber wartet bis der Spielzug vollendet ist und macht den 2. Schiedsrichter auf den Regelverstoß aufmerksam. Sollte der Gegner den Spielzug gewonnen haben, erhält der Gegner einen Punkt. Die Mannschaft von Spieler A behält das Aufschlagrecht und muss die Positionen korrigieren.", + "korrekt": false + }, + { + "text": "Der Schreiber wartet bis der Spielzug vollendet ist und macht den 2. Schiedsrichter auf den Regelverstoß aufmerksam. Es wird kein Punkt für den Spielzug vergeben. Der Schiedsrichter pfeift und gibt einen Punkt und das Aufschlagrecht dem Gegner.", + "korrekt": false + }, + { + "text": "Der Schreiber wartet bis der Spielzug vollendet ist und macht den 2. Schiedsrichter auf den Regelverstoß aufmerksam. Der 1. Schiedsrichter muss eine Sanktion wegen Verzögerung aussprechen, und der Gegner erhält das Aufschlagrecht. Sollte der Gegner den Spielzug gewonnen haben, erhält der Gegner auch einen Punkt.", + "korrekt": false + }, + { + "text": "Der Schreiber macht den 2. Schiedsrichter nach erfolgtem Aufschlag auf den Regelverstoß aufmerksam und dieser stoppt den Spielzug sofort.", + "korrekt": true + } + ] + }, + { + "frage": "Blockaktion von Mannschaft A. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Blockspieler darf den Ball direkt nach dem Block erneut berühren. Dies zählt als erste der drei erlaubten Ballberührungen.", + "korrekt": true + }, + { + "text": "Ein am Block beteiligter Spieler darf den Ball direkt nach dem Block nicht nochmals berühren.", + "korrekt": false + }, + { + "text": "Eine Netzberührung durch den Ball im Außensektor ist erlaubt.", + "korrekt": false + }, + { + "text": "Eine Netzberührung durch den Ball innerhalb des Überquerungssektors ist erlaubt.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind für die im Bild gezeigte Spielsituation regelgerecht?", + "antworten": [ + { + "text": "Die drei Blockspieler bilden einen Gruppenblock - unabhängig davon wer den Ball berührt.", + "korrekt": true + }, + { + "text": "Der Spieler ganz rechts ist nicht Teil des Gruppenblocks, da sich sein Kopf nicht oberhalb der Netzoberkante befindet.", + "korrekt": false + }, + { + "text": "Die drei Blockspieler bilden nur dann einen Gruppenblock, wenn alle Blockspieler den Ball bei dieser Aktion auch berühren.", + "korrekt": false + }, + { + "text": "Berühren mehrere Blockspieler den Ball (schnell und nacheinander) innerhalb einer Aktion, so ist dies kein Fehler.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Schiedsrichter-Aktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter erkennt einen Sichtblock. Beim ersten Mal verwarnt er die Mannschaft mündlich.", + "korrekt": false + }, + { + "text": "Nach einer Bestrafung wegen Spielverzögerung wird das Spiel erneut von derselben Mannschaft verzögert. Der 1. Schiedsrichter verhängt eine weitere Bestrafung wegen Spielverzögerung.", + "korrekt": true + }, + { + "text": "Der Ball fliegt nach der dritten Berührung einer Mannschaft ins Netz. Der 1. Schiedsrichter pfeift erst, wenn der Ball zu Boden fällt oder ein viertes Mal gespielt wird.", + "korrekt": true + }, + { + "text": "Eine Mannschaft reist mit dreizehn Spielern an. Der 1. Schiedsrichter lässt zu, dass alle Spieler in die Mannschaftsliste eingetragen werden, wobei der Libero nur in die besonders dafür vorgesehene Zeile eingeschrieben wird.", + "korrekt": false + } + ] + }, + { + "frage": "Der Trainer von Mannschaft A beschwert sich kurz nach dem regelgerechten Aufschlag seiner Mannschaft lautstark darüber, dass Mannschaft B einen Positionsfehler begangen habe. Wie reagieren die Schiedsrichter regelgerecht?", + "antworten": [ + { + "text": "Beide Schiedsrichter pfeifen so schnell wie möglich, um den Fehler zu ahnden.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter bittet nach dem Spielzug den Spielkapitän von Mannschaft A zu sich und ermahnt den Trainer.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter erkennt den Positionsfehler und pfeift.", + "korrekt": true + }, + { + "text": "Keiner der Schiedsrichter reagiert. Fehler, die von der gegnerischen Mannschaft eingefordert werden, werden generell nicht geahndet.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Sanktion (Verwarnung oder Bestrafung) wegen Spielverzögerung ist auszusprechen, wenn ...", + "antworten": [ + { + "text": "... ein Wechselspieler zum (normalen) Wechsel kommt, der im laufenden Satz schon einen anderen Spieler ersetzt hat.", + "korrekt": true + }, + { + "text": "... nach Beantragung einer dritten Auszeit durch die gleiche Mannschaft ein siebter Wechsel beantragt wird.", + "korrekt": true + }, + { + "text": "... ein Aufschlagspieler mit dem Ball im Spielfeld steht und sich trotz Aufforderung nicht zum Aufschlag bereitstellt.", + "korrekt": true + }, + { + "text": "... ein Spieler sein versehentlich gelockertes Schuhband zügig bindet.", + "korrekt": false + } + ] + }, + { + "frage": "Der Trainer beantragt zum ersten Mal eine Auszeit beim 2. Schiedsrichter, doch der 1. Schiedsrichter hat bereits zum Aufschlag gepfiffen. Der 2. Schiedsrichter unterbricht das Spiel. Wie ist zu verfahren?", + "antworten": [ + { + "text": "Die Mannschaft erhält eine Verwarnung wegen Verzögerung. Der Aufschlag wird erneut genehmigt.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter ignoriert den Pfiff des 2. Schiedsrichters und lässt unter der Voraussetzung weiterspielen, dass die Spieler den Spielzug nicht unterbrochen haben.", + "korrekt": false + }, + { + "text": "Der Trainer wird verwarnt und erhält die gelbe Karte.", + "korrekt": false + }, + { + "text": "Die Mannschaft erhält die beantragte Auszeit,", + "korrekt": false + } + ] + }, + { + "frage": "In der Rubrik „Mannschaften“ des Spielberichtsbogens sind im oberen Teil bei Mannschaft A 12 Spieler eingetragen. Ein weiterer Spieler, welcher nicht in einer der 12 Zeilen eingetragen ist, wurde in der Zeile „Libero/Player“ eingetragen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Bevor die Rubrik „Mannschaften“ vom Trainer und Mannschaftskapitän unterschrieben wird, muss Mannschaft A einen der oberen 12 Spieler streichen und dafür den Namen des Liberos eintragen.", + "korrekt": true + }, + { + "text": "Wenn der Libero nicht eingesetzt wird, wertet der Staffelleiter das Spiel nach dem sportlichen Ausgang.", + "korrekt": false + }, + { + "text": "Wenn alle Spieler zum Einsatz kommen, wertet der Staffelleiter das Spiel mit 0:3 Punkten, 0:3 Sätzen und 0:75 Ballpunkten zu Ungunsten von Mannschaft A.", + "korrekt": true + }, + { + "text": "Das ist zulässig. Alle Spieler dürfen eingesetzt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Trainer beantragt eine Auszeit. Der 2. Schiedsrichter pfeift. Danach wird er vom Schreiber darauf aufmerksam gemacht, dass es die dritte Auszeit für diese Mannschaft in diesem Satz sei. Die Mannschaft hat im Spielverlauf noch keinen unberechtigten Antrag gestellt. Welche Aussage(n) beschreibt/beschreiben eine regelgerechten Sachverhalt?", + "antworten": [ + { + "text": "Die Auszeit wird abgebrochen und die antragstellende Mannschaft wegen Verzögerung sanktioniert.", + "korrekt": true + }, + { + "text": "Die Auszeit wird abgebrochen und das Spiel ohne weitere Konsequenzen fortgeführt.", + "korrekt": false + }, + { + "text": "Die Auszeit wird abgebrochen, im Spielberichtsbogen Unberechtigter Antrag vermerkt und das Spiel ohne weitere Konsequenzen fortgeführt.", + "korrekt": false + }, + { + "text": "Die antragstellende Mannschaft wird wegen Verzögerung sanktioniert. Zusätzlich wird im Spielberichtsbogen Unberechtigter Antrag vermerkt.", + "korrekt": false + } + ] + }, + { + "frage": "Angriffsschlag eines Hinterspielers (kein Libero), wobei sich der Ball vollständig oberhalb der Netzoberkante befindet. Nach welcher/welchen vorhergehenden Aktion(en) ist das zulässig?", + "antworten": [ + { + "text": "Gebaggerter Pass des Liberos, der sich im Augenblick der Ballberührung in der eigenen Vorderzone befindet. Absprung des Hinterspielers hinter der Vorderzone.", + "korrekt": true + }, + { + "text": "Absprung des Hinterspielers hinter der Vorderzone.", + "korrekt": true + }, + { + "text": "Oberes Zuspiel des Liberos, der sich im Augenblick der Ballberührung in der eigenen Vorderzone befindet. Absprung des Hinterspielers hinter der Vorderzone.", + "korrekt": false + }, + { + "text": "Absprung des Hinterspielers in der Vorderzone.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Trainer einer Mannschaft ist auch als Spieler in die Mannschaftsliste eingetragen. Nach seinem Wechsel beantragt der Co-Trainer die erste Auszeit. Welche Aussage(n) beschreibt/beschreiben eine regelgerechte Vorgehensweise des Schiedsgerichts?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter pfeift und genehmigt die Auszeit", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter weist den Antrag als unberechtigt zurück, wenn es der erste unberechtigte Antrag dieser Mannschaft im Spiel ist. Der Schreiber kreuzt das Feld unberechtigter Antrag an.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter pfeift und weist den Antrag als unberechtigt ab, wenn vorher schon ein unberechtigter Antrag gestellt wurde. Der 1. Schiedsrichter sanktioniert wegen Verzögerung.", + "korrekt": true + } + ] + }, + { + "frage": "Der Ball fliegt nach der Annahme von Mannschaft B außerhalb der Antenne in die Freizone von Mannschaft A; von dort wird er von Spieler #5 von Mannschaft B ins eigene Spielfeld zurückgespielt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Angriff darf nicht oberhalb der Netzoberkante ausgeführt werden, wenn der Spieler #5 der Libero der Mannschaft B ist.", + "korrekt": false + }, + { + "text": "Der gegnerische Trainer darf dem Ball entgegenlaufen, ihn fangen und dabei den herbeieilenden Spieler der Mannschaft B behindern.", + "korrekt": false + }, + { + "text": "Wenn der Spieler #5 durch das Spielfeld von Mannschaft A gelaufen ist, ist das ebenfalls zulässig.", + "korrekt": false + }, + { + "text": "Das ist zulässig, wenn er außerhalb der Antennen auf derselben Seite zurückgespielt wird.", + "korrekt": true + } + ] + }, + { + "frage": "Der Ball fliegt nach der Annahme von Mannschaft B außerhalb der Antenne in die Freizone von Mannschaft A. Von dort wird er von einem anderen Spieler von Mannschaft B ins eigene Spielfeld zurückgespielt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Angriff darf nicht oberhalb der Netzoberkante ausgeführt werden, wenn der hinterhereilende Spieler der aktive Libero der Mannschaft B ist.", + "korrekt": false + }, + { + "text": "Der gegnerische Trainer darf dem Ball entgegenlaufen, ihn fangen und dabei den herbeieilenden Spieler der Mannschaft B behindern.", + "korrekt": false + }, + { + "text": "Das ist zulässig, wenn er außerhalb der Antennen auf derselben Seite zurückgespielt wird.", + "korrekt": true + }, + { + "text": "Das ist zulässig, auch wenn der Spieler von Mannschaft B durch das Spielfeld von Mannschaft A gelaufen ist.", + "korrekt": false + } + ] + }, + { + "frage": "Welche der beschriebenen Aktion(en) eines Hinterspielers ist/sind erlaubt?", + "antworten": [ + { + "text": "Der Spieler (kein Libero) streckt seine Hände in der Nähe des Netzes Richtung Netzoberkante, reicht dabei nicht über die Netzoberkante, der angegriffene Ball berührt ihn.", + "korrekt": true + }, + { + "text": "Der Spieler (Libero) unternimmt einen Blockversuch, der Gegner schlägt den Ball ins \"Aus\".", + "korrekt": false + }, + { + "text": "Der Spieler (kein Libero) unternimmt einen Blockversuch, der Gegner schlägt den Ball ins \"Aus\".", + "korrekt": true + }, + { + "text": "Der Spieler (kein Libero) nimmt an einem ausgeführten Gruppenblock teil.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A begeht einen Rotationsfehler. Der 2. Schiedsrichter pfeift deshalb den Spielzug ab. Beide Mannschaften haben Punkte erzielt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Mannschaft B gewinnt den Spielzug, erhält einen Punkt und das Aufschlagrecht. Mannschaft A muss die richtige Rotationsfolge einnehmen. Kann nicht ermittelt werden, seit wann Mannschaft A in der falschen Rotationsfolge gespielt hat, werden keine Punkte der Mannschat A annulliert.", + "korrekt": true + }, + { + "text": "Mannschaft B gewinnt den Spielzug, erhält einen Punkt und das Aufschlagrecht. Mannschaft A muss die korrekte Rotationsfolge einnehmen. Wenn festgestellt werden kann, seit wann die Mannschaft A in der falschen Rotationsfolge gespielt hat, werden die in dieser Zeit erzielten Punkte von Mannschaft A annulliert.", + "korrekt": true + }, + { + "text": "Mannschaft A werden nur die fälschlich erzielten Punkte aberkannt. Die Punkte von Mannschaft B bleiben gültig.", + "korrekt": false + }, + { + "text": "Beiden Mannschaften werden die erzielten Punkte abgezogen. Der Satz wird zu dem Zeitpunkt wieder aufgenommen, an dem Mannschaft A zuletzt in der richtigen Aufstellung spielte.", + "korrekt": false + } + ] + }, + { + "frage": "In welchem Fall/welchen Fällen liegt ein Fehler vor?", + "antworten": [ + { + "text": "Ein Hinterspieler nimmt an einem Block teil, der Ball berührt keinen der am Block beteiligten Spieler.", + "korrekt": false + }, + { + "text": "Ein Blockspieler berührt das Netz beim Umdrehen nach erfolgter, sicherer Landung, ohne das Spiel zu beeinflussen.", + "korrekt": false + }, + { + "text": "Ein Hinterspieler spielt einen Ball, der sich vollständig oberhalb der Netzoberkante befindet, in der Vorderzone einem Mitspieler zu. Der Ball bleibt dabei auf der Seite dieser Mannschaft.", + "korrekt": false + }, + { + "text": "Der Libero nimmt an einem Blockversuch teil.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) trifft/treffen auf den Spielkapitän zu?", + "antworten": [ + { + "text": "Er kann, genau wie der Trainer, immer Auszeiten beantragen.", + "korrekt": false + }, + { + "text": "Er kann den 2. Schiedsrichter bitten, seine Entscheidung hinsichtlich einer Regelauslegung zu erläutern.", + "korrekt": true + }, + { + "text": "Er vertritt die Mannschaft bei der Auslosung.", + "korrekt": false + }, + { + "text": "Er kann die Überprüfung der Aufstellungen der Mannschaften beantragen.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53628)", + "antworten": [] + }, + { + "frage": "Während des Spieles äußert sich der einzige Libero ausfallend gegenüber dem gegnerischen Trainer. Der 1. Schiedsrichter stellt den Libero hinaus. Der Trainer des hinausgestellten Liberos möchte einen anderen Spieler als Libero neu benennen. Der 2. Schiedsrichter ...", + "antworten": [ + { + "text": "… gestattet die Neubenennung und weist den „alten“ Libero aus dem Wettkampfbereich.", + "korrekt": false + }, + { + "text": "… gestattet die Neubenennung und weist den „alten“ Libero an sich in die Umkleidekabine der Mannschaft zu begeben. Danach darf er nicht mehr am Spiel teilnehmen.", + "korrekt": true + }, + { + "text": "… lehnt die Neubenennung ab und weist den Libero an, sich in die Umkleidekabine der Mannschaft zu begeben. Die Mannschaft muss das Spiel ohne Libero zu Ende spielen.", + "korrekt": false + }, + { + "text": "… lehnt die Neubenennung ab und weist den Libero an sich in die Umkleidekabine der Mannschaft zu begeben. Im folgenden Satz ist der Libero wieder spielberechtigt.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler verletzt sich und kann nicht weiterspielen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der verletzte Spieler darf nur regulär gewechselt werden.", + "korrekt": false + }, + { + "text": "Für einen verletzten Libero darf die Mannschaft im Laufe des Spieles einen neuen Libero benennen.", + "korrekt": true + }, + { + "text": "Bei Verletzung eines Spielers können beide Schiedsrichter den Spielzug unterbrechen.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter gewährt eine Schiedsrichterauszeit.", + "korrekt": false + } + ] + }, + { + "frage": "Vor Satzbeginn trägt der Trainer die Startaufstellung auf dem Aufstellungsblatt ein und übergibt dieses dem 2. Schiedsrichter. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter nimmt die Aufstellungsblätter entgegen und vergleicht die Eintragungen mit den Trikotnummern der auf dem Spielfeld befindlichen Spieler. Danach gibt er die Aufstellungsblätter den beiden Trainern zurück.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter übergibt die Aufstellungsblätter beider Mannschaften dem Schreiber und kontrolliert die Übertragung in den Spielberichtsbogen.", + "korrekt": true + }, + { + "text": "Nach der Kontrolle der Richtigkeit der Eintragungen genehmigt er jeweils die Libero-Austauschaktion mit einem der Grundspieler.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter lässt beide Aufstellungsblätter nach erfolgter Übertragung in den Spielberichtsbogen auf dem Schreibertisch liegen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Befugnisse/Zuständigkeiten hat der 2. Schiedsrichter während des Spieles?", + "antworten": [ + { + "text": "Er überwacht die Spieler auf den Aufwärmflächen und den Mannschaftsbänken.", + "korrekt": true + }, + { + "text": "Er entscheidet bei Positionsfehlern der aufschlagenden Mannschaft.", + "korrekt": false + }, + { + "text": "Er entscheidet bei fehlerhaften Angriffen von Hinterspielern.", + "korrekt": true + }, + { + "text": "Er weist unberechtigter Anträge zurück.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Trainer ist auch als Spieler in die Rubrik „Mannschaften“ eingetragen (Spielertrainer). Er ist nicht Mannschaftskapitän bzw. Libero. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Er darf als Wechselantrang die Wechselzonen betreten, um sich selbst einzuwechseln.", + "korrekt": true + }, + { + "text": "Als Feldspieler kann er Spielkapitän werden, wenn der bisherige Spielkapitän das Feld verlässt.", + "korrekt": true + }, + { + "text": "Er darf seine Mannschaft vor der Mannschaftsbank stehend coachen.", + "korrekt": true + }, + { + "text": "Er darf an einem Wechsel teilnehmen, um sich selbst auszuwechseln.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einem Spielzug beantragt Mannschaft A einen Wechsel, der gewährt wird. Direkt danach wird ein Spieler der gegnerischen Mannschaft bestraft. Vor Genehmigung des nächsten Aufschlages, beantragt Mannschaft A einen weiteren Wechsel, der vom 2. Schiedsrichter zurückgewiesen wird. Ist die Entscheidung des 2. Schiedsrichter regelgerecht?", + "antworten": [ + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler (nicht der Libero) verletzt sich und kann nicht regulär gewechselt werden. Welche Aussage(n) bezüglich dieser Situation ist/sind regelgerecht?", + "antworten": [ + { + "text": "Wenn kein ausnahmsweiser Wechsel möglich ist, muss die Mannschaft ihre restlichen Auszeiten nehmen; danach wird dem verletzten Spieler eine dreiminütige Wiederherstellungszeit gewährt.", + "korrekt": false + }, + { + "text": "Wenn kein ausnahmsweiser Wechsel möglich ist, wird dem verletzten Spieler einmalig pro Spiel eine dreiminütige Wiederherstellungszeit gewährt.", + "korrekt": true + }, + { + "text": "Wenn ein ausnahmsweiser Wechsel möglich ist, muss dieser durchgeführt werden (ohne dem verletzten Spieler eine dreiminütige Wiederherstellungszeit zu gewähren).", + "korrekt": true + } + ] + }, + { + "frage": "Der 2. Schiedsrichter stellt vor Satzbeginn fest, dass sich auf dem Spielfeld ein Spieler befindet, dessen Trikotnummer nicht auf dem Aufstellungsblatt vorhanden ist. Welche Möglichkeit(en) ist/sind regelkonform?", + "antworten": [ + { + "text": "Die Mannschaft erhält eine Verwarnung wegen Verzögerung und der Trainer muss ein neues Aufstellungsblatt abgeben.", + "korrekt": false + }, + { + "text": "Der Spieler bleibt in jedem Fall auf dem Spielfeld. Das Aufstellungsblatt und der Spielberichtsbogen werden korrigiert.", + "korrekt": false + }, + { + "text": "Der Spieler kann auf dem Spielfeld bleiben. Dies ist der erste Wechsel der betreffenden Mannschaft in diesem Satz.", + "korrekt": true + }, + { + "text": "Der Spieler, dessen Trikotnummer auf dem Aufstellungsblatt vermerkt ist, kann den „falschen“ Spieler ersetzen.", + "korrekt": true + } + ] + }, + { + "frage": "Bis zu welchem Zeitpunkt sind die Spieler der annehmenden Mannschaft an ihre Positionen gebunden?", + "antworten": [ + { + "text": "Sie sind solange an ihre Position gebunden, bis der Aufschlagspieler den vom 1. Schiedsrichter genehmigten Aufschlag ausführt (Zeitpunkt des Schlags).", + "korrekt": true + }, + { + "text": "Sie sind solange an ihre Position gebunden, bis der Aufschlagspieler gelandet ist.", + "korrekt": false + }, + { + "text": "Sie sind solange an ihre Position gebunden, bis der 1. Schiedsrichter zur Ausführung des Aufschlages gepfiffen hat.", + "korrekt": false + }, + { + "text": "Sie sind solange an ihre Position gebunden, bis der vom Aufschlagspieler geschlagene Ball die vertikale Netzebene durchquert hat.", + "korrekt": false + } + ] + }, + { + "frage": "Unangemessenes Verhalten eines Spielers im vierten Satz. Derselbe Spieler wurde bereits im zweiten Satz bestraft (rote Karte). Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spieler wird bestraft. Punkt und Aufschlag für den Gegner.", + "korrekt": false + }, + { + "text": "Der Spieler wird hinausgestellt. Der Spieler muss gewechselt werden.", + "korrekt": true + }, + { + "text": "Der Spieler wird disqualifiziert. Keine weiteren Folgen.", + "korrekt": false + }, + { + "text": "Der Spieler wird hinausgestellt. Punkt und Aufschlag für den Gegner.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft B blockt den gegnerischen Angriff, wobei sich die Hände und der Ball über der eigenen Spielfeldhälfte befinden. Der Ball fliegt über die Antenne in den freien Spielraum oberhalb der Freizone von Mannschaft A. Ein Spieler von B läuft dem Ball hinterher und spielt ihn über die gleiche Antenne zurück in das eigene Spielfeld. Sind diese Aktionen regelgerecht?", + "antworten": [ + { + "text": "Nein. Der Schiedsrichter zeigt das Handzeichen #24 (Ball berührt).", + "korrekt": false + }, + { + "text": "Nein. Der Schiedsrichter zeigt das Handzeichen #15 (Ball aus).", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Der Schiedsrichter entscheidet auf Spielzugwiederholung.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Bedingungen müssen erfüllt sein, damit der 1. Schiedsrichter den Aufschlag genehmigen darf?", + "antworten": [ + { + "text": "Der Aufschlagspieler befindet sich in Ballbesitz und hat Blickkontakt zum 1. Schiedsrichter.", + "korrekt": false + }, + { + "text": "Der Aufschlagspieler befindet sich in Ballbesitz und beide Mannschaften sind spielbereit.", + "korrekt": true + }, + { + "text": "Der Aufschlagspieler befindet sich in der Aufschlagzone und beide Mannschaften sind spielbereit.", + "korrekt": false + }, + { + "text": "Der Aufschlagspieler befindet sich in der Aufschlagzone und in Ballbesitz.", + "korrekt": false + } + ] + }, + { + "frage": "Die Feldabwehr von Mannschaft B (erste Ballberührung) fliegt in die Nähe der eigenen Mannschaftsbank. Der Libero von Mannschaft B läuft hinterher und kann diesen Ball kurz vor der Mannschaftsbank erreichen. Er hält ihn regulär im Spiel, wenn ...", + "antworten": [ + { + "text": "… er ihn vollständig oberhalb der Netzoberkante direkt zum Gegner schlägt (der Ball überquert dabei das Netz innerhalb des Überquerungssektors).", + "korrekt": false + }, + { + "text": "… er ihn ins eigene Spielfeld baggert.", + "korrekt": true + }, + { + "text": "… er ihn ins eigene Spielfeld pritscht.", + "korrekt": true + }, + { + "text": "… er ihn mit dem Fuß zurück ins eigene Spielfeld spielt.", + "korrekt": true + } + ] + }, + { + "frage": "Der Libero darf ...", + "antworten": [ + { + "text": "... im Verletzungsfall eines anderen Spielers zum normalen Spieler umfunktioniert werden.", + "korrekt": false + }, + { + "text": "... einen Angriffsschlag ausführen.", + "korrekt": true + }, + { + "text": "... einen Zuspielbagger in der Angriffzone ausführen.", + "korrekt": true + }, + { + "text": "... in der gleichen Unterbrechung ein- und ausgetauscht werden.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Blockspieler zieht seine Arme kurz vor dem Angriff des Gegners nach unten, wird aber trotzdem vom Ball unterhalb der Netzoberkante am Kopf getroffen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Berührung des Blockspielers wird nur dann als Block gewertet, wenn sich während der Berührung eines seiner Körperteile oberhalb der Netzoberkante und in der Nähe des Netzes befindet.", + "korrekt": true + }, + { + "text": "Der Blockspieler darf den Ball ein zweites Mal berühren, wenn sich keines seiner Körperteile während der Berührung oberhalb der Netzoberkante befindet.", + "korrekt": false + }, + { + "text": "Der Blockspieler darf den Ball ein zweites Mal berühren, wenn sich er sich bei der ersten Berührung mit einem Körperteil oberhalb der Netzoberkante befand.", + "korrekt": true + }, + { + "text": "Die Berührung des Blockspielers zählt als 1. Ballberührung, wenn sich keines seiner Körperteile während der Berührung oberhalb der Netzoberkante befindet.", + "korrekt": true + } + ] + }, + { + "frage": "Darf der Spielkapitän Fragen über die Auslegung der Regeln an den 2. Schiedsrichter richten, wenn der Ball aus dem Spiel ist?", + "antworten": [ + { + "text": "Nein, denn nur der Mannschaftskapitän darf mit dem Schiedsrichter sprechen.", + "korrekt": false + }, + { + "text": "Nein, er darf Fragen nur an den 1. Schiedsrichter richten.", + "korrekt": false + }, + { + "text": "Ja, er darf sich an den 2. Schiedsrichter wenden, wenn das Anliegen im Aufgabenbereich des 2. Schiedsrichters liegt.", + "korrekt": true + }, + { + "text": "Ja, er darf sich mit allen Fragen an den 2. Schiedsrichter wenden.", + "korrekt": false + } + ] + }, + { + "frage": "Wann gilt ein Angriff als abgeschlossen?", + "antworten": [ + { + "text": "Wenn der Ball vom gegnerischen Block berührt wurde.", + "korrekt": true + }, + { + "text": "Wenn der Ball die Netzebene oberhalb der Netzoberkante beginnt zu durchqueren.", + "korrekt": false + }, + { + "text": "Wenn der Ball die Netzebene oberhalb der Netzoberkante vollständig durchquert hat.", + "korrekt": true + }, + { + "text": "Wenn der Ball die Hand des Angreifers verlassen hat.", + "korrekt": false + } + ] + }, + { + "frage": "Dürfen nach dem Eintragen der Startaufstellung im Spielberichtsbogen noch vor Anpfiff des Spieles Wechsel vorgenommen werden?", + "antworten": [ + { + "text": "Ja, als reguläre Wechsel mit entsprechender Eintragung.", + "korrekt": true + }, + { + "text": "Ja, aber nur bei Verletzung eines Spielers der Startaufstellung.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, mit Streichen und Neueintragen.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball befindet sich mit vollem Umfang oberhalb der Netzoberkante teilweise im Raum von Mannschaft A. In welchem Fall muss der 1. Schiedsrichter pfeifen?", + "antworten": [ + { + "text": "Der zuspielende Hinterspieler (Läufer) von Mannschaft B spielt den Ball in seiner Vorderzone und in seinem Spielraum. Danach durchquert der Ball die Netzebene vollständig.", + "korrekt": true + }, + { + "text": "Zwei Gegner spielen den Ball gleichzeitig jeweils auf ihrer Seite, dabei kommt der Ball nicht zur Ruhe.", + "korrekt": false + }, + { + "text": "Zwei Gegner spielen den Ball gleichzeitig jeweils auf ihrer Seite, dabei kommt der Ball deutlich im Raum von Mannschaft A zur Ruhe.", + "korrekt": false + }, + { + "text": "Ein Vorderspieler von Mannschaft A blockt den Ball in seinem Spielraum.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Hinterspieler (kein Libero) nimmt an einer Spielaktion teil. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Hinterspieler darf sich an einem ausgeführten Block beteiligen.", + "korrekt": false + }, + { + "text": "Der Hinterspieler darf an einem Blockversuch teilnehmen.", + "korrekt": true + }, + { + "text": "Der Hinterspieler darf nach Absprung in der Wechselzone einen vollständig oberhalb der Netzoberkante befindlichen Ball gegen den übergreifenden Block des Gegners schmettern.", + "korrekt": false + }, + { + "text": "Der Hinterspieler darf einen vollständig oberhalb der Netzoberkante befindlichen Ball nach Absprung aus der Hinterzone zum Gegner schlagen.", + "korrekt": true + } + ] + }, + { + "frage": "Der Trainer wartet zu lange mit seinem Antrag auf Auszeit. Der 2. Schiedsrichter pfeift, allerdings nachdem der 1. Schiedsrichter den Aufschlag bereits freigegeben hat. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Auszeit wird gestattet und die Mannschaft wird verwarnt.", + "korrekt": false + }, + { + "text": "Die Auszeit wird nicht gestattet, die Mannschaft wird wegen Verzögerung verwarnt, der Aufschlag wird wiederholt.", + "korrekt": true + }, + { + "text": "Die Auszeit wird nicht gestattet und der Aufschlag wird wiederholt.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Wettkampfbereich umfasst die Spielfläche sowie alle anderen Flächen bis zur äußeren Begrenzung.", + "korrekt": true + }, + { + "text": "Die Mannschaftsbänke befinden sich innerhalb der Freizone.", + "korrekt": false + }, + { + "text": "Die Spielfeldhälfte einer Mannschaft ist 9,00 m lang und 9,00 m breit.", + "korrekt": false + }, + { + "text": "Für verschiedene Altersklassen sind unterschiedliche Netzhöhen vorgesehen.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aktion(en)/welche(r) Sachverhalt(e) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Ball befindet sich vollständig oberhalb der Netzoberkante und ein Vorderspieler führt einen Angriffsschlag aus, nachdem er in der Freizone abgesprungen ist.", + "korrekt": true + }, + { + "text": "Der Libero schlägt einen Ball, der sich nicht vollständig oberhalb der Netzoberkante befindet.", + "korrekt": true + }, + { + "text": "Ein Angreifer schlägt den Ball auf der Seite des Gegners auf den Boden und läuft nach der Landung unter dem Netz durch in die gegnerische Spielfeldhälfte.", + "korrekt": true + }, + { + "text": "Ein Spieler pritscht den Aufschlag des Gegners direkt zurück. Die Ballberührung findet in der Vorderzone und vollständig oberhalb der Netzoberkante statt.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Sanktion (Verwarnung oder Bestrafung) wegen Spielverzögerung ist auszusprechen, wenn ...", + "antworten": [ + { + "text": "... nach Beantragung einer dritten Auszeit im nächsten Satz ein siebter Wechsel beantragt wird.", + "korrekt": true + }, + { + "text": "... ein Aufschlagspieler mit dem Ball im Spielfeld steht und sich nicht zum Aufschlag bereitstellt.", + "korrekt": true + }, + { + "text": "... ein Spieler sein gelockertes Schuhband zügig bindet.", + "korrekt": false + }, + { + "text": "... ein Wechselspieler die Wechselzone betritt, der im laufenden Satz schon einen anderen Spieler ersetzt hat.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Angriffsschlag gilt in dem Moment als ausgeführt, wenn der Ball geblockt oder vom Gegner angenommen wird.", + "korrekt": false + }, + { + "text": "Beim Angriffsschlag eines Vorderspielers darf der Ball von ihm nur im eigenen Spielraum berührt werden.", + "korrekt": true + }, + { + "text": "Ein Hinterspieler darf den Ball aus der Vorderzone im oberen Zuspiel (Pritschen) zum Gegner spielen, auch wenn sich der Ball dabei vollständig oberhalb der Netzoberkante befindet.", + "korrekt": false + }, + { + "text": "Ein Hinterspieler darf einen Angriffsschlag auch aus der Vorderzone ausführen, wenn sich ein Teil des Balles unterhalb der Netzoberkante befindet.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53630)", + "antworten": [] + }, + { + "frage": "Welche Aussagen(n) beschreibt/beschreiben eine regelgerechte Vorgehensweise des Schiedsgerichts?", + "antworten": [ + { + "text": "Ein vom Block abprallender Ball wird von dem Blockspieler sofort ein weiteres Mal im Rahmen einer neuen Spielaktion berührt. Der 1. Schiedsrichter unterbricht das Spiel nicht.", + "korrekt": true + }, + { + "text": "Ein Zuspieler erläuft den Ball nach einer missglückten Ballannahme seines Mitspielers. Dabei berührt er den Ball zweimal direkt nacheinander. Der 1. Schiedsrichter ahndet dies als Doppelberührung.", + "korrekt": true + }, + { + "text": "Bei der Ballannahme (erste Ballberührung) berührt der Ball erst die Arme und in derselben Aktion auch den Kopf des Spielers. Der 1. Schiedsrichter unterbricht das Spiel nicht.", + "korrekt": true + }, + { + "text": "Der Libero berührt den Ball mit dem Fuß. Der 1. Schiedsrichter ahndet dies als Fehler.", + "korrekt": false + } + ] + }, + { + "frage": "Bei der Kontrolle der Startaufstellung vor Satz 1 stellt der 2. Schiedsrichter fest, dass sich ein Spieler auf dem Spielfeld befindet, dessen Trikotnummer nicht auf dem Aufstellungsblatt der Mannschaft vermerkt ist. Welche Vorgehensweise(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Aufstellung darf so korrigiert werden, wie sie auf dem Aufstellungsblatt eingetragen ist. Es wird keine Sanktion ausgesprochen.", + "korrekt": true + }, + { + "text": "Das Aufstellungsblatt und der Spielberichtsbogen müssen auf Antrag des Trainers korrigiert werden.", + "korrekt": false + }, + { + "text": "Der «falsche» Spieler kann auf dem Spielfeld verbleiben, wenn der Trainer dies beantragt. Der normale Wechsel ist im Spielberichtsbogen einzutragen (Spielstand 0:0).", + "korrekt": true + }, + { + "text": "Der «falsche» Spieler muss ersetzt werden, da ein Wechsel vor Beginn des Satzes nicht zulässig ist.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A stellt im ersten Satz erstmals einen unberechtigten Antrag (nach Genehmigung des Aufschlages wird eine Auszeit beantragt). Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spielzug wird unterbrochen, die Auszeit gewährt.", + "korrekt": false + }, + { + "text": "Der Antrag wird durch den 2. Schiedsrichter (ohne Spielzugunterbrechung) zurückgewiesen und der unberechtigte Antrag wird nach dem Spielzug notiert.", + "korrekt": true + }, + { + "text": "Der Trainer wird verwarnt.", + "korrekt": false + }, + { + "text": "Unterbricht der 2. Schiedsrichter den Spielzug, liegt eine Verzögerung vor. Der Antrag wird nicht genehmigt.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein nach einer Verletzung ausnahmsweise gewechselter Spieler darf erst im nächsten Satz wieder eingewechselt werden.", + "korrekt": false + }, + { + "text": "Nach einer Spielzugwiederholung (zusätzlicher Ball im Spiel) genehmigt der 2. Schiedsrichter eine Auszeit.", + "korrekt": false + }, + { + "text": "Nach einer Spielzugwiederholung aufgrund einer Verletzung darf der verletzte Spieler gewechselt werden.", + "korrekt": true + }, + { + "text": "Ein nach einer Verletzung normal gewechselter Spieler darf im gleichen Satz wieder eingewechselt werden, sofern er in diesem Satz in der Startaufstellung stand.", + "korrekt": true + } + ] + }, + { + "frage": "Nach der Ausführung des Aufschlages bei Mannschaft A meldet der Schreiber, dass der falsche Spieler am Aufschlag ist. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Mannschaft B erhält einen Punkt, das Aufschlagrecht und rotiert eine Position weiter.", + "korrekt": true + }, + { + "text": "Sämtliche Punkte von Mannschaft A, die mit dem falschen Aufschlagspieler nachvollziehbar erzielt wurden, werden annulliert.", + "korrekt": true + }, + { + "text": "Alle während der fehlerhaften Aufstellung von beiden Mannschaften erzielten Punkte sind zu annullieren.", + "korrekt": false + }, + { + "text": "Der Spielzug ist sofort zu unterbrechen, und die richtige Aufstellung ist einzunehmen.", + "korrekt": true + } + ] + }, + { + "frage": "Der Hinterspieler #6 Mannschaft A (kein Libero) führt einen Angriffsschlag aus, wobei sich der Ball vollständig oberhalb der Netzoberkante befindet. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dies ist auch dann erlaubt, wenn der Ball durch ein oberes Fingerzuspiel des Liberos in der eigenen Vorderzone zum Hinterspieler #6 gespielt wurde.", + "korrekt": false + }, + { + "text": "Oberes Fingerzuspiel des Liberos in der Hinterzone; Absprung des Hinterspielers in der Hinterzone.", + "korrekt": true + }, + { + "text": "Dies ist dann erlaubt, wenn der Libero den Ball zum Hinterspieler #6 baggert, obwohl der Libero sich dabei im Augenblick der Ballberührung in der eigenen Vorderzone befindet.", + "korrekt": true + }, + { + "text": "Dies ist erlaubt, wenn der Hinterspieler #6 in der Vorderzone abgesprungen ist.", + "korrekt": false + } + ] + }, + { + "frage": "Der Spieler #10, nicht in der Startaufstellung, wird eingewechselt. Gleich darauf wird er wegen unangemessenen Verhaltens bestraft. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Spieler #10 darf sofort wieder normal gewechselt werden.", + "korrekt": true + }, + { + "text": "Spieler #10 muss sofort wieder normal gewechselt werden und sich in die Umkleidekabine der Mannschaft begeben.", + "korrekt": false + }, + { + "text": "Legt Spieler #10 in der Folge noch ein weiteres Mal ein unangemessenes Verhalten an den Tag, muss er disqualifiziert werden.", + "korrekt": false + }, + { + "text": "Spieler #10 darf nicht sofort wieder normal gewechselt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Trainer ist auch als Spieler in die Mannschaftsliste seiner Mannschaft eingetragen (Spielertrainer). Er ist nicht Mannschaftskapitän. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Er darf als Spieler auf dem Feld Auszeiten beantragen.", + "korrekt": false + }, + { + "text": "Er darf kein Libero sein.", + "korrekt": false + }, + { + "text": "Er darf sich in der Freizone zwischen der Angriffslinie und der Grundlinie aufhalten.", + "korrekt": true + }, + { + "text": "Als Libero darf er seine Mannschaft vor der Mannschaftsbank coachen.", + "korrekt": true + } + ] + }, + { + "frage": "Der Trainer von Mannschaft B schickt nach einem vollendeten Spielzug vier Spieler gleichzeitig in die Wechselzone. Die Mannschaft hat in diesem Satz bereits dreimal gewechselt. Das Sanktionsfeld ist bisher komplett ohne Eintragungen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter erinnert den Trainer von Mannschaft B daran, dass maximal drei Wechsel erlaubt sind, fragt, welche Wechsel durchgeführt werden sollen und lässt diese zu. Es kommt zu keiner Verzögerung. Im Spielberichtsbogen wird ein unberechtigter Antrag für Mannschaft B vermerkt, da die nicht durchgeführten Wechsel zurückgewiesen werden.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter weist alle vier Wechsel zurück, weil dadurch die Gesamtzahl der zur Verfügung stehenden Wechsel überschritten werden würde.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter erinnert den Trainer von Mannschaft B daran, dass maximal drei Wechsel erlaubt sind, fragt, welche Wechsel durchgeführt werden sollen und lässt diese zu. Es kommt zu einer längeren Diskussion mit dem Trainer. Mannschaft B erhält eine Verwarnung wegen Verzögerung.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter genehmigt alle vier Wechsel.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler zeigt zum ersten Mal ein sanktionswürdiges Fehlverhalten. In welchen Fällen ist eine Hinausstellung die korrekte Sanktion?", + "antworten": [ + { + "text": "… dann, wenn ein Spieler eine diffamierende Geste zu einem eigenen Mitspieler macht.", + "korrekt": true + }, + { + "text": "… dann, wenn nach einer Entscheidung des Schiedsrichters ein Spieler eine unangemessene Geste zeigt.", + "korrekt": false + }, + { + "text": "… dann, wenn ein Spieler ein aggressives Verhalten gegen einen gegnerischen Spieler zeigt.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Trainer ist auch als Spieler in die Mannschaftsliste seiner Mannschaft eingetragen (Spielertrainer). Er ist nicht Mannschaftskapitän. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Er darf eine Auszeit beantragen, wenn er sich nicht auf dem Spielfeld befindet.", + "korrekt": true + }, + { + "text": "Er darf seine Mannschaft, vor der Mannschaftsbank stehend, coachen.", + "korrekt": true + }, + { + "text": "Wenn er auf dem Spielfeld steht, kann er Spielkapitän werden, wenn der bisherige Spielkapitän das Spielfeld verlässt.", + "korrekt": true + }, + { + "text": "Er darf eine Auszeit beantragen, wenn er sich auf dem Spielfeld befindet.", + "korrekt": false + } + ] + }, + { + "frage": "Auf Spielzugwiederholung ist zu entscheiden, wenn ...", + "antworten": [ + { + "text": "... ein Hinterspieler in der Vorderzone abspringt und den Ball oberhalb der Netzoberkante in Richtung Gegner schlägt; danach berührt der übergreifende Block, an dem ein Hinterspieler beteiligt ist, den Ball.", + "korrekt": true + }, + { + "text": "... sich ein Spieler während eines Spielzuges ernsthaft verletzt und der Spielzug beendet wurde.", + "korrekt": true + }, + { + "text": "... der Aufschlagspieler den Ball aus der Aufschlagzone schlägt, der Ball aber das Netz nicht überquert und die annehmende Mannschaft einen Positionsfehler begeht.", + "korrekt": false + }, + { + "text": "... der Aufschlagspieler vor dem Pfiff des 1. Schiedsrichters den Aufschlag ausführt.", + "korrekt": true + } + ] + }, + { + "frage": "Mannschaft A hat das Aufschlagrecht. Welche Entscheidung(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Nach der korrekten Ausführung des Aufschlages fliegt der Ball ins Netz und fällt danach in das Spielfeld von Mannschaft A. Der 2. Schiedsrichter erkennt und pfeift einen Positionsfehler der annehmenden Mannschaft B. Der 1. Schiedsrichter entscheidet auf Doppelfehler und Spielzugwiederholung.", + "korrekt": false + }, + { + "text": "Beim Hochwerfen berührt der Ball einen Gegenstand. Der Schiedsrichter entscheidet auf Spielzugverlust für Mannschaft A.", + "korrekt": true + }, + { + "text": "Nach der Genehmigung des Aufschlages merkt der Aufschlagspieler, dass ein anderer Spieler den Aufschlag ausführen muss. Er wirft diesem den Ball zu, beide gehen auf ihre korrekte Position und innerhalb von 8 Sekunden nach dem Pfiff führt der korrekte Spieler den Aufschlag aus. Der 1. Schiedsrichter lässt weiterspielen.", + "korrekt": true + }, + { + "text": "Der Aufschlag berührt das Netz und fällt ohne weitere Berührung in das Spielfeld von Mannschaft B. Der Schiedsrichter entscheidet auf Spielzugverlust für Mannschaft B (Punkt für A).", + "korrekt": true + } + ] + }, + { + "frage": "Nach zwei schlechten Annahmen von Mannschaft A tauscht der Trainer den Libero (aktuell auf Position VI) aus, um ihn sofort (ohne dass ein Spielzug dazwischen liegt) auf Position V wieder einzutauschen. Der 2. Schiedsrichter bemerkt dies nicht. Der 1. Schiedsrichter sieht dies jedoch, pfeift gleichwohl zum Aufschlag und beendet den Spielzug gleich wieder. Er zeigt einen Positionsfehler der annehmenden Mannschaft A an. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter hat regelgerecht gehandelt.", + "korrekt": false + }, + { + "text": "Da der 2. Schiedsrichter diese irreguläre Libero-Austauschaktion nicht bemerkte, hilft der 1. Schiedsrichter dem 2. Schiedsrichter, indem er pfeift und den Austausch zurückweist. Er holt sich den Mannschaftskapitän zu sich und erklärt ihm die fälschliche Libero-Austauschaktion. Der 1. Schiedsrichter spricht eine Sanktion wegen Verzögerung aus. Der Spielzug wird wiederholt.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter darf keine Positionsfehler der annehmenden Mannschaft pfeifen.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A spielt in der falschen Aufschlagreihenfolge (Rotation). Der 2. Schiedsrichter pfeift deshalb den Spielzug ab. Beide Mannschaften haben Punkte erzielt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Mannschaft B erhält einen Punkt und bekommt den Aufschlag. Die Punkte von beiden Mannschaften, die in der falschen Aufstellung der Mannschaft A erzielt worden sind, werden annulliert", + "korrekt": false + }, + { + "text": "Mannschaft B erhält einen Punkt und bekommt den Aufschlag. Die Punkte von Mannschaft A und B bleiben erhalten, wenn nicht festgestellt werden kann, wie viele Punkte Mannschaft A mit der falschen Aufstellung erzielt hat.", + "korrekt": true + }, + { + "text": "Die Aufstellung von Mannschaft A wird vom 2. Schiedsrichter korrigiert und anschließend wird der Spielzug wiederholt. Es wird keine weitere Sanktion gegen Mannschaft A ausgesprochen.", + "korrekt": false + }, + { + "text": "Mannschaft B erhält einen Punkt und bekommt den Aufschlag. Die Punkte von Mannschaft A und B bleiben erhalten egal, ob festgestellt werden kann, wie viele Punkte Mannschaft A mit der falschen Aufstellung erzielt hat.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler wird im zweiten Satz (Spielstand: 18:9) hinausgestellt und kann nicht normal gewechselt werden. Welche Aussage(n) beschreibt/beschreiben einen regelgerechten Sachverhalt?", + "antworten": [ + { + "text": "Der Spieler muss ausnahmsweise gewechselt werden.", + "korrekt": true + }, + { + "text": "Befindet sich der Spieler zum Zeitpunkt der Hinausstellung auf Position VI, kann er gegen den einzigen derzeit nicht auf dem Spielfeld befindlichen Libero getauscht werden, bis dieser auf Position IV rotieren müsste.", + "korrekt": false + }, + { + "text": "Die Mannschaft verliert den Satz, behält aber die bis dahin erzielten Punkte.", + "korrekt": false + }, + { + "text": "Die Mannschaft verliert das Spiel.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Vorderspieler springt in der Vorderzone ab und schmettert den vollständig oberhalb der Netzoberkante befindlichen Ball in Richtung gegnerische Spielfeldhälfte. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Ball ist als fehlerhaft zu werten, wenn er die senkrechte Ebene des Netzes durchquert.", + "korrekt": false + }, + { + "text": "Fehler, wenn der Ball vom Block berührt wird.", + "korrekt": false + }, + { + "text": "Korrekt, außer der Libero stellt den Ball im oberen Fingerzuspiel in der eigenen Vorderzone.", + "korrekt": true + }, + { + "text": "Der Ball ist als fehlerhaft zu werten, wenn er vom Angreifer berührt wird.", + "korrekt": false + } + ] + }, + { + "frage": "Wann darf der Libero erstmals bei Satzbeginn das Spielfeld betreten (eingetauscht werden)?", + "antworten": [ + { + "text": "Er darf mit der Startaufstellung auf das Spielfeld, wenn er sich ganz nah zu dem Spieler stellt, mit dem er tauscht.", + "korrekt": false + }, + { + "text": "Nachdem ein Spielzug gespielt wurde.", + "korrekt": false + }, + { + "text": "Nachdem der 2. Schiedsrichter die Startaufstellung kontrolliert (und den Tausch genehmigt) hat.", + "korrekt": true + }, + { + "text": "Er darf als ein Spieler der Startaufstellung auf das Spielfeld.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aufgabe(n) hat der 1. Schiedsrichter?", + "antworten": [ + { + "text": "Er nimmt vor jedem Satz das Aufstellungsblatt in Empfang.", + "korrekt": false + }, + { + "text": "Er prüft die Aufstellung der annehmenden Mannschaft beim Aufschlag.", + "korrekt": false + }, + { + "text": "Er entscheidet und pfeift den fehlerhaften Angriff eines Hinterspielers.", + "korrekt": true + }, + { + "text": "Er prüft und unterschreibt den Spielberichtsbogen nach Spielende.", + "korrekt": true + } + ] + }, + { + "frage": "Zwei gegnerische Spieler (Vorderspieler) berühren gleichzeitig einen Ball, der sich vollständig oberhalb der Netzoberkante befindet und in diesem Augenblick von beiden Spielern gespielt werden darf. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Kommt der Ball während der gleichzeitigen Ballberührung zur Ruhe (gehaltener Ball), muss auf Doppelfehler und Spielzugwiederholung entschieden werden.", + "korrekt": false + }, + { + "text": "Geht der Ball nach der Spielaktion ins AUS, ist dies ein Fehler der Mannschaft auf der gegenüberliegenden Seite.", + "korrekt": true + }, + { + "text": "Bleibt der Ball im Spiel, hat die Mannschaft, auf deren Seite der Ball gelangt, das Recht auf drei weitere Ballberührungen.", + "korrekt": true + }, + { + "text": "Berührt der Ball nach der Spielaktion die Antenne, muss auf Doppelfehler und Spielzugwiederholung entschieden werden.", + "korrekt": true + } + ] + }, + { + "frage": "Beim Spielstand von 6:4 für Mannschaft A wird ersichtlich, dass Spieler #8 (am Aufschlag) nicht auf dem Aufstellungsblatt von Mannschaft A vermerkt ist, sondern Spieler #3 aufschlagen müsste. Welche Entscheidung(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Spieler #8 darf weiterspielen, das Aufschlagrecht wechselt zu Mannschaft B.", + "korrekt": false + }, + { + "text": "Spieler #3 nimmt den Platz von Spieler #8 ein, Mannschaft B bekommt den Aufschlag beim Spielstand von 5:0 für Mannschaft B.", + "korrekt": true + }, + { + "text": "Mannschaft A muss einen Wechsel durchführen, behält aber das Aufschlagrecht.", + "korrekt": false + } + ] + }, + { + "frage": "Wo darf sich der Trainer während des Spieles aufhalten?", + "antworten": [ + { + "text": "Auf der Mannschaftsbank am nächsten zum Schreiber sitzend.", + "korrekt": true + }, + { + "text": "Hinter der Mannschaftsbank.", + "korrekt": false + }, + { + "text": "Stehend innerhalb der Freizone im Bereich vor seiner Mannschaftsbank von der Verlängerung bis zur Aufwärmfläche..", + "korrekt": true + }, + { + "text": "Zwischen Spielern auf der Mannschaftsbank sitzend.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der zweite Ball wird im oberen Zuspiel gespielt und berührt dabei die Hände des Spielers nacheinander.", + "korrekt": false + }, + { + "text": "Ein Spieler spielt den Ball mit dem Fuß über das Netz.", + "korrekt": true + }, + { + "text": "Ein Spieler tritt außerhalb der Freizone auf die eigene Mannschaftsbank und spielt den Ball.", + "korrekt": true + }, + { + "text": "Ein Angreifer \"lobbt\" den Ball zum Gegner. Der Ball befindet sich merklich lange in seiner Hand.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A beantragt eine Auszeit. Dies ist die erste normale Spielunterbrechung im Satz. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Direkt nach Beendigung der Auszeit darf der Trainer der Mannschaft A noch eine weitere Auszeit beantragen und anschließend darf Mannschaft A noch einen Wechsel durchführen.", + "korrekt": true + }, + { + "text": "Die Mannschaften müssen in der Auszeit das Spielfeld verlassen.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter beendet die Auszeit.", + "korrekt": true + }, + { + "text": "Der Antrag darf nur beim 1. Schiedsrichter gestellt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft spielt mit zwei Liberos. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Wird ein Libero hinausgestellt und der andere Libero verletzt sich danach in demselben Satz, darf der verletzte Libero durch einen neu benannten Libero ersetzt werden.", + "korrekt": true + }, + { + "text": "Spielunfähig werden und für spielunfähig erklärt werden beschreiben denselben Sachverhalt.", + "korrekt": false + }, + { + "text": "Zwischen zwei Spielzügen darf ein Libero auf dem Feld durch den anderen Libero ausgetauscht werden.", + "korrekt": true + }, + { + "text": "Wenn ein Libero für spielunfähig erklärt wird, darf der Trainer einen Spieler als Libero neu benennen.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53633)", + "antworten": [] + }, + { + "frage": "Ein Spieler wird im zweiten Satz (Spielstand: 18:9) hinausgestellt und kann nicht normal gewechselt werden. Welche Aussage(n) beschreibt/beschreiben einen regelgerechten Sachverhalt?", + "antworten": [ + { + "text": "Die Mannschaft verliert den Satz mit 0:25.", + "korrekt": false + }, + { + "text": "Befindet sich der Spieler zum Zeitpunkt der Hinausstellung auf Position VI, kann er gegen den einzigen derzeit nicht auf dem Spielfeld befindlichen Libero getauscht werden, bis dieser auf Position IV rotieren müsste.", + "korrekt": false + }, + { + "text": "Die Mannschaft verliert den Satz, behält aber die bis dahin erzielten Punkte.", + "korrekt": false + }, + { + "text": "Der Spieler muss ausnahmsweise gewechselt werden.", + "korrekt": true + } + ] + }, + { + "frage": "Eine Angreiferin schlägt einen sehr harten Angriff gegen den gegnerischen Block. Der Ball berührt innerhalb der gleichen Bewegung die Hände einer Blockspielerin, dann ihren Kopf, und prallt anschließend von ihrer Handrückseite in die Hinterzone ihres Spielfeldes ab. Dabei ist immer ein Teil ihres Körpers oberhalb der Netzoberkante. Die Mannschaft spielt den Ball danach mit weiteren drei Ballberührungen. Der 1. Schiedsrichter unterbricht nicht. Ist das eine regelgerechte Entscheidung?", + "antworten": [ + { + "text": "Ja, der 1. Schiedsrichter handelte regelgerecht. Die Aktion gilt als eine Blockaktion.", + "korrekt": true + }, + { + "text": "Nein, die Berührung und die Kopfberührung zählen nicht, das Schlagen mit der Handrückseite nach hinten zählt aber als erste Ballberührung. Die regelgerechte Entscheidung wäre vier Berührungen der verteidigenden Mannschaft gewesen.", + "korrekt": false + }, + { + "text": "Nein, die erste Blockberührung zählt nicht, die Kopfberührung zählt als erste Ballberührung, die Handrückseite als zweite Ballberührung. Die regelgerechte Entscheidung wäre Doppelberührung der Blockspielerin gewesen.", + "korrekt": false + } + ] + }, + { + "frage": "Bei Mannschaft A wird ein Rotationsfehler festgestellt. Welche Entscheidung(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Punkte, die Mannschaft B in der Zeit erzielt hat, in der sich Mannschaft A in einer falschen Rotationsfolge befand, bleiben erhalten.", + "korrekt": true + }, + { + "text": "Der Spielzug wird sofort beendet. Mannschaft B erhält einen Punkt und das Aufschlagrecht.", + "korrekt": true + }, + { + "text": "Die korrekte Rotationsfolge muss eingenommen werden. Der Aufschlag wird wiederholt.", + "korrekt": false + }, + { + "text": "Die Punkte, die Mannschaft A, sicher feststellbar, in der falschen Rotationsfolge erzielt hat, werden annulliert.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Blockaktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Hinterspieler nimmt an einem ausgeführten Block teil, berührt den Ball aber nicht.", + "korrekt": false + }, + { + "text": "Ein Vorderspieler blockt einen Aufschlag.", + "korrekt": false + }, + { + "text": "Nachdem ein Vorderspieler einen Block ausgeführt hat, berührt er den Ball ein weiteres Mal.", + "korrekt": true + }, + { + "text": "Ein Blockspieler führt seine Arme über das Netz in den gegnerischen Raum und berührt dort den Ball, nachdem der gegnerische Spieler den Angriffsschlag ausgeführt hat.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Angriffsball berührt den Kopf eines Blockspielers unterhalb der Netzoberkante und fliegt danach in Richtung der blockenden Mannschaft weiter. Wie viele Ballberührungen stehen dieser Mannschaft aufgrund welcher zutreffenden Begründung noch zu?", + "antworten": [ + { + "text": "Zwei, denn die Ballberührung unterhalb der Netzoberkante ist in keinem Fall als Block zu werten.", + "korrekt": false + }, + { + "text": "Zwei, sofern sich bei der Ballberührung kein Körperteil oberhalb der Netzoberkante befand.", + "korrekt": true + }, + { + "text": "Drei, sofern sich bei der Ballberührung mindestens ein Körperteil oberhalb der Netzoberkante befand und die Aktion in Netznähe erfolgte.", + "korrekt": true + }, + { + "text": "Drei, denn die Ballberührung ist auch unterhalb der Netzoberkante als Block zu werten, wenn die Aktion in Netznähe geschieht. Es ist allein maßgeblich, ob der Spieler den Ball blocken wollte.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Blockaktion(en) ist/sind erlaubt?", + "antworten": [ + { + "text": "Ein Blockspieler (kein Hinterspieler) berührt während seiner Blockaktion die Antenne oberhalb der Netzoberkante.", + "korrekt": false + }, + { + "text": "Ein Hinterspieler versucht zu blocken, der Angreifer schlägt ins \"Aus\".", + "korrekt": true + }, + { + "text": "Ein übergreifender Blockspieler (kein Hinterspieler) berührt den Ball vor dem Angriffsschlag des Gegners.", + "korrekt": false + }, + { + "text": "Ein Libero versucht zu blocken, der Angreifer schlägt ins \"Aus\".", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler berührt innerhalb seiner Spielaktion das Netz zwischen den Antennen. Der 1. Schiedsrichter lässt das Spiel weiterlaufen. Ist diese Entscheidung regelgerecht?", + "antworten": [ + { + "text": "Ja, weil die Berührung des Netzes nicht spielbeeinflussend ist.", + "korrekt": false + }, + { + "text": "Nein, denn die Berührung des Netzes zwischen den Antennen während seiner Spielaktion ist ein Fehler.", + "korrekt": true + }, + { + "text": "Ja, denn Berührungen des Netzes werden nicht mehr abgepfiffen.", + "korrekt": false + }, + { + "text": "Ja, weil der Gegner nicht protestiert.", + "korrekt": false + } + ] + }, + { + "frage": "Der Libero befindet sich auf dem Spielfeld. Sein Austauschspieler auf der Mannschaftsbank verhält sich derart, dass sich der 1. Schiedsrichter veranlasst sieht, gegen ihn eine Hinausstellung auszusprechen. Welche Aktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ist kein normaler Wechsel möglich, kann ein ausnahmsweiser Wechsel erfolgen.", + "korrekt": true + }, + { + "text": "Die Sanktionierung erfolgt über den Spielkapitän, der hinausgestellte Spieler begibt sich direkt in die Umkleidekabine der Mannschaft.", + "korrekt": true + }, + { + "text": "Der Libero muss das Feld verlassen und der Spieler, der den hinausgestellten Spieler ersetzen soll, wird eingewechselt.", + "korrekt": true + }, + { + "text": "Ein hinausgestellter oder disqualifizierter Spieler muss sofort gewechselt werden.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler verletzt sich. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter gewährt eine Schiedsrichterauszeit.", + "korrekt": false + }, + { + "text": "Erstversorgung des verletzten Spielers auf dem Spielfeld ist zu gewähren.", + "korrekt": true + }, + { + "text": "Der verletzte Spieler darf nur normal gewechselt werden.", + "korrekt": false + }, + { + "text": "Bei Verletzung eines Spielers können beide Schiedsrichter den Spielzug unterbrechen.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Eine Tauschaktion zwischen Anpfiff und Aufschlag wird beim ersten Mal nicht zurückgewiesen. Nach Ende des Spielzuges erfolgt eine Ermahnung. Im Wiederholungsfall ist der Tausch zwischen Anpfiff und Aufschlag eine Spielverzögerung.", + "korrekt": true + }, + { + "text": "Ein Libero muss sich bei jedem Tausch beim Schreiberassistenten anmelden.", + "korrekt": false + }, + { + "text": "Der aktive Libero darf sowohl durch seinen Austauschspieler als auch durch den zweiten Libero getauscht werden.", + "korrekt": true + }, + { + "text": "Ein Libero wird in der Rubrik „Mannschaften“ zweimal eingetragen; einmal in der Spielerliste und einmal in einer der Zeilen „Liberos“.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Wechselspieler betritt die Wechselzone im Moment des Anpfiffs zum Aufschlag. Die Mannschaften stoppen und warten auf die Entscheidung des Schiedsgerichts. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter unterbricht den Spielzug. Der Antrag auf Spielerwechsel wird genehmigt. Der Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter unterbricht den Spielzug, weist den Antrag zurück und spricht eine Sanktion wegen Verzögerung aus. Der Spielzug wird wiederholt.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter weist den Antrag zurück. Der Aufschlag muss innerhalb der 8 Sekunden ausgeführt sein.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter pfeift und unterbricht den Spielzug. Der Spielerwechsel wird genehmigt. Der Spielzug wird wiederholt.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball fliegt nach der Annahme von Mannschaft B außerhalb der Antenne in die Freizone von Mannschaft A; von dort wird er von Spieler #5 von Mannschaft B ins eigene Spielfeld zurückgespielt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Nach der Rückholaktion stehen Mannschaft B drei weitere Ballberührungen zu.", + "korrekt": false + }, + { + "text": "Der Ball darf zwischen Netz, Netzpfosten und Netzabspannungen auf derselben Seite zurückgespielt werden, wenn er dabei Netz, Netzpfosten oder die Spannseile nicht berührt.", + "korrekt": true + }, + { + "text": "Das ist zulässig, wenn er außerhalb der Antennen auf derselben Seite ins eigene Spielfeld zurückgespielt wird; dabei tritt der Spieler #5 auf die Mannschaftsbank der Mannschaft A.", + "korrekt": false + }, + { + "text": "Das ist zulässig, wenn er innerhalb der Antennen ins eigene Spielfeld zurückgespielt wird.", + "korrekt": false + } + ] + }, + { + "frage": "In welchem Fall/in welchen Fällen ist die Netzberührung eines Spielers ein Fehler?", + "antworten": [ + { + "text": "Nach dem Angriffsschlag berührt der Angreifer die Netzoberkante.", + "korrekt": true + }, + { + "text": "Während der Landung berührt der Blockspieler das Netz unterhalb der Netzoberkante.", + "korrekt": true + }, + { + "text": "Nach der Landung berühren die Haare des Spielers beim Umdrehen das Netz.", + "korrekt": false + }, + { + "text": "Der Ball drückt die Netzoberkante an die Arme des Blockspielers.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Ball fliegt unterhalb der Netzunterkante Richtung gegnerisches Spielfeld. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Hat der Ball die Netzebene vollständig durchquert, ist der Ball AUS (Handzeichen #15).", + "korrekt": false + }, + { + "text": "Hat der Ball die Netzebene vollständig durchquert, ist Handzeichen #22 („Ball durchquert den unteren Sektor vollständig“) zu zeigen.", + "korrekt": true + }, + { + "text": "Im gegnerischen Raum darf grundsätzlich kein Ball gespielt werden.", + "korrekt": false + }, + { + "text": "Ein Spieler darf den Ball aus dem gegnerischen Raum zurückspielen, wenn der Ball die senkrechte Netzebene noch nicht vollständig durchquert hat.", + "korrekt": true + } + ] + }, + { + "frage": "Nach einer Blockaktion berührt der Ball das Netz. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Fehler.", + "korrekt": false + }, + { + "text": "Eine Netzberührung durch den Ball außerhalb der Antennen ist erlaubt.", + "korrekt": false + }, + { + "text": "Eine Netzberührung durch den Ball innerhalb der Antennen ist erlaubt.", + "korrekt": true + }, + { + "text": "Der am Block beteiligte Spieler darf den Ball gleich noch einmal berühren. Dies zählt als erste der drei erlaubten Berührungen.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler berührt das Netz. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Jede Netzberührung eines Spielers ist ein Fehler.", + "korrekt": false + }, + { + "text": "Dies ist fehlerhaft, wenn der Spieler das Netz außerhalb der Antennen berührt.", + "korrekt": false + }, + { + "text": "Dies ist als fehlerhaft zu werten, wenn der Blockspieler bei der Landung das Netz im unteren Bereich berührt.", + "korrekt": true + }, + { + "text": "Dies ist als fehlerhaft zu werten, wenn der Angreifer nach dem Angriffsschlag die Netzoberkante berührt.", + "korrekt": true + } + ] + }, + { + "frage": "Das Tragen der im Bild gezeigten Kompressionskleidung (schwarz Ärmlinge) ist ...", + "antworten": [ + { + "text": "... nicht zulässig, da die Spielerin sich damit einen Vorteil verschafft.", + "korrekt": false + }, + { + "text": "... zulässig.", + "korrekt": true + }, + { + "text": "... nur zulässig, wenn hierfür ein ärztliches Attest vorgelegt werden kann.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball befindet sich mit vollem Umfang oberhalb der Netzoberkante teilweise im gegnerischen Raum. In welchem Fall muss der 1. Schiedsrichter pfeifen?", + "antworten": [ + { + "text": "Ein Vorderspieler führt einen Angriff aus und berührt den Ball in seinem Spielraum.", + "korrekt": false + }, + { + "text": "Der Zuspieler greift mit einer Hand über das Netz in den gegnerischen Spielraum und spielt den Ball von der gegnerischen Seite zurück zu seinem Angreifer.", + "korrekt": true + }, + { + "text": "Der zuspielende Hinterspieler (Läufer) spielt den Ball in seinem Spielraum. danach durchquert der Ball die Netzebene vollständig.", + "korrekt": true + }, + { + "text": "Zwei gegnerische Vorderspieler spielen den Ball gleichzeitig jeweils auf ihrer Seite.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft spielt mit zwei Liberos. Der erste Libero wird im laufenden Satz hinausgestellt. Kurz darauf verletzt sich der zweite Libero. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der verletzte Libero darf durch einen neubenannten Libero ersetzt werden. Es dürfen aber nur solche Spieler als Libero neubenannt werden, die zuvor noch nicht an einem Wechsel teilgenommen haben.", + "korrekt": false + }, + { + "text": "Der Trainer darf für den zweiten Libero keine Liberoneubenennung vornehmen, da der hinausgestellte erste Libero im nächsten Satz wieder spielen kann.", + "korrekt": false + }, + { + "text": "Für den verletzten Libero darf dessen Austauschspieler als neuer Libero benannt werden.", + "korrekt": false + }, + { + "text": "Der Mannschaftskapitän darf als Libero neubenannt werden. Ein Libero darf Mannschafts bzw. Spielkapitän sein.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53634)", + "antworten": [] + }, + { + "frage": "Ein Spieler (kein Libero) verletzt sich während eines Spielzuges und kann nicht normal gewechselt werden. Welche Aussage(n) ist/sind korrekt?", + "antworten": [ + { + "text": "Wenn ein ausnahmsweiser Wechsel nicht (mehr) möglich ist, erhält der verletzte Spieler nach Durchführung noch vorhandener Auszeiten eine Wiederherstellungszeit von 3 Minuten.", + "korrekt": false + }, + { + "text": "Befindet sich der Spieler zum Zeitpunkt der Verletzung auf Position VI, kann er gegen den einzigen, sich zu der Zeit nicht auf dem Spielfeld befindlichen, Libero getauscht werden, bis dieser auf Position IV rotieren müsste.", + "korrekt": true + }, + { + "text": "Wenn möglich, muss ein ausnahmsweiser Wechsel erfolgen.", + "korrekt": true + }, + { + "text": "Nachdem der Spieler ausnahmsweise gewechselt wurde, darf er im nächsten Satz erneut eingesetzt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht in Bezug auf den Libero?", + "antworten": [ + { + "text": "Zwischen zwei Austauschaktionen (kein Verletzungsfall) des Liberos muss mindestens ein abgeschlossener Spielzug mit Punktestandsänderung liegen.", + "korrekt": true + }, + { + "text": "Der Libero muss nach jedem Spielzug wieder mit seinem Austauschspieler zurücktauschen.", + "korrekt": false + }, + { + "text": "Die beiden Liberos einer Mannschaft dürfen gleichzeitig spielen.", + "korrekt": false + }, + { + "text": "Eine Austauschaktion nach dem Pfiff zur Ausführung des Aufschlages aber vor der Ausführung wird beim ersten Mal nicht zurückgewiesen. Nach Ende des Spielzuges muss eine mündliche Ermahnung erfolgen. Im Wiederholungsfall ist der Austausch nach Anpfiff und vor Ausführung des Aufschlages eine Spielverzögerung.", + "korrekt": true + } + ] + }, + { + "frage": "Bei Mannschaft A wird ein Rotationsfehler festgestellt. Welche Aussage(n) ist regelgerecht?", + "antworten": [ + { + "text": "Mannschaft B erhält einen Punkt und das Aufschlagrecht.", + "korrekt": true + }, + { + "text": "Die Punkte, die beide Mannschaften in dieser Rotationsfolge erzielt haben, werden annulliert.", + "korrekt": false + }, + { + "text": "Mannschaft A muss den laufenden Satz mit dieser Rotationsfolge zu Ende spielen.", + "korrekt": false + }, + { + "text": "Die Punkte, die Mannschaft A in dieser Rotationsfolge erzielt hat, werden annulliert.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Ball ist Aus, wenn der Linienrichter Aus zeigt.", + "korrekt": false + }, + { + "text": "Ein Ball ist Aus, wenn der erste Berührungspunkt mit dem Boden außerhalb des Spielfeldes liegt.", + "korrekt": false + }, + { + "text": "Der Ball ist In, wenn ein Teil des Balles zu irgendeinem Zeitpunkt während seines Kontaktes mit dem Boden das Spielfeld einschließlich der Begrenzungslinien berührt.", + "korrekt": true + }, + { + "text": "Ein Ball ist In, wenn der Ball die Freizone, aber seine senkrechte Projektion noch die Begrenzungslinie berührt.", + "korrekt": false + } + ] + }, + { + "frage": "Welche der beschriebenen Aktion(en) eines Hinterspielers ist/sind erlaubt?", + "antworten": [ + { + "text": "Der Spieler (kein Libero) streckt seine Hände in der Nähe des Netzes Richtung Netzoberkante, reicht dabei nicht über die Netzoberkante, der angegriffene Ball berührt ihn.", + "korrekt": true + }, + { + "text": "Der Spieler (kein Libero) unternimmt einen Blockversuch, der Gegner schlägt den Ball ins \"Aus\".", + "korrekt": true + }, + { + "text": "Der Spieler (kein Libero) nimmt an einem ausgeführten Gruppenblock teil.", + "korrekt": false + }, + { + "text": "Der Spieler (Libero) streckt seine Hände in der Nähe des Netzes Richtung Netzoberkante, reicht dabei nicht über die Netzoberkante, der angegriffene Ball berührt ihn.", + "korrekt": true + } + ] + }, + { + "frage": "Mannschaft B besteht nur aus acht Spielern einschließlich des Liberos. Im zweiten Satz des Spieles wird Spieler #2 von Mannschaft B aus- und wieder eingewechselt. Danach wird Spieler #2, auf Position I spielend, beim Stand von 22:22 disqualifiziert. Zum Zeitpunkt der Disqualifikation befindet sich der Libero auf der Mannschaftsbank. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Da Spieler #2 nicht sofort durch einen regulären Wechsel ersetzt werden kann, muss seine Mannschaft für unvollständig erklärt werden und verliert den zweiten Satz.", + "korrekt": false + }, + { + "text": "Der Libero kann für Spieler #2 eingetauscht werden und drei Positionen in der Hinterzone spielen. Sollte die Mannschaft in dieser Zeit den Satz gewinnen, zählt das Resultat. Muss der Libero jedoch vor Satzende auf die Position IV rotieren, wird seine Mannschaft in diesem Moment für unvollständig erklärt und verliert dann den zweiten Satz.", + "korrekt": false + }, + { + "text": "In diesem Fall kann der siebte reguläre Spieler für den disqualifizierten Spieler ausnahmsweise eingewechselt werden und das Spiel geht weiter.", + "korrekt": true + } + ] + }, + { + "frage": "Während des Spieles wird festgestellt, dass ein Spieler eingesetzt wurde, der nicht in der Mannschaftsliste eingetragen wurde. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Sätze, in denen der Spieler eingesetzt wurde, müssen neu gewertet werden.", + "korrekt": true + }, + { + "text": "Die betreffende Mannschaft verliert das Spiel.", + "korrekt": false + }, + { + "text": "Die (vollendeten) Sätze, in denen der Spieler nicht eingesetzt wurde, bleiben unverändert.", + "korrekt": true + }, + { + "text": "Die Mannschaftsliste wird korrigiert.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Berührung(en) des Netzes ist/sind erlaubt?", + "antworten": [ + { + "text": "Ein Spieler beeinflusst das Spiel, indem er das Netz zum Festhalten benutzt.", + "korrekt": false + }, + { + "text": "Ein Spieler berührt das Netz bei der Landung nach einer Blockaktion, bei der er den Ball nicht berührt hat.", + "korrekt": false + }, + { + "text": "Ein Spieler berührt das Netz bei der Landung nach einer erfolgreichen Blockaktion außerhalb der Antenne, ohne dass dadurch das Spiel beeinflusst wird.", + "korrekt": true + }, + { + "text": "Ein Spieler spielt den Ball gegen das Netz. Dadurch kommt es zu einer Netzberührung eines Spielers auf der gegnerischen Seite.", + "korrekt": true + } + ] + }, + { + "frage": "Der 1. Schiedsrichter hat auf Spielzugverlust und Aufschlagwechsel zu erkennen, wenn ...", + "antworten": [ + { + "text": "... sich der Aufschlagspieler bei der Ausführung des Aufschlages neben dem Handballtor befindet.", + "korrekt": true + }, + { + "text": "... der zum Aufschlag hochgeworfene Ball ohne Berührung des Aufschlagspielers auf den Boden fällt.", + "korrekt": true + }, + { + "text": "... sich der Aufschlagspieler neben dem Handballtor befindet, nach Genehmigung des Aufschlages zum Sprungaufschlag anläuft und nach dem Schlagen des Balles im Spielfeld landet.", + "korrekt": false + }, + { + "text": "... der Aufschlag die Finger eines am Netz stehenden Mitspielers berührt, dabei aber die Flugbahn des Balles nicht verändert wird.", + "korrekt": true + } + ] + }, + { + "frage": "Wann darf der 1. Schiedsrichter den Aufschlag genehmigen?", + "antworten": [ + { + "text": "Der Aufschlagspieler steht im Spielfeld, ist im Ballbesitz und beide Mannschaften sind spielbereit.", + "korrekt": true + }, + { + "text": "Der Aufschlagspieler befindet sich in der Aufschlagzone, ist im Ballbesitz und beide Mannschaften sind spielbereit.", + "korrekt": true + }, + { + "text": "Selbst wenn die annehmende Mannschaft noch unvollständig ist, sobald sich der Aufschlagspieler in der Aufschlagzone befindet.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein sich auf dem Feld befindlicher Libero für spielunfähig erklärt werden und sofort durch einen neu benannten Libero ausgetauscht werden?", + "antworten": [ + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Hinterspieler führt einen fehlerhaften Angriffsschlag aus. Der gegnerische Libero versucht zu blocken. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dies ist kein Fehler, das Spiel läuft normal weiter.", + "korrekt": false + }, + { + "text": "Der Versuch des Liberos zu blocken war eine Aktion vor dem Abschluss des gegnerischen Angriffsschlages und ist daher als erster Fehler zu ahnden.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter ahndet den Fehler des Hinterspielers, da dieser zuerst begangen wurde.", + "korrekt": false + }, + { + "text": "Dies ist ein Doppelfehler. Der Spielzug wird wiederholt.", + "korrekt": false + } + ] + }, + { + "frage": "Was fällt in den Aufgabenbereich des 2. Schiedsrichters?", + "antworten": [ + { + "text": "Das Zurückweisen einer nicht regulären Spielunterbrechung.", + "korrekt": true + }, + { + "text": "Das Pfeifen eines fehlerhaften Angriffes nach oberem Fingerzuspiel eines Liberos aus der Vorderzone heraus.", + "korrekt": false + }, + { + "text": "Das Pfeifen eines fehlerhaften Angriffes eines Hinterspielers.", + "korrekt": true + }, + { + "text": "Das Pfeifen einer fehlerhaften Netzberührung eines Blockspielers während einer Spielaktion.", + "korrekt": true + } + ] + }, + { + "frage": "Bei der Kontrolle der Startaufstellung von Mannschaft A wird festgestellt, dass ein „falscher“ Spieler auf dem Feld steht. Dies wird als der erste Wechsel im Spielberichtsbogen dokumentiert. Gleichzeitig tauscht der Libero von Mannschaft A erstmals mit einem Hinterspieler. Beim Spielstand von 0:0 entscheidet der 1. Schiedsrichter wegen eines vom Nachbarfeld aufs Feld rollenden Balles auf „Doppelfehler“ und Spielzugwiederholung. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spielkapitän von Mannschaft A darf einen Antrag auf Wechsel stellen.", + "korrekt": false + }, + { + "text": "Der Libero von Mannschaft A darf jetzt wieder mit einem Hinterspieler tauschen.", + "korrekt": false + }, + { + "text": "Der Spielkapitän von Mannschaft A darf keinen Antrag auf Wechsel stellen.", + "korrekt": true + }, + { + "text": "Der Libero von Mannschaft A darf erst dann wieder mit einem Hinterspieler tauschen, wenn eine Mannschaft einen Spielzug gewonnen hat und ein Punkt zuerkannt wurde.", + "korrekt": true + } + ] + }, + { + "frage": "Darf ein beliebiger Spieler (wenn der Ball aus dem Spiel ist) den Schiedsrichter bitten, seine Entscheidung zu erläutern?", + "antworten": [ + { + "text": "Nur dann, wenn sich der Mannschaftskapitän nicht auf dem Spielfeld befindet.", + "korrekt": false + }, + { + "text": "Nein, Fragen an den Schiedsrichter dürfen nur über den Spielkapitän gestellt werden.", + "korrekt": true + }, + { + "text": "Nur bei Unklarheiten bezüglich der Fehler des betroffenen Spielers.", + "korrekt": false + }, + { + "text": "Nur während der Auszeiten seiner Mannschaft.", + "korrekt": false + } + ] + }, + { + "frage": "Der Trainer von Mannschaft A beantragt den siebten Wechsel. Es hat noch keine Verzögerung im Spiel stattgefunden. Welche Entscheidung(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der erste unberechtigte Antrag wird ohne weitere Folgen zurück gewiesen, wenn er zu keiner Spielverzögerung führt. Der Antrag wird im Spielberichtsbogen vermerkt.", + "korrekt": true + }, + { + "text": "Ein unberechtigter Antrag ist immer eine Verzögerung. Dieser Antrag muss mit einer Bestrafung wegen Verzögerung geahndet werden.", + "korrekt": false + }, + { + "text": "Es hat mindestens eine Ermahnung zu erfolgen.", + "korrekt": false + }, + { + "text": "Der Antrag wird ohne weitere Folgen zurückgewiesen, wenn er nicht zu einer Spielverzögerung führt.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53636)", + "antworten": [] + }, + { + "frage": "Der 1. Schiedsrichter pfeift zur Genehmigung des Aufschlages von Mannschaft A. Vor der Ausführung des Aufschlages betritt ein Wechselspieler von Mannschaft B die Wechselzone. Der 2. Schiedsrichter pfeift und führt das Handzeichen #5 (Wechsel) aus. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter erkennt den Fehler des 2. Schiedsrichters, signalisiert dem Aufschlagspieler, dass der Aufschlag bereits genehmigt wurde und unterbricht den Spielzug nicht.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter entscheidet auf Doppelfehler und Spielzugwiederholung, weist den Wechsel zurück und spricht eine Sanktion wegen Verzögerung gegen Mannschaft B aus.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter erkennt den Fehler des 2. Schiedsrichters, entscheidet auf Doppelfehler und Spielzugwiederholung und genehmigt den Aufschlag erneut. Er spricht keine Sanktion wegen Verzögerung gegen Mannschaft B aus.", + "korrekt": false + } + ] + }, + { + "frage": "Im Moment der Ausführung des Aufschlages berührt ein Mitspieler des Aufschlagspielers der Mannschaft A mit seinem Fuß leicht die Freizone. Auf der annehmenden Seite befindet sich der Spieler auf Position VI mit einem seiner Füße deutlich näher zur Mittellinie als sein Mitspieler auf Position II als auch der Spieler auf Position V mit einem seiner Füße näher zur Mittellinie als der Spieler auf Position IV. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Kein Fehler.", + "korrekt": false + }, + { + "text": "Spielzugverlust Mannschaft B.", + "korrekt": false + }, + { + "text": "Spielzugverlust Mannschaft A.", + "korrekt": false + }, + { + "text": "Spielzugwiederholung.", + "korrekt": true + } + ] + }, + { + "frage": "In welchem Fall/in welchen Fällen ist die Netzberührung eines Spielers ein Fehler?", + "antworten": [ + { + "text": "Während der Landung berührt der Blockspieler das Netz unterhalb der Netzoberkante.", + "korrekt": true + }, + { + "text": "Nach dem Angriffsschlag berührt der Angreifer die Netzoberkante.", + "korrekt": true + }, + { + "text": "Ein Spieler zieht das Netz herunter, damit der Ball ungehindert auf die gegnerische Seite fliegen kann.", + "korrekt": true + }, + { + "text": "Der Ball drückt die Netzoberkante an die Arme des Blockspielers.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Antrag auf einen unrechtmäßigen Wechsel muss mit einer Sanktion wegen Verzögerung geahndet werden.", + "korrekt": true + }, + { + "text": "Möchte eine Mannschaft gleichzeitig mehrere Wechsel durchführen, müssen alle Wechselspieler nahezu zur selben Zeit die Wechselzone betreten.", + "korrekt": true + }, + { + "text": "Der Trainer (kein Spielertrainer) darf bei einem Wechsel seiner Mannschaft gemeinsam mit dem einzuwechselnden Spieler die Wechselzone betreten.", + "korrekt": false + }, + { + "text": "Ein ausnahmsweise gewechselter Spieler darf im nächsten Satz ins Spiel zurückkommen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Trainer darf beim Wechsel seiner Mannschaft mit dem Wechselspieler die Wechselzone betreten.", + "korrekt": false + }, + { + "text": "Die Aufschlagzone ist 9,00 Meter breit. Die beiden Begrenzungslinien zählen zur Aufschlagzone.", + "korrekt": true + }, + { + "text": "Gesonderte Strafflächen gibt es nicht. Hinausgestellte oder disqualifizierte Mannschaftsmitglieder müssen sich für die Dauer der Strafe in ihre Umkleidekabine begeben.", + "korrekt": true + }, + { + "text": "Die Aufschlagzone erstreckt sich in der Tiefe bis zum ersten Hindernis.", + "korrekt": true + } + ] + }, + { + "frage": "Angriffsschlag eines Hinterspielers in der Vorderzone, bei dem sich der Ball vollständig oberhalb der Netzoberkante befindet. Wann muss der Schiedsrichter pfeifen?", + "antworten": [ + { + "text": "Sobald der Ball die senkrechte Ebene des Netzes vollständig durchquert hat.", + "korrekt": true + }, + { + "text": "Sofort nach dem Schlagen des Balles durch den Hinterspieler.", + "korrekt": false + }, + { + "text": "Erst wenn der Ball den Boden im gegnerischen Spielfeld berührt hat.", + "korrekt": false + }, + { + "text": "Sobald der Ball vom gegnerischen Block berührt wird.", + "korrekt": true + } + ] + }, + { + "frage": "Zwei Gegenspieler drücken oberhalb des Netzes gleichzeitig lange gegen den Ball, ohne dass sie dabei das Netz berühren. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter erkennt einen „GEHALTENEN BALL“, pfeift, entscheidet auf „DOPPELFEHLER“ und der Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Der Stärkere erhält einen Punkt.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter erkennt die Situation und lässt den Spielzug weiterlaufen.", + "korrekt": true + }, + { + "text": "Der Schwächere erhält einen Punkt.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Zwei Spieler berühren bei der Annahme den Ball gleichzeitig. Danach spielt ein Mitspieler den Ball zum Gegner.", + "korrekt": true + }, + { + "text": "Zwei Spieler berühren bei der Annahme den Ball gleichzeitig. Es folgen ein Zuspiel und ein Angriff der eigenen Mannschaft.", + "korrekt": false + }, + { + "text": "Ein Spieler springt über die eigene Mannschaftsbank und spielt den Ball zu seinem Angreifer.", + "korrekt": true + }, + { + "text": "Der Zuspieler berührt den unteren Teil des Netzes und den Ball gleichzeitig.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A spielt mit 12 Spielern (ohne Libero). Ein Spieler dieser Mannschaft wird im ersten Satz beim Stand von 22:7 für Mannschaft B bestraft. Bislang hat es in diesem Satz noch keine Wechsel gegeben. Welche Auswirkung(en) hat die vollständige Anwendung dieser Sanktion auf die Anzahl der verbleibenden Wechsel von Mannschaft A?", + "antworten": [ + { + "text": "Die Anzahl wird nur um eins reduziert, sofern sich der Spieler zum Zeitpunkt der Sanktion auf dem Spielfeld befindet.", + "korrekt": false + }, + { + "text": "Die Anzahl bleibt unverändert.", + "korrekt": true + }, + { + "text": "Die Anzahl wird nur um eins reduziert, sofern sich der Spieler zum Zeitpunkt der Sanktion nicht auf dem Spielfeld befindet.", + "korrekt": false + }, + { + "text": "Die Anzahl wird immer um eins reduziert.", + "korrekt": false + } + ] + }, + { + "frage": "In welchen Fällen muss der Trainer das Handzeichen zum Wechsel geben?", + "antworten": [ + { + "text": "Ein verletzter Spieler, der selbst nicht mehr am Wechsel teilnehmen kann, soll gewechselt werden.", + "korrekt": true + }, + { + "text": "Der Trainer möchte zu Satzbeginn die Rotationsfolge ändern.", + "korrekt": true + }, + { + "text": "Es muss immer auf das Handzeichen des Trainers reagiert werden.", + "korrekt": false + }, + { + "text": "Der Trainer möchte zu Spielbeginn die Rotationsfolge ändern.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Reihenfolge von Anträgen auf normale Spielunterbrechung ist regelgerecht, ohne dass das Spiel zwischendurch wieder aufgenommen wird?", + "antworten": [ + { + "text": "Der Trainer beantragt nach einer Auszeit einen Wechsel und dann wieder eine Auszeit.", + "korrekt": true + }, + { + "text": "Der Trainer beantragt nach einer Auszeit einen Wechsel und der Mannschaftskapitän eine weitere Auszeit.", + "korrekt": false + }, + { + "text": "Der Trainer beantragt nach einer Auszeit einen Wechsel und der Spielkapitän eine weitere Auszeit.", + "korrekt": false + }, + { + "text": "Der Trainer beantragt nach einem Wechsel eine Auszeit und dann nochmals einen Wechsel.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Trainer ist auch als Spieler in die Mannschaftsliste seiner Mannschaft eingetragen (Spielertrainer). Er ist nicht Mannschaftskapitän. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Er darf eine Auszeit beantragen, wenn er sich nicht auf dem Spielfeld befindet.", + "korrekt": true + }, + { + "text": "Wenn er auf dem Feld steht, kann er Spielkapitän werden, wenn der bisherige Spielkapitän das Feld verlässt.", + "korrekt": true + }, + { + "text": "Er darf eine Auszeit beantragen, wenn er sich auf dem Spielfeld befindet.", + "korrekt": false + }, + { + "text": "Er darf seine Mannschaft vor der Mannschaftsbank stehend coachen.", + "korrekt": true + } + ] + }, + { + "frage": "Während eines Meisterschaftsspiels beginnt es zu regnen und Wasser tropft durch das geöffnete Dachfenster auf das Spielfeld. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Ende des Regens ist nicht abzusehen. Die Mannschaftskapitäne verständigen sich nach einer Stunde auf Wiederholung des Spieles und bestätigen dies im Spielberichtsbogen. Der 1. Schiedsrichter stimmt dieser Vorgehensweise zu.", + "korrekt": true + }, + { + "text": "Das Spiel wird beendet und muss wiederholt werden.", + "korrekt": false + }, + { + "text": "Das Spiel wird unterbrochen und kann nach 90 Minuten fortgesetzt werden. Die Ergebnisse der vorangegangenen Sätze bleiben erhalten, der unterbrochene Satz wird annulliert und bei gleicher Startaufstellung wiederholt.", + "korrekt": false + }, + { + "text": "Da in einer Mehrfachhalle gespielt wird, kann das Spiel in der gleichen Halle auf einem anderen Feld nach einer Unterbrechung von 45 Minuten fortgesetzt werden. Keine Änderung des Spielstandes und der Aufstellung, der Sachverhalt wird unter Bemerkungen im Spielberichtsbogen eingetragen.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53637)", + "antworten": [] + }, + { + "frage": "Welche Aktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Beim Blocken berührt ein Blockspieler mit seinem Fuß den gegnerischen Angreifer in dessen Raum unterhalb des Netzes. Der Angreifer wird in seiner Aktion dabei nicht behindert.", + "korrekt": true + }, + { + "text": "Nach einer Blockaktion spielt die abwehrende Mannschaft noch weitere drei Mal.", + "korrekt": true + }, + { + "text": "Der Aufschlag wird geblockt.", + "korrekt": false + }, + { + "text": "Ein Blockspieler berührt beim Blocken das Spannseil, ohne das Spiel zu beeinträchtigen.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Libero auf Position VI wird vom Trainer für spielunfähig erklärt. Es ist der einzige Libero der Mannschaft. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Soll der Austauschspieler des Liberos als Libero neubenannt werden, muss dieser erst normal gewechselt werden.", + "korrekt": true + }, + { + "text": "Ein für spielunfähig erklärter Libero darf nicht mehr am Spiel teilnehmen.", + "korrekt": true + }, + { + "text": "Jeder Spieler, der in diesem Moment nicht in der Rotationsfolge steht, kann als Libero neubenannt werden und sofort auf Position VI eingetauscht werden.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Entscheidung(en) darf der 2. Schiedsrichter treffen?", + "antworten": [ + { + "text": "Positionsfehler der aufschlagenden Mannschaft.", + "korrekt": false + }, + { + "text": "Verwarnungen gegenüber den Mannschaften aussprechen.", + "korrekt": false + }, + { + "text": "Zurückweisen unberechtigter Anträge.", + "korrekt": true + }, + { + "text": "Fehlerhaftes Eindringen in die gegnerische Spielfeldhälfte unterhalb des Netzes.", + "korrekt": true + } + ] + }, + { + "frage": "Bewerte die folgenden Aussagen dahingehend, ob sie gemäß Regelwerk regelgerecht oder nicht regelgerecht sind. Die regelgerechte(n) Aussage(n) ist/sind anzukreuzen.", + "antworten": [ + { + "text": "Der Trainer darf sich beim Schiedsgericht nach der Anzahl seinen verbleibenden Auszeiten erkundigen, wenn dies in der Halle nicht ersichtlich ist.", + "korrekt": true + }, + { + "text": "Der Trainer darf jederzeit den Spielzug unterbrechen, wenn er der Meinung ist, dass das Schiedsgericht eine falsche Entscheidung getroffen hat.", + "korrekt": false + }, + { + "text": "Der Trainer darf während des Spieles Auszeiten beantragen.", + "korrekt": true + }, + { + "text": "Der Trainer muss vor dem Spiel die Mannschaftsliste unterschreiben.", + "korrekt": true + } + ] + }, + { + "frage": "Spieler #7 von Mannschaft A wird hinausgestellt. Mannschaft A hat bereits sechs Wechsel vorgenommen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Spieler, der in diesem Satz noch nicht gespielt hat, kann eingewechselt werden.", + "korrekt": true + }, + { + "text": "Ein Spieler, der bereits gespielt hat, kann wieder eingewechselt werden.", + "korrekt": true + }, + { + "text": "Mannschaft A wird für unvollständig erklärt und verliert diesen Satz.", + "korrekt": false + } + ] + }, + { + "frage": "Welche der folgenden Aktion(en) stellt/stellen unberechtigte Anträge dar?", + "antworten": [ + { + "text": "Während der 2. Schiedsrichter bereits auf dem Weg ans Netz ist und der 1. Schiedsrichter bereits seinen Arm zur Genehmigung des Aufschlages ausgestreckt, aber noch nicht gepfiffen, hat, betritt ein Wechselspieler die Wechselzone.", + "korrekt": false + }, + { + "text": "Der Spielkapitän beantragt eine Auszeit, während der Trainer sich auf der Mannschaftsbank mit einem Wechselspieler unterhält.", + "korrekt": true + }, + { + "text": "Der Trainer der Mannschaft A beantragt die erste Auszeit im Satz. Nach Ende der Auszeit beantragt der Trainer der Mannschaft A innerhalb derselben Unterbrechung noch eine Auszeit.", + "korrekt": false + }, + { + "text": "Die Libero-Austauschaktion erfolgt nach der Genehmigung des Aufschlages, aber vor dessen Ausführung. Dies geschieht zum ersten Mal im Spiel.", + "korrekt": false + } + ] + }, + { + "frage": "Spieler #3 von Mannschaft A beleidigt einen gegnerischen Spieler. Dies ist der erste Vorfall dieser Art. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Es hat eine verbale Verwarnung über den Mannschaftskapitän zu erfolgen.", + "korrekt": false + }, + { + "text": "Der Spieler wird hinausgestellt und muss sich in die Umkleidekabine der Mannschaft begeben.", + "korrekt": true + }, + { + "text": "Nach der Hinausstellung des Spielers wechselt ggf. das Aufschlagsrecht zum Gegner.", + "korrekt": false + }, + { + "text": "Eine Hinausstellung wirkt sich nicht auf den Punktestand aus.", + "korrekt": true + } + ] + }, + { + "frage": "Spieler #5 von Mannschaft A wird im ersten Satz hinausgestellt. Mannschaft A besteht aus sieben Spielern und hat bereits beide möglichen Wechsel durchgeführt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Mannschaft wird für das Spiel als unvollständig erklärt und verliert dieses.", + "korrekt": false + }, + { + "text": "Ein Wechsel wird ausnahmsweise genehmigt.", + "korrekt": true + }, + { + "text": "Der hinausgestellte Spieler #5 darf im zweiten Satz wieder mitspielen.", + "korrekt": true + }, + { + "text": "Die Mannschaft wird für den Satz als unvollständig erklärt und verliert diesen.", + "korrekt": false + } + ] + }, + { + "frage": "Der Spielkapitän von Mannschaft A, die weder Trainer noch Co-Trainer hat, beantragt eine Auszeit. Dies ist die erste normale Unterbrechung im Satz. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter beendet die Auszeit.", + "korrekt": true + }, + { + "text": "Direkt nach Beendigung der Auszeit darf der Spielkapitän von Mannschaft A noch eine weitere Auszeit und einen Wechsel beantragen.", + "korrekt": true + }, + { + "text": "Der Antrag darf nur beim 1. Schiedsrichter gestellt werden.", + "korrekt": false + }, + { + "text": "Der Antrag muss beim 2. Schiedsrichter gestellt werden.", + "korrekt": true + } + ] + }, + { + "frage": "In der Mannschaftliste sind bei einer Mannschaft acht Spieler eingetragen, von denen einer ein Libero ist. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Trainer darf den Libero nicht für spielunfähig erklären.", + "korrekt": false + }, + { + "text": "Der Trainer kann den Libero, der sich in diesem Moment nicht auf dem Spielfeld befindet, für spielunfähig erklären und einen Spieler, der sich zu diesem Zeitpunkt ebenfalls nicht auf dem Spielfeld befindet, als Libero neu benennen.", + "korrekt": true + }, + { + "text": "Wird durch schwerwiegende Verletzungen zweier Spieler die Mannschaft unvollständig, darf ausnahmsweise der Libero als normaler Spieler agieren.", + "korrekt": false + }, + { + "text": "Die Mannschaft kann maximal zwei normale Wechsel pro Satz durchführen.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Blockspieler berührt das Netz bei der Landung. Danach dreht er sich, um den nächsten Ball zu spielen.", + "korrekt": false + }, + { + "text": "Der Libero führt einen Blockversuch aus.", + "korrekt": false + }, + { + "text": "Ein Hinterspieler ist an einem Gruppenblock beteiligt. Er selbst berührt den Ball nicht.", + "korrekt": false + }, + { + "text": "Nach einem Block spielt der Blockspieler den Ball erneut.", + "korrekt": true + } + ] + }, + { + "frage": "Das Spielfeld ist ein Rechteck von 18 m x 9 m. Innerhalb dieser Maße liegen ...", + "antworten": [ + { + "text": "… die Seitenlinien und Grundlinien.", + "korrekt": true + }, + { + "text": "… nicht die Seiten- und Grundlinien.", + "korrekt": false + }, + { + "text": "… nur die Grundlinie. Die Seitenlinien gehören auf der einen Seite zur Coaching- und auf der anderen Seite des Feldes zur Freizone.", + "korrekt": false + }, + { + "text": "… nur die Seitenlinien. Die Grundlinien gehören zur jeweiligen Aufschlagzone.", + "korrekt": false + } + ] + }, + { + "frage": "Im Moment der Ausführung des Aufschlages berührt ein Mitspieler des Aufschlagspielers der Mannschaft A als auch ein Spieler der Mannschaft B leicht die Freizone. Der Aufschlag überquert das Netz außerhalb des Überquerungssektors. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Spielzugverlust Mannschaft B.", + "korrekt": false + }, + { + "text": "Kein Fehler.", + "korrekt": false + }, + { + "text": "Spielzugwiederholung.", + "korrekt": true + }, + { + "text": "Spielzugverlust Mannschaft A.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A hat sechs Wechsel durchgeführt. Nun verletzt sich Spieler #10 von Mannschaft A. Es wurden bis dahin keine persönlichen Sanktionen verhängt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spieler #10 darf ausnahmsweise gewechselt werden.", + "korrekt": true + }, + { + "text": "Dem Spieler #10 wird eine Wiederherstellungszeit von drei Minuten gewährt.", + "korrekt": false + }, + { + "text": "Die Mannschaft wird für unvollständig erklärt und verliert den Satz.", + "korrekt": false + }, + { + "text": "Die Mannschaft wird für unvollständig erklärt und verliert das Spiel.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53638)", + "antworten": [] + }, + { + "frage": "Ein Ball fliegt unterhalb der Netzunterkante zwischen Pfosten und Verlängerung der Antenne Richtung gegnerische Spielfläche. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Hat der Ball die Netzebene vollständig durchquert, ist Handzeichen #22 (Ball durchquert den unteren Sektor vollständig) zu zeigen.", + "korrekt": true + }, + { + "text": "Fliegt der Ball vollständig über die Freizone des Gegners, darf der Ball im Rahmen der Anzahl der erlaubten Berührungen außerhalb des Überquerungssektors zur eigenen Spielfläche zurückgespielt werden.", + "korrekt": false + }, + { + "text": "Hat der Ball die Netzebene vollständig durchquert, ist der Ball \"Aus\" (Handzeichen #15).", + "korrekt": false + }, + { + "text": "Ein Spieler darf in den gegnerischen Raum eindringen, um den Ball zurückzuspielen, ohne die Mittellinie zu übertreten, auch wenn der Ball die Mittellinie schon vollständig überquert hat.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft hat beide Auszeiten aufgebraucht. Später im Satz beantragt der Trainer eine dritte Auszeit, die vom 2. Schiedsrichter genehmigt wird. In diesem Moment realisiert der Schreiber, dass dies die dritte Auszeit für diese Mannschaft ist und informiert den 2. Schiedsrichter darüber. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Antrag auf eine dritte Auszeit ist ein unberechtigter Antrag und hätte direkt und ohne Bestrafung zurückgewiesen und im Spielberichtsbogen (als unberechtigter Antrag) vermerkt werden müssen.", + "korrekt": true + }, + { + "text": "Die Genehmigung zur Auszeit wird zurückgenommen. Die beantragende Mannschaft wird mit einer Sanktion wegen Verzögerung (Verwarnung/Bestrafung) belegt.", + "korrekt": true + }, + { + "text": "Die Auszeit muss sofort abgebrochen und das Spiel ohne weitere Aktion wieder aufgenommen werden.", + "korrekt": false + }, + { + "text": "Da der 2. Schiedsrichter nicht aufgepasst hat, werden die Mannschaften einfach wieder auf das Feld zurückgeschickt und das Spiel läuft ohne Konsequenz weiter.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft besteht einschließlich des Liberos aus sieben Spielern. Im zweiten Satz verletzt sich Spieler #7 der Startaufstellung. Der 1. Schiedsrichter erlaubt dem Libero mittels regulärem Wechsel für den verletzten Spieler ins Spiel zu kommen. Ist dies eine regelgerechte Entscheidung des 1. Schiedsrichters?", + "antworten": [ + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) über den Mannschaftskapitän beschreibt/beschreiben einen regelgerechten Sachverhalt?", + "antworten": [ + { + "text": "Befindet er sich auf der Mannschaftsbank, darf er Auszeiten beantragen, wenn kein Trainer anwesend ist.", + "korrekt": false + }, + { + "text": "Während eines Spieles darf ausschließlich er einen offiziellen Protest beantragen.", + "korrekt": false + }, + { + "text": "Befindet er sich nicht auf dem Spielfeld, muss ein anderer Spieler als Spielkapitän benannt werden.", + "korrekt": true + }, + { + "text": "Er darf als Libero im Spielberichtsbogen eingetragen sein.", + "korrekt": true + } + ] + }, + { + "frage": "Mannschaft A möchte einen oder mehrere Wechsel beantragen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Wenn mehrere Wechsel gleichzeitig beantragt werden, müssen sich alle Wechselspieler nebeneinander an der Seitenlinie aufstellen. Alle auszuwechselnden Spieler stellen sich gegenüber auf.", + "korrekt": false + }, + { + "text": "Unmittelbar nach dem Wechsel der Mannschaft A darf auch die Mannschaft B einen Wechsel beantragen.", + "korrekt": true + }, + { + "text": "Ein Spieler der Startaufstellung kann regulär nur für den Spieler auf das Feld zurückkehren, der ihn ersetzt hatte.", + "korrekt": true + }, + { + "text": "Wenn nach Mannschaft A die Mannschaft B einen Wechsel durchgeführt hat, darf Mannschaft A noch einen weiteren Wechsel beantragen, ohne dass dazwischen ein Spielzug erfolgte.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter beurteilt, ob die äußeren Bedingungen den Spielerfordernissen entsprechen.", + "korrekt": true + }, + { + "text": "Kann das unterbrochene Spiel nach 2 Stunden auf demselben Spielfeld fortgesetzt werden, wird der unterbrochene Satz annulliert und mit derselben Startaufstellung wiederholt.", + "korrekt": false + }, + { + "text": "Wenn die Gesamtdauer der Unterbrechungen die Dauer von 4 Stunden überschreitet, muss das Spiel wiederholt werden.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter kann den 1. Schiedsrichter ersetzen, falls dieser nicht mehr in der Lage ist, seine Tätigkeit fortzusetzen.", + "korrekt": true + } + ] + }, + { + "frage": "Der 1. Schiedsrichter genehmigt nach einem Doppelfehler einen neuen Wechsel. Vor dem Spielzug wurde ein Wechsel der gleichen Mannschaft als unberechtigt zurückgewiesen. Ist diese Entscheidung korrekt?", + "antworten": [ + { + "text": "Das liegt im Ermessensspielraum des 1. Schiedsrichters.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler der Mannschaft A greift einen Ball an, der sich direkt oberhalb der Netzoberkante befindet. Gleichzeitig berührt ein Blockspieler der Mannschaft B den Ball, ohne über das Netz zu greifen. Nach der gleichzeitigen Berührung fällt der Ball in die Freizone von Mannschaft B. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Spielzuggewinn von Mannschaft B, da der Fehler (Ball fällt in die Freizone der Mannschaft B) der Mannschaft A zugeschrieben wird.", + "korrekt": true + }, + { + "text": "Spielzuggewinn von Mannschaft A, da der Fehler (Ball fällt in die Freizone der Mannschaft B) der Mannschaft B zugeschrieben wird.", + "korrekt": false + }, + { + "text": "Ein Blockspieler darf den Ball nicht gleichzeitig mit dem Angriffsschlag berühren, deshalb Spielzuggewinn für Mannschaft A.", + "korrekt": false + }, + { + "text": "Spielzugwiederholung (Doppelfehler) wegen gehaltenen Balles oberhalb der Netzoberkante.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind in Zusammenhang mit einer Blockaktion regelgerecht?", + "antworten": [ + { + "text": "Der Ball muss vom Gegner kommen.", + "korrekt": true + }, + { + "text": "Die Spieler müssen weit vom Netz entfernt sein.", + "korrekt": false + }, + { + "text": "Die Höhe des Ballkontakts mit dem Körper ist nicht wichtig.", + "korrekt": true + }, + { + "text": "Der/die Spieler müssen mit einem Körperteil oberhalb der Netzoberkante reichen.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53639)", + "antworten": [] + }, + { + "frage": "Das Schiedsrichter-Handzeichen Ball Aus ist anzuwenden, wenn ...", + "antworten": [ + { + "text": "... ein Ball zwischen der Hallendecke und einem Deckenbalken hindurchfliegt, ohne eines von beiden zu berühren.", + "korrekt": false + }, + { + "text": "... ein Ball in der Freizone von Mannschaft A auf den Boden fällt, ohne dabei die Seitenline zu berühren und dieser Ball zuletzt im Rahmen einer Abwehraktion von der Mannschaft A berührt wurde.", + "korrekt": false + }, + { + "text": "... ein Ball ein Seil, das sich über der gegnerischen Mannschaftsbank befindet, berührt.", + "korrekt": true + }, + { + "text": "... ein Ball den unteren Sektor (die senkrechte Ebene unterhalb des Netzes) vollständig durchquert und in die gegnerische Spielfeldhälfte gelangt.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spieler darf nach dem Schlagen des Balles das Spielfeld oder den Boden neben der Aufschlagzone betreten.", + "korrekt": true + }, + { + "text": "Der Ball darf nur einmal innerhalb von 8 Sekunden nach der Genehmigung des Aufschlages hoch geworfen werden.", + "korrekt": true + }, + { + "text": "Das mehrmalige Auftippen und das Hin- und Herbewegen des Balles ist nur innerhalb der ersten vier Sekunden nach der Genehmigung des Aufschlages erlaubt.", + "korrekt": false + }, + { + "text": "Ein vor dem Pfiff des 1. Schiedsrichters ausgeführter Aufschlag ist erlaubt, wenn die gegnerische Mannschaft offensichtlich spielbereit war.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler (kein Libero) verletzt sich während eines Spielzuges und kann nicht mehr normal gewechselt werden. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Sofern möglich, muss der verletzte Spieler ausnahmsweise gewechselt werden.", + "korrekt": true + }, + { + "text": "Dem Spieler steht in jedem Fall eine dreiminütige Wiederherstellungszeit zur Verfügung.", + "korrekt": false + }, + { + "text": "Falls sich zum Zeitpunkt der Verletzung der Libero nicht auf dem Spielfeld befunden hat, darf dieser ausnahmsweise für den verletzten Spieler weiterspielen.", + "korrekt": false + }, + { + "text": "Falls der Spieler nach einer dreiminütigen Wiederherstellungszeit nicht weiterspielen kann, wird die Mannschaft für diesen Satz für unvollständig erklärt und die gegnerische Mannschaft erhält die fehlenden Punkte, um den Satz zu gewinnen.", + "korrekt": true + } + ] + }, + { + "frage": "Der Mannschaftskapitän (#1) befindet sich nicht auf dem Spielfeld. Der Spielkapitän (#5) wechselt mit Spieler #7, Spieler #9 wird neuer Spielkapitän. Nach einem Spielzug wechselt Spieler #5 zurück auf das Spielfeld. Welcher Spieler ist nun der Spielkapitän?", + "antworten": [ + { + "text": "Spieler #5.", + "korrekt": false + }, + { + "text": "Der Spielkapitän muss neu bestimmt werden.", + "korrekt": false + }, + { + "text": "Spieler #1.", + "korrekt": false + }, + { + "text": "Spieler #9.", + "korrekt": true + } + ] + }, + { + "frage": "Eine Sanktion (Verwarnung oder Bestrafung) wegen Spielverzögerung ist auszusprechen, wenn ...", + "antworten": [ + { + "text": "ein Wechsel durchgeführt worden ist und vor Wiederaufnahme des Spieles von derselben Mannschaft ein weiterer Wechsel beantragt wird. Es wurde bislang noch kein unberechtigter Antrag gestellt.", + "korrekt": false + }, + { + "text": "ein Spieler durch gestikulieren die Schiedsrichter auf sich aufmerksam macht, sein festes Schuhband löst und den Schuh neu schnürt.", + "korrekt": true + }, + { + "text": "der Libero-Tausch wiederholt erfolgt, nachdem der 1. Schiedsrichter den Aufschlag genehmigt hat und bevor der Aufschlag ausgeführt worden ist.", + "korrekt": true + }, + { + "text": "eine Mannschaft nach Beendigung einer Auszeit nicht unverzüglich vollständig auf dem Spielfeld steht.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind in Bezug auf eine Disqualifikation regelgerecht?", + "antworten": [ + { + "text": "Für den disqualifizierten Trainer darf der Co-Trainer auf Antrag des Spielkapitäns und mit Genehmigung des 1. Schiedsrichters dessen Funktion übernehmen.", + "korrekt": true + }, + { + "text": "Kann ein disqualifizierter Spieler nicht regulär gewechselt werden, ist ein ausnahmsweiser Wechsel ohne Beteiligung des Liberos zulässig.", + "korrekt": true + }, + { + "text": "Ein disqualifizierter Trainer muss den Wettkampfbereich verlassen.", + "korrekt": true + }, + { + "text": "Wenn eine Mannschaft einen disqualifizierten Spieler nicht regulär wechseln kann, darf der Libero für diesen Spieler eingewechselt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) beschreibt/beschreiben einen fehlerhaften Angriffsschlag?", + "antworten": [ + { + "text": "Ein Spieler spielt den Ball im gegnerischen Spielraum.", + "korrekt": true + }, + { + "text": "Der Hinterspieler, der in der Vorderzone abspringt, schlägt einen vollständig oberhalb der Netzoberkante befindlichen Ball in den Block.", + "korrekt": true + }, + { + "text": "Ein Hinterspieler springt in der Vorderzone ab und spielt im oberen Zuspiel den vollständig oberhalb der Netzoberkante befindlichen Ball zum Gegner.", + "korrekt": true + }, + { + "text": "Ein Hinterspieler (kein Libero) springt hinter der Angriffslinie ab, spielt den Ball zum Gegner und landet danach in der Vorderzone.", + "korrekt": false + } + ] + }, + { + "frage": "Unangemessenes Verhalten eines Mannschaftsmitgliedes im vierten Satz. Das gleiche Mitglied wurde bereits im zweiten Satz bestraft (rote Karte). Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spieler wird hinausgestellt (rote/gelbe Karte in einer Hand, Punkt für den Gegner und ggf. Verlust des Aufschlagrechtes).", + "korrekt": false + }, + { + "text": "Der Spieler wird hinausgestellt.", + "korrekt": true + }, + { + "text": "Der Spieler muss sich in die Umkleidekabine der Mannschaft begeben.", + "korrekt": true + }, + { + "text": "Der Spieler wird erneut bestraft (rote Karte, Punkt für den Gegner und ggf. Verlust des Aufschlagrechtes).", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53640)", + "antworten": [] + }, + { + "frage": "Welcher Aussage(n) ist/sind regelgerecht in Bezug auf Anträge?", + "antworten": [ + { + "text": "Ein beliebiger Spieler (nicht der Spielkapitän) beantragt eine Auszeit.", + "korrekt": false + }, + { + "text": "Der auf der Mannschaftsbank sitzende Mannschaftskapitän beantragt eine Auszeit.", + "korrekt": false + }, + { + "text": "Der Trainer beantragt einen Wechsel. Ohne Wiederaufnahme des Spieles beantragt der Trainer anschließend einen weiteren Wechsel.", + "korrekt": false + }, + { + "text": "Der Trainer beantragt einen Mehrfach-Wechsel (z. B. gleichzeitig zwei Spieler).", + "korrekt": true + } + ] + }, + { + "frage": "Der 2. Schiedsrichter erhält vor Beginn des Satzes die Aufstellungsblätter beider Mannschaften. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Stellt der 2. Schiedsrichter vor Satzbeginn eine Abweichung zwischen der Startaufstellung und dem Aufstellungsblatt fest, wartet er die Ausführung des ersten Aufschlages ab und pfeift anschließend den Fehler (Positions- bzw. Rotationsfehler).", + "korrekt": false + }, + { + "text": "Wird eine Abweichung zwischen der Startaufstellung und dem Aufstellungsblatt festgestellt, muss die Startaufstellung korrigiert werden und die Mannschaft erhält eine Sanktion wegen Verzögerung.", + "korrekt": false + }, + { + "text": "Nach erfolgter Überprüfung durch den 2. Schiedsrichter werden die Aufstellungsblätter an die Trainer zurückgegeben.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter übergibt beide Aufstellungsblätter gemeinsam an den Schreiber und prüft die Übertragung in den Spielberichtsbogen.", + "korrekt": true + } + ] + }, + { + "frage": "Der 1. Schiedsrichter hat auf Punkt und Aufschlag für die annehmende Mannschaft zu entscheiden, wenn ...", + "antworten": [ + { + "text": "... der aufschlagende Spieler von mehreren seiner Mitspieler verdeckt wird und über diese Spieler hinweg aufschlägt.", + "korrekt": true + }, + { + "text": "... der Aufschlagspieler beim Sprungaufschlag außerhalb der Aufschlagzone abspringt und danach im Spielfeld landet.", + "korrekt": true + }, + { + "text": "... der Ball beim Hochwerfen zum Aufschlag einen fremden Gegenstand, z. B. den Basketballkorb berührt.", + "korrekt": true + }, + { + "text": "... der Aufschlag ins Netz geht und dabei die annehmende Mannschaft einen Positionsfehler begeht.", + "korrekt": false + } + ] + }, + { + "frage": "Der Trainer wird hinausgestellt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Co-Trainer darf die Aufgaben des Trainers nicht übernehmen, denn dieser verlässt die Mannschaft wegen einer Sanktion.", + "korrekt": false + }, + { + "text": "Der Co-Trainer darf (auf Antrag des Spielkapitäns) für den Rest des Satzes die Aufgaben des Trainers übernehmen. Falls dies nicht geschieht, darf der Spielkapitän in dieser Zeit Auszeiten beantragen.", + "korrekt": true + }, + { + "text": "Der Co-Trainer darf (auf Antrag des Spielkapitäns) für den Rest des Satzes die Aufgaben des Trainers übernehmen. Falls dies geschieht, ist es dem Spielkapitän in dieser Zeit nicht erlaubt, Auszeiten zu beantragen.", + "korrekt": true + }, + { + "text": "Der Spielkapitän darf für den Rest des Satzes in jedem Fall Auszeiten beantragen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Zuspieler berührt gleichzeitig das Netz zwischen den Antennen und den Ball.", + "korrekt": false + }, + { + "text": "Zwei Spieler einer Mannschaft berühren gleichzeitig den Ball.", + "korrekt": true + }, + { + "text": "Zwei Spieler berühren bei der Annahme den Ball gleichzeitig. Es folgen ein Zuspiel und ein Angriff der eigenen Mannschaft.", + "korrekt": false + }, + { + "text": "Ein Spieler springt über die eigene Mannschaftsbank und spielt den Ball zu seinem Angreifer.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler verletzt sich. Er wird längere Zeit auf dem Spielfeld behandelt. Das Spiel ist daher für diese Erstversorgung länger als 3 Minuten unterbrochen. Danach wird der Spieler normal gewechselt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dieser Spieler darf in diesem Satz keinesfalls wieder eingesetzt werden.", + "korrekt": false + }, + { + "text": "Dieser Spieler darf in diesem Spiel in einem späteren Satz wieder eingesetzt werden.", + "korrekt": true + }, + { + "text": "Dieser Spieler darf in diesem Satz wieder normal eingewechselt werden, sofern er bereits zu Satzbeginn in der Startaufstellung war.", + "korrekt": true + }, + { + "text": "Dieser Spieler darf in diesem Spiel keinesfalls wieder eingesetzt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Der Spielkapitän einer Mannschaft erbittet vom 1. Schiedsrichter eine Erläuterung zu einem Vorfall während des Spieles. Die Erläuterung scheint ihn zufrieden zu stellen. Die Mannschaft verliert das Spiel. Nach Spielende versucht der Mannschaftskapitän, einen Protest im Spielberichtsbogen einzutragen. Der 1. Schiedsrichter verweigert ihm dies. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter muss dem Mannschaftskapitän in jedem Fall erlauben, nach Spielende einen Protest einzutragen bzw. einen Protest eintragen zu lassen.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter hat regelgerecht entschieden. Da der Spielkapitän die Erläuterung verlangte, kann nicht der Mannschaftskapitän am Spielende versuchen, einen Protest einzutragen.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter hat regelgerecht entschieden. Ein Protest muss direkt zum Zeitpunkt des Vorfalls beim 1. Schiedsrichter durch den Spielkapitän angemeldet werden.", + "korrekt": true + } + ] + }, + { + "frage": "Eine Mannschaft spielt mit einem Libero. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Libero darf als Trainer agieren, sofern er sich nicht auf dem Spielfeld befindet.", + "korrekt": true + }, + { + "text": "Der Libero darf weder aufschlagen, blocken noch einen Blockversuch durchführen.", + "korrekt": true + }, + { + "text": "Der Libero darf auf jede Position auf dem Spielfeld getauscht werden.", + "korrekt": false + }, + { + "text": "Der Libero darf als Mannschaftskapitän agieren.", + "korrekt": true + } + ] + }, + { + "frage": "Im fünften Satz verzögert ein Spieler das Spiel. Kurz danach verlängert dieselbe Mannschaft ihre Auszeit. Etwas später beantragt ein Spieler dieser Mannschaft einen unrechtmäßigen Wechsel, was dem Schreiber erst nach der Genehmigung des Wechsels durch den 2. Schiedsrichter auffällt. Wie reagiert der 1. Schiedsrichter bei diesem Antrag regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter spricht eine Bestrafung wegen wiederholter Verzögerung gegen die Mannschaft aus.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter spricht eine Bestrafung wegen Verzögerung gegen den Spielkapitän aus.", + "korrekt": false + }, + { + "text": "Der Mannschaft wird eine Auszeit auferlegt.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter stellt den Spielkapitän hinaus, weil die Mannschaft sich zum dritten Mal in einem Satz unkorrekt verhalten hat.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler reicht mit der Hand (den Händen) über das Netz in den gegnerischen Spielraum. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dies ist ein Fehler, wenn beim Blocken die Netzoberkante berührt wird.", + "korrekt": true + }, + { + "text": "Dies ist erlaubt, wenn weder der Ball berührt noch der Gegner in seiner Aktion behindert wird.", + "korrekt": true + }, + { + "text": "Dies ist beim Block erlaubt, wenn der Ball erst nach dem Angriffsschlag des Gegners berührt wird.", + "korrekt": true + }, + { + "text": "Nach dem Angriffsschlag ist es dem Angreifer nicht erlaubt, mit der Hand über das Netz zu reichen.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler (kein Libero) verletzt sich. Es ist kein normaler Wechsel möglich. Welche Aussage(n) ist/sind korrekt?", + "antworten": [ + { + "text": "Wenn ein ausnahmsweiser Wechsel möglich ist, muss dieser nach Gewährung von Erster Hilfe sofort ausgeführt werden. Dem verletzten Spieler darf keine 3-minütige Wiederherstellungszeit gewährt werden.", + "korrekt": true + }, + { + "text": "Wenn kein ausnahmsweiser Wechsel möglich ist, muss die Mannschaft verbliebene Auszeiten nehmen, bevor eine 3-minütige Wiederherstellungszeit gewährt wird.", + "korrekt": false + }, + { + "text": "Wenn kein ausnahmsweiser Wechsel möglich ist, wird dem verletzten Spieler eine 3-minütige Wiederherstellungszeit gewährt.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Trainer ist auch als Spieler in die Rubrik „Mannschaften“ und als spielender Libero in den Zeilen „Liberos“ eingetragen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Wenn der Libero hinausgestellt wird, darf er weiter als Trainer fungieren.", + "korrekt": false + }, + { + "text": "Wenn der Mannschaftskapitän das Spielfeld verlässt, darf der Trainer als Spielkapitän benannt werden.", + "korrekt": true + }, + { + "text": "Wenn der Trainer auf dem Spielfeld ist, darf er Wechsel und Auszeiten beantragen.", + "korrekt": false + }, + { + "text": "Der Trainer darf seine Mannschaft stehend vor der Mannschaftsbank coachen.", + "korrekt": true + } + ] + }, + { + "frage": "Der Spielkapitän fragt zwischen zwei Spielzügen den 2. Schiedsrichter nach der Aufstellung des Gegners. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter gibt dem Spielkapitän Auskunft. Diese darf jedoch nur lauten „Gegner steht falsch“ oder „Gegner steht richtig“. Welcher Spieler auf welcher Position steht, darf dem Spielkapitän nicht mitgeteilt werden.", + "korrekt": true + }, + { + "text": "Beim ersten Mal lehnt der 2. Schiedsrichter den unberechtigten Antrag ohne weitere Folgen ab.", + "korrekt": false + }, + { + "text": "Beim zweiten Mal informiert der 2. den 1. Schiedsrichter über einen zum wiederholten Mal gestellten unberechtigten Antrag. Der 1. Schiedsrichter spricht eine Sanktion wegen Verzögerung gegen die antragstellende Mannschaft aus.", + "korrekt": false + }, + { + "text": "Das ist nicht zulässig.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53687)", + "antworten": [] + }, + { + "frage": "Erste Ballberührung einer Mannschaft. In welchem Fall muss der 1. Schiedsrichter den Spielzug beenden?", + "antworten": [ + { + "text": "Baggerannahme des Aufschlages, dabei „GEHALTENER BALL“.", + "korrekt": true + }, + { + "text": "Annahme von oben (Pritschen), dabei berührt der Ball mehrere Finger nacheinander innerhalb derselben Aktion.", + "korrekt": false + }, + { + "text": "Ein vom eigenen Block berührter gegnerischer Angriffsschlag wird von einem Abwehrspieler außerhalb der eigenen Freizone zurückgespielt.", + "korrekt": false + }, + { + "text": "Unmittelbar nach der Baggerabwehr des Angriffsschlages prallt der Ball an den Kopf des Abwehrspielers.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Libero-Austauschaktion einer Mannschaft findet ein zweites Mal nach der Genehmigung des Aufschlages statt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Das Spiel wird nicht unterbrochen. Nach Ende des Spielzuges wird die Mannschaft wegen Verzögerung sanktioniert.", + "korrekt": false + }, + { + "text": "Der Austausch ist zu erlauben. Nach dem Ende des Spielzuges wird der Libero erneut ermahnt.", + "korrekt": false + }, + { + "text": "Das Spiel muss sofort unterbrochen werden und die Mannschaft wird wegen Verzögerung sanktioniert.", + "korrekt": true + } + ] + }, + { + "frage": "Der Mannschaftskapitän muss unter seiner Brustnummer einen Streifen von 8 cm x 2 cm haben. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Diese Aussage stimmt.", + "korrekt": true + }, + { + "text": "Wenn dieser Streifen fehlt, kann ein Tapestreifen verwendet werden um der Regel gerecht zu werden.", + "korrekt": true + }, + { + "text": "Diese Aussage ist falsch.", + "korrekt": false + }, + { + "text": "Weigert sich der Mannschaftskapitän bei fehlender Kennzeichnung einen Tapestreifen anzubringen, ist der Sachverhalt in das Feld „Bemerkungen“ einzutragen.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler auf der Position I wird hinausgestellt. Der Libero befindet sich zu der Zeit nicht auf dem Feld. Welche Aussage(n) beschreibt/beschreiben einen regelgerechten Sachverhalt?", + "antworten": [ + { + "text": "Der Spieler muss normal gewechselt werden.", + "korrekt": true + }, + { + "text": "Sofern der hinausgestellte Spieler nicht normal gewechselt werden kann, darf der Libero gegen den hinausgestellten Spieler getauscht werden, bis er auf die Position IV rotieren müsste.", + "korrekt": false + }, + { + "text": "Der Libero kann gegen den hinausgestellten Spieler getauscht werden, bis er auf die Position IV rotieren müsste.", + "korrekt": false + }, + { + "text": "Der Libero kann zu einem „normalen“ Spieler umbenannt und gegen den hinausgestellten Spieler gewechselt werden, sofern kein normaler oder ausnahmsweiser Wechsel möglich ist.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Ball wird von einem Spieler der Mannschaft A angenommen und fliegt außerhalb der Antennen in die Freizone von Mannschaft B. Der Zuspieler von Mannschaft A läuft in die gegnerische Freizone und spielt den Ball oberhalb der Antenne zurück. Mit der dritten Ballberührung wird der Ball über das Netz zu Mannschaft B gespielt. Der Schiedsrichter unterbricht das Spiel nicht.", + "korrekt": true + }, + { + "text": "Wenn der Ball durch die dritte Ballberührung von Mannschaft A ins Netz gespielt wird, pfeift der 1. Schiedsrichter sofort ab und entscheidet auf Fehler von Mannschaft A, auch wenn Mannschaft B vor der vierten Ballberührung von Mannschaft A einen Fehler begeht.", + "korrekt": false + }, + { + "text": "Wenn zwei Spieler einer Mannschaft den Ball gleichzeitig berühren, sind das zwei Ballberührungen (außer beim Block).", + "korrekt": true + }, + { + "text": "Der Ball wird von einem Spieler der Mannschaft A angenommen und fliegt außerhalb der Antenne in die Freizone von Mannschaft B. Der Zuspieler von Mannschaft A läuft in die gegnerische Freizone und will den Ball zurückspielen. Der Trainer von Mannschaft B macht einige Schritte auf den Ball zu und fängt ihn vor dem heraneilenden Spieler von Mannschaft A. Der 1. Schiedsrichter entscheidet auf Punkt und Aufschlag für Mannschaft A.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53688)", + "antworten": [] + }, + { + "frage": "Bewerte die folgenden Aussagen dahingehend, ob sie gemäß Regelwerk regelgerecht oder nicht regelgerecht sind. Die regelgerechte(n) Aussage(n) ist/sind anzukreuzen.", + "antworten": [ + { + "text": "Der Trainer darf während des Spieles Auszeiten beantragen.", + "korrekt": true + }, + { + "text": "Der Trainer darf sich mit seinen Spielern vor der Mannschaftsbank warmspielen.", + "korrekt": false + }, + { + "text": "Der Trainer darf sich beim Schiedsgericht nach der Anzahl seiner verbleibenden Auszeiten erkundigen, wenn dies in der Halle nicht ersichtlich ist.", + "korrekt": true + }, + { + "text": "Der Trainer darf einmal pro Spiel eine Unterbrechung wegen eines Toilettengangs beantragen.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53689)", + "antworten": [] + }, + { + "frage": "Der Spielkapitän von Mannschaft A, die weder Trainer noch Co-Trainer hat, beantragt eine Auszeit. Dies ist die erste normale Unterbrechung im Satz. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Mannschaft A kann die Auszeit vorzeitig beenden, wenn sie keine weitere Zeit mehr benötigt.", + "korrekt": false + }, + { + "text": "Direkt nach Beendigung der Auszeit darf der Trainer von Mannschaft B ebenfalls eine Auszeit beantragen.", + "korrekt": true + }, + { + "text": "Die Mannschaften müssen in der Auszeit das Spielfeld verlassen.", + "korrekt": true + }, + { + "text": "Der Antrag darf nur beim 1. Schiedsrichter gestellt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Welche(r) Anträge/Antrag ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein beliebiger Spieler (nicht der Spielkapitän) beantragt eine Auszeit.", + "korrekt": false + }, + { + "text": "Ein wechselbereiter Spieler betritt die Wechselzone. Nachdem der Wechsel vollzogen wurde, betritt ein weiterer wechselbereiter Spieler derselben Mannschaft die Wechselzone.", + "korrekt": false + }, + { + "text": "Nach einem abgeschlossenen Spielzug betreten zwei wechselbereite Spieler einer Mannschaft die Wechselzone gleichzeitig.", + "korrekt": true + }, + { + "text": "Der auf der Mannschaftsbank sitzende Mannschaftskapitän beantragt eine Auszeit.", + "korrekt": false + } + ] + }, + { + "frage": "Was ist während einer Auszeit erlaubt?", + "antworten": [ + { + "text": "Die Spieler verlassen das Spielfeld und halten sich in der Freizone in der Nähe ihrer Mannschaftsbank auf.", + "korrekt": true + }, + { + "text": "Die Wechselspieler kommen von der Aufwärmfläche zum Trainer in die Freizone vor ihrer Mannschaftsbank.", + "korrekt": true + }, + { + "text": "Die Wechselspieler wärmen sich ohne Ball in der Freizone hinter dem eigenen Spielfeld auf.", + "korrekt": true + }, + { + "text": "Die Wechselspieler wärmen sich in der eigenen Freizone mit Bällen auf.", + "korrekt": false + } + ] + }, + { + "frage": "Der Trainer der annehmenden Mannschaft beantragt spät eine Auszeit. Der 2. Schiedsrichter pfeift, obwohl der 1. Schiedsrichter schon den nächsten Aufschlag genehmigt hat. Welche Vorgehensweise(n) ist/sind vollständig und korrekt?", + "antworten": [ + { + "text": "Wenn dieser Antrag der erste unberechtigte Antrag ist, wird dieser Umstand im Spielberichtsbogen vermerkt und der Aufschlag erneut genehmigt.", + "korrekt": false + }, + { + "text": "Die Auszeit wird gewährt, die Mannschaft wird wegen Verzögerung sanktioniert.", + "korrekt": false + }, + { + "text": "Die Auszeit wird nicht gewährt, die Mannschaft wegen Verzögerung sanktioniert, dieser Umstand im Spielberichtsbogen vermerkt und der Aufschlag gegebenenfalls wiederholt.", + "korrekt": true + }, + { + "text": "Die Auszeit wird nicht gewährt, der Aufschlag wird erneut genehmigt.", + "korrekt": false + } + ] + }, + { + "frage": "Wird nach einer Disqualifikation die betroffene Mannschaft auch mit Spielzugverlust bestraft?", + "antworten": [ + { + "text": "Nur im Entscheidungssatz.", + "korrekt": false + }, + { + "text": "Dies liegt im Ermessen des 1. Schiedsrichters.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja, grundsätzlich immer.", + "korrekt": false + } + ] + }, + { + "frage": "Spieler #3 von Mannschaft A wird durch Spieler #8 ausgewechselt. Nach einem Spielzug kommt der Libero auf das Spielfeld für #8. Kurze Zeit später beim Spielstand von 14:11 für Mannschaft A verlässt der Libero das Spielfeld und Spieler #3 kommt. Der Fehler bleibt unbemerkt, Mannschaft B gewinnt den nächsten Spielzug. In diesem Moment realisiert Mannschaft A den Fehler, Spieler #8 rennt (für alle wahrnehmbar) auf das Spielfeld, #3 geht raus. Mit welchem Spielstand geht das Spiel weiter?", + "antworten": [ + { + "text": "14:13 für Mannschaft A", + "korrekt": true + }, + { + "text": "14:12 für Mannschaft A", + "korrekt": false + }, + { + "text": "14:11 für Mannschaft A", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler der Mannschaft A läuft nach dem Pfiff des 1. Schiedsrichters zur Genehmigung des Aufschlages in die Wechselzone. Im Satz zuvor hat der Trainer der Mannschaft A nach dem Pfiff des 1. Schiedsrichters eine Auszeit beantragt, die zurückgewiesen wurde. Welche Entscheidung(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter darf das bereits angepfiffene Spiel nicht unterbrechen, er weist den Antrag ohne weitere Folgen zurück.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter unterbricht das Spiel und lehnt den Antrag ab. Der 1. Schiedsrichter spricht eine Sanktion wegen Verzögerung gegen die Mannschaft wegen des wiederholt gestellten unberechtigten Antrages aus.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter unterbricht das Spiel, lehnt den Antrag ab und spricht eine Sanktion wegen Verzögerung gegen die Mannschaft wegen des wiederholt gestellten unberechtigten Antrages aus.", + "korrekt": false + } + ] + }, + { + "frage": "Der 1. Schiedsrichter hat auf Spielzugverlust und Aufschlagwechsel zu erkennen, wenn ...", + "antworten": [ + { + "text": "... der Ball beim Hochwerfen zum Aufschlag einen fremden Gegenstand (z. B. den Basketballkorb) berührt.", + "korrekt": true + }, + { + "text": "... der aufschlagende Spieler von mehreren seiner Mitspieler verdeckt wird und über diese Spieler hinweg aufschlägt.", + "korrekt": true + }, + { + "text": "... der Aufschlag die Antenne berührt und dabei die annehmende Mannschaft einen Positionsfehler begeht.", + "korrekt": false + }, + { + "text": "... der Aufschlagspieler seitlich der Aufschlagzone anläuft, abspringt und nach dem Aufschlag im Spielfeld landet.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53692)", + "antworten": [] + }, + { + "frage": "Spieler #8 ist auf dem Aufstellungsblatt auf Position VI aufgeführt, verletzt sich aber kurz vor Beginn des Satzes. Wie ist zu verfahren?", + "antworten": [ + { + "text": "Statt des verletzten Spielers #8 kann zunächst der Libero auf das Spielfeld gehen. Erst wenn der Libero auf Position IV rotieren müsste, muss ein Wechsel stattfinden.", + "korrekt": false + }, + { + "text": "Spieler #8 wird regulär beim Spielstand von 0:0 gewechselt. Die Mannschaft erhält aber eine Sanktion wegen Verzögerung.", + "korrekt": false + }, + { + "text": "Der verletzte Spieler #8 muss regulär gewechselt werden, wobei der Trainer beim 2. Schiedsrichter per Handzeichen den Wechsel beantragt. Spieler #8 muss hierfür nicht erst auf das Feld, um ausgewechselt zu werden.", + "korrekt": true + }, + { + "text": "Spieler #8 kann durch irgendeinen Spieler der Mannschaft vor Satzbeginn ersetzt werden. Ein Wechsel wird hierfür nicht angerechnet.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53695)", + "antworten": [] + }, + { + "frage": "Zu einem Meisterschaftsspiel kann ein Spieler seine Spielerlizenz nicht vorlegen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dieser Spieler ist spielberechtigt, weil der Trainer die Spielerlizenz bis Spielende vorlegen will.", + "korrekt": false + }, + { + "text": "Auch wenn sich der Spieler nicht ausweisen kann und somit nicht spielberechtigt ist, darf der Schiedsrichter ihn nicht am mitspielen hindern.", + "korrekt": true + }, + { + "text": "Dieser Spieler ist spielberechtigt, wenn seine Identität vor dem Spiel durch ein amtliches Ausweispapier nachgewiesen wird. Dieser Sachverhalt ist im Spielberichtsbogen im Feld Bemerkungen einzutragen.", + "korrekt": true + }, + { + "text": "Dieser Spieler ist keinesfalls spielberechtigt.", + "korrekt": false + } + ] + }, + { + "frage": "Welche(s) Recht(e) hat der Trainer während des Spieles?", + "antworten": [ + { + "text": "Er darf während des Spieles seinen auf dem Spielfeld befindlichen Spielern Anweisungen erteilen. Dabei muss er nicht auf der Mannschaftsbank sitzen, er kann sich auch in der Freizone davor aufhalten.", + "korrekt": true + }, + { + "text": "Er darf während des Spieles am Ende der Mannschaftsbank Platz nehmen, weil er sich dort auch mit den Spielern auf der Aufwärmfläche verständigen kann.", + "korrekt": false + }, + { + "text": "Er darf sich mit Fragen bezüglich der Spielleitung an den 2. Schiedsrichter wenden.", + "korrekt": false + }, + { + "text": "Er darf seine Aufgaben, ohne Gründe anzugeben, an den Trainerassistenten delegieren und auf der Mannschaftsbank bleiben.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Hinterspieler verletzt sich. Sein Finger blutet. Welche Aussage(n) beschreiben regelgerechtes Verhalten vom Schiedsgericht?", + "antworten": [ + { + "text": "Der blutende Finger wird versorgt. Das Spiel wird für kurze Zeit unterbrochen.", + "korrekt": false + }, + { + "text": "Da der Spieler nicht im Besitz des Aufschlagrechts ist, verlässt er das Spielfeld. Für ihn kommt ein Libero auf das Spielfeld.", + "korrekt": true + }, + { + "text": "Da es sich nur um eine kleine blutende Wunde handelt, lässt das Schiedsgericht weiter spielen.", + "korrekt": false + }, + { + "text": "Obwohl die Versorgung des Fingers nur etwa eine Minute dauern wird, besteht der 1. Schiedsrichter darauf, dass der Spieler unverzüglich gewechselt wird.", + "korrekt": true + } + ] + }, + { + "frage": "In welchem Fall/welchen Fällen gewinnt die annehmende Mannschaft den Spielzug?", + "antworten": [ + { + "text": "Der Aufschlagspieler spielt den Ball ins Netz (der Ball überquert das Netz nicht), die annehmende Mannschaft begeht einen Positionsfehler.", + "korrekt": false + }, + { + "text": "Der Aufschlagspieler führt den Aufschlag mit zwei Händen aus, die annehmende Mannschaft begeht einen Positionsfehler.", + "korrekt": true + }, + { + "text": "Ein Spieler (nicht der Aufschlagspieler) der aufschlagenden Mannschaft befindet sich während der Ausführung des Aufschlages nicht komplett in seinem Spielfeld, die annehmende Mannschaft begeht einen Positionsfehler.", + "korrekt": false + }, + { + "text": "Die aufschlagende Mannschaft begeht einen Rotationsfehler, die annehmende Mannschaft einen Positionsfehler.", + "korrekt": true + } + ] + }, + { + "frage": "Welcher Antrag ist/welche Anträge sind regelgerecht?", + "antworten": [ + { + "text": "Der Mannschaftskapitän beantragt, auf der Mannschaftsbank sitzend, eine Auszeit. Ein Trainer ist nicht anwesend.", + "korrekt": false + }, + { + "text": "Nach dem Pfiff des 1. Schiedsrichters zur Aufschlagbewilligung beantragt ein Trainer eine Auszeit.", + "korrekt": false + }, + { + "text": "Nachdem eine Mannschaft bereits beide Auszeiten unmittelbar nacheinander genehmigt bekommen hat, betritt ein Spieler derselben Mannschaft direkt im Anschluss die Wechselzone.", + "korrekt": true + }, + { + "text": "Unmittelbar nach einem Wechsel beantragt die gegnerische Mannschaft ebenfalls einen Wechsel.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53698)", + "antworten": [] + }, + { + "frage": "Bei Mannschaft A (annehmende Mannschaft) steht der Spieler auf der Position VI mit beiden Füßen näher zur linken Seitenauslinie als der Spieler auf der Position V. Der Schiedsrichter pfeift deshalb den Spielzug ab. Welche Aussage(n) beschreibt/beschreiben eine regelgerechte Vorgehensweise?", + "antworten": [ + { + "text": "Mannschaft A verliert den Spielzug und das Aufschlagrecht.", + "korrekt": true + }, + { + "text": "Dies ist beim ersten Mal ein Doppelfehler und der Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Mannschaft B wird aufgefordert, den Aufschlag nach dem Pfiff des 1. Schiedsrichters zügiger auszuführen.", + "korrekt": false + }, + { + "text": "Wenn Mannschaft A den Aufschlag ausgeführt hatte, wechselt das Aufschlagrecht zur Mannschaft B.", + "korrekt": true + } + ] + }, + { + "frage": "Der Libero darf ...", + "antworten": [ + { + "text": "... einen Blockversuch ausführen.", + "korrekt": false + }, + { + "text": "... für einen beliebigen Hinterspieler der eigenen Mannschaft das Feld betreten, wenn der Ball aus dem Spiel ist.", + "korrekt": true + }, + { + "text": "... ein oberes Zuspiel aus der Hinterzone heraus durchführen.", + "korrekt": true + } + ] + }, + { + "frage": "Während eines Meisterschaftsspiels beginnt es zu regnen und Wasser tropft durch das geöffnete Dachfenster auf das Spielfeld. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Ende des Regens ist nicht abzusehen. Die Mannschaftskapitäne verständigen sich nach einer Stunde auf Wiederholung des Spieles und bestätigen dies im Spielberichtsbogen. Der 1. Schiedsrichter stimmt dieser Vorgehensweise zu.", + "korrekt": true + }, + { + "text": "Der in der Halle anwesende Hausmeister kann das Dachfenster zeitnah schließen. Nachdem das Spielfeld wieder trocken gewischt wurde und der der 2. Schiedsrichter sich davon überzeugt hat, dass keine Gefährdung der Spieler mehr vorliegt, wird das Spiel auf gleichem Spielfeld mit gleichem Punktestand fortgesetzt.", + "korrekt": true + }, + { + "text": "Das Spiel wird beendet und muss wiederholt werden.", + "korrekt": false + }, + { + "text": "Das Spiel wird unterbrochen und kann nach 90 Minuten fortgesetzt werden. Die Ergebnisse der vorangegangenen Sätze bleiben erhalten, der unterbrochene Satz wird annulliert und bei gleicher Startaufstellung wiederholt.", + "korrekt": false + } + ] + }, + { + "frage": "Der 2. Schiedsrichter stellt bei der Überprüfung vor Satzbeginn fest, dass die Eintragung auf einem Aufstellungsblatt nicht mit den auf dem Spielfeld stehenden Spielern der betreffenden Mannschaft übereinstimmt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Positionen der Spieler werden entsprechend dem Aufstellungsblatt berichtigt. Es folgt keine Sanktion.", + "korrekt": true + }, + { + "text": "Die Mannschaft wechselt darauf hin so, dass die Eintragung auf dem Aufstellungsblatt mit dem auf dem Spielfeld stehenden Spieler übereinstimmt. Dieser/Diese Wechsel zählt/zählen als reguläre(r) Wechsel der Mannschaft in diesem Satz.", + "korrekt": true + }, + { + "text": "Wegen der fehlenden Übereinstimmung von Aufstellungsblatt und tatsächlicher Aufstellung erhält die Mannschaft eine Sanktion wegen Verzögerung.", + "korrekt": false + }, + { + "text": "Die Mannschaft möchte so spielen, wie sie auf dem Spielfeld steht. Das Aufstellungsblatt wird ohne weitere Aktion geändert.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53702)", + "antworten": [] + }, + { + "frage": "In welchem Fall/in welchen Fällen ist die Netzberührung eines Spielers ein Fehler?", + "antworten": [ + { + "text": "Nach der sicheren Landung dreht sich der Blockspieler um und berührt dabei das Netz.", + "korrekt": false + }, + { + "text": "Während des Landens berührt der Blockspieler das Netz unterhalb der Netzoberkante.", + "korrekt": true + }, + { + "text": "Ein Spieler zieht das Netz herunter, damit der Ball ungehindert auf die gegnerische Seite fliegen kann.", + "korrekt": true + }, + { + "text": "Der Ball drückt die Netzoberkante an die Arme des Blockspielers.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einer schlechten Annahme überquert der Ball das Netz außerhalb der Antenne in die gegnerische Freizone. Ein anderer Spieler spielt den Ball ins eigene Feld zurück. In welchen Fällen ist dies erlaubt?", + "antworten": [ + { + "text": "Der Ball fliegt vollständig unter dem Netz zurück, im Raum zwischen der Verlängerung der(selben) Antenne nach unten und dem Pfosten.", + "korrekt": false + }, + { + "text": "Der Ball fliegt direkt über die(selbe) Antenne zurück.", + "korrekt": true + }, + { + "text": "Der Ball wird vom Spieler außerhalb der gegnerischen Freizone und außerhalb der(selben) Antenne ins eigene Feld zurück gespielt.", + "korrekt": false + }, + { + "text": "Der Ball fliegt zwischen Netz und Pfosten (auf derselben Seite und ohne irgendein Spannseil zu berühren) zurück.", + "korrekt": true + } + ] + }, + { + "frage": "Welcher Aussage(n) ist/sind regelgerecht in Bezug auf Anträge?", + "antworten": [ + { + "text": "Nach Anpfiff des 1. Schiedsrichters beantragt der Trainer eine Auszeit.", + "korrekt": false + }, + { + "text": "Der Trainer beantragt einen Wechsel. Ohne Wiederaufnahme des Spieles beantragt der Spielkapitän eine Auszeit.", + "korrekt": false + }, + { + "text": "Mannschaft A wechselt. In der gleichen Unterbrechung kommt es durch eine Bestrafung eines Spielers von Mannschaft B zu einer Punktestandsänderung. Daraufhin beantragt Mannschaft A erneut einen Wechsel.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53709)", + "antworten": [] + }, + { + "frage": "Spieler #5 Mannschaft A reagiert im vierten Satz mit unangemessenes Verhalten auf eine Entscheidung des Schiedsgerichts. Derselbe Spieler #5 wurde im zweiten Satz bereits bestraft (rote Karte). Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spieler wird hinausgestellt. Kein Punkt und Aufschlag für den Gegner.", + "korrekt": true + }, + { + "text": "Der Spieler wird disqualifiziert. Kein Punkt und Aufschlag für den Gegner.", + "korrekt": false + }, + { + "text": "Der Spieler wird bestraft. Punkt und Aufschlag für den Gegner.", + "korrekt": false + }, + { + "text": "Der Spieler wird hinausgestellt. Punkt und Aufschlag für den Gegner.", + "korrekt": false + } + ] + }, + { + "frage": "Während des Spieles darf ein Spieler ...", + "antworten": [ + { + "text": "… sich während einer Auszeit in der Freizone hinter dem Spielfeld aufwärmen.", + "korrekt": true + }, + { + "text": "… Schmuckstücke tragen, die in geeigneter Form abgeklebt sind, so dass sie keine Gefahr darstellen.", + "korrekt": true + }, + { + "text": "… der im Spielberichtsbogen nicht eingetragen ist, aber nach Spielbeginn seine Spielerlizenz vorlegt, mitspielen.", + "korrekt": false + }, + { + "text": "… sich jederzeit mit einem Ball spielbereit halten.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53711)", + "antworten": [] + }, + { + "frage": "Falls der Trainer seine Mannschaft verlassen muss, darf der Co-Trainer mit Genehmigung des 1. Schiedsrichters die Aufgaben des Trainers übernehmen. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Wenn kein Co-Trainer eingetragen ist, darf jeder andere Spieler die Aufgaben des Trainers übernehmen.", + "korrekt": false + }, + { + "text": "Dies ist gestattet, wenn der Trainer nach einer Hinausstellung oder Disqualifikation den Wettkampfbereich verlassen muss.", + "korrekt": true + }, + { + "text": "Dies ist gestattet, wenn sich der Trainer beim 1. Schiedsrichter abmeldet, weil er kurz weg muss.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler wird im Entscheidungssatz beim Stand von 7:14 für seine Mannschaft hinausgestellt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die gegnerische Mannschaft erhält wegen der Hinausstellung keinen Punkt.", + "korrekt": true + }, + { + "text": "Ist kein normaler Wechsel möglich, verliert die Mannschaft das Spiel.", + "korrekt": false + }, + { + "text": "Ist kein normaler Wechsel möglich, darf der Spieler ausnahmsweise gewechselt werden.", + "korrekt": true + }, + { + "text": "Der Spieler muss normal gewechselt werden.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Blockspieler zieht seine Arme kurz vor dem Angriff des Gegners nach unten, wird aber trotzdem vom Ball unterhalb der Netzoberkante am Kopf getroffen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Berührung des Blockspielers zählt als 1. Ballberührung, wenn sich keines seiner Körperteile während der Berührung oberhalb der Netzoberkante befindet.", + "korrekt": true + }, + { + "text": "Die Berührung des Blockspielers wird nur dann als Block gewertet, wenn sich während der Berührung einer seiner Körperteile oberhalb der Netzoberkante und in der Nähe des Netzes befindet.", + "korrekt": true + }, + { + "text": "Der Blockspieler darf den Ball ein zweites Mal berühren, wenn sich keines seiner Körperteile während der Berührung oberhalb der Netzoberkante befindet.", + "korrekt": false + } + ] + }, + { + "frage": "Der Spieler #4 Mannschaft B wird hinausgestellt. Mannschaft B hat bereits sechs Wechsel vorgenommen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Mannschaft muss einen Ausnahmsweisewechsel durchführen.", + "korrekt": false + }, + { + "text": "Ein Spieler, der in diesem Satz noch nicht gespielt hat, kann ausnahmsweise eingewechselt werden.", + "korrekt": true + }, + { + "text": "Die Mannschaft wird für den Satz für unvollständig erklärt und verliert diesen Satz. Die bereits erzielten Punkte bleiben erhalten.", + "korrekt": true + }, + { + "text": "Ein Spieler, der bereits gespielt hat, kann ausnahmsweise eingewechselt werden.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53716)", + "antworten": [] + }, + { + "frage": "Der 2. Schiedsrichter pfeift das Ende der Satzpause. Mannschaft B reagiert hierauf jedoch trotz freundlichen Hinweises des 2. Schiedsrichters nicht und bespricht sich weiter mit dem Trainer. Welche Aussage(n) beschreiben/beschreibt regelgerechtes Verhalten der Schiedsrichter?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter bewertet das Verhalten der Mannschaft als unangemessen und spricht eine Bestrafung gegen den Trainer aus.", + "korrekt": false + }, + { + "text": "Die Schiedsrichter warten, bis Mannschaft B sich zu Ende besprochen hat. Nach Kontrolle der Startaufstellung ermahnt der 1. Schiedsrichter die Mannschaft verbal über den Spielkapitän.", + "korrekt": false + }, + { + "text": "Aufgrund des bereits erfolgten Hinweises des 2. Schiedsrichters ist eine weitere Verwarnung nicht mehr notwendig. Der 1. Schiedsrichter spricht eine Bestrafung wegen Verzögerung aus.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter spricht eine Sanktion wegen Verzögerung aus. Wenn die Mannschaft hierauf noch immer nicht reagiert, spricht der 1. Schiedsrichter eine weitere Sanktion wegen Verzögerung aus.", + "korrekt": true + } + ] + }, + { + "frage": "Direkt nach einem Wechsel fängt bei dem eingewechselten Spieler die Nase an zu bluten. Welche Aussage(n) beschreibt/beschreiben regelgerechtes Vorgehen?", + "antworten": [ + { + "text": "Ist kein normaler Wechsel möglich, muss der Spieler ausnahmsweise gewechselt werden.", + "korrekt": true + }, + { + "text": "Ein normaler Wechsel ist nicht möglich, da nach der Einwechslung kein Spielzug stattgefunden hat.", + "korrekt": false + }, + { + "text": "Kann die Blutung nicht gestoppt werden, muss der Spieler normal gewechselt werden.", + "korrekt": true + }, + { + "text": "Das Schiedsgericht muss die medizinische Erstversorgung gewähren.", + "korrekt": true + } + ] + }, + { + "frage": "Eine Mannschaft beantragt in dem Moment beim 2. Schiedsrichter eine Auszeit, in dem der 1. Schiedsrichter den Aufschlag genehmigt. Der 2. Schiedsrichter pfeift irrtümlicherweise. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Antrag wird zurückgewiesen. Die Mannschaft erhält eine Sanktion wegen Verzögerung. Der 1. Schiedsrichter muss den Aufschlag erneut genehmigen.", + "korrekt": true + }, + { + "text": "Der Antrag wird ohne Sanktion zurückgewiesen. Falls der Antrag aber wiederholt wird bevor der 1. Schiedsrichter den Aufschlag erneut genehmigt, wird die Auszeit gewährt.", + "korrekt": false + }, + { + "text": "Die Auszeit wird ohne jegliche Sanktion gewährt.", + "korrekt": false + }, + { + "text": "Die Auszeit wird gewährt. Die Mannschaft erhält eine Sanktion wegen Verzögerung.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Trainer darf sich beim 2. Schiedsrichter erkundigen, wie viele Wechsel seine Mannschaft im jeweiligen Satz bereits durchgeführt hat.", + "korrekt": true + }, + { + "text": "Der Spielkapitän darf sich mit Fragen an den 2. Schiedsrichter wenden, wenn der Ball aus dem Spiel ist und es um Fragen aus dem Zuständigkeitsbereich des 2. Schiedsrichters geht.", + "korrekt": true + }, + { + "text": "Wenn der Ball aus dem Spiel ist, können sowohl der Trainer als auch der Spielkapitän Auszeiten beantragen.", + "korrekt": false + }, + { + "text": "Der Co-Trainer darf während der Spielzüge, auf der Mannschaftsbank sitzend, Anweisungen an seine Mannschaft geben.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53723)", + "antworten": [] + }, + { + "frage": "Ein Hinterspieler (kein Libero) begeht einen Fehler, wenn er:", + "antworten": [ + { + "text": "… sich an einem Blockversuch der Vorderspieler beteiligt.", + "korrekt": false + }, + { + "text": "… den Aufschlag des Gegners über der Vorderzone und vollständig über der Netzoberkante zum Gegner schlägt.", + "korrekt": true + }, + { + "text": "… nach dem Absprung in der Vorderzone einen vollständig oberhalb der Netzoberkante befindlichen Ball gegen den Block des Gegners schlägt.", + "korrekt": true + }, + { + "text": "… nach dem Absprung in der Vorderzone einen unterhalb der Netzoberkante befindlichen Ball gegen den Block des Gegners spielt.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A spielt mit 12 Spielern (ohne Libero). Ein Spieler dieser Mannschaft wird im ersten Satz beim Stand von 22:7 für Mannschaft B hinausgestellt. Bislang hat es in diesem Satz noch keine Wechsel gegeben. Welche Auswirkung(en) hat die vollständige Anwendung dieser Sanktion auf die Anzahl der verbleibenden Wechsel von Mannschaft A?", + "antworten": [ + { + "text": "Die Anzahl bleibt unverändert.", + "korrekt": false + }, + { + "text": "Die Anzahl wird nur um eins reduziert, sofern sich der Spieler zum Zeitpunkt der Sanktion auf dem Spielfeld befindet.", + "korrekt": true + }, + { + "text": "Die Anzahl wird nur um eins reduziert, sofern sich der Spieler zum Zeitpunkt der Sanktion nicht auf dem Spielfeld befindet.", + "korrekt": false + }, + { + "text": "Die Anzahl wird immer um eins reduziert.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Folge hat das erste unangemessene Verhalten eines Spielers gegenüber seinem Mannschaftskameraden?", + "antworten": [ + { + "text": "Eine Hinausstellung.", + "korrekt": false + }, + { + "text": "Eine Ermahnung.", + "korrekt": false + }, + { + "text": "Eine Bestrafung.", + "korrekt": true + }, + { + "text": "Keine.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53725)", + "antworten": [] + }, + { + "frage": "Zwei Spieler von Mannschaft A kommen unmittelbar nacheinander in die Wechselzone. Welche Aussage(n) beschreibt/beschreiben regelgerechtes Vorgehen des Schiedsgerichts?", + "antworten": [ + { + "text": "Während der erste Wechsel vollzogen wird, verlässt der zweite Wechselspieler die Wechselzone. Die Mannschaft erhält eine Sanktion wegen Verzögerung.", + "korrekt": false + }, + { + "text": "Während der erste Wechsel vollzogen wird, verlässt der zweite Wechselspieler die Wechselzone. Der 2. Schiedsrichter besteht auf dem zweiten Wechsel.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter pfeift, beide Wechsel werden nacheinander vollzogen. Der 1. Schiedsrichter pfeift nicht.", + "korrekt": true + }, + { + "text": "Während der erste Wechsel vollzogen wird, verlässt der zweite Wechselspieler die Wechselzone. Das Spiel wird ohne weitere Maßnahmen fortgesetzt.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53728)", + "antworten": [] + }, + { + "frage": "Nach der sicheren Landung in Folge eines Blockes dreht sich der Blockspieler um und berührt dabei die Netzunterkante. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Mit der sicheren Landung gilt die Spielaktion als abgeschlossen, die darauffolgende Netzberührung ist kein Fehler.", + "korrekt": true + }, + { + "text": "Die Landung wird zur Spielaktion gezählt, der 2. Schiedsrichter muss pfeifen.", + "korrekt": false + }, + { + "text": "Jegliche Netzberührung ist ein Fehler.", + "korrekt": false + }, + { + "text": "Die Berührung des Netzes unterhalb der Netzoberkante ist grundsätzlich kein Fehler.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53731)", + "antworten": [] + }, + { + "frage": "Ein Wechselspieler steht in der Wechselzone, bereit zum Wechsel, der zum Wechsel vorgesehene Feldspieler kommt allerdings nicht an die Seitenlinie. Welche Aussage(n) beschreibt/beschreiben eine regelgerechte Vorgehensweise?", + "antworten": [ + { + "text": "Das Schiedsgericht erlaubt den Wechsel und erteilt eine Sanktion wegen Verzögerung.", + "korrekt": true + }, + { + "text": "Das Schiedsgericht weist den Wechsel zurück und erteilt keine Sanktion.", + "korrekt": false + }, + { + "text": "Das Schiedsgericht weist den Wechsel zurück und erteilt eine Sanktion wegen Verzögerung.", + "korrekt": false + }, + { + "text": "Das Schiedsgericht erlaubt den Wechsel und erteilt keine Sanktion.", + "korrekt": false + } + ] + }, + { + "frage": "Der Spielkapitän beantragt im vierten Satz die dritte Auszeit (dieser Antrag wird zurückgewiesen). Im fünften Satz beantragt der Trainer derselben Mannschaft den siebter Wechsel. Welche Entscheidung(en) des Schiedsrichters ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spielkapitän wird wegen Wiederholung eines unkorrekten Verhaltens im selben Satz bestraft.", + "korrekt": false + }, + { + "text": "Die Mannschaft erhält wegen Wiederholung eines unberechtigten Antrags eine Verwarnung wegen Verzögerung.", + "korrekt": true + }, + { + "text": "Die Mannschaft erhält wegen Wiederholung einer Verzögerung eine Bestrafung wegen Verzögerung.", + "korrekt": false + }, + { + "text": "Der zweite Antrag ist nicht ordnungsgemäß. Er wird ohne jede Sanktion zurückgewiesen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) in Bezug auf den Trainer ist/sind regelgerecht?", + "antworten": [ + { + "text": "Er darf den Schiedsrichter zur Auslegung der Regeln befragen.", + "korrekt": false + }, + { + "text": "Er darf Wechsel beantragen, wenn der Ball „aus dem Spiel“ ist.", + "korrekt": true + }, + { + "text": "Er darf in der Vorderzone seine Mannschaft coachen.", + "korrekt": false + }, + { + "text": "Er bestimmt die Startaufstellung seiner Mannschaft.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53734)", + "antworten": [] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht? Der Ball ist Aus, wenn ...", + "antworten": [ + { + "text": "... auch nur ein Teil des Balles unterhalb der Netzunterkante in den Raum des Gegners hineinragt.", + "korrekt": false + }, + { + "text": "... er sich bei der Berührung mit dem Boden, vollumfänglich außerhalb der Begrenzungslinien befindet (kein Teil des Balles berührt die Begrenzungslinien des Spielfeldes).", + "korrekt": true + }, + { + "text": "... er das Netz außerhalb der Antennen berührt.", + "korrekt": true + }, + { + "text": "... er nach einer Blockberührung weit ins AUS geht. Nur der Linienrichter hat diese Blockberührung angezeigt, der Schiedsrichter hat sie nicht sicher gesehen.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler, bisher ohne Sanktion, beleidigt einen Zuschauer laut und für alle hörbar. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Es kann keine Sanktion ausgesprochen werden, da Beleidigungen gegen Zuschauer nicht regelwidrig sind.", + "korrekt": false + }, + { + "text": "Für die Beleidigung wird der Spieler hinausgestellt. Er muss sich für die Dauer der Strafe in die Umkleidekabine der Mannschaft aufhalten.", + "korrekt": true + }, + { + "text": "Der Spieler erhält vom 1. Schiedsrichter eine Sanktion wegen ausfallenden Verhaltens.", + "korrekt": true + }, + { + "text": "Da der Spieler bisher nicht verwarnt wurde, genügt ein kurzes Gespräch zwischen dem Spieler und dem 1. Schiedsrichter, in welchem dem Spieler klar gemacht wird, dass sich dieses Verhalten nicht wiederholen darf.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53736)", + "antworten": [] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53739)", + "antworten": [] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53742)", + "antworten": [] + }, + { + "frage": "Erstes ausfallendes Verhalten eines Spielers (Mannschaft A) in einem Spiel. Welche Sanktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spieler wird disqualifiziert und muss den Wettkampfbereich verlassen.", + "korrekt": false + }, + { + "text": "Der Spieler wird hinausgestellt und muss für die Dauer dieses Satzes in die Umkleidekabine der Mannschaft.", + "korrekt": true + }, + { + "text": "Der Spieler erhält eine rote Karte (Spielzuggewinn und Aufschlagrecht für Mannschaft B).", + "korrekt": false + }, + { + "text": "Der Spieler wird hinausgestellt und Mannschaft B erhält einen Punkt und das Aufschlagrecht.", + "korrekt": false + } + ] + }, + { + "frage": "Auf Spielzugwiederholung ist zu entscheiden, wenn ...", + "antworten": [ + { + "text": "... ein Mitspieler des Aufschlagspielers im Moment der Ausführung des Aufschlages außerhalb des Spielfeldes steht und die annehmende Mannschaft einen Positionsfehler begeht.", + "korrekt": true + }, + { + "text": "... zwei Fehler unmittelbar nacheinander begangen werden.", + "korrekt": false + }, + { + "text": "... ein Hinterspieler in der Vorderzone abspringt, den sich vollständig oberhalb der Netzoberkante befindlichen Ball in Richtung Gegner schlägt und gleichzeitig der übergreifende Block den Ball berührt.", + "korrekt": false + }, + { + "text": "... der Aufschlagspieler im Moment der Ausführung des Aufschlages die Grundlinie betritt und die annehmende Mannschaft einen Positionsfehler begeht.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Libero kann Mannschaftskapitän sein. Vor Spielbeginn ist aber ein anderer Spieler als Spielkapitän zu benennen, der die Mannschaft vertritt, wenn dieser Libero nicht im Spiel ist.", + "korrekt": false + }, + { + "text": "Eine Mannschaft besteht aus mindestens sechs und höchstens zwölf Spielern.", + "korrekt": true + }, + { + "text": "Ein Spieler einer mit sechs Spielern angereisten Mannschaft verletzt sich beim Spielstand von 2:0 Sätzen und 24:17 Punkten für die eigene Mannschaft so schwer, dass er nicht mehr weiterspielen kann. Die Mannschaft darf ausnahmsweise dieses Spiel mit fünf Spielern zu Ende spielen.", + "korrekt": false + }, + { + "text": "Uneinheitliche Spielerkleidung von Spielern, die nicht Libero sind, muss unter Bemerkungen eingetragen werden. Die Spieler dürfen am Spiel teilnehmen.", + "korrekt": true + } + ] + }, + { + "frage": "Eine Sanktion (Verwarnung oder Bestrafung) wegen Spielverzögerung ist auszusprechen, wenn ...", + "antworten": [ + { + "text": "... ein Wechsel durchgeführt worden ist und vor Wiederaufnahme des Spieles von derselben Mannschaft ein weiterer Wechsel beantragt wird.", + "korrekt": false + }, + { + "text": "... eine Mannschaft nach einer Auszeit nicht unverzüglich vollständig auf dem Spielfeld steht.", + "korrekt": true + }, + { + "text": "... die Libero-Austauschaktion wiederholt nach der Genehmigung des Aufschlages und vor dessen Ausführung erfolgt.", + "korrekt": true + }, + { + "text": "... ein Spieler durch Gestikulieren die Schiedsrichter auf sich aufmerksam macht, sein festes Schuhband löst und den Schuh neu schnürt.", + "korrekt": true + } + ] + }, + { + "frage": "Mit einer falschen Rotation der Mannschaft A erzielen beide Mannschaften Punkte. Der Spielzug wird vom Schiedsrichter unterbrochen, Mannschaft A nimmt die richtige Aufstellung ein und ...", + "antworten": [ + { + "text": "... die Punkte beider Mannschaften werden gestrichen. Das Spiel wird dort wieder aufgenommen, wo kein Rotationsfehler von Mannschaft A erkennbar war.", + "korrekt": false + }, + { + "text": "... die Punkte beider Mannschaften bleiben erhalten, wobei der letzte Aufschlag wiederholt wird.", + "korrekt": false + }, + { + "text": "... die mit der falschen Rotation von Mannschaft A erzielten Punkte werden gestrichen. Mannschaft A wird mit Punkt und Aufschlag für den Gegner bestraft. Die Punkte von Mannschaft B bleiben gültig.", + "korrekt": true + }, + { + "text": "... die Punkte beider Mannschaften bleiben erhalten, Mannschaft A wird wegen falscher Rotation mit Punkt und Aufschlag für den Gegner bestraft.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Folge hat das erste unangemessene Verhalten eines Spielers gegenüber seinem Mannschaftskameraden?", + "antworten": [ + { + "text": "Eine Hinausstellung.", + "korrekt": false + }, + { + "text": "Eine Bestrafung.", + "korrekt": true + }, + { + "text": "Eine Verwarnung.", + "korrekt": false + }, + { + "text": "Eine Disqualifikation.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53747)", + "antworten": [] + }, + { + "frage": "Der 1. Schiedsrichter sanktioniert ein Mannschaftsmitglied mit einer roten Karte. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Er addressiert grundsätzlich immer die Sanktion an das betreffende Mannschaftsmitglied.", + "korrekt": false + }, + { + "text": "Er spricht die Sanktion in jedem Fall über den Spielkapitän aus.", + "korrekt": false + }, + { + "text": "Wenn das Mannschaftsmitglied sich nicht auf dem Spielfeld befindet, spricht er die Sanktion über den Spielkapitän aus.", + "korrekt": true + }, + { + "text": "Wenn sich das Mannschaftsmitglied auf dem Spielfeld befindet, spricht er die Sanktion direkt aus.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53749)", + "antworten": [] + }, + { + "frage": "Nachdem ein Spieler in einem vorausgegangenen Satz das Spiel verzögert hat, kommt es zu einer neuerlichen Verzögerung durch einen Spieler derselben Mannschaft. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spieler wird wegen Verzögerung verwarnt.", + "korrekt": false + }, + { + "text": "Die Mannschaft wird wegen Verzögerung verwarnt.", + "korrekt": false + }, + { + "text": "Der Spieler wird wegen Verzögerung bestraft.", + "korrekt": false + }, + { + "text": "Die Mannschaft wird wegen Verzögerung bestraft.", + "korrekt": true + } + ] + }, + { + "frage": "Die Mannschaft besteht aus zehn Spielern. Ein Spieler verletzt sich. Alle normalen Wechsel sind bereits ausgeführt. Welche der genannten Verfahrensweisen kommt zuerst zur Anwendung?", + "antworten": [ + { + "text": "Die Mannschaft wird für unvollständig erklärt und verliert den Satz.", + "korrekt": false + }, + { + "text": "Dem Spieler wird eine Wiederherstellungszeit von 3 Minuten gewährt.", + "korrekt": false + }, + { + "text": "Der verletzte Spieler braucht nicht gewechselt zu werden, wenn er auf eigene Gefahr weiterspielen will.", + "korrekt": false + }, + { + "text": "Der Spieler darf ausnahmsweise ausgewechselt werden.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht in Bezug auf den Libero?", + "antworten": [ + { + "text": "Der Libero darf nur nach Beendigung eines Spielzuges und vor Anpfiff zum nächsten Spielzug ausgetauscht werden.", + "korrekt": true + }, + { + "text": "Die Liberos werden in der Rubrik „Mannschaften“ zweimal eingetragen; einmal in der Spielerliste und einmal in den Zeilen „Liberos“.", + "korrekt": true + }, + { + "text": "Der Libero muss sich bei jedem Austausch beim Schreiberassistenten anmelden.", + "korrekt": false + }, + { + "text": "Wenn sich ein Spieler so schwer verletzt, dass er nicht mehr weiterspielen kann und weder regulär noch ausnahmsweise gewechselt werden kann, darf der Libero für ihn den Satz zu Ende spielen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche(s) Recht(e) hat der Spielkapitän während des Spieles?", + "antworten": [ + { + "text": "Er darf beim Schiedsrichter die Überprüfung der Netzhöhe verlangen.", + "korrekt": true + }, + { + "text": "Er darf den Schiedsrichter bitten, einen Wechsel der Spielerkleidung zu gestatten.", + "korrekt": true + }, + { + "text": "Er darf den Schiedsrichter bitten, die Rotationsfolge der Mannschaft zu überprüfen.", + "korrekt": true + }, + { + "text": "Er darf Wechsel und Auszeiten beantragen, auch wenn der Trainer sich auf der Mannschaftsbank befindet.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft vergisst den Libero zu tauschen, als er auf Position IV rotiert. Nach drei Punkten bemerkte der 1. Schiedsrichter, dass der Libero irregulär auf dem Spielfeld ist. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Wenn sich ein Spieler irregulär auf dem Spielfeld befindet, muss dies mit einem Punkt und Aufschlag für den Gegner bestraft werden. Die Aufstellung muss korrigiert werden. Die seit dem Fehlerzeitpunkt von der fehlerhaften Mannschaft erzielten Punkte werden hier aber nicht annulliert, da es ein Nachteil ist, mit dem Libero in der Vorderzone zu spielen.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter drückt beide Augen zu und lässt einfach weiterspielen.", + "korrekt": false + }, + { + "text": "Wenn sich ein Spieler irregulär auf dem Spielfeld befindet, muss dies mit einem Punkt und Aufschlag für den Gegner bestraft werden. Die Aufstellung muss korrigiert werden und die seit dem Fehlerzeitpunkt von der fehlerhaften Mannschaft erzielten Punkte werden annulliert.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53755)", + "antworten": [] + }, + { + "frage": "Der Aufschlagspieler steht innerhalb der Aufschlagzone und prellt den Ball nach dem Anpfiff des 1. Schiedsrichters innerhalb seiner Spielfeldhälfte auf den Boden. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Das ist zulässig, daher ist kein Eingreifen des 1. Schiedsrichters erforderlich.", + "korrekt": true + }, + { + "text": "Dies ist eine Spielverzögerung. Der 1. Schiedsrichter muss eine Sanktion wegen Verzögerung aussprechen.", + "korrekt": false + }, + { + "text": "Das ist nicht zulässig: Punkt und Aufschlag für den Gegner.", + "korrekt": false + }, + { + "text": "Betritt der Aufschlagspieler in dem Moment, in dem er den Aufschlag ausführt, die Grundlinie, ist auf Punkt und Aufschlag für den Gegner zu entscheiden.", + "korrekt": true + } + ] + }, + { + "frage": "Spieler #2 von Mannschaft A verzögert das Spiel. Im nächsten Satz entsteht durch Spieler #4 von Mannschaft A eine erneute Spielverzögerung. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Gegen Mannschaft A wird in beiden Fällen eine Verwarnung wegen Verzögerung ausgesprochen.", + "korrekt": false + }, + { + "text": "Gegen die Spieler #2 und #4 wird in beiden Fällen eine Verwarnung wegen Verzögerung ausgesprochen.", + "korrekt": false + }, + { + "text": "Gegen Mannschaft A wird im ersten Fall eine Verwarnung wegen Verzögerung und im zweiten Fall eine Bestrafung wegen Verzögerung ausgesprochen. Bei der Verwarnung erhält der Gegner KEINEN Punkt zuerkannt.", + "korrekt": true + }, + { + "text": "Gegen Mannschaft A wird im ersten Fall eine Verwarnung wegen Verzögerung und im zweiten Fall eine Bestrafung wegen Verzögerung ausgesprochen. Bei der Bestrafung wird dem Gegner ein Punkt zuerkannt.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53762)", + "antworten": [] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53766)", + "antworten": [] + }, + { + "frage": "Der einzige Libero der Mannschaft spielt nicht gut. Der Trainer erklärt ihn als nicht mehr spielfähig und will einen neuen Libero benennen. Welche der folgende(n) Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Als neuer Libero kommt jeder Spieler (ausgenommen der Austauschspieler) in Frage, der sich zum Zeitpunkt der Neubenennung nicht auf dem Feld befindet. Der ursprüngliche Libero kann nicht mehr ins Spiel zurückkehren.", + "korrekt": true + }, + { + "text": "Wenn der Trainer den regulären Austauschspieler zum neuen Libero machen will, muss er diesen zuerst regelkonform wechseln. Wird der Mannschaftskapitän neuer Libero, so ist ein neuer Spielkapitän zu benennen.", + "korrekt": true + }, + { + "text": "Wegen schlechten Spielens kann kein neuer Libero benannt werden. Das geht nur bei Erkrankung oder Verletzung.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind in Bezug auf eine Hinausstellung regelgerecht?", + "antworten": [ + { + "text": "Wenn ein Libero hinausgestellt wird, darf er sofort durch den zweiten Libero ersetzt werden.", + "korrekt": true + }, + { + "text": "Ein hinausgestellter Spieler muss sich in die Umkleidekabine der Mannschaft begeben.", + "korrekt": true + }, + { + "text": "Ein hinausgestellter Spieler ist durch einen regulären oder ausnahmesweise Wechsel zu ersetzen.", + "korrekt": true + }, + { + "text": "Ein hinausgestellter Trainer seine Mannschaft weiterhin coachen.", + "korrekt": false + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53768)", + "antworten": [] + }, + { + "frage": "Welche Aktion(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Spieler blockt den gegnerischen Aufschlag.", + "korrekt": false + }, + { + "text": "Ein Hinterspieler springt hinter der Angriffslinie ab und spielt den gegnerischen Aufschlag direkt zurück, wobei sich der Ball in der Vorderzone vollständig oberhalb der Netzoberkante befindet.", + "korrekt": false + }, + { + "text": "Ein Spieler spielt den gegnerischen Aufschlag direkt zurück, wobei sich der Ball im Raum oberhalb der Hinterzone und vollständig oberhalb der Netzoberkante befindet.", + "korrekt": true + }, + { + "text": "Ein Spieler spielt den gegnerischen Aufschlag direkt zurück, wobei sich der Ball in der Vorderzone und teilweise unterhalb der Netzoberkante befindet.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53769)", + "antworten": [] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53772)", + "antworten": [] + }, + { + "frage": "Hat ein Trainer das Recht, sich während des Spieles mit Fragen an das Schiedsgericht zu wenden?", + "antworten": [ + { + "text": "Ja, er darf über alles eine Auskunft verlangen, wenn der Ball „aus dem Spiel“ ist.", + "korrekt": false + }, + { + "text": "Nein, aber er darf während eines Wechsels die Wechselzone betreten und mit den Spielern sprechen.", + "korrekt": false + }, + { + "text": "Ja, er darf über alles eine Auskunft verlangen.", + "korrekt": false + }, + { + "text": "Wenn der Ball aus dem Spiel ist, darf er beim 2. Schiedsrichter nachfragen, wie viele Wechsel ihm noch zur Verfügung stehen.", + "korrekt": true + } + ] + }, + { + "frage": "eLearning | DVV - C-Lizenz (Vorbereitung) | Testergebnis von Marc Wieland (ID: 53773)", + "antworten": [] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Mittellinie wird in voller Breite als zu beiden Spielfeldhälften gehörend betrachtet.", + "korrekt": true + }, + { + "text": "Ein Ball ist «IN», wenn ein Teil des Balles zu irgendeinem Zeitpunkt während seines Kontaktes mit dem Boden das Spielfeld berührt.", + "korrekt": true + }, + { + "text": "Mit Genehmigung des 1. Schiedsrichters dürfen Spieler barfuß spielen.", + "korrekt": true + }, + { + "text": "Die Libero-Austauschzone befindet sich auf der Seite der Mannschaftbänke, beginnt bei der Verlängerung der Mittellinie und endet bei der Verlängerung der Grundlinie.", + "korrekt": false + } + ] + } +] \ No newline at end of file diff --git a/backend/d_condensed.json b/backend/d_condensed.json new file mode 100755 index 0000000..2c1bf4c --- /dev/null +++ b/backend/d_condensed.json @@ -0,0 +1,6529 @@ +[ + { + "frage": "Der Ball berührt zwei Blockspieler in einer Aktion unmittelbar hintereinander. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Das zählt als zwei Berührungen. Danach ist nur noch eine weitere Berührung auf Seiten der Blockmannschaft zulässig.", + "korrekt": false + }, + { + "text": "Ein Block zählt nicht als Berührung. Es darf aber keiner der Blockspieler den Ball direkt erneut spielen.", + "korrekt": false + }, + { + "text": "Das zählt als eine Berührung, danach sind drei weitere Berührungen durch eine Mannschaft zulässig.", + "korrekt": true + } + ] + }, + { + "frage": "Ist es Aufgabe des Linienrichters, anzuzeigen, wenn ein „Aus-Ball\" zuvor von einem Spieler der annehmenden Mannschaft noch berührt worden ist?", + "antworten": [ + { + "text": "Nur, wenn die Schiedsrichter dies nicht erkennen konnten.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + } + ] + }, + { + "frage": "Nach einem Blockversuch landet der Mittelblocker, steht sicher und dreht sich dann um zu schauen, wo der Ball ist, um. Dabei streift er mit der Schulter das Netz. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter pfeift, denn jede Netzberührung innerhalb der Antennen ist ein Netzfehler.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter kann diese Netzberührung nicht sehen, denn sofort nach dem Blockversuch muss er den Ball mit den Augen verfolgen, um zu sehen, ob dieser auf den Boden fällt oder nicht.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter pfeift nicht, denn die Netzberührung wird nicht mehr zu seiner Blockaktion gehörend gewertet.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Libero beteiligt sich an einem Block. Ist dies ein Fehler?", + "antworten": [ + { + "text": "Nein", + "korrekt": false + }, + { + "text": "Ja, wenn der Ball von einem der Blockspieler berührt wurde.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + } + ] + }, + { + "frage": "Darf ein Spieler nach einer Ballberührung die Freizone der anderen Mannschaft berühren?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, wenn er dabei das gegnerische Spiel nicht behindert.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Wie breit sind die Linien des Spielfeldes?", + "antworten": [ + { + "text": "8 cm.", + "korrekt": false + }, + { + "text": "5 cm.", + "korrekt": true + }, + { + "text": "7 cm.", + "korrekt": false + }, + { + "text": "6 cm.", + "korrekt": false + } + ] + }, + { + "frage": "Was ist ein regelgerechter Antrag auf Wechsel?", + "antworten": [ + { + "text": "Der Trainer zeigt dem 2. Schiedsrichter das Wechelzeichen.", + "korrekt": false + }, + { + "text": "Der/die Spieler, der/die eingewechselt werden soll(en), betritt/betreten die Wechselzone. Dies allein stellt den Wechselantrag dar. Bei einem Mehrfachwechsel muss das Betreten der Wechselzone nahezu zeitgleich erfolgen.", + "korrekt": true + }, + { + "text": "Der Spielkapitän zeigt dem 2. Schiedsrichter das Wechselzeichen und ruft diesem «Wechsel» zu.", + "korrekt": false + } + ] + }, + { + "frage": "Wird ein unkorrektes Verhalten dem Spieler über den einzelnen Satz hinaus für das gesamte Spiel angerechnet?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Dies liegt im Ermessen des 1. Schiedsrichters.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + } + ] + }, + { + "frage": "Der 2. Schiedsrichter stellt vor Satzbeginn fest, dass sich auf dem Spielfeld bei Mannschaft A ein Spieler befindet, dessen Trikotnummer auf dem Aufstellungsblatt nicht vorhanden ist. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Mannschaft A wird wegen geringfügiger Unkorrektheit verwarnt, weil das Aufstellungsblatt fehlerhaft war.", + "korrekt": false + }, + { + "text": "Der Spieler, dessen Trikotnummer auf dem Aufstellungsblatt vermerkt ist, muss den „falschen\" Spieler ersetzen. Soll der Spieler auf dem Spielfeld verbleiben, so ist das der erste normale Wechsel von Mannschaft A.", + "korrekt": true + }, + { + "text": "Der Spieler bleibt in jedem Fall auf dem Spielfeld. Das Aufstellungsblatt und der Spielberichtsbogen werden korrigiert.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einem Angriffsschlag (Ball berührt im gegnerischen Feld den Boden) darf ein Spieler ...", + "antworten": [ + { + "text": "… nicht in die gegnerische Spielfeldhälfte eindringen.", + "korrekt": false + }, + { + "text": "… in die gegnerische Spielfeldhälfte eindringen.", + "korrekt": true + }, + { + "text": "… die geballte Faust zum Gegner strecken.", + "korrekt": false + } + ] + }, + { + "frage": "Welcher Aufschlag ist regelgerecht?", + "antworten": [ + { + "text": "Der Aufschlagspieler betritt beim Schlagen des Balles die Grundlinie.", + "korrekt": false + }, + { + "text": "Der Aufschlagspieler springt in der Aufschlagzone ab, führt im Sprung den Aufschlag aus und landet nach dem Schlag im Spielfeld.", + "korrekt": true + }, + { + "text": "Der Aufschlagspieler steht beim Schlagen des Balles außerhalb der seitlichen Begrenzung der Aufschlagzone.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A begeht beim Spielstand von 16:16 im Entscheidungssatz einen Aufschlagfehler. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Mannschaft B gewinnt den Spielzug, erhält einen Punkt und Aufschlagrecht. Das Spiel wird so lange fortgesetzt, bis eine Mannschaft einen Vorsprung von zwei Punkten erzielt hat.", + "korrekt": true + }, + { + "text": "Mannschaft B gewinnt den Spielzug, erhält einen Punkt und Aufschlagrecht. Das Spiel wird so lange fortgesetzt bis eine Mannschaft 25 Punkte erzielt hat.", + "korrekt": false + }, + { + "text": "Mannschaft B gewinnt den Spielzug, erhält einen Punkt und gewinnt damit das Spiel.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein geblockter Ball direkt wieder über das Netz gespielt werden?", + "antworten": [ + { + "text": "Nein, es muss eine weitere Ballberührung auf der eigenen Seite stattfinden.", + "korrekt": false + }, + { + "text": "Ja, der Ball darf nach dem Block von jedem Spieler wieder über das Netz gespielt werden.", + "korrekt": true + }, + { + "text": "Ja, der Ball darf nach dem Block aber nur von einem am Block beteiligten Spieler direkt über das Netz gespielt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Was ist ein Doppelfehler?", + "antworten": [ + { + "text": "Wenn Spieler derselben Mannschaft nacheinander Fehler begehen.", + "korrekt": false + }, + { + "text": "Wenn Gegenspieler gleichzeitig Fehler begehen.", + "korrekt": true + }, + { + "text": "Wenn Spieler derselben Mannschaft zur gleichen Zeit Fehler begehen.", + "korrekt": false + } + ] + }, + { + "frage": "Im Moment der Ausführung des Aufschlages steht der Spieler auf Position VI mit beiden Füssen knapp hinter seinem Vorderspieler auf Position III. Der Hinterspieler hat im Moment der Ausführung des Aufschlages eine Hand auf dem Boden, deutlich vor den Füssen seines Vorderspielers. Ist dies eine regelgerechte Position der annehmenden Mannschaft?", + "antworten": [ + { + "text": "Nein, das ist nicht erlaubt.", + "korrekt": false + }, + { + "text": "Ja, denn für die Betrachtung sind nur die Fußstellungen von Wichtigkeit.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler und ein Libero tragen Trikots mit der #10. Ist das erlaubt?", + "antworten": [ + { + "text": "Ja, aber der Libero muss ein zusätzliches Kennzeichen tragen.", + "korrekt": false + }, + { + "text": "Ja, denn die Trikots von Libero und allen anderen Spielern seiner Mannschaft haben deutlich unterschiedliche Farben.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + } + ] + }, + { + "frage": "Auf welche Mannschaft muss der 2. Schiedsrichter schauen, während der Aufschlag ausgeführt wird?", + "antworten": [ + { + "text": "Auf die annehmende Mannschaft, um deren Aufstellung zu kontrollieren.", + "korrekt": true + }, + { + "text": "Auf die aufschlagende Mannschaft, um einen Rotationsfehler zu erkennen.", + "korrekt": false + }, + { + "text": "Auf den Aufschlagspieler, um dessen Übertreten der Grundlinie zu erkennen.", + "korrekt": false + } + ] + }, + { + "frage": "Zwei gegnerische Spieler berühren den Ball oberhalb der Netzoberkante gleichzeitig. Der Ball kommt dabei zur Ruhe. Welche Aussage(n) ist/sind korrekt?", + "antworten": [ + { + "text": "Dies ist kein Fehler, das Spiel läuft weiter.", + "korrekt": true + }, + { + "text": "Dies ist ein Doppelfehler, da die Situation einen „Halteball“ darstellt.", + "korrekt": false + }, + { + "text": "Fällt der Ball nach dem „Halteball” in die Spielfeldhälfte von Mannschaft A, so erhält diese einen Punkt und das Aufschlagrecht.", + "korrekt": false + } + ] + }, + { + "frage": "Hat ein Trainer das Recht, sich während einer Spielunterbrechung mit Fragen an den 1. Schiedsrichter zu wenden?", + "antworten": [ + { + "text": "Nur, wenn ihm die Schiedsrichterentscheidung nicht klar ist.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft spielt mit zwei Liberos. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der aktive Libero auf dem Spielfeld kann direkt durch den zweiten Libero ersetzt werden.", + "korrekt": true + }, + { + "text": "Beide Liberos dürfen sich gleichzeitig auf dem Spielfeld befinden.", + "korrekt": false + }, + { + "text": "Wenn ein Libero disqualifiziert wird, kann die Mannschaft eine Libero Neubenennung vornehmen, so dass sie wieder über zwei Liberos verfügt.", + "korrekt": false + } + ] + }, + { + "frage": "Während eines Spielzuges fällt ein Ball für den 2. Schiedsrichter klar ersichtlich neben die Hand einer Spielerin, berührt den Boden, springt hoch und wird weitergespielt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter pfeift, wenn er sich sicher ist, dass der 1. Schiedsrichter die Bodenberührung nicht wahrnehmen konnte.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter pfeift nicht, zeigt dem 1. Schiedsrichter aber deutlich an, dass er den Ball auf dem Boden gesehen hat.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter macht nichts.", + "korrekt": false + } + ] + }, + { + "frage": "Der Libero nimmt den gegnerischen Aufschlag im oberen Zuspiel an. Dabei erfolgt eine Doppelberührung direkt nacheinander. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter unterbricht den Spielzug und entscheidet auf Doppelberührung.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter unterbricht den Spielzug und entscheidet auf Doppelberührung.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter unterbricht den Spielzug nicht.", + "korrekt": true + } + ] + }, + { + "frage": "Rotationsfehler bei Mannschaft A. Es kann nicht mehr festgestellt werden, wann der Fehler zuerst aufgetreten ist. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Mannschaft B erhält einen Punkt und das Aufschlagsrecht.", + "korrekt": true + }, + { + "text": "Der Satz wird neu begonnen.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball berührt den Boden so, dass die Spielfeldlinie an ihrer Außenseite noch berührt wird. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Ein Ball ist immer nur dann \"In\", wenn die vertikale Projektion des Balles die gesamte Linienbreite abdeckt.", + "korrekt": false + }, + { + "text": "Der Ball ist \"In\", weil der Ball die Spielfeldlinie berührt.", + "korrekt": true + }, + { + "text": "Der Ball ist \"Aus\", weil er die Spielfeldlinie nicht vollständig berührt.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Die Mannschaftskapitäne einigen sich vor dem Spiel über die Netzhöhe.", + "korrekt": false + }, + { + "text": "Vor dem Spiel überprüft das Schiedsgericht die Netzhöhe durch Messen in der Feldmitte und über den Seitenlinien.", + "korrekt": true + }, + { + "text": "Das Netz wird nur auf Antrag eines Mannschaftskapitäns gemessen.", + "korrekt": false + } + ] + }, + { + "frage": "Bei einer verunglückten Annahme fliegt der Ball unter dem Netz Richtung Gegner. Noch bevor der Ball vollständig unter dem Netz durchgeflogen ist, spielt ein Spieler der annehmenden Mannschaft ihn wieder zurück. Dabei berührt er den Ball unter dem Netz auf der gegnerischen Seite. Der 1. Schiedsrichter pfeift den Spielzug ab. Ist dies korrekt?", + "antworten": [ + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Wer außer dem Schiedsgericht muss die 'Offiziellen Volleyball-Regeln' kennen?", + "antworten": [ + { + "text": "Alle Mitglieder beider Mannschaften.", + "korrekt": true + }, + { + "text": "Trainer, Co-Trainer und alle Spieler.", + "korrekt": false + }, + { + "text": "Trainer, Co-Trainer, Mannschaftskapitän und Spielkapitän.", + "korrekt": false + } + ] + }, + { + "frage": "Während einer spektakulären Abwehraktion berührt der Spieler das Netz außerhalb der Antenne unterhalb der Netzoberkante. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Eine leichte Netzberührung unterhalb der Netzoberkante muss generell nicht geahndet werden.", + "korrekt": false + }, + { + "text": "Dies ist kein Fehler. Der Spielzug läuft weiter.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter entscheidet auf Netzberührung (Handzeichen #19), da die Berührung während einer Spielaktion passierte.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Libero mit einem Trikot ohne Nummer spielen?", + "antworten": [ + { + "text": "Ja, denn es unterscheidet sich von allen anderen Trikots seiner Mannschaft.", + "korrekt": false + }, + { + "text": "Ja, aber es muss mit einem „L“ gekennzeichnet sein.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + } + ] + }, + { + "frage": "Zwei Gegenspieler berühren gleichzeitig den Ball oberhalb des Netzes. Darf einer der beiden Spieler den nächsten Schlag ausführen?", + "antworten": [ + { + "text": "Nur unterhalb der Netzoberkante.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Der 1. Schiedsrichter hat die Aufgabe, darauf hinzuwirken, dass Fehlverhalten nicht ein Ausmaß erreicht, welches Sanktionen zur Folge hätte. Wie geht er dabei regelgerecht vor?", + "antworten": [ + { + "text": "Zunächst spricht er eine verbale Verwarnung über den Spielkapitän aus, bei nochmaligem Fehlverhalten zeigt er dem betreffenden Mannschaftmitglied die gelbe Karte als formelle Verwarnung.", + "korrekt": true + }, + { + "text": "Er zeigt sofort die gelbe Karte als Verwarnung.", + "korrekt": false + }, + { + "text": "Er verwarnt die Mannschaft verbal oder durch ein Handzeichen.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler verletzt sich bei einer Abwehraktion am Knie und blutet. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Spielzug wird unterbrochen (Spielzugwiederholung), der Spieler darf sofort auf dem Spielfeld versorgt werden. Falls die Blutung schnell gestillt werden kann, darf das Spiel so fortgesetzt werden, sonst muss der Spieler gewechselt werden.", + "korrekt": true + }, + { + "text": "Die Mannschaft des verletzten Spielers erhält einen Punkt und gewinnt den Spielzug.", + "korrekt": false + }, + { + "text": "Der Spielzug wird unterbrochen (Spielzugwiederholung), der Spieler muss sofort gewechselt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einer Verwarnung wegen Verzögerung wird das Spiel im nächsten Satz von der gleichen Mannschaft weiter verzögert. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Das betreffende Mannschaftsmitglied wird hinausgestellt.", + "korrekt": false + }, + { + "text": "Die Mannschaft erhält eine Bestrafung wegen wiederholter Verzögerung.", + "korrekt": true + }, + { + "text": "Die Mannschaft erhält nochmals eine Verwarnung wegen Verzögerung.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler spielt den Ball auf seiner Seite des Netzes, indem er hinter die Mannschaftsbank auf die Tribüne läuft und von dort den Ball zu seiner Mannschaft zurückspielt. Ist das regelgerecht?", + "antworten": [ + { + "text": "Nein, denn der Ball darf nur innerhalb der Spielfläche (Spielfeld und Freizone) gespielt werden.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Nein, denn ein Spieler darf die Tribüne nicht als Hilfsmittel nutzen.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball fliegt nach der dritten Ballberührung einer Mannschaft innerhalb des Überquerungssektors ins Netz. Wann pfeift der 1. Schiedsrichter?", + "antworten": [ + { + "text": "Wenn der Ball den Boden berührt oder ein weiteres Mal gespielt wird.", + "korrekt": true + }, + { + "text": "Sofort, wenn der Ball das Netz berührt.", + "korrekt": false + }, + { + "text": "Sobald er sicher ist, dass der Ball das Netz nicht überqueren wird.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Hinterspieler spielt den Ball nach Absprung in der Vorderzone über das Netz. Ist das regelgerecht?", + "antworten": [ + { + "text": "Dies ist ohne weitere Einschränkungen immer regelgerecht.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, wenn sich ein Teil des Balles bei der Berührung unterhalb der Netzoberkante befindet.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Libero muss in einer der 12 Zeilen (obere Hälfte) der Rubrik „Mannschaften“ und zusätzlich noch in der Zeile „Liberos/Libero Players“, sowie auf dem Aufstellungsblatt des ersten Satzes eingetragen sein, damit er die Spielberechtigung als Libero erwirbt.", + "korrekt": false + }, + { + "text": "Der Libero muss in einer der 12 Zeilen (obere Hälfte) der Rubrik „Mannschaften“ und zusätzlich noch in der Zeile „Liberos/Libero Players“ eingetragen sein, damit er die Spielberechtigung als Libero erwirbt.", + "korrekt": true + }, + { + "text": "Es ist ausreichend, wenn der Libero auf dem Aufstellungsblatt des ersten Satzes eingetragen wird, um die Spielberechtigung als Libero zu erwerben.", + "korrekt": false + } + ] + }, + { + "frage": "Zwei gegnerische Netzspieler berühren kurz und gleichzeitig den Ball über dem Spielraum der Mannschaft A. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Das Spiel geht weiter.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler der Mannschaft B wenn die Berührung von Mannschaft A kein Angriffsschlag war.", + "korrekt": true + }, + { + "text": "Dies ist ein Fehler der Mannschaft A.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler einer Mannschaft verletzt sich während eines Spielzuges ernsthaft. Welche Aussage(n) ist (sind) korrekt?", + "antworten": [ + { + "text": "Das Schiedsgericht unterbricht den Spielzug sofort. Die Mannschaft hat noch die Möglichkeit regulär zu wechseln. Trotzdem weist der 2. Schiedsrichter alle Wechselanträge ab und gewährt nur eine Wiederherstellungszeit von 3 Minuten.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter wertet den Spielzug wie gespielt, da die Verletzung keinen Einfluss auf den Spielzug hatte. Das Schiedsgericht gewährt Erstversorgung auf dem Spielfeld, anschließend wird der Spieler normal ausgewechselt.", + "korrekt": false + }, + { + "text": "Das Schiedsgericht unterbricht den Spielzug sofort. Wenn der verletzte Spieler der aktive (einzige) Libero ist, kann der Trainer einen Spieler, der nicht auf dem Spielfeld steht und nicht der Austauschspieler des Liberos ist, als Libero neu benennen und gegen den spielunfähig gewordenen Libero austauschen.", + "korrekt": true + } + ] + }, + { + "frage": "Beim Spielstand von 5:3 zu Gunsten von Mannschaft A wird festgellt, dass Spieler #5 von Mannschaft A (am Aufschlag) nicht in der Rotationsfolge im Spielberichtsbogen aufgeführt ist, dafür aber Spieler #9. Was ist eine/sind regelgerechte Vorgehensweise(n)?", + "antworten": [ + { + "text": "Spieler #9 nimmt den Platz ein und Mannschaft B erhält Aufschlagsrecht. Spielstand 4:0 für Mannschaft B.", + "korrekt": true + }, + { + "text": "Spieler #9 nimmt den Platz ein. Mannschaft A behält aber das Aufschlagrecht.", + "korrekt": false + }, + { + "text": "Der Schiedsrichter lässt Spieler #5 spielen, aber Mannschaft B erhält das Aufschlagsrecht und einen Punkt.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball fliegt nach der Annahme ins Netz und berührt die Antenne. Ein Spieler spielt den Ball danach mit dem Fuß. Der 1. Schiedsrichter pfeift. Welches ist das regelgerechte Handzeichen?", + "antworten": [ + { + "text": "Handzeichen #15 (Ball AUS), weil der Ball eine Antenne berührt hat.", + "korrekt": true + }, + { + "text": "Handzeichen #19 (fehlerhafte Netzberührung), weil der Ball das Netz außerhalb der Antennen berührt hat.", + "korrekt": false + }, + { + "text": "Handzeichen #23 (Doppelfehler und Spielzugwiederholung). Der Schiedsrichter hat sich geirrt. Er hätte nicht pfeifen dürfen, da kein Fehler aufgetreten ist.", + "korrekt": false + } + ] + }, + { + "frage": "Der Trainer beantragt beim 2. Schiedsrichter eine Auszeit, nachdem der 1. Schiedsrichter bereits zum Aufschlag angepfiffen hatte. Dies ist der zweite derartige Vorfall bei derselben Mannschaft im Spiel. Welche Entscheidung ist regelgerecht?", + "antworten": [ + { + "text": "Der Antrag auf Auszeit wird vom 2. Schiedsrichter zurückgewiesen. Die Mannschaft wird vom 1. Schiedsrichter wegen Spielverzögerung verwarnt.", + "korrekt": true + }, + { + "text": "Der Antrag auf Auszeit wird vom 2. Schiedsrichter mittels Pfiff und Handzeichen zurückgewiesen. Die Mannschaft wird vom 1. Schiedsrichter wegen Spielverzögerung bestraft.", + "korrekt": false + }, + { + "text": "Der Antrag auf Auszeit wird vom 2. Schiedsrichter genehmigt. Die Mannschaft wird vom 1. Schiedsrichter wegen Spielverzögerung bestraft.", + "korrekt": false + } + ] + }, + { + "frage": "In welcher Reihenfolge hat der 2. Schiedsrichter die offiziellen Handzeichen auszuführen, wenn der 1. Schiedsrichter einen Spielzug abpfeift?", + "antworten": [ + { + "text": "Er zeigt zunächst das Zeichen für den Fehler, dann (nach dem 1. Schiedsrichter) die Seite der Mannschaft, die als nächstes Aufschlag haben wird.", + "korrekt": false + }, + { + "text": "Er zeigt zunächst die Seite der Mannschaft, die als nächstes Aufschlag haben wird, dann das Zeichen für den Fehler.", + "korrekt": false + }, + { + "text": "Wenn der 1. Schiedsrichter den Spielzug abpfeift, zeigt der 2. Schiedsrichter gar keine Handzeichen.", + "korrekt": true + } + ] + }, + { + "frage": "Wird nach einer Hinausstellung die betreffende Mannschaft auch noch mit Spielzugverlust bestraft?", + "antworten": [ + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Dies liegt im Ermessen des 1. Schiedsrichters.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler (nicht der Aufschlagspieler) tritt im Moment der Ausführung des Aufschlages über die Begrenzungslinie des Spielfeldes hinaus. Ist das regelgerecht?", + "antworten": [ + { + "text": "Nein, Punkt und Aufschlag für den Gegner.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Nein, der Aufschlag wird wiederholt.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einer Blockaktion berührt der Ball das Netz außerhalb der Antenne. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dies ist nur dann ein Fehler, wenn Netz und Antenne berührt werden.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler, denn eine Netzberührung durch den Ball außerhalb der Antenne ist nicht gestattet.", + "korrekt": true + }, + { + "text": "Dies ist kein Fehler, denn eine Netzberührung durch den Ball ist immer erlaubt.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Netzhöhen sind bei Damen-Spielen regelgerecht?", + "antworten": [ + { + "text": "Links 2.25 m; Mitte 2.24 m; Rechts 2.26 m", + "korrekt": false + }, + { + "text": "Links 2.25 m; Mitte 2.24 m; Rechts 2.25 m", + "korrekt": true + }, + { + "text": "Links 2.26 m; Mitte 2.25 m; Rechts 2.26 m", + "korrekt": false + }, + { + "text": "Links 2.24 m; Mitte 2.22 m; Rechts 2.24 m", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler einer Mannschaft mit zehn Spielern verletzt sich. Er ist nicht sofort wieder spielfähig. Wie ist als erstes zu verfahren?", + "antworten": [ + { + "text": "Dem Spieler ist eine Wiederherstellungszeit von drei Minuten zu gewähren.", + "korrekt": false + }, + { + "text": "Der Spieler darf auf dem Spielfeld behandelt werden bis er hinausgetragen werden kann, dann muss er (normal) gewechselt werden.", + "korrekt": true + }, + { + "text": "Der Spieler muss sofort vom Spielfeld getragen und gewechselt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Darf der Ball nach der Annahme das Netz außerhalb der Antennen berühren?", + "antworten": [ + { + "text": "Nein, dies ist ein Fehler.", + "korrekt": true + }, + { + "text": "Es ist nur dann ein Fehler, wenn gleichzeitig auch die Antenne berührt wird.", + "korrekt": false + }, + { + "text": "Ja, eine Netzberührung durch den Ball ist immer erlaubt.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Spieler mitspielen, auch wenn er nicht im Spielberichtsbogen als Spieler eingetragen ist?", + "antworten": [ + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja, wenn der Trainer dem Schiedsgericht mitgeteilt hat, dass der Spieler später zum Spieltag nachkommen wird.", + "korrekt": false + }, + { + "text": "Ja, wenn sich ein anderer Spieler verletzt, darf jeder an dessen Stelle weiterspielen.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft spielt mit 2 Liberos! Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Beide Liberos tragen ein andersfarbiges Trikot als die Mannschaft mit unterschiedlichen Trikotnummern, aber gleicher Farbe.", + "korrekt": true + }, + { + "text": "Beide Liberos tragen ein andersfarbiges Trikot als die Mannschaft mit unterschiedlicher Farbe, aber der gleichen Trikotnummer.", + "korrekt": false + }, + { + "text": "Beide Liberos tragen ein andersfarbiges Trikot als die Mannschaft mit einem „L“ darauf.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Mannschaft schlägt im fünften Satz zuerst auf?", + "antworten": [ + { + "text": "Die Mannschaft, die bereits im ersten Satz zuerst aufgeschlagen hat.", + "korrekt": false + }, + { + "text": "Die Gastmannschaft.", + "korrekt": false + }, + { + "text": "Die Mannschaft, die in der Auslosung vor dem fünften Satz das Aufschlagrecht erhalten hat.", + "korrekt": true + } + ] + }, + { + "frage": "Der Aufschlagspieler wirft den Ball hoch, schlägt ihn aber nicht. Der Ball berührt beim Herunterfallen die Schulter des Aufschlagspielers. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Aufschlag gilt als ausgeführt, somit Punkt und Aufschlag für den Gegner.", + "korrekt": true + }, + { + "text": "Der Aufschlag darf wiederholt werden. Der 1. Schiedsrichter pfeift erneut.", + "korrekt": false + }, + { + "text": "Der Aufschlag darf wiederholt werden. Es wird nicht erneut gepfiffen.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einer misslungenen Annahme rennt der Zuspieler in die eigene Freizone um den Ball von dort zu spielen, dabei berührt er den Ball mit beiden Unterarmen deutlich nacheinander. Während dieser Spielaktion steht er mit dem Rücken zum 1. Schiedsrichter, so dass dieser die Doppelberührung nicht sehen konnte. Der 2. Schiedsrichter pfeift die Doppelberührung ab. Handelt er regelgerecht?", + "antworten": [ + { + "text": "Ja, aber nur mit Erlaubnis des 1. Schiedsrichters.", + "korrekt": false + }, + { + "text": "Nein, Doppelberührungen darf nur der 1. Schiedsrichter pfeifen.", + "korrekt": true + }, + { + "text": "Ja, er muss die Doppelberührung pfeifen, da der 1. Schiedsrichter sie nicht sehen kann.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball berührt zwei Blockspieler der Mannschaft A unmittelbar nacheinander in einer Aktion. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dies gilt als Ballberührung, jedoch darf keiner von beiden Blockspielern die nächste Ballberührung ausführen.", + "korrekt": false + }, + { + "text": "Dies gilt als zwei Berührungen, danach ist nur noch eine Ballberührung der Mannschaft A zulässig.", + "korrekt": false + }, + { + "text": "Dies gilt als Ballberührung, danach sind noch drei Ballberührungen der Mannschaft A zulässig.", + "korrekt": true + } + ] + }, + { + "frage": "Der Ball berührt zwei Blockspieler einer Mannschaft unmittelbar nacheinander in einer Aktion. Wie hat der 1. Schiedsrichter zu entscheiden?", + "antworten": [ + { + "text": "Dies gilt als zwei Ballberührungen, danach ist noch eine Ballberührung der Mannschaft zulässig.", + "korrekt": false + }, + { + "text": "Dies gilt als eine Ballberührung, jedoch darf keiner von beiden Blockspielern den nächsten Ball spielen.", + "korrekt": false + }, + { + "text": "Dies gilt als eine Ballberührung, danach sind noch drei Ballberührungen der Mannschaft zulässig.", + "korrekt": true + } + ] + }, + { + "frage": "Darf eine Mannschaft mit zwei Liberos spielen?", + "antworten": [ + { + "text": "Nur, wenn beide Liberos die gleiche Trikotnummer haben und zu keinem Zeitpunkt gemeinsam auf dem Spielfeld stehen.", + "korrekt": false + }, + { + "text": "Nur, wenn beide Liberos unterschiedliche Trikotnummern haben und zu keinem Zeitpunkt gemeinsam auf dem Spielfeld stehen.", + "korrekt": true + }, + { + "text": "Nur, wenn beide Liberos gemeinsam auf dem Spielfeld stehen, aber unterschiedliche Trikotnummern haben.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Hinterspieler springt in der Vorderzone ab und schlägt einen sich vollständig oberhalb der Netzoberkante befindlichen Ball Richtung gegnerisches Spielfeld. Dies ist die zweite Ballberührung der Mannschaft. Der Ball berührt die Netzoberkante und prallt von dort wieder in Richtung der angreifenden Mannschaft zurück. Welche Entscheidung(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dies ist kein Fehler, die angreifende Mannschaft hat noch das Recht auf eine dritte Ballberührung.", + "korrekt": true + }, + { + "text": "Dies ist ein Fehler des Hinterspielers, weil er den Ball vollständig oberhalb der Netzoberkante schlägt.", + "korrekt": false + } + ] + }, + { + "frage": "Der aufschlagende Spieler steht im Moment der Ausführung des Aufschlages außerhalb der Aufschlagzone. Gleichzeitig begeht die annehmende Mannschaft einen Positionsfehler. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter entscheidet auf Doppelfehler. Der Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter entscheidet auf Spielzugverlust gegen die annehmende Mannschaft.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter entscheidet auf Spielzugverlust gegen die aufschlagende Mannschaft.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler berührt während seiner Spielaktion das Netz. Der 2. Schiedsrichter pfeift. Mit welchem offiziellen Handzeichen und in welcher Reihenfolge zeigt der 2. Schiedsrichter den Fehler an?", + "antworten": [ + { + "text": "Erstens: Zur Seite nächster Aufschlag zeigen; Zweitens: Auf die Mittellinie zeigen; Drittens: Auf den Spieler zeigen.", + "korrekt": false + }, + { + "text": "Erstens: Auf den Spieler zeigen; Zweiten: Oben an das weiße Band zeigen; Drittens: Seite nächster Aufschlag.", + "korrekt": false + }, + { + "text": "Erstens: Mit der flachen Hand gegen das Netz zeigen; Zweitens: Auf den Spieler zeigen; Drittens: Seite nächster Aufschlag nach dem 1. Schiedsrichter zeigen.", + "korrekt": true + } + ] + }, + { + "frage": "Wo müssen sich die Mannschaften während einer Auszeit aufhalten?", + "antworten": [ + { + "text": "Irgendwo außerhalb der Spielfläche.", + "korrekt": false + }, + { + "text": "Das ist egal, es gibt keine vorgeschriebene Zone.", + "korrekt": false + }, + { + "text": "In der Freizone in der Nähe der eigenen Mannschaftsbank.", + "korrekt": true + } + ] + }, + { + "frage": "Das Schiedsgericht entscheidet auf Doppelfehler und Spielzugwiederholung. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter begibt sich unverzüglich auf die Seite der annehmenden Mannschaft.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter wendet sich zum Schreiber, um sicherzustellen, dass dieser die Entscheidung erkannt und keinen Punkt vergeben hat. Anschließend begibt er sich auf die Seite der annehmenden Mannschaft.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter genehmigt einen Antrag auf Auszeit der Mannschaft A.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A möchte den Libero direkt zu Satzbeginn einsetzen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dies ist nicht möglich, der Libero darf erst nach dem ersten Spielzug das Spielfeld betreten.", + "korrekt": false + }, + { + "text": "Erst nachdem die Startaufstellung eingetragen und vom 2. Schiedsrichter kontrolliert wurde, darf der Libero mit einem Hinterspieler tauschen und das Spielfeld betreten", + "korrekt": true + }, + { + "text": "Der Libero steht für den ausgetauschten Hinterspieler in der Startaufstellung, während der 2. Schiedsrichter dem Schreiber die Aufstellung mitteilt.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Trainer während des Spieles Fragen an das Schiedsgericht stellen?", + "antworten": [ + { + "text": "Wenn der Ball aus dem Spiel ist, darf er den 2. Schiedsrichter fragen, welcher Spieler als nächstes bei seiner Mannschaft aufschlägt.", + "korrekt": false + }, + { + "text": "Ja, er darf über alles eine Auskunft erfragen, solange der Ball aus dem Spiel ist.", + "korrekt": false + }, + { + "text": "Wenn der Ball aus dem Spiel ist, darf er den 2. Schiedsrichter fragen, wie viele Wechsel er noch hat.", + "korrekt": true + } + ] + }, + + { + "frage": "Welche Aussage(n) beschreibt/beschreiben regelgerechtes Verhalten des Schiedsgerichts, wenn ein Wechselspieler die Wechselzone betritt?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter pfeift, der 2. Schiedsrichter macht das Handzeichen „Wechsel“, der 1. Schiedsrichter genehmigt den Wechsel.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter pfeift und macht das Handzeichen „Wechsel“. Nachdem der Schreiber ihm signalisiert hat, dass der Wechsel regulär ist, genehmigt er diesen.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter pfeift und macht das Handzeichen „Wechsel“, der 2. Schiedsrichter schaut zum Schreiber und genehmigt dann den Wechsel.", + "korrekt": false + } + ] + }, + { + "frage": "Der Trainer beantragt eine Auszeit beim 2. Schiedsrichter, nachdem der 1. Schiedsrichter bereits zum Aufschlag angepfiffen hat. Dies ist der dritte derartige Vorfall im Spiel. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter unterbricht das Spiel. Der 1. Schiedsrichter lehnt den Antrag ab und spricht eine Verwarnung wegen Verzögerung gegen die Mannschaft wegen des zu spät gestellten Antrages aus.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter darf das bereits angepfiffene Spiel nicht unterbrechen, er weist den Antrag ohne weitere Folgen zurück.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter unterbricht das Spiel. Der 1. Schiedsrichter lehnt den Antrag ab und spricht eine Bestrafung wegen Verzögerung gegen die Mannschaft wegen des zu spät gestellten Antrages aus.", + "korrekt": true + } + ] + }, + { + "frage": "Zwei Gegenspieler begehen unmittelbar nacheinander den gleichen Fehler. Welcher Fehler muss vom Schiedsgericht gemäß Regelwerk geahndet werden?", + "antworten": [ + { + "text": "Keiner der beiden Fehler.", + "korrekt": false + }, + { + "text": "Der zuerst begangene Fehler.", + "korrekt": true + }, + { + "text": "Beide Fehler, weil die Fehler fast gleichzeitig begangen wurden.", + "korrekt": false + } + ] + }, + { + "frage": "Darf der Libero einen Angriffsschlag ausführen?", + "antworten": [ + { + "text": "Ja", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, wenn sich ein Teil des Balles bei der Berührung unterhalb der Netzoberkante befindet.", + "korrekt": true + } + ] + }, + { + "frage": "Die Annahme fliegt durch den Außensektor in die gegnerische Freizone. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Spieler darf den Ball hinter der gegnerischen Mannschaftsbank spielen.", + "korrekt": false + }, + { + "text": "Der Ball muss auf derselben Seite vollständig oder teilweise durch den Außensektor zurückgespielt werden.", + "korrekt": true + }, + { + "text": "Der Spieler, welcher dem Ball hinterherläuft, darf durch das Spielfeld des Gegners in dessen Freizone laufen.", + "korrekt": false + } + ] + }, + { + "frage": "Der Aufschlagspieler wirft nach dem Pfiff des 1. Schiedsrichters zur Aufschlagbewilligung den Ball hoch und lässt ihn ohne Berührung zu Boden fallen. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Punkt und Aufschlag für den Gegner.", + "korrekt": true + }, + { + "text": "Der Schiedsrichter genehmigt mit einem weiteren Pfiff den Aufschlag erneut. Jetzt muss der Aufschlagspieler direkt nach dem Pfiff aufschlagen.", + "korrekt": false + }, + { + "text": "Der Aufschlag muss nach dem Anpfiff innerhalb von acht Sekunden erfolgt sein. In dieser Zeit darf der Spieler mit dem Ball machen, was er will.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Möglichkeiten hat der Verlierer der Auslosung, wenn der Gewinner die Spielfeldseite gewählt hat?", + "antworten": [ + { + "text": "Er muss den ersten Aufschlag ausführen.", + "korrekt": false + }, + { + "text": "Er hat die Wahl, den ersten Aufschlag auszuführen oder anzunehmen.", + "korrekt": true + }, + { + "text": "Er muss den ersten Aufschlag annehmen.", + "korrekt": false + } + ] + }, + { + "frage": "Wer kontrolliert die Positionen der annehmenden Mannschaft im Moment der Ausführung des Aufschlages?", + "antworten": [ + { + "text": "Der zuständige Linienrichter.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter.", + "korrekt": true + } + ] + }, + { + "frage": "Mannschaft A spielt den Ball über die Antenne in die gegnerische Spielfeldhälfte. Dort berührt der Ball den Boden. Welche Aussage beschreibt einen regelgerechten Sachverhalt?", + "antworten": [ + { + "text": "Der Ball ist „Aus“. Mannschaft B erhält einen Punkt und das Aufschlagrecht.", + "korrekt": true + }, + { + "text": "Dies ist ein Doppelfehler, da die genaue Lage des Balles oberhalb der Antenne nicht richtig beurteilt werden kann. Der Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Der Ball ist „in“. Mannschaft A erhält einen Punkt und das Aufschlagrecht.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball wird nach dem Aufschlag durch einen gegnerischen Angriffsschlag direkt zurückgespielt. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dies ist ein Fehler, wenn sich der Ball beim Angriffsschlag in der Vorderzone und vollständig oberhalb der Netzoberkante befindet.", + "korrekt": true + }, + { + "text": "Dies ist kein Fehler.", + "korrekt": false + }, + { + "text": "Dies ist in jedem Fall ein Fehler.", + "korrekt": false + } + ] + }, + { + "frage": "Der Libero nimmt an einem Gruppenblock teil. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dies ist dann erlaubt, wenn ein anderer Spieler (nicht der Libero) den Ball berührt.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler, egal welcher Spieler des Gruppenblocks den Ball berührt.", + "korrekt": true + }, + { + "text": "Dies ist immer erlaubt.", + "korrekt": false + } + ] + }, + { + "frage": "Darf der Ball mit dem Fuß gespielt werden?", + "antworten": [ + { + "text": "Immer, außer beim Aufschlag.", + "korrekt": true + }, + { + "text": "Nur bei der ersten und zweiten Ballberührung.", + "korrekt": false + }, + { + "text": "Niemals.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A spielt in weißen Trikots, Mannschaft B in schwarzen Trikots. Welche Farbwahl der Liberotrikots wäre regelgerecht ?", + "antworten": [ + { + "text": "Mannschaft A: dunkelblau, Mannschaft B: schwarz.", + "korrekt": false + }, + { + "text": "Mannschaft A: weiß, Mannschaft B: rot.", + "korrekt": false + }, + { + "text": "Mannschaft A: schwarz, Mannschaft B: weiß.", + "korrekt": true + } + ] + }, + { + "frage": "Während des Spieles begehen zwei Gegenspieler unmittelbar nacheinander den gleichen Regelverstoß. Welcher davon wird geahndet?", + "antworten": [ + { + "text": "Der zuerst begangene Fehler.", + "korrekt": true + }, + { + "text": "Keiner.", + "korrekt": false + }, + { + "text": "Beide, weil die Fehler fast gleichzeitig begangen werden.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Aufschlag wird an die Netzoberkante geschlagen und fällt auf der Seite der aufschlagenden Mannschaft herunter. Bevor der Ball den Boden berührt, wird er unter dem Netz von einem Spieler der annehmenden Mannschaft gefangen. Welche Aussage(n) ist/sind korrekt?", + "antworten": [ + { + "text": "Dies ist ein Fehler der annehmenden Mannschaft.", + "korrekt": false + }, + { + "text": "Dies ist eine Situation für eine Spielzugwiederholung.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter muss pfeifen, sobald er sich sicher ist, dass der Ball das Netz innerhalb des Überquerungssektor nicht regelgerecht überquert.", + "korrekt": true + }, + { + "text": "Dies ist ein Fehler der annehmenden Mannschaft, der Spieler erhält eine Verwarnung.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Spielkapitän Fragen an den 2. Schiedsrichter stellen?", + "antworten": [ + { + "text": "Ja, wenn sich die Fragen auf den Aufgabenbereich des 2. Schiedsrichters beziehen.", + "korrekt": true + }, + { + "text": "Nein .", + "korrekt": false + }, + { + "text": "Ja, alle Fragen.", + "korrekt": false + } + ] + }, + { + "frage": "Was muss der Schreiber tun, wenn eine Mannschaft als unvollständig erklärt wird?", + "antworten": [ + { + "text": "Der Schreiber trägt das Endresultat ein und lässt die Mannschaftskapitäne und Schiedsrichter bestätigen.", + "korrekt": false + }, + { + "text": "Der Schreiber muss den Spielberichtsbogen vervollständigen. Der gegnerischen Mannschaft werden die zum Satzgewinn fehlenden Punkte oder die zum Spielgewinn fehlenden Punkte und Sätze zuerkannt. Die unvollständige Mannschaft behält ihre Punkte und Sätze.", + "korrekt": true + }, + { + "text": "Er übergibt den Spielberichtsbogen den Schiedsrichtern. Sie erledigen den Rest.", + "korrekt": false + } + ] + }, + { + "frage": "Wird Fehlverhalten einem Spieler über den einzelnen Satz hinaus für das gesamte Spiel angerechnet?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Nach Ermessen des 1. Schiedsrichters.", + "korrekt": false + }, + { + "text": "Ja", + "korrekt": true + } + ] + }, + { + "frage": "Dürfen Blockspieler nach der Angriffsaktion des Gegners mit über das Netz reichenden Händen einen Block bilden?", + "antworten": [ + { + "text": "Nur nach einem harten Angriffsschlag.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja", + "korrekt": true + } + ] + }, + { + "frage": "Zwei Gegenspieler berühren gleichzeitig den Ball oberhalb der Netzoberkante und versuchen ihn jeweils zum Gegner zu drücken. Der Ball landet jedoch neben dem Feld von Mannschaft B. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dies ist ein Punkt für Mannschaft A.", + "korrekt": false + }, + { + "text": "Dies ist ein Doppelfehler. Der Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Dies ist ein Punkt für Mannschaft B.", + "korrekt": true + } + ] + }, + { + "frage": "Darf der Trainer seinen Spielern Anweisungen zurufen?", + "antworten": [ + { + "text": "Nur während der Auszeit.", + "korrekt": false + }, + { + "text": "Nur, wenn der Ball aus dem Spiel ist.", + "korrekt": false + }, + { + "text": "Ja, sogar wenn der Ball im Spiel ist.", + "korrekt": true + } + ] + }, + { + "frage": "Dürfen Hinterspieler blocken?", + "antworten": [ + { + "text": "Ja, beim Gruppenblock, wenn der andere Blockspieler den Ball berührt.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Nur, wenn der Ball auf der Seite der Blockspieler bleibt.", + "korrekt": false + } + ] + }, + { + "frage": "Darf der 2. Schiedsrichter eine Berührung des Balles an der Antenne pfeifen?", + "antworten": [ + { + "text": "Ja, aber nur auf seiner eigenen Seite.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, aber nur wenn der 1. Schiedsrichter die Berührung nicht sehen konnte.", + "korrekt": false + } + ] + }, + { + "frage": "Wer ausser dem Trainer darf im Falle eine Verletzung oder vor einem Satz einen Wechsel beantragen?", + "antworten": [ + { + "text": "Der Co-Trainer.", + "korrekt": false + }, + { + "text": "Der Spielkapitän, wenn der Trainer nicht anwesend ist.", + "korrekt": true + }, + { + "text": "Der älteste Spieler.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A möchte nach einem Wechsel der Mannschaft B ebenfalls einen Wechsel durchführen, ohne dass das Spiel zwischendurch fortgesetzt wurde. Ist das erlaubt?", + "antworten": [ + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Nur im Falle einer Verletzung.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Ballannahme (erste Berührung) von Mannschaft A fliegt oberhalb der Antenne in Richtung Freizone von Mannschaft B. Wer pfeift?", + "antworten": [ + { + "text": "Es besteht kein Grund für einen Pfiff, da noch kein Fehler vorliegt.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Trainerassistent eine Auszeit beantragen?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Dies kann er nur auf Antrag machen, wenn der Trainer aus irgendeinem Grund, eingeschlossen Sanktionen, seine Mannschaft verlassen muss.", + "korrekt": true + }, + { + "text": "Ja, in jedem Fall.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler verletzt sich und könnte erst in ein paar Minuten weiterspielen. Wechselspieler sind vorhanden. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dem Spieler ist eine Wiederherstellungszeit von drei Minuten zu gewähren.", + "korrekt": false + }, + { + "text": "Der Spieler ist unverzüglich normal auszuwechseln.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter gewährt eine zusätzliche Auszeit.", + "korrekt": false + } + ] + }, + { + "frage": "Was gehört alles zur Spielfläche?", + "antworten": [ + { + "text": "Das Spielfeld und die Freizonen.", + "korrekt": true + }, + { + "text": "Das Spielfeld, die Freizone und die Mannschaftsbänke.", + "korrekt": false + }, + { + "text": "Das Spielfeld.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage beschreibt eine regelgerechte Konsequenz, wenn ein Rotationsfehler in der Aufstellung von Mannschaft A festgestellt wird und der Zeitpunkt seit dem Mannschaft A mit fehlerhafter Rotation gespielt hat festgestellt werden kann?", + "antworten": [ + { + "text": "Mannschaft B gewinnt den Spielzug, erhält einen Punkt und das Aufschlagrecht. Die Aufstellung von Mannschaft A wird berichtigt. Alle Punkte von Mannschaft A, die in der falschen Aufstellung erzielt wurden, werden annulliert.", + "korrekt": true + }, + { + "text": "Mannschaft A behält den Aufschlag, die von ihr in der falschen Aufstellung erzielten Punkte werden annulliert.", + "korrekt": false + }, + { + "text": "Mannschaft A erhält eine Verwarnung, die von ihr erzielten Punkte werden annulliert.", + "korrekt": false + } + ] + }, + { + "frage": "Was versteht man unter einem Doppelfehler?", + "antworten": [ + { + "text": "Zwei Gegenspieler begehen gleichzeitig einen Fehler.", + "korrekt": true + }, + { + "text": "Zwei Spieler derselben Mannschaft begehen hintereinander einen Fehler.", + "korrekt": false + }, + { + "text": "Zwei Spieler derselben Mannschaft begehen zur gleichen Zeit einen Fehler.", + "korrekt": false + } + ] + }, + { + "frage": "Bei einem Abwehrversuch berührt der Ball gleichzeitig den Boden und die Finger des Abwehrspielers. Der 2. Schiedsrichter pfeift die Bodenberührung des Balles. Handelt er regelgerecht?", + "antworten": [ + { + "text": "Nein, Bodenberührungen darf nur der 1. Schiedsrichter pfeifen.", + "korrekt": false + }, + { + "text": "Ja, aber nur mit Erlaubnis des 1. Schiedsrichters.", + "korrekt": false + }, + { + "text": "Ja, er muss diese Bodenberührung des Balles pfeifen, falls der 1. Schiedsrichter sie nicht sehen kann.", + "korrekt": true + } + ] + }, + { + "frage": "Darf ein Spieler der Startaufstellung, der zunächst ausgewechselt und danach auf seinen Platz zurückgewechselt wurde, während desselben Satzes nochmals ausgewechselt werden?", + "antworten": [ + { + "text": "Ja, immer.", + "korrekt": false + }, + { + "text": "Ja, wenn er sich verletzt, hinausgestellt oder disqualifiziert wird.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Darf der Ball nach einer Blockaktion das Netz außerhalb der Antenne berühren?", + "antworten": [ + { + "text": "Ja, denn eine Netzberührung durch den Ball ist immer erlaubt.", + "korrekt": false + }, + { + "text": "Es ist nur dann ein Fehler, wenn der Ball außer dem Netz gleichzeitig auch die Antenne berührt.", + "korrekt": false + }, + { + "text": "Nein, denn eine Netzberührung durch den Ball außerhalb der Antenne ist ein Fehler.", + "korrekt": true + } + ] + }, + { + "frage": "Im Augenblick des Aufschlages steht ein Zuspieler mit einem Teil seines Fußes außerhalb des Feldes. Der 2. Schiedsrichter pfeift einen Positionsfehler. Ist die Entscheidung des 2. Schiedsrichters regelgerecht?", + "antworten": [ + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Spieler, der regelgerecht geblockt hat, mit der nächsten Ballberührung den Ball über das Netz spielen?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja", + "korrekt": true + }, + { + "text": "Ja, aber der Spieler darf nicht dabei hochspringen.", + "korrekt": false + } + ] + }, + { + "frage": "Wann meldet sich ein Schreiber bzgl. eines Spielers, der den Aufschlag ausführen möchte, aber gemäß Rotationsfolge nicht aufschlagberechtigt ist?", + "antworten": [ + { + "text": "Erst wenn der Spieler den Aufschlag ausgeführt hat.", + "korrekt": true + }, + { + "text": "Sobald er sieht, dass ein falscher Spieler zum Aufschlag geht.", + "korrekt": false + }, + { + "text": "Es ist ihm egal, da es nicht in sein Zuständigkeiten fällt.", + "korrekt": false + } + ] + }, + { + "frage": "Nach der Ausführung des Aufschlages bei Mannschaft A meldet der Schreiber, dass der falsche Spieler am Aufschlag ist. Wie ist zu verfahren?", + "antworten": [ + { + "text": "Alle während der fehlerhaften Aufstellung von beiden Mannschaften erzielten Punkte sind zu annullieren.", + "korrekt": false + }, + { + "text": "Der Spielzug ist sofort zu unterbrechen, und die richtige Aufstellung ist einzunehmen. Mannschaft B erhält einen Punkt, das Aufschlagrecht und rotiert eine Position weiter.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Libero darf Mannschafskapitän und/oder Spielkapitän sein.", + "korrekt": true + }, + { + "text": "Der Libero darf Spielkapitän aber nicht Mannschaftskapitän sein.", + "korrekt": false + }, + { + "text": "Der Libero darf Mannschaftskapitän aber nicht Spielkapitän sein.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler wirft den Ball zum Aufschlagversuch hoch und lässt ihn ohne Schlag wieder fallen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Verwarnung wegen Spielverzögerung.", + "korrekt": false + }, + { + "text": "Der Spieler verliert das Aufschlagsrecht. Punkt für den Gegner.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter wartet kurz und pfeift danach erneut an.", + "korrekt": false + } + ] + }, + { + "frage": "Spieler #5 Mannschaft A führt den Aufschlag vor dem Pfiff des 1. Schiedsrichters aus. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Falls der Aufschlag fehlerhaft ausgeführt wird, wechselt das Aufschlagrecht, ansonsten wird der Spielzug wiederholt..", + "korrekt": false + }, + { + "text": "Mannschaft B erhält das Aufschlagrecht.", + "korrekt": false + }, + { + "text": "Der Aufschlag ist ungültig und muss wiederholt werden.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Aufschlag wird an die Netzoberkante geschlagen und fällt auf der Seite der aufschlagenden Mannschaft herunter. Bevor der Ball den Boden berührt, wird er unter dem Netz von einem Spieler der annehmenden Mannschaft gefangen. Welche Aussage(n) ist/sind korrekt?", + "antworten": [ + { + "text": "Dies ist ein Fehler der annehmenden Mannschaft, der Spieler erhält eine Verwarnung.", + "korrekt": false + }, + { + "text": "Dies ist eine Situation für eine Spielzugwiederholung.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler der aufschlagenden Mannschaft.", + "korrekt": true + }, + { + "text": "Dies ist ein Fehler der annehmenden Mannschaft.", + "korrekt": false + } + ] + }, + { + "frage": "Ab wann sind die Spieler der annehmenden Mannschaft nicht mehr an ihre Positionen gebunden?", + "antworten": [ + { + "text": "Nachdem der Aufschlagspieler den Ball geschlagen hat.", + "korrekt": true + }, + { + "text": "Nachdem der Ball, nach der Ausführung des Aufschlages, die vertikale Netzebene durchquert hat.", + "korrekt": false + }, + { + "text": "Nachdem der 1. Schiedsrichter zur Ausführung des Aufschlages angepfiffen hat.", + "korrekt": false + } + ] + }, + { + "frage": "Was muss man bei der Beurteilung der Höhe eines Volleyballnetzes beachten?", + "antworten": [ + { + "text": "Für Frauen- und Jugendmannschaften sind die Netzhöhen gleich.", + "korrekt": false + }, + { + "text": "Die vorgeschriebene Höhe muss in der Mitte des Netzes gewährleistet sein.", + "korrekt": true + }, + { + "text": "Das Netz muss an jeder Stelle die gleiche Höhe aufweisen.", + "korrekt": false + } + ] + }, + { + "frage": "Muss der Schreiber auf Ersuchen des Spielkapitäns diesem bekannt geben, wie viele Auszeiten bzw. Wechsel von der eigenen Mannschaft bereits beansprucht worden sind?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Ja, allerdings nur nach Genehmigung des 1. Schiedsrichters.", + "korrekt": false + } + ] + }, + { + "frage": "Das Schiedsgericht stellt eine falsche Rotation bei Mannschaft A fest. Es kann nicht mehr nachvollzogen werden, wann dieser Fehler entstanden ist. Wie hat der 1. Schiedsrichter zu entscheiden?", + "antworten": [ + { + "text": "Dem Gegner werden ein Punkt und das Aufschlagsrecht zuerkannt.", + "korrekt": true + }, + { + "text": "Der letzte Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Der Satz wird neu angefangen.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einer Abwehraktion rutscht der Spieler mit seinem Oberkörper über die Mittellinie. Das Spiel wird dadurch nicht beeinflusst. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter pfeift, zeigt auf die Mittellinie (Handzeichen #22), der 1. Schiedsrichter zeigt zur Seite des nächsten Aufschlages (Handzeichen #2), der 2. Schiedsrichter zeigt zur Seite des nächsten Aufschlages (Handzeichen #2).", + "korrekt": false + }, + { + "text": "Der Spielzug läuft weiter.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter pfeift und entscheidet auf Spielzugwiederholung (Handzeichen #23).", + "korrekt": false + } + ] + }, + { + "frage": "Während des Spielzuges befindet sich der 2. Schiedsrichter in der Nähe des Angreifers. Ist das regelgerecht?", + "antworten": [ + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Trainer während des Spieles den 2. Schiedsrichter zu dessen Entscheidungen befragen?", + "antworten": [ + { + "text": "Nur wenn kein anderes Mannschaftsmitglied die entsprechenden Regeln kennt.", + "korrekt": false + }, + { + "text": "Nein, der Trainer darf lediglich fragen, wie viele Auszeiten oder Wechsel er noch zur Verfügung hat, wenn es nirgendwo anders ersichtlich ist.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Wie viele Personen dürfen während des Spieles (ausgenommen die Auszeit) maximal auf einer Mannschaftsbank Platz nehmen?", + "antworten": [ + { + "text": "11.", + "korrekt": true + }, + { + "text": "13.", + "korrekt": false + }, + { + "text": "9.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A spielt den Ball oberhalb der Antenne über das Netz. Der Ball fällt im gegnerischen Feld zu Boden. Wer gewinnt den Spielzug?", + "antworten": [ + { + "text": "Mannschaft A, denn der Ball ist bei B im Feld auf den Boden gefallen.", + "korrekt": false + }, + { + "text": "Keine Mannschaft, denn es liegt ein Doppelfehler vor.", + "korrekt": false + }, + { + "text": "Mannschaft B gewinnt den Spielzug, weil der Ball von Mannschaft A nicht vollständig innerhalb des Überquerungssektors über das Netz gespielt wurde.", + "korrekt": true + } + ] + }, + { + "frage": "In welcher/welchen nachfolgenden Spielsituation(en) liegt ein Fehler vor?", + "antworten": [ + { + "text": "Der Spieler berührt den Ball bei der Annahme mit der Hand und dem Arm (also zweimal) innerhalb einer Spielaktion.", + "korrekt": false + }, + { + "text": "Der Spieler blockt den Aufschlag oberhalb der Netzoberkante.", + "korrekt": true + }, + { + "text": "Zwei Spieler berühren den Ball gleichzeitig.", + "korrekt": false + } + ] + }, + { + "frage": "Worauf muss der 1. Schiedsrichter achten, bevor er mit einem Pfiff den Aufschlag genehmigt?", + "antworten": [ + { + "text": "Er achtet nur auf den Aufschlagspieler. Sobald dieser spielbereit mit einem Spielball vor der Grundlinie steht, darf er den Aufschlag genehmigen. Dies trifft auch dann zu, wenn sich bei der anderen Mannschaft noch jemand den Schuh bindet.", + "korrekt": false + }, + { + "text": "Er achtet auf die beiden Trainer. Diese signalisieren, wenn ihre Mannschaften spielbereit sind.", + "korrekt": false + }, + { + "text": "Er achtet darauf, dass beide Mannschaften spielbereit sind und der Aufschlagspieler in Ballbesitz ist.", + "korrekt": true + } + ] + }, + { + "frage": "Der 1. Schiedsrichter hat den Aufschlag genehmigt. Nun stellt die Mannschaft fest, dass der falsche Spieler in der Aufschlagzone steht. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter wartet bis der richtige Spieler spielbereit ist und genehmigt den Aufschlag erneut.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter entscheidet sofort auf Fehler. Das Aufschlagrecht wechselt zur anderen Mannschaft.", + "korrekt": false + }, + { + "text": "Es ist kein Fehler, wenn innerhalb von acht Sekunden der richtige Spieler aufschlägt und kein Positionsfehler begangen wird.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage beschreibt einen regelgerechten Sachverhalt in Bezug auf eine Spielaktion?", + "antworten": [ + { + "text": "Eine Spielaktion kann auch eine Handlung von Spielern ohne tatsächliche Ballberührung sein.", + "korrekt": true + }, + { + "text": "Bei einem Blockversuch ist eine nicht spielbeeinflussende Netzberührung erlaubt, weil der Ball nicht berührt wurde.", + "korrekt": false + }, + { + "text": "Die Spielaktion „Block“ ist nach der Ballberührung abgeschlossen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage trifft auf den Libero zu?", + "antworten": [ + { + "text": "Der Libero darf für einen verletzten Spieler ausnahmsweise gewechselt werden.", + "korrekt": false + }, + { + "text": "Der Libero darf sich an einem Blockversuch beteiligen.", + "korrekt": false + }, + { + "text": "Der Libero darf Mannschaftskapitän oder Spielkapitän sein.", + "korrekt": true + } + ] + }, + { + "frage": "Antrag auf einen zulässigen Wechsel. Der Spieler muss sich erst noch den Trainingsanzug ausziehen. Wie muss das Schiedsgericht entscheiden?", + "antworten": [ + { + "text": "Der Gegner erhält einen Punkt und das Aufschlagsrecht.", + "korrekt": false + }, + { + "text": "Der Mannschaft wird eine Auszeit auferlegt.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter weist den Wechsel zurück und der 1. Schiedsrichter sanktioniert die Mannschaft wegen Verzögerung.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler verletzt sich und kann nicht normal ausgewechselt werden. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Die betreffende Mannschaft hat den Satz verloren.", + "korrekt": false + }, + { + "text": "Der verletzte Spieler darf ausnahmsweise ausgewechselt werden.", + "korrekt": true + }, + { + "text": "Die betreffende Mannschaft darf mit fünf Spielern den Satz zu Ende spielen.", + "korrekt": false + } + ] + }, + { + "frage": "An welcher Stelle des Netzes wird die Netzhöhe gemessen?", + "antworten": [ + { + "text": "Nur in der Mitte des Spielfeldes.", + "korrekt": false + }, + { + "text": "Ca. 0,5 m von den Seitenlinien entfernt.", + "korrekt": false + }, + { + "text": "In der Mitte des Spielfeldes und über den Seitenlinien.", + "korrekt": true + } + ] + }, + { + "frage": "Ist es ein Fehler, wenn ein Spieler die Mittellinie übertritt, nachdem der Spielzug durch den Schiedsrichter beendet wurde?", + "antworten": [ + { + "text": "Nur, wenn er einen gegnerischen Spieler behindert.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + } + ] + }, + { + "frage": "Der Ball wird durch einen Angriffsschlag gegen die Hände eines am Netz befindlichen Abwehrspielers (Hinterspieler) geschlagen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Sobald der Spieler springt, gilt dies als Block und muss gepfiffen werden.", + "korrekt": false + }, + { + "text": "Trifft der Ball den Spieler unterhalb der Netzoberkante in Netznähe (keines seiner Körperteile befindet sich oberhalb der Netzoberkante), wird weitergespielt, jedoch zählt die Berührung als erste Berührung der abwehrenden Mannschaft.", + "korrekt": true + }, + { + "text": "Es muss sofort gepfiffen werden, da ein Hinterspieler keinen Blockversuch ausführen darf.", + "korrekt": false + } + ] + }, + { + "frage": "Im dritten Satz eines Spieles reißt das Spannseil des Netzes. Darf das Spiel nach einer kurzen Reparatur (15 min) fortgesetzt werden?", + "antworten": [ + { + "text": "Nein, das Spiel muss neu angesetzt oder auf einem anderen Feld fortgesetzt werden.", + "korrekt": false + }, + { + "text": "Ja, aber der Satz wird annulliert und muss neu begonnen werden.", + "korrekt": false + }, + { + "text": "Ja, nach Reparatur wird das Spiel mit gleicher Aufstellung und gleichem Punktestand auf dem gleichen Feld fortgeführt.", + "korrekt": true + } + ] + }, + { + "frage": "Nach einer gleichzeitigen Berührung des Balles oberhalb der Netzoberkante fliegt der Ball in die Freizone der Mannschaft B. Wer gewinnt den Spielzug?", + "antworten": [ + { + "text": "Mannschaft A.", + "korrekt": false + }, + { + "text": "Mannschaft B.", + "korrekt": true + }, + { + "text": "Mannschaft A, falls der Ball vorher eine Antenne berührt.", + "korrekt": false + } + ] + }, + { + "frage": "Der Trainer von Mannschaft A wendet sich an den 2. Schiedsrichter und beantragt eine Auszeit. Die Mannschaft hat in diesem Satz bereits zwei Auszeiten beantragt und in diesem Spiel bisher keinen unberechtigten Antrag gestellt. Welche Aussage(n) beschreibt/beschreiben eine regelgerechte Vorgehensweise?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter weist diesen Antrag, ohne zu pfeifen, zurück. Das Spiel wird ohne weitere Konsequenzen fortgesetzt, da keine Verzögerung entstanden ist.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter weist diesen Antrag, ohne zu pfeifen, zurück. Im Spielberichtsbogen wird ein unberechtigter Antrag für Mannschaft A vermerkt.", + "korrekt": true + }, + { + "text": "Der Antrag wird zurückgewiesen. Die Aktion verzögert das Spiel nicht, trotzdem wird gegen Mannschaft A eine Sanktion wegen Verzögerung ausgesprochen.", + "korrekt": false + } + ] + }, + { + "frage": "Beim Hochwerfen zum Aufschlag berührt der Ball einen fremden Gegenstand (z. B. den Basketballkorb). Wie hat der 1. Schiedsrichter zu entscheiden?", + "antworten": [ + { + "text": "Aufschlag ungültig: Wiederholung des Aufschlages innerhalb der bereits angepfiffenen acht Sekunden.", + "korrekt": false + }, + { + "text": "Aufschlag fehlerhaft: Der Gegner erhält einen Punkt und das Aufschlagrecht.", + "korrekt": true + }, + { + "text": "Aufschlag ungültig: Wiederholung des Aufschlages nach erneutem Pfiff durch den 1. Schiedsrichter.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Spieler nach einer Block- oder Angriffsaktion auf die Mittellinie treten?", + "antworten": [ + { + "text": "Ja, solange ein Teil des Fußes die Mittellinie berührt oder sich über ihr befindet, darf er sogar in das gegnerische Spielfeld eindringen, solange der Spieler dabei das gegnerische Spiel nicht beeinflusst.", + "korrekt": true + }, + { + "text": "Nein. Die Mittellinie darf nie betreten werden.", + "korrekt": false + }, + { + "text": "Ja. Die Mittellinie darf komplett übertreten werden, solange der Spieler keinen Gegenspieler behindert bzw. berührt.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Rechte hat der Spielkapitän?", + "antworten": [ + { + "text": "Er darf Wechsel und Auszeiten beantragen, auch wenn der Trainer auf der Mannschaftsbank sitzt.", + "korrekt": false + }, + { + "text": "Er darf beim 1. Schiedsrichter beantragen, die Linienrichter austauschen zu lassen.", + "korrekt": false + }, + { + "text": "Er darf erfragen, welcher Spieler bei der gegnerischen Mannschaft als letztes den Aufschlag ausgeführt hat.", + "korrekt": false + }, + { + "text": "Er darf die Überprüfung des Spielballes beantragen.", + "korrekt": true + } + ] + }, + { + "frage": "Aus wie vielen Spielern besteht eine Volleyball-Mannschaft maximal?", + "antworten": [ + { + "text": "14.", + "korrekt": true + }, + { + "text": "10.", + "korrekt": false + }, + { + "text": "12.", + "korrekt": false + } + ] + }, + { + "frage": "Der 2. Schiedsrichter bemerkt, dass vor Satzbeginn, bei der Kontrolle der Aufstellung, ein Spieler #4 auf dem Feld steht, dessen Nummer nicht auf dem Auftsellungsblatt eingetragen ist. Der Spieler #8 auf dem Aufstellungsblatt befindet sich auf der Aufwärmfläche. Was ist regelgerecht?", + "antworten": [ + { + "text": "Der Spieler #8 muss den „falschen“ Spieler #4 ersetzen.", + "korrekt": true + }, + { + "text": "Der Spieler #4 muss das Feld für Spieler #8 verlassen. Erst nach dem ersten Spielzug darf er durch einen normalen Wechsel für Spieler #8 eingewechselt werden.", + "korrekt": false + }, + { + "text": "Der Trainer darf die Aufstellung auf dem Aufstellungsblatt korrigieren.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler einer Mannschaft verletzt sich. Die Mannschaft besteht aus 12 Spielern. Der verletzte Spieler wurde allerdings zuvor schon aus- und wieder eingewechselt. Welche Aussage(n) beschreibt/beschreiben einen regelgerechten Sachverhalt?", + "antworten": [ + { + "text": "Dem verletzten Spieler werden drei Minuten Wiederherstellungszeit gewährt.", + "korrekt": false + }, + { + "text": "Der Spieler darf ausnahmsweise gewechselt werden.", + "korrekt": true + }, + { + "text": "Alle verfügbaren Auszeiten müssen zunächst ausgenutzt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Mit welchem Körperteil darf der Ball berührt werden?", + "antworten": [ + { + "text": "Nur mit den Händen, den Armen und dem Kopf.", + "korrekt": false + }, + { + "text": "Nur mit jedem Körperteil oberhalb der Gürtellinie.", + "korrekt": false + }, + { + "text": "Mit jedem Körperteil.", + "korrekt": true + } + ] + }, + { + "frage": "Auf welcher Seite muss der 2. Schiedsrichter gemäß Regelwerk im Moment des Aufschlages stehen?", + "antworten": [ + { + "text": "Auf der Seite der annehmenden Mannschaft.", + "korrekt": true + }, + { + "text": "Auf der Seite der Mannschaft, die den letzten Spielzug gewonnen hat.", + "korrekt": false + }, + { + "text": "Auf der Seite der aufschlagenden Mannschaft.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Reihenfolge von Anträgen der gleichen Mannschaft ist regelgerecht?", + "antworten": [ + { + "text": "Auszeit, Wechsel, Auszeit.", + "korrekt": true + }, + { + "text": "Wechsel, Auszeit, Wechsel.", + "korrekt": false + }, + { + "text": "Auszeit, Wechsel, Wechsel.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Spieler während seiner Spielaktion das Netz berühren?", + "antworten": [ + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Nur, wenn der Gegner dabei nicht behindert wird.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A als aufschlagende Mannschaft begeht einen Rotationsfehler. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Mannschaft A verliert das Aufschlagrecht. Kann ermittelt werden, zu welchem Zeitpunkt der Rotationsfehler erstmalig aufgetreten ist, dann werden die seit diesem Zeitpunkt erzielten Punkte von Mannschaft A annulliert.", + "korrekt": true + }, + { + "text": "Mannschaft A wird verwarnt.", + "korrekt": false + }, + { + "text": "Mannschaft A behält das Aufschlagrecht, aber die zuvor erzielten Punkte werden annulliert.", + "korrekt": false + } + ] + }, + { + "frage": "Wie viele Anträge auf normale Spielunterbrechungen darf eine Mannschaft maximal zwischen zwei Spielzügen stellen?", + "antworten": [ + { + "text": "Einen.", + "korrekt": false + }, + { + "text": "Drei.", + "korrekt": true + }, + { + "text": "Zwei.", + "korrekt": false + } + ] + }, + { + "frage": "Angriffsschlag eines Hinterspielers oberhalb der Netzoberkante nach Absprung in der Vorderzone. Ist das ein Fehler des Hinterspielers, auch wenn der Ball anschließend den übergreifenden Block des Gegners berührt?", + "antworten": [ + { + "text": "Ja, aber nur, wenn der Ball danach in die Spielfeldhälfte der blockenden Mannschaft gelangt.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + } + ] + }, + { + "frage": "Wann gilt ein Aufschlag als ausgeführt?", + "antworten": [ + { + "text": "Nachdem der Aufschlagspieler den Ball geschlagen hat.", + "korrekt": true + }, + { + "text": "Nachdem der Aufschlagspieler den Ball angeworfen hat.", + "korrekt": false + }, + { + "text": "Wenn der Ball die senkrechte Ebene des Netzes durchquert hat.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Situation ist regelgerecht?", + "antworten": [ + { + "text": "Ein Ball fliegt gegen das Spannseil zwischen Antenne und Pfosten. Anschließend wird der Ball von einem Spieler derselben Mannschaft weitergespielt.", + "korrekt": false + }, + { + "text": "Ein Spieler berührt während seiner Blockaktion die Antenne jedoch nicht das Netz.", + "korrekt": false + }, + { + "text": "Ein Spieler dringt mit seinem Fuß vollständig in den gegnerischen Raum unterhalb des Netzes ein. Dabei beeinflusst er weder das Spiel noch berührt er das Spielfeld.", + "korrekt": true + } + ] + }, + { + "frage": "Darf der Trainer während des Spieles Fragen an den 1. Schiedsrichter stellen?", + "antworten": [ + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Nur, wenn ihm die Schiedsrichterentscheidung nicht klar ist.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + } + ] + }, + { + "frage": "Bei einem Bezirksligaspiel der Frauen stellen die Schiedsrichter fest: Netzhöhe auf einer Seite 2,27 m, auf der anderen Seite 2,23 m, in der Mitte 2,24 m. Gibt es Handlungsbedarf?", + "antworten": [ + { + "text": "Ja, der Ausrichter hat die Netzhöhe zu korrigieren. In der Mitte 2,24 m, über den Seitenlinien bis zu +0,02 m Abweichung (auf beiden Seiten gleich).", + "korrekt": true + }, + { + "text": "Nein, in der Mitte ist das Netz die geforderten 2,24 m hoch.", + "korrekt": false + }, + { + "text": "Ja, die Schiedsrichter bauen so um, das das Netz auf beiden Seiten 2,27 m hoch ist.", + "korrekt": false + } + ] + }, + { + "frage": "Wer pfeift Positionsfehler der annehmenden Mannschaft?", + "antworten": [ + { + "text": "Der 1. und der 2. Schiedsrichter.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Mannschaft darf über die Wahl des ersten Aufschlages entscheiden?", + "antworten": [ + { + "text": "Die Gastmannschaft.", + "korrekt": false + }, + { + "text": "Die Heimmannschaft.", + "korrekt": false + }, + { + "text": "Die Mannschaft, die die Auslosung gewinnt.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Libero spielt den zweiten Ball im oberen Fingerzuspiel aus der eigenen Vorderzone. Danach erfolgt ein ausgeführter Angriffsschlag, bei dem der Ball vollständig oberhalb der Netzoberkante in Richtung des Gegners gespielt wird. Welches Handzeichen ist vom 1. Schiedsrichter zu zeigen?", + "antworten": [ + { + "text": "Handzeichen #17 (Doppelberührung).", + "korrekt": false + }, + { + "text": "Handzeichen #22 (Eindringen ins gegnerische Spielfeld, Ball durchquert den unteren Sektor vollständigt, etc.).", + "korrekt": false + }, + { + "text": "Handzeichen #21 (Fehler beim Angriffsschlag), danach auf den Libero deuten.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Bei der ersten Ballberührung einer Mannschaft darf ein Spieler innerhalb einer Aktion den Ball mehrfach berühren (Doppelberührung).", + "korrekt": true + }, + { + "text": "Bei der zweiten Ballberührung einer Mannschaft darf ein Spieler innerhalb einer Aktion den Ball mehrfach berühren (Doppelberührung).", + "korrekt": false + }, + { + "text": "Bei der dritten Ballberührung einer Mannschaft darf ein Spieler innerhalb einer Aktion den Ball mehrfach berühren (Doppelberührung).", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Spielkapitän Fragen über die Auslegung von Regeln an den 2. Schiedsrichter richten, wenn der Ball aus dem Spiel ist?", + "antworten": [ + { + "text": "Ja, wenn sich das Anliegen auf den Aufgabenbereich des 2. Schiedsrichters bezieht.", + "korrekt": true + }, + { + "text": "Nein, auf keinen Fall.", + "korrekt": false + }, + { + "text": "Ja, alle Fragen.", + "korrekt": false + } + ] + }, + { + "frage": "Dürfen bei der annehmenden Mannschaft ein Vorderspieler (z. B. Position III) und der dazugehörige Hinterspieler (Position VI) auf derselben Höhe zum Netz stehen (die Füße beider Spieler haben den gleichen Abstand zur Mittellinie)?", + "antworten": [ + { + "text": "Nein, denn der Vorderspieler muss sich mit einem Teil seines Fußes näher an der Mittelinie befinden als die Füße des dazugehörigen Hinterspielers.", + "korrekt": false + }, + { + "text": "Nein, denn der Hinterspieler muss sich mit beiden Füßen weiter weg von der Mittellinie befinden als die Füße des dazugehörigen Vorderspielers.", + "korrekt": false + }, + { + "text": "Ja, denn der Hinterspieler darf sich mit beiden Füßen auf gleicher Höhe mit den Füßen des jeweiligen Vorderspielers befinden.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler von Mannschaft A beginnt eine Diskussion mit dem Schiedsrichter und lässt sich nicht abweisen. Mannschaft A hat bis dato noch keine Sanktion erhalten. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dies hat keine Konsequenzen für den Spieler, wenn der Spieler sich entschuldigt.", + "korrekt": false + }, + { + "text": "Der Gegner gewinnt den Spielzug, erhält einen Punkt und das Aufschlagrecht.", + "korrekt": false + }, + { + "text": "Der Spieler erhält eine Verwarnung (gelbe Karte). Dies hat keine weiteren Auswirkungen auf den Spielstand.", + "korrekt": true + } + ] + }, + { + "frage": "Eine Mannschaft besteht aus sieben Spielern, von diesen wird einer als Libero eingesetzt. Ein Spieler auf der Position IV verletzt sich und kann nicht mehr weiterspielen. Welche Aussage(n) ist/sind korrekt?", + "antworten": [ + { + "text": "Die Mannschaft wird für unvollständig erklärt, alle gewonnen Punkte und Sätze bleiben erhalten, dem Gegner werden alle Punkte und Sätze zum Spielgewinn zugesprochen.", + "korrekt": true + }, + { + "text": "Die Mannschaft darf mit fünf Spielern weiterspielen, der Libero darf auf den Hinterzonenpositionen eingetauscht werden.", + "korrekt": false + }, + { + "text": "Der Libero gibt seine Funktion als Libero auf und wechselt danach mit dem verletzten Spieler.", + "korrekt": false + } + ] + }, + { + "frage": "Was wird beim Volleyball als Spielfläche bezeichnet?", + "antworten": [ + { + "text": "Spielfeld.", + "korrekt": false + }, + { + "text": "Spielfeld und Freizone.", + "korrekt": true + }, + { + "text": "Vorderzone, Hinterzone und Aufschlagzone.", + "korrekt": false + } + ] + }, + { + "frage": "Nach der ersten Ballberührung einer Mannschaft fliegt der Spielball außerhalb der Antenne vollständig über das Netz in Richtung der Tribüne. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter muss den Spielzug in dem Augenblick, in dem der Spielball die Netzebene vollständig durchquert hat, unterbrechen.", + "korrekt": false + }, + { + "text": "Der Spielball darf innerhalb der gegnerischen Freizone gespielt werden. Er muss beim Zurückspielen die Netzebene wieder vollständig oder teilweise im Bereich des Außensektors auf derselben Seite der Antenne durchqueren.", + "korrekt": true + }, + { + "text": "Der Spielball darf aus der gegnerischen Freizone direkt zur gegnerischen Mannschaft gespielt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Wer hat das Recht, Auszeiten und Wechsel zu beantragen?", + "antworten": [ + { + "text": "Der Spielkapitän, auch wenn der Trainer anwesend ist.", + "korrekt": false + }, + { + "text": "Nur der Trainer.", + "korrekt": true + }, + { + "text": "Trainer und Spielkapitän.", + "korrekt": false + } + ] + }, + { + "frage": "In welchem Moment gilt ein Angriff als ausgeführt?", + "antworten": [ + { + "text": "Im Moment irgendeiner Aktion mit Ball in Richtung des gegnerisches Feldes.", + "korrekt": false + }, + { + "text": "Im Moment des Schlagens des Balles in Richtung des Gegners.", + "korrekt": false + }, + { + "text": "Im Moment, wenn der Ball die senkrechte Ebene des Netzes vollständig durchquert hat oder von einem gegnerischen Block berührt wird.", + "korrekt": true + } + ] + }, + { + "frage": "Der aufschlagende Spieler (Mannschaft A) betritt im Moment des Schlagens des Balles die Grundlinie. Gleichzeitig wird bei der annehmenden Mannschaft ein Positionsfehler festgestellt. Welche Aussage(n) ist/sind regelgerecht.", + "antworten": [ + { + "text": "Punkt für Mannschaft A, weil der Positionsfehler als zuerst begangener Fehler gewertet wird.", + "korrekt": false + }, + { + "text": "Fehler Mannschaft A, weil das Betreten der Grundlinie beim Aufschlag als der zuerst begangene Fehler gewertet wird.", + "korrekt": true + }, + { + "text": "Spielzugwiederholung weil beide Mannschaften gleichzeitig einen Fehler begangen haben.", + "korrekt": false + } + ] + }, + { + "frage": "Der 1. Schiedsrichter hat den Aufschlag genehmigt. Nun stellt Mannschaft A fest, dass der falsche Spieler in der Aufschlagzone steht. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Spieler, welcher laut Rotationsfolge den Aufschlag ausführen muss, nimmt den Ball und schlägt innerhalb der zulässigen Zeit nach einem weiteren Pfiff auf.", + "korrekt": false + }, + { + "text": "Der Spieler, welcher laut Rotationsfolge den Aufschlag ausführen muss, nimmt den Ball und schlägt innerhalb der zulässigen Zeit ohne weiteren Pfiff auf.", + "korrekt": true + }, + { + "text": "Mannschaft B gewinnt sofort den Spielzug, erhält einen Punkt und das Aufschlagrecht.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Position ist für die Beurteilung des richtigen Standortes der jeweiligen Vorder- und Hinterspieler zueinander maßgebend?", + "antworten": [ + { + "text": "Die Körperstellung (Brusthöhe).", + "korrekt": false + }, + { + "text": "Die Stellung des hinteren Fußes.", + "korrekt": false + }, + { + "text": "Die Stellung des der Mittellinie am nächsten befindlichen Fußes.", + "korrekt": true + } + ] + }, + { + "frage": "Der Spielkapitän von Mannschaft A hatte Probleme, die Vorderspieler von Mannschaft B zu identifizieren. Er bittet deshalb den 2. Schiedsrichter, die Aufstellung der gegnerischen Mannschaft zu überprüfen. Ist dies erlaubt?", + "antworten": [ + { + "text": "Nein, ein solcher Antrag kann nicht gestellt werden.", + "korrekt": false + }, + { + "text": "Ja. Der 2. Schiedsrichter überprüft die Aufstellung und erteilt die Auskunft, ob die Aufstellung korrekt ist oder nicht.", + "korrekt": true + }, + { + "text": "Ja, der 2. Schiedsrichterüberprüft die Aufstellung und teilt dem Spielkapitän mit, welche Spieler Vorder- bzw. Hinterspieler sind.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Rechte hat der Spielkapitän?", + "antworten": [ + { + "text": "Er darf beim 1. Schiedsrichter beantragen, die Linienrichter austauschen zu lassen.", + "korrekt": false + }, + { + "text": "Er darf Wechsel und Auszeiten beantragen, auch wenn der Trainer auf der Mannschaftsbank sitzt.", + "korrekt": false + }, + { + "text": "Er darf die Überprüfung der Aufstellung der gegnerischen Mannschaft beantragen.", + "korrekt": true + }, + { + "text": "Er darf erfragen, welcher Spieler bei der gegnerischen Mannschaft als letztes den Aufschlag ausgeführt hat.", + "korrekt": false + } + ] + }, + { + "frage": "Wie oft darf eine Mannschaft, nachdem sie geblockt hat, den Ball noch spielen?", + "antworten": [ + { + "text": "Zweimal, denn die Blockberührung wird als die erste Ballberührung gewertet.", + "korrekt": false + }, + { + "text": "Ein- oder zweimal, in Abhängigkeit von der Anzahl der Spieler, die den Ball beim Block berührt haben.", + "korrekt": false + }, + { + "text": "Dreimal, denn die Blockberührung zählt nicht zu den erlaubten drei Ballberührungen.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage ist regelgerecht, wenn ein Wechsel nicht unverzüglich durchgeführt wird?", + "antworten": [ + { + "text": "Der Wechsel wird nicht gewährt. Der Wechselspieler erhält eine Sanktion wegen Verzögerung.", + "korrekt": false + }, + { + "text": "Der Wechsel wird nicht gewährt und die betreffende Mannschaft erhält (beim ersten Mal) eine Verwarnung wegen Verzögerung.", + "korrekt": true + }, + { + "text": "Der Mannschaft wird eine Auszeit auferlegt.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Aufschlag von Mannschaft A wird von der annehmenden Mannschaft B geblockt. Welche Entscheidung(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Punkt und Aufschlag für Mannschaft A.", + "korrekt": true + }, + { + "text": "Kein Fehler. Wenn der Ball nach dem Block das Spielfeld von Mannschaft A berührt, erhält Mannschaft B einen Punkt und das Aufschlagrecht.", + "korrekt": false + }, + { + "text": "Doppelfehler und Spielzugwiederholung. Der Aufschlag wird wiederholt.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball fliegt nach der dritten Ballberührung ins Netz. Wann muss der 1. Schiedsrichter pfeifen?", + "antworten": [ + { + "text": "Sofort, nachdem der Ball nach der dritten Berührung ins Netz geflogen ist.", + "korrekt": false + }, + { + "text": "Sobald er sicher ist, dass der Ball nach der dritten Berührung nicht über das Netz fliegen kann.", + "korrekt": false + }, + { + "text": "Wenn der Ball den Boden berührt oder zum vierten Mal gespielt wird.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler einer Mannschaft verletzt sich während eines Spielzuges ernsthaft. Welche Aussage(n) ist (sind) korrekt?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter wertet den Spielzug wie gespielt, da die Verletzung keinen Einfluss auf den Spielzug hatte. Das Schiedsgericht gewährt Erstversorgung auf dem Spielfeld, anschließend wird der Spieler normal gewechselt.", + "korrekt": false + }, + { + "text": "Das Schiedsgericht unterbricht den Spielzug sofort. Die Mannschaft möchte einen Libero für den verletzten Spieler wechseln. Hierfür gibt der Libero seine Funktion als Libero auf und wird ein normaler Spieler.", + "korrekt": false + }, + { + "text": "Das Schiedsgericht unterbricht den Spielzug sofort. Nachdem der verletzte Spieler normal gewechselt wurde, muss der 2. Schiedsrichter einen weiteren Wechselantrag zurückweisen, da kein vollständiger Spielzug zwischen den Wechselanträgen stattfand.", + "korrekt": true + } + ] + }, + { + "frage": "Die Mannschaft A spielt mit einem Libero. Während eines Spielzuges führt der Libero einen Blockversuch aus. Der Ball landet nach dem Schlag des Angreifers von Mannschaft B im AUS, ohne vom Libero berührt worden zu sein. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Fehler vom Libero. Punkt und Aufschlag für Mannschaft B.", + "korrekt": true + }, + { + "text": "Doppelfehler, da beide Fehler gleichzeitig begangen wurden. Der Spielzug muss wiederholt werden.", + "korrekt": false + }, + { + "text": "Ball Aus. Punkt und Aufschlag für Mannschaft A.", + "korrekt": false + } + ] + }, + { + "frage": "Welcher Aufschlag ist regelgerecht?", + "antworten": [ + { + "text": "Der Aufschlagspieler steht beim Schlagen des Balles seitlich neben der Aufschlagzone.", + "korrekt": false + }, + { + "text": "Der Aufschlagspieler berührt beim Schlagen des Balles die Grundlinie.", + "korrekt": false + }, + { + "text": "Der Aufschlagspieler springt in der Aufschlagzone ab, führt den Schlag im Sprung aus, landet aber deutlich im Feld.", + "korrekt": true + } + ] + }, + { + "frage": "Wenn zwei Spieler einer Mannschaft den Ball gleichzeitig berühren (kein Block), so gilt das als ...", + "antworten": [ + { + "text": "… zwei von drei erlaubten Berührungen.", + "korrekt": true + }, + { + "text": "… Fehler, Doppelberührung.", + "korrekt": false + }, + { + "text": "… eine von drei erlaubten Berührungen.", + "korrekt": false + } + ] + }, + { + "frage": "Wer gehört alles zur Startaufstellung?", + "antworten": [ + { + "text": "Die Spieler, einschließlich des spielenden Liberos, welche zu Satzbeginn auf dem Spielfeld stehen.", + "korrekt": false + }, + { + "text": "Die Spieler, einschließlich des spielenden Liberos, welche zu Spielbeginn auf dem Spielfeld stehen.", + "korrekt": false + }, + { + "text": "Die Spieler, ohne den spielenden Libero, welche zu Satzbeginn auf dem Spielfeld stehen.", + "korrekt": true + } + ] + }, + { + "frage": "Darf die im Spielberichtsbogen eingetragene Rotationsfolge vor Satzbeginn vom Gegner eingesehen werden?", + "antworten": [ + { + "text": "Dafür ist keine Regelung vorgesehen.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja. Allerdings erst dann, wenn die Rotationsfolge beider Mannschaften eingetragen ist.", + "korrekt": true + } + ] + }, + { + "frage": "Wer darf am offiziellen Aufwärmen teilnehmen?", + "antworten": [ + { + "text": "Alle Mannschaftsmitglieder und Freunde der Spieler.", + "korrekt": false + }, + { + "text": "Alle Mannschaftsmitglieder, welche in der Rubrik „Mannschaften“ eingetragen sind.", + "korrekt": true + }, + { + "text": "Nur die Mannschaftsmitglieder, welche in der Rubrik „Mannschaften“ in den ersten zwölf Zeilen eingetragen sind.", + "korrekt": false + } + ] + }, + { + "frage": "Was ist ein Doppelfehler?", + "antworten": [ + { + "text": "Wenn Spieler derselben Mannschaft zur gleichen Zeit Fehler begehen.", + "korrekt": false + }, + { + "text": "Wenn Gegenspieler gleichzeitig Fehler begehen.", + "korrekt": true + }, + { + "text": "Wenn Spieler derselben Mannschaft hintereinander Fehler begehen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) beschreibt/beschreiben einen Angriff?", + "antworten": [ + { + "text": "Ausschließlich Bälle, die geschlagen werden, stellen einen Angriff dar.", + "korrekt": false + }, + { + "text": "Jeder Ball, der von einem Spieler einer Mannschaft in Richtung Gegner gespielt wird, ist ein Angriff.", + "korrekt": true + }, + { + "text": "Ausschließlich Bälle, die sich bei der Berührung oberhalb der Netzoberkante befinden, stellen einen Angriff dar.", + "korrekt": false + } + ] + }, + { + "frage": "Der Libero nimmt an einem Gruppenblock teil. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dies ist dann erlaubt, wenn ein anderer Spieler (nicht der Libero) den Ball berührt.", + "korrekt": false + }, + { + "text": "Dies ist selbst dann ein Fehler, wenn kein Spieler des Gruppenblocks den Ball berührt (Blockversuch).", + "korrekt": true + }, + { + "text": "Dies ist immer erlaubt.", + "korrekt": false + } + ] + }, + { + "frage": "Welche der eingetragenen Sanktion(en) ist/sind fehlerhaft?", + "antworten": [ + { + "text": "Zeile 3.", + "korrekt": false + }, + { + "text": "Zeile 2.", + "korrekt": false + }, + { + "text": "Zeile 1.", + "korrekt": false + }, + { + "text": "Zeile 4.", + "korrekt": true + } + ] + }, + { + "frage": "Mannschaft A spielt mit einem Libero, welcher im zweiten Satz zum ersten mal eingesetzt wird. Wann kreuzt der Schreiber den Einsatz des Liberos im Spielberichtsbogen an?", + "antworten": [ + { + "text": "Wenn der Libero eingesetzt wurde.", + "korrekt": true + }, + { + "text": "Nach Spielende, sobald der 1. Schiedsrichter ihn darauf aufmerksam gemacht hat.", + "korrekt": false + }, + { + "text": "Gar nicht, dies ist Aufgabe des 2. Schiedsrichters.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Hinterspieler von Mannschaft A springt zwischen den gedachten Verlängerungen der Angriffs- und Mittellinie in der Freizone ab und schmettert den sich vollständig oberhalb der Netzoberkante befindlichen Ball zum Gegner. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dies ist regelgerecht, wenn ein übergreifender Block verhindert, dass der Ball die senkrechte Netzebene durchquert..", + "korrekt": false + }, + { + "text": "Dies ist regelgerecht, da der Hinterspieler außerhalb des Spielfeldes abgesprungen ist.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler.", + "korrekt": true + } + ] + }, + { + "frage": "Darf der Libero einen Angriffsschlag ausführen?", + "antworten": [ + { + "text": "Ja, allerdings muss er währenddessen mit beiden Füßen in der Hinterzone stehen.", + "korrekt": false + }, + { + "text": "Nein, der Libero darf keinen Angriffsschlag ausführen.", + "korrekt": false + }, + { + "text": "Ja, wenn sich der Ball dabei nicht vollständig oberhalb der Netzoberkante befindet.", + "korrekt": true + } + ] + }, + { + "frage": "Der Trainer von Mannschaft A beantragt einen Wechsel und nimmt gleich darauf eine Auszeit. Bevor das Spiel wieder aufgenommen wird, beantragt er einen weiteren Wechsel. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Wechsel wird vom 2. Schiedsrichter nicht gestattet.", + "korrekt": true + }, + { + "text": "Der Wechsel wird vom 2. Schiedsrichter gestattet.", + "korrekt": false + } + ] + }, + { + "frage": "Gehört die Angriffslinie zur Vorderzone?", + "antworten": [ + { + "text": "Zur Hälfte.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Welcher Moment ist für die Bestimmung der Positionen der Spieler massgebend?", + "antworten": [ + { + "text": "Der Moment, in dem der Aufschlagspieler beim Aufschlag den Ball schlägt.", + "korrekt": true + }, + { + "text": "Der Moment, in dem der Ball die Netzoberkante überquert.", + "korrekt": false + }, + { + "text": "Der Moment, in dem der 1. Schiedsrichter zur Genehmigung des Aufschlages pfeift.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Trainer Fragen über die Regelauslegung an den 2. Schiedsrichter richten, wenn der Ball aus dem Spiel ist?", + "antworten": [ + { + "text": "Nein, das darf nur der Spielkapitän.", + "korrekt": true + }, + { + "text": "Ja, alle Fragen.", + "korrekt": false + }, + { + "text": "Ja, wenn er eine gültige Schiedsrichterlizenz besitzt.", + "korrekt": false + } + ] + }, + { + "frage": "Auf welchen Positionen darf der Libero eingetauscht werden?", + "antworten": [ + { + "text": "Bei der Annahme auf den Positionen I, VI und V, bei eigenem Aufschlag auf den Positionen VI und V.", + "korrekt": true + }, + { + "text": "Nur auf den Positionen VI und V.", + "korrekt": false + }, + { + "text": "Auf alle Hinterspielerpositionen.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft spielt mit zwei Liberos. Der eine Libero befindet sich für den Spieler mit der #5 auf dem Feld. Welche regulären Austauschmöglichkeiten hat die Mannschaft bzgl. dieses Liberos, wenn bereits ein vollendeter Spielzug stattgefunden hat?", + "antworten": [ + { + "text": "Die Mannschaft tauscht den Libero durch den zweiten Libero aus, ohne dass der Spieler mit der #5 zwischenzeitlich das Feld betritt.", + "korrekt": true + }, + { + "text": "Die Mannschaft tauscht den Libero gegen den Spieler mit der #10 aus.", + "korrekt": false + }, + { + "text": "Der Libero wird gegen einen anderen Spieler als den Spieler mit der #5 ausgetauscht.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft hat einen Libero ordnungsgemäß im Spielberichtsbogen benannt. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Libero darf für jeden Hinterspieler eingetauscht werden.", + "korrekt": true + }, + { + "text": "Der Libero darf für jeden Hinterspieler eingewechselt werden.", + "korrekt": false + }, + { + "text": "Der Libero darf für einen verletzten Spieler ausnahmsweise eingewechselt werden, damit die Mannschaft nicht für unvollständig erklärt werden muss.", + "korrekt": false + } + ] + }, + { + "frage": "Darf der Libero einen Aufschlag ausführen?", + "antworten": [ + { + "text": "Ja, aber keinen Sprungaufschlag.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler der Mannschaft A betritt zwischen zwei Spielzügen die Wechselzone, hat aber noch ein Aufwärmshirt über seinem Trikot an. Die Mannschaft hat im Verlauf des Spieles bereits einen unberechtigten Antrag gestellt. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter weist den Wechselantrag zurück. Dies hat keine weiteren Folgen.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter pfeift, der 1. Schiedsrichter weist den Wechselantrag zurück und sanktioniert Mannschaft A wegen Verzögerung.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter pfeift, weist den Wechselantrag zurück und sanktioniert Mannschaft A wegen Verzögerung.", + "korrekt": false + } + ] + }, + { + "frage": "Beim Seitenwechsel zwischen dem ersten und zweiten Satz zeigt ein Spieler der Mannschaft A ein ausfallendes Verhalten und erhält dafür die entsprechende Sanktion. Mannschaft B hatte den Aufschlag im ersten Satz. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter zeigt dem betreffenden Spieler die rote Karte. Der zweiten Satz startet mit 1:0 und Aufschlag für Mannschaft B.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter bittet den Spielkapitän sofort zum Schiedsrichterstuhl und erklärt ihm, dass der betreffende Spieler zu Beginn des nächsten Satzes entsprechend sanktioniert wird. Zu Beginn des zweiten Satzes zeigt der 1. Schiedsrichter die Sanktion. Der Satz beginnt mit 0:0 und Aufschlag für Mannschaft A.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter bittet den Spielkapitän sofort zum Schiedsrichterstuhl, zeigt die gelbe und rote Karte zusammen in einer Hand und erklärt ihm, für wen und für welche Aktion die Sanktion verhängt wurde. Der zweite Satz startet mit 0:0 und Aufschlag für Mannschaft A.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Auszeit dauert:", + "antworten": [ + { + "text": "60 Sekunden.", + "korrekt": false + }, + { + "text": "30 Sekunden.", + "korrekt": true + }, + { + "text": "20 Sekunden.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Spieler während seiner Spielaktion das Netz berühren?", + "antworten": [ + { + "text": "Nein. Die Berührung des Netzes zwischen den Antennen während der Spielaktion ist ein Fehler.", + "korrekt": true + }, + { + "text": "Ja. Die Netzberührung durch einen Spieler ist kein Fehler.", + "korrekt": false + }, + { + "text": "Nein. Ein Spieler darf das Netz auf seiner gesamten Länge inklusive der Spannseile nicht berühren.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Spieler Gegenstände tragen (Ringe, Schmuck etc.), die Verletzungen verursachen können?", + "antworten": [ + { + "text": "Ja, denn es gibt keinen unmittelbaren Kontakt mit den Mitspielern und Gegnern.", + "korrekt": false + }, + { + "text": "Nein, es sei denn, sie werden so geschützt (z. B. durch Tape), dass von ihnen keine Gefahr mehr ausgeht.", + "korrekt": true + }, + { + "text": "Nur mit Erlaubnis des 1. Schiedsrichters.", + "korrekt": false + } + ] + }, + { + "frage": "Wie wird die Auslosung vor Spielbeginn und vor einem etwaigen Entscheidungssatz durchgeführt?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter hält verdeckt hinter seinem Rücken in einer Hand einen Gegenstand (z. B. Pfeife) und die Mannschaftskapitäne dürfen raten, in welcher Hand sich der Gegenstand befindet. Wer die Hand mit dem Gegenstand auswählt, bekommt das Aufschlagrecht zugewiesen und darf die Spielfeldseite auswählen.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter hält verdeckt hinter seinem Rücken in einer Hand einen Gegenstand (z. B. Pfeife) und die Trainer dürfen raten, in welcher Hand sich der Gegenstand befindet, damit sich die Mannschaftskapitäne ungestört einspielen können. Wer die Hand mit dem Gegenstand auswählt, bekommt das Aufschlagrecht zugewiesen und darf die Spielfeldseite auswählen.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter führt im Beisein des 2. Schiedsrichters und beider Mannschaftskapitäne die Auslosung durch. Der Gewinner der Auslosung wählt: ENTWEDER das Recht, den ersten Aufschlag auszuführen oder anzunehmen ODER die Spielfeldseite.", + "korrekt": true + } + ] + }, + { + "frage": "Wann darf ein Aufschlag ausgeführt werden?", + "antworten": [ + { + "text": "Der Aufschlag darf auch schon kurz vor dem Pfiff des 1. Schiedsrichters ausgeführt werden. Der Spielball darf die senkrechte Netzebene aber erst nach dem Pfiff des 1. Schiedsrichters vollständig überqueren.", + "korrekt": false + }, + { + "text": "Der Aufschlag darf erst nach dem Pfiff des 1. Schiedsrichters ausgeführt werden. Wird er vorher ausgeführt, wird der Aufschlag annulliert und wiederholt.", + "korrekt": true + }, + { + "text": "Der Aufschlag darf nach dem Blickkontakt mit dem 1. Schiedsrichter ausgeführt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft hat keinen Trainer im Spielberichtsbogen eingetragen. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Mannschaftskapitän ist Spielkapitän. Wird er ausgewechselt muss er einen anderen Spieler auf dem Spielfeld als Spielkapitän benennen.", + "korrekt": true + }, + { + "text": "Wenn der Mannschaftskapitän auf der Mannschaftsbank sitzt, darf er als Co-Trainer fungieren.", + "korrekt": false + }, + { + "text": "Wenn der Mannschaftskapitän auf der Mannschaftsbank sitzt, darf er einen Antrag stellen, um sich selbst einzuwechseln.", + "korrekt": false + } + ] + }, + { + "frage": "In welchem Fall/welchen Fällen darf ein Spieler einen im gegnerischen Raum befindlichen Ball bei einer Blockaktion berühren?", + "antworten": [ + { + "text": "Der Ball darf immer im gegnerischen Raum berührt werden.", + "korrekt": false + }, + { + "text": "Der Ball darf gleichzeitig mit dem Angriffsschlag des Gegners im gegnerischen Raum berührt werden. Dabei ist es egal, ob der Angriff die erste, zweite oder dritte Ballberührung darstellt.", + "korrekt": true + }, + { + "text": "Der Ball darf in keinem Fall im gegnerischen Raum berührt werden.", + "korrekt": false + } + ] + }, + { + "frage": "In welchem Fall muss der 1. Schiedsrichter eine erste Ballberührung als fehlerhaft abpfeifen?", + "antworten": [ + { + "text": "Annahme des Aufschlages, dabei gefangener oder geworfener Ball.", + "korrekt": true + }, + { + "text": "Annahme des Aufschlages, dabei Doppelberührung des Balles in einer Aktion.", + "korrekt": false + }, + { + "text": "Baggerannahme, hierbei mehrfache Berührung von (Oberarm, Brust) in einer Aktion.", + "korrekt": false + } + ] + }, + { + "frage": "Während des Spieles wechselt ein Spieler sein Trikot. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Das ist nicht zulässig.", + "korrekt": false + }, + { + "text": "Das Trikot darf auf dem Spielfeld gewechselt werden.", + "korrekt": false + }, + { + "text": "Das Trikot muss in Farbe, Modell und Nummerierung gleich sein.", + "korrekt": true + } + ] + }, + { + "frage": "Mannschaft A möchte mehrere normale Wechsel gleichzeitig vornehmen. Ist das erlaubt?", + "antworten": [ + { + "text": "Ja, wenn alle Wechselspieler gleichzeitig die Wechselzone betreten.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Nur bei Verletzungen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Netzhöhen sind bei Damen-Spielen regelgerecht?", + "antworten": [ + { + "text": "Links 2.24 m; Mitte 2.22 m; Rechts 2.24 m", + "korrekt": false + }, + { + "text": "Links 2.25 m; Mitte 2.24 m; Rechts 2.26 m", + "korrekt": false + }, + { + "text": "Links 2.24 m; Mitte 2.23 m; Rechts 2.24 m", + "korrekt": false + }, + { + "text": "Links 2.25 m; Mitte 2.24 m; Rechts 2.25 m", + "korrekt": true + } + ] + }, + { + "frage": "Nach einer gleichzeitigen Ballberührung oberhalb der Netzoberkante von zwei Gegenspielern fällt der Ball auf der Seite von Mannschaft A ins Aus. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dies ist ein Doppelfehler. Der Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Mannschaft B gewinnt den Spielzug, erhält/behält das Aufschlagrecht und erhält einen Punkt.", + "korrekt": false + }, + { + "text": "Mannschaft A gewinnt den Spielzug, erhält/behält das Aufschlagrecht und erhält einen Punkt.", + "korrekt": true + } + ] + }, + { + "frage": "Der Aufschlag gilt als ausgeführt, wenn nach dem Anpfiff des 1. Schiedsrichters ...", + "antworten": [ + { + "text": "... der Ball vom Aufschlagspieler hochgeworfen wurde.", + "korrekt": false + }, + { + "text": "... der Ball das Netz überflogen hat.", + "korrekt": false + }, + { + "text": "... der Ball beim Schlag berührt worden ist.", + "korrekt": true + } + ] + }, + { + "frage": "Wie ist bei einer Verletzung eines Spielers zu verfahren?", + "antworten": [ + { + "text": "Sobald sich der Spieler verletzt hat, wird das Spiel sofort unterbrochen (Doppelfehler und Spielzugwiederholung) und falls nötig wird der Verletzte versorgt und vom Spielfeld gebracht. Der Trainer darf nun zwischen folgenden Optionen wählen: normaler Wechsel des Spielers, ausnahmsweiser Wechsel, 3 Minuten Wiederherstellungszeit oder mit fünf Spielern auf dem Spielfeld weiterspielen.", + "korrekt": false + }, + { + "text": "Hat sich ein Spieler während eines Spielzuges ernsthaft verletzt, wird das Spiel sofort durch einen Schiedsrichter unterbrochen und medizinische Hilfe zugelassen. Falls er nicht weiterspielen kann, muss er normal gewechselt werden. Ist dies nicht möglich: ausnahmsweiser Wechsel. Ist auch dieser nicht möglich: 3 Minuten Wiederherstellungszeit. Kann der Spieler nicht weiterspielen, wird seine Mannschaft für diesen Satz für unvollständig erklärt.", + "korrekt": true + }, + { + "text": "Das Spiel wird sofort unterbrochen. Der 1. Schiedsrichter gewährt sofort eine dreiminütige Wiederherstellungszeit.", + "korrekt": false + } + ] + }, + { + "frage": "Bei der Annahme gehen zwei Spieler zum Ball und berühren diesen gleichzeitig. Wie viele Berührungen sind nun noch erlaubt, um den Ball zum Gegner zu spielen?", + "antworten": [ + { + "text": "Da weder der 1. noch der 2. Schiedsrichter erkennen konnten, welcher der beiden Spieler den Ball zuletzt berührt hat, entscheidet der 1. Schiedsrichter auf Doppelfehler und Spielzugwiederholung.", + "korrekt": false + }, + { + "text": "Da der Ball gleichzeitig berührt wurde, zählt diese Aktion als eine Berührung. Danach stehen der Mannschaft zwei weitere Berührungen zur Verfügung.", + "korrekt": false + }, + { + "text": "Da zwei Spieler den Ball gleichzeitig berührt haben, zählt diese Aktion als zwei Berührungen. Danach steht der Mannschaft lediglich eine weitere Berührung zur Verfügung, um den Ball zum Gegner zu spielen.", + "korrekt": true + } + ] + }, + { + "frage": "Unter welcher Bedingung darf ein Hinterspieler in der Vorderzone einen Angriff ausführen?", + "antworten": [ + { + "text": "Wenn der Ball nicht vollständig über der Netzoberkante gespielt wird.", + "korrekt": true + }, + { + "text": "Wenn die Hände unter der Netzoberkante bleiben.", + "korrekt": false + }, + { + "text": "Wenn der Spieler nicht höher als 30 cm springt.", + "korrekt": false + } + ] + }, + { + "frage": "Spieler #14 von Mannschaft A führt heftige Diskussionen mit dem Gegner, obwohl Mannschaft A vom Schiedsrichter zuvor bereits wegen unkorrektem Verhalten verwarnt wurde. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Spieler #14 von Mannschaft A wird bestraft, d. h. der Gegner gewinnt den Spielzug, erhält einen Punkt und das Aufschlagrecht.", + "korrekt": true + }, + { + "text": "Der Spieler #14 von Mannschaft A wird hinausgestellt.", + "korrekt": false + }, + { + "text": "Es erfolgt keine Sanktionierung von Spieler #14 von Mannschaft A.", + "korrekt": false + } + ] + }, + { + "frage": "Darf der Libero auch Trainer einer Mannschaft sein?", + "antworten": [ + { + "text": "Nur wenn das beim Staffelleiter vorab angemeldet wurde.", + "korrekt": false + }, + { + "text": "Nein, niemals.", + "korrekt": false + }, + { + "text": "Ja, die Trainerrechte darf er jedoch nur dann wahrnehmen, wenn er sich nicht auf dem Spielfeld befindet.", + "korrekt": true + } + ] + }, + { + "frage": "Der 2. Schiedsrichter bemerkt, dass vor Satzbeginn, bei der Kontrolle der Aufstellung, ein Spieler #4 auf dem Feld steht, dessen Nummer nicht auf dem Aufstellungsblatt eingetragen ist. Der Spieler #8 auf dem Aufstellungsblatt befindet sich auf der Aufwärmfläche. Was ist regelgerecht?", + "antworten": [ + { + "text": "Der Spieler #4 muss das Feld für Spieler #8 verlassen. Erst nach dem ersten Spielzug darf er durch einen normalen Wechsel für Spieler #8 eingewechselt werden.", + "korrekt": false + }, + { + "text": "Der Spieler #4 muss das Feld für Spieler #8 verlassen. Nach Kontrolle der Aufstellung noch vor dem ersten Spielzug kann Spieler #4 für Spieler #8 normal gewechselt werden.", + "korrekt": true + }, + { + "text": "Der Trainer darf die Aufstellung auf dem Aufstellungsblatt korrigieren.", + "korrekt": false + } + ] + }, + { + "frage": "Dürfen die Hände der Blockspieler den Ball im gegnerischen Spielraum berühren?", + "antworten": [ + { + "text": "Ja, aber nur nach der dritten Ballberührung des Gegners.", + "korrekt": false + }, + { + "text": "Ja, aber der Blockspieler darf den Ball nicht vor dem Gegner berühren.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Wie viele Offizielle dürfen einer Mannschaft laut Regelwerk maximal angehören?", + "antworten": [ + { + "text": "Vier Personen im Trainerstab (ein Trainer, drei Co-Trainer) und medizinische Betreuung durch einen Physiotherapeuten.", + "korrekt": false + }, + { + "text": "Zwei Personen im Trainerstab (ein Trainer, ein Co-Trainer) und ein Arzt oder ein Physiotherapeut.", + "korrekt": false + }, + { + "text": "Drei Personen im Trainerstab (ein Trainer, zwei Co-Trainer) und zwei Personen für die medizinische Versorgung (ein Physiotherapeut, ein Arzt).", + "korrekt": true + } + ] + }, + { + "frage": "Ab welchem Zeitpunkt darf der 1. Schiedsrichter den Aufschlag genehmigen?", + "antworten": [ + { + "text": "Wenn beide Mannschaften spielbereit sind und der Aufschlagspieler in Ballbesitz ist.", + "korrekt": true + }, + { + "text": "Sobald der Aufschlagspieler in Ballbesitz ist.", + "korrekt": false + }, + { + "text": "Wenn der Aufschlagspieler signalisiert, dass er spielbereit ist.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aufstellung wird nach dem Seitenwechsel im Entscheidungssatz beim Spielstand von 8:5 eingenommen?", + "antworten": [ + { + "text": "Nach dem Seitenwechsel wird die Aufstellung beibehalten. Im Fall eines Aufschlagwechsels ist eine Rotation durchzuführen.", + "korrekt": true + }, + { + "text": "Beide Mannschaften rotieren um eine Position weiter.", + "korrekt": false + }, + { + "text": "Die gleiche Aufstellung wie am Anfang des Entscheidungssatzes.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A spielt den Ball in ihrer ersten Ballberührung. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Ein Spieler wehrt den Angriffsschlag am bodenliegend mit seinem Fuß ab. Der Ball springt hoch, der Spieler steht auf und spielt den Ball erneut.", + "korrekt": false + }, + { + "text": "Ein Spieler wehrt den Angriffsschlag mit geöffneten Handflächen ab. Dabei fängt er denn Ball und wirft ihn wieder hoch.", + "korrekt": false + }, + { + "text": "Ein Spieler wehrt den Angriffsschlag mit geöffneten Handflächen ab. Der Ball prallt dabei nach kurzem Kontakt von den Handflächen wieder ab.", + "korrekt": true + } + ] + }, + { + "frage": "Spieler #5 Mannschaft A führt eine spektakuläre Abwehraktion mit dem Kopf aus. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Eine Ballberührung mit dem Kopf ist ausschließlich bei einer Abwehraktion (erste Ballberührung) erlaubt.", + "korrekt": false + }, + { + "text": "Der Ball darf nicht mit dem Kopf gespielt werden, da hierbei ein sehr hohes Verletzungsrisiko besteht.", + "korrekt": false + }, + { + "text": "Der Ball darf (außer beim Aufschlag) immer mit dem Kopf gespielt werden.", + "korrekt": true + } + ] + }, + { + "frage": "Wann darf bzw. muss der 1. Schiedsrichter eine Verwarnung (gelbe Karte) für geringfügiges Fehlverhalten aussprechen?", + "antworten": [ + { + "text": "Wenn ein Spieler mit der Entscheidung der Schiedsrichter nicht zufrieden ist und sich frustriert zur Mannschaftsbank dreht. Dabei seufzt er leise.", + "korrekt": false + }, + { + "text": "Wenn ein Angreifer behauptet, dass der gegnerische Block den Ball noch berührt habe, bevor dieser ins «Aus» ging. Der 1. Schiedsrichter lässt keine Diskussion zu, der Angreifer wendet sich seiner Mannschaft zu. Die Situation bleibt ruhig.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter darf eine Verwarnung der Stufe 2 (Zeigen der gelben Karte) erteilen, um einem Spieler bzw. einer Mannschaft klar zu machen, dass ein weiteres Fehlverhalten dieser Art Sanktionen zur Folge haben wird.", + "korrekt": true + } + ] + }, + { + "frage": "Wie lange sind die Spieler der annehmenden Mannschaft beim Aufschlag an die Rotationsfolge gebunden?", + "antworten": [ + { + "text": "Solange bis der Aufschläger den Ball zum Aufschlag hochgeworfen hat.", + "korrekt": false + }, + { + "text": "Solange bis der Ball das Netz überflogen hat.", + "korrekt": false + }, + { + "text": "Solange bis der Aufschlag ausgeführt wurde (Zeitpunkt der Ballberührung).", + "korrekt": true + } + ] + }, + { + "frage": "Während der 1. Schiedsrichter den Aufschlag genehmigt, betritt ein Spieler die Wechselzone. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die Aktion des Wechselspielers stellt einen unberechtigten Antrag dar.", + "korrekt": true + }, + { + "text": "Die Aktion des Wechselspielers ist auf jeden Fall mit einer Sanktion wegen Verzögerung zu ahnden.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter muss das Spiel unterbrechen und den Wechselantrag genehmigen.", + "korrekt": false + } + ] + }, + { + "frage": "Hat das Schiedsgericht der Mannschaft mitzuteilen, dass ein falscher Spieler den Aufschlag durchführen will?", + "antworten": [ + { + "text": "Ja, aber nur auf Anfrage des Spielkapitäns.", + "korrekt": true + }, + { + "text": "Nein, auf keinen Fall.", + "korrekt": false + }, + { + "text": "Ja, immer.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einer schlechten Annahme von Mannschaft A durchquert der Ball die Netzebene außerhalb der Antenne in die gegnerische Freizone. Ein anderer Spieler (#4) von Mannschaft A spielt den Ball ins eigene Feld zurück. In welchen Fällen ist dies erlaubt?", + "antworten": [ + { + "text": "… dann, wenn der Ball vollständig unter dem Netz zurückfliegt, im Raum zwischen der Verlängerung derselben Antenne nach unten und dem Pfosten.", + "korrekt": false + }, + { + "text": "… dann, wenn der Ball auf der Seite derselben Antenne außerhalb des Überquerrungssektors zurück fliegt.", + "korrekt": true + }, + { + "text": "… selbst dann, wenn Spieler #4 das Spielfeld von Mannschaft B berührt, während er den Ball zurück spielt", + "korrekt": false + } + ] + }, + { + "frage": "Welche aufeinanderfolgenden Anträge auf Spielunterbrechungen derselben Mannschaft zwischen zwei Spielzügen sind nicht regelgerecht?", + "antworten": [ + { + "text": "Nach einem Wechsel und einer anschließenden Auszeit beantragt dieselbe Mannschaft einen weiteren Wechsel.", + "korrekt": true + }, + { + "text": "Nach einer Auszeit beantragt die Mannschaft gleichzeitig zwei Wechsel.", + "korrekt": false + }, + { + "text": "Die Mannschaft benötigt nach ihrer ersten Auszeit weitere Zeit für taktische Anweisungen und beantragt deshalb gleich im Anschluss die zweite Auszeit.", + "korrekt": false + } + ] + }, + { + "frage": "Darf während eines Spielzuges die gegnerische Spielfeldhälfte mit den Füßen berührt werden?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, mit einem ganzen Fuß. Der Gegner darf dabei jedoch nicht behindert werden.", + "korrekt": false + }, + { + "text": "Ja, wenn ein Teil des Fußes (der Füße) sich auf der Mittellinie oder direkt über ihr befindet.", + "korrekt": true + } + ] + }, + { + "frage": "Der 2. Schiedsrichter erkennt eine fehlerhafte Netzberührung durch einen Blockspieler. Was ist/sind die regelgerechte(n) Vorgehensweise(n) des Schiedsgerichts?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter pfeift, macht anschließend das Handzeichen #19 (Fehlerhafte Netzberührung) und deutet (nach Möglichkeit) auf den betreffenden Blockspieler. Der 1. Schiedsrichter zeigt die Mannschaft, die als nächste aufschlagen wird und der 2. Schiedsrichter wiederholt unmittelbar nach dem 1. Schiedsrichter dieses Handzeichen.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter zeigt nur die fehlerhafte Netzberührung an. Der 1. Schiedsrichter pfeift, zeigt anschließend die Mannschaft, die als nächste aufschlagen wird und daraufhin das Handzeichen #19 (Fehlerhafte Netzberührung).", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter pfeift, zeigt die Mannschaft, die als nächste aufschlagen wird und dann das Handzeichen #19 (Fehlerhafte Netzberührung) und nach Möglichkeit auf denbetreffenden Blockspieler. Der 1. Schiedsrichter führt keine Handzeichen aus.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Hinterspieler der Mannschaft A greift einen zweiten Ball nach Absprung aus der Vorderzone an, wobei sich der Ball vollständig oberhalb der Netzoberkante befindet. Der Ball fliegt ins Netz und bleibt auf der Seite von A. Ein Mitspieler spielt den Ball noch über das Netz zum Gegner. Das Schiedsgericht lässt den Spielzug weiterlaufen. Ist diese Entscheidung regelgerecht?", + "antworten": [ + { + "text": "Nein, der Angriff des Hinterspielers war ein Fehler, da der Ball vollständig oberhalb der Netzoberkante war und die Ballberührung in der Vorderzone stattgefunden hat.", + "korrekt": false + }, + { + "text": "Ja, denn der erste Angriff des Hinterspielers war nicht vollendet, da der Ball weder das Netz überquert hat noch von einem gegnerischen Blockspieler berührt wurde. Somit war es kein fehlerhafter Hinterzonenangriff.", + "korrekt": true + } + ] + }, + { + "frage": "Eine Mannschaft spielt mit einem Libero, der nicht sehr glücklich agiert. Der Trainer erklärt ihn für spielunfähig und möchte einen neuen Libero benennen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Außer dem Austauschspieler des Liberos darf jeder Spieler, der zum Zeitpunkt des Antrages auf Neubenennung kein Feldspieler ist, als Libero neubenannt werden. Der ursprüngliche Libero darf nicht mehr am Spiel teilnehmen.", + "korrekt": true + }, + { + "text": "Ein Libero kann nicht wegen \"schlecht Spielens\" neubenannt werden.", + "korrekt": false + }, + { + "text": "Jeder Spieler, der sich nicht auf dem Spielfeld befindet, kann direkt als neuer Libero benannt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Der 2. Schiedsrichter gewährt eine Auszeit für Mannschaft A und wird vom Schreiber darauf aufmerksam gemacht, dass es sich um die dritte Auszeit in diesem Satz handelt. Die Mannschaft hat im Laufe des Spieles noch keinen unberechtigten Antrag gestellt. Welche Aussage(n) beschreibt/beschreiben regelgerechte Konsequenzen?", + "antworten": [ + { + "text": "Die Auszeit wird abgebrochen und es wird ohne Konsequenzen weitergespielt.", + "korrekt": false + }, + { + "text": "Die Auszeit wird abgebrochen, der unberechtigte Antrag wird im Spielberichtsbogen vermerkt. Es folgen keine weiteren Konsequenzen.", + "korrekt": false + }, + { + "text": "Die Auszeit wird abgebrochen und die Mannschaft A wird wegen Verzögerung sanktioniert.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler wird wegen geringfügigen Fehlverhaltens mittels Zeigen der gelben Karte formell verwarnt. Welche der folgenden Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Die gelbe Karte ist eine Sanktion und wird im Spielberichtsbogen eingetragen.", + "korrekt": false + }, + { + "text": "Eine Mannschaft kann mehrere gelbe Karten gezeigt bekommen, wenn es unterschiedliche Mannschaftsmitglieder betrifft.", + "korrekt": false + }, + { + "text": "Ein weiteres geringfügiges Fehlverhalten eines Spielers der gleichen Mannschaft wird wegen unangemessenen Verhaltens bestraft.", + "korrekt": true + }, + { + "text": "Die gelbe Karte ist keine Sanktion und wird nicht im Spielberichtsbogen eingetragen.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler führt vor dem Pfiff des 1. Schiedsrichters den Aufschlag aus. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Aufschlag ist ungültig und muss wiederholt werden.", + "korrekt": true + }, + { + "text": "Falls der Aufschlag fehlerhaft ist, erhält der Gegner einen Punkt und das Aufschlagrecht. Sonst Wiederholung des Aufschlages.", + "korrekt": false + }, + { + "text": "Der Gegner erhält einen Punkt und das Aufschlagrecht.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler wird im ersten Satz hinausgestellt. Die möglichen normalen Wechsel sind bereits durchgeführt. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Die Mannschaft hat die Wahl einen Ausnahmsweisewechsel durchzuführen.", + "korrekt": true + }, + { + "text": "Die Mannschaft verliert automatisch den Satz.", + "korrekt": false + }, + { + "text": "Die Mannschaft verliert das Spiel.", + "korrekt": false + } + ] + }, + { + "frage": "Der Spielkapitän der Mannschaft A beantragt die dritte Auszeit. Nach Ablehnung des Antrags durch den 2. Schiedsrichter beantragt der Trainer der Mannschaft A sofort im Anschluss den siebten Wechsel. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Mannschaft A erhält eine Verwarnung wegen Verzögerung.", + "korrekt": true + }, + { + "text": "Die Anträge werden ohne jede Ahndung zurückgewiesen.", + "korrekt": false + }, + { + "text": "Mannschaft A erhält eine Bestrafung wegen wiederholter Verzögerung.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Ball noch gerettet werden, wenn er außerhalb des Überquerungssektors oder oberhalb der Antenne in die gegnerische Freizone fliegt?", + "antworten": [ + { + "text": "Ja, wenn er zwischen den Antennen zurückgespielt wird.", + "korrekt": false + }, + { + "text": "Ja, wenn er wiederum außerhalb des Überquerungssektors oder oberhalb der Antenne zurückgespielt wird.", + "korrekt": true + }, + { + "text": "Nein, sobald er die Antennen passiert, ist dies ein Fehler.", + "korrekt": false + } + ] + }, + { + "frage": "Muss der Schreiber auf Ersuchen des Spielkapitäns diesem bekannt geben, wie viele Auszeiten bzw. Wechsel von der eigenen Mannschaft bereits beansprucht worden sind?", + "antworten": [ + { + "text": "Ja, allerdings nur nach Genehmigung des 1. Schiedsrichters.", + "korrekt": false + }, + { + "text": "Ja, und er muss diese Frage auch dem Trainer beantworten, wenn dieser die Anzahl wissen möchte.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Wer darf an einem ausgeführten Block (der Ball berührt den Block) teilnehmen?", + "antworten": [ + { + "text": "Alle Spieler (inklusive Libero) dürfen den gegnerischen Angriff blocken.", + "korrekt": false + }, + { + "text": "Nur der Spieler am Netz, der auf der jeweils gegenüberliegenden Position am Netz (vorne) steht. Das heißt, wenn z. B. Mannschaft A von ihrer Position IV angreift, darf von Mannschaft B nur die Person auf der Position II blocken.", + "korrekt": false + }, + { + "text": "Alle Vorderspieler dürfen sich an einem ausgeführten Block beteiligen.", + "korrekt": true + } + ] + }, + { + "frage": "Was gehört zu den Befugnissen des 2. Schiedsrichters?", + "antworten": [ + { + "text": "Er muss pfeifen, wenn er einen Fehler erkennt, der außerhalb seines Zuständigkeitsbereichs liegt, vom 1. Schiedsrichter aber nicht erkannt wurde.", + "korrekt": false + }, + { + "text": "Im Falle einer Verletzung eines Spielers genehmigt er einen ausnahmsweisen Wechsel oder gewährt eine Wiederherstellungszeit von 3 Minuten.", + "korrekt": true + }, + { + "text": "Er kontrolliert und sanktioniert gegebenenfalls das Verhalten der Mannschaftsmitglieder auf der Mannschaftsbank.", + "korrekt": false + } + ] + }, + { + "frage": "Wo dürfen sich die Wechselspieler während des Spieles aufhalten?", + "antworten": [ + { + "text": "Die Wechselspieler dürfen auf der Mannschaftsbank sitzen oder sich auf der Aufwärmfläche aufhalten.", + "korrekt": true + }, + { + "text": "Die Wechselspieler dürfen sich innerhalb der Freizone (außerhalb des Spielfeldes) auf der eigenen Spielfeldseite beliebig aufhalten.", + "korrekt": false + }, + { + "text": "Die Wechselspieler dürfen auf der Mannschaftsbank sitzen, außerdem dürfen sie vor oder hinter der Mannschaftsbank stehen.", + "korrekt": false + } + ] + }, + { + "frage": "Wann darf eine Mannschaft den Rest des Satzes mit fünf Spielern zu Ende spielen?", + "antworten": [ + { + "text": "Wenn ein Spieler wegen einer Sanktion das Feld verlassen muss und nicht ersetzt werden kann.", + "korrekt": false + }, + { + "text": "Niemals.", + "korrekt": true + }, + { + "text": "Wenn ein Spieler wegen Verletzung ausfällt und nicht ersetzt werden kann.", + "korrekt": false + } + ] + }, + { + "frage": "Wann muss die annehmende Mannschaft beim Aufschlag die richtige Aufstellung einhalten?", + "antworten": [ + { + "text": "Beim Schlagen des Balles.", + "korrekt": true + }, + { + "text": "Beim Pfiff des Schiedsrichters.", + "korrekt": false + }, + { + "text": "Beim Hochwerfen des Balles.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler von Mannschaft A berührt nach der sicheren Landung vom Block beim Umdrehen das Netz. Ist das regelgerecht?", + "antworten": [ + { + "text": "Nein. Eine Netzberührung ist immer ein Fehler.", + "korrekt": false + }, + { + "text": "Nein. Der Schiedsrichter muss erst dann pfeifen, wenn Mannschaft B protestiert.", + "korrekt": false + }, + { + "text": "Ja, wenn das gegnerische Spiel nicht beeinflusst wird.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Rechte hat der Spielkapitän während des Spieles?", + "antworten": [ + { + "text": "Er darf Wechsel und Auszeiten beantragen, auch wenn der Trainer sich auf der Mannschaftsbank befindet.", + "korrekt": false + }, + { + "text": "Er darf beim Schiedsrichter die Überprüfung der Netzhöhe oder des Balldrucks verlangen.", + "korrekt": true + }, + { + "text": "Er darf den Schiedsrichter bitten, die Feldlinien neu abkleben zu lassen.", + "korrekt": false + } + ] + }, + { + "frage": "Welches Fehlerzeichen muss gezeigt werden, wenn der Ball nach einer Annahme das Netz innerhalb der Antennen berührt?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter muss nach seinem Pfiff zuerst auf den Spieler, der den Ball ins Netz gespielt hat, dann auf den Ball und zuletzt auf das Netz zeigen.", + "korrekt": false + }, + { + "text": "Es muss kein Handzeichen gezeigt werden. Der Ball darf das Netz berühren und innerhalb der erlaubten drei Ballberührungen weitergespielt werden. Erst wenn der Ball z. B. auf den Boden fällt oder ein viertes Mal berührt wird, entsteht ein Fehler.", + "korrekt": true + }, + { + "text": "Hand ans Netz (Handzeichen #19), genau wie bei einem Aufschlag, der die senkrechte Ebene des Netzes nicht durchquert.", + "korrekt": false + } + ] + }, + { + "frage": "Was gehört zu den Befugnissen des 2. Schiedsrichters?", + "antworten": [ + { + "text": "Er muss pfeifen, wenn er einen Fehler erkennt, der außerhalb seines Zuständigkeitsbereichs liegt, vom 1. Schiedsrichter aber nicht erkannt wurde.", + "korrekt": false + }, + { + "text": "Er genehmigt reguläre Spielunterbrechungen und weist unberechtigte Anträge zurück.", + "korrekt": true + }, + { + "text": "Er hat den Zustand der Bälle und der weiteren Ausrüstung zu überprüfen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) trifft/treffen auf die Zuständigkeiten des 2. Schiedsrichters zu?", + "antworten": [ + { + "text": "Er pfeift vor Spielbeginn zur Auslosung.", + "korrekt": false + }, + { + "text": "Er pfeift die fehlerhafte Doppelberührung des Balles durch einen Spieler.", + "korrekt": false + }, + { + "text": "Er erteilt eine Sanktion wegen Verzögerung, wenn die Spieler zu langsam einen genehmigten Spielerwechsel vollziehen.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter pfeift die Berührung des Balles mit der Antenne auf seiner Netzseite.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Die nicht im Spiel befindlichen Spieler dürfen sich während Auszeit und Satzpause mit Bällen aufwärmen.", + "korrekt": false + }, + { + "text": "Die nicht im Spiel befindlichen Spieler dürfen sich während der Auszeit mit Bällen aufwärmen.", + "korrekt": false + }, + { + "text": "Die nicht im Spiel befindlichen Spieler dürfen sich während der Satzpause mit Bällen aufwärmen.", + "korrekt": true + } + ] + }, + { + "frage": "Darf ein Hinterspieler (kein Libero) den Ball nach Absprung hinter der Vorderzone über das Netz spielen?", + "antworten": [ + { + "text": "Nur, wenn sich ein Teil des Balles bei der Berührung unterhalb der Netzoberkante befindet.", + "korrekt": false + }, + { + "text": "Ja", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Ball prallt nach der Berührung der Netzoberkante und des Blockes in das Feld des Angreifers zurück. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Spielzug wird wiederholt.", + "korrekt": false + }, + { + "text": "Der Mannschaft stehen erneut drei Ballberührungen zu.", + "korrekt": true + }, + { + "text": "Bei einer weiteren Ballberührung wird auf „vier Schläge“ entschieden.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball wird von zwei gegnerischen Spielern im Raum der Mannschaft A gleichzeitig berührt. Welche Aussage(n) beschreibt/beschreiben einen regelgerechten Sachverhalt?", + "antworten": [ + { + "text": "Dies ist immer ein Fehler von Mannschaft B.", + "korrekt": false + }, + { + "text": "Dies ist immer ein Fehler von Mannschaft A.", + "korrekt": false + }, + { + "text": "Der Spielzug läuft weiter, wenn die Berührung von Mannschaft B als Block und die von Mannschaft A als Angriff gewertet wurde.", + "korrekt": true + } + ] + }, + { + "frage": "Darf ein Ball «außer beim Block» von einem Spieler innerhalb einer Aktion zwei Mal berührt werden?", + "antworten": [ + { + "text": "Nur dann, wenn es die erste Ballberührung der Mannschaft innerhalb der erlaubten drei Ballberührungen ist.", + "korrekt": true + }, + { + "text": "Nein, nie.", + "korrekt": false + }, + { + "text": "Ein Ball darf immer zwei Mal berührt werden, außer vom Zuspieler im oberen Fingerzuspiel (Pritschen).", + "korrekt": false + } + ] + }, + { + "frage": "Ein Hinterspieler spielt den Ball nach Absprung in der Vorderzone über das Netz. Ist dies regelgerecht?", + "antworten": [ + { + "text": "Ja, wenn sich der Ball beim Berühren nicht vollständig oberhalb der Netzoberkante befindet.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Darf der Spielkapitän die Schiedsrichter zur Regelauslegung befragen?", + "antworten": [ + { + "text": "Nein, Fragen zur Regelauslegung müssen nach dem Spiel geklärt werden.", + "korrekt": false + }, + { + "text": "Ja, aber immer nur den Schiedsrichter, der einen Fehler erkannt und gepfiffen hat.", + "korrekt": true + }, + { + "text": "Ja, aber nur den 1. Schiedsrichter.", + "korrekt": false + } + ] + }, + { + "frage": "Der Aufschlagspieler springt in der Aufschlagzone hinter der Grundlinie ab, führt im Sprung den Aufschlag aus und landet nach der Ausführung im Spielfeld. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Dies ist immer ein Fehler.", + "korrekt": false + }, + { + "text": "Dies ist kein Fehler.", + "korrekt": true + }, + { + "text": "Dies ist ein Fehler, wenn die Ballberührung über dem Spielfeld stattfindet.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler «rettet» den Ball auf seiner Spielfeldseite, indem er auf die eigene Mannschaftsbank tritt und den Ball durch den Überquerungssektor zum Gegner spielt. Ist das regelgerecht?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Nur wenn es sich um eine spektakuläre Aktion handelt.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + } + ] + }, + { + "frage": "Darf eine Mannschaft den Rest eines Satzes mit fünf Spielern zu Ende spielen?", + "antworten": [ + { + "text": "Nur wenn ein Spieler verletzt ausfällt und kein normaler Wechsel möglich ist.", + "korrekt": false + }, + { + "text": "Immer wenn ein Spieler hinausgestellt oder disqualifiziert wird und kein normaler Wechsel möglich ist.", + "korrekt": false + }, + { + "text": "Niemals.", + "korrekt": true + } + ] + }, + { + "frage": "Darf ein Spieler bei einem Angriffsschlag mit der Hand über das Netz greifen?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Ja, nach der Ballberührung auf der eigenen Seite, wenn sich der Ball bereits von der Hand gelöst hat.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler berührt während einer Spielaktion das Netz außerhalb der Antenne. Der Schiedsrichter lässt weiterspielen. Handelt er regelgerecht?", + "antworten": [ + { + "text": "Nein, denn eine Netzberührung durch Spieler ist immer ein Fehler.", + "korrekt": false + }, + { + "text": "Nein, denn eine Netzberührung auf der gesamten Länge des Netzes ist während einer Spielaktion als Fehler zu ahnden.", + "korrekt": false + }, + { + "text": "Ja, denn die Netzberührung außerhalb der Antenne ist auch während einer Spielaktion erlaubt.", + "korrekt": true + } + ] + }, + { + "frage": "Ein abgewehrter Ball fliegt durch den Außensektor in Richtung gegnerische Mannschaft. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Abwehrspieler, der versucht, diesen Ball zu retten, darf weder Teile der Netzanlage noch das Spielfeld des Gegners berühren.", + "korrekt": false + }, + { + "text": "Der Abwehrspieler, der versucht, diesen Ball zu retten, darf während seiner Aktion nicht behindert werden.", + "korrekt": true + }, + { + "text": "Der Ball darf uneingeschränkt im Rahmen der erlaubten drei Berührungen durch denselben Außensektor wieder auf die eigene Seite zurückgespielt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Wer übernimmt die Rechte und Pflichten des Mannschaftskapitäns, wenn sich dieser nicht auf dem Spielfeld befindet?", + "antworten": [ + { + "text": "Der Mannschaftskapitän behält seine Aufgaben.", + "korrekt": false + }, + { + "text": "Der Spieler, der vom Mannschaftskapitän oder Trainer als Spielkapitän benannt wird.", + "korrekt": true + }, + { + "text": "Ein Spieler, der vom 1. Schiedsrichter dazu benannt wird.", + "korrekt": false + } + ] + }, + { + "frage": "Die Satzpause beträgt 3 Minuten. Vor dem Tiebreak beträgt sie 5 Minuten. Ist die Aussage regelgerecht?", + "antworten": [ + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "In welchen Aufgabenbereich fällt das Feststellen eines Rotationsfehlers?", + "antworten": [ + { + "text": "In den Aufgabenbereich des 2. Schiedsrichters.", + "korrekt": false + }, + { + "text": "In den Aufgabenbereich des Schreibers.", + "korrekt": true + }, + { + "text": "In den Aufgabenbereich des 1. Schiedsrichtes.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler hat im ersten Satz eine gelbe Karte wegen Meckerns erhalten. Im vierten Satz zeigt er erneut ein geringfügiges Fehlverhalten. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter spricht eine erneute Verwarnung (gelbe Karte), da die gelbe Karte mit dem Ende des Satzes ihre Wirkung verliert.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter spricht eine Bestrafung aus (rote Karte), da eine Mannschaft nur eine gelbe Karte pro Spiel erhalten kann.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter spricht eine Hinausstellung (gelbe und rote Karte zusammen), da der Spieler durch das wiederholte geringfügige Fehlverhalten zeigt, dass geringere Strafen keine Wirkung bei ihm zeigen.", + "korrekt": false + } + ] + }, + { + "frage": "Im zweiten Satz hat der Trainer eine dritte Auszeit beantragt. Der Antrag wurde unverzüglich zurückgewiesen, ohne dass eine Verzögerung entstand. Der unberechtigte Antrag wird im Spielberichtsbogen eingetragen. Im dritten Satz beantragt der Libero eine Auszeit. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Antrag des Liberos wird ohne weitere Sanktionen zurückgewiesen, da keine Verzögerung entstand.", + "korrekt": false + }, + { + "text": "Die Auszeit wird ausnahmsweise genehmigt und es wird eine Verwarnung wegen Verzögerung ausgesprochen.", + "korrekt": false + }, + { + "text": "Der zweite unberechtigte Antrag wird zurückgewiesen. Die Mannschaft erhält eine Sanktion wegen Verzögerung.", + "korrekt": true + } + ] + }, + { + "frage": "Was ist gilt als Angriffsschlag?", + "antworten": [ + { + "text": "Jeder stark geschlagene Ball (Smash).", + "korrekt": false + }, + { + "text": "Alle Aktionen, bei denen der Ball in Richtung des Gegners gespielt wird, ausgenommen Aufschlag und Block.", + "korrekt": true + }, + { + "text": "Jede dritte Ballberührung.", + "korrekt": false + } + ] + }, + { + "frage": "Fehlerhafte Aufstellung von Mannschaft A. Es ist nicht zu ermitteln, wann der Fehler passiert ist. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Satz wird mit dem Spielstand 0:0 neu begonnen.", + "korrekt": false + }, + { + "text": "Mannschaft B gewinnt den Spielzug, erhält einen Punkt und das Aufschlagrecht. Die Aufstellung von Mannschaft A wird berichtigt.", + "korrekt": true + }, + { + "text": "Der Spielzug wird wiederholt.", + "korrekt": false + } + ] + }, + { + "frage": "Der Trainer der Mannschaft A beantragt eine Auszeit, obwohl der 1. Schiedsrichter den nächsten Spielzug schon angepfiffen hat. Dies ist der erste unberechtigte Antrag von Mannschaft A. Welche Aussage(n) beschreibt/beschreiben regelgerechtes Verhalten der Schiedsrichter?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter pfeift und gewährt die Auszeit.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter pfeift ein weiteres Mal und gewährt die Auszeit.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter weist den unberechtigten Antrag zurück. Nach dem Spielzug wird der unberechtigte Antrag im Spielberichtsbogen vermerkt.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Sobald der Aufschlagspieler die Aufschlagzone betritt, genehmigt der 1. Schiedsrichter den Aufschlag.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter genehmigt den Aufschlag, sobald der Aufschlagspieler durch Handzeichen seine Spielbereitschaft angezeigt hat.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter genehmigt den Aufschlag, nachdem er sich vergewissert hat, dass beide Mannschaften spielbereit sind und sich der Aufschlagspieler im Ballbesitz befindet.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) trifft/treffen auf die Zuständigkeiten des 2. Schiedsrichters zu?", + "antworten": [ + { + "text": "Er pfeift die fehlerhafte Doppelberührung des Balles durch einen Spieler.", + "korrekt": false + }, + { + "text": "Er erteilt eine Sanktion wegen Verzögerung, wenn die Spieler zu langsam einen genehmigten Spielerwechsel vollziehen.", + "korrekt": false + }, + { + "text": "Er entscheidet auf Ball In/Ball Aus auf seiner Seite des Spielfeldes.", + "korrekt": false + }, + { + "text": "Er pfeift die Berührung des Balles mit dem Boden, wenn der 1. Schiedsrichter dies nicht sehen kann.", + "korrekt": true + } + ] + }, + { + "frage": "Darf ein verletzter Spieler normal gewechselt werden?", + "antworten": [ + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Nein. Verletzte Spieler müssen immer «ausnahmsweise» gewechselt werden und dürfen an dem Spiel in der Folge nicht mehr teilnehmen.", + "korrekt": false + }, + { + "text": "Nein. Wenn eine Wiederherstellungszeit von 3 Minuten ausreicht, um die Spielfähigkeit des Spielers zurückzuerlangen, muss gar kein Wechsel durchgeführt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Der Ball berührt die Spielfeldlinie an ihrer Außenseite. Ist dieser Ball \"in\"?", + "antworten": [ + { + "text": "Nein, weil ein Teil des Balles außerhalb des Spielfeldes ist.", + "korrekt": false + }, + { + "text": "Ja, weil der Ball die Spielfeldlinie berührt.", + "korrekt": true + }, + { + "text": "Nein, weil weniger als die Hälfte der Spielfeldlinie berührt wird.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft spielt mit zwei Liberos. Nach Hinausstellung eines Liberos wird der 2. Libero spielunfähig. Ist der Antrag auf Neubenennung eines weiteren Liberos in dem Satz erlaubt?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Netzhöhen sind bei Damen-Spielen regelgerecht?", + "antworten": [ + { + "text": "Links 2.26 m; Mitte 2.25 m; Rechts 2.26 m", + "korrekt": false + }, + { + "text": "Links 2.25 m; Mitte 2.24 m; Rechts 2.26 m", + "korrekt": false + }, + { + "text": "Links 2.24 m; Mitte 2.23 m; Rechts 2.24 m", + "korrekt": false + }, + { + "text": "Links 2.26 m; Mitte 2.24 m; Rechts 2.26 m", + "korrekt": true + } + ] + }, + { + "frage": "Der Libero steht mit einem Fuß in der Vorderzone und spielt einen Ball im oberen Fingerzuspiel. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Ein Libero darf nicht pritschen.", + "korrekt": false + }, + { + "text": "Ein nachfolgender Angriff ist fehlerhaft, wenn sich der Ball bei der Berührung vollständig oberhalb der Netzoberkante befindet.", + "korrekt": true + }, + { + "text": "Ein nachfolgender Angriff ist fehlerhaft, wenn er aus der Vorderzone heraus ausgeführt wird.", + "korrekt": false + } + ] + }, + { + "frage": "Im Moment der Ausführung des Aufschlages begeht die annehmende Mannschaft einen Positionsfehler. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter entscheidet auf Fehler der annehmenden Mannschaft.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter entscheidet auf Doppelfehler und Wiederholung des Spielzuges.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter spricht eine Verwarnung aus.", + "korrekt": false + } + ] + }, + { + "frage": "Der Mannschaftskapitän befindet sich nicht auf dem Feld. Wer darf nach einem Spielzug nach der korrekten Rotationsfolge fragen?", + "antworten": [ + { + "text": "Der Trainer.", + "korrekt": false + }, + { + "text": "Der Spielkapitän.", + "korrekt": true + }, + { + "text": "Der Mannschaftskapitän.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler nimmt den gegnerischen Aufschlag im unteren Zuspiel an. Dabei berührt der Ball zunächst seine Unterarme und fliegt gegen sein Kinn. Der Schiedsrichter pfeift nicht ab. Ist das regelgerecht?", + "antworten": [ + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Dürfen beide Mannschaften nach einem vollendeten Spielzug und vor dem Pfiff des 1. Schiedsrichters zur Genehmigung des nächsten Aufschlages einen Wechsel beantragen?", + "antworten": [ + { + "text": "Ja, aber nur wenn es sich um einen ausnahmsweisen Wechsel bei einer der beiden Mannschaften handelt.", + "korrekt": false + }, + { + "text": "Ja, beide Mannschaften dürfen unabhängig voneinander einen oder mehrere ihrer Spieler wechseln.", + "korrekt": true + }, + { + "text": "Nein, in einer Spielunterbrechung darf nur eine Mannschaft einen Wechsel vollziehen (die Mannschaft, die den Wechselantrag zuerst stellt). Der Wechselantrag der anderen Mannschaft wird abgewiesen und kann erst nach dem nächsten vollendeten Spielzug durchgeführt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Zwischen zwei Spielzügen betreten zwei Spieler einer Mannschaft gleichzeitig die Wechselzone. Während der erste Wechsel vollzogen wird, ruft der Trainer den zweiten Wechselspieler wieder zurück. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Sofern keine Verzögerung eintritt, hat die Aktion keine Konsequenzen zur Folge.", + "korrekt": true + }, + { + "text": "Dies ist nicht erlaubt. Der zweite Wechsel muss auch durchgeführt werden. Die Mannschaft erhält eine Sanktion wegen Verzögerung.", + "korrekt": false + }, + { + "text": "Die Mannschaft erhält auf jeden Fall eine Sanktion wegen Verzögerung.", + "korrekt": false + } + ] + }, + { + "frage": "Wo haben sich die Spieler während der Auszeit aufzuhalten?", + "antworten": [ + { + "text": "Die im Spiel befindlichen Spieler müssen in die Freizone nahe ihrer Mannschaftsbank kommen.", + "korrekt": true + }, + { + "text": "Alle Spieler müssen in die Freizone nahe ihrer Mannschaftsbank kommen.", + "korrekt": false + }, + { + "text": "Die Spieler dürfen an die Seitenlinie herantreten, ohne das Spielfeld zu verlassen.", + "korrekt": false + } + ] + }, + { + "frage": "Der Trainer beantragt eine Auszeit beim 2. Schiedsrichter, nachdem der 1. Schiedsrichter bereits zum Aufschlag angepfiffen hat. Dies ist der erste derartige Vorfall im Spiel. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter darf das bereits angepfiffene Spiel nicht unterbrechen, er weist den Antrag ohne weitere Folgen zurück.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter unterbricht das Spiel. Der 1. Schiedsrichter lehnt den Antrag ab und spricht eine Verwarnung wegen Verzögerung gegen die Mannschaft wegen des zu spät gestellten Antrages aus.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter unterbricht das Spiel. Der 1. Schiedsrichter lehnt den Antrag ab und spricht eine Bestrafung wegen Verzögerung gegen die Mannschaft wegen des zu spät gestellten Antrages aus.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aufschlagsituation(en) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der Aufschlagspieler steht bei der Ausführung des Aufschlages mit einem Fuß außerhalb der Aufschlagzone, der andere befindet sich in der Aufschlagzone.", + "korrekt": false + }, + { + "text": "Der Aufschlagspieler wirft den Ball hoch und fängt diesen dann wieder auf, um ihn anschließend erneut hochzuwerfen.", + "korrekt": false + }, + { + "text": "Der Aufschlagspieler wirft den Ball hoch, springt hinter der Grundlinie innerhalb der verlängerten Seitenlinien ab und schlägt den Ball. Anschließend landet der Spieler im eigenen Spielfeld.", + "korrekt": true + } + ] + }, + { + "frage": "Wann darf ein Wechsel beantragt werden?", + "antworten": [ + { + "text": "Nur bei Satzende.", + "korrekt": false + }, + { + "text": "Wenn der Ball „aus dem Spiel“ ist.", + "korrekt": true + }, + { + "text": "Wenn die Mannschaft das Recht zum Aufschlag hat.", + "korrekt": false + } + ] + }, + { + "frage": "Bei den Wechselspielern einer Mannschaft halten sich weitere Spieler derselben Mannschaft auf, die jedoch nicht im Spielberichtsbogen eingetragen sind. Welches Vorgehen ist regelgerecht?", + "antworten": [ + { + "text": "Das Schiedsgericht duldet die weiteren Spieler, denn sie gehören zur Mannschaft und haben das Recht, bei ihren Mannschaftskollegen zu stehen.", + "korrekt": false + }, + { + "text": "Das Schiedsgericht verweist die weiteren Spieler auf die Tribüne, denn sie sind nicht in den Spielberichtsbogen eingetragen und damit nicht Teil der Mannschaft.", + "korrekt": true + }, + { + "text": "Das Schiedsgericht duldet die weiteren Spieler, solange sie sich benehmen.", + "korrekt": false + } + ] + }, + { + "frage": "Dürfen Hinterspieler einen Block ausführen?", + "antworten": [ + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Nur, wenn der Ball nach dem Block im eigenen Feld bleibt.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage(n) ist/sind regelgerecht im Zusammenhang mit der Definition eines Spielzuges?", + "antworten": [ + { + "text": "Ein vollendeter Spielzug ist die Folge von Spielaktionen vom Moment der Ausführung des Aufschlages bis der Ball „aus dem Spiel“ ist.", + "korrekt": false + }, + { + "text": "Bei Unterbrechung eines Spielzuges („Doppelfehler/Spielzugwiederholung“) wird trotzdem ein Punkt vergeben.", + "korrekt": false + }, + { + "text": "Ein vollendeter Spielzug ist die Folge von Spielaktionen vom Moment des Aufschlages bis der Ball „aus dem Spiel“ ist und ein Punkt zuerkannt wurde.", + "korrekt": true + } + ] + }, + { + "frage": "Gehört zu den Aufgaben des 2. Schiedsrichters das Pfeifen und Anzeigen eines regelwidrigen Blockes durch Hinterspieler?", + "antworten": [ + { + "text": "Nur auf seiner Seite zur Unterstützung des 1. Schiedsrichters.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + } + ] + }, + { + "frage": "Der Aufschlagspieler von Mannschaft A übertritt nach der Genehmigung des Aufschlages die seitliche Begrenzung der Aufschlagzone, befindet sich aber im Moment des Aufschlages wieder innerhalb der Aufschlagzone. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Aufschlag wird wiederholt.", + "korrekt": false + }, + { + "text": "Dies ist kein Fehler.", + "korrekt": true + }, + { + "text": "Mannschaft A verliert den Spielzug und das Aufschlagrecht.", + "korrekt": false + } + ] + }, + { + "frage": "Können nach Eintragung der Startaufstellungen der Mannschaften im Spielberichtsbogen noch vor Beginn des Spieles Wechsel vorgenommen werden?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Nur als normaler Wechsel mit entsprechender Eintragung.", + "korrekt": true + }, + { + "text": "Ja, mit Streichung und Neueintragung.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler hilft nach einer Ballberührung seinem Mitspieler einen „Übertritt“ zu vermeiden. Ist das regelgerecht?", + "antworten": [ + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Nur, wenn Verletzungsgefahr besteht.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage ist regelgerecht in Bezug auf Vorfälle, die nicht im Regelwerk festgelegt sind?", + "antworten": [ + { + "text": "In solchen Fällen befragt der 1. Schiedsrichter die übrigen Mitglieder des Schiedsgerichts. Es erfolgt eine Mehrheitsentscheidung.", + "korrekt": false + }, + { + "text": "In solchen Fällen entscheidet der 1. Schiedsrichter in eigener Verantwortung.", + "korrekt": true + }, + { + "text": "In solchen Fällen überlässt der 1. Schiedsrichter die Entscheidung der Wettkampfleitung.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler wurde ein- und wieder ausgewechselt. Darf er im selben Satz noch einmal eingewechselt werden?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, jedoch nur auf eine andere Position.", + "korrekt": false + }, + { + "text": "Nur bei Verletzung, Hinausstellung bzw. Disqualifikation, wenn ein normaler Wechsel nicht mehr möglich ist.", + "korrekt": true + } + ] + }, + { + "frage": "Die annehmende Mannschaft muss in dem Moment in der korrekten Aufstellung (Rotationsfolge / Positionen) stehen, wenn ...", + "antworten": [ + { + "text": "... der Ball nach erfolgtem Aufschlag das Netz überquert hat.", + "korrekt": false + }, + { + "text": "... der Ball vom Aufschlagspieler geschlagen wurde.", + "korrekt": true + }, + { + "text": "... der Ball vom Aufschlagspieler hochgeworfen wurde.", + "korrekt": false + } + ] + }, + { + "frage": "Wo wird die Netzhöhe gemessen?", + "antworten": [ + { + "text": "Zwei Meter von den Seitenlinien.", + "korrekt": false + }, + { + "text": "In der Feldmitte und über den Seitenlinien.", + "korrekt": true + }, + { + "text": "An beliebiger Stelle.", + "korrekt": false + } + ] + }, + { + "frage": "Der Spieler der annehmenden Mannschaft auf Position I steht zum Zeitpunkt der Ausführung des Aufschlages vor dem Spieler auf der Position IV. Ist dies ein Fehler?", + "antworten": [ + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + } + ] + }, + { + "frage": "Dürfen sich Wechselspieler mit Bällen aufwärmen?", + "antworten": [ + { + "text": "Ja, aber nur während der Satzpausen.", + "korrekt": true + }, + { + "text": "Ja, aber nur während der Auszeiten.", + "korrekt": false + }, + { + "text": "Ja, immer, solange es nicht stört.", + "korrekt": false + } + ] + }, + { + "frage": "Spieler #8 hat Aufschlag, jedoch geht Spieler #10 zum Aufschlag. Zu welchem Zeitpunkt wird die Rotation fehlerhaft?", + "antworten": [ + { + "text": "Sobald Spieler #10 zum Aufschlag geht und der Schreiber dies bemerkt.", + "korrekt": false + }, + { + "text": "Nach dem Pfiff zur Aufschlagbewilligung durch den 1. Schiedsrichter.", + "korrekt": false + }, + { + "text": "Nachdem der Aufschlagspieler den Ball geschlagen hat.", + "korrekt": true + } + ] + }, + { + "frage": "Darf ein Spieler (kein Spielkapitän) während des Spieles den Schiedsrichter bitten, seine Entscheidung zu erläutern?", + "antworten": [ + { + "text": "Ja, jedoch nur während der Auszeit oder beim Wechsel seiner Mannschaft.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja", + "korrekt": false + } + ] + }, + { + "frage": "Wenn zwei Spieler einer Mannschaft den Ball gleichzeitig berühren (nicht beim Block), gilt das als:", + "antworten": [ + { + "text": "Fehler (Doppelberührung).", + "korrekt": false + }, + { + "text": "eine von den drei erlaubten Berührungen.", + "korrekt": false + }, + { + "text": "zwei von den drei erlaubten Berührungen.", + "korrekt": true + } + ] + }, + { + "frage": "Darf der Block im gegnerischen Spielraum den Ball berühren?", + "antworten": [ + { + "text": "Ja, in jedem Falle.", + "korrekt": false + }, + { + "text": "Ja, aber nicht vor einem Angriffsschlag des Gegners.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Ist die Trikotnummer 66 gemäß Spielregeln erlaubt?", + "antworten": [ + { + "text": "Ja, aber 99 ist das Maximum.", + "korrekt": false + }, + { + "text": "Nein. In vielen nationalen, regionalen und Jugend-Wettbewerben gelten jedoch abweichende Regelungen, die höhere Nummern zulassen.", + "korrekt": true + }, + { + "text": "Ja, es gibt keine Regel die Nummern betreffend.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft B verzögert absichtlich das Spiel ein zweites Mal. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter spricht gegen Mannschaft B eine Verwarnung aus.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter spricht gegen den Spieler von Mannschaft B eine Verwarnung aus.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter spricht eine Bestrafung wegen Verzögerung (rote Karte - Punkt - und ggfs. Aufschlagsverlust) gegen Mannschaft B aus.", + "korrekt": true + } + ] + }, + { + "frage": "Zwei gegnerische Spieler berühren oberhalb des Netzes gleichzeitig den Ball. Darf einer der Spieler den nächsten Schlag ausführen?", + "antworten": [ + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Nein, es muss ein anderer Spieler der Mannschaft den Ball zuerst berühren.", + "korrekt": false + }, + { + "text": "Ja, aber nur unterhalb der Netzoberkante.", + "korrekt": false + } + ] + }, + { + "frage": "Darf die gegnerische Spielfeldhälfte während eines Spielzuges mit dem Fuß berührt werden?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, mit dem ganzen Fuß, der Gegner darf dabei jedoch nicht behindert werden.", + "korrekt": false + }, + { + "text": "Nur, wenn ein Teil des Fußes sich auf oder über der Mittellinie befindet und das Spiel des Gegners nicht beeinflusst wird.", + "korrekt": true + } + ] + }, + { + "frage": "Eine Mannschaft (angereist mit zehn Spielern) hat einen regulären Doppelwechsel vollzogen. Wie viele Wechsel stehen ihr im aktuellen Satz noch zu?", + "antworten": [ + { + "text": "3 Wechsel.", + "korrekt": false + }, + { + "text": "8 Wechsel.", + "korrekt": false + }, + { + "text": "4 Wechsel.", + "korrekt": true + } + ] + }, + { + "frage": "Darf der 2. Schiedsrichter den fehlerhaften Angriff eines Hinterspielers pfeifen?", + "antworten": [ + { + "text": "Nur, wenn der Trainer der gegnerischen Mannschaft ihn dazu auffordert.", + "korrekt": false + }, + { + "text": "Nein, dies darf nur der 1. Schiedsrichter.", + "korrekt": false + }, + { + "text": "Ja, dies gehört zu den Zuständigkeiten des 2. Schiedsrichters.", + "korrekt": true + } + ] + }, + { + "frage": "Was ist der Unterschied zwischen einem Mannschafts- und einem Spielkapitän?", + "antworten": [ + { + "text": "Es gibt keinen. Die beiden Begriffe sind identisch.", + "korrekt": false + }, + { + "text": "Der Spielkapitän kümmert sich während das Spieles um die Organisation seiner Mannschaft und darf mit den Schiedsrichtern und dem Gegner Regelauslegungen diskutieren.", + "korrekt": false + }, + { + "text": "Der Mannschaftskapitän vertritt seine Mannschaft vor und nach dem Spiel bei den offiziellen Tätigkeiten. Während des Spieles ist er Spielkapitän, wenn er sich auf dem Spielfeld befindet. Falls er sich nicht auf dem Spielfeld befindet, muss er oder der Trainer einen anderen Spieler als Spielkapitän benennen.", + "korrekt": true + } + ] + }, + { + "frage": "Nach einer Blockberührung wird der Ball von einem der Blockspieler im Sprung über das Netz geschmettert. Ist dies regelgerecht?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + }, + { + "text": "Nur, wenn der Blockspieler den Ball beim Gruppenblock nicht berührt hat.", + "korrekt": false + } + ] + }, + { + "frage": "Der Aufschlagspieler steht in der Aufschlagzone mit dem Rücken zum Spielfeld und küsst den Ball ausgiebig. Die anderen Teilnehmer sind spielbereit. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter genehmigt den Aufschlag mittels Pfiff und Offiziellem Handzeichen.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter bittet den Spielkapitän zu sich und verhängt eine Sanktion wegen Verzögerung gegen die Mannschaft.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter wartet, bis sich der Aufschlagspieler umgedreht hat und genehmigt dann den Aufschlag mittels Pfiff und Offiziellem Handzeichen.", + "korrekt": false + } + ] + }, + { + "frage": "Ist der Kontakt des Netzes mit den Haaren ein Fehler?", + "antworten": [ + { + "text": "Ja, die Berührung der Haare mit dem Netz ist grundsätzlich immer ein Fehler.", + "korrekt": false + }, + { + "text": "Ja, aber nur während einer Spielaktion.", + "korrekt": false + }, + { + "text": "Nein, dies muss lediglich dann als Fehler geahndet werden, wenn klar ist, dass die Berührung der Haare mit dem Netz die Möglichkeit des Gegners, den Ball zu spielen, einschränkt oder der Spielzug unterbrochen wird, weil sich das Haar im Netz verfangen hat.", + "korrekt": true + } + ] + }, + { + "frage": "Der 1. Schiedsrichter pfeift zur Genehmigung des Aufschlages von Mannschaft A. Vor der Ausführung des Aufschlages betritt ein Wechselspieler von Mannschaft B die Wechselzone. Die Mannschaft hat in diesem Spiel bislang keinen unberechtigten Antrag gestellt. Welche Aussage(n) beschreibt/beschreiben eine regelgerechte Vorgehensweise des 2. Schiedsrichters?", + "antworten": [ + { + "text": "Er pfeift und lässt diesen Wechsel sofort zu. Der Spielzug wird anschließend wiederholt.", + "korrekt": false + }, + { + "text": "Er fragt den Spieler, ob dieser wirklich jetzt wechseln möchte und ob dieser nicht noch einen Spielzug abwarten kann.", + "korrekt": false + }, + { + "text": "Er pfeift nicht und weist den Antrag zurück. Nach dem Spielzug lässt er einen unberechtigten Antrag für Mannschaft B in den Spielberichtsbogen eintragen.", + "korrekt": true + } + ] + }, + { + "frage": "Der Libero spielt den Ball im oberen Fingerzuspiel, nach Absprung in der Hinterzone, im Raum über der Vorderzone, zu einem Angreifer seiner Mannschaft. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Bei einem Angriffsschlag, bei dem die Ballberührung vollständig oberhalb der Netzoberkante erfolgt, ist auf Fehler zu entscheiden.", + "korrekt": false + }, + { + "text": "Für Vorderspieler besteht bezüglich der Höhe der Ballberührung beim Angriffsschlag, keine Einschränkung.", + "korrekt": true + }, + { + "text": "Der folgende Angriffsschlag muss abgepfiffen werden, denn jedes obere Fingerzuspiel des Liberos in der Vorderzone ist verboten.", + "korrekt": false + } + ] + }, + { + "frage": "Wer außer dem Trainer darf im Falle einer Verletzung oder vor einem Satz einen Wechsel beantragen?", + "antworten": [ + { + "text": "Im Spiel der Spielkapitän und vor einem Satz der Mannschaftskapitän. In beiden Fällen aber nur, wenn der Trainer nicht anwesend ist.", + "korrekt": true + }, + { + "text": "Der Co-Trainer.", + "korrekt": false + }, + { + "text": "Der Mannschaftskapitän, wenn er auf dem Spielfeld steht.", + "korrekt": false + } + ] + }, + { + "frage": "Wenn zwei Spieler derselben Mannschaft den Ball gleichzeitig berühren, gilt dies ...", + "antworten": [ + { + "text": "... immer als eine Berührung.", + "korrekt": false + }, + { + "text": "... beim Block als eine Berührung, sonst als zwei Berührungen.", + "korrekt": true + }, + { + "text": "... als Doppelberührung.", + "korrekt": false + } + ] + }, + { + "frage": "Wer darf während einer Spielunterbrechung mit den Schiedsrichtern sprechen, wenn es um andere Angelegenheiten als die Beantragung von Auszeiten oder Wechsel geht?", + "antworten": [ + { + "text": "Nur der Spielkapitän für die im Regelwerk festgelegten Sachverhalte.", + "korrekt": true + }, + { + "text": "Der Trainer und Spielkapitän für die im Regelwerk festgelegten Sachverhalte.", + "korrekt": false + }, + { + "text": "Nur der Trainer für die im Regelwerk festgelegten Sachverhalte.", + "korrekt": false + } + ] + }, + { + "frage": "Wo müssen sich die Wechselspieler während des Spieles aufhalten?", + "antworten": [ + { + "text": "Rechts und links vom 2. Schiedsrichter, stehend hinter den Mannschaftsbänken.", + "korrekt": false + }, + { + "text": "Nach ihrem Belieben nahe dem Spielfeld.", + "korrekt": false + }, + { + "text": "Auf der Seite des 2. Schiedsrichters, auf den Mannschaftsbänken sitzend oder in ihrer Aufwärmfläche.", + "korrekt": true + } + ] + }, + { + "frage": "Der Libero wird mittels einer Austauschaktion auf das Feld getauscht. Danach darf er ...", + "antworten": [ + { + "text": "... nur nach einer Punktestandsänderung durch einen vollendeten Spielzug erneut getauscht werden.", + "korrekt": true + }, + { + "text": "... nach Belieben lange als Vorder- und Hinterspieler auf dem Spielfeld bleiben.", + "korrekt": false + }, + { + "text": "... nach einer Entscheidung auf Doppelfehler (Spielzugwiederholung) getauscht werden.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Hinterspielerin steht auf Position VI deutlich vor der Spielerin auf Position III. Unmittelbar vor der Ausführung des Aufschlages durch die gegnerische Mannschaft springt die Hinterspielerin in die Luft. Im Moment der Ausführung des Aufschlages berührt sie den Boden nicht. Ist ihre Position regelgerecht?", + "antworten": [ + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler wird ein- und wieder ausgewechselt. Darf er im selben Satz erneut eingewechselt werden?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Nur wenn ein normaler Wechsel nicht mehr möglich ist.", + "korrekt": true + }, + { + "text": "Ja, aber nur für einen anderen Spieler der Startaufstellung.", + "korrekt": false + } + ] + }, + { + "frage": "Wer übernimmt die Aufgaben des Mannschaftskapitäns, wenn sich dieser nicht auf dem Spielfeld befindet?", + "antworten": [ + { + "text": "Der Mannschaftskapitän behält seine Aufgaben.", + "korrekt": false + }, + { + "text": "Der Spieler, der vom 1. Schiedsrichter dazu benannt wird.", + "korrekt": false + }, + { + "text": "Der Spieler, der vom Mannschaftskapitän bzw. Trainer als neuer Spielkapitän benannt wird.", + "korrekt": true + } + ] + }, + + { + "frage": "Ein Spieler berührt mit den Händen das gegnerische Spielfeld. Kein Teil seiner Handflächen berührt dabei die Mittellinie oder befindet sich über ihr. Der 2. Schiedsrichter lässt das Spiel trotzdem weiterlaufen. Ist diese Entscheidung regelgerecht?", + "antworten": [ + { + "text": "Nein, diese Entscheidung ist nicht regelgerecht. Ein Eindringen in das gegnerische Spielfeld ist nur mit einer Hand erlaubt.", + "korrekt": false + }, + { + "text": "Ja, diese Entscheidung ist regelgerecht.", + "korrekt": true + } + ] + }, + { + "frage": "Der korrekt aufschlagende Spieler der Mannschaft A schlägt den Ball in das Netz. Bei Mannschaft B wird ein Positionsfehler festgestellt. Wie muss der 1. Schiedsrichter entscheiden?", + "antworten": [ + { + "text": "Fehler der aufschlagenden Mannschaft A, denn der ins Netz fliegende Ball, welcher das Netz nicht überquert, wird als der zuerst begangene Fehler gewertet. Der Gegner erhält einen Punkt und das Aufschlagrecht.", + "korrekt": false + }, + { + "text": "Wiederholung des Aufschlages, weil beide Mannschaften gleichzeitig einen Fehler begangen haben.", + "korrekt": false + }, + { + "text": "Punkt für Mannschaft A, denn der Positionsfehler der Mannschaft B wird als der zuerst begangene gewertet.", + "korrekt": true + } + ] + }, + { + "frage": "Darf eine Mannschaft im Anschluss an zwei Auszeiten regelgerecht noch einen Wechsel beantragen?", + "antworten": [ + { + "text": "Nein, vor einem Wechsel kann nur eine Auszeit beantragt werden.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + } + ] + }, + { + "frage": "Die Spielkapitänin von Mannschaft A ist sich nicht sicher, ob die Rotationsreihenfolge ihrer Mannschaft korrekt ist. Sie bittet den 2. Schiedsrichter, die Rotation nachzuprüfen, bevor das Spiel fortgesetzt wird. Ist dies regelgerecht?", + "antworten": [ + { + "text": "Dies ist eine regelgerechte Anfrage. Allerdings darf dieses Recht nicht von einer Mannschaft über ein sinnvolles Maß hinaus missbräuchlich genutzt werden.", + "korrekt": true + }, + { + "text": "Ja, sie darf das. Wenn nötig, kann die Spielkapitänin nach jedem Spielzug fragen.", + "korrekt": false + }, + { + "text": "Nein, die Anfrage muss von der Mannschaftskapitänin gestellt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Alle Trikots einer Mannschaft müssen eine einheitliche Grundfarbe haben.", + "korrekt": false + }, + { + "text": "Das Trikot des Libero hat keine Nummer.", + "korrekt": false + }, + { + "text": "Alle Trikots einer Mannschaft müssen eine Nummer haben. Jede Nummer darf nur einmal vergeben sein.", + "korrekt": true + } + ] + }, + { + "frage": "Der aufschlagende Spieler der Mannschaft A betritt im Moment der Ausführung des Aufschlages die Grundlinie. Bei Mannschaft B wird in diesem Augenblick ein Positionsfehler festgestellt. Wie hat der 1. Schiedsrichter zu entscheiden?", + "antworten": [ + { + "text": "Fehler von Mannschaft A, denn der Fehler beim Schlagen des Aufschlages wird als der zuerst begangene gewertet. Mannschaft B erhält einen Punkt und das Aufschlagsrecht.", + "korrekt": true + }, + { + "text": "Wiederholung des Aufschlages, weil beide Mannschaften gleichzeitig einen Fehler begangen haben.", + "korrekt": false + }, + { + "text": "Punkt für Mannschaft A, denn der Positionsfehler der Mannschaft B wird als der zuerst begangene Fehler gewertet.", + "korrekt": false + } + ] + }, + { + "frage": "Disqualifikation eines Spielers. Die betreffende Mannschaft besteht aus 8 Spielern (kein Libero). Ein normaler Wechsel ist nicht mehr möglich. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Die betreffende Mannschaft verliert das Spiel.", + "korrekt": false + }, + { + "text": "Die betreffende Mannschaft verliert automatisch den Satz.", + "korrekt": false + }, + { + "text": "Die Mannschaft hat die Wahl einen ausnahmsweise Wechsel durchzuführen.", + "korrekt": true + } + ] + }, + { + "frage": "Wann darf der Libero das Spielfeld erstmals betreten?", + "antworten": [ + { + "text": "Der Libero darf erst nach dem ersten Spielzug das Spielfeld betreten.", + "korrekt": false + }, + { + "text": "Der Libero darf mit den Spielern der Startaufstellung das Spielfeld betreten.", + "korrekt": false + }, + { + "text": "Der Libero darf das Spielfeld betreten, nachdem der 2. Schiedsrichter die Startaufstellung kontrolliert und den Tausch genehmigt hat.", + "korrekt": true + } + ] + }, + { + "frage": "Dürfen Hinterspieler einen Block ausführen?", + "antworten": [ + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Ja, aber der Ball muss nach dem Block im eigenen Feld bleiben.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Hinterspieler in der Vorderzone abspringen und den Spielball über das Netz spielen?", + "antworten": [ + { + "text": "Nein, ein Hinterspieler darf in der Vorderzone generell nicht springen, wenn er den Spielball über das Netz spielt. Dabei ist es egal, ob sich der Spielball vollständig oberhalb der Netzoberkante befindet oder nicht.", + "korrekt": false + }, + { + "text": "Ja, wenn sich ein Teil des Spielballes bei der Berührung unterhalb der Netzoberkante befindet.", + "korrekt": true + }, + { + "text": "Ja, ein Hinterspieler darf den Spielball, der sich bei der Berührung vollständig oberhalb der Netzoberkante befindet, von überall aus über das Netz spielen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage(n) lässt/lassen sich durch das Sanktionenfeld bestätigen?", + "antworten": [ + { + "text": "Spieler #3 von Mannschaft B wurde im zweiten Satz beim Spielstand von 24:24 wegen ausfallenden Verhaltens mit einer roten Karte bestraft.", + "korrekt": false + }, + { + "text": "Mannschaft A hat das Spiel bereits einmal verzögert.", + "korrekt": false + }, + { + "text": "Der Trainer von Mannschaft A wurde im zweiten Satz beim Spielstand von 15:15 wegen erstmaligen unangemessenen Verhaltens mit einer roten Karte bestraft.", + "korrekt": true + } + ] + }, + { + "frage": "Die Rotationsfolge ...", + "antworten": [ + { + "text": "... wird durch die Startaufstellung der Mannschaft festgelegt.", + "korrekt": true + }, + { + "text": "... ist die Reihenfolge der Wechsel.", + "korrekt": false + }, + { + "text": "... wird dann eingehalten, wenn der Libero für jeden Hinterspieler eingetauscht wird.", + "korrekt": false + } + ] + }, + { + "frage": "Nach einer schlechten Annahme von Mannschaft A durchquert der Ball die Netzebene außerhalb der Antenne in die gegnerische Freizone. Ein anderer Spieler (#4) derselben Mannschaft spielt den Ball ins eigene Feld zurück. In welchen Fällen ist dies erlaubt?", + "antworten": [ + { + "text": "… dann, wenn der Ball vollständig unter dem Netz zurückfliegt, im Raum zwischen der Verlängerung derselben Antenne nach unten und dem Pfosten.", + "korrekt": false + }, + { + "text": "… dann, wenn der Ball zwischen Netz und Pfosten (auf derselben Seite und ohne ein Spannseil zu berühren) zurückfliegt.", + "korrekt": true + }, + { + "text": "… selbst dann, wenn Spieler #4 das Spielfeld von Mannschaft B berührt, während er den Ball zurück spielt", + "korrekt": false + } + ] + }, + { + "frage": "Welche Sanktion ist regelgerecht, wenn ein Mannschaftsmitglied eine Tätlichkeit (körperlicher Angriff) gegen Zuschauer richtet?", + "antworten": [ + { + "text": "Das Mannschaftsmitglied erhält eine Bestrafung.", + "korrekt": false + }, + { + "text": "Das Mannschaftsmitglied erhält eine Verwarnung und im Wiederholungsfall eine Hinausstellung.", + "korrekt": false + }, + { + "text": "Das Mannschaftsmitglied wird disqualifiziert.", + "korrekt": true + } + ] + }, + { + "frage": "Wo messen die Schiedsrichter die Netzhöhe?", + "antworten": [ + { + "text": "An beliebiger Stelle.", + "korrekt": false + }, + { + "text": "Nur in der Mitte des Netzes.", + "korrekt": false + }, + { + "text": "2 Meter von den Seitenlinien entfernt.", + "korrekt": false + }, + { + "text": "In der Feldmitte und über den Seitenlinien.", + "korrekt": true + } + ] + }, + { + "frage": "Während eines Spielzuges erlischt plötzlich das Licht. Wie ist zu entscheiden?", + "antworten": [ + { + "text": "Das Spiel muss sofort unterbrochen werden. Der Spielzug wird wiederholt, sobald das Licht wieder eingeschaltet ist.", + "korrekt": true + }, + { + "text": "Das Spiel muss sofort unterbrochen werden. Die Mannschaft, die den Aufschlag ausgeführt hatte, erhält einen Punkt.", + "korrekt": false + }, + { + "text": "Der Spielzug wird zu Ende gespielt, danach wird das Spiel unterbrochen.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Aussage trifft auf den Libero zu?", + "antworten": [ + { + "text": "Der Libero darf Mannschaftskapitän und/oder Spielkapitän sein.", + "korrekt": true + }, + { + "text": "Der Libero wird mit einem „L“ statt einer Trikotnummer gekennzeichnet.", + "korrekt": false + }, + { + "text": "Der Libero darf an einem regulären Wechsel teilnehmen.", + "korrekt": false + } + ] + }, + { + "frage": "Wie ist der korrekte Ablauf zu Beginn eines Wechsels?", + "antworten": [ + { + "text": "Der einzuwechselnde Spieler betritt die Wechselzone, der 2. Schiedsrichter pfeift.", + "korrekt": true + }, + { + "text": "Der Trainer macht das Handzeichen „Wechsel”, der 2. Schiedsrichter pfeift, der einzuwechselnde Spieler betritt die Wechselzone.", + "korrekt": false + }, + { + "text": "Der einzuwechselnde Spieler betritt die Wechselzone, der 1. Schiedsrichter pfeift.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler mit der Trikotnummer 10 wird für den Spieler mit der Trikotnummer 7 zuerst eingewechselt, später im Satz wieder ausgewechselt. Wie muss dieser Sachverhalt im Spielberichtsbogen kenntlich gemacht werden?", + "antworten": [ + { + "text": "Die Nummer 10 des ausgewechselten Spielers (unteres Feld) wird eingekreist.", + "korrekt": true + }, + { + "text": "Die Nummer 10 des ausgewechselten Spielers (unteres Feld) wird mit einem Sternchen versehen.", + "korrekt": false + }, + { + "text": "Die Nummer 7 des wieder eingewechselten Spielers (oberes Feld) wird eingekreist.", + "korrekt": false + } + ] + }, + { + "frage": "Der Aufschlagspieler von Mannschaft A berührt beim Schlagen des Balles die Grundlinie. Bei Mannschaft B wird ein Positionsfehler festgestellt. Welcher Schiedsrichter hat wie zu entscheiden?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter entscheidet auf Fehler des Aufschlagspielers; d. h. Punkt für Mannschaft B, welche auch das Aufschlagrecht erhält.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter entscheidet auf Fehler der annehmenden Mannschaft, d. h. Punkt für Mannschaft A, welche weiter aufschlägt.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter entscheidet auf Doppelfehler und Spielzugwiederholung.", + "korrekt": false + } + ] + }, + { + "frage": "Nach dem Pfiff zur Genehmigung des Aufschlages durch den 1. Schiedsrichter beantragt der Trainer zum zweiten Mal zu spät eine Auszeit. Der 2. Schiedsrichter pfeift. Wie ist zu verfahren?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter gewährt die Auszeit und spricht eine Sanktion wegen Verzögerung gegen die Mannschaft aus, deren Trainer den Antrag zu spät gestellt hatte.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter lehnt die Auszeit ab und spricht eine Sanktion wegen Verzögerung gegen die Mannschaft wegen des zu spät gestellten Antrages aus.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter genehmigt die Auszeit.", + "korrekt": false + } + ] + }, + { + "frage": "Welche Situation ist regelgerecht?", + "antworten": [ + { + "text": "Ein Ball fliegt gegen das Spannseil zwischen Antenne und Pfosten. Anschließend wird der Ball von einem Spieler derselben Mannschaft weitergespielt.", + "korrekt": false + }, + { + "text": "Ein Spieler berührt während seiner Blockaktion die Antenne jedoch nicht das Netz.", + "korrekt": false + }, + { + "text": "Ein Angreifer berührt während seiner Angriffsaktion das Netz außerhalb der Antenne leicht mit der Hand.", + "korrekt": true + } + ] + }, + { + "frage": "Eine Mannschaft mit zehn Spielern spielt mit einem Libero, welcher sich im zweiten Satz verletzt. Darf ein neuer Libero benannt werden?", + "antworten": [ + { + "text": "Ja, der neubenannte Libero darf aber nur solange als Libero eingesetzt werden, bis der eingetragene/verletzte Libero wieder spielfähig ist.", + "korrekt": false + }, + { + "text": "Nein, eine Neubenennung des Liberos ist erst im nächsten Satz möglich.", + "korrekt": false + }, + { + "text": "Ja, der Trainer oder Mannschaftskapitän kann den Libero als spielunfähig erklären und im Laufe des Spieles einen anderen Spieler als neuen Libero benennen.", + "korrekt": true + } + ] + }, + { + "frage": "Wie breit sind die Linien des Spielfeldes?", + "antworten": [ + { + "text": "4 cm.", + "korrekt": false + }, + { + "text": "3 cm.", + "korrekt": false + }, + { + "text": "5 cm.", + "korrekt": true + }, + { + "text": "2 cm.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Libero wurde für spielunfähig erklärt, zu welchem Zeitpunkt kann eine Neubenennung des Liberos erfolgen?", + "antworten": [ + { + "text": "Die Neubenennung kann erst zu Beginn des nächsten Satzes erfolgen.", + "korrekt": false + }, + { + "text": "Die Neubenennung kann sofort erfolgen.", + "korrekt": true + }, + { + "text": "Die Neubenennung kann erst erfolgen, wenn dem für spielunfähig erklärten Libero eine Wiederherstellungszeit von 3 Minuten gewährt wurde.", + "korrekt": false + } + ] + }, + { + "frage": "Darf ein Spieler nach einem oberen Fingerzuspiel des Liberos in der eigenen Vorderzone den Ball zum Gegner spielen?", + "antworten": [ + { + "text": "Ja, aber nur, wenn der Spieler ein Vorderspieler ist.", + "korrekt": false + }, + { + "text": "Ja, wenn die Ballberührung beim Angriffsschlag nicht vollständig oberhalb der Netzoberkante erfolgt.", + "korrekt": true + }, + { + "text": "Ja, wenn der Spieler ein Hinterspieler ist. Hinterspieler dürfen aus der Hinterzone angreifen, wobei die Höhe der Ballberührung kein Beurteilungskriterium darstellt.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A führt einen unrechtmäßigen Wechsel aus. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Mannschaft B gewinnt den Spielzug, erhält einen Punkt und das Aufschlagrecht. Der unrechtmäßige Wechsel ist rückgängig zu machen. Alle in dieser Aufstellung erzielten Punkte von Mannschaft A werden annulliert. Die Punkte von Mannschaft B bleiben gültig.", + "korrekt": true + }, + { + "text": "Der Wechsel wird als ausnahmsweiser Wechsel im Spielberichtsbogen ins Feld „Bemerkungen“ eingetragen.", + "korrekt": false + }, + { + "text": "Weil der Schreiber den unrechtmäßigen Wechsel nicht hätte zulassen dürfen, entscheidet das Schiedsgericht auf Doppelfehler.", + "korrekt": false + } + ] + }, + { + "frage": "Gehört zu den Aufgaben des 2. Schiedsrichters das Überwachen der Mittellinie?", + "antworten": [ + { + "text": "Nur auf Verlangen des 1. Schiedsrichters.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Aussage über die Tauschaktion mit Beteiligung eines Liberos ist regelgerecht?", + "antworten": [ + { + "text": "Der Libero muss nach jedem Spielzug wieder mit seinem Tauschspieler tauschen.", + "korrekt": false + }, + { + "text": "Der aktive Libero auf dem Feld darf nicht direkt mit dem zweiten Libero getauscht werden.", + "korrekt": false + }, + { + "text": "Zwischen zwei Tauschaktionen mit Beteiligung des Liberos muss mindestens ein vollendeter Spielzug mit Punktestandänderung liegen.", + "korrekt": true + } + ] + }, + { + "frage": "Wann hat der Spielkapitän das Recht, dem Schiedsrichter Fragen zu stellen?", + "antworten": [ + { + "text": "Nur während der Auszeit der eigenen Mannschaft.", + "korrekt": false + }, + { + "text": "Wenn der Ball „aus dem Spiel“ ist.", + "korrekt": true + }, + { + "text": "Nur während der Satzpausen.", + "korrekt": false + } + ] + }, + { + "frage": "Eine Mannschaft verzögert trotz Verwarnung das Spiel im nächsten Satz erneut. Wie ist zu verfahren?", + "antworten": [ + { + "text": "Bestrafung der Mannschaft wegen wiederholter Verzögerung.", + "korrekt": true + }, + { + "text": "Noch eine Verwarnung der Mannschaft wegen Verzögerung.", + "korrekt": false + }, + { + "text": "Hinausstellung eines Spielers.", + "korrekt": false + } + ] + }, + { + "frage": "In welchem Fall ist die Netzberührung eines Spielers ein Fehler?", + "antworten": [ + { + "text": "Die Spielerin berührt das Netz außerhalb der Antennen.", + "korrekt": false + }, + { + "text": "Der Ball drückt die Netzoberkante an die Arme der Blockspielerin.", + "korrekt": false + }, + { + "text": "Während ihrer Spielaktion berührt die Spielerin das Netz zwischen den Antennen.", + "korrekt": true + } + ] + }, + { + "frage": "Der Mannschaftskapitän muss auf seinem Trikot unter der Brustnummer einen Streifen von 8 x 2 cm haben. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Hat der Mannschaftskapitän keinen Streifen unter der Brustnummer auf seinem Trikot, darf er kein Mannschaftskapitän sein und der Trainer muss einen anderen Spieler als Mannschaftskapitän bennen.", + "korrekt": false + }, + { + "text": "Sobald der Mannschaftskapitän das Feld verlässt, muss der neue Spielkapitän ebenfalls einen Streifen unter seiner Brustnummer auf dem Trikot erhalten.", + "korrekt": false + }, + { + "text": "Sobald der Mannschaftskapitän das Feld verlässt, muss der Trainer einen anderen Spieler auf dem Spielfeld als Spielkapitän benennen.", + "korrekt": true + } + ] + }, + { + "frage": "Wie ist zu entscheiden, wenn nach einer gleichzeitigen Ballberührung über dem Netz durch zwei Gegenspieler der Ball auf der Seite von Mannschaft A außerhalb des Spielfeldes zu Boden geht?", + "antworten": [ + { + "text": "Die Mannschaft A gewinnt den Spielzug.", + "korrekt": true + }, + { + "text": "Weil zwei Gegenspieler den Ball gleichzeitig berühren, wird der Spielzug wiederholt.", + "korrekt": false + }, + { + "text": "Die Mannschaft B gewinnt den Spielzug.", + "korrekt": false + } + ] + }, + { + "frage": "Wie viel Zeit ist für einen Wechsel vorgesehen?", + "antworten": [ + { + "text": "Maximal dreißig Sekunden.", + "korrekt": false + }, + { + "text": "Maximal 1 Minute.", + "korrekt": false + }, + { + "text": "Keine Zeitangabe; die Wechsel sind unverzüglich durchzuführen.", + "korrekt": true + } + ] + }, + { + "frage": "Was ist bei der Überprüfung der Netzhöhe zu beachten?", + "antworten": [ + { + "text": "Das Netz darf über den Seitenlinien maximal 2 cm höher sein als in der Mitte. Die Höhe über den beiden Seitenlinien muss dabei gleich sein.", + "korrekt": true + }, + { + "text": "Das Netz muss an jeder Stelle die vorgeschriebene Höhe aufweisen.", + "korrekt": false + }, + { + "text": "Das Netz darf an jeder Stelle von der vorgeschriebenen Höhe um 2 cm nach oben abweichen.", + "korrekt": false + } + ] + }, + { + "frage": "Der Spieler #10 von Mannschaft A wiederholt nach vorangegangener Bestrafung (rote Karte) ein unangemessenes Verhalten. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Die gesamte Mannschaft A wird verwarnt.", + "korrekt": false + }, + { + "text": "Der Spieler #10 von Mannschaft wird hinausgestellt.", + "korrekt": true + }, + { + "text": "Der Spieler #10 erhält eine weitere persönliche Bestrafung.", + "korrekt": false + } + ] + }, + { + "frage": "Darf der Ball nach einer Spielaktion das Netz außerhalb der Antennen berühren?", + "antworten": [ + { + "text": "Nein, die Netzberührung durch den Ball außerhalb der Antenne ist ein Fehler.", + "korrekt": true + }, + { + "text": "Ja, denn eine Netzberührung durch den Ball ist immer erlaubt.", + "korrekt": false + }, + { + "text": "Es ist nur dann ein Fehler, wenn der Ball gleichzeitig auch die Antenne berührt.", + "korrekt": false + } + ] + }, + { + "frage": "Wer darf Auszeiten beantragen?", + "antworten": [ + { + "text": "Nur der Spielkapitän.", + "korrekt": false + }, + { + "text": "Nur der Trainer.", + "korrekt": false + }, + { + "text": "Der Trainer, wenn dieser abwesend ist, auch der Spielkapitän.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Spielerin ist die Mannschaftskapitänin?", + "antworten": [ + { + "text": "Spielerin #1.", + "korrekt": false + }, + { + "text": "Spielerin #10.", + "korrekt": false + }, + { + "text": "Spielerin #3.", + "korrekt": true + } + ] + }, + { + "frage": "Darf während eines Spielzuges die gegnerische Spielfeldhälfte mit den Händen berührt werden?", + "antworten": [ + { + "text": "Ja, solange sich ein Teil der Hand auf oder über der Mittellinie befindet.", + "korrekt": false + }, + { + "text": "Ja, das Berühren des gegnerischen Feldes ist mit jedem Körperteil oberhalb der Füße erlaubt, sofern keine Behinderung des Gegners vorliegt.", + "korrekt": true + }, + { + "text": "Nein.", + "korrekt": false + } + ] + }, + { + "frage": "Wie oft darf eine Mannschaft den Ball noch spielen, wenn eine Ballberührung beim Block stattgefunden hat?", + "antworten": [ + { + "text": "Drei Mal, denn die Blockberührung zählt nicht als eine der drei erlaubten Ballberührungen.", + "korrekt": true + }, + { + "text": "Ein oder zwei Mal in Abhängigkeit von der Zahl der Spieler, die den Ball beim Block bereits berührt haben.", + "korrekt": false + }, + { + "text": "Zwei Mal, denn die Blockberührung wird als erste der drei erlaubten Ballberührung gewertet.", + "korrekt": false + } + ] + }, + { + "frage": "Was muss vor der ersten Libero-Austauschaktion zu Beginn eines jeden Satzes beachtet werden?", + "antworten": [ + { + "text": "Nichts.", + "korrekt": false + }, + { + "text": "Der Libero muss auf einen Pfiff vom 1. Schiedsrichter warten. Dieser muss vorher kontrollieren, ob die Spieler ein einheitliches Trikot tragen. Erst nach dem Pfiff darf der Libero das Spielfeld betreten.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter erlaubt den Tausch des Liberos mit einem Grundspieler, nachdem er die Startaufstellung kontrolliert hat.", + "korrekt": true + } + ] + }, + { + "frage": "Der Mannschaftskapitän einer Mannschaft kommt nach dem Spiel zum Schreibertisch und teilt dem 1. Schiedsrichter mit, dass er vor dem Abschluss des Spielberichtsbogens einen Protest eintragen möchte, weil dieser in mehreren entscheidenden Spielsituationen technische Fehler beim Gegner nicht abgepfiffen habe. Welche Aussage(n) beschreibt/beschreiben ein regelgerechtes Vorgehen des Schiedsgerichts?", + "antworten": [ + { + "text": "Der 1. Schiedsrichter lässt die Eintragung nicht zu, weil dieser Protest erstmals nach dem Spiel angemeldet wurde.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter lässt die Eintragung zu, ergänzt aber, dass dieser Protest erstmals nach dem Spiel angemeldet wurde.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter fragt den gegnerischen Mannschaftskapitän, ob dieser mit der nachträglichen Eintragung einverstanden sei.", + "korrekt": false + } + ] + }, + + { + "frage": "Wer überprüft während des Spieles die Rotationsfolge beim Aufschlag?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter.", + "korrekt": false + }, + { + "text": "Der Schreiber.", + "korrekt": true + }, + { + "text": "Der 1. Schiedsrichter.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Spieler ist im Spielberichtsbogen nicht eingetragen. Er kommt nach Spielbeginn und legt seine gültige Spielerlizenz vor. Ist er spielberechtigt?", + "antworten": [ + { + "text": "Ja.", + "korrekt": false + }, + { + "text": "Ja, wenn der Mannschaftskapitän das Zuspätkommen vor Spielbeginn angemeldet hat.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Zuständigkeiten hat der 2. Schiedsrichter unter anderem während des Spieles?", + "antworten": [ + { + "text": "Er darf, wenn dies nötig sein sollte, Sanktionen aussprechen.", + "korrekt": false + }, + { + "text": "Er darf gehaltene Bälle während der Annahmesituation nach dem Aufschlag pfeifen, da er sowieso die Annahme beobachten muss.", + "korrekt": false + }, + { + "text": "Er pfeift fehlerhafte Netzberührungen sowie einen fehlerhaften Block oder Blockversuch.", + "korrekt": true + } + ] + }, + { + "frage": "Eine Mannschaft spielt mit einem Libero, der nicht sehr glücklich agiert. Der Trainer erklärt ihn für spielunfähig und möchte einen neuen Libero benennen. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Wenn der Austauschspieler des Liberos als Libero neubenannt werden soll, muss der Austauschspieler zuerst normal gewechselt werden.", + "korrekt": true + }, + { + "text": "Jeder Spieler, der sich nicht auf dem Spielfeld befindet, kann direkt als neuer Libero benannt werden.", + "korrekt": false + }, + { + "text": "Ein Libero kann nicht wegen \"schlecht Spielens\" neubenannt werden.", + "korrekt": false + } + ] + }, + { + "frage": "Bei der dritten Ballberührung der Mannschaft A kommt es über der Netzoberkante zur gleichzeitigen Ballberührung durch den Angreifer von Mannschaft A und den Blockspieler von Mannschaft B. Anschliessend berührt der Ball die Antenne. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Dies ist ein Fehler des Blockspielers.", + "korrekt": false + }, + { + "text": "Dies ist kein Fehler. Der Spielzug wird wiederholt.", + "korrekt": true + }, + { + "text": "Dies ist ein Fehler des Angreifers.", + "korrekt": false + } + ] + }, + { + "frage": "Was gehört zu den Aufgaben des Schiedsgerichts vor dem Spiel?", + "antworten": [ + { + "text": "Die Erinnerung der Trainer an die Fairness und das Fairplay sowie gegebenenfalls die Erläuterung der wichtigsten Regeln.", + "korrekt": false + }, + { + "text": "Die Bestätigung der Mannschaftsliste mittels Unterschrift.", + "korrekt": false + }, + { + "text": "Die Kontrolle der Spielfeldanlage und der Spielfläche inklusive der Linien, der Netzanlage und der Mannschaftsbänke.", + "korrekt": true + } + ] + }, + { + "frage": "Der Libero soll gleich zu Beginn des Satzes spielen. Welche Aussage ist regelgerecht?", + "antworten": [ + { + "text": "Der Libero darf erst nach dem ersten Spielzug das Spielfeld betreten.", + "korrekt": false + }, + { + "text": "Der Libero darf nach der Kontrolle der Startaufstellung das Spielfeld betreten.", + "korrekt": true + }, + { + "text": "Der Libero darf sofort das Spielfeld betreten.", + "korrekt": false + } + ] + }, + { + "frage": "Mannschaft A erhält eine Bestrafung wegen unangemessenen Verhaltens. Welche Aussage ist regelgerecht in Bezug auf die Eintragung im Spielberichtsbogen?", + "antworten": [ + { + "text": "Die Eintragung wird durch den Schreiber im Feld „Bemerkungen“ vorgenommen.", + "korrekt": false + }, + { + "text": "Die Eintragung erfolgt durch den Schreiber nur auf Anordnung des Schiedsrichters.", + "korrekt": false + }, + { + "text": "Der Schreiber trägt Im Feld „Sanktionen“ in die Spalte „Bestrafung“ die Spielernummer, in die Spalte „A oder B“ die Mannschaft, in die Spalte „Satz“ der Satz und in die Spalte „Spielstand“ der Spielstand aus der Sicht der bestraften Mannschaft ein. Gleichzeitig streicht er den mit dem Spielzugverlust zuerkannten Punkt beim Gegner auf der Punkteskala ab und kreist den Punkt ein.", + "korrekt": true + } + ] + }, + { + "frage": "Welche Möglichkeiten bleiben dem Verlierer der Auslosung, nachdem der Gewinner die Spielfeldseite gewählt hat?", + "antworten": [ + { + "text": "Er hat die Wahl, den ersten Aufschlag auszuführen oder anzunehmen.", + "korrekt": true + }, + { + "text": "Er muss den ersten Aufschlag ausführen.", + "korrekt": false + }, + { + "text": "Er muss den ersten Aufschlag annehmen.", + "korrekt": false + } + ] + }, + { + "frage": "Können mehrere Wechsel gleichzeitig vorgenommen werden?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, bei entsprechendem Antrag.", + "korrekt": true + }, + { + "text": "Nur bei Verletzungen.", + "korrekt": false + } + ] + }, + { + "frage": "Wo darf sich der Trainer während des Spieles aufhalten?", + "antworten": [ + { + "text": "Auf der Aufwärmfläche bei den Wechselspielern.", + "korrekt": false + }, + { + "text": "Hinter dem Schreiber, wenn er eine Information vom Spielberichtsbogen haben möchte.", + "korrekt": false + }, + { + "text": "In der Coachingzone.", + "korrekt": true + } + ] + }, + { + "frage": "In welchem Bereich muss der Aufschlagspieler während der Ausführung des Aufschlages vollständig stehen (bzw. abspringen), um keinen Fehler zu begehen?", + "antworten": [ + { + "text": "Der Aufschlagspieler muss in der Aufschlagzone stehen bzw. abspringen. Diese wird begrenzt durch die verlängerten Seitenlinien, die Grundlinie und das Ende der Freizone.", + "korrekt": true + }, + { + "text": "Der Aufschlagspieler kann im Rahmen seiner Möglichkeiten den Aufschlag hinter der Grundlinie ausführen und dabei so viel Anlauf nehmen wie er möchte.", + "korrekt": false + }, + { + "text": "Der Aufschlagspieler darf bei seinem Schlag bzw. beim Absprung die Grundlinie nicht berühren und muss im Sichtfeld des Schiedsrichters stehen. Seitlich ist die Aufschlagzone deshalb durch die Verlängerung der Mannschaftsbank und des Schiedsrichterstuhls begrenzt.", + "korrekt": false + } + ] + }, + { + "frage": "Ein Libero „verschläft“ seinen Einsatz und tauscht mit dem Spieler auf Position VI, der sich dicht an der Seitenlinie zur Mannschaftsbank befindet, direkt nach dem Aufschlag seines Mannschaftskollegen. Welche Vorgehensweise(n) des Schiedsgerichtes ist/sind korrekt?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter pfeift und entscheidet auf „Positionsfehler“. Der Gegner erhält Punkt und Aufschlag. Der Libero darf für den nächsten Spielzug nicht auf das Feld.", + "korrekt": false + }, + { + "text": "Der 1. Schiedsrichter unterbricht den Spielzug und entscheidet auf „Positionsfehler” (Punkt und Aufschlagrecht beim Gegner).", + "korrekt": true + }, + { + "text": "Das Schiedsgericht unterbricht das Spiel nicht, da der Austausch nur unwesentlich zu spät vorgenommen wurde.", + "korrekt": false + } + ] + }, + { + "frage": "Der 2. Schiedsrichter pfeift einen Fehler. Welche Aussage(n) beschreibt/beschreiben eine regelgerechte Abfolge?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter zeigt das entsprechende Handzeichen und anschließend die Mannschaft, die als nächste aufschlagen wird.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter zeigt das Handzeichen, das den Fehler beschreibt. Der 1. Schiedsrichter zeigt zur Mannschaft, die als nächste aufschlagen wird (ohne das Handzeichen des 2. Schiedsrichters zu wiederholen). Der 2. Schiedsrichter zeigt dem ersten Schiedsrichter folgend ebenfalls die Mannschaft, die als nächste aufschlagen wird.", + "korrekt": true + } + ] + }, + { + "frage": "Darf ein Libero den Ball nach Absprung in der Hinterzone über das Netz spielen?", + "antworten": [ + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, wenn sich der Ball bei der Berührung nicht vollständig oberhalb der Netzoberkante befindet.", + "korrekt": true + }, + { + "text": "Ja, immer.", + "korrekt": false + } + ] + }, + { + "frage": "In welcher Reihenfolge hat der 2. Schiedsrichter die offiziellen Handzeichen auszuführen, wenn er einen Spielzug abpfeift?", + "antworten": [ + { + "text": "Er zeigt das Zeichen für den Fehler und gleichzeitig die Seite der Mannschaft, die als nächstes Aufschlag haben wird.", + "korrekt": false + }, + { + "text": "Er zeigt zunächst die Seite der Mannschaft, die als nächstes Aufschlag haben wird, dann das Zeichen für den Fehler.", + "korrekt": false + }, + { + "text": "Er zeigt zunächst das Zeichen für den Fehler, dann (nach dem 1. Schiedsrichter) die Seite der Mannschaft, die als nächstes Aufschlag haben wird.", + "korrekt": true + } + ] + }, + { + "frage": "Muss der 1. Schiedsrichter jeden zur Spielunterbrechung führenden Regelverstoß anzeigen?", + "antworten": [ + { + "text": "Nein, Anzeigen ist nur erforderlich, wenn Unstimmigkeiten auftreten können.", + "korrekt": false + }, + { + "text": "Ja, mit den Offiziellen Handzeichen.", + "korrekt": true + }, + { + "text": "Ja, mit möglichst eindeutigen Zeichen und durch mündliche Erläuterung.", + "korrekt": false + } + ] + }, + { + "frage": "Wo darf sich der Trainer während des Spieles aufhalten?", + "antworten": [ + { + "text": "Hinter dem Schreiber, wenn er eine Information aus dem Spielberichtsbogen haben möchte.", + "korrekt": false + }, + { + "text": "Auf der Aufwärmfläche.", + "korrekt": false + }, + { + "text": "Auf der Mannschaftsbank sitzend als Nächster zum Schreiber.", + "korrekt": true + } + ] + }, + { + "frage": "Wie viele Auszeiten hat jede Mannschaft pro Satz?", + "antworten": [ + { + "text": "Jede Mannschaft hat eine Auszeit", + "korrekt": false + }, + { + "text": "Jede Mannschaft hat zwei Auszeiten.", + "korrekt": true + }, + { + "text": "Jeder Mannschaft stehen zwei Auszeiten und eine ausnahmsweise Auszeit bei Verletzungen zur Verfügung", + "korrekt": false + } + ] + }, + { + "frage": "Ist es ein Fehler, wenn ein Spieler beim Block die Antenne oberhalb des Netzes berührt?", + "antworten": [ + { + "text": "Ja, aber nur dann, wenn gleichzeitig auch das Netz berührt wird.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": false + }, + { + "text": "Ja, weil die Antennenberührung innerhalb einer Spielaktion erfolgt.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Hinterspieler beteiligt sich an einem ausgeführten Block. Welche Aussage(n) ist/sind regelgerecht?", + "antworten": [ + { + "text": "Wenn der Hinterspieler den Ball beim Block nicht selbst berührt, ist dies kein Fehler.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler, aber der 1. Schiedsrichter darf nicht pfeifen.", + "korrekt": false + }, + { + "text": "Dies ist ein Fehler, der 1. oder der 2. Schiedsrichter müssen pfeifen.", + "korrekt": true + } + ] + }, + { + "frage": "Ein Spieler, der zu Beginn des Spieles nicht anwesend und nicht in der Mannschaftsliste eingetragen war, kommt etwas später und möchte nun mitspielen. Welche Aussage(n) beschreibt/beschreiben eine regelgerechte Vorgehensweise?", + "antworten": [ + { + "text": "Der 2. Schiedsrichter prüft die Spielerlizenz und erlaubt dem Spieler, auf der Mannschaftsbank Platz zu nehmen.", + "korrekt": false + }, + { + "text": "Der 2. Schiedsrichter weist den Trainer darauf hin, dass der Spieler nicht am Spiel teilnehmen kann, da er nicht in der bereits abgeschlossenen Mannschaftliste aufgeführt ist.", + "korrekt": true + }, + { + "text": "Der 2. Schiedsrichter weist den Trainer darauf hin, dass der zu spät gekommene Spieler nur ausnahmsweise (im Falle einer Verletzung) eingewechselt werden darf.", + "korrekt": false + } + ] + }, + { + "frage": "Wie lange behält eine Hinausstellung gemäß Regelwerk die Gültigkeit?", + "antworten": [ + { + "text": "Eine Hinausstellung bleibt unbefristet bis zum Ende des Spieles gültig.", + "korrekt": false + }, + { + "text": "Ein Hinausstellung eines Mannschaftsmitgliedes gilt bis zum Ende des Satzes.", + "korrekt": true + }, + { + "text": "Eine Hinausstellung eines Mannschaftsmitgliedes gilt für eine komplette Rotation der Mannschaft.", + "korrekt": false + } + ] + }, + { + "frage": "Darf der Trainer nach der Aufstellung seiner Mannschaft fragen?", + "antworten": [ + { + "text": "Nur in der Auszeit.", + "korrekt": false + }, + { + "text": "Nein.", + "korrekt": true + }, + { + "text": "Ja", + "korrekt": false + } + ] + } +] \ No newline at end of file diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..4ad9420 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,18 @@ +{ + "name": "trainer2", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs", + "dependencies": { + "cookie-parser": "^1.4.7", + "cors": "^2.8.5", + "express": "^5.1.0" + } +} diff --git a/backend/server.js b/backend/server.js new file mode 100644 index 0000000..b1154d4 --- /dev/null +++ b/backend/server.js @@ -0,0 +1,32 @@ +const express = require("express"); +const fs = require("fs"); +const path = require("path"); +const cors = require("cors"); +const cookieParser = require("cookie-parser"); + +const app = express(); +const PORT = 3000; + +//app.use(cors({ origin: "https://schiri.marc-wieland.de", credentials: true })); +app.use(cookieParser()); +app.use(express.json()); + + +app.get("/api/questions/:mode", (req, res) => { + const mode = req.params.mode?.toLowerCase(); + if (!["d", "c"].includes(mode)) { + return res.status(400).json({ error: "Ungültiger Modus. Nur 'd' oder 'c' erlaubt." }); + } + + const filePath = path.join(__dirname, `${mode}_condensed.json`); + try { + const data = fs.readFileSync(filePath, "utf8"); + res.json(JSON.parse(data)); + } catch (err) { + res.status(500).json({ error: "Fehler beim Laden der Fragen." }); + } +}); + +app.listen(PORT, () => { + console.log(`📡 Backend läuft auf http://localhost:${PORT}`); +}); diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f333cb9 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3.8' + +services: + backend: + build: + context: ./backend + container_name: schiri-backend + ports: + - "3000:3000" + restart: unless-stopped + + frontend: + build: + context: ./frontend + container_name: schiri-frontend + ports: + - "5001:80" + restart: unless-stopped + depends_on: + - backend diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..c48d821 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,12 @@ +FROM node:20 AS builder + +WORKDIR /app +COPY package*.json ./ +RUN npm install + +COPY . . +RUN npm run build + +FROM nginx:alpine +COPY --from=builder /app/dist /usr/share/nginx/html +COPY nginx.conf /etc/nginx/conf.d/default.conf diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..7059a96 --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,12 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js new file mode 100644 index 0000000..cee1e2c --- /dev/null +++ b/frontend/eslint.config.js @@ -0,0 +1,29 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{js,jsx}'], + extends: [ + js.configs.recommended, + reactHooks.configs['recommended-latest'], + reactRefresh.configs.vite, + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + rules: { + 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }], + }, + }, +]) diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..fb3e5aa --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,13 @@ + + + + + + + Schiri V2 + + +
+ + + diff --git a/frontend/nginx.conf b/frontend/nginx.conf new file mode 100644 index 0000000..1e4f2b5 --- /dev/null +++ b/frontend/nginx.conf @@ -0,0 +1,17 @@ +server { + listen 80; + server_name localhost; + + root /usr/share/nginx/html; + index index.html; + + location / { + try_files $uri /index.html; + } + + location ~* \.(?:ico|css|js|gif|jpe?g|png|woff2?|ttf|svg|eot|otf)$ { + expires 6M; + access_log off; + add_header Cache-Control "public"; + } +} diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..81ca58f --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,3440 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.0.0", + "dependencies": { + "@tailwindcss/vite": "^4.1.11", + "react": "^19.1.0", + "react-dom": "^19.1.0" + }, + "devDependencies": { + "@eslint/js": "^9.30.1", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@vitejs/plugin-react": "^4.6.0", + "autoprefixer": "^10.4.21", + "eslint": "^9.30.1", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "globals": "^16.3.0", + "postcss": "^8.5.6", + "tailwindcss": "^4.1.11", + "vite": "^7.0.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz", + "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz", + "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz", + "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz", + "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz", + "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz", + "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz", + "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz", + "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz", + "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz", + "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz", + "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz", + "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz", + "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz", + "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz", + "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz", + "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz", + "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz", + "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz", + "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz", + "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz", + "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz", + "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz", + "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz", + "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz", + "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz", + "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz", + "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", + "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.1.tgz", + "integrity": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.1.tgz", + "integrity": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.1.tgz", + "integrity": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.1.tgz", + "integrity": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.1.tgz", + "integrity": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.1.tgz", + "integrity": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.1.tgz", + "integrity": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.1.tgz", + "integrity": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.1.tgz", + "integrity": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.1.tgz", + "integrity": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.1.tgz", + "integrity": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.1.tgz", + "integrity": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.1.tgz", + "integrity": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.1.tgz", + "integrity": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.1.tgz", + "integrity": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.1.tgz", + "integrity": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.1.tgz", + "integrity": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.1.tgz", + "integrity": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.1.tgz", + "integrity": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.1.tgz", + "integrity": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.11.tgz", + "integrity": "sha512-yzhzuGRmv5QyU9qLNg4GTlYI6STedBWRE7NjxP45CsFYYq9taI0zJXZBMqIC/c8fViNLhmrbpSFS57EoxUmD6Q==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.30.1", + "magic-string": "^0.30.17", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.11" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.11.tgz", + "integrity": "sha512-Q69XzrtAhuyfHo+5/HMgr1lAiPP/G40OMFAnws7xcFEYqcypZmdW8eGXaOUIeOl1dzPJBPENXgbjsOyhg2nkrg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.11", + "@tailwindcss/oxide-darwin-arm64": "4.1.11", + "@tailwindcss/oxide-darwin-x64": "4.1.11", + "@tailwindcss/oxide-freebsd-x64": "4.1.11", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.11", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.11", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.11", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.11", + "@tailwindcss/oxide-linux-x64-musl": "4.1.11", + "@tailwindcss/oxide-wasm32-wasi": "4.1.11", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.11", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.11" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.11.tgz", + "integrity": "sha512-3IfFuATVRUMZZprEIx9OGDjG3Ou3jG4xQzNTvjDoKmU9JdmoCohQJ83MYd0GPnQIu89YoJqvMM0G3uqLRFtetg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.11.tgz", + "integrity": "sha512-ESgStEOEsyg8J5YcMb1xl8WFOXfeBmrhAwGsFxxB2CxY9evy63+AtpbDLAyRkJnxLy2WsD1qF13E97uQyP1lfQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.11.tgz", + "integrity": "sha512-EgnK8kRchgmgzG6jE10UQNaH9Mwi2n+yw1jWmof9Vyg2lpKNX2ioe7CJdf9M5f8V9uaQxInenZkOxnTVL3fhAw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.11.tgz", + "integrity": "sha512-xdqKtbpHs7pQhIKmqVpxStnY1skuNh4CtbcyOHeX1YBE0hArj2romsFGb6yUmzkq/6M24nkxDqU8GYrKrz+UcA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.11.tgz", + "integrity": "sha512-ryHQK2eyDYYMwB5wZL46uoxz2zzDZsFBwfjssgB7pzytAeCCa6glsiJGjhTEddq/4OsIjsLNMAiMlHNYnkEEeg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.11.tgz", + "integrity": "sha512-mYwqheq4BXF83j/w75ewkPJmPZIqqP1nhoghS9D57CLjsh3Nfq0m4ftTotRYtGnZd3eCztgbSPJ9QhfC91gDZQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.11.tgz", + "integrity": "sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.11.tgz", + "integrity": "sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.11.tgz", + "integrity": "sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.11.tgz", + "integrity": "sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@emnapi/wasi-threads": "^1.0.2", + "@napi-rs/wasm-runtime": "^0.2.11", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.11.tgz", + "integrity": "sha512-UgKYx5PwEKrac3GPNPf6HVMNhUIGuUh4wlDFR2jYYdkX6pL/rn73zTq/4pzUm8fOjAn5L8zDeHp9iXmUGOXZ+w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.11.tgz", + "integrity": "sha512-YfHoggn1j0LK7wR82TOucWc5LDCguHnoS879idHekmmiR7g9HUtMw9MI0NHatS28u/Xlkfi9w5RJWgz2Dl+5Qg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.11.tgz", + "integrity": "sha512-RHYhrR3hku0MJFRV+fN2gNbDNEh3dwKvY8XJvTxCSXeMOsCRSr+uKvDWQcbizrHgjML6ZmTE5OwMrl5wKcujCw==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.11", + "@tailwindcss/oxide": "4.1.11", + "tailwindcss": "4.1.11" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", + "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", + "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.190", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.190.tgz", + "integrity": "sha512-k4McmnB2091YIsdCgkS0fMVMPOJgxl93ltFzaryXqwip1AaxeDqKCGLxkXODDA5Ab/D+tV5EL5+aTx76RvLRxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", + "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/esbuild": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz", + "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.8", + "@esbuild/android-arm": "0.25.8", + "@esbuild/android-arm64": "0.25.8", + "@esbuild/android-x64": "0.25.8", + "@esbuild/darwin-arm64": "0.25.8", + "@esbuild/darwin-x64": "0.25.8", + "@esbuild/freebsd-arm64": "0.25.8", + "@esbuild/freebsd-x64": "0.25.8", + "@esbuild/linux-arm": "0.25.8", + "@esbuild/linux-arm64": "0.25.8", + "@esbuild/linux-ia32": "0.25.8", + "@esbuild/linux-loong64": "0.25.8", + "@esbuild/linux-mips64el": "0.25.8", + "@esbuild/linux-ppc64": "0.25.8", + "@esbuild/linux-riscv64": "0.25.8", + "@esbuild/linux-s390x": "0.25.8", + "@esbuild/linux-x64": "0.25.8", + "@esbuild/netbsd-arm64": "0.25.8", + "@esbuild/netbsd-x64": "0.25.8", + "@esbuild/openbsd-arm64": "0.25.8", + "@esbuild/openbsd-x64": "0.25.8", + "@esbuild/openharmony-arm64": "0.25.8", + "@esbuild/sunos-x64": "0.25.8", + "@esbuild/win32-arm64": "0.25.8", + "@esbuild/win32-ia32": "0.25.8", + "@esbuild/win32-x64": "0.25.8" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz", + "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.31.0", + "@eslint/plugin-kit": "^0.3.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", + "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", + "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jiti": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz", + "integrity": "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rollup": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.45.1.tgz", + "integrity": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.45.1", + "@rollup/rollup-android-arm64": "4.45.1", + "@rollup/rollup-darwin-arm64": "4.45.1", + "@rollup/rollup-darwin-x64": "4.45.1", + "@rollup/rollup-freebsd-arm64": "4.45.1", + "@rollup/rollup-freebsd-x64": "4.45.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.45.1", + "@rollup/rollup-linux-arm-musleabihf": "4.45.1", + "@rollup/rollup-linux-arm64-gnu": "4.45.1", + "@rollup/rollup-linux-arm64-musl": "4.45.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.45.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-musl": "4.45.1", + "@rollup/rollup-linux-s390x-gnu": "4.45.1", + "@rollup/rollup-linux-x64-gnu": "4.45.1", + "@rollup/rollup-linux-x64-musl": "4.45.1", + "@rollup/rollup-win32-arm64-msvc": "4.45.1", + "@rollup/rollup-win32-ia32-msvc": "4.45.1", + "@rollup/rollup-win32-x64-msvc": "4.45.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.11.tgz", + "integrity": "sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", + "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.6", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.40.0", + "tinyglobby": "^0.2.14" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..9079e0a --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,31 @@ +{ + "name": "frontend", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@tailwindcss/vite": "^4.1.11", + "react": "^19.1.0", + "react-dom": "^19.1.0" + }, + "devDependencies": { + "@eslint/js": "^9.30.1", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@vitejs/plugin-react": "^4.6.0", + "autoprefixer": "^10.4.21", + "eslint": "^9.30.1", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "globals": "^16.3.0", + "postcss": "^8.5.6", + "tailwindcss": "^4.1.11", + "vite": "^7.0.4" + } +} diff --git a/frontend/public/vite.svg b/frontend/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/frontend/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/App.css b/frontend/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/frontend/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx new file mode 100644 index 0000000..3c91659 --- /dev/null +++ b/frontend/src/App.jsx @@ -0,0 +1,27 @@ +import { useEffect, useState } from "react"; +import LoginPage from "./pages/LoginPage"; +import ModeSelectPage from "./pages/ModeSelectPage"; +import QuizPage from "./pages/QuizPage"; + +function App() { + const [authenticated, setAuthenticated] = useState(false); + const [mode, setMode] = useState(null); + + useEffect(() => { + const isAuth = sessionStorage.getItem("authenticated") === "true"; + const savedMode = sessionStorage.getItem("mode"); + if (isAuth) setAuthenticated(true); + if (savedMode) setMode(savedMode); + }, []); + + const handleModeSelect = (newMode) => { + sessionStorage.setItem("mode", newMode); + setMode(newMode); + }; + + if (!authenticated) return setAuthenticated(true)} />; + if (!mode) return ; + return setMode(null)} />; +} + +export default App; diff --git a/frontend/src/assets/react.svg b/frontend/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/frontend/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/components/QuestionCard.jsx b/frontend/src/components/QuestionCard.jsx new file mode 100644 index 0000000..8528ab6 --- /dev/null +++ b/frontend/src/components/QuestionCard.jsx @@ -0,0 +1,86 @@ +import { useState } from "react"; + +export default function QuestionCard({ frage, antworten, onNext, isLast }) { + const [selected, setSelected] = useState([]); + const [checked, setChecked] = useState(false); // wurde „Überprüfen“ gedrückt + + const toggleAntwort = (idx) => { + if (checked) return; // Sperre Änderungen nach Überprüfung + + setSelected((prev) => + prev.includes(idx) + ? prev.filter((i) => i !== idx) + : [...prev, idx] + ); + }; + + const isCorrect = (idx) => antworten[idx].korrekt; + const wasSelected = (idx) => selected.includes(idx); + + const handleCheck = () => setChecked(true); + + const handleNext = () => { + setSelected([]); + setChecked(false); + onNext(); + }; + + return ( +
+

{frage}

+
+ {antworten.map((antwort, idx) => { + const korrekt = isCorrect(idx); + const gewählt = wasSelected(idx); + let style = ""; + + if (checked) { + if (korrekt && gewählt) style = "bg-green-100 dark:bg-green-800 border-green-500"; + else if (!korrekt && gewählt) style = "bg-red-100 dark:bg-red-800 border-red-500"; + else if (korrekt && !gewählt) style = "bg-yellow-100 dark:bg-yellow-800 border-yellow-500"; + else style = "bg-gray-50 dark:bg-gray-700"; + } else { + style = gewählt + ? "bg-blue-100 dark:bg-blue-800 border-blue-500" + : "bg-gray-50 dark:bg-gray-700"; + } + + return ( + + ); + })} +
+ +
+ {!checked ? ( + + ) : ( + + )} +
+
+ ); +} diff --git a/frontend/src/index.css b/frontend/src/index.css new file mode 100644 index 0000000..7ce520d --- /dev/null +++ b/frontend/src/index.css @@ -0,0 +1,5 @@ +@import "tailwindcss"; + +body { + @apply bg-gray-100 text-gray-900 dark:bg-gray-900 dark:text-gray-100; +} diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx new file mode 100644 index 0000000..54b39dd --- /dev/null +++ b/frontend/src/main.jsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.jsx' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root')).render( + + + , +) diff --git a/frontend/src/pages/LoginPage.jsx b/frontend/src/pages/LoginPage.jsx new file mode 100644 index 0000000..614093b --- /dev/null +++ b/frontend/src/pages/LoginPage.jsx @@ -0,0 +1,47 @@ +import { useState } from "react"; + +export default function LoginPage({ onSuccess }) { + const [password, setPassword] = useState(""); + const [error, setError] = useState(""); + + const handleLogin = () => { + if (password === "volleyballtgl") { + sessionStorage.setItem("authenticated", "true"); + onSuccess(); + } else { + setError("Falsches Passwort"); + } + }; + + const handleKeyDown = (e) => { + if (e.key === "Enter") { + handleLogin(); + } + }; + + return ( +
+
+

Zugang

+ { + setPassword(e.target.value); + setError(""); + }} + onKeyDown={handleKeyDown} + placeholder="Passwort eingeben" + className="w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded mb-3 bg-white dark:bg-gray-700 text-black dark:text-white placeholder-gray-400 dark:placeholder-gray-300" + /> + {error &&

{error}

} + +
+
+ ); +} diff --git a/frontend/src/pages/ModeSelectPage.jsx b/frontend/src/pages/ModeSelectPage.jsx new file mode 100644 index 0000000..d8c43c2 --- /dev/null +++ b/frontend/src/pages/ModeSelectPage.jsx @@ -0,0 +1,24 @@ +export default function ModeSelectPage({ onSelect }) { + return ( +
+
+

Wähle deinen Modus

+

D- oder C-Lizenz?

+
+ + +
+
+
+ ); +} diff --git a/frontend/src/pages/QuizPage.jsx b/frontend/src/pages/QuizPage.jsx new file mode 100644 index 0000000..0c9dc64 --- /dev/null +++ b/frontend/src/pages/QuizPage.jsx @@ -0,0 +1,163 @@ +import { useEffect, useState } from "react"; +import QuestionCard from "../components/QuestionCard"; +import ResultPage from "./ResultPage"; + +export default function QuizPage({ mode, onBack, customQuestions }) { + const [questions, setQuestions] = useState([]); + const [currentIdx, setCurrentIdx] = useState(0); + const [score, setScore] = useState(0); + const [wrongQuestions, setWrongQuestions] = useState([]); + const [showResult, setShowResult] = useState(false); + const [refreshKey, setRefreshKey] = useState(0); + const [answerStatus, setAnswerStatus] = useState([]); // "correct" | "wrong" | undefined + +useEffect(() => { + const savedQuestions = sessionStorage.getItem("quiz_questions"); + const savedIndex = sessionStorage.getItem("quiz_current_idx"); + const savedScore = sessionStorage.getItem("quiz_score"); + const savedWrong = sessionStorage.getItem("quiz_wrong_questions"); + const savedStatus = sessionStorage.getItem("quiz_answer_status"); + + if (savedQuestions) { + setQuestions(JSON.parse(savedQuestions)); + setCurrentIdx(parseInt(savedIndex) || 0); + setScore(parseInt(savedScore) || 0); + setWrongQuestions(JSON.parse(savedWrong) || []); + setAnswerStatus(JSON.parse(savedStatus) || []); + return; + } + + if (customQuestions) { + setQuestions(customQuestions); + sessionStorage.setItem("quiz_questions", JSON.stringify(customQuestions)); + } else { + fetch(`http://localhost:3000/api/questions/${mode}`) + .then((res) => res.json()) + .then((data) => { + const shuffled = data.sort(() => 0.5 - Math.random()).slice(0, 30); + setQuestions(shuffled); + sessionStorage.setItem("quiz_questions", JSON.stringify(shuffled)); + }); + } + }, [mode, customQuestions, refreshKey]); + + const handleAnswer = (isCorrect, currentQuestion) => { + const index = currentIdx; + + if (isCorrect) { + setScore((prev) => { + const newScore = prev + 1; + sessionStorage.setItem("quiz_score", newScore); + return newScore; + }); + } else { + setWrongQuestions((prev) => { + const updated = [...prev, currentQuestion]; + sessionStorage.setItem("quiz_wrong_questions", JSON.stringify(updated)); + return updated; + }); + } + + // Update and persist answer status + setAnswerStatus((prev) => { + const updated = [...prev]; + updated[index] = isCorrect ? "correct" : "wrong"; + sessionStorage.setItem("quiz_answer_status", JSON.stringify(updated)); + return updated; + }); + }; + + const handleNext = () => { + const nextIndex = currentIdx + 1; + if (nextIndex < questions.length) { + setCurrentIdx(nextIndex); + sessionStorage.setItem("quiz_current_idx", nextIndex); + } else { + setShowResult(true); + } + }; + + const handleReset = () => { + sessionStorage.removeItem("quiz_questions"); + sessionStorage.removeItem("quiz_current_idx"); + sessionStorage.removeItem("quiz_score"); + sessionStorage.removeItem("quiz_wrong_questions"); + sessionStorage.removeItem("quiz_answer_status"); + }; + + if (showResult) { + return ( + { + handleReset(); + setScore(0); + setWrongQuestions([]); + setCurrentIdx(0); + setShowResult(false); + setQuestions([]); + setAnswerStatus([]); + setRefreshKey((prev) => prev + 1); + }} + onRepeatWrong={() => { + handleReset(); + setScore(0); + setCurrentIdx(0); + setShowResult(false); + setQuestions(wrongQuestions); + setAnswerStatus([]); + setWrongQuestions([]); + }} + onBack={onBack} + /> + ); + } + + const currentQuestion = questions[currentIdx]; + if (!currentQuestion) return

Fragen werden geladen...

; + + return ( +
+
+

+ Frage {currentIdx + 1} / {questions.length} +

+
+ +
+
+ + {/* Segmentierter Balken */} +
+ {questions.map((_, idx) => { + let bg = "bg-gray-300"; + if (answerStatus[idx] === "correct") bg = "bg-green-500"; + else if (answerStatus[idx] === "wrong") bg = "bg-red-500"; + + return ( +
+ ); + })} +
+ + handleAnswer(correct, currentQuestion)} + isLast={currentIdx === questions.length - 1} + /> +
+ ); +} diff --git a/frontend/src/pages/ResultPage.jsx b/frontend/src/pages/ResultPage.jsx new file mode 100644 index 0000000..4e7e3ac --- /dev/null +++ b/frontend/src/pages/ResultPage.jsx @@ -0,0 +1,68 @@ +export default function ResultPage({ + score, + total, + onRestart, + onRepeatWrong, + onBack, +}) { + const wrongFromSession = JSON.parse(sessionStorage.getItem("quiz_wrong_questions")) || []; + const correctCount = total - wrongFromSession.length; + + return ( +
+
+

Auswertung

+

+ Du hast {correctCount} von {total} Fragen korrekt beantwortet. +

+ + {wrongFromSession.length > 0 ? ( + <> +

+ Du hast {wrongFromSession.length} Frage(n) falsch beantwortet. + Möchtest du sie nochmal versuchen? +

+
+ + + +
+ + ) : ( + <> +

+ Mega! Du hast alle Fragen korrekt beantwortet! +

+ + + + )} +
+
+ ); +} diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js new file mode 100644 index 0000000..904daed --- /dev/null +++ b/frontend/tailwind.config.js @@ -0,0 +1,10 @@ +export default { + darkMode: 'class', + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} diff --git a/frontend/vite.config.js b/frontend/vite.config.js new file mode 100644 index 0000000..40659f0 --- /dev/null +++ b/frontend/vite.config.js @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite' +import tailwindcss from '@tailwindcss/vite'; +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react(), tailwindcss()], +}) diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..3fcd096 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,858 @@ +{ + "name": "trainer2", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", + "license": "MIT", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + } + } +} diff --git a/node_modules/accepts/HISTORY.md b/node_modules/accepts/HISTORY.md new file mode 100644 index 0000000..627a81d --- /dev/null +++ b/node_modules/accepts/HISTORY.md @@ -0,0 +1,250 @@ +2.0.0 / 2024-08-31 +================== + + * Drop node <18 support + * deps: mime-types@^3.0.0 + * deps: negotiator@^1.0.0 + +1.3.8 / 2022-02-02 +================== + + * deps: mime-types@~2.1.34 + - deps: mime-db@~1.51.0 + * deps: negotiator@0.6.3 + +1.3.7 / 2019-04-29 +================== + + * deps: negotiator@0.6.2 + - Fix sorting charset, encoding, and language with extra parameters + +1.3.6 / 2019-04-28 +================== + + * deps: mime-types@~2.1.24 + - deps: mime-db@~1.40.0 + +1.3.5 / 2018-02-28 +================== + + * deps: mime-types@~2.1.18 + - deps: mime-db@~1.33.0 + +1.3.4 / 2017-08-22 +================== + + * deps: mime-types@~2.1.16 + - deps: mime-db@~1.29.0 + +1.3.3 / 2016-05-02 +================== + + * deps: mime-types@~2.1.11 + - deps: mime-db@~1.23.0 + * deps: negotiator@0.6.1 + - perf: improve `Accept` parsing speed + - perf: improve `Accept-Charset` parsing speed + - perf: improve `Accept-Encoding` parsing speed + - perf: improve `Accept-Language` parsing speed + +1.3.2 / 2016-03-08 +================== + + * deps: mime-types@~2.1.10 + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + - deps: mime-db@~1.22.0 + +1.3.1 / 2016-01-19 +================== + + * deps: mime-types@~2.1.9 + - deps: mime-db@~1.21.0 + +1.3.0 / 2015-09-29 +================== + + * deps: mime-types@~2.1.7 + - deps: mime-db@~1.19.0 + * deps: negotiator@0.6.0 + - Fix including type extensions in parameters in `Accept` parsing + - Fix parsing `Accept` parameters with quoted equals + - Fix parsing `Accept` parameters with quoted semicolons + - Lazy-load modules from main entry point + - perf: delay type concatenation until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove closures getting spec properties + - perf: remove a closure from media type parsing + - perf: remove property delete from media type parsing + +1.2.13 / 2015-09-06 +=================== + + * deps: mime-types@~2.1.6 + - deps: mime-db@~1.18.0 + +1.2.12 / 2015-07-30 +=================== + + * deps: mime-types@~2.1.4 + - deps: mime-db@~1.16.0 + +1.2.11 / 2015-07-16 +=================== + + * deps: mime-types@~2.1.3 + - deps: mime-db@~1.15.0 + +1.2.10 / 2015-07-01 +=================== + + * deps: mime-types@~2.1.2 + - deps: mime-db@~1.14.0 + +1.2.9 / 2015-06-08 +================== + + * deps: mime-types@~2.1.1 + - perf: fix deopt during mapping + +1.2.8 / 2015-06-07 +================== + + * deps: mime-types@~2.1.0 + - deps: mime-db@~1.13.0 + * perf: avoid argument reassignment & argument slice + * perf: avoid negotiator recursive construction + * perf: enable strict mode + * perf: remove unnecessary bitwise operator + +1.2.7 / 2015-05-10 +================== + + * deps: negotiator@0.5.3 + - Fix media type parameter matching to be case-insensitive + +1.2.6 / 2015-05-07 +================== + + * deps: mime-types@~2.0.11 + - deps: mime-db@~1.9.1 + * deps: negotiator@0.5.2 + - Fix comparing media types with quoted values + - Fix splitting media types with quoted commas + +1.2.5 / 2015-03-13 +================== + + * deps: mime-types@~2.0.10 + - deps: mime-db@~1.8.0 + +1.2.4 / 2015-02-14 +================== + + * Support Node.js 0.6 + * deps: mime-types@~2.0.9 + - deps: mime-db@~1.7.0 + * deps: negotiator@0.5.1 + - Fix preference sorting to be stable for long acceptable lists + +1.2.3 / 2015-01-31 +================== + + * deps: mime-types@~2.0.8 + - deps: mime-db@~1.6.0 + +1.2.2 / 2014-12-30 +================== + + * deps: mime-types@~2.0.7 + - deps: mime-db@~1.5.0 + +1.2.1 / 2014-12-30 +================== + + * deps: mime-types@~2.0.5 + - deps: mime-db@~1.3.1 + +1.2.0 / 2014-12-19 +================== + + * deps: negotiator@0.5.0 + - Fix list return order when large accepted list + - Fix missing identity encoding when q=0 exists + - Remove dynamic building of Negotiator class + +1.1.4 / 2014-12-10 +================== + + * deps: mime-types@~2.0.4 + - deps: mime-db@~1.3.0 + +1.1.3 / 2014-11-09 +================== + + * deps: mime-types@~2.0.3 + - deps: mime-db@~1.2.0 + +1.1.2 / 2014-10-14 +================== + + * deps: negotiator@0.4.9 + - Fix error when media type has invalid parameter + +1.1.1 / 2014-09-28 +================== + + * deps: mime-types@~2.0.2 + - deps: mime-db@~1.1.0 + * deps: negotiator@0.4.8 + - Fix all negotiations to be case-insensitive + - Stable sort preferences of same quality according to client order + +1.1.0 / 2014-09-02 +================== + + * update `mime-types` + +1.0.7 / 2014-07-04 +================== + + * Fix wrong type returned from `type` when match after unknown extension + +1.0.6 / 2014-06-24 +================== + + * deps: negotiator@0.4.7 + +1.0.5 / 2014-06-20 +================== + + * fix crash when unknown extension given + +1.0.4 / 2014-06-19 +================== + + * use `mime-types` + +1.0.3 / 2014-06-11 +================== + + * deps: negotiator@0.4.6 + - Order by specificity when quality is the same + +1.0.2 / 2014-05-29 +================== + + * Fix interpretation when header not in request + * deps: pin negotiator@0.4.5 + +1.0.1 / 2014-01-18 +================== + + * Identity encoding isn't always acceptable + * deps: negotiator@~0.4.0 + +1.0.0 / 2013-12-27 +================== + + * Genesis diff --git a/node_modules/accepts/LICENSE b/node_modules/accepts/LICENSE new file mode 100644 index 0000000..0616607 --- /dev/null +++ b/node_modules/accepts/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +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. diff --git a/node_modules/accepts/README.md b/node_modules/accepts/README.md new file mode 100644 index 0000000..f3f10c4 --- /dev/null +++ b/node_modules/accepts/README.md @@ -0,0 +1,140 @@ +# accepts + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). +Extracted from [koa](https://www.npmjs.com/package/koa) for general use. + +In addition to negotiator, it allows: + +- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` + as well as `('text/html', 'application/json')`. +- Allows type shorthands such as `json`. +- Returns `false` when no types match +- Treats non-existent headers as `*` + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install accepts +``` + +## API + +```js +var accepts = require('accepts') +``` + +### accepts(req) + +Create a new `Accepts` object for the given `req`. + +#### .charset(charsets) + +Return the first accepted charset. If nothing in `charsets` is accepted, +then `false` is returned. + +#### .charsets() + +Return the charsets that the request accepts, in the order of the client's +preference (most preferred first). + +#### .encoding(encodings) + +Return the first accepted encoding. If nothing in `encodings` is accepted, +then `false` is returned. + +#### .encodings() + +Return the encodings that the request accepts, in the order of the client's +preference (most preferred first). + +#### .language(languages) + +Return the first accepted language. If nothing in `languages` is accepted, +then `false` is returned. + +#### .languages() + +Return the languages that the request accepts, in the order of the client's +preference (most preferred first). + +#### .type(types) + +Return the first accepted type (and it is returned as the same text as what +appears in the `types` array). If nothing in `types` is accepted, then `false` +is returned. + +The `types` array can contain full MIME types or file extensions. Any value +that is not a full MIME type is passed to `require('mime-types').lookup`. + +#### .types() + +Return the types that the request accepts, in the order of the client's +preference (most preferred first). + +## Examples + +### Simple type negotiation + +This simple example shows how to use `accepts` to return a different typed +respond body based on what the client wants to accept. The server lists it's +preferences in order and will get back the best match between the client and +server. + +```js +var accepts = require('accepts') +var http = require('http') + +function app (req, res) { + var accept = accepts(req) + + // the order of this list is significant; should be server preferred order + switch (accept.type(['json', 'html'])) { + case 'json': + res.setHeader('Content-Type', 'application/json') + res.write('{"hello":"world!"}') + break + case 'html': + res.setHeader('Content-Type', 'text/html') + res.write('hello, world!') + break + default: + // the fallback is text/plain, so no need to specify it above + res.setHeader('Content-Type', 'text/plain') + res.write('hello, world!') + break + } + + res.end() +} + +http.createServer(app).listen(3000) +``` + +You can test this out with the cURL program: +```sh +curl -I -H'Accept: text/html' http://localhost:3000/ +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master +[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master +[github-actions-ci-image]: https://badgen.net/github/checks/jshttp/accepts/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/accepts/actions/workflows/ci.yml +[node-version-image]: https://badgen.net/npm/node/accepts +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/accepts +[npm-url]: https://npmjs.org/package/accepts +[npm-version-image]: https://badgen.net/npm/v/accepts diff --git a/node_modules/accepts/index.js b/node_modules/accepts/index.js new file mode 100644 index 0000000..4f2840c --- /dev/null +++ b/node_modules/accepts/index.js @@ -0,0 +1,238 @@ +/*! + * accepts + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var Negotiator = require('negotiator') +var mime = require('mime-types') + +/** + * Module exports. + * @public + */ + +module.exports = Accepts + +/** + * Create a new Accepts object for the given req. + * + * @param {object} req + * @public + */ + +function Accepts (req) { + if (!(this instanceof Accepts)) { + return new Accepts(req) + } + + this.headers = req.headers + this.negotiator = new Negotiator(req) +} + +/** + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single mime type string + * such as "application/json", the extension name + * such as "json" or an array `["json", "html", "text/plain"]`. When a list + * or array is given the _best_ match, if any is returned. + * + * Examples: + * + * // Accept: text/html + * this.types('html'); + * // => "html" + * + * // Accept: text/*, application/json + * this.types('html'); + * // => "html" + * this.types('text/html'); + * // => "text/html" + * this.types('json', 'text'); + * // => "json" + * this.types('application/json'); + * // => "application/json" + * + * // Accept: text/*, application/json + * this.types('image/png'); + * this.types('png'); + * // => undefined + * + * // Accept: text/*;q=.5, application/json + * this.types(['html', 'json']); + * this.types('html', 'json'); + * // => "json" + * + * @param {String|Array} types... + * @return {String|Array|Boolean} + * @public + */ + +Accepts.prototype.type = +Accepts.prototype.types = function (types_) { + var types = types_ + + // support flattened arguments + if (types && !Array.isArray(types)) { + types = new Array(arguments.length) + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i] + } + } + + // no types, return all requested types + if (!types || types.length === 0) { + return this.negotiator.mediaTypes() + } + + // no accept header, return first given type + if (!this.headers.accept) { + return types[0] + } + + var mimes = types.map(extToMime) + var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)) + var first = accepts[0] + + return first + ? types[mimes.indexOf(first)] + : false +} + +/** + * Return accepted encodings or best fit based on `encodings`. + * + * Given `Accept-Encoding: gzip, deflate` + * an array sorted by quality is returned: + * + * ['gzip', 'deflate'] + * + * @param {String|Array} encodings... + * @return {String|Array} + * @public + */ + +Accepts.prototype.encoding = +Accepts.prototype.encodings = function (encodings_) { + var encodings = encodings_ + + // support flattened arguments + if (encodings && !Array.isArray(encodings)) { + encodings = new Array(arguments.length) + for (var i = 0; i < encodings.length; i++) { + encodings[i] = arguments[i] + } + } + + // no encodings, return all requested encodings + if (!encodings || encodings.length === 0) { + return this.negotiator.encodings() + } + + return this.negotiator.encodings(encodings)[0] || false +} + +/** + * Return accepted charsets or best fit based on `charsets`. + * + * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` + * an array sorted by quality is returned: + * + * ['utf-8', 'utf-7', 'iso-8859-1'] + * + * @param {String|Array} charsets... + * @return {String|Array} + * @public + */ + +Accepts.prototype.charset = +Accepts.prototype.charsets = function (charsets_) { + var charsets = charsets_ + + // support flattened arguments + if (charsets && !Array.isArray(charsets)) { + charsets = new Array(arguments.length) + for (var i = 0; i < charsets.length; i++) { + charsets[i] = arguments[i] + } + } + + // no charsets, return all requested charsets + if (!charsets || charsets.length === 0) { + return this.negotiator.charsets() + } + + return this.negotiator.charsets(charsets)[0] || false +} + +/** + * Return accepted languages or best fit based on `langs`. + * + * Given `Accept-Language: en;q=0.8, es, pt` + * an array sorted by quality is returned: + * + * ['es', 'pt', 'en'] + * + * @param {String|Array} langs... + * @return {Array|String} + * @public + */ + +Accepts.prototype.lang = +Accepts.prototype.langs = +Accepts.prototype.language = +Accepts.prototype.languages = function (languages_) { + var languages = languages_ + + // support flattened arguments + if (languages && !Array.isArray(languages)) { + languages = new Array(arguments.length) + for (var i = 0; i < languages.length; i++) { + languages[i] = arguments[i] + } + } + + // no languages, return all requested languages + if (!languages || languages.length === 0) { + return this.negotiator.languages() + } + + return this.negotiator.languages(languages)[0] || false +} + +/** + * Convert extnames to mime. + * + * @param {String} type + * @return {String} + * @private + */ + +function extToMime (type) { + return type.indexOf('/') === -1 + ? mime.lookup(type) + : type +} + +/** + * Check if mime is valid. + * + * @param {String} type + * @return {Boolean} + * @private + */ + +function validMime (type) { + return typeof type === 'string' +} diff --git a/node_modules/accepts/package.json b/node_modules/accepts/package.json new file mode 100644 index 0000000..b35b262 --- /dev/null +++ b/node_modules/accepts/package.json @@ -0,0 +1,47 @@ +{ + "name": "accepts", + "description": "Higher-level content negotiation", + "version": "2.0.0", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "jshttp/accepts", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.0", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "keywords": [ + "content", + "negotiation", + "accept", + "accepts" + ] +} diff --git a/node_modules/body-parser/HISTORY.md b/node_modules/body-parser/HISTORY.md new file mode 100644 index 0000000..17dd110 --- /dev/null +++ b/node_modules/body-parser/HISTORY.md @@ -0,0 +1,731 @@ +2.2.0 / 2025-03-27 +========================= + +* refactor: normalize common options for all parsers +* deps: + * iconv-lite@^0.6.3 + +2.1.0 / 2025-02-10 +========================= + +* deps: + * type-is@^2.0.0 + * debug@^4.4.0 + * Removed destroy +* refactor: prefix built-in node module imports +* use the node require cache instead of custom caching + +2.0.2 / 2024-10-31 +========================= + +* remove `unpipe` package and use native `unpipe()` method + +2.0.1 / 2024-09-10 +========================= + +* Restore expected behavior `extended` to `false` + +2.0.0 / 2024-09-10 +========================= +* Propagate changes from 1.20.3 +* add brotli support #406 +* Breaking Change: Node.js 18 is the minimum supported version + +2.0.0-beta.2 / 2023-02-23 +========================= + +This incorporates all changes after 1.19.1 up to 1.20.2. + + * Remove deprecated `bodyParser()` combination middleware + * deps: debug@3.1.0 + - Add `DEBUG_HIDE_DATE` environment variable + - Change timer to per-namespace instead of global + - Change non-TTY date format + - Remove `DEBUG_FD` environment variable support + - Support 256 namespace colors + * deps: iconv-lite@0.5.2 + - Add encoding cp720 + - Add encoding UTF-32 + * deps: raw-body@3.0.0-beta.1 + +2.0.0-beta.1 / 2021-12-17 +========================= + + * Drop support for Node.js 0.8 + * `req.body` is no longer always initialized to `{}` + - it is left `undefined` unless a body is parsed + * `urlencoded` parser now defaults `extended` to `false` + * Use `on-finished` to determine when body read + +1.20.3 / 2024-09-10 +=================== + + * deps: qs@6.13.0 + * add `depth` option to customize the depth level in the parser + * IMPORTANT: The default `depth` level for parsing URL-encoded data is now `32` (previously was `Infinity`) + +1.20.2 / 2023-02-21 +=================== + + * Fix strict json error message on Node.js 19+ + * deps: content-type@~1.0.5 + - perf: skip value escaping when unnecessary + * deps: raw-body@2.5.2 + +1.20.1 / 2022-10-06 +=================== + + * deps: qs@6.11.0 + * perf: remove unnecessary object clone + +1.20.0 / 2022-04-02 +=================== + + * Fix error message for json parse whitespace in `strict` + * Fix internal error when inflated body exceeds limit + * Prevent loss of async hooks context + * Prevent hanging when request already read + * deps: depd@2.0.0 + - Replace internal `eval` usage with `Function` constructor + - Use instance methods on `process` to check for listeners + * deps: http-errors@2.0.0 + - deps: depd@2.0.0 + - deps: statuses@2.0.1 + * deps: on-finished@2.4.1 + * deps: qs@6.10.3 + * deps: raw-body@2.5.1 + - deps: http-errors@2.0.0 + +1.19.2 / 2022-02-15 +=================== + + * deps: bytes@3.1.2 + * deps: qs@6.9.7 + * Fix handling of `__proto__` keys + * deps: raw-body@2.4.3 + - deps: bytes@3.1.2 + +1.19.1 / 2021-12-10 +=================== + + * deps: bytes@3.1.1 + * deps: http-errors@1.8.1 + - deps: inherits@2.0.4 + - deps: toidentifier@1.0.1 + - deps: setprototypeof@1.2.0 + * deps: qs@6.9.6 + * deps: raw-body@2.4.2 + - deps: bytes@3.1.1 + - deps: http-errors@1.8.1 + * deps: safe-buffer@5.2.1 + * deps: type-is@~1.6.18 + +1.19.0 / 2019-04-25 +=================== + + * deps: bytes@3.1.0 + - Add petabyte (`pb`) support + * deps: http-errors@1.7.2 + - Set constructor name when possible + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + * deps: qs@6.7.0 + - Fix parsing array brackets after index + * deps: raw-body@2.4.0 + - deps: bytes@3.1.0 + - deps: http-errors@1.7.2 + - deps: iconv-lite@0.4.24 + * deps: type-is@~1.6.17 + - deps: mime-types@~2.1.24 + - perf: prevent internal `throw` on invalid type + +1.18.3 / 2018-05-14 +=================== + + * Fix stack trace for strict json parse error + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: http-errors@~1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + * deps: qs@6.5.2 + * deps: raw-body@2.3.3 + - deps: http-errors@1.6.3 + - deps: iconv-lite@0.4.23 + * deps: type-is@~1.6.16 + - deps: mime-types@~2.1.18 + +1.18.2 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: remove argument reassignment + +1.18.1 / 2017-09-12 +=================== + + * deps: content-type@~1.0.4 + - perf: remove argument reassignment + - perf: skip parameter parsing when no parameters + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + * deps: qs@6.5.1 + - Fix parsing & compacting very deep objects + * deps: raw-body@2.3.2 + - deps: iconv-lite@0.4.19 + +1.18.0 / 2017-09-08 +=================== + + * Fix JSON strict violation error to match native parse error + * Include the `body` property on verify errors + * Include the `type` property on all generated errors + * Use `http-errors` to set status code on errors + * deps: bytes@3.0.0 + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + * deps: qs@6.5.0 + * deps: raw-body@2.3.1 + - Use `http-errors` for standard emitted errors + - deps: bytes@3.0.0 + - deps: iconv-lite@0.4.18 + - perf: skip buffer decoding on overage chunk + * perf: prevent internal `throw` when missing charset + +1.17.2 / 2017-05-17 +=================== + + * deps: debug@2.6.7 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@2.0.0 + * deps: type-is@~1.6.15 + - deps: mime-types@~2.1.15 + +1.17.1 / 2017-03-06 +=================== + + * deps: qs@6.4.0 + - Fix regression parsing keys starting with `[` + +1.17.0 / 2017-03-01 +=================== + + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + * deps: qs@6.3.1 + - Fix compacting nested arrays + +1.16.1 / 2017-02-10 +=================== + + * deps: debug@2.6.1 + - Fix deprecation messages in WebStorm and other editors + - Undeprecate `DEBUG_FD` set to `1` or `2` + +1.16.0 / 2017-01-17 +=================== + + * deps: debug@2.6.0 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + * deps: qs@6.2.1 + - Fix array parsing from skipping empty values + * deps: raw-body@~2.2.0 + - deps: iconv-lite@0.4.15 + * deps: type-is@~1.6.14 + - deps: mime-types@~2.1.13 + +1.15.2 / 2016-06-19 +=================== + + * deps: bytes@2.4.0 + * deps: content-type@~1.0.2 + - perf: enable strict mode + * deps: http-errors@~1.5.0 + - Use `setprototypeof` module to replace `__proto__` setting + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: qs@6.2.0 + * deps: raw-body@~2.1.7 + - deps: bytes@2.4.0 + - perf: remove double-cleanup on happy path + * deps: type-is@~1.6.13 + - deps: mime-types@~2.1.11 + +1.15.1 / 2016-05-05 +=================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + * deps: raw-body@~2.1.6 + - deps: bytes@2.3.0 + * deps: type-is@~1.6.12 + - deps: mime-types@~2.1.10 + +1.15.0 / 2016-02-10 +=================== + + * deps: http-errors@~1.4.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.2.1 < 2' + * deps: qs@6.1.0 + * deps: type-is@~1.6.11 + - deps: mime-types@~2.1.9 + +1.14.2 / 2015-12-16 +=================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + * deps: qs@5.2.0 + * deps: raw-body@~2.1.5 + - deps: bytes@2.2.0 + - deps: iconv-lite@0.4.13 + * deps: type-is@~1.6.10 + - deps: mime-types@~2.1.8 + +1.14.1 / 2015-09-27 +=================== + + * Fix issue where invalid charset results in 400 when `verify` used + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + * deps: raw-body@~2.1.4 + - Fix masking critical errors from `iconv-lite` + - deps: iconv-lite@0.4.12 + * deps: type-is@~1.6.9 + - deps: mime-types@~2.1.7 + +1.14.0 / 2015-09-16 +=================== + + * Fix JSON strict parse error to match syntax errors + * Provide static `require` analysis in `urlencoded` parser + * deps: depd@~1.1.0 + - Support web browser loading + * deps: qs@5.1.0 + * deps: raw-body@~2.1.3 + - Fix sync callback when attaching data listener causes sync read + * deps: type-is@~1.6.8 + - Fix type error when given invalid type to match against + - deps: mime-types@~2.1.6 + +1.13.3 / 2015-07-31 +=================== + + * deps: type-is@~1.6.6 + - deps: mime-types@~2.1.4 + +1.13.2 / 2015-07-05 +=================== + + * deps: iconv-lite@0.4.11 + * deps: qs@4.0.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix user-visible incompatibilities from 3.1.0 + - Fix various parsing edge cases + * deps: raw-body@~2.1.2 + - Fix error stack traces to skip `makeError` + - deps: iconv-lite@0.4.11 + * deps: type-is@~1.6.4 + - deps: mime-types@~2.1.2 + - perf: enable strict mode + - perf: remove argument reassignment + +1.13.1 / 2015-06-16 +=================== + + * deps: qs@2.4.2 + - Downgraded from 3.1.0 because of user-visible incompatibilities + +1.13.0 / 2015-06-14 +=================== + + * Add `statusCode` property on `Error`s, in addition to `status` + * Change `type` default to `application/json` for JSON parser + * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser + * Provide static `require` analysis + * Use the `http-errors` module to generate errors + * deps: bytes@2.1.0 + - Slight optimizations + * deps: iconv-lite@0.4.10 + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + - Leading BOM is now removed when decoding + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * deps: qs@3.1.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix various parsing edge cases + - Parsed object now has `null` prototype + * deps: raw-body@~2.1.1 + - Use `unpipe` module for unpiping requests + - deps: iconv-lite@0.4.10 + * deps: type-is@~1.6.3 + - deps: mime-types@~2.1.1 + - perf: reduce try block size + - perf: remove bitwise operations + * perf: enable strict mode + * perf: remove argument reassignment + * perf: remove delete call + +1.12.4 / 2015-05-10 +=================== + + * deps: debug@~2.2.0 + * deps: qs@2.4.2 + - Fix allowing parameters like `constructor` + * deps: on-finished@~2.2.1 + * deps: raw-body@~2.0.1 + - Fix a false-positive when unpiping in Node.js 0.8 + - deps: bytes@2.0.1 + * deps: type-is@~1.6.2 + - deps: mime-types@~2.0.11 + +1.12.3 / 2015-04-15 +=================== + + * Slight efficiency improvement when not debugging + * deps: depd@~1.0.1 + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + * deps: raw-body@1.3.4 + - Fix hanging callback if request aborts during read + - deps: iconv-lite@0.4.8 + +1.12.2 / 2015-03-16 +=================== + + * deps: qs@2.4.1 + - Fix error when parameter `hasOwnProperty` is present + +1.12.1 / 2015-03-15 +=================== + + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: type-is@~1.6.1 + - deps: mime-types@~2.0.10 + +1.12.0 / 2015-02-13 +=================== + + * add `debug` messages + * accept a function for the `type` option + * use `content-type` to parse `Content-Type` headers + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + * deps: raw-body@1.3.3 + - deps: iconv-lite@0.4.7 + * deps: type-is@~1.6.0 + - fix argument reassignment + - fix false-positives in `hasBody` `Transfer-Encoding` check + - support wildcard for both type and subtype (`*/*`) + - deps: mime-types@~2.0.9 + +1.11.0 / 2015-01-30 +=================== + + * make internal `extended: true` depth limit infinity + * deps: type-is@~1.5.6 + - deps: mime-types@~2.0.8 + +1.10.2 / 2015-01-20 +=================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + * deps: raw-body@1.3.2 + - deps: iconv-lite@0.4.6 + +1.10.1 / 2015-01-01 +=================== + + * deps: on-finished@~2.2.0 + * deps: type-is@~1.5.5 + - deps: mime-types@~2.0.7 + +1.10.0 / 2014-12-02 +=================== + + * make internal `extended: true` array limit dynamic + +1.9.3 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + * deps: qs@2.3.3 + - Fix `arrayLimit` behavior + * deps: raw-body@1.3.1 + - deps: iconv-lite@0.4.5 + * deps: type-is@~1.5.3 + - deps: mime-types@~2.0.3 + +1.9.2 / 2014-10-27 +================== + + * deps: qs@2.3.2 + - Fix parsing of mixed objects and values + +1.9.1 / 2014-10-22 +================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + * deps: qs@2.3.0 + - Fix parsing of mixed implicit and explicit arrays + * deps: type-is@~1.5.2 + - deps: mime-types@~2.0.2 + +1.9.0 / 2014-09-24 +================== + + * include the charset in "unsupported charset" error message + * include the encoding in "unsupported content encoding" error message + * deps: depd@~1.0.0 + +1.8.4 / 2014-09-23 +================== + + * fix content encoding to be case-insensitive + +1.8.3 / 2014-09-19 +================== + + * deps: qs@2.2.4 + - Fix issue with object keys starting with numbers truncated + +1.8.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + +1.8.1 / 2014-09-07 +================== + + * deps: media-typer@0.3.0 + * deps: type-is@~1.5.1 + +1.8.0 / 2014-09-05 +================== + + * make empty-body-handling consistent between chunked requests + - empty `json` produces `{}` + - empty `raw` produces `new Buffer(0)` + - empty `text` produces `''` + - empty `urlencoded` produces `{}` + * deps: qs@2.2.3 + - Fix issue where first empty value in array is discarded + * deps: type-is@~1.5.0 + - fix `hasbody` to be true for `content-length: 0` + +1.7.0 / 2014-09-01 +================== + + * add `parameterLimit` option to `urlencoded` parser + * change `urlencoded` extended array limit to 100 + * respond with 413 when over `parameterLimit` in `urlencoded` + +1.6.7 / 2014-08-29 +================== + + * deps: qs@2.2.2 + - Remove unnecessary cloning + +1.6.6 / 2014-08-27 +================== + + * deps: qs@2.2.0 + - Array parsing fix + - Performance improvements + +1.6.5 / 2014-08-16 +================== + + * deps: on-finished@2.1.0 + +1.6.4 / 2014-08-14 +================== + + * deps: qs@1.2.2 + +1.6.3 / 2014-08-10 +================== + + * deps: qs@1.2.1 + +1.6.2 / 2014-08-07 +================== + + * deps: qs@1.2.0 + - Fix parsing array of objects + +1.6.1 / 2014-08-06 +================== + + * deps: qs@1.1.0 + - Accept urlencoded square brackets + - Accept empty values in implicit array notation + +1.6.0 / 2014-08-05 +================== + + * deps: qs@1.0.2 + - Complete rewrite + - Limits array length to 20 + - Limits object depth to 5 + - Limits parameters to 1,000 + +1.5.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +1.5.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +1.5.0 / 2014-07-20 +================== + + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + * deps: raw-body@1.3.0 + - deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + - Fix `Cannot switch to old mode now` error on Node.js 0.10+ + * deps: type-is@~1.3.2 + +1.4.3 / 2014-06-19 +================== + + * deps: type-is@1.3.1 + - fix global variable leak + +1.4.2 / 2014-06-19 +================== + + * deps: type-is@1.3.0 + - improve type parsing + +1.4.1 / 2014-06-19 +================== + + * fix urlencoded extended deprecation message + +1.4.0 / 2014-06-19 +================== + + * add `text` parser + * add `raw` parser + * check accepted charset in content-type (accepts utf-8) + * check accepted encoding in content-encoding (accepts identity) + * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed + * deprecate `urlencoded()` without provided `extended` option + * lazy-load urlencoded parsers + * parsers split into files for reduced mem usage + * support gzip and deflate bodies + - set `inflate: false` to turn off + * deps: raw-body@1.2.2 + - Support all encodings from `iconv-lite` + +1.3.1 / 2014-06-11 +================== + + * deps: type-is@1.2.1 + - Switch dependency from mime to mime-types@1.0.0 + +1.3.0 / 2014-05-31 +================== + + * add `extended` option to urlencoded parser + +1.2.2 / 2014-05-27 +================== + + * deps: raw-body@1.1.6 + - assert stream encoding on node.js 0.8 + - assert stream encoding on node.js < 0.10.6 + - deps: bytes@1 + +1.2.1 / 2014-05-26 +================== + + * invoke `next(err)` after request fully read + - prevents hung responses and socket hang ups + +1.2.0 / 2014-05-11 +================== + + * add `verify` option + * deps: type-is@1.2.0 + - support suffix matching + +1.1.2 / 2014-05-11 +================== + + * improve json parser speed + +1.1.1 / 2014-05-11 +================== + + * fix repeated limit parsing with every request + +1.1.0 / 2014-05-10 +================== + + * add `type` option + * deps: pin for safety and consistency + +1.0.2 / 2014-04-14 +================== + + * use `type-is` module + +1.0.1 / 2014-03-20 +================== + + * lower default limits to 100kb diff --git a/node_modules/body-parser/LICENSE b/node_modules/body-parser/LICENSE new file mode 100644 index 0000000..386b7b6 --- /dev/null +++ b/node_modules/body-parser/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +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. diff --git a/node_modules/body-parser/README.md b/node_modules/body-parser/README.md new file mode 100644 index 0000000..9fcd4c6 --- /dev/null +++ b/node_modules/body-parser/README.md @@ -0,0 +1,491 @@ +# body-parser + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] +[![OpenSSF Scorecard Badge][ossf-scorecard-badge]][ossf-scorecard-visualizer] + +Node.js body parsing middleware. + +Parse incoming request bodies in a middleware before your handlers, available +under the `req.body` property. + +**Note** As `req.body`'s shape is based on user-controlled input, all +properties and values in this object are untrusted and should be validated +before trusting. For example, `req.body.foo.toString()` may fail in multiple +ways, for example the `foo` property may not be there or may not be a string, +and `toString` may not be a function and instead a string or other user input. + +[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). + +_This does not handle multipart bodies_, due to their complex and typically +large nature. For multipart bodies, you may be interested in the following +modules: + + * [busboy](https://www.npmjs.org/package/busboy#readme) and + [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) + * [multiparty](https://www.npmjs.org/package/multiparty#readme) and + [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) + * [formidable](https://www.npmjs.org/package/formidable#readme) + * [multer](https://www.npmjs.org/package/multer#readme) + +This module provides the following parsers: + + * [JSON body parser](#bodyparserjsonoptions) + * [Raw body parser](#bodyparserrawoptions) + * [Text body parser](#bodyparsertextoptions) + * [URL-encoded form body parser](#bodyparserurlencodedoptions) + +Other body parsers you might be interested in: + +- [body](https://www.npmjs.org/package/body#readme) +- [co-body](https://www.npmjs.org/package/co-body#readme) + +## Installation + +```sh +$ npm install body-parser +``` + +## API + +```js +const bodyParser = require('body-parser') +``` + +The `bodyParser` object exposes various factories to create middlewares. All +middlewares will populate the `req.body` property with the parsed body when +the `Content-Type` request header matches the `type` option. + +The various errors returned by this module are described in the +[errors section](#errors). + +### bodyParser.json([options]) + +Returns middleware that only parses `json` and only looks at requests where +the `Content-Type` header matches the `type` option. This parser accepts any +Unicode encoding of the body and supports automatic inflation of `gzip`, +`br` (brotli) and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). + +#### Options + +The `json` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### reviver + +The `reviver` option is passed directly to `JSON.parse` as the second +argument. You can find more information on this argument +[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). + +##### strict + +When set to `true`, will only accept arrays and objects; when `false` will +accept anything `JSON.parse` accepts. Defaults to `true`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not a +function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `json`), a mime type (like `application/json`), or +a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a truthy +value. Defaults to `application/json`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.raw([options]) + +Returns middleware that parses all bodies as a `Buffer` and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip`, `br` (brotli) and `deflate` +encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a `Buffer` object +of the body. + +#### Options + +The `raw` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. +If not a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this +can be an extension name (like `bin`), a mime type (like +`application/octet-stream`), or a mime type with a wildcard (like `*/*` or +`application/*`). If a function, the `type` option is called as `fn(req)` +and the request is parsed if it returns a truthy value. Defaults to +`application/octet-stream`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.text([options]) + +Returns middleware that parses all bodies as a string and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip`, `br` (brotli) and `deflate` +encodings. + +A new `body` string containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a string of the +body. + +#### Options + +The `text` function takes an optional `options` object that may contain any of +the following keys: + +##### defaultCharset + +Specify the default character set for the text content if the charset is not +specified in the `Content-Type` header of the request. Defaults to `utf-8`. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `txt`), a mime type (like `text/plain`), or a mime +type with a wildcard (like `*/*` or `text/*`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a +truthy value. Defaults to `text/plain`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.urlencoded([options]) + +Returns middleware that only parses `urlencoded` bodies and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser accepts only UTF-8 encoding of the body and supports automatic +inflation of `gzip`, `br` (brotli) and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This object will contain +key-value pairs, where the value can be a string or array (when `extended` is +`false`), or any type (when `extended` is `true`). + +#### Options + +The `urlencoded` function takes an optional `options` object that may contain +any of the following keys: + +##### extended + +The "extended" syntax allows for rich objects and arrays to be encoded into the +URL-encoded format, allowing for a JSON-like experience with URL-encoded. For +more information, please [see the qs +library](https://www.npmjs.org/package/qs#readme). + +Defaults to `false`. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### parameterLimit + +The `parameterLimit` option controls the maximum number of parameters that +are allowed in the URL-encoded data. If a request contains more parameters +than this value, a 413 will be returned to the client. Defaults to `1000`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `urlencoded`), a mime type (like +`application/x-www-form-urlencoded`), or a mime type with a wildcard (like +`*/x-www-form-urlencoded`). If a function, the `type` option is called as +`fn(req)` and the request is parsed if it returns a truthy value. Defaults +to `application/x-www-form-urlencoded`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +##### defaultCharset + +The default charset to parse as, if not specified in content-type. Must be +either `utf-8` or `iso-8859-1`. Defaults to `utf-8`. + +##### charsetSentinel + +Whether to let the value of the `utf8` parameter take precedence as the charset +selector. It requires the form to contain a parameter named `utf8` with a value +of `✓`. Defaults to `false`. + +##### interpretNumericEntities + +Whether to decode numeric entities such as `☺` when parsing an iso-8859-1 +form. Defaults to `false`. + + +#### depth + +The `depth` option is used to configure the maximum depth of the `qs` library when `extended` is `true`. This allows you to limit the amount of keys that are parsed and can be useful to prevent certain types of abuse. Defaults to `32`. It is recommended to keep this value as low as possible. + +## Errors + +The middlewares provided by this module create errors using the +[`http-errors` module](https://www.npmjs.com/package/http-errors). The errors +will typically have a `status`/`statusCode` property that contains the suggested +HTTP response code, an `expose` property to determine if the `message` property +should be displayed to the client, a `type` property to determine the type of +error without matching against the `message`, and a `body` property containing +the read body, if available. + +The following are the common errors created, though any error can come through +for various reasons. + +### content encoding unsupported + +This error will occur when the request had a `Content-Encoding` header that +contained an encoding but the "inflation" option was set to `false`. The +`status` property is set to `415`, the `type` property is set to +`'encoding.unsupported'`, and the `charset` property will be set to the +encoding that is unsupported. + +### entity parse failed + +This error will occur when the request contained an entity that could not be +parsed by the middleware. The `status` property is set to `400`, the `type` +property is set to `'entity.parse.failed'`, and the `body` property is set to +the entity value that failed parsing. + +### entity verify failed + +This error will occur when the request contained an entity that could not be +failed verification by the defined `verify` option. The `status` property is +set to `403`, the `type` property is set to `'entity.verify.failed'`, and the +`body` property is set to the entity value that failed verification. + +### request aborted + +This error will occur when the request is aborted by the client before reading +the body has finished. The `received` property will be set to the number of +bytes received before the request was aborted and the `expected` property is +set to the number of expected bytes. The `status` property is set to `400` +and `type` property is set to `'request.aborted'`. + +### request entity too large + +This error will occur when the request body's size is larger than the "limit" +option. The `limit` property will be set to the byte limit and the `length` +property will be set to the request body's length. The `status` property is +set to `413` and the `type` property is set to `'entity.too.large'`. + +### request size did not match content length + +This error will occur when the request's length did not match the length from +the `Content-Length` header. This typically occurs when the request is malformed, +typically when the `Content-Length` header was calculated based on characters +instead of bytes. The `status` property is set to `400` and the `type` property +is set to `'request.size.invalid'`. + +### stream encoding should not be set + +This error will occur when something called the `req.setEncoding` method prior +to this middleware. This module operates directly on bytes only and you cannot +call `req.setEncoding` when using this module. The `status` property is set to +`500` and the `type` property is set to `'stream.encoding.set'`. + +### stream is not readable + +This error will occur when the request is no longer readable when this middleware +attempts to read it. This typically means something other than a middleware from +this module read the request body already and the middleware was also configured to +read the same request. The `status` property is set to `500` and the `type` +property is set to `'stream.not.readable'`. + +### too many parameters + +This error will occur when the content of the request exceeds the configured +`parameterLimit` for the `urlencoded` parser. The `status` property is set to +`413` and the `type` property is set to `'parameters.too.many'`. + +### unsupported charset "BOGUS" + +This error will occur when the request had a charset parameter in the +`Content-Type` header, but the `iconv-lite` module does not support it OR the +parser does not support it. The charset is contained in the message as well +as in the `charset` property. The `status` property is set to `415`, the +`type` property is set to `'charset.unsupported'`, and the `charset` property +is set to the charset that is unsupported. + +### unsupported content encoding "bogus" + +This error will occur when the request had a `Content-Encoding` header that +contained an unsupported encoding. The encoding is contained in the message +as well as in the `encoding` property. The `status` property is set to `415`, +the `type` property is set to `'encoding.unsupported'`, and the `encoding` +property is set to the encoding that is unsupported. + +### The input exceeded the depth + +This error occurs when using `bodyParser.urlencoded` with the `extended` property set to `true` and the input exceeds the configured `depth` option. The `status` property is set to `400`. It is recommended to review the `depth` option and evaluate if it requires a higher value. When the `depth` option is set to `32` (default value), the error will not be thrown. + +## Examples + +### Express/Connect top-level generic + +This example demonstrates adding a generic JSON and URL-encoded parser as a +top-level middleware, which will parse the bodies of all incoming requests. +This is the simplest setup. + +```js +const express = require('express') +const bodyParser = require('body-parser') + +const app = express() + +// parse application/x-www-form-urlencoded +app.use(bodyParser.urlencoded()) + +// parse application/json +app.use(bodyParser.json()) + +app.use(function (req, res) { + res.setHeader('Content-Type', 'text/plain') + res.write('you posted:\n') + res.end(String(JSON.stringify(req.body, null, 2))) +}) +``` + +### Express route-specific + +This example demonstrates adding body parsers specifically to the routes that +need them. In general, this is the most recommended way to use body-parser with +Express. + +```js +const express = require('express') +const bodyParser = require('body-parser') + +const app = express() + +// create application/json parser +const jsonParser = bodyParser.json() + +// create application/x-www-form-urlencoded parser +const urlencodedParser = bodyParser.urlencoded() + +// POST /login gets urlencoded bodies +app.post('/login', urlencodedParser, function (req, res) { + if (!req.body || !req.body.username) res.sendStatus(400) + res.send('welcome, ' + req.body.username) +}) + +// POST /api/users gets JSON bodies +app.post('/api/users', jsonParser, function (req, res) { + if (!req.body) res.sendStatus(400) + // create user in req.body +}) +``` + +### Change accepted type for parsers + +All the parsers accept a `type` option which allows you to change the +`Content-Type` that the middleware will parse. + +```js +const express = require('express') +const bodyParser = require('body-parser') + +const app = express() + +// parse various different custom JSON types as JSON +app.use(bodyParser.json({ type: 'application/*+json' })) + +// parse some custom thing into a Buffer +app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) + +// parse an HTML body into a string +app.use(bodyParser.text({ type: 'text/html' })) +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/expressjs/body-parser/master?label=ci +[ci-url]: https://github.com/expressjs/body-parser/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/body-parser/master +[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master +[node-version-image]: https://badgen.net/npm/node/body-parser +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/body-parser +[npm-url]: https://npmjs.org/package/body-parser +[npm-version-image]: https://badgen.net/npm/v/body-parser +[ossf-scorecard-badge]: https://api.scorecard.dev/projects/github.com/expressjs/body-parser/badge +[ossf-scorecard-visualizer]: https://ossf.github.io/scorecard-visualizer/#/projects/github.com/expressjs/body-parser \ No newline at end of file diff --git a/node_modules/body-parser/index.js b/node_modules/body-parser/index.js new file mode 100644 index 0000000..d722d0b --- /dev/null +++ b/node_modules/body-parser/index.js @@ -0,0 +1,80 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * @typedef Parsers + * @type {function} + * @property {function} json + * @property {function} raw + * @property {function} text + * @property {function} urlencoded + */ + +/** + * Module exports. + * @type {Parsers} + */ + +exports = module.exports = bodyParser + +/** + * JSON parser. + * @public + */ + +Object.defineProperty(exports, 'json', { + configurable: true, + enumerable: true, + get: () => require('./lib/types/json') +}) + +/** + * Raw parser. + * @public + */ + +Object.defineProperty(exports, 'raw', { + configurable: true, + enumerable: true, + get: () => require('./lib/types/raw') +}) + +/** + * Text parser. + * @public + */ + +Object.defineProperty(exports, 'text', { + configurable: true, + enumerable: true, + get: () => require('./lib/types/text') +}) + +/** + * URL-encoded parser. + * @public + */ + +Object.defineProperty(exports, 'urlencoded', { + configurable: true, + enumerable: true, + get: () => require('./lib/types/urlencoded') +}) + +/** + * Create a middleware to parse json and urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @deprecated + * @public + */ + +function bodyParser () { + throw new Error('The bodyParser() generic has been split into individual middleware to use instead.') +} diff --git a/node_modules/body-parser/lib/read.js b/node_modules/body-parser/lib/read.js new file mode 100644 index 0000000..eee8b11 --- /dev/null +++ b/node_modules/body-parser/lib/read.js @@ -0,0 +1,210 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var getBody = require('raw-body') +var iconv = require('iconv-lite') +var onFinished = require('on-finished') +var zlib = require('node:zlib') + +/** + * Module exports. + */ + +module.exports = read + +/** + * Read a request into a buffer and parse. + * + * @param {object} req + * @param {object} res + * @param {function} next + * @param {function} parse + * @param {function} debug + * @param {object} options + * @private + */ + +function read (req, res, next, parse, debug, options) { + var length + var opts = options + var stream + + // read options + var encoding = opts.encoding !== null + ? opts.encoding + : null + var verify = opts.verify + + try { + // get the content stream + stream = contentstream(req, debug, opts.inflate) + length = stream.length + stream.length = undefined + } catch (err) { + return next(err) + } + + // set raw-body options + opts.length = length + opts.encoding = verify + ? null + : encoding + + // assert charset is supported + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + })) + } + + // read body + debug('read body') + getBody(stream, opts, function (error, body) { + if (error) { + var _error + + if (error.type === 'encoding.unsupported') { + // echo back charset + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + }) + } else { + // set status code on error + _error = createError(400, error) + } + + // unpipe from stream and destroy + if (stream !== req) { + req.unpipe() + stream.destroy() + } + + // read off entire request + dump(req, function onfinished () { + next(createError(400, _error)) + }) + return + } + + // verify + if (verify) { + try { + debug('verify body') + verify(req, res, body, encoding) + } catch (err) { + next(createError(403, err, { + body: body, + type: err.type || 'entity.verify.failed' + })) + return + } + } + + // parse + var str = body + try { + debug('parse body') + str = typeof body !== 'string' && encoding !== null + ? iconv.decode(body, encoding) + : body + req.body = parse(str, encoding) + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || 'entity.parse.failed' + })) + return + } + + next() + }) +} + +/** + * Get the content stream of the request. + * + * @param {object} req + * @param {function} debug + * @param {boolean} [inflate=true] + * @return {object} + * @api private + */ + +function contentstream (req, debug, inflate) { + var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() + var length = req.headers['content-length'] + + debug('content-encoding "%s"', encoding) + + if (inflate === false && encoding !== 'identity') { + throw createError(415, 'content encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + if (encoding === 'identity') { + req.length = length + return req + } + + var stream = createDecompressionStream(encoding, debug) + req.pipe(stream) + return stream +} + +/** + * Create a decompression stream for the given encoding. + * @param {string} encoding + * @param {function} debug + * @return {object} + * @api private + */ +function createDecompressionStream (encoding, debug) { + switch (encoding) { + case 'deflate': + debug('inflate body') + return zlib.createInflate() + case 'gzip': + debug('gunzip body') + return zlib.createGunzip() + case 'br': + debug('brotli decompress body') + return zlib.createBrotliDecompress() + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } +} + +/** + * Dump the contents of a request. + * + * @param {object} req + * @param {function} callback + * @api private + */ + +function dump (req, callback) { + if (onFinished.isFinished(req)) { + callback(null) + } else { + onFinished(req, callback) + req.resume() + } +} diff --git a/node_modules/body-parser/lib/types/json.js b/node_modules/body-parser/lib/types/json.js new file mode 100644 index 0000000..078ce71 --- /dev/null +++ b/node_modules/body-parser/lib/types/json.js @@ -0,0 +1,206 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var debug = require('debug')('body-parser:json') +var isFinished = require('on-finished').isFinished +var read = require('../read') +var typeis = require('type-is') +var { getCharset, normalizeOptions } = require('../utils') + +/** + * Module exports. + */ + +module.exports = json + +/** + * RegExp to match the first non-space in a string. + * + * Allowed whitespace is defined in RFC 7159: + * + * ws = *( + * %x20 / ; Space + * %x09 / ; Horizontal tab + * %x0A / ; Line feed or New line + * %x0D ) ; Carriage return + */ + +var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/ // eslint-disable-line no-control-regex + +var JSON_SYNTAX_CHAR = '#' +var JSON_SYNTAX_REGEXP = /#+/g + +/** + * Create a middleware to parse JSON bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function json (options) { + var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'application/json') + + var reviver = options?.reviver + var strict = options?.strict !== false + + function parse (body) { + if (body.length === 0) { + // special-case empty json body, as it's a common client-side mistake + // TODO: maybe make this configurable or part of "strict" option + return {} + } + + if (strict) { + var first = firstchar(body) + + if (first !== '{' && first !== '[') { + debug('strict violation') + throw createStrictSyntaxError(body, first) + } + } + + try { + debug('parse json') + return JSON.parse(body, reviver) + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }) + } + } + + return function jsonParser (req, res, next) { + if (isFinished(req)) { + debug('body already parsed') + next() + return + } + + if (!('body' in req)) { + req.body = undefined + } + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset per RFC 7159 sec 8.1 + var charset = getCharset(req) || 'utf-8' + if (charset.slice(0, 4) !== 'utf-') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate, + limit, + verify + }) + } +} + +/** + * Create strict violation syntax error matching native error. + * + * @param {string} str + * @param {string} char + * @return {Error} + * @private + */ + +function createStrictSyntaxError (str, char) { + var index = str.indexOf(char) + var partial = '' + + if (index !== -1) { + partial = str.substring(0, index) + JSON_SYNTAX_CHAR + + for (var i = index + 1; i < str.length; i++) { + partial += JSON_SYNTAX_CHAR + } + } + + try { + JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace(JSON_SYNTAX_REGEXP, function (placeholder) { + return str.substring(index, index + placeholder.length) + }), + stack: e.stack + }) + } +} + +/** + * Get the first non-whitespace character in a string. + * + * @param {string} str + * @return {function} + * @private + */ + +function firstchar (str) { + var match = FIRST_CHAR_REGEXP.exec(str) + + return match + ? match[1] + : undefined +} + +/** + * Normalize a SyntaxError for JSON.parse. + * + * @param {SyntaxError} error + * @param {object} obj + * @return {SyntaxError} + */ + +function normalizeJsonSyntaxError (error, obj) { + var keys = Object.getOwnPropertyNames(error) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + if (key !== 'stack' && key !== 'message') { + delete error[key] + } + } + + // replace stack before message for Node.js 0.10 and below + error.stack = obj.stack.replace(error.message, obj.message) + error.message = obj.message + + return error +} diff --git a/node_modules/body-parser/lib/types/raw.js b/node_modules/body-parser/lib/types/raw.js new file mode 100644 index 0000000..3788ff2 --- /dev/null +++ b/node_modules/body-parser/lib/types/raw.js @@ -0,0 +1,75 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var debug = require('debug')('body-parser:raw') +var isFinished = require('on-finished').isFinished +var read = require('../read') +var typeis = require('type-is') +var { normalizeOptions } = require('../utils') + +/** + * Module exports. + */ + +module.exports = raw + +/** + * Create a middleware to parse raw bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function raw (options) { + var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'application/octet-stream') + + function parse (buf) { + return buf + } + + return function rawParser (req, res, next) { + if (isFinished(req)) { + debug('body already parsed') + next() + return + } + + if (!('body' in req)) { + req.body = undefined + } + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // read + read(req, res, next, parse, debug, { + encoding: null, + inflate, + limit, + verify + }) + } +} diff --git a/node_modules/body-parser/lib/types/text.js b/node_modules/body-parser/lib/types/text.js new file mode 100644 index 0000000..3e0ab1b --- /dev/null +++ b/node_modules/body-parser/lib/types/text.js @@ -0,0 +1,80 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var debug = require('debug')('body-parser:text') +var isFinished = require('on-finished').isFinished +var read = require('../read') +var typeis = require('type-is') +var { getCharset, normalizeOptions } = require('../utils') + +/** + * Module exports. + */ + +module.exports = text + +/** + * Create a middleware to parse text bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function text (options) { + var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'text/plain') + + var defaultCharset = options?.defaultCharset || 'utf-8' + + function parse (buf) { + return buf + } + + return function textParser (req, res, next) { + if (isFinished(req)) { + debug('body already parsed') + next() + return + } + + if (!('body' in req)) { + req.body = undefined + } + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // get charset + var charset = getCharset(req) || defaultCharset + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate, + limit, + verify + }) + } +} diff --git a/node_modules/body-parser/lib/types/urlencoded.js b/node_modules/body-parser/lib/types/urlencoded.js new file mode 100644 index 0000000..f993425 --- /dev/null +++ b/node_modules/body-parser/lib/types/urlencoded.js @@ -0,0 +1,177 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var debug = require('debug')('body-parser:urlencoded') +var isFinished = require('on-finished').isFinished +var read = require('../read') +var typeis = require('type-is') +var qs = require('qs') +var { getCharset, normalizeOptions } = require('../utils') + +/** + * Module exports. + */ + +module.exports = urlencoded + +/** + * Create a middleware to parse urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function urlencoded (options) { + var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'application/x-www-form-urlencoded') + + var defaultCharset = options?.defaultCharset || 'utf-8' + if (defaultCharset !== 'utf-8' && defaultCharset !== 'iso-8859-1') { + throw new TypeError('option defaultCharset must be either utf-8 or iso-8859-1') + } + + // create the appropriate query parser + var queryparse = createQueryParser(options) + + function parse (body, encoding) { + return body.length + ? queryparse(body, encoding) + : {} + } + + return function urlencodedParser (req, res, next) { + if (isFinished(req)) { + debug('body already parsed') + next() + return + } + + if (!('body' in req)) { + req.body = undefined + } + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset + var charset = getCharset(req) || defaultCharset + if (charset !== 'utf-8' && charset !== 'iso-8859-1') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate, + limit, + verify + }) + } +} + +/** + * Get the extended query parser. + * + * @param {object} options + */ + +function createQueryParser (options) { + var extended = Boolean(options?.extended) + var parameterLimit = options?.parameterLimit !== undefined + ? options?.parameterLimit + : 1000 + var charsetSentinel = options?.charsetSentinel + var interpretNumericEntities = options?.interpretNumericEntities + var depth = extended ? (options?.depth !== undefined ? options?.depth : 32) : 0 + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isNaN(depth) || depth < 0) { + throw new TypeError('option depth must be a zero or a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body, encoding) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + var arrayLimit = extended ? Math.max(100, paramCount) : 0 + + debug('parse ' + (extended ? 'extended ' : '') + 'urlencoding') + try { + return qs.parse(body, { + allowPrototypes: true, + arrayLimit: arrayLimit, + depth: depth, + charsetSentinel: charsetSentinel, + interpretNumericEntities: interpretNumericEntities, + charset: encoding, + parameterLimit: parameterLimit, + strictDepth: true + }) + } catch (err) { + if (err instanceof RangeError) { + throw createError(400, 'The input exceeded the depth', { + type: 'querystring.parse.rangeError' + }) + } else { + throw err + } + } + } +} + +/** + * Count the number of parameters, stopping once limit reached + * + * @param {string} body + * @param {number} limit + * @api private + */ + +function parameterCount (body, limit) { + var len = body.split('&').length + + return len > limit ? undefined : len - 1 +} diff --git a/node_modules/body-parser/lib/utils.js b/node_modules/body-parser/lib/utils.js new file mode 100644 index 0000000..eee5d95 --- /dev/null +++ b/node_modules/body-parser/lib/utils.js @@ -0,0 +1,83 @@ +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = { + getCharset, + normalizeOptions +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch { + return undefined + } +} + +/** + * Get the simple type checker. + * + * @param {string | string[]} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} + +/** + * Normalizes the common options for all parsers. + * + * @param {object} options options to normalize + * @param {string | string[] | function} defaultType default content type(s) or a function to determine it + * @returns {object} + */ +function normalizeOptions (options, defaultType) { + if (!defaultType) { + // Parsers must define a default content type + throw new TypeError('defaultType must be provided') + } + + var inflate = options?.inflate !== false + var limit = typeof options?.limit !== 'number' + ? bytes.parse(options?.limit || '100kb') + : options?.limit + var type = options?.type || defaultType + var verify = options?.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + return { + inflate, + limit, + verify, + shouldParse + } +} diff --git a/node_modules/body-parser/package.json b/node_modules/body-parser/package.json new file mode 100644 index 0000000..e7f763b --- /dev/null +++ b/node_modules/body-parser/package.json @@ -0,0 +1,49 @@ +{ + "name": "body-parser", + "description": "Node.js body parsing middleware", + "version": "2.2.0", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "expressjs/body-parser", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "devDependencies": { + "eslint": "8.34.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-markdown": "3.0.0", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "^11.1.0", + "nyc": "^17.1.0", + "supertest": "^7.0.0" + }, + "files": [ + "lib/", + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">=18" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/bytes/History.md b/node_modules/bytes/History.md new file mode 100644 index 0000000..d60ce0e --- /dev/null +++ b/node_modules/bytes/History.md @@ -0,0 +1,97 @@ +3.1.2 / 2022-01-27 +================== + + * Fix return value for un-parsable strings + +3.1.1 / 2021-11-15 +================== + + * Fix "thousandsSeparator" incorrecting formatting fractional part + +3.1.0 / 2019-01-22 +================== + + * Add petabyte (`pb`) support + +3.0.0 / 2017-08-31 +================== + + * Change "kB" to "KB" in format output + * Remove support for Node.js 0.6 + * Remove support for ComponentJS + +2.5.0 / 2017-03-24 +================== + + * Add option "unit" + +2.4.0 / 2016-06-01 +================== + + * Add option "unitSeparator" + +2.3.0 / 2016-02-15 +================== + + * Drop partial bytes on all parsed units + * Fix non-finite numbers to `.format` to return `null` + * Fix parsing byte string that looks like hex + * perf: hoist regular expressions + +2.2.0 / 2015-11-13 +================== + + * add option "decimalPlaces" + * add option "fixedDecimals" + +2.1.0 / 2015-05-21 +================== + + * add `.format` export + * add `.parse` export + +2.0.2 / 2015-05-20 +================== + + * remove map recreation + * remove unnecessary object construction + +2.0.1 / 2015-05-07 +================== + + * fix browserify require + * remove node.extend dependency + +2.0.0 / 2015-04-12 +================== + + * add option "case" + * add option "thousandsSeparator" + * return "null" on invalid parse input + * support proper round-trip: bytes(bytes(num)) === num + * units no longer case sensitive when parsing + +1.0.0 / 2014-05-05 +================== + + * add negative support. fixes #6 + +0.3.0 / 2014-03-19 +================== + + * added terabyte support + +0.2.1 / 2013-04-01 +================== + + * add .component + +0.2.0 / 2012-10-28 +================== + + * bytes(200).should.eql('200b') + +0.1.0 / 2012-07-04 +================== + + * add bytes to string conversion [yields] diff --git a/node_modules/bytes/LICENSE b/node_modules/bytes/LICENSE new file mode 100644 index 0000000..63e95a9 --- /dev/null +++ b/node_modules/bytes/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015 Jed Watson + +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. diff --git a/node_modules/bytes/Readme.md b/node_modules/bytes/Readme.md new file mode 100644 index 0000000..5790e23 --- /dev/null +++ b/node_modules/bytes/Readme.md @@ -0,0 +1,152 @@ +# Bytes utility + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install bytes +``` + +## Usage + +```js +var bytes = require('bytes'); +``` + +#### bytes(number|string value, [options]): number|string|null + +Default export function. Delegates to either `bytes.format` or `bytes.parse` based on the type of `value`. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number`|`string` | Number value to format or string value to parse | +| options | `Object` | Conversion options for `format` | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`|`number`|`null` | Return null upon error. Numeric value in bytes, or string value otherwise. | + +**Example** + +```js +bytes(1024); +// output: '1KB' + +bytes('1KB'); +// output: 1024 +``` + +#### bytes.format(number value, [options]): string|null + +Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is + rounded. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number` | Value in bytes | +| options | `Object` | Conversion options | + +**Options** + +| Property | Type | Description | +|-------------------|--------|-----------------------------------------------------------------------------------------| +| decimalPlaces | `number`|`null` | Maximum number of decimal places to include in output. Default value to `2`. | +| fixedDecimals | `boolean`|`null` | Whether to always display the maximum number of decimal places. Default value to `false` | +| thousandsSeparator | `string`|`null` | Example of values: `' '`, `','` and `'.'`... Default value to `''`. | +| unit | `string`|`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). | +| unitSeparator | `string`|`null` | Separator to use between number and unit. Default value to `''`. | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`|`null` | Return null upon error. String value otherwise. | + +**Example** + +```js +bytes.format(1024); +// output: '1KB' + +bytes.format(1000); +// output: '1000B' + +bytes.format(1000, {thousandsSeparator: ' '}); +// output: '1 000B' + +bytes.format(1024 * 1.7, {decimalPlaces: 0}); +// output: '2KB' + +bytes.format(1024, {unitSeparator: ' '}); +// output: '1 KB' +``` + +#### bytes.parse(string|number value): number|null + +Parse the string value into an integer in bytes. If no unit is given, or `value` +is a number, it is assumed the value is in bytes. + +Supported units and abbreviations are as follows and are case-insensitive: + + * `b` for bytes + * `kb` for kilobytes + * `mb` for megabytes + * `gb` for gigabytes + * `tb` for terabytes + * `pb` for petabytes + +The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. + +**Arguments** + +| Name | Type | Description | +|---------------|--------|--------------------| +| value | `string`|`number` | String to parse, or number in bytes. | + +**Returns** + +| Name | Type | Description | +|---------|-------------|-------------------------| +| results | `number`|`null` | Return null upon error. Value in bytes otherwise. | + +**Example** + +```js +bytes.parse('1KB'); +// output: 1024 + +bytes.parse('1024'); +// output: 1024 + +bytes.parse(1024); +// output: 1024 +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/visionmedia/bytes.js/master?label=ci +[ci-url]: https://github.com/visionmedia/bytes.js/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master +[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master +[downloads-image]: https://badgen.net/npm/dm/bytes +[downloads-url]: https://npmjs.org/package/bytes +[npm-image]: https://badgen.net/npm/v/bytes +[npm-url]: https://npmjs.org/package/bytes diff --git a/node_modules/bytes/index.js b/node_modules/bytes/index.js new file mode 100644 index 0000000..6f2d0f8 --- /dev/null +++ b/node_modules/bytes/index.js @@ -0,0 +1,170 @@ +/*! + * bytes + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015 Jed Watson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = bytes; +module.exports.format = format; +module.exports.parse = parse; + +/** + * Module variables. + * @private + */ + +var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; + +var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; + +var map = { + b: 1, + kb: 1 << 10, + mb: 1 << 20, + gb: 1 << 30, + tb: Math.pow(1024, 4), + pb: Math.pow(1024, 5), +}; + +var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; + +/** + * Convert the given value in bytes into a string or parse to string to an integer in bytes. + * + * @param {string|number} value + * @param {{ + * case: [string], + * decimalPlaces: [number] + * fixedDecimals: [boolean] + * thousandsSeparator: [string] + * unitSeparator: [string] + * }} [options] bytes options. + * + * @returns {string|number|null} + */ + +function bytes(value, options) { + if (typeof value === 'string') { + return parse(value); + } + + if (typeof value === 'number') { + return format(value, options); + } + + return null; +} + +/** + * Format the given value in bytes into a string. + * + * If the value is negative, it is kept as such. If it is a float, + * it is rounded. + * + * @param {number} value + * @param {object} [options] + * @param {number} [options.decimalPlaces=2] + * @param {number} [options.fixedDecimals=false] + * @param {string} [options.thousandsSeparator=] + * @param {string} [options.unit=] + * @param {string} [options.unitSeparator=] + * + * @returns {string|null} + * @public + */ + +function format(value, options) { + if (!Number.isFinite(value)) { + return null; + } + + var mag = Math.abs(value); + var thousandsSeparator = (options && options.thousandsSeparator) || ''; + var unitSeparator = (options && options.unitSeparator) || ''; + var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; + var fixedDecimals = Boolean(options && options.fixedDecimals); + var unit = (options && options.unit) || ''; + + if (!unit || !map[unit.toLowerCase()]) { + if (mag >= map.pb) { + unit = 'PB'; + } else if (mag >= map.tb) { + unit = 'TB'; + } else if (mag >= map.gb) { + unit = 'GB'; + } else if (mag >= map.mb) { + unit = 'MB'; + } else if (mag >= map.kb) { + unit = 'KB'; + } else { + unit = 'B'; + } + } + + var val = value / map[unit.toLowerCase()]; + var str = val.toFixed(decimalPlaces); + + if (!fixedDecimals) { + str = str.replace(formatDecimalsRegExp, '$1'); + } + + if (thousandsSeparator) { + str = str.split('.').map(function (s, i) { + return i === 0 + ? s.replace(formatThousandsRegExp, thousandsSeparator) + : s + }).join('.'); + } + + return str + unitSeparator + unit; +} + +/** + * Parse the string value into an integer in bytes. + * + * If no unit is given, it is assumed the value is in bytes. + * + * @param {number|string} val + * + * @returns {number|null} + * @public + */ + +function parse(val) { + if (typeof val === 'number' && !isNaN(val)) { + return val; + } + + if (typeof val !== 'string') { + return null; + } + + // Test if the string passed is valid + var results = parseRegExp.exec(val); + var floatValue; + var unit = 'b'; + + if (!results) { + // Nothing could be extracted from the given string + floatValue = parseInt(val, 10); + unit = 'b' + } else { + // Retrieve the value and the unit + floatValue = parseFloat(results[1]); + unit = results[4].toLowerCase(); + } + + if (isNaN(floatValue)) { + return null; + } + + return Math.floor(map[unit] * floatValue); +} diff --git a/node_modules/bytes/package.json b/node_modules/bytes/package.json new file mode 100644 index 0000000..f2b6a8b --- /dev/null +++ b/node_modules/bytes/package.json @@ -0,0 +1,42 @@ +{ + "name": "bytes", + "description": "Utility to parse a string bytes to bytes and vice-versa", + "version": "3.1.2", + "author": "TJ Holowaychuk (http://tjholowaychuk.com)", + "contributors": [ + "Jed Watson ", + "Théo FIDRY " + ], + "license": "MIT", + "keywords": [ + "byte", + "bytes", + "utility", + "parse", + "parser", + "convert", + "converter" + ], + "repository": "visionmedia/bytes.js", + "devDependencies": { + "eslint": "7.32.0", + "eslint-plugin-markdown": "2.2.1", + "mocha": "9.2.0", + "nyc": "15.1.0" + }, + "files": [ + "History.md", + "LICENSE", + "Readme.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --check-leaks --reporter spec", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/call-bind-apply-helpers/.eslintrc b/node_modules/call-bind-apply-helpers/.eslintrc new file mode 100644 index 0000000..201e859 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.eslintrc @@ -0,0 +1,17 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + "id-length": 0, + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + "no-extra-parens": 0, + "no-magic-numbers": 0, + }, +} diff --git a/node_modules/call-bind-apply-helpers/.github/FUNDING.yml b/node_modules/call-bind-apply-helpers/.github/FUNDING.yml new file mode 100644 index 0000000..0011e9d --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/call-bind-apply-helpers +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bind-apply-helpers/.nycrc b/node_modules/call-bind-apply-helpers/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/call-bind-apply-helpers/CHANGELOG.md b/node_modules/call-bind-apply-helpers/CHANGELOG.md new file mode 100644 index 0000000..2484942 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/CHANGELOG.md @@ -0,0 +1,30 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.2](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.1...v1.0.2) - 2025-02-12 + +### Commits + +- [types] improve inferred types [`e6f9586`](https://github.com/ljharb/call-bind-apply-helpers/commit/e6f95860a3c72879cb861a858cdfb8138fbedec1) +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`e43d540`](https://github.com/ljharb/call-bind-apply-helpers/commit/e43d5409f97543bfbb11f345d47d8ce4e066d8c1) + +## [v1.0.1](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.0...v1.0.1) - 2024-12-08 + +### Commits + +- [types] `reflectApply`: fix types [`4efc396`](https://github.com/ljharb/call-bind-apply-helpers/commit/4efc3965351a4f02cc55e836fa391d3d11ef2ef8) +- [Fix] `reflectApply`: oops, Reflect is not a function [`83cc739`](https://github.com/ljharb/call-bind-apply-helpers/commit/83cc7395de6b79b7730bdf092f1436f0b1263c75) +- [Dev Deps] update `@arethetypeswrong/cli` [`80bd5d3`](https://github.com/ljharb/call-bind-apply-helpers/commit/80bd5d3ae58b4f6b6995ce439dd5a1bcb178a940) + +## v1.0.0 - 2024-12-05 + +### Commits + +- Initial implementation, tests, readme [`7879629`](https://github.com/ljharb/call-bind-apply-helpers/commit/78796290f9b7430c9934d6f33d94ae9bc89fce04) +- Initial commit [`3f1dc16`](https://github.com/ljharb/call-bind-apply-helpers/commit/3f1dc164afc43285631b114a5f9dd9137b2b952f) +- npm init [`081df04`](https://github.com/ljharb/call-bind-apply-helpers/commit/081df048c312fcee400922026f6e97281200a603) +- Only apps should have lockfiles [`5b9ca0f`](https://github.com/ljharb/call-bind-apply-helpers/commit/5b9ca0fe8101ebfaf309c549caac4e0a017ed930) diff --git a/node_modules/call-bind-apply-helpers/LICENSE b/node_modules/call-bind-apply-helpers/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +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. diff --git a/node_modules/call-bind-apply-helpers/README.md b/node_modules/call-bind-apply-helpers/README.md new file mode 100644 index 0000000..8fc0dae --- /dev/null +++ b/node_modules/call-bind-apply-helpers/README.md @@ -0,0 +1,62 @@ +# call-bind-apply-helpers [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Helper functions around Function call/apply/bind, for use in `call-bind`. + +The only packages that should likely ever use this package directly are `call-bind` and `get-intrinsic`. +Please use `call-bind` unless you have a very good reason not to. + +## Getting started + +```sh +npm install --save call-bind-apply-helpers +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBindBasic = require('call-bind-apply-helpers'); + +function f(a, b) { + assert.equal(this, 1); + assert.equal(a, 2); + assert.equal(b, 3); + assert.equal(arguments.length, 2); +} + +const fBound = callBindBasic([f, 1]); + +delete Function.prototype.call; +delete Function.prototype.bind; + +fBound(2, 3); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bind-apply-helpers +[npm-version-svg]: https://versionbadg.es/ljharb/call-bind-apply-helpers.svg +[deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers.svg +[deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers +[dev-deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bind-apply-helpers.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bind-apply-helpers.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bind-apply-helpers.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bind-apply-helpers +[codecov-image]: https://codecov.io/gh/ljharb/call-bind-apply-helpers/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind-apply-helpers/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind-apply-helpers +[actions-url]: https://github.com/ljharb/call-bind-apply-helpers/actions diff --git a/node_modules/call-bind-apply-helpers/actualApply.d.ts b/node_modules/call-bind-apply-helpers/actualApply.d.ts new file mode 100644 index 0000000..b87286a --- /dev/null +++ b/node_modules/call-bind-apply-helpers/actualApply.d.ts @@ -0,0 +1 @@ +export = Reflect.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/actualApply.js b/node_modules/call-bind-apply-helpers/actualApply.js new file mode 100644 index 0000000..ffa5135 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/actualApply.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); + +var $apply = require('./functionApply'); +var $call = require('./functionCall'); +var $reflectApply = require('./reflectApply'); + +/** @type {import('./actualApply')} */ +module.exports = $reflectApply || bind.call($call, $apply); diff --git a/node_modules/call-bind-apply-helpers/applyBind.d.ts b/node_modules/call-bind-apply-helpers/applyBind.d.ts new file mode 100644 index 0000000..d176c1a --- /dev/null +++ b/node_modules/call-bind-apply-helpers/applyBind.d.ts @@ -0,0 +1,19 @@ +import actualApply from './actualApply'; + +type TupleSplitHead = T['length'] extends N + ? T + : T extends [...infer R, any] + ? TupleSplitHead + : never + +type TupleSplitTail = O['length'] extends N + ? T + : T extends [infer F, ...infer R] + ? TupleSplitTail<[...R], N, [...O, F]> + : never + +type TupleSplit = [TupleSplitHead, TupleSplitTail] + +declare function applyBind(...args: TupleSplit, 2>[1]): ReturnType; + +export = applyBind; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/applyBind.js b/node_modules/call-bind-apply-helpers/applyBind.js new file mode 100644 index 0000000..d2b7723 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/applyBind.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); +var $apply = require('./functionApply'); +var actualApply = require('./actualApply'); + +/** @type {import('./applyBind')} */ +module.exports = function applyBind() { + return actualApply(bind, $apply, arguments); +}; diff --git a/node_modules/call-bind-apply-helpers/functionApply.d.ts b/node_modules/call-bind-apply-helpers/functionApply.d.ts new file mode 100644 index 0000000..1f6e11b --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionApply.d.ts @@ -0,0 +1 @@ +export = Function.prototype.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionApply.js b/node_modules/call-bind-apply-helpers/functionApply.js new file mode 100644 index 0000000..c71df9c --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionApply')} */ +module.exports = Function.prototype.apply; diff --git a/node_modules/call-bind-apply-helpers/functionCall.d.ts b/node_modules/call-bind-apply-helpers/functionCall.d.ts new file mode 100644 index 0000000..15e93df --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionCall.d.ts @@ -0,0 +1 @@ +export = Function.prototype.call; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionCall.js b/node_modules/call-bind-apply-helpers/functionCall.js new file mode 100644 index 0000000..7a8d873 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionCall.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionCall')} */ +module.exports = Function.prototype.call; diff --git a/node_modules/call-bind-apply-helpers/index.d.ts b/node_modules/call-bind-apply-helpers/index.d.ts new file mode 100644 index 0000000..541516b --- /dev/null +++ b/node_modules/call-bind-apply-helpers/index.d.ts @@ -0,0 +1,64 @@ +type RemoveFromTuple< + Tuple extends readonly unknown[], + RemoveCount extends number, + Index extends 1[] = [] +> = Index["length"] extends RemoveCount + ? Tuple + : Tuple extends [infer First, ...infer Rest] + ? RemoveFromTuple + : Tuple; + +type ConcatTuples< + Prefix extends readonly unknown[], + Suffix extends readonly unknown[] +> = [...Prefix, ...Suffix]; + +type ExtractFunctionParams = T extends (this: infer TThis, ...args: infer P extends readonly unknown[]) => infer R + ? { thisArg: TThis; params: P; returnType: R } + : never; + +type BindFunction< + T extends (this: any, ...args: any[]) => any, + TThis, + TBoundArgs extends readonly unknown[], + ReceiverBound extends boolean +> = ExtractFunctionParams extends { + thisArg: infer OrigThis; + params: infer P extends readonly unknown[]; + returnType: infer R; +} + ? ReceiverBound extends true + ? (...args: RemoveFromTuple>) => R extends [OrigThis, ...infer Rest] + ? [TThis, ...Rest] // Replace `this` with `thisArg` + : R + : >>( + thisArg: U, + ...args: RemainingArgs + ) => R extends [OrigThis, ...infer Rest] + ? [U, ...ConcatTuples] // Preserve bound args in return type + : R + : never; + +declare function callBind< + const T extends (this: any, ...args: any[]) => any, + Extracted extends ExtractFunctionParams, + const TBoundArgs extends Partial & readonly unknown[], + const TThis extends Extracted["thisArg"] +>( + args: [fn: T, thisArg: TThis, ...boundArgs: TBoundArgs] +): BindFunction; + +declare function callBind< + const T extends (this: any, ...args: any[]) => any, + Extracted extends ExtractFunctionParams, + const TBoundArgs extends Partial & readonly unknown[] +>( + args: [fn: T, ...boundArgs: TBoundArgs] +): BindFunction; + +declare function callBind( + args: [fn: Exclude, ...rest: TArgs] +): never; + +// export as namespace callBind; +export = callBind; diff --git a/node_modules/call-bind-apply-helpers/index.js b/node_modules/call-bind-apply-helpers/index.js new file mode 100644 index 0000000..2f6dab4 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/index.js @@ -0,0 +1,15 @@ +'use strict'; + +var bind = require('function-bind'); +var $TypeError = require('es-errors/type'); + +var $call = require('./functionCall'); +var $actualApply = require('./actualApply'); + +/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */ +module.exports = function callBindBasic(args) { + if (args.length < 1 || typeof args[0] !== 'function') { + throw new $TypeError('a function is required'); + } + return $actualApply(bind, $call, args); +}; diff --git a/node_modules/call-bind-apply-helpers/package.json b/node_modules/call-bind-apply-helpers/package.json new file mode 100644 index 0000000..923b8be --- /dev/null +++ b/node_modules/call-bind-apply-helpers/package.json @@ -0,0 +1,85 @@ +{ + "name": "call-bind-apply-helpers", + "version": "1.0.2", + "description": "Helper functions around Function call/apply/bind, for use in `call-bind`", + "main": "index.js", + "exports": { + ".": "./index.js", + "./actualApply": "./actualApply.js", + "./applyBind": "./applyBind.js", + "./functionApply": "./functionApply.js", + "./functionCall": "./functionCall.js", + "./reflectApply": "./reflectApply.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bind-apply-helpers.git" + }, + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bind-apply-helpers/issues" + }, + "homepage": "https://github.com/ljharb/call-bind-apply-helpers#readme", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.3", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.3", + "@types/for-each": "^0.3.3", + "@types/function-bind": "^1.1.10", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.8.1", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.7.1", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.5", + "has-strict-mode": "^1.1.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.4", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/call-bind-apply-helpers/reflectApply.d.ts b/node_modules/call-bind-apply-helpers/reflectApply.d.ts new file mode 100644 index 0000000..6b2ae76 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/reflectApply.d.ts @@ -0,0 +1,3 @@ +declare const reflectApply: false | typeof Reflect.apply; + +export = reflectApply; diff --git a/node_modules/call-bind-apply-helpers/reflectApply.js b/node_modules/call-bind-apply-helpers/reflectApply.js new file mode 100644 index 0000000..3d03caa --- /dev/null +++ b/node_modules/call-bind-apply-helpers/reflectApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./reflectApply')} */ +module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; diff --git a/node_modules/call-bind-apply-helpers/test/index.js b/node_modules/call-bind-apply-helpers/test/index.js new file mode 100644 index 0000000..1cdc89e --- /dev/null +++ b/node_modules/call-bind-apply-helpers/test/index.js @@ -0,0 +1,63 @@ +'use strict'; + +var callBind = require('../'); +var hasStrictMode = require('has-strict-mode')(); +var forEach = require('for-each'); +var inspect = require('object-inspect'); +var v = require('es-value-fixtures'); + +var test = require('tape'); + +test('callBindBasic', function (t) { + forEach(v.nonFunctions, function (nonFunction) { + t['throws']( + // @ts-expect-error + function () { callBind([nonFunction]); }, + TypeError, + inspect(nonFunction) + ' is not a function' + ); + }); + + var sentinel = { sentinel: true }; + /** @type {(this: T, a: A, b: B) => [T | undefined, A, B]} */ + var func = function (a, b) { + // eslint-disable-next-line no-invalid-this + return [!hasStrictMode && this === global ? undefined : this, a, b]; + }; + t.equal(func.length, 2, 'original function length is 2'); + + /** type {(thisArg: unknown, a: number, b: number) => [unknown, number, number]} */ + var bound = callBind([func]); + /** type {((a: number, b: number) => [typeof sentinel, typeof a, typeof b])} */ + var boundR = callBind([func, sentinel]); + /** type {((b: number) => [typeof sentinel, number, typeof b])} */ + var boundArg = callBind([func, sentinel, /** @type {const} */ (1)]); + + // @ts-expect-error + t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with no args'); + + // @ts-expect-error + t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args'); + // @ts-expect-error + t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func too few args'); + // @ts-expect-error + t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args'); + // @ts-expect-error + t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args'); + + t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args'); + t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with right args'); + t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args'); + t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg'); + + // @ts-expect-error + t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args'); + // @ts-expect-error + t.deepEqual(bound(1, 2, 3, 4), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args'); + // @ts-expect-error + t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args'); + // @ts-expect-error + t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args'); + + t.end(); +}); diff --git a/node_modules/call-bind-apply-helpers/tsconfig.json b/node_modules/call-bind-apply-helpers/tsconfig.json new file mode 100644 index 0000000..aef9993 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} \ No newline at end of file diff --git a/node_modules/call-bound/.eslintrc b/node_modules/call-bound/.eslintrc new file mode 100644 index 0000000..2612ed8 --- /dev/null +++ b/node_modules/call-bound/.eslintrc @@ -0,0 +1,13 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/node_modules/call-bound/.github/FUNDING.yml b/node_modules/call-bound/.github/FUNDING.yml new file mode 100644 index 0000000..2a2a135 --- /dev/null +++ b/node_modules/call-bound/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/call-bound +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bound/.nycrc b/node_modules/call-bound/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/call-bound/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/call-bound/CHANGELOG.md b/node_modules/call-bound/CHANGELOG.md new file mode 100644 index 0000000..8bde4e9 --- /dev/null +++ b/node_modules/call-bound/CHANGELOG.md @@ -0,0 +1,42 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.4](https://github.com/ljharb/call-bound/compare/v1.0.3...v1.0.4) - 2025-03-03 + +### Commits + +- [types] improve types [`e648922`](https://github.com/ljharb/call-bound/commit/e6489222a9e54f350fbf952ceabe51fd8b6027ff) +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`a42a5eb`](https://github.com/ljharb/call-bound/commit/a42a5ebe6c1b54fcdc7997c7dc64fdca9e936719) +- [Deps] update `call-bind-apply-helpers`, `get-intrinsic` [`f529eac`](https://github.com/ljharb/call-bound/commit/f529eac132404c17156bbc23ab2297a25d0f20b8) + +## [v1.0.3](https://github.com/ljharb/call-bound/compare/v1.0.2...v1.0.3) - 2024-12-15 + +### Commits + +- [Refactor] use `call-bind-apply-helpers` instead of `call-bind` [`5e0b134`](https://github.com/ljharb/call-bound/commit/5e0b13496df14fb7d05dae9412f088da8d3f75be) +- [Deps] update `get-intrinsic` [`41fc967`](https://github.com/ljharb/call-bound/commit/41fc96732a22c7b7e8f381f93ccc54bb6293be2e) +- [readme] fix example [`79a0137`](https://github.com/ljharb/call-bound/commit/79a0137723f7c6d09c9c05452bbf8d5efb5d6e49) +- [meta] add `sideEffects` flag [`08b07be`](https://github.com/ljharb/call-bound/commit/08b07be7f1c03f67dc6f3cdaf0906259771859f7) + +## [v1.0.2](https://github.com/ljharb/call-bound/compare/v1.0.1...v1.0.2) - 2024-12-10 + +### Commits + +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `gopd` [`e6a5ffe`](https://github.com/ljharb/call-bound/commit/e6a5ffe849368fe4f74dfd6cdeca1b9baa39e8d5) +- [Deps] update `call-bind`, `get-intrinsic` [`2aeb5b5`](https://github.com/ljharb/call-bound/commit/2aeb5b521dc2b2683d1345c753ea1161de2d1c14) +- [types] improve return type [`1a0c9fe`](https://github.com/ljharb/call-bound/commit/1a0c9fe3114471e7ca1f57d104e2efe713bb4871) + +## v1.0.1 - 2024-12-05 + +### Commits + +- Initial implementation, tests, readme, types [`6d94121`](https://github.com/ljharb/call-bound/commit/6d94121a9243602e506334069f7a03189fe3363d) +- Initial commit [`0eae867`](https://github.com/ljharb/call-bound/commit/0eae867334ea025c33e6e91cdecfc9df96680cf9) +- npm init [`71b2479`](https://github.com/ljharb/call-bound/commit/71b2479c6723e0b7d91a6b663613067e98b7b275) +- Only apps should have lockfiles [`c3754a9`](https://github.com/ljharb/call-bound/commit/c3754a949b7f9132b47e2d18c1729889736741eb) +- [actions] skip `npm ls` in node < 10 [`74275a5`](https://github.com/ljharb/call-bound/commit/74275a5186b8caf6309b6b97472bdcb0df4683a8) +- [Dev Deps] add missing peer dep [`1354de8`](https://github.com/ljharb/call-bound/commit/1354de8679413e4ae9c523d85f76fa7a5e032d97) diff --git a/node_modules/call-bound/LICENSE b/node_modules/call-bound/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/call-bound/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +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. diff --git a/node_modules/call-bound/README.md b/node_modules/call-bound/README.md new file mode 100644 index 0000000..a44e43e --- /dev/null +++ b/node_modules/call-bound/README.md @@ -0,0 +1,53 @@ +# call-bound [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`. + +## Getting started + +```sh +npm install --save call-bound +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBound = require('call-bound'); + +const slice = callBound('Array.prototype.slice'); + +delete Function.prototype.call; +delete Function.prototype.bind; +delete Array.prototype.slice; + +assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bound +[npm-version-svg]: https://versionbadg.es/ljharb/call-bound.svg +[deps-svg]: https://david-dm.org/ljharb/call-bound.svg +[deps-url]: https://david-dm.org/ljharb/call-bound +[dev-deps-svg]: https://david-dm.org/ljharb/call-bound/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bound#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bound.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bound.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bound.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bound +[codecov-image]: https://codecov.io/gh/ljharb/call-bound/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bound/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bound +[actions-url]: https://github.com/ljharb/call-bound/actions diff --git a/node_modules/call-bound/index.d.ts b/node_modules/call-bound/index.d.ts new file mode 100644 index 0000000..5562f00 --- /dev/null +++ b/node_modules/call-bound/index.d.ts @@ -0,0 +1,94 @@ +type Intrinsic = typeof globalThis; + +type IntrinsicName = keyof Intrinsic | `%${keyof Intrinsic}%`; + +type IntrinsicPath = IntrinsicName | `${StripPercents}.${string}` | `%${StripPercents}.${string}%`; + +type AllowMissing = boolean; + +type StripPercents = T extends `%${infer U}%` ? U : T; + +type BindMethodPrecise = + F extends (this: infer This, ...args: infer Args) => infer R + ? (obj: This, ...args: Args) => R + : F extends { + (this: infer This1, ...args: infer Args1): infer R1; + (this: infer This2, ...args: infer Args2): infer R2 + } + ? { + (obj: This1, ...args: Args1): R1; + (obj: This2, ...args: Args2): R2 + } + : never + +// Extract method type from a prototype +type GetPrototypeMethod = + (typeof globalThis)[T] extends { prototype: any } + ? M extends keyof (typeof globalThis)[T]['prototype'] + ? (typeof globalThis)[T]['prototype'][M] + : never + : never + +// Get static property/method +type GetStaticMember = + P extends keyof (typeof globalThis)[T] ? (typeof globalThis)[T][P] : never + +// Type that maps string path to actual bound function or value with better precision +type BoundIntrinsic = + S extends `${infer Obj}.prototype.${infer Method}` + ? Obj extends keyof typeof globalThis + ? BindMethodPrecise> + : unknown + : S extends `${infer Obj}.${infer Prop}` + ? Obj extends keyof typeof globalThis + ? GetStaticMember + : unknown + : unknown + +declare function arraySlice(array: readonly T[], start?: number, end?: number): T[]; +declare function arraySlice(array: ArrayLike, start?: number, end?: number): T[]; +declare function arraySlice(array: IArguments, start?: number, end?: number): T[]; + +// Special cases for methods that need explicit typing +interface SpecialCases { + '%Object.prototype.isPrototypeOf%': (thisArg: {}, obj: unknown) => boolean; + '%String.prototype.replace%': { + (str: string, searchValue: string | RegExp, replaceValue: string): string; + (str: string, searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string + }; + '%Object.prototype.toString%': (obj: {}) => string; + '%Object.prototype.hasOwnProperty%': (obj: {}, v: PropertyKey) => boolean; + '%Array.prototype.slice%': typeof arraySlice; + '%Array.prototype.map%': (array: readonly T[], callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any) => U[]; + '%Array.prototype.filter%': (array: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any) => T[]; + '%Array.prototype.indexOf%': (array: readonly T[], searchElement: T, fromIndex?: number) => number; + '%Function.prototype.apply%': (fn: (...args: A) => R, thisArg: any, args: A) => R; + '%Function.prototype.call%': (fn: (...args: A) => R, thisArg: any, ...args: A) => R; + '%Function.prototype.bind%': (fn: (...args: A) => R, thisArg: any, ...args: A) => (...remainingArgs: A) => R; + '%Promise.prototype.then%': { + (promise: Promise, onfulfilled: (value: T) => R | PromiseLike): Promise; + (promise: Promise, onfulfilled: ((value: T) => R | PromiseLike) | undefined | null, onrejected: (reason: any) => R | PromiseLike): Promise; + }; + '%RegExp.prototype.test%': (regexp: RegExp, str: string) => boolean; + '%RegExp.prototype.exec%': (regexp: RegExp, str: string) => RegExpExecArray | null; + '%Error.prototype.toString%': (error: Error) => string; + '%TypeError.prototype.toString%': (error: TypeError) => string; + '%String.prototype.split%': ( + obj: unknown, + splitter: string | RegExp | { + [Symbol.split](string: string, limit?: number): string[]; + }, + limit?: number | undefined + ) => string[]; +} + +/** + * Returns a bound function for a prototype method, or a value for a static property. + * + * @param name - The name of the intrinsic (e.g. 'Array.prototype.slice') + * @param {AllowMissing} [allowMissing] - Whether to allow missing intrinsics (default: false) + */ +declare function callBound, S extends IntrinsicPath>(name: K, allowMissing?: AllowMissing): SpecialCases[`%${StripPercents}%`]; +declare function callBound, S extends IntrinsicPath>(name: S, allowMissing?: AllowMissing): BoundIntrinsic; + +export = callBound; diff --git a/node_modules/call-bound/index.js b/node_modules/call-bound/index.js new file mode 100644 index 0000000..e9ade74 --- /dev/null +++ b/node_modules/call-bound/index.js @@ -0,0 +1,19 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var callBindBasic = require('call-bind-apply-helpers'); + +/** @type {(thisArg: string, searchString: string, position?: number) => number} */ +var $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]); + +/** @type {import('.')} */ +module.exports = function callBoundIntrinsic(name, allowMissing) { + /* eslint no-extra-parens: 0 */ + + var intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing)); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBindBasic(/** @type {const} */ ([intrinsic])); + } + return intrinsic; +}; diff --git a/node_modules/call-bound/package.json b/node_modules/call-bound/package.json new file mode 100644 index 0000000..d542db4 --- /dev/null +++ b/node_modules/call-bound/package.json @@ -0,0 +1,99 @@ +{ + "name": "call-bound", + "version": "1.0.4", + "description": "Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bound.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "callbind", + "callbound", + "call", + "bind", + "bound", + "call-bind", + "call-bound", + "function", + "es-abstract" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bound/issues" + }, + "homepage": "https://github.com/ljharb/call-bound#readme", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.4", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.3.0", + "@types/call-bind": "^1.0.5", + "@types/get-intrinsic": "^1.2.3", + "@types/tape": "^5.8.1", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.7.1", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "has-strict-mode": "^1.1.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.4", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/call-bound/test/index.js b/node_modules/call-bound/test/index.js new file mode 100644 index 0000000..a2fc9f0 --- /dev/null +++ b/node_modules/call-bound/test/index.js @@ -0,0 +1,61 @@ +'use strict'; + +var test = require('tape'); + +var callBound = require('../'); + +/** @template {true} T @template U @typedef {T extends U ? T : never} AssertType */ + +test('callBound', function (t) { + // static primitive + t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself'); + t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself'); + + // static non-function object + t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself'); + t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself'); + t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself'); + t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself'); + + // static function + t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself'); + t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself'); + + // prototype primitive + t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself'); + t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself'); + + var x = callBound('Object.prototype.toString'); + var y = callBound('%Object.prototype.toString%'); + + // prototype function + t.notEqual(x, Object.prototype.toString, 'Object.prototype.toString does not yield itself'); + t.notEqual(y, Object.prototype.toString, '%Object.prototype.toString% does not yield itself'); + t.equal(x(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original'); + t.equal(y(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original'); + + t['throws']( + // @ts-expect-error + function () { callBound('does not exist'); }, + SyntaxError, + 'nonexistent intrinsic throws' + ); + t['throws']( + // @ts-expect-error + function () { callBound('does not exist', true); }, + SyntaxError, + 'allowMissing arg still throws for unknown intrinsic' + ); + + t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) { + st['throws']( + function () { callBound('WeakRef'); }, + TypeError, + 'real but absent intrinsic throws' + ); + st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception'); + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/call-bound/tsconfig.json b/node_modules/call-bound/tsconfig.json new file mode 100644 index 0000000..8976d98 --- /dev/null +++ b/node_modules/call-bound/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "ESNext", + "lib": ["es2024"], + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/content-disposition/HISTORY.md b/node_modules/content-disposition/HISTORY.md new file mode 100644 index 0000000..ff0b68b --- /dev/null +++ b/node_modules/content-disposition/HISTORY.md @@ -0,0 +1,66 @@ +1.0.0 / 2024-08-31 +================== + + * drop node <18 + * allow utf8 as alias for utf-8 + +0.5.4 / 2021-12-10 +================== + + * deps: safe-buffer@5.2.1 + +0.5.3 / 2018-12-17 +================== + + * Use `safe-buffer` for improved Buffer API + +0.5.2 / 2016-12-08 +================== + + * Fix `parse` to accept any linear whitespace character + +0.5.1 / 2016-01-17 +================== + + * perf: enable strict mode + +0.5.0 / 2014-10-11 +================== + + * Add `parse` function + +0.4.0 / 2014-09-21 +================== + + * Expand non-Unicode `filename` to the full ISO-8859-1 charset + +0.3.0 / 2014-09-20 +================== + + * Add `fallback` option + * Add `type` option + +0.2.0 / 2014-09-19 +================== + + * Reduce ambiguity of file names with hex escape in buggy browsers + +0.1.2 / 2014-09-19 +================== + + * Fix periodic invalid Unicode filename header + +0.1.1 / 2014-09-19 +================== + + * Fix invalid characters appearing in `filename*` parameter + +0.1.0 / 2014-09-18 +================== + + * Make the `filename` argument optional + +0.0.0 / 2014-09-18 +================== + + * Initial release diff --git a/node_modules/content-disposition/LICENSE b/node_modules/content-disposition/LICENSE new file mode 100644 index 0000000..84441fb --- /dev/null +++ b/node_modules/content-disposition/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +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. diff --git a/node_modules/content-disposition/README.md b/node_modules/content-disposition/README.md new file mode 100644 index 0000000..3a0bb05 --- /dev/null +++ b/node_modules/content-disposition/README.md @@ -0,0 +1,142 @@ +# content-disposition + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Create and parse HTTP `Content-Disposition` header + +## Installation + +```sh +$ npm install content-disposition +``` + +## API + +```js +var contentDisposition = require('content-disposition') +``` + +### contentDisposition(filename, options) + +Create an attachment `Content-Disposition` header value using the given file name, +if supplied. The `filename` is optional and if no file name is desired, but you +want to specify `options`, set `filename` to `undefined`. + +```js +res.setHeader('Content-Disposition', contentDisposition('∫ maths.pdf')) +``` + +**note** HTTP headers are of the ISO-8859-1 character set. If you are writing this +header through a means different from `setHeader` in Node.js, you'll want to specify +the `'binary'` encoding in Node.js. + +#### Options + +`contentDisposition` accepts these properties in the options object. + +##### fallback + +If the `filename` option is outside ISO-8859-1, then the file name is actually +stored in a supplemental field for clients that support Unicode file names and +a ISO-8859-1 version of the file name is automatically generated. + +This specifies the ISO-8859-1 file name to override the automatic generation or +disables the generation all together, defaults to `true`. + + - A string will specify the ISO-8859-1 file name to use in place of automatic + generation. + - `false` will disable including a ISO-8859-1 file name and only include the + Unicode version (unless the file name is already ISO-8859-1). + - `true` will enable automatic generation if the file name is outside ISO-8859-1. + +If the `filename` option is ISO-8859-1 and this option is specified and has a +different value, then the `filename` option is encoded in the extended field +and this set as the fallback field, even though they are both ISO-8859-1. + +##### type + +Specifies the disposition type, defaults to `"attachment"`. This can also be +`"inline"`, or any other value (all values except inline are treated like +`attachment`, but can convey additional information if both parties agree to +it). The type is normalized to lower-case. + +### contentDisposition.parse(string) + +```js +var disposition = contentDisposition.parse('attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt') +``` + +Parse a `Content-Disposition` header string. This automatically handles extended +("Unicode") parameters by decoding them and providing them under the standard +parameter name. This will return an object with the following properties (examples +are shown for the string `'attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt'`): + + - `type`: The disposition type (always lower case). Example: `'attachment'` + + - `parameters`: An object of the parameters in the disposition (name of parameter + always lower case and extended versions replace non-extended versions). Example: + `{filename: "€ rates.txt"}` + +## Examples + +### Send a file for download + +```js +var contentDisposition = require('content-disposition') +var destroy = require('destroy') +var fs = require('fs') +var http = require('http') +var onFinished = require('on-finished') + +var filePath = '/path/to/public/plans.pdf' + +http.createServer(function onRequest (req, res) { + // set headers + res.setHeader('Content-Type', 'application/pdf') + res.setHeader('Content-Disposition', contentDisposition(filePath)) + + // send file + var stream = fs.createReadStream(filePath) + stream.pipe(res) + onFinished(res, function () { + destroy(stream) + }) +}) +``` + +## Testing + +```sh +$ npm test +``` + +## References + +- [RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1][rfc-2616] +- [RFC 5987: Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters][rfc-5987] +- [RFC 6266: Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)][rfc-6266] +- [Test Cases for HTTP Content-Disposition header field (RFC 6266) and the Encodings defined in RFCs 2047, 2231 and 5987][tc-2231] + +[rfc-2616]: https://tools.ietf.org/html/rfc2616 +[rfc-5987]: https://tools.ietf.org/html/rfc5987 +[rfc-6266]: https://tools.ietf.org/html/rfc6266 +[tc-2231]: http://greenbytes.de/tech/tc2231/ + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/content-disposition.svg +[npm-url]: https://npmjs.org/package/content-disposition +[node-version-image]: https://img.shields.io/node/v/content-disposition.svg +[node-version-url]: https://nodejs.org/en/download +[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-disposition.svg +[coveralls-url]: https://coveralls.io/r/jshttp/content-disposition?branch=master +[downloads-image]: https://img.shields.io/npm/dm/content-disposition.svg +[downloads-url]: https://npmjs.org/package/content-disposition +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/jshttp/content-disposition/ci/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/content-disposition?query=workflow%3Aci diff --git a/node_modules/content-disposition/index.js b/node_modules/content-disposition/index.js new file mode 100644 index 0000000..44f1d51 --- /dev/null +++ b/node_modules/content-disposition/index.js @@ -0,0 +1,459 @@ +/*! + * content-disposition + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = contentDisposition +module.exports.parse = parse + +/** + * Module dependencies. + * @private + */ + +var basename = require('path').basename +var Buffer = require('safe-buffer').Buffer + +/** + * RegExp to match non attr-char, *after* encodeURIComponent (i.e. not including "%") + * @private + */ + +var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g // eslint-disable-line no-control-regex + +/** + * RegExp to match percent encoding escape. + * @private + */ + +var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/ +var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g + +/** + * RegExp to match non-latin1 characters. + * @private + */ + +var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g + +/** + * RegExp to match quoted-pair in RFC 2616 + * + * quoted-pair = "\" CHAR + * CHAR = + * @private + */ + +var QESC_REGEXP = /\\([\u0000-\u007f])/g // eslint-disable-line no-control-regex + +/** + * RegExp to match chars that must be quoted-pair in RFC 2616 + * @private + */ + +var QUOTE_REGEXP = /([\\"])/g + +/** + * RegExp for various RFC 2616 grammar + * + * parameter = token "=" ( token | quoted-string ) + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) + * qdtext = > + * quoted-pair = "\" CHAR + * CHAR = + * TEXT = + * LWS = [CRLF] 1*( SP | HT ) + * CRLF = CR LF + * CR = + * LF = + * SP = + * HT = + * CTL = + * OCTET = + * @private + */ + +var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g // eslint-disable-line no-control-regex +var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/ +var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/ + +/** + * RegExp for various RFC 5987 grammar + * + * ext-value = charset "'" [ language ] "'" value-chars + * charset = "UTF-8" / "ISO-8859-1" / mime-charset + * mime-charset = 1*mime-charsetc + * mime-charsetc = ALPHA / DIGIT + * / "!" / "#" / "$" / "%" / "&" + * / "+" / "-" / "^" / "_" / "`" + * / "{" / "}" / "~" + * language = ( 2*3ALPHA [ extlang ] ) + * / 4ALPHA + * / 5*8ALPHA + * extlang = *3( "-" 3ALPHA ) + * value-chars = *( pct-encoded / attr-char ) + * pct-encoded = "%" HEXDIG HEXDIG + * attr-char = ALPHA / DIGIT + * / "!" / "#" / "$" / "&" / "+" / "-" / "." + * / "^" / "_" / "`" / "|" / "~" + * @private + */ + +var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/ + +/** + * RegExp for various RFC 6266 grammar + * + * disposition-type = "inline" | "attachment" | disp-ext-type + * disp-ext-type = token + * disposition-parm = filename-parm | disp-ext-parm + * filename-parm = "filename" "=" value + * | "filename*" "=" ext-value + * disp-ext-parm = token "=" value + * | ext-token "=" ext-value + * ext-token = + * @private + */ + +var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/ // eslint-disable-line no-control-regex + +/** + * Create an attachment Content-Disposition header. + * + * @param {string} [filename] + * @param {object} [options] + * @param {string} [options.type=attachment] + * @param {string|boolean} [options.fallback=true] + * @return {string} + * @public + */ + +function contentDisposition (filename, options) { + var opts = options || {} + + // get type + var type = opts.type || 'attachment' + + // get parameters + var params = createparams(filename, opts.fallback) + + // format into string + return format(new ContentDisposition(type, params)) +} + +/** + * Create parameters object from filename and fallback. + * + * @param {string} [filename] + * @param {string|boolean} [fallback=true] + * @return {object} + * @private + */ + +function createparams (filename, fallback) { + if (filename === undefined) { + return + } + + var params = {} + + if (typeof filename !== 'string') { + throw new TypeError('filename must be a string') + } + + // fallback defaults to true + if (fallback === undefined) { + fallback = true + } + + if (typeof fallback !== 'string' && typeof fallback !== 'boolean') { + throw new TypeError('fallback must be a string or boolean') + } + + if (typeof fallback === 'string' && NON_LATIN1_REGEXP.test(fallback)) { + throw new TypeError('fallback must be ISO-8859-1 string') + } + + // restrict to file base name + var name = basename(filename) + + // determine if name is suitable for quoted string + var isQuotedString = TEXT_REGEXP.test(name) + + // generate fallback name + var fallbackName = typeof fallback !== 'string' + ? fallback && getlatin1(name) + : basename(fallback) + var hasFallback = typeof fallbackName === 'string' && fallbackName !== name + + // set extended filename parameter + if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) { + params['filename*'] = name + } + + // set filename parameter + if (isQuotedString || hasFallback) { + params.filename = hasFallback + ? fallbackName + : name + } + + return params +} + +/** + * Format object to Content-Disposition header. + * + * @param {object} obj + * @param {string} obj.type + * @param {object} [obj.parameters] + * @return {string} + * @private + */ + +function format (obj) { + var parameters = obj.parameters + var type = obj.type + + if (!type || typeof type !== 'string' || !TOKEN_REGEXP.test(type)) { + throw new TypeError('invalid type') + } + + // start with normalized type + var string = String(type).toLowerCase() + + // append parameters + if (parameters && typeof parameters === 'object') { + var param + var params = Object.keys(parameters).sort() + + for (var i = 0; i < params.length; i++) { + param = params[i] + + var val = param.slice(-1) === '*' + ? ustring(parameters[param]) + : qstring(parameters[param]) + + string += '; ' + param + '=' + val + } + } + + return string +} + +/** + * Decode a RFC 5987 field value (gracefully). + * + * @param {string} str + * @return {string} + * @private + */ + +function decodefield (str) { + var match = EXT_VALUE_REGEXP.exec(str) + + if (!match) { + throw new TypeError('invalid extended field value') + } + + var charset = match[1].toLowerCase() + var encoded = match[2] + var value + + // to binary string + var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode) + + switch (charset) { + case 'iso-8859-1': + value = getlatin1(binary) + break + case 'utf-8': + case 'utf8': + value = Buffer.from(binary, 'binary').toString('utf8') + break + default: + throw new TypeError('unsupported charset in extended field') + } + + return value +} + +/** + * Get ISO-8859-1 version of string. + * + * @param {string} val + * @return {string} + * @private + */ + +function getlatin1 (val) { + // simple Unicode -> ISO-8859-1 transformation + return String(val).replace(NON_LATIN1_REGEXP, '?') +} + +/** + * Parse Content-Disposition header string. + * + * @param {string} string + * @return {object} + * @public + */ + +function parse (string) { + if (!string || typeof string !== 'string') { + throw new TypeError('argument string is required') + } + + var match = DISPOSITION_TYPE_REGEXP.exec(string) + + if (!match) { + throw new TypeError('invalid type format') + } + + // normalize type + var index = match[0].length + var type = match[1].toLowerCase() + + var key + var names = [] + var params = {} + var value + + // calculate index to start at + index = PARAM_REGEXP.lastIndex = match[0].slice(-1) === ';' + ? index - 1 + : index + + // match parameters + while ((match = PARAM_REGEXP.exec(string))) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length + key = match[1].toLowerCase() + value = match[2] + + if (names.indexOf(key) !== -1) { + throw new TypeError('invalid duplicate parameter') + } + + names.push(key) + + if (key.indexOf('*') + 1 === key.length) { + // decode extended value + key = key.slice(0, -1) + value = decodefield(value) + + // overwrite existing value + params[key] = value + continue + } + + if (typeof params[key] === 'string') { + continue + } + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .slice(1, -1) + .replace(QESC_REGEXP, '$1') + } + + params[key] = value + } + + if (index !== -1 && index !== string.length) { + throw new TypeError('invalid parameter format') + } + + return new ContentDisposition(type, params) +} + +/** + * Percent decode a single character. + * + * @param {string} str + * @param {string} hex + * @return {string} + * @private + */ + +function pdecode (str, hex) { + return String.fromCharCode(parseInt(hex, 16)) +} + +/** + * Percent encode a single character. + * + * @param {string} char + * @return {string} + * @private + */ + +function pencode (char) { + return '%' + String(char) + .charCodeAt(0) + .toString(16) + .toUpperCase() +} + +/** + * Quote a string for HTTP. + * + * @param {string} val + * @return {string} + * @private + */ + +function qstring (val) { + var str = String(val) + + return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' +} + +/** + * Encode a Unicode string for HTTP (RFC 5987). + * + * @param {string} val + * @return {string} + * @private + */ + +function ustring (val) { + var str = String(val) + + // percent encode as UTF-8 + var encoded = encodeURIComponent(str) + .replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode) + + return 'UTF-8\'\'' + encoded +} + +/** + * Class for parsed Content-Disposition header for v8 optimization + * + * @public + * @param {string} type + * @param {object} parameters + * @constructor + */ + +function ContentDisposition (type, parameters) { + this.type = type + this.parameters = parameters +} diff --git a/node_modules/content-disposition/package.json b/node_modules/content-disposition/package.json new file mode 100644 index 0000000..5cea50b --- /dev/null +++ b/node_modules/content-disposition/package.json @@ -0,0 +1,44 @@ +{ + "name": "content-disposition", + "description": "Create and parse Content-Disposition header", + "version": "1.0.0", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "content-disposition", + "http", + "rfc6266", + "res" + ], + "repository": "jshttp/content-disposition", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "7.32.0", + "eslint-config-standard": "13.0.1", + "eslint-plugin-import": "2.25.3", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "^9.2.2", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/content-type/HISTORY.md b/node_modules/content-type/HISTORY.md new file mode 100644 index 0000000..4583671 --- /dev/null +++ b/node_modules/content-type/HISTORY.md @@ -0,0 +1,29 @@ +1.0.5 / 2023-01-29 +================== + + * perf: skip value escaping when unnecessary + +1.0.4 / 2017-09-11 +================== + + * perf: skip parameter parsing when no parameters + +1.0.3 / 2017-09-10 +================== + + * perf: remove argument reassignment + +1.0.2 / 2016-05-09 +================== + + * perf: enable strict mode + +1.0.1 / 2015-02-13 +================== + + * Improve missing `Content-Type` header error message + +1.0.0 / 2015-02-01 +================== + + * Initial implementation, derived from `media-typer@0.3.0` diff --git a/node_modules/content-type/LICENSE b/node_modules/content-type/LICENSE new file mode 100644 index 0000000..34b1a2d --- /dev/null +++ b/node_modules/content-type/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2015 Douglas Christopher Wilson + +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. diff --git a/node_modules/content-type/README.md b/node_modules/content-type/README.md new file mode 100644 index 0000000..c1a922a --- /dev/null +++ b/node_modules/content-type/README.md @@ -0,0 +1,94 @@ +# content-type + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +Create and parse HTTP Content-Type header according to RFC 7231 + +## Installation + +```sh +$ npm install content-type +``` + +## API + +```js +var contentType = require('content-type') +``` + +### contentType.parse(string) + +```js +var obj = contentType.parse('image/svg+xml; charset=utf-8') +``` + +Parse a `Content-Type` header. This will return an object with the following +properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): + + - `type`: The media type (the type and subtype, always lower case). + Example: `'image/svg+xml'` + + - `parameters`: An object of the parameters in the media type (name of parameter + always lower case). Example: `{charset: 'utf-8'}` + +Throws a `TypeError` if the string is missing or invalid. + +### contentType.parse(req) + +```js +var obj = contentType.parse(req) +``` + +Parse the `Content-Type` header from the given `req`. Short-cut for +`contentType.parse(req.headers['content-type'])`. + +Throws a `TypeError` if the `Content-Type` header is missing or invalid. + +### contentType.parse(res) + +```js +var obj = contentType.parse(res) +``` + +Parse the `Content-Type` header set on the given `res`. Short-cut for +`contentType.parse(res.getHeader('content-type'))`. + +Throws a `TypeError` if the `Content-Type` header is missing or invalid. + +### contentType.format(obj) + +```js +var str = contentType.format({ + type: 'image/svg+xml', + parameters: { charset: 'utf-8' } +}) +``` + +Format an object into a `Content-Type` header. This will return a string of the +content type for the given object with the following properties (examples are +shown that produce the string `'image/svg+xml; charset=utf-8'`): + + - `type`: The media type (will be lower-cased). Example: `'image/svg+xml'` + + - `parameters`: An object of the parameters in the media type (name of the + parameter will be lower-cased). Example: `{charset: 'utf-8'}` + +Throws a `TypeError` if the object contains an invalid type or parameter names. + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/content-type/master?label=ci +[ci-url]: https://github.com/jshttp/content-type/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/content-type/master +[coveralls-url]: https://coveralls.io/r/jshttp/content-type?branch=master +[node-image]: https://badgen.net/npm/node/content-type +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/content-type +[npm-url]: https://npmjs.org/package/content-type +[npm-version-image]: https://badgen.net/npm/v/content-type diff --git a/node_modules/content-type/index.js b/node_modules/content-type/index.js new file mode 100644 index 0000000..41840e7 --- /dev/null +++ b/node_modules/content-type/index.js @@ -0,0 +1,225 @@ +/*! + * content-type + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 + * + * parameter = token "=" ( token / quoted-string ) + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + * / DIGIT / ALPHA + * ; any VCHAR, except delimiters + * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE + * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text + * obs-text = %x80-FF + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + */ +var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex +var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/ // eslint-disable-line no-control-regex +var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ + +/** + * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 + * + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + * obs-text = %x80-FF + */ +var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g // eslint-disable-line no-control-regex + +/** + * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6 + */ +var QUOTE_REGEXP = /([\\"])/g + +/** + * RegExp to match type in RFC 7231 sec 3.1.1.1 + * + * media-type = type "/" subtype + * type = token + * subtype = token + */ +var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ + +/** + * Module exports. + * @public + */ + +exports.format = format +exports.parse = parse + +/** + * Format object to media type. + * + * @param {object} obj + * @return {string} + * @public + */ + +function format (obj) { + if (!obj || typeof obj !== 'object') { + throw new TypeError('argument obj is required') + } + + var parameters = obj.parameters + var type = obj.type + + if (!type || !TYPE_REGEXP.test(type)) { + throw new TypeError('invalid type') + } + + var string = type + + // append parameters + if (parameters && typeof parameters === 'object') { + var param + var params = Object.keys(parameters).sort() + + for (var i = 0; i < params.length; i++) { + param = params[i] + + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError('invalid parameter name') + } + + string += '; ' + param + '=' + qstring(parameters[param]) + } + } + + return string +} + +/** + * Parse media type to object. + * + * @param {string|object} string + * @return {Object} + * @public + */ + +function parse (string) { + if (!string) { + throw new TypeError('argument string is required') + } + + // support req/res-like objects as argument + var header = typeof string === 'object' + ? getcontenttype(string) + : string + + if (typeof header !== 'string') { + throw new TypeError('argument string is required to be a string') + } + + var index = header.indexOf(';') + var type = index !== -1 + ? header.slice(0, index).trim() + : header.trim() + + if (!TYPE_REGEXP.test(type)) { + throw new TypeError('invalid media type') + } + + var obj = new ContentType(type.toLowerCase()) + + // parse parameters + if (index !== -1) { + var key + var match + var value + + PARAM_REGEXP.lastIndex = index + + while ((match = PARAM_REGEXP.exec(header))) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length + key = match[1].toLowerCase() + value = match[2] + + if (value.charCodeAt(0) === 0x22 /* " */) { + // remove quotes + value = value.slice(1, -1) + + // remove escapes + if (value.indexOf('\\') !== -1) { + value = value.replace(QESC_REGEXP, '$1') + } + } + + obj.parameters[key] = value + } + + if (index !== header.length) { + throw new TypeError('invalid parameter format') + } + } + + return obj +} + +/** + * Get content-type from req/res objects. + * + * @param {object} + * @return {Object} + * @private + */ + +function getcontenttype (obj) { + var header + + if (typeof obj.getHeader === 'function') { + // res-like + header = obj.getHeader('content-type') + } else if (typeof obj.headers === 'object') { + // req-like + header = obj.headers && obj.headers['content-type'] + } + + if (typeof header !== 'string') { + throw new TypeError('content-type header is missing from object') + } + + return header +} + +/** + * Quote a string if necessary. + * + * @param {string} val + * @return {string} + * @private + */ + +function qstring (val) { + var str = String(val) + + // no need to quote tokens + if (TOKEN_REGEXP.test(str)) { + return str + } + + if (str.length > 0 && !TEXT_REGEXP.test(str)) { + throw new TypeError('invalid parameter value') + } + + return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' +} + +/** + * Class to represent a content type. + * @private + */ +function ContentType (type) { + this.parameters = Object.create(null) + this.type = type +} diff --git a/node_modules/content-type/package.json b/node_modules/content-type/package.json new file mode 100644 index 0000000..9db19f6 --- /dev/null +++ b/node_modules/content-type/package.json @@ -0,0 +1,42 @@ +{ + "name": "content-type", + "description": "Create and parse HTTP Content-Type header", + "version": "1.0.5", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "content-type", + "http", + "req", + "res", + "rfc7231" + ], + "repository": "jshttp/content-type", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "8.32.0", + "eslint-config-standard": "15.0.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "10.2.0", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + } +} diff --git a/node_modules/cookie-parser/HISTORY.md b/node_modules/cookie-parser/HISTORY.md new file mode 100644 index 0000000..00ea683 --- /dev/null +++ b/node_modules/cookie-parser/HISTORY.md @@ -0,0 +1,124 @@ +1.4.7 / 2024-10-08 +========== + + * deps: cookie@0.7.2 + - Fix object assignment of `hasOwnProperty` + * deps: cookie@0.7.1 + - Allow leading dot for domain + - Although not permitted in the spec, some users expect this to work and user agents ignore the leading dot according to spec + - Add fast path for `serialize` without options, use `obj.hasOwnProperty` when parsing + * deps: cookie@0.7.0 + - perf: parse cookies ~10% faster + - fix: narrow the validation of cookies to match RFC6265 + - fix: add `main` to `package.json` for rspack + * deps: cookie@0.6.0 + - Add `partitioned` option + * deps: cookie@0.5.0 + - Add `priority` option + - Fix `expires` option to reject invalid dates + - pref: improve default decode speed + - pref: remove slow string split in parse + * deps: cookie@0.4.2 + - pref: read value only when assigning in parse + - pref: remove unnecessary regexp in parse + +1.4.6 / 2021-11-16 +================== + + * deps: cookie@0.4.1 + +1.4.5 / 2020-03-14 +================== + + * deps: cookie@0.4.0 + +1.4.4 / 2019-02-12 +================== + + * perf: normalize `secret` argument only once + +1.4.3 / 2016-05-26 +================== + + * deps: cookie@0.3.1 + - perf: use for loop in parse + +1.4.2 / 2016-05-20 +================== + + * deps: cookie@0.2.4 + - perf: enable strict mode + - perf: use for loop in parse + - perf: use string concatenation for serialization + +1.4.1 / 2016-01-11 +================== + + * deps: cookie@0.2.3 + * perf: enable strict mode + +1.4.0 / 2015-09-18 +================== + + * Accept array of secrets in addition to a single secret + * Fix `JSONCookie` to return `undefined` for non-string arguments + * Fix `signedCookie` to return `undefined` for non-string arguments + * deps: cookie@0.2.2 + +1.3.5 / 2015-05-19 +================== + + * deps: cookie@0.1.3 + - Slight optimizations + +1.3.4 / 2015-02-15 +================== + + * deps: cookie-signature@1.0.6 + +1.3.3 / 2014-09-05 +================== + + * deps: cookie-signature@1.0.5 + +1.3.2 / 2014-06-26 +================== + + * deps: cookie-signature@1.0.4 + - fix for timing attacks + +1.3.1 / 2014-06-17 +================== + + * actually export `signedCookie` + +1.3.0 / 2014-06-17 +================== + + * add `signedCookie` export for single cookie unsigning + +1.2.0 / 2014-06-17 +================== + + * export parsing functions + * `req.cookies` and `req.signedCookies` are now plain objects + * slightly faster parsing of many cookies + +1.1.0 / 2014-05-12 +================== + + * Support for NodeJS version 0.8 + * deps: cookie@0.1.2 + - Fix for maxAge == 0 + - made compat with expires field + - tweak maxAge NaN error message + +1.0.1 / 2014-02-20 +================== + + * add missing dependencies + +1.0.0 / 2014-02-15 +================== + + * Genesis from `connect` diff --git a/node_modules/cookie-parser/LICENSE b/node_modules/cookie-parser/LICENSE new file mode 100644 index 0000000..343f2ad --- /dev/null +++ b/node_modules/cookie-parser/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 TJ Holowaychuk +Copyright (c) 2015 Douglas Christopher Wilson + +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. diff --git a/node_modules/cookie-parser/README.md b/node_modules/cookie-parser/README.md new file mode 100644 index 0000000..b8ecd7b --- /dev/null +++ b/node_modules/cookie-parser/README.md @@ -0,0 +1,119 @@ +# cookie-parser + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Parse `Cookie` header and populate `req.cookies` with an object keyed by the +cookie names. Optionally you may enable signed cookie support by passing a +`secret` string, which assigns `req.secret` so it may be used by other +middleware. + +## Installation + +```sh +$ npm install cookie-parser +``` + +## API + +```js +var cookieParser = require('cookie-parser') +``` + +### cookieParser(secret, options) + +Create a new cookie parser middleware function using the given `secret` and +`options`. + +- `secret` a string or array used for signing cookies. This is optional and if + not specified, will not parse signed cookies. If a string is provided, this + is used as the secret. If an array is provided, an attempt will be made to + unsign the cookie with each secret in order. +- `options` an object that is passed to `cookie.parse` as the second option. See + [cookie](https://www.npmjs.org/package/cookie) for more information. + - `decode` a function to decode the value of the cookie + +The middleware will parse the `Cookie` header on the request and expose the +cookie data as the property `req.cookies` and, if a `secret` was provided, as +the property `req.signedCookies`. These properties are name value pairs of the +cookie name to cookie value. + +When `secret` is provided, this module will unsign and validate any signed cookie +values and move those name value pairs from `req.cookies` into `req.signedCookies`. +A signed cookie is a cookie that has a value prefixed with `s:`. Signed cookies +that fail signature validation will have the value `false` instead of the tampered +value. + +In addition, this module supports special "JSON cookies". These are cookie where +the value is prefixed with `j:`. When these values are encountered, the value will +be exposed as the result of `JSON.parse`. If parsing fails, the original value will +remain. + +### cookieParser.JSONCookie(str) + +Parse a cookie value as a JSON cookie. This will return the parsed JSON value +if it was a JSON cookie, otherwise, it will return the passed value. + +### cookieParser.JSONCookies(cookies) + +Given an object, this will iterate over the keys and call `JSONCookie` on each +value, replacing the original value with the parsed value. This returns the +same object that was passed in. + +### cookieParser.signedCookie(str, secret) + +Parse a cookie value as a signed cookie. This will return the parsed unsigned +value if it was a signed cookie and the signature was valid. If the value was +not signed, the original value is returned. If the value was signed but the +signature could not be validated, `false` is returned. + +The `secret` argument can be an array or string. If a string is provided, this +is used as the secret. If an array is provided, an attempt will be made to +unsign the cookie with each secret in order. + +### cookieParser.signedCookies(cookies, secret) + +Given an object, this will iterate over the keys and check if any value is a +signed cookie. If it is a signed cookie and the signature is valid, the key +will be deleted from the object and added to the new object that is returned. + +The `secret` argument can be an array or string. If a string is provided, this +is used as the secret. If an array is provided, an attempt will be made to +unsign the cookie with each secret in order. + +## Example + +```js +var express = require('express') +var cookieParser = require('cookie-parser') + +var app = express() +app.use(cookieParser()) + +app.get('/', function (req, res) { + // Cookies that have not been signed + console.log('Cookies: ', req.cookies) + + // Cookies that have been signed + console.log('Signed Cookies: ', req.signedCookies) +}) + +app.listen(8080) + +// curl command that sends an HTTP request with two cookies +// curl http://127.0.0.1:8080 --cookie "Cho=Kim;Greet=Hello" +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/expressjs/cookie-parser/master?label=ci +[ci-url]: https://github.com/expressjs/cookie-parser/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/cookie-parser/master +[coveralls-url]: https://coveralls.io/r/expressjs/cookie-parser?branch=master +[npm-downloads-image]: https://badgen.net/npm/dm/cookie-parser +[npm-url]: https://npmjs.org/package/cookie-parser +[npm-version-image]: https://badgen.net/npm/v/cookie-parser diff --git a/node_modules/cookie-parser/index.js b/node_modules/cookie-parser/index.js new file mode 100644 index 0000000..dd6d479 --- /dev/null +++ b/node_modules/cookie-parser/index.js @@ -0,0 +1,182 @@ +/*! + * cookie-parser + * Copyright(c) 2014 TJ Holowaychuk + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var cookie = require('cookie') +var signature = require('cookie-signature') + +/** + * Module exports. + * @public + */ + +module.exports = cookieParser +module.exports.JSONCookie = JSONCookie +module.exports.JSONCookies = JSONCookies +module.exports.signedCookie = signedCookie +module.exports.signedCookies = signedCookies + +/** + * Parse Cookie header and populate `req.cookies` + * with an object keyed by the cookie names. + * + * @param {string|array} [secret] A string (or array of strings) representing cookie signing secret(s). + * @param {Object} [options] + * @return {Function} + * @public + */ + +function cookieParser (secret, options) { + var secrets = !secret || Array.isArray(secret) + ? (secret || []) + : [secret] + + return function cookieParser (req, res, next) { + if (req.cookies) { + return next() + } + + var cookies = req.headers.cookie + + req.secret = secrets[0] + req.cookies = Object.create(null) + req.signedCookies = Object.create(null) + + // no cookies + if (!cookies) { + return next() + } + + req.cookies = cookie.parse(cookies, options) + + // parse signed cookies + if (secrets.length !== 0) { + req.signedCookies = signedCookies(req.cookies, secrets) + req.signedCookies = JSONCookies(req.signedCookies) + } + + // parse JSON cookies + req.cookies = JSONCookies(req.cookies) + + next() + } +} + +/** + * Parse JSON cookie string. + * + * @param {String} str + * @return {Object} Parsed object or undefined if not json cookie + * @public + */ + +function JSONCookie (str) { + if (typeof str !== 'string' || str.substr(0, 2) !== 'j:') { + return undefined + } + + try { + return JSON.parse(str.slice(2)) + } catch (err) { + return undefined + } +} + +/** + * Parse JSON cookies. + * + * @param {Object} obj + * @return {Object} + * @public + */ + +function JSONCookies (obj) { + var cookies = Object.keys(obj) + var key + var val + + for (var i = 0; i < cookies.length; i++) { + key = cookies[i] + val = JSONCookie(obj[key]) + + if (val) { + obj[key] = val + } + } + + return obj +} + +/** + * Parse a signed cookie string, return the decoded value. + * + * @param {String} str signed cookie string + * @param {string|array} secret + * @return {String} decoded value + * @public + */ + +function signedCookie (str, secret) { + if (typeof str !== 'string') { + return undefined + } + + if (str.substr(0, 2) !== 's:') { + return str + } + + var secrets = !secret || Array.isArray(secret) + ? (secret || []) + : [secret] + + for (var i = 0; i < secrets.length; i++) { + var val = signature.unsign(str.slice(2), secrets[i]) + + if (val !== false) { + return val + } + } + + return false +} + +/** + * Parse signed cookies, returning an object containing the decoded key/value + * pairs, while removing the signed key from obj. + * + * @param {Object} obj + * @param {string|array} secret + * @return {Object} + * @public + */ + +function signedCookies (obj, secret) { + var cookies = Object.keys(obj) + var dec + var key + var ret = Object.create(null) + var val + + for (var i = 0; i < cookies.length; i++) { + key = cookies[i] + val = obj[key] + dec = signedCookie(val, secret) + + if (val !== dec) { + ret[key] = dec + delete obj[key] + } + } + + return ret +} diff --git a/node_modules/cookie-parser/package.json b/node_modules/cookie-parser/package.json new file mode 100644 index 0000000..b1e86f0 --- /dev/null +++ b/node_modules/cookie-parser/package.json @@ -0,0 +1,45 @@ +{ + "name": "cookie-parser", + "description": "Parse HTTP request cookies", + "version": "1.4.7", + "author": "TJ Holowaychuk (http://tjholowaychuk.com)", + "contributors": [ + "Douglas Christopher Wilson " + ], + "license": "MIT", + "repository": "expressjs/cookie-parser", + "keywords": [ + "cookie", + "middleware" + ], + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.6" + }, + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.2", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.1", + "nyc": "15.1.0", + "supertest": "6.1.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">= 0.8.0" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/cookie-signature/.npmignore b/node_modules/cookie-signature/.npmignore new file mode 100644 index 0000000..f1250e5 --- /dev/null +++ b/node_modules/cookie-signature/.npmignore @@ -0,0 +1,4 @@ +support +test +examples +*.sock diff --git a/node_modules/cookie-signature/History.md b/node_modules/cookie-signature/History.md new file mode 100644 index 0000000..78513cc --- /dev/null +++ b/node_modules/cookie-signature/History.md @@ -0,0 +1,38 @@ +1.0.6 / 2015-02-03 +================== + +* use `npm test` instead of `make test` to run tests +* clearer assertion messages when checking input + + +1.0.5 / 2014-09-05 +================== + +* add license to package.json + +1.0.4 / 2014-06-25 +================== + + * corrected avoidance of timing attacks (thanks @tenbits!) + +1.0.3 / 2014-01-28 +================== + + * [incorrect] fix for timing attacks + +1.0.2 / 2014-01-28 +================== + + * fix missing repository warning + * fix typo in test + +1.0.1 / 2013-04-15 +================== + + * Revert "Changed underlying HMAC algo. to sha512." + * Revert "Fix for timing attacks on MAC verification." + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/node_modules/cookie-signature/Readme.md b/node_modules/cookie-signature/Readme.md new file mode 100644 index 0000000..2559e84 --- /dev/null +++ b/node_modules/cookie-signature/Readme.md @@ -0,0 +1,42 @@ + +# cookie-signature + + Sign and unsign cookies. + +## Example + +```js +var cookie = require('cookie-signature'); + +var val = cookie.sign('hello', 'tobiiscool'); +val.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI'); + +var val = cookie.sign('hello', 'tobiiscool'); +cookie.unsign(val, 'tobiiscool').should.equal('hello'); +cookie.unsign(val, 'luna').should.be.false; +``` + +## License + +(The MIT License) + +Copyright (c) 2012 LearnBoost <tj@learnboost.com> + +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. \ No newline at end of file diff --git a/node_modules/cookie-signature/index.js b/node_modules/cookie-signature/index.js new file mode 100644 index 0000000..b8c9463 --- /dev/null +++ b/node_modules/cookie-signature/index.js @@ -0,0 +1,51 @@ +/** + * Module dependencies. + */ + +var crypto = require('crypto'); + +/** + * Sign the given `val` with `secret`. + * + * @param {String} val + * @param {String} secret + * @return {String} + * @api private + */ + +exports.sign = function(val, secret){ + if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string."); + if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); + return val + '.' + crypto + .createHmac('sha256', secret) + .update(val) + .digest('base64') + .replace(/\=+$/, ''); +}; + +/** + * Unsign and decode the given `val` with `secret`, + * returning `false` if the signature is invalid. + * + * @param {String} val + * @param {String} secret + * @return {String|Boolean} + * @api private + */ + +exports.unsign = function(val, secret){ + if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided."); + if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); + var str = val.slice(0, val.lastIndexOf('.')) + , mac = exports.sign(str, secret); + + return sha1(mac) == sha1(val) ? str : false; +}; + +/** + * Private + */ + +function sha1(str){ + return crypto.createHash('sha1').update(str).digest('hex'); +} diff --git a/node_modules/cookie-signature/package.json b/node_modules/cookie-signature/package.json new file mode 100644 index 0000000..29c4498 --- /dev/null +++ b/node_modules/cookie-signature/package.json @@ -0,0 +1,18 @@ +{ + "name": "cookie-signature", + "version": "1.0.6", + "description": "Sign and unsign cookies", + "keywords": ["cookie", "sign", "unsign"], + "author": "TJ Holowaychuk ", + "license": "MIT", + "repository": { "type": "git", "url": "https://github.com/visionmedia/node-cookie-signature.git"}, + "dependencies": {}, + "devDependencies": { + "mocha": "*", + "should": "*" + }, + "scripts": { + "test": "mocha --require should --reporter spec" + }, + "main": "index" +} diff --git a/node_modules/cookie/LICENSE b/node_modules/cookie/LICENSE new file mode 100644 index 0000000..058b6b4 --- /dev/null +++ b/node_modules/cookie/LICENSE @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2012-2014 Roman Shtylman +Copyright (c) 2015 Douglas Christopher Wilson + +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. + diff --git a/node_modules/cookie/README.md b/node_modules/cookie/README.md new file mode 100644 index 0000000..71fdac1 --- /dev/null +++ b/node_modules/cookie/README.md @@ -0,0 +1,317 @@ +# cookie + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +Basic HTTP cookie parser and serializer for HTTP servers. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install cookie +``` + +## API + +```js +var cookie = require('cookie'); +``` + +### cookie.parse(str, options) + +Parse an HTTP `Cookie` header string and returning an object of all cookie name-value pairs. +The `str` argument is the string representing a `Cookie` header value and `options` is an +optional object containing additional parsing options. + +```js +var cookies = cookie.parse('foo=bar; equation=E%3Dmc%5E2'); +// { foo: 'bar', equation: 'E=mc^2' } +``` + +#### Options + +`cookie.parse` accepts these properties in the options object. + +##### decode + +Specifies a function that will be used to decode a cookie's value. Since the value of a cookie +has a limited character set (and must be a simple string), this function can be used to decode +a previously-encoded cookie value into a JavaScript string or other object. + +The default function is the global `decodeURIComponent`, which will decode any URL-encoded +sequences into their byte representations. + +**note** if an error is thrown from this function, the original, non-decoded cookie value will +be returned as the cookie's value. + +### cookie.serialize(name, value, options) + +Serialize a cookie name-value pair into a `Set-Cookie` header string. The `name` argument is the +name for the cookie, the `value` argument is the value to set the cookie to, and the `options` +argument is an optional object containing additional serialization options. + +```js +var setCookie = cookie.serialize('foo', 'bar'); +// foo=bar +``` + +#### Options + +`cookie.serialize` accepts these properties in the options object. + +##### domain + +Specifies the value for the [`Domain` `Set-Cookie` attribute][rfc-6265-5.2.3]. By default, no +domain is set, and most clients will consider the cookie to apply to only the current domain. + +##### encode + +Specifies a function that will be used to encode a cookie's value. Since value of a cookie +has a limited character set (and must be a simple string), this function can be used to encode +a value into a string suited for a cookie's value. + +The default function is the global `encodeURIComponent`, which will encode a JavaScript string +into UTF-8 byte sequences and then URL-encode any that fall outside of the cookie range. + +##### expires + +Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute][rfc-6265-5.2.1]. +By default, no expiration is set, and most clients will consider this a "non-persistent cookie" and +will delete it on a condition like exiting a web browser application. + +**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and +`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, +so if both are set, they should point to the same date and time. + +##### httpOnly + +Specifies the `boolean` value for the [`HttpOnly` `Set-Cookie` attribute][rfc-6265-5.2.6]. When truthy, +the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly` attribute is not set. + +**note** be careful when setting this to `true`, as compliant clients will not allow client-side +JavaScript to see the cookie in `document.cookie`. + +##### maxAge + +Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute][rfc-6265-5.2.2]. +The given number will be converted to an integer by rounding down. By default, no maximum age is set. + +**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and +`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, +so if both are set, they should point to the same date and time. + +##### partitioned + +Specifies the `boolean` value for the [`Partitioned` `Set-Cookie`](rfc-cutler-httpbis-partitioned-cookies) +attribute. When truthy, the `Partitioned` attribute is set, otherwise it is not. By default, the +`Partitioned` attribute is not set. + +**note** This is an attribute that has not yet been fully standardized, and may change in the future. +This also means many clients may ignore this attribute until they understand it. + +More information about can be found in [the proposal](https://github.com/privacycg/CHIPS). + +##### path + +Specifies the value for the [`Path` `Set-Cookie` attribute][rfc-6265-5.2.4]. By default, the path +is considered the ["default path"][rfc-6265-5.1.4]. + +##### priority + +Specifies the `string` to be the value for the [`Priority` `Set-Cookie` attribute][rfc-west-cookie-priority-00-4.1]. + + - `'low'` will set the `Priority` attribute to `Low`. + - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set. + - `'high'` will set the `Priority` attribute to `High`. + +More information about the different priority levels can be found in +[the specification][rfc-west-cookie-priority-00-4.1]. + +**note** This is an attribute that has not yet been fully standardized, and may change in the future. +This also means many clients may ignore this attribute until they understand it. + +##### sameSite + +Specifies the `boolean` or `string` to be the value for the [`SameSite` `Set-Cookie` attribute][rfc-6265bis-09-5.4.7]. + + - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement. + - `false` will not set the `SameSite` attribute. + - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement. + - `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie. + - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement. + +More information about the different enforcement levels can be found in +[the specification][rfc-6265bis-09-5.4.7]. + +**note** This is an attribute that has not yet been fully standardized, and may change in the future. +This also means many clients may ignore this attribute until they understand it. + +##### secure + +Specifies the `boolean` value for the [`Secure` `Set-Cookie` attribute][rfc-6265-5.2.5]. When truthy, +the `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set. + +**note** be careful when setting this to `true`, as compliant clients will not send the cookie back to +the server in the future if the browser does not have an HTTPS connection. + +## Example + +The following example uses this module in conjunction with the Node.js core HTTP server +to prompt a user for their name and display it back on future visits. + +```js +var cookie = require('cookie'); +var escapeHtml = require('escape-html'); +var http = require('http'); +var url = require('url'); + +function onRequest(req, res) { + // Parse the query string + var query = url.parse(req.url, true, true).query; + + if (query && query.name) { + // Set a new cookie with the name + res.setHeader('Set-Cookie', cookie.serialize('name', String(query.name), { + httpOnly: true, + maxAge: 60 * 60 * 24 * 7 // 1 week + })); + + // Redirect back after setting cookie + res.statusCode = 302; + res.setHeader('Location', req.headers.referer || '/'); + res.end(); + return; + } + + // Parse the cookies on the request + var cookies = cookie.parse(req.headers.cookie || ''); + + // Get the visitor name set in the cookie + var name = cookies.name; + + res.setHeader('Content-Type', 'text/html; charset=UTF-8'); + + if (name) { + res.write('

Welcome back, ' + escapeHtml(name) + '!

'); + } else { + res.write('

Hello, new visitor!

'); + } + + res.write('
'); + res.write(' '); + res.end('
'); +} + +http.createServer(onRequest).listen(3000); +``` + +## Testing + +```sh +$ npm test +``` + +## Benchmark + +``` +$ npm run bench + +> cookie@0.5.0 bench +> node benchmark/index.js + + node@18.18.2 + acorn@8.10.0 + ada@2.6.0 + ares@1.19.1 + brotli@1.0.9 + cldr@43.1 + icu@73.2 + llhttp@6.0.11 + modules@108 + napi@9 + nghttp2@1.57.0 + nghttp3@0.7.0 + ngtcp2@0.8.1 + openssl@3.0.10+quic + simdutf@3.2.14 + tz@2023c + undici@5.26.3 + unicode@15.0 + uv@1.44.2 + uvwasi@0.0.18 + v8@10.2.154.26-node.26 + zlib@1.2.13.1-motley + +> node benchmark/parse-top.js + + cookie.parse - top sites + + 14 tests completed. + + parse accounts.google.com x 2,588,913 ops/sec ±0.74% (186 runs sampled) + parse apple.com x 2,370,002 ops/sec ±0.69% (186 runs sampled) + parse cloudflare.com x 2,213,102 ops/sec ±0.88% (188 runs sampled) + parse docs.google.com x 2,194,157 ops/sec ±1.03% (184 runs sampled) + parse drive.google.com x 2,265,084 ops/sec ±0.79% (187 runs sampled) + parse en.wikipedia.org x 457,099 ops/sec ±0.81% (186 runs sampled) + parse linkedin.com x 504,407 ops/sec ±0.89% (186 runs sampled) + parse maps.google.com x 1,230,959 ops/sec ±0.98% (186 runs sampled) + parse microsoft.com x 926,294 ops/sec ±0.88% (184 runs sampled) + parse play.google.com x 2,311,338 ops/sec ±0.83% (185 runs sampled) + parse support.google.com x 1,508,850 ops/sec ±0.86% (186 runs sampled) + parse www.google.com x 1,022,582 ops/sec ±1.32% (182 runs sampled) + parse youtu.be x 332,136 ops/sec ±1.02% (185 runs sampled) + parse youtube.com x 323,833 ops/sec ±0.77% (183 runs sampled) + +> node benchmark/parse.js + + cookie.parse - generic + + 6 tests completed. + + simple x 3,214,032 ops/sec ±1.61% (183 runs sampled) + decode x 587,237 ops/sec ±1.16% (187 runs sampled) + unquote x 2,954,618 ops/sec ±1.35% (183 runs sampled) + duplicates x 857,008 ops/sec ±0.89% (187 runs sampled) + 10 cookies x 292,133 ops/sec ±0.89% (187 runs sampled) + 100 cookies x 22,610 ops/sec ±0.68% (187 runs sampled) +``` + +## References + +- [RFC 6265: HTTP State Management Mechanism][rfc-6265] +- [Same-site Cookies][rfc-6265bis-09-5.4.7] + +[rfc-cutler-httpbis-partitioned-cookies]: https://tools.ietf.org/html/draft-cutler-httpbis-partitioned-cookies/ +[rfc-west-cookie-priority-00-4.1]: https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1 +[rfc-6265bis-09-5.4.7]: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7 +[rfc-6265]: https://tools.ietf.org/html/rfc6265 +[rfc-6265-5.1.4]: https://tools.ietf.org/html/rfc6265#section-5.1.4 +[rfc-6265-5.2.1]: https://tools.ietf.org/html/rfc6265#section-5.2.1 +[rfc-6265-5.2.2]: https://tools.ietf.org/html/rfc6265#section-5.2.2 +[rfc-6265-5.2.3]: https://tools.ietf.org/html/rfc6265#section-5.2.3 +[rfc-6265-5.2.4]: https://tools.ietf.org/html/rfc6265#section-5.2.4 +[rfc-6265-5.2.5]: https://tools.ietf.org/html/rfc6265#section-5.2.5 +[rfc-6265-5.2.6]: https://tools.ietf.org/html/rfc6265#section-5.2.6 +[rfc-6265-5.3]: https://tools.ietf.org/html/rfc6265#section-5.3 + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/cookie/master?label=ci +[ci-url]: https://github.com/jshttp/cookie/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/cookie/master +[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master +[node-image]: https://badgen.net/npm/node/cookie +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/cookie +[npm-url]: https://npmjs.org/package/cookie +[npm-version-image]: https://badgen.net/npm/v/cookie diff --git a/node_modules/cookie/SECURITY.md b/node_modules/cookie/SECURITY.md new file mode 100644 index 0000000..fd4a6c5 --- /dev/null +++ b/node_modules/cookie/SECURITY.md @@ -0,0 +1,25 @@ +# Security Policies and Procedures + +## Reporting a Bug + +The `cookie` team and community take all security bugs seriously. Thank +you for improving the security of the project. We appreciate your efforts and +responsible disclosure and will make every effort to acknowledge your +contributions. + +Report security bugs by emailing the current owner(s) of `cookie`. This +information can be found in the npm registry using the command +`npm owner ls cookie`. +If unsure or unable to get the information from the above, open an issue +in the [project issue tracker](https://github.com/jshttp/cookie/issues) +asking for the current contact information. + +To ensure the timely response to your report, please ensure that the entirety +of the report is contained within the email body and not solely behind a web +link or an attachment. + +At least one owner will acknowledge your email within 48 hours, and will send a +more detailed response within 48 hours indicating the next steps in handling +your report. After the initial reply to your report, the owners will +endeavor to keep you informed of the progress towards a fix and full +announcement, and may ask for additional information or guidance. diff --git a/node_modules/cookie/index.js b/node_modules/cookie/index.js new file mode 100644 index 0000000..acd5acd --- /dev/null +++ b/node_modules/cookie/index.js @@ -0,0 +1,335 @@ +/*! + * cookie + * Copyright(c) 2012-2014 Roman Shtylman + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +exports.parse = parse; +exports.serialize = serialize; + +/** + * Module variables. + * @private + */ + +var __toString = Object.prototype.toString +var __hasOwnProperty = Object.prototype.hasOwnProperty + +/** + * RegExp to match cookie-name in RFC 6265 sec 4.1.1 + * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2 + * which has been replaced by the token definition in RFC 7230 appendix B. + * + * cookie-name = token + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / + * "*" / "+" / "-" / "." / "^" / "_" / + * "`" / "|" / "~" / DIGIT / ALPHA + */ + +var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; + +/** + * RegExp to match cookie-value in RFC 6265 sec 4.1.1 + * + * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) + * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E + * ; US-ASCII characters excluding CTLs, + * ; whitespace DQUOTE, comma, semicolon, + * ; and backslash + */ + +var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/; + +/** + * RegExp to match domain-value in RFC 6265 sec 4.1.1 + * + * domain-value = + * ; defined in [RFC1034], Section 3.5, as + * ; enhanced by [RFC1123], Section 2.1 + * =